суббота, 4 февраля 2012 г.

Диплом в LaTeX. Версия для МАИ. Часть 2.

Предисловие

Это вторая часть рассказа про то, как я писал диплом в МАИ. Первую можно посмотреть здесь, третья будет про составление презентации в beamer.


Необходимые главы

Первой страницей дипломной работы является реферат, в котором описывается о чём была работа, выписывается количество рисунков, таблиц и страниц. Причём, Реферат должен начинаться со второй страницы, идти до Содержания, но не должен в него включаться. Для этого поступаем следующим образом:

\chapter*{Реферат}     % любая команда секционирования со звёздочкой не включается в содержание и не меняет счётчик глав

\setcounter{page}{2}   % устанавливаем счётчику страницы значение 2

Кстати, правильнее было бы модифицировать окружение abstract.

В работе могут присутствовать приложения. Они должны нумероваться арабскими цифрами и идти после списка литературы. Правильным способом было бы переопределение команд, использующихся после \appendix. Но в работе был применён неправильный сопособ, который повторять не следует:

\setcounter{chapter}{6}
\setcounter{section}{0}

\chapter*{Приложение 1.}
\addcontentsline{toc}{chapter}{Приложение 1.}
\label{app:parse}


В данном коде были искусственно изменены номера секций , а название приложения добавлено без занесения в содержание, иначе бы оно имело порядковый номер 6. Так делать нельзя, это быдлокод!

Перечисления

Помимо перечислений itemize и enumerate существует ещё очень хорошее окружение description. В коде выглядит так:

 \begin{description}
    \item[AST] (англ. Abstract Syntax Tree) --- абстрактно--синтаксическое
дерево. Это конечное, помеченное, ориентированное дерево, в котором внутренние
вершины сопоставлены с (помечены) операторами языка программирования, а листья с
соответствующими операндами.
\end{description}


На бумаге - это почти itemize, только нет точки вначале и текст, заключённый в квадратные скобки выделяется жирным.

Теоремы

Не стоит забывать, что для определения теорем, лемм и доказательств существуют специальные окружения. Когда необходимо разместить теорему, в преамбуле определяется её название:

\newtheorem*{rice}{Теорема Райса}

а после, в теле документа идёт уже непосредственно её текст:

\begin{rice}
Всякое нетривиальное свойство рекурсивно--перечислимых языков неразрешимо.
\end{rice}

Таблицы

Таблицы в LaTeX довольно проблемное место. Для начала надо сказать, что существует несколько видов таблиц. Ниже речь пойдёт про стандартные tabular и longtable. Последний нужно применять, если таблица может занимать более одной страницы.

Одна из проблем, связанных с таблицами - ширина колонок. она подстраивается под ширину своего содержания, игнорируя геометрию страницы. Поэтому при определении колонок таблицы в работе указывалось не центрирование, а фиксированный размер:

\begin{longtable}{|c|p{3.5cm}|p{1.5cm}|p{5cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|c|}

параметр p{} указывает фиксированную длину столбца, но центрирует всё по левому краю. Чтобы этого избежать, в работе была определена команда:

% для размещения надписи по центру таблицы
\newcommand{\tblCenter}[1]{\hfill#1\hfill}


Объединение колонок и столбцов делается через multicolomn и multirow, об этом можно почитать у Львовского.

Далее - чуть более интересная задача: раскраска таблицы. Для этого использовался пакет colortbl. Чтобы раскрасить строку начиная с определённой колонки, необходимо задать команду

\rowcolor[rgb]{.8,.88,.95}

где в квадратных скобках указывается цветовое пространство, а в фигурных - значения цветов в нём. Можно не указывать пространство и просто задать уже известный цвет:

\rowcolor{red}

Единственное неудобство - то, что цвет будет задан до конца строки и для его отмены надо в следующей колонке вернуть белый цвет.

И да, не забываем, что подписи к рисункам ставятся снизу, а к таблицам - сверху.

Комментариев нет:

Отправить комментарий