КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Борьба с последней строкой
Нехорошо, когда последняя строка абзаца слишком коротка (например, короче, чем абзацный отступ следующего абзаца). Чтобы бороться с этим, можно использовать те средства, с которыми мы уже знакомы. Если, например, последняя короткая строка представляет собой обрубок слова, завершающего абзац, то можно либо запретить переносы в этом слове, взяв его в \mbox, либо сказать перед этим словом \linebreak, либо, если это слово длинное, указать в нем место для переносов в явном виде (с помощью команды \-\,) только в начале (в надежде, что поджаться на меньшее расстояние TeX'у будет легче). Другой вариант — сказать \looseness=-1 перед пустой строкой, завершающей абзац: если TeX'у удастся сделать абзац на строку короче, то вряд ли завершающая строка разбитого по-новому абзаца будет короткой. Разумеется, чудес не бывает: эти рецепты могут подействовать, если абзац достаточно длинен, а не состоит из пары строк. Другой нежелательный эффект возникает, когда длина последней строки абзаца лишь чуть-чуть меньше, чем ширина полосы. В этом случае разумно довести последнюю строку до края. В этом может помочь еще не рассматривавшийся нами параметр \parfillskip. Именно, скажите (перед завершающей абзац пустой строкой) \parfillskip=0pt, и TeX постарается растянуть последнюю строку (увеличивая промежутки между словами не только в последней строке, но, при необходимости, и в остальных). Если в результате этих действий не случится overfull'а или underfull'а, то все в порядке. После окончания абзаца прежнее значение параметра \parfillskip не восстанавливается, так что менять его надо внутри группы. Дополнительные тонкости с переносами. Вы можете влиять на частоту переносов в абзацах с помощью параметра \hyphenpenalty. По умолчанию его значение равно . Если присвоить этому параметру большее значение, то переносов будет меньше. Точнее говоря, если у TeX'а будет возможность выбирать, сделать лишний перенос или же обойтись без него, растянув строку чуть больше, 2) то TeX будет склоняться ко второму варианту тем чаще, чем больше значение \hyphenpenalty. Максимально возможное значение параметра \hyphenpenalty равно . Если в момент верстки абзаца это значение именно таково, то переносы в этом абзаце вообще запрещены. Такой режим разумно, например, установить для абзацев, написанных на языке, для которого в вашей реализации TeX'а нет таблицы переносов, чтобы TeX не сделал переносов во французском тексте по английским правилам. Наряду с параметром \hyphenpenalty (отвечающим как за автоматически вставленные переносы, так и за переносы, возможные места для которых вы отметили с помощью команды \-), есть и параметр \exhyphenpenalty, отвечающий за переносы в словах с дефисом или командой \slash. Напомним, что в таких словах автоматический перенос возможен только в том месте, где дефис (или \slash) делит слово на части. Так вот, чем больше значение \exhyphenpenalty, тем с меньшей охотой TeX будет делать переносы в этих местах. Если же значение \exhyphenpenalty равно , то такие переносы будут и вовсе запрещены. Значение двух описанных выше параметров используется TeX'ом в тот момент, когда он видит пустую строку, завершающую абзац. Соответственно, если вы присваиваете этим параметрам новые значения внутри группы, то группа не должна завершаться до этой пустой строки. Учтите также, что если вы увеличиваете значение \hyphenpenalty и тем самым затрудняете TeX'у переносы слов, то вам может понадобиться увеличить и \tolerance или \emergencystretch, чтобы он смог побольше растягивать строки. Полиграфические правила не допускают, чтобы в абзаце шло подряд много (скажем, более трех) строк с переносами. Бороться с таким недостатком помогает параметр \doublehyphendemerits: чем его значение больше, тем менее выгодны для TeX'а будут такие последовательности строк, и тем более настойчиво он будет их избегать при переборе вариантов разбиения абзаца на строки. По умолчанию значение этого параметра равно 10000; если переносы идут подряд, можно увеличить значение этого параметра, скажем, до миллиона (такое большое число выбрано не случайно: чтобы этот параметр оказал действие, его значение должно быть того же порядка, что и квадрат встречающихся при переборе возможных разбиений значений badness); если вы делаете это увеличение не в преамбуле документа, а в группе, то, как водится, нужно, чтобы эта группа содержала и пустую строку, завершающую абзац. Есть также аналогичный параметр \finalhyphendemerits: чем больше его значение, тем с меньшей охотой TeX будет делать перенос в предпоследней строке абзаца. Значение этого параметра по умолчанию равно 5000. Наконец, вот заключительная хитрость. Если вы присвоите значение параметру \uchyph, написав \uchyph=0 то TeX никогда не будет делать переносов в словах, начинающихся с прописной буквы. Такой режим полезен, например, в том случае, если вы не хотите делать переносы в именах собственных. Чтобы снова разрешить TeX'у переносить слова, начинающиеся с прописной буквы, присвойте параметру \uchyph значение .
Дата добавления: 2014-01-03; Просмотров: 401; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |