Лекция 5 Обстановки или, процедуры

advertisement
Лекция 5
Обстановки или,
процедуры
Обстановки
• Очень важная конструкция environment используется для
формирования особенных режимов обработки и расположения
текста (environment — обстановка, окружение, среда).
• Для примера рассмотрим обстановку verbatim, которая служит
для буквального воспроизведения набранного текста. Слово
verbatim означает дословно.
• Заметим, что наряду с этой обстановкой существует команда
\verb, также предназначенная для точного воспроизведения
исходного текста.
• Для того чтобы отграничить параметр этой команды от
окружающего текста установлено следующее правило: первый
знак после названия команды принимается в качестве
ограничителя параметра, его повторное появление служит концом
параметра. Например, в тексте \verb+Example @#+
параметром является текст между плюсами, а сам этот текст
набран так \verb=\verb|\verb+Example @#+|=.
Обстановка verbatim
• Каждая обстановка имеет имя. Это имя ставится в фигурных
скобках при задании начала и конца текста, помещаемого в
данную обстановку. В остальном скобки выглядят одинаково:
• \begin{verbatim}
• …………
• \end{verbatim}
• Помещаемый внутри текст воспроизводится буквально, с
сохранением пробелов, специальных символов и переводов строк
и установкой шрифта \tt.
• Обстановка verbatim* отличается тем, что печатает вместо
пробелов «видимый символ».
• Имеется специальный пакет с более современными вариантами
этих обстановок и аналогичных им команд.
Простейшие обстановки
• Обстановка verse сделана для набора стихов:
•
•
•
•
•
\begin{verse}
А для низкой жизни были числа,\\
Как домашний, подъяремный скот,\\
Потому что все оттенки смысла\\ Умное число передает.\\
\end{verse}
• Близкая по действию обстановка quotation служит для набора
цитат
Размещение текста
• Вот несколько простых обстановок, управляющих выравниванием
текста
Перечисления
• Эта обстановка имеет три основных варианта:
Перечисления (продолжение)
• Само это перечисление набрано с помощью description так:
•
•
•
•
•
•
Эта обстановка имеет три основных варианта:
\begin{description}
\item[\it itemize] Для перечисления в форме ...
\item[\it enumerate] Для перечисления в форме ...
\item[\it description] Для перечисления в форме ...
\end{description}
Перечисление
itemize
• Обстановка может использоваться вложенно. На первом уровне
по умолчанию используется метка $\bullet$, а на втором —
тире. На любом уровне каждый элемент списка начинается
командой \item:
Перечисление
enumerate
• Посмотрим на тот же пример в обстановке с нумерацией. На
первом уровне по умолчанию используются числа, а на втором
буквы. Максимальный уровень вложенности — 4. На любом
уровне каждый элемент списка начинается командой \item:
Обстановка minipage
• Эту обстановку мы только-что использовали для набора двух
параллельных текстов. Выглядело это так
•
•
•
•
•
•
•
•
•
•
•
•
\noindent\begin{minipage}[t]{0.47\textwidth}
\begin{enumerate}
\item Глава 1 . . . . . .
\end{enumerate}
\end{minipage}\hfill
\begin{minipage}[t]{0.47\textwidth}
{\begin-verb
\begin{enumerate}
\item Глава 1 . . . . .
\end{enumerate}
\end-verb}
\end{minipage}
• Обстановка имеет обязательный параметр — ширину и факультативный параметр — расположение, задаваемое буквой t для
верха, b для дна или c для центра.
Таблицы и выводы
• Термин вывод может показаться странным, но ничего не сделать,
- это законный термин. Цитируем (с помощью quotation)
• Справочник полиграфиста
• Попросту вывод — это таблица без линеек.
• Таблицы и выводы здесь не различаются. Разделяющие линейки
ставятся в тех местах, где понадобятся. Но конструкций для
формирования таблиц и выводов две — для обычного набора
• (обстановка tabular) и для математического (обстановка
array). Пример на следующем слайде
Пример таблицы
•
•
•
•
•
•
Набор:
\begin{tabular}{lcr}
Left & Central
& Right\\
Левое & Центрированное & П
\end{tabular}
Результат:
Еще простой пример
• Отчеркнем текст линейкой
• \noindent\begin{tabular}{|c}
• \begin{minipage}[t]{0.95\textwidth}
• Никогда не воображай себя иным, чем это может
показаться другим, чтобы то, чем ты был или мог быть,
было ничем иным, как то, чем ты был или мог
показаться другим, будучи иным.
• \end{minipage}
• \end{tabular}
Выравнивание полей и линейки
• При задании таблицы нужно указать в фигурных скобках способ
выравнивания полей типовой строки. Формат строки таблицы
задается форматной строкой, в которой c соответствует
центруемому полю, l — полю, выравниваемому по левому
краю, r — полю, выравниваемому по правому краю, | —
вертикальной линейке, @{...} — более сложному заполнению
междуколонного пространства.
• Далее следует заполнение полей, причем отдельные поля
разделяются знаком амперсанда &, а набор строки (кроме
последней) обозначается командой \\. Количество полей в
конкретной строке может быть меньше чем это предусмотрено в
форматной, а превышение числа полей над заданным считается
ошибкой.
• Команда \hline вырабатывает горизонтальную линейку.
Пример
• Исходный текст
•
•
•
•
•
•
•
•
•
•
•
\begin{center}
\begin{tabular}{c|rrcl|}
\hline
\No & & Engl. & Deu. & Fr.\\
\hline
1 & 10
& ten
& zehn
& dix
\\
2 & 100 & hundred & hundert & cent \\
3 & 1000 & thousand & tausend & mille \\
\hline
\end{tabular}
\end{center}
• Результат
Соединение столбцов
• В случае необходимости при наборе конкретной строчки можно
захватить несколько столбцов, переопределив формат получившегося столбца (эта конструкция позволяет переопределить
формат и одного столбца). Для такого переопределения используется команда \multicolumn{n}{f}{...}, где n — число
столбцов, f — формат получающегося столбца.
• В связи с этим нужно подумать и о частичных горизонтальных
линиях. Команда \cline{k-l} проводит линию в столбцах от
k до l включительно.
Матрицы и определители
• Табличная обстановка широко используется и в математическом
наборе, в частности, конечно, для матриц и определителей.
• Вопрос об ограничителях прост, — используются уже знакомые
нам конструкции \left и \right
•
•
•
•
$$\left(\begin{array}{cccc}
a_{11} & a_{12} & a_{13} & a_{14}\\
a_{21} & a_{22} & a_{23} & a_{24}
\end{array}\right)$$
Формулы с вариантами
• Формулы с несколькими случаями тоже описываются с помощью
обстановки array
• $$ f(x)=\left\{\begin{array}{ll}
•
0, & x<a, \\
•
\displaystyle\frac{x-a}{b-a} & a\leq x\leq b,\\
•
1, & x<a.
•
\end{array}\right. \eqno(A)$$
Многострочные формулы и группы формул
• Табличные обстановки удобны и при выравнивании нескольких формул
по знакам отношения. Обратите внимание на формат строки «таблицы»
•
•
•
•
•
•
$$\begin{array}{l@{\,=\,}l}
f(x) & ax^3+bx^2+cx+d\\
& d+x(c+x(b+xa)),\\[4pt]
F_2(x) & Ax^3+Bx^2+Cx+D_0\\
& D_0+x(C+x(B+xA)).
\end{array}$$
• Для набора формул и групп формул существуют специальные
обстановки equation (с автоматической нумерацией), equation*
(без нумерации), а также eqnarray и eqnarray*.
Рисунки
• Обстановка picture предоставляет вам некоторые
возможности рисования картинок. Хотя в последней версии
ЛаТеха в сравнении с исходным произошли существенные
улучшения, я лично предпочитаю импортировать рисунки,
выполненные в ПостСкрипте, или битовые изображения в какомлибо стандартном графическом формате.
• Об этом речь пойдет потом.
Плавающие объекты
• Иногда в тексте встречаются крупные неразделимые объекты,
которые в отличие от остального текста нужно помещать целиком
на одной странице. Они называются плавающими (float), так как
могут уплыть с того места, где определены.
• В Латехе выделены две категории плавающих объектов —
рисунки и таблицы, определяемые соответственно обстановками
figure и table. Объекты каждого типа выстраиваются в
отдельную «очередь», в которой не могут обгонять друг друга.
Если какой-либо объект не может быть расположен в тексте, вся
очередь ждет окончания текста документа или специальной
команды \clearpage.
• На следующем слайде приведен пример использования одной из
плавающих обстановок.
Текст примера с предыдущей страницы
• \begin{table}[ht]
•
\begin{tabular}{|c|l|l|}
•
\hline
•
Код & Место & Объяснение\\
•
\hline
•
h & {\it here} & в месте описания\\
•
t & {\it top} & наверху\\
•
b & {\it bottom} & внизу\\
•
p & {\it page} & на отдельной странице\\
•
\hline
•
\end{tabular}
• \caption{Параметры расположения плавающих объеектов}
• \end{table}
Библиография
• Обстановка thebibliography служит для печатания списка
цитируемой литературы. Ее единственным параметром является
образец текста, ширина которого будет использована для
определения размера метки записей, одинакового для всех
записей списка.
• Внутри обстановки записи начинаются с команд
\bibitem[lab]{key}, где key — ключ, который
используется при цитировании в тексте, а lab —
факультативный параметр, задаваемый, если автор не хочет
пользоваться автоматически генерируемой сквозной нумерацией.
• В тексте можно ссылаться на эти записи, используя команды
\cite{key}, — вместо них автоматически подставятся метки.
Документ
• Сам набираемый текст является также одним экземпляром
обстановки, — именно, обстановки document. Основной файл
ТеХа обычно состоит из текста внутри этой обстановки и
преамбулы, о которой мы будем говорить позднее.
• В других классах обрабатываемых материалов возможны и другие
обстановки. Так в классе letter, предназначенном для
приготовления писем, нужно использовать обстановку letter.
Описание новой обстановки
• Новая обстановка определяется командой
• \newenvironment{envname}% Имя обстановки
•
[num]%
Число параметров, они получают имена #1,
•
%
#2 и т. д.
•
[opt]%
Факультативный параметр, который может
•
%
заменить #1
•
{begdef}% Текст пролога, использующий параметры
•
{enddef}% Текст эпилога
Упражнение
• Нам часто приходится
набирать алгоритмы и
программы. Система
отступов разного размера
позволяет структурировать
алгоритм.
• Алгоритм выглядит лучше,
если его отчеркнуть слева
вертикальной палочкой.
• Здесь я покажу упрощенный
вариант макросредств,
облегчающих такой набор.
Упражнение (2)
• Вот как выглядит этот фрагмент в наборе
•
•
•
•
•
•
•
•
•
•
{\obeylines
\usu $sp_1' := 0;$
\usu for $i : = 2$ to $n$ do begin
\tab $v :=sp_i;$
\tab if $P(v+ 1)\neq P(i+1)$ then
\tabi $sp'_i:= v$
\tab else
\tabi $sp'_i:= sp_v$;
\usu end;
}
Упражнение (3)
•
•
•
•
•
•
Мы использовали в тексте три макрокоманды
\def\usu{\raisebox{-2pt}[8pt][2pt]
{\rule{0.6pt}{14pt}}\,\,\,\,}
\def\tab{\usu\hspace*{10pt}}
\def\tabi{\usu\hspace*{20pt}}
Команда \usu формирует минимальный отступ с
чертой нужного размера. С помощью команды
\raisebox эта черта слегка опускается вниз.
• Остальные две команды увеличивают отступ.
Download