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

Как предотвратить перенос на новую страницу или в новую колонку между ключевым словом в глоссарии и его определением?

Мой глоссарий выглядит так:

\p \k angel\k*
\p A winged flying creature

Я использую changes.txt, чтобы заменить “\p \k” на “\m \k”. Как мне удерживать вместе абзацы \m и \p? Что-то удерживает заголовки разделов \s вместе с последующим абзацем. Должен ли я изменить ключевые слова в глоссарии на \s?

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

3 Ответов

0 голосов

Эрик,

Это не проверено, но я думаю, что что-то вроде этого должно сработать.

В вашем файле ptxprint-mods.tex добавьте
\sethook{after}{k}{\penalty10000}

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

Спасибо!
\sethook{after}{m}{\penalty10000}
работает, теперь как мне ограничить его действие так, чтобы он применялся только в GLO?

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

Опять же, не проверено, но я думаю, что это работает:
\sethook{after}{id:GLO|m}{\penalty10000}

Одна из вещей, которые я не мог вспомнить, — это то, применяется ли \penalty10000 к началу строки, в которой оно находится, или к концу. Я думал, что оно находится в конце, поэтому я установил хук на {k} — потому что это заставило бы \k прилипать к тому, что находится ниже. Но, возможно, вы это проверили, и это не сработало.

Переведено машиной с языка English

{k} ничего не сделал, но {m} сработал. Добавление id:GLO, похоже, ничего не меняет, так что, я думаю, это работает. Вероятно, лучшей практикой было бы использовать маркер, уникальный для глоссария, вместо использования \m.

Переведено машиной с языка English
0 голосов

Добавляя id:GLO|, вы уже указываете «только в книге GLO», поэтому нет смысла использовать другой маркер, если только вы не хотите отформатировать его иначе.
Даже если вы хотите отформатировать \m иначе в GLO, вы все равно можете оставить USFM без изменений и отформатировать маркер id:GLO|m. Единственная причина, по которой я бы использовал специальный маркер, — это если он «по своей сути» не является \m.

Кстати, \penalty применяется точно в том месте, где он встречается, будь то в горизонтальном режиме (разбивка строки текста на абзацы) или в вертикальном (разбивка абзацев на страницы).
Поскольку в конце \k мы находимся в горизонтальном режиме, вставка после \k говорит «не начинай новый абзац здесь». Затем TeX встречает \p или \m, в определении которых есть «Если мы находимся в горизонтальном режиме, заполните абзац тем, что было указано, и \penalty -10000», и поэтому он разбивает там (даже если не было заполнения в конце абзаца, штрафы не накапливаются, поэтому он послушно не разобьет на 10000 и послушно разобьет на -10000).

Кстати 2, не поддавайтесь искушению пытаться создать хук для вставки разрыва абзаца после стиля символа. Я пробовал несколькими способами и пришел к выводу, что код становится действительно очень запутанным, если вы просите его настроить новый абзац, пока он обрабатывает конец стиля символа.

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

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

0 голосов
1 ответ 20 просмотров
Я прочитал Лучшие практики для глоссария (https://support.bible/3952/glossary-best-practices?show=3952#q3952). Информация там ... не так , я буду очень признателен! Спасибо, Пол
Paul 642 задал вопрос окт 21, 2025
0 голосов
0 ответов 170 просмотров
Click in the window of your project, to make it the active window. From the Tools menu, select Biblical Terms . Find and ... t/how-do-i-filter-terms-in-the-biblical-terms-tool/230)
[Expert]
anon421222
735
задал вопрос фев 23, 2017
0 голосов
1 ответ 34 просмотров
Мы используем /xt в перекрёстных ссылках в сносках, настроенных на использование короткого названия книги. Но в глоссарии ... код USFM, который я мог бы использовать для этого?
Lenice 180 задал вопрос окт 7, 2025
0 голосов
1 ответ 356 просмотров
Я являюсь администратором в этом проекте. Другой администратор внёс изменения в GLO и другие книги и выполнил Send/Receive. ... Истории проекта , но не обновлены в книге GLO.
anon399461 123 задал вопрос мар 13, 2024
+1 голос
1 ответ 341 просмотров
Когда вы вводите записи в глоссарий через инструмент Библийские термины или окно Варианты перевода библийских ... В следующем видео эта процедура описана более подробно:
[Expert]
Jeff_Shrum
2,9тыс.
задал вопрос мар 23, 2021
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
Very truly I tell you, whoever accepts anyone I send accepts me; and whoever accepts me accepts the one who sent me.
John 13:20
3,045 вопросов
6,005 ответов
5,671 комментариев
2,026 пользователей