Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 26
Текст из файла (страница 26)
Процедура quoteне делает отступ в начале абзаца, а процедура quotation делает стандартныйотступ.Процедуру quote используют для выделения одного абзаца или коротких цитат:116Глава 5. Форматирование абзацевНародная мудрость гласит:\begin{quote}Краткость~--- сестра таланта.Народная мудрость гласит:Краткость — сестра таланта.Слово — серебро, а молчание —золото.Слово~--- серебро, амолчание~--- золото.\end{quote}Процедура quotation используется для выделения более одного абзаца:В отличие от процедуры \texttt{quote}каждый абзац начинается с отступа:\begin{quotation}Для коротких фраз используется\texttt{quote}.Для выделения двух и более абзацевлучше подходит \texttt{quotation}.\end{quotation}В отличие от процедуры quote каждыйабзац начинается с отступа:Для коротких фраз используется quote.Для выделения двух и более абзацев лучше подходитquotation.В теле процедуры quote и ей подобных можно использовать декларации \center,\flushleft и \flushright, соответствующие процедурам из предыдущего раздела.Вот пример цитаты с выравниванием:\begin{quote}\flushrightв процедуре \texttt{quote}использовано выравнивание текста\\вправо.\end{quote}5.3.Вот пример цитаты с выравниванием:в процедуре quoteиспользовановыравнивание текставправо.СтихиДля форматирования стихов используется процедура verse:\begin{verse}...\end{verse}Она устанавливает одинаковый отступ от правой и левой границы.
Строки отделяются друг от друга командой \\. Строфы, как обычные абзацы, разделяютсяпустыми строками.Глухой глухого звал к суду судьи глухого,Глухой кричал: «Моя им сведена корова!» —«Помилуй,— возопил глухой в ответ,—Сей пустошью владел ещё покойный дед».1175.4. СпискиСудья решил: «Чтоб не было разврата1 ,Жените молодца, хоть девка виновата».А.
С. ПушкинЭти шутливые стихи во входном файле выглядят примерно так:\begin{verse}Глухой глухого звал к суду судьи глухого,\\*Глухой кричал: <<Моя им сведена корова!>> ---\\<<Помилуй,--- возопил глухой в ответ,---\\*Сей пустошью владел ещё покойный дед>>.Судья решил: <<Чтоб не было разврата, \\*Жените молодца, хоть девка виновата>>.\emph{А.\,С.
Пушкин}\end{verse}Команда \\* действует так же, как и \\, но к тому же препятствует переносуследующей строки на новую страницу. Она может использоваться, чтобы запретить перенос строк там, где это нежелательно (раздел 4.4). Поскольку строки вданном случае заметно короче ширины страницы, кажется, что отступ справабольше, чем слева.
Равенство отступов будет заметно, если не использовать команды \\ для разбиения строк. Так иногда поступают, когда процедуру verseиспользуют для иных целей, нежели печать поэтических сборников.5.4.СпискиLATEX предлагает три процедуры для составления списков:\begin{itemize}\begin{enumerate}\begin{description}item-listitem-listitem-list\end{itemize}\end{enumerate}\end{description}Тело процедур item-list состоит из последовательности записей, начинающихсяс команды\item[mark]Команда \item помечает запись меткой mark. Если необязательный аргумент(вместе с квадратными скобками) отсутствует, используется «метка по умолчанию».
Вид «метки по умолчанию» зависит как от используемой процедуры, таки от уровня вложенности списка в другие процедуры составления списков. Допускаются четыре уровня вложенности. Покажем действие каждой процедурына примерах.Имеется несколько вариантов этой строки. Мы не знаем, какой из них действительно принадлежит Александру Сергеевичу.11185.4.1.Глава 5. Форматирование абзацевПроцедура itemizeВ приводимом ниже примере форма исходного текста во входном файле не имеетзначения.
Поэтому пробелы в начале некоторых строк необязательны, но онипозволяют легче отслеживать уровень вложенности процедуры при внесении внеё изменений.\begin{itemize}\item Первая запись первого уровня.\begin{itemize}\item Первая запись второго уровня.\begin{itemize}\item Третий уровень.\begin{itemize}\item Четвертый уровень.\end{itemize}\end{itemize}\item Вторая запись второго уровня.\end{itemize}\item Вторая запись первого уровня.\end{itemize}Результат действия процедуры \itemize показывает, как помечаются записи «поумолчанию»:• Первая запись первого уровня.– Первая запись второго уровня.∗ Третий уровень.· Четвертый уровень.– Вторая запись второго уровня.• Вторая запись первого уровня.Чтобы изменить метку, нужно описать её в необязательном аргументе команды\item:\begin{itemize}\item[\$]Первая запись\item[\#\#] Вторая запись\end{itemize}$ Первая запись## Вторая записьМетки в этом примере прижимаются к правому краю отведённого для них поля.Изменить это правило можно с помощью команды \hfill (раздел 4.3).
Например: \item[\$\hfill].Метки, используемые процедурой itemize по умолчанию на соответствующемуровне вложенности, производятся командами1195.4. Списки\labelitemi\labelitemiii\labelitemii\labelitemivПереопределив их с помощью \renewcommand (раздел 7.1), можно заменить меткисразу у всех записей:\begin{itemize}\renewcommand{\labelitemi}{\#}\item Первая запись\item Вторая запись\end{itemize}# Первая запись# Вторая записьПолезно обратить внимание, что здесь команда \labelitemi переопределена внутри процедуры itemize.
Если её изменить до начала процедуры, то новое определение будет использовано в последующих примерах, а мы к этому в данномслучае не стремимся. Область действия вновь определённых команд подчиняется тем же правилам, что и область действия деклараций (раздел 2.5).5.4.2.Процедура enumerateПроцедура enumerate нумерует записи. Она также может быть вложена в другиепроцедуры составления списков.
Соответственно четырём уровням вложенностииспользуются четыре счётчика: enumi, enumii, enumiii, enumiv. Каждая записьувеличивает счётчик соответствующего уровня на единицу. Однако при наличии необязательного аргумента в команде \item[mark] счётчик не увеличивается. Заменив в самом первом примере из предыдущего раздела все itemize наenumerate, нетрудно установить, как нумеруются записи всех возможных уровней по умолчанию:1.
Первая запись первого уровня.(a) Первая запись второго уровня.i. Третий уровень.A. Четвертый уровень.(b) Вторая запись второго уровня.2. Вторая запись первого уровня.«Метки по умолчанию» печатают команды\labelenumi\labelenumiii\labelenumii\labelenumivОни используют перечисленные выше счётчики. О счётчиках мы рассказывалив разделе 2.9, тем не менее приведём ещё один несложный пример:120Глава 5. Форматирование абзацев\begin{enumerate}\renewcommand{\theenumi}{\Asbuk{enumi}}\item Первая запись\item Вторая запись\end{enumerate}А. Первая записьБ. Вторая записьВ результате переопределения \theenumi команда \labelenumi (которая по умолчанию определена как \theenumi.) теперь печатает номера первого уровня заглавными русскими буквами.
Читатель может удивиться, зачем мы переопределили команду \theenumi, а не саму команду \labelenumi. Конечно, так тожеможно сделать, однако команда \theenumi используется ещё и в качестве refзначения для печати перекрёстных ссылок (раздел 3.7). Поэтому полезно предусмотреть возможность перекрёстного цитирования при помощи тех же обозначений, которые используются для нумерации записей в списке enumerate.
Изменение формата меток упрощается использованием расширенной версии процедурыenumerate, которую вводит одноимённый пакет. Он описан в разделе 5.6.1.Ссылки на записи в процедуре enumerate формируются, как обычно, припомощи команды \label. Форма представления ссылок, печатаемых командой\ref, включает указание на уровень вложенности записи.
Например, ссылка напервую запись (a) второго уровня внутри записи 1. первого уровня будет напечатана как 1a.5.4.3.Процедура descriptionВ процедуре description «метка по умолчанию» отсутствует. Поэтому обычно в команде \item[mark] должен присутствовать необязательный аргумент.По умолчанию метка mark будет напечатана полужирным шрифтом. Шрифтметки можно изменить, поставив подходящую декларацию из раздела 1.11 непосредственно в аргумент команды \item. Из сказанного следует, что в качествепроцедуры description могут выступать обе рассмотренные выше процедурысоставления списков. Чтобы не путать Читателя, начнём с простого примера:\begin{description}\item[Утка] Водоплавающая птица.\item[Корова] Парнокопытное животное.\item[\itshape Тяни-Толкай]Сказочное животное.\end{description}Утка Водоплавающая птица.Корова Парнокопытное животное.Тяни-Толкай Сказочное животное.Если необязательный аргумент у команды \item опущен, а следующий отличный от пробела символ в тексте есть [, то LATEX ошибочно примет эту квадратнуюскобку за начало необязательного аргумента.
Чтобы избежать этой редкой ошибки, символ [ (возможно, вместе с соседними символами) достаточно заключитьв фигурные скобки. В следующем примере слово [аб] является меткой записи\item и поэтому набрано полужирным шрифтом, слово [вг] — первым словом1215.4. Спискитекста и поэтому смещено вправо, а [де] — вновь меткой, но уже с квадратнымискобками:\begin{description}\item[аб] --- метка,\item{[вг]} --- первое слово,\item[{[де]}] --- метка со скобками.\end{description}аб — метка,[вг] — первое слово,[де] — метка со скобками.В последнем пункте закрывающая квадратная скобка ] внутри необязательногоаргумента заключена в фигурные скобки, чтобы отличить её от квадратной скобки ], означающей конец необязательного аргумента.
Подобный приём обращенияс необязательным аргументом может быть полезен для любой другой команды,имеющей только необязательные аргументы (см. раздел 2.2).5.4.4.Процедуры list и trivlistВыше были описаны простейшие процедуры форматирования списков.
Они имногие другие подобные процедуры определены посредством процедур list иtrivlist. Эти две процедуры позволяют легко управлять всеми параметрамисписков, например шириной меток, величиной отступа в начале абзаца или шириной правого и левого полей.Процедура list имеет два аргумента def-lab и decls:\begin{list}{def-lab}{decls} item-list \end{list}Тело процедуры item-list состоит из записей, каждая из которых начинаетсяс команды \item[mark]. Первый аргумент def-lab определяет, как помечаются записи по умолчанию, если необязательный аргумент [mark] команды \itemопущен. Второй аргумент decls устанавливает декларации, управляющие форматированием записей.