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


 Ручное управление разрывами строк


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

6.3. Ручное управление разрывами строк
Иногда возникает необходимость повлиять на то, в каких местах TEX начинает новую стро
ку при верстке абзаца. Для этой цели есть соответствующие команды, и с одной из них мы
уже встречались: это
«неразрывный пробел», позволяющий запретить разрыв строки между
двумя словами.
Бывает, надо обеспечить, чтобы в каком-то слове не делалось переносов, причем не во

обще никогда (тогда разумно применить команду \hyphenation), а только в данном месте.
Для таких целей удобно применить команду \mbox следующим, например, образом:
Параметр filename задает имя
файла.
pARAMETR \mbox{\bf filename}
ZADAET IMQ FAJLA.
Команда \mbox имеет один обязательный аргумент: в фигурных скобках может находиться
любой текст (в том числе, как Вы заметили, с командами переключения шрифта и т. п.); TEX
будет рассматривать содержимое \mbox’а как одну большую букву, и тем самым, конечно, не
сможет разорвать его между строками.
Вы уже встречались с командой \mbox, если прочли в предыдущей главе раздел о вклю

чении текста в формулы; более подробно мы ее рассмотрим в главе о
«блоках».
Есть еще один, несколько хулиганский, способ запретить TEXу делать перенос в данном
слове и в данном месте: надо в конце слова без пробела поставить команду \-, например,
так:
sLOWO KOROWA\- W DANNOM SWOEM WHOVDENII
PERENESENO NE BUDET.
Автор позаимствовал это прием из книги [
5
].
Теперь посмотрим, что делать, если Вам понадобилось насильно разорвать строку в ка

ком-то месте, не начиная при этом нового абзаца. Для этого есть несколько способов, в за

висимости от того, что Вы хотите получить. Один возможный вариант
— воспользоваться
командой \\ и получить возможно не доходящую до края, но не растянутую строку:
Эта строка
была разорвана. Справа оста

лось пустое место, но зато стро

ка не разреженная.
—TA STROKA\\ BYLA RAZORWANA.
sPRAWA OSTALOSX PUSTOE
MESTO, NO ZATO STROKA
NE RAZREVENNAQ.
Можно также воспользоваться командой \linebreak; при этом оборванная строка будет
выровнена по правому краю, даже если ради этого ее придется растянуть:
Эта
строка
была
разорвана.
Она
выровнена
по правому краю, но для этого ее
пришлось безбожно растянуть.
—TA STROKA BYLA\linebreak
RAZORWANA. oNA WYROWNENA PO
PRAWOMU KRA@, NO DLQ
“TOGO EE PRI[LOSX
BEZBOVNO RASTQNUTX.
Если строка действительно окажется растянутой, то Вы к тому же получите и сообщение об
этом во время трансляции.
Команда \\ допускает и необязательный аргумент (см. стр.
15
): если в квадратных скоб

ках указать какое-то расстояние (в TEXовских единицах длины — стр.
16
), то после оборван

ной строки будет оставлено это расстояние (по вертикали). Пример:


III.6. АБЗАЦЫ
74
Разорвем строку
и оставим место.
rAZORWEM STROKU\\[5pt] I
OSTAWIM MESTO.
При использовании команды \\ с необязательным аргументом бывает удобно вместо рассто

яния в явном виде указать один из следующих параметров:
\smallskipamount
Маленький вертикальный пробел;
\medskipamount
Вертикальный пробел побольше
\bigskipamount
Еще больше.
Точный размер этого пробела зависит от стиля документа; на стр.
79
изображена величина
соответствующих пробелов в стандартных стилях со шрифтом кегля 12.
Команда \\ имеет и вариант со звездочкой (см. раздел I.2.9); если бы мы написали \\*
или \\*[расстояние], то эффект был бы тот же, что и без звездочки, и к тому же было бы
запрещено заканчивать страницу на оборванной строке.
У команды \linebreak также может присутствовать необязательный аргумент. При этом коман

да \linebreak[n] указывает, что в данном месте желателен переход на новую строку, причем ука

зывает
«силу» этого желания (n может быть целым числом от 0 до 4). Если n = 4, то это полностью
равносильно \linebreak без необязательного аргумента, если n = 0, то это означает только, что
строку в данном месте разрешается разорвать (так что применять эту команду с аргументом 0 между
словами обычно бессмысленно); когда n возрастает от 1 до 3, команда \linebreak[n]
«усиливает
давление
» на TEXовский алгоритм верстки абзаца, делая для него разрыв в указанном месте все бо
лее выгодным, невзирая на возможное появление жидких строк.
Есть также команда \nolinebreak, действующая противоположно; она также может принимать
необязательный аргумент
— целое число от 0 до 4. Будучи заданной без аргумента, эта команда запре
щает разрыв строки в указанном месте; точно так же она действует, если ее необязательный аргумент
равен 4. Когда ее необязательный аргумент возрастает от 1 до 3, возрастает невыгода разрыва строки
в указанном месте, даже невзирая на то, что из-за отказа от этого разрыва могут появиться жидкие
строки.
Для простых приложений, о которых идет речь в этой главе, команды \linebreak и \nolinebreak,
как правило, не нужны: чтобы красиво разорвать строку, нужна команда \\ , а для запрещения разры

ва гораздо удобнее
«неразрывный пробел». По-настоящему эти две команды требуются только при
разработке собственных макроопределений, о чем сейчас говорить преждевременно.

Download 1.51 Mb.

Do'stlaringiz bilan baham:
1   ...   47   48   49   50   51   52   53   54   ...   143




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