0 голосов
276 просмотров
Как гарантировать, что все строки \q2 всегда находятся на той же странице, что и предыдущая строка \q1?
Переведено машиной с языка English
PTXprint от (1,4тыс. очков) | 276 просмотров

3 Ответов

0 голосов
Лучший ответ

Я знаю один способ сделать это, но хотел опубликовать его здесь, чтобы найти в следующий раз, когда это понадобится!

В файле ptxprint-mods.tex (отметьте этот файл на вкладке Advanced и нажмите Edit...) добавьте эту строку:

\sethook{before}{q2}{\nobreak}
Переведено машиной с языка English
от (1,4тыс. очков)
0 голосов
Конечно, если вы хотите подойти к вашему вопросу очень точно и избегать переноса только между q1 и q2 (и, например, разрешать перенос между q2 и q2), то задача становится немного интереснее:

\catcode`\@=11
\addtoparstylehooks{\xdef\lastmarker{\m@rker}}
\m@kedigitsletters
\def\@qone{q1}
\m@kedigitsother
\sethook{before}{q2}{\ifx\lastmarker\@qone\relax\nobreak\fi}

Здесь мы захватываем маркер предыдущего абзаца в конце каждого абзаца, а перед q2 проверяем, был ли маркер последнего абзаца q1, и если да, вставляем nobreak. Обратите внимание, что для сравнения маркера с q1 мы сохраняем q1 как объект для сравнения, но 1 в q1 — это буква, а не цифра, поэтому нам нужно перекатегоризовать цифры как буквы во время этого def, а затем вернуть их обратно. sethook умен тем, что выполняет эту перекатегоризацию за нас, избавляя нас от необходимости делать это вручную.
Переведено машиной с языка English
от (656 очков)
0 голосов

Я знаю, что были другие ответы, но ответ Мартина — это избыточное решение, когда существует вот такой вариант...
 

\setbetweenhook{q1}{q2}{\nobreak}


Переведено машиной с языка English
от (1,1тыс. очков)
Я предполагаю, что если вы использовали это, то вам также захочется:

\setbetweenhook{q2}{q2}{\nobreak}

Чтобы, если у вас было несколько \q2 подряд, они также оставались вместе.
Переведено машиной с языка English

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

0 голосов
1 ответ 35 просмотров
Our poetry is all in sfm \q1 and most of the lines are short enough to be within the margin. However a few times when the ... when a \q1 line runs more than one line on the page.
debbodaneejo 118 задал вопрос фев 4
+1 голос
1 ответ 378 просмотров
Некоторые проекты перевода не хотят ставить точку в конце своих сносок. Просто опуская её, вы заставите сноски не пройти ... точки в конце сносок - Helps - Paratext Supporter Site
[Expert]
Jeff_Shrum
2,9тыс.
задал вопрос авг 30, 2022
0 голосов
2 ответов 80 просмотров
В настройках ссылок в PTX есть ли опция, чтобы отметить ссылку под стихом?
Shivaji 117 задал вопрос мар 7, 2025
0 голосов
2 ответов 215 просмотров
Здравствуйте, Мы пытаемся выровнять поэтическое слово "Selah" по правому краю, хотя оно находится на той же строке в конце ... следующее... Чего-то мы не понимаем? Спасибо, GY
gyip 109 задал вопрос сен 4, 2024
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
How good and pleasant it is when God’s people live together in unity!
Psalm 133:1
3,045 вопросов
6,005 ответов
5,671 комментариев
2,026 пользователей