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

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 ответ 377 просмотров
Некоторые проекты перевода не хотят ставить точку в конце своих сносок. Просто опуская её, вы заставите сноски не пройти ... точки в конце сносок - Helps - Paratext Supporter Site
[Expert]
Jeff_Shrum
2,9тыс.
задал вопрос авг 30, 2022
0 голосов
2 ответов 80 просмотров
В настройках ссылок в PTX есть ли опция, чтобы отметить ссылку под стихом?
Shivaji 117 задал вопрос мар 7, 2025
0 голосов
2 ответов 214 просмотров
Здравствуйте, Мы пытаемся выровнять поэтическое слово "Selah" по правому краю, хотя оно находится на той же строке в конце ... следующее... Чего-то мы не понимаем? Спасибо, GY
gyip 109 задал вопрос сен 4, 2024
Welcome to Support Bible, where you can ask questions and receive answers from other members of the community.
And I tell you that you are Peter, and on this rock I will build my church, and the gates of Hades will not overcome it.
Matthew 16:18
3,045 вопросов
6,005 ответов
5,671 комментариев
2,026 пользователей