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

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
от (658 очков)
0 голосов

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

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


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

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

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

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

0 голосов
1 ответ 277 просмотров
Наша поэзия полностью в формате sfm \q1, и большинство строк достаточно короткие, чтобы помещаться в пределах поля. ... когда \q1 строка занимает более одной строки на странице.
debbodaneejo 118 задал вопрос фев 4
+1 голос
1 ответ 624 просмотров
Некоторые проекты перевода не хотят ставить точку в конце своих сносок. Просто опуская её, вы заставите сноски не пройти ... точки в конце сносок - Helps - Paratext Supporter Site
[Expert]
Jeff_Shrum
2,9тыс.
задал вопрос авг 30, 2022
0 голосов
2 ответов 257 просмотров
В настройках ссылок в PTX есть ли опция, чтобы отметить ссылку под стихом?
Shivaji 117 задал вопрос мар 7, 2025
0 голосов
2 ответов 407 просмотров
Здравствуйте, Мы пытаемся выровнять поэтическое слово "Selah" по правому краю, хотя оно находится на той же строке в конце ... следующее... Чего-то мы не понимаем? Спасибо, GY
gyip 109 задал вопрос сен 4, 2024
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
For where two or three gather in my name, there am I with them.
Matthew 18:20
3,078 вопросов
6,041 ответов
5,706 комментариев
2,045 пользователей