Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 22
Текст из файла (страница 22)
Всё о предложенииПочти все символы из табл. 4.3 доступны во всех шрифтах. Однако при использовании машинописного шрифта Computer Modern возникают проблемы с двумякомандами \l и \L:Сравните: \texttt{\l, \L} и \l, \L.Сравните: l,L и l, L.В этом нет ничего удивительного: обычная пишущая машинка не имеет клавишl и L.Некоторые математические символы изредка встречаются в обычном тексте.Такие символы нетрудно вставить в текст в виде формул, но предпочтительнее использовать специальные команды \textcmd, также собранные в табл. 4.3.Символам •, ·, \, |, { и } из этой таблицы соответствуют команды \bullet, \cdot,\backslash, \mid, \{ и \}, применяемые в математических формулах (глава 6).Символ ␣ обозначает пробел и используется в листингах компьютерных программ.
Знаки < и > в математических формулах набираются очевидным способом при помощи клавиш, имеющихся на любой клавиатуре, но вне формулсимволы < и > после компиляции исходного текста в печатный документ превращаются в нечто, зависящее от текущего языка (точнее, от кодировки шрифта).Использование команд \textcmd, напротив, всегда гарантирует требуемый результат.Ещё две команды из серии \textcmd, а именно\textcircled{text}\textcompwordmarkимеют другое назначение. Первая рисует кружок вокруг текста.
Например:\textcircled{a}, \textcircled{c}, \copyright.a ○,c ©.○,Другая команда используется для разбиения лигатур. Например, сочетание «fi»,набранное при помощи f\textcompwordmark i, отличается от «fi», набранногопросто как fi. Чтобы разбить лигатуру «fi» в слове definition (определение),можно просто написать def{}inition, но тогда LATEX не сможет перенести этослово по слогам, а команда \textcompwordmark не запрещает перенос.Набор текстовых символов значительно расширяется при загрузке пакетаtextcomp.
Соответствующие команды перечислены в таблице 4.4.Ряд символов можно получить с помощью лигатур. Любая лигатура имеет эквивалентную ей команду. Например, перевёрнутый знак вопроса ¿ можно набрать как лигатуру ?‘, но только если текущий язык не русский. Команда \textquestiondown печатает ¿ вне зависимости от выбора языка. Командыи лигатуры для набора текстовых (т. е. не математических) символов собраныв табл. 4.5, причём лигатуры указаны справа от команды.4.2.Всё о предложенииТипографские правила путь немного да отличаются в разных странах.
Например, в текстах на русском языке принято использовать кавычки в виде «ёлочек»,98Глава 4. От буквы до страницыТаблица 4.5Команды для замены лигатур в текстовом режиме—¡‘“«\textemdash\textexclamdown\textquoteleft\textquotedblleft\guillemotleft2)3)4)--!‘1)2)‘“<<3)–¿’”»1) Имеется4) Дляв кодировке OT1. 2) Имеется в кодировке T1.других кодировок эмулирована пакетом babel.\textendash\textquestiondown\textquoteright\textquotedblright\guillemotright2)3)4)3) Имеется-?‘1)2)’”>>3)в кодировках T2A, T2B, T2C.тогда как англичане обычно пишут “.
. . ”, а немцы „ . . . “. Приглядевшись, можнотакже заметить, что различается длина тире. «Импортное» тире (a—b) длиннее,чем «отечественное» (а — б), и не должно быть окружено пробелами. Знатокимогут перечислять примеры подобных различий чуть ли не до бесконечности, номы разберём наиболее известные из них.4.2.1.КавычкиВ английском языке набор кавычек включает два варианта:‘. . . ’“. . . ”‘одинарные’“двойные”В русских изданиях кавычки изображаются в виде «ёлочек»:<<.
. . >>«русские»Их называют русскими, но с не меньшим основанием своими их также считаютфранцузы и немцы. Однако способ набора «ёлочек» с помощью лигатур, т. е. идущих подряд двух символов < или >, возможен только при использовании русскихшрифтов, точнее, кодировок T2A, T2B, T2C. Пакет babel по умолчанию выбираеткодировку T2A для русского языка. В иных случаях можно использовать командыиз табл.
4.6, где представлены все мыслимые виды кавычек. Пакет babel эмулирует кавычки нужного вида, если их нет в текущей кодировке; это утверждениеверно только для команд, печатающих кавычки, но не для лигатур. Для каждогоконкретного языка пакет babel может вводить дополнительные команды наборакавычек. Например, для русского языка существует ещё по крайней мере триспособа набора «ёлочек»1 . Однако мы договорились не перегружать Читателяизбыточной информацией.4.2.2.Дефисы и тиреДефисы и тире набирают при помощи лигатур:1См. russian.dtx, а также раздел 3.6.2.994.2.
Всё о предложенииТаблица 4.6Кавычки‘“«\textquoteleft\textquotedblleft\guillemotleft1)2)\guilsinglleft1)\quotedblbase1)2)\textquotedbl1)2)<„"1) Имеется----в кодировке T1.(-)(–)(—)‘“<<2)’”»>,,1)2)2) Имеется’\textquoteright’\textquotedblright ”\guillemotright1)2) >>2)\guilsinglright1)\quotesinglbase1)в кодировках T2A, T2B, T2C.в составных словахмежду числамимежду словамиДефисы и тире встречаются в тексте, но не в математических формулах, гдедаже длина знака минус отличается от длины дефиса.Сравните: (-), (--) и $(-), (--)$.Сравните: (-), (–) и (−), (−−).Пакет babel с опцией russian вводит дополнительные команды:\cdash--\cdash--~\cdash--*(— )(—)(— )тире в текстетире в составных словахтире в прямой речи(babel)Они по-разному расставляют пробелы вокруг тире.4.2.3.ЛогосыСледующие команды предназначены для использования только в текстовом истроковом режимах:\TeX\LaTeX\LaTeXe\today\ldotsпечатаетпечатаетпечатаетпечатаетпечатаетаббревиатуру TEXаббревиатуру LATEXаббревиатуру LATEX 2εтекущую дату 30 апреля 2004 г.многоточие .
. .Формат, в котором команда \today печатает текущую дату, определяется классом печатного документа. Пакет babel с опцией russian модифицирует эту команду так, что названия месяцев печатаются по-русски:Эта страница напечатана \today{}Эта страница напечатана 30 апреля2004 г.1004.3.Глава 4. От буквы до страницыГоризонтальные пробелыLATEX автоматически устанавливает пропорциональное расстояние между словами в строке. При этом не имеет значения, сколько пробелов между словами имеется во входном файле. Случается, впрочем, что LATEX нуждается в инструкцияхо величине пробела между словами.
Тогда в распоряжении Читателя имеютсяследующие команды и декларации:\,вставляет маленький пробел (между одинарными и двойными кавычками);\␣вставляет пробел нормального размера;~вставляет неразрывный пробел нормального размера (например, междусловами, которые нельзя отрывать друг от друга);\/ вставляет корректирующий пробел при переходе от наклонного или курсивного шрифта (включаемого декларациями \itshape, \slshape, \em) к прямому;\@ увеличивает пробел после знака пунктуации в конце предложения; команда ставится перед знаком пунктуации; она необходима, если символ, предшествующий точке, вопросительному или восклицательному знаку, не являетсястрочной буквой или цифрой;\frenchspacing декларирует подавление дополнительного пробела после знака пунктуации в конце предложения даже в том случае, когда имеется \@;включается автоматически при выборе русского языка;\nonfrenchspacing имеет действие, обратное \frenchspacing; действует поумолчанию при выборе большинства иностранных языков.Перечисленные команды и декларации предназначены для использования в текстовом и строковом режимах, но некоторые из них имеют аналогичное значениеи в математическом режиме (глава 6).Самый маленький пробел \, имеет важное применение.
Его вставляют в сокращения «т. е.» (т.\,е.), «т. п.» (т.\,п.), «т. д.» (т.\,д.), а также между инициалами и фамилией:ИзобретательтрёхфазноготокаМ.О. Доливо-Добровольский.Одновременно он препятствует переносу на новую строку фамилии, но в следующем разделе мы расскажем, как разрешить переносы в подобных случаях.Обратим внимание на ещё один важный случай, когда желательно корректировать пробелы между словами.
Текст, выделенный курсивом, полезно заканчивать корректирующей командой \/:Изобретатель трёхфазного токаМ.О.\,Доливо-Добровольский.{\itshape Пере}стройка\\{\itshape Пере\/}стройкаПерестройкаПерестройкаЧтобы не заботиться о коррекции, следует использовать команды, а не декларации переключения формы шрифта. Они делают коррекцию автоматически:1014.3. Горизонтальные пробелы\textit{Пере}стройка\\\textit{Пере\/}стройкаПерестройкаПерестройкаКак заправский наборщик в типографии, LATEX может автоматически увеличивать пробел после точки, заканчивающей предложение. Чтобы продемонстрировать это, мы включили режим \nonfrenchspacing для данного параграфа:\begin{nonfrenchspacing}Как заправский наборщик в типографии, \LaTeX\ может автоматически. . .сколь аккуратен может быть \LaTeX{}, если его хорошо попросить!\end{nonfrenchspacing}Человеку нетрудно найти, какая точка означает конец предложения, а какаяиспользуется для иных целей. Не мудрствуя лукаво, LATEX считает, что точкафиксирует конец предложения, если она не следует за прописной (заглавной)буквой.
Однако точка может стоять и в середине предложения, как в сокращении «см. рис. 1», и после заглавной буквы в конце предложения. В первомслучае правильное расстояние между словами устанавливается, если после точки поставить неразрывный пробел ~ или \␣, где ␣ обозначает пробел в исходномтексте:см. рис. 1\\см.\ рис.~1см.
рис. 1см. рис. 1Что касается точки, восклицательного или вопросительного знака после заглавной буквы, LATEX будет считать, что они заканчивают предложение, если непосредственно перед ними стоит команда \@:I + II = III\@. Верно!I + II = III. Неверно!\\I + II = III. Верно!I + II = III. Неверно!Различие, как видим, мизерное, но этот пример показывает, сколь аккуратенможет быть LATEX, если его хорошо попросить!Другая причина для перехода на «ручное» управление величиной пробелов —желание достичь визуальных эффектов.
Команда \␣ вставляет один дополнительный пробел (если один пробел перед ней уже есть!):А и Б сидели на трубе\\А \ и \ Б \ сидели на ...А и Б сидели на трубеА и Б сидели на трубеКоманда \\ здесь вызывает принудительный переход на новую строку, а не вставку двух дополнительных пробелов. Чтобы вставить два пробела, нужно использовать две команды \␣:А \ \ и \ \ Б \ \ сиделиКоманды\hspace{len}\hspace*{len}А и Б сидели102Глава 4. От буквы до страницымогут вставлять пробел произвольной длины len.
В следующем примере \hspaceдобавляет пробел длиной 7 миллиметров к имеющимся до и после неё:А\hspace{7mm}и Б\\А\hspace{7mm} и Б\\А \hspace{7mm} и БАААиБиБиБДлина может быть явной или командной, положительной или отрицательной(раздел 2.10):пример наложения \hspace{-7mm}///// текста.пример наложения///// текста.Если \hspace попадает на край строки, то пробел удаляется, однако*-форма команды создаёт неудаляемый пробел:Сравните:\\\hspace{7mm} А и Б сидели\ldots\\\hspace*{7mm} А и Б сидели\ldotsСравните:А и Б сидели. . .А и Б сидели.
. .Для команды \hspace{\fill}, вставляющей пробел бесконечно растяжимойдлины \fill, имеется аббревиатура\hfillДве такие команды в одной строке имеют равную длину:А\hfill и\hfill бАиБКоманды\hrulefill\dotfillзаполняют свободный промежуток в строке горизонтальной линией или точками:пробел из \hrulefill\ линий,\\пробел из \dotfill\ точек.4.4.пробел излиний,пробел из .