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

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 ответ 229 просмотров
Наша поэзия полностью в формате sfm \q1, и большинство строк достаточно короткие, чтобы помещаться в пределах поля. ... когда \q1 строка занимает более одной строки на странице.
debbodaneejo 118 задал вопрос фев 4
+1 голос
1 ответ 605 просмотров
Некоторые проекты перевода не хотят ставить точку в конце своих сносок. Просто опуская её, вы заставите сноски не пройти ... точки в конце сносок - Helps - Paratext Supporter Site
[Expert]
Jeff_Shrum
2,9тыс.
задал вопрос авг 30, 2022
0 голосов
2 ответов 241 просмотров
В настройках ссылок в PTX есть ли опция, чтобы отметить ссылку под стихом?
Shivaji 117 задал вопрос мар 7, 2025
0 голосов
2 ответов 388 просмотров
Здравствуйте, Мы пытаемся выровнять поэтическое слово "Selah" по правому краю, хотя оно находится на той же строке в конце ... следующее... Чего-то мы не понимаем? Спасибо, GY
gyip 109 задал вопрос сен 4, 2024
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
I urge you, brothers and sisters, to watch out for those who cause divisions and put obstacles in your way that are contrary to the teaching you have learned. Keep away from them.
Romans 16:17
3,069 вопросов
6,030 ответов
5,700 комментариев
2,038 пользователей