0 голосов
267 просмотров

Я работаю над проектом с использованием кхмерской письменности, где требуется подчёркивать \nd. Проблема в том, что у первого слова, означающего «господин», есть глубокая опускная часть (descender). Если подчёркивание расположено достаточно низко, чтобы оказаться ниже этой опускной части, то оно оказывается слишком далеко от основной части текста, особенно в случаях, когда \nd используется для слов без опускных частей. На самом деле я упрощаю проблему, поскольку «первая буква» визуально является 4-м символом в строке из-за особенностей правил переупорядочивания в Unicode для кхмерского языка.
\nd ប‌៉្រ័ះ ប៊កកាតយ័\nd*

Чтобы упростить, я заменил текст на английский и использовал changes.txt, чтобы изменить
\nd god Yahweh\nd* на
god\zul\u0332\zul*\nd\ Yahweh\nd*.

Стиль \zul уменьшает размер шрифта и устанавливает растяжение (stretch) на 200%, так что единственный символ \u0332 красиво подчёркивает обе буквы «o» и «d» в слове «god», пропуская «g».

Символ "\ " (слэш и пробел) перед «Yahweh» заставляет \nd подчёркивать пробел между «god» и «Yahweh», поэтому всё работало прекрасно — пока я не дошёл до абзаца, который я уменьшил с помощью нотации \p^95. Похоже, это сбрасывает растяжение (stretch) моего стиля \zul до 100%, оставляя подчёркнутой только последнюю букву слова «god».

Идеальным решением была бы галочка, заставляющая подчёркивание обходить все опускные части букв, но быстрый поиск заставляет меня полагать, что в TeX это непростая задача.

Мне кажется, я свернул не туда 49 миль назад, и я ищу другие предложения.

Как я могу сделать красивое подчёркивание слов ប‌៉្រ័ះ ប៊កកាតយ័ — и так, чтобы это также работало для слова អាញ់?

Переведено машиной с языка English
PTXprint от (607 очков) | 267 просмотров

3 Ответов

0 голосов

Хм. Не уверен, почему ^95 переопределяет растяжение (stretch) в 200% вашего стиля символов. Похоже, что форматирование абзаца переопределяет форматирование символов, хотя, вероятно, оно должно умножать значения или вообще не влиять на стиль символов. Поэтому я бы назвал это багом. Надеюсь, что исправить это не будет слишком сложно.

Не знаю, является ли это подходом, стоящим того, но в относительно недавнем обновлении я сделал так, что отрицательные позиции подчёркивания означают, что подчёркивание рассчитывается относительно базовой линии (baseline), а не относительно опускных частей букв. В результате опускные части букв оказываются зачёркнутыми, так что, возможно, это тоже не то, что вам нужно.

Не подчёркивать символы с опускными частями… даже если бы существовал способ разделить текст на буквы (вероятно, это не невозможно, но всё равно очень-очень сложно, если учитывать такие вещи, как вложенные стили символов, сноски и дополнительную магию, которую добавляют номера стихов), проблема в том, что хотя у «T» нет опускной части, даже у таких букв, как «e», есть небольшая опускная часть — 0,146 pt в шрифте Gentium 10 pt), поэтому условие depth>0pt не сработает, и всё равно потребовалась бы какая-то логика, чтобы отличить «это просто обычная буква с изогнутым основанием» от «у этой буквы есть настоящая опускная часть».

Переведено машиной с языка English
от (1,1тыс. очков)
0 голосов

Полагаю, проблема теперь (частично) исправлена в версии 2.3.1. Стиль символов, у которого задано растяжение (stretch), теперь умножает своё значение на то растяжение, которое было ранее задано в абзаце, будь то корректировка типа p^95 или стиль абзаца с растянутым текстом. Это должно означать, что если ваш \u0332 имеет правильную ширину для подчёркивания «o» и «d» в абзаце обычного размера, он должен правильно масштабироваться и в растянутом/уменьшенном абзаце.

Полное исправление (надеюсь!) будет в версии 2.3.2 и обеспечит поведение, описанное ниже (если вы установите растяжение 200% в интерфейсе, у вас будут символы с фиксированной шириной):

Это исправление позволит вашему растяжению (stretch) в \zul быть независимым от растяжения, заданного стилем абзаца (если вы определили p_95), но не от того, что задано через ^95, надеюсь, давая вам весь необходимый контроль.

Обратите внимание, что если вы хотите использовать «наследование функций», описанное выше, или изменить пределы за пределами того, что позволяет пользовательский интерфейс, вам почти наверняка придётся вручную отредактировать лист стилей переопределения ptxprint-mods.sty и, возможно, прочитать некоторую документацию!

Переведено машиной с языка English
от (1,1тыс. очков)
0 голосов

Что касается вашего последнего предложения… Я задумываюсь, может ли подчёркивание прямо по базовой линии (baseline) сработать или просто выглядеть ужасно? Вы можете установить «Вертикальное положение подчёркивания» (Underline vertical position) в -0.01, и это должно быть примерно 0,1 pt ниже базовой линии (в зависимости от размера вашего шрифта):
image
(это на вкладке «Дополнительно» (Advanced)).

Или вы можете установить его ещё ближе, добавив это в ваш ptxprint-mods.tex:

\def\UnderlineLower{-0.001pt}
Переведено машиной с языка English
от (1,1тыс. очков)

Похожие вопросы

0 голосов
0 ответов 127 просмотров
На случай, если кто-то столкнётся с ситуацией, когда заголовки разделов, обрамлённые рамками, располагаются по-разному в ... которые вам нужно будет исправить в стиле абзаца \s1.
jeffh 1,4тыс. задал вопрос май 2, 2021
0 голосов
1 ответ 23 просмотров
После обновления до PTXprint 3.0.25 я обнаружил, что опции Уменьшить / Увеличить (размер текста в %) (доступные ... ) снова заработали. Кто-нибудь еще сталкивался с тем же?
[Expert]
jmkla
290
задал вопрос май 13
0 голосов
1 ответ 39 просмотров
Я хочу, чтобы текст имени Божества (\nd) был набран жирным шрифтом и капителью. Но при выборе жирного шрифта ... , хотя в диалоговом окне оба варианта отображаются как выбранные.
[Expert]
sewhite
3,3тыс.
задал вопрос янв 12
0 голосов
1 ответ 84 просмотров
Наконец-то мне удалось правильно отобразить рамки заголовков разделов и рамку страницы с красными диакритическими знаками в моем ... в тексте Писания, но не на титульной странице
Mark Skinner 104 задал вопрос фев 19, 2025
0 голосов
1 ответ 199 просмотров
Я использую Paratext 9.4.101.12 и PTXprint 2.4.7 Я помогаю с арабским проектом. Из 16 глав Евангелия от Марка ... текста номерами глав, о которой спрашивали в 2021 году)? Спасибо
anon703820 222 задал вопрос июл 9, 2024
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Every day they continued to meet together in the temple courts. They broke bread in their homes and ate together with glad and sincere hearts, praising God and enjoying the favor of all the people. And the Lord added to their number daily those who were being saved.
Acts 2:46-47
3,052 вопросов
6,011 ответов
5,677 комментариев
2,031 пользователей