Tex: подробное описание С. М. Львовский


Download 1.51 Mb.
Pdf ko'rish
bet49/143
Sana08.05.2023
Hajmi1.51 Mb.
#1444247
1   ...   45   46   47   48   49   50   51   52   ...   143
Bog'liq
LaTeX-Lvovsky

6.1. Переносы
Вероятно, читатель был шокирован тем, что в нашем примере с overfull’ом TEX не смог най
ти, где сделать перенос в слове
«если». Дело, в частности, в том, что обычно TEX не делает
переносов, при которых от слова отрываются две последние буквы. Это соответствует нор

мам английской орфографии, но для русского языка такое ограничение неуместно. Поэтому
при работе с русскими текстами можно (и нужно) установить такой режим, в котором пе

ренос двух последних букв допустим. Устанавливается этот режим с помощью изменения
параметра \righthyphenmin (см. стр.
14
по поводу TEXовских параметров). Значение это
го параметра
— целое число, равное наименьшему количеству букв в слове, которые можно
переносить на следующую строку. Стало быть, если написать в файле
\righthyphenmin=2
то при обработке всех абзацев, кончающихся после этой команды, переносы с отрывом двух
последних букв будут разрешены. Если Вам встретится абзац английского текста, то перед
завершающей его пустой строкой дайте команду
\righthyphenmin=3
дабы не сделать неверных переносов в английских словах.
Общее облегчение режима переносов с помощью \righthyphenmin может, тем не менее,
ничем не помочь против встретившегося Вам overfull’а: не исключено, что TEX действитель
но не знает, как перенести какое-то слово. Таких слов не очень много, но они встречаются.
Кроме того, TEX не делает автоматических переносов в словах, содержащих диакритические
знаки (для русского языка
— ударения над буквами или букву ¨е), а также в словах, в кото
рых присутствуют наряду с буквами цифры, знаки препинания и т. п. Далее, если в слове
присутствует дефис, то TEX сможет сделать в нем перенос только на месте этого дефиса
(слово
«генерал-губернатор» будет перенесено так, что генерал- останется в конце строки,


III.6. АБЗАЦЫ
71
а губернатор начнет следующую строку). Что делать в таких случаях, когда автоматически
вставляемых TEXом переносов не хватает?
Совет номер один
— попробуйте немного переписать абзац, изложив в нем мысли по-дру
гому. Обычно после небольших изменений в абзаце неприятности с переносами исчезают;
как показывает опыт, качество текста при этом тоже зачастую улучшается (с точки зрения
языка, а не TEXа). Пусть, однако, улучшать изложение дальше некуда, а абзац все равно
получается неудачный. Посмотрим, что еще можно сделать, чтобы избавиться от overfull’а.
Если TEX не может перенести слово, перенос которого по правилам русского языка воз
можен, то есть два способа указать TEXу на это обстоятельство.
Во-первых, существует
«одноразовый» способ указать TEXу места переносов в слове.
Это делается с помощью команды \- таким, например, образом:
NA\-\"EM\-NIK
Команда \- означает, что данное слово можно переносить в тех и только тех местах, где стоят
знаки \- (хотя бы и вопреки тому, что диктует TEXовский алгоритм переноса). Она годится
для любых слов (с буквой ¨е, цифрами и т. д.) Однако при этом TEX не запоминает, какие
слова и в каких местах позволила ему перенести команда \-. Если, например, то же слово
«на ¨емник» встретится в тексте еще раз, TEX по-прежнему будет считать, что переносить его
нельзя.
Во-вторых, если слово, которое надо переносить не в тех местах, которые находит ал

горитм переноса, встречается в тексте неоднократно, имеет смысл указать это TEXу «раз и
навсегда
» (в пределах данного документа). Для этого предназначена команда \hyphenation.
В качестве ее аргумента указываются слово или слова, в которых дефисами обозначены раз

решенные места переносов. Например:
\hyphenation{WKL@-ˆEN OB-LASTX}
Теперь слова
«включен» и «область» всегда будут переноситься так, как было указано (хотя
бы и вопреки тому, что диктует алгоритм переноса). Если в слове, указанном в качестве аргу

мента команды \hyphenation, дефисов не поставить, то это будет означать, что переносить
его вообще нельзя. Разумное место для команды \hyphenation
— преамбула документа.
Слова, указанные в аргументе команды \hyphenation, должны быть разделены пробела

ми. Не забывайте, что конец строки
— тоже пробел, так что слова можно располагать и в
нескольких строчках. Пустой строки в аргументе \hyphenation быть не должно. В качестве
аргумента команды \hyphenation нельзя указывать слова с диакритическими знаками или
небуквенными символами.
Слова в исходном тексте, в которые вставлены \-, будут переноситься именно там, где
указано этими командами, невзирая на то, что говорит команда \hyphenation.
Бывают случаи, когда избавиться от overfull’а не помогают даже идеально расставленные
переносы: например, если в конец строки попадает слово, которое переносить нельзя, вроде
«гвоздь», или не допускающая переноса математическая формула (кстати, если в неудачной
строке присутствует нечто более сложное, чем просто текст, TEX в сообщении об overfull’е
заменяет это на пару квадратных скобок []). Что делать в таких случаях, рассказано в по

следующих разделах.

Download 1.51 Mb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   143




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling