Работа с вдовами в многоцветной среде

У меня есть проблемы с вдовами в среде многоцветного доступа, то есть мне не удалось дать LaTeX команду удалить их.

Этот документ PDF показывает пример проблемы. В верхней части второй страницы я получаю вдову из последнего абзаца первой страницы. Я попробовал пару подходов, без удачи:

  • установка обоих \widowpenalty а также \clubpenalty к высоким значениям
  • переключение между \raggedcolumns а также \flushcolumns
  • регулируя collectmore а также unbalance счетчики

Я также прочитал документацию для multicol, но не нашел ничего полезного.

Могу ли я попробовать что-нибудь еще?

( Полный документ LaTeX для приведенного выше примера)

2 ответа

Решение
{\obeyspaces\gdef\nomorebreak{\beginnomorebreak\let \nobreakspace}}
\def\beginnomorebreak{\begingroup
   \def\par{\endgraf\endgroup\par\penalty 9999 }\obeyspaces
   \brokenpenalty 10000 \widowpenalty 10000 \clubpenalty 10000 }
\def\nobreakspace{\vadjust{\nobreak} \removespaces}
\def\removespaces{\futurelet\next\checkspace}
\def\checkspace{\ifx\next\nobreakspace\expandafter\removesinglespace\fi}
\def\removesinglespace#1{\removespaces}

Вставить \nomorebreak в любом месте вашего абзаца. Разрывы страниц после этого макроса будут запрещены до конца абзаца.

Похоже, что у http://www.tex.ac.uk/cgi-bin/texfaq2html?label=widows есть варианты, которые вы еще не пробовали.

Другие вопросы по тегам