2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Борьба с висячими строками
Сообщение02.12.2007, 23:08 
Можно ли автоматически бороться с висячими строками (то есть, первой строки абзаца в конце полосы, или последней в начале полосы) в \TeX? А то я при верстке 400-страничного макета утомился их отлавливать и руками ставить \newpage...

 
 
 
 
Сообщение02.12.2007, 23:11 
Аватара пользователя
Странно, мне казалось, что TeX автоматом не допускает единичных висящих строк.

 
 
 
 
Сообщение02.12.2007, 23:13 
Практика показала обратное :)

 
 
 
 
Сообщение02.12.2007, 23:19 
Аватара пользователя
Видимо, мне так казалось. В Львовском я что-то ничего на эту тему специально не нашел.

 
 
 
 
Сообщение02.12.2007, 23:21 
Аватара пользователя
Львовский писал(а):
Висячие строки. Вообще говоря, не следует допускать, чтобы на страницу попадала только первая или только последняя строка абзаца. В $\TeX$’е предусмотрены два параметра, влияющие на вероятность появления разрывов страницы в этих местах. Именно, параметр \clubpenalty определяет нежелательность разрыва страницы после первой строки абзаца, а \widowpenalty — перед последней. Чем выше значение этих параметров, тем с меньшей охотой $\TeX$ будет допускать такие разрывы (если, конечно, есть возможность выбора); значение 10000 означает, что разрыв полностью запрещен. По умолчанию и \clubpenalty, и \widowpenalty равны 150.

 
 
 
 
Сообщение02.12.2007, 23:24 
Спасибо, попробую. И свежего Львовского надо скачать.

 
 
 
 
Сообщение02.12.2007, 23:24 
Аватара пользователя
Здорово, а в моем издании Львовского этого действительно нет.

 
 
 
 
Сообщение02.12.2007, 23:25 
Аватара пользователя
PAV писал(а):
Здорово, а в моем издании Львовского этого действительно нет.

У меня 3-е издание, исправленное и дополненное (2003)

 
 
 
 
Сообщение02.12.2007, 23:27 
Аватара пользователя
А у меня второе :cry:

 
 
 
 
Сообщение02.12.2007, 23:36 
Аватара пользователя
Вот здесь: http://www.mccme.ru/free-books/ есть электронный вариант третьего издания.

 
 
 
 
Сообщение02.12.2007, 23:39 
Аватара пользователя
Она и тут доступна не только мехматянам:
http://lib.mexmat.ru/books/2476

 
 
 
 
Сообщение14.04.2008, 18:49 
photon, цитируя Львовского, писал(а):
Висячие строки. ... значение 10000 означает, что разрыв полностью запрещен. По умолчанию и \clubpenalty, и \widowpenalty равны 150.

А как, собственно, присвоить значение данному пенальти? Команду и не нашёл, и не подобрал... На \clubpenalty=5000 получаю ругань.

(Замечу, что поиск этой ветки по ключевому слову "clubpenalty" к успеху не привёл. Видимо потому, что оно использовано только в пределах цитаты? Ежели гипотеза верна, то теперь поиск получится, но со вторым именем по-прежнему не пройдёт.)

 
 
 
 
Сообщение14.04.2008, 20:28 
Не знаю, у меня получается; указываю команды в преамбуле документа. Но справедливости ради отмечу, что существенного различия между значениями 150 (по умолчанию) и 9999 не увидел, мне даже показалось, что эти числа ничего на самом деле не меняют. А вот если поставить значения 10000, то тогда эффект "на лицо".

 
 
 
 
Сообщение14.04.2008, 20:47 
Значит ли это, что синтаксис
\clubpenalty=5000
правильный, располжение этой команды после перечисления пакетов, непосредственно перед \begin{document} --- правильно, и причины ругани надо искать в чём-то другом? (саму ругань смогу процитировать только завтра... undefined command кажется было... кажется...

Да уж... вдову (widow) с окошком (window) перепутал... sorry.

 
 
 
 
Сообщение15.04.2008, 20:44 
Ну да, у меня в одном моем большом документе именно так. Ну и типа работает. Правда в том моем документе я использовал класс документа memoir, но думаю что с более стандартными классами документов все должно быть аналогично.

 
 
 [ Сообщений: 15 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group