April 13, 2022

LaTeX: базовое форматирование

LaTeX используется во всем мире для научных публикаций, документации, книг и во многих других формах публикации. Он не только позволяет создавать корректно оформленные документы, но и позволяет пользователям быстро справляться с сложными аспектами вёрстки текста, такими как ввод математических данных, создание оглавлений, ссылок и библиографий, а также согласованная компоновка текста во всех разделах документа. Благодаря огромному количеству доступных пакетов с открытым исходным кодом (подробнее об этом позже) возможности LaTeX почти безграничны. Эти пакеты позволяют пользователям значительно расширить возможности LaTeX, например создавать сноски, рисовать схемы и диаграммы, создавать таблицы. Также возможно создавать презентации и подключать модули для работы с таблицами, например язык анализа данных R.

Одна из наиболее важных причин по которым люди используют LaTeX, заключается в том, что он отделяет содержимое от стиля. Это означает, что как только вы напишите свой документ, мы с легкостью сможем изменить его внешний вид. Аналогичным образом, вы можете создать один стиль документа который можно использовать для стандартизации внешнего вида множества различных документов.

Первый шаг - создать новый проект LaTeX. Вы можете сделать это на своем компьютере, создав новый файл .tex, или же вы можете начать новый проект в Overleaf (онлайн редактор LaTeX документов. Автор предлагает в первую очередь освоить и использовать именно его).

\documentclass{article}

\begin{document}
First document. This is a simple example, with no 
extra parameters or packages included.
\end{document}

В первой строке кода объявляется тип документа, известный как класс. Класс управляет внешним видом документа. Для разных типов документов потребуются разные классы, т.е. для резюме потребуется не такой класс, как для научной статьи. В данном случае классом является article, статья, самый простой и распространенный класс LaTeX. Принципиальной разницы между простыми текстовыми классами нет, в отчёте добавляется ещё одна ступень иерархии заголовков относительно статьи - часть, а в книге ещё одна ступень относительно отчёта - глава. Соответственно этому незначительно меняются стандартные отступы и колонтитулы, которые в документах, создаваемых не в учебных целях всё равно изменяются на собственные. Принципиально отличается только класс Beamer, позволяющий создавать презентации.

Преамбула документа

В предыдущем примере текст был введен после команды \begin{document}. Все, что находится в файле .tex до этого момента, называется преамбулой. В преамбуле определяется тип документа, язык, пакеты (подробнее об этом позже), и несколько других элементов. Например, обычная преамбула простого документа будет выглядеть следующим образом:

\documentclass[12pt, a4paper]{article}
\usepackage{cmap}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}

Или, как мы выяснили в прошлый раз, при использовании более современного компилятора

\documentclass[12pt, a4paper]{article}
\usepackage[russian]{babel}
\babelfont{rm}{PT Astra Serif}
\babelfont{sf}{PT Astra Serif}
\babelfont{tt}{Courier}

Полужирный, курсив и подчеркивание

Очень часто в тексте документа нужно выполнить выделение полужирным, курсивом или подчёркиванием. Эти частые операции осуществляются написанием выделяемой части текста в соответствующем тэге:

  • Жирный шрифт: \textbf{...}.
  • Курсив: \textit{...}.
  • Подчеркивание: \underline{...}.

Добавление изображений

Теперь рассмотрим, как добавлять изображения в документ LaTeX. Ниже приведен пример того, как включить изображение.

\documentclass{article}
\usepackage{graphicx}
\graphicspath{ {images/} }

\begin{document}
The universe is immense and it seems to be homogeneous, in a large scale, everywhere we look at.

\includegraphics{universe}
There's a picture of a galaxy above

LaTeX не может работать с изображениями сам по себе, поэтому вам нужно будет использовать пакет. Помните, мы упоминали пакеты выше, и даже использовали несколько для написания текста кириллицей?
Если взглянуть в мир LaTeX чуть глубже, для пакетов есть онлайн архив CTAN, у каждого пакета есть очень подробная документация, а для пакетов, создающих, например, ГОСТ стили ещё и на русском.
Пакеты можно использовать для изменения внешнего вида вашего документа по умолчанию или для расширения функциональных возможностей. В данном конкретном случае необходимо включить изображение в документ, поэтому следует использовать пакет graphicx. Этот пакет предоставляет команды \includegraphics{...} и \graphicspath{...}. Чтобы использовать пакет, необходимо включить в преамбулу строку \usepackage{graphicx}.

  • Команда \graphicspath{ {images/} } сообщает LaTeX, что изображения хранятся в папке с именем images в текущем каталоге (относительно файла .tex, в котором ведётся работа).
  • Команда \includegraphics{universe} - включает изображение в документ. Здесь universe - это имя файла, содержащего изображение без расширения, поэтому universe.png становится universe. Имя файла изображения не должно содержать пробелов или нескольких точек.

Примечание: Если расширение файла опущено, LaTeX попробует выполнить поиск по всем поддерживаемым форматам. Также обычно рекомендуется использовать строчные буквы для расширения файла при загрузке файлов изображений.

Подписи, ярлыки и ссылки

Изображения могут быть подписаны, помечены и снабжены ссылками с функцией figure, как показано ниже:

\begin{figure}[h]
    \centering
    \includegraphics[width=0.25\textwidth]{mesh}
    \caption{a nice plot}
    \label{fig:mesh1}
\end{figure}

As you can see in the figure \ref{fig:mesh1}, the
function grows near 0. Also, in the page \pageref{fig:mesh1}
is the same example.

В примере приведенном выше есть три важные команды:

\caption{a nice plot}
\label{fig:mesh1}
\ref{fig:mesh1}

При размещении изображений в документе LaTeX рекомендуется помещать их в среду figure или аналогичную среду, чтобы LaTeX расположил изображение таким образом, чтобы оно соответствовало остальной части вашего текста. Среды выступают как полноценные и самостоятельные единицы. Сами эти окружения часто располагаются по правилам, а внутри них действуют собственные правила размещения. Например, оператор centering в figure отцентрирует его содержимое, а сама figure будет стремиться расположиться на одной странице, то есть является неразрывной. Так в figure нельзя помещать длинные таблицы, потому что LaTeX не сможет вставить в длинную таблицу разрыв страницы и мы просто-напросто не увидим то, что выходит за пределы листа А4.

Создание списков в LaTeX

Создавать списки в LaTeX очень просто. Вы можете создавать списки, используя различные среды списков. Ещё раз: среды - это разделы нашего документа, которые вы хотите представить иначе, чем остальную часть документа. Они начинаются с \begin{...} и заканчиваются на \end{...}.

Существует два основных типа списков: упорядоченные списки и неупорядоченные списки. Каждый из них будет использовать разную среду.

Неупорядоченные списки

Неупорядоченные списки создаются средой itemize. Каждой записи должна предшествовать управляющая последовательность \item, как показано ниже.

\begin{itemize}
\item The individual entries are indicated with a black dot, a so-called bullet.
\item The text in the entries may be of any length.
\end{itemize}

По-умолчанию отдельные записи обозначаются черной точкой, так называемой маркировкой. Текст в записях может быть любой длины. Чтобы изменить маркер списка необходимо в преамбуле документа обновить значение для команды \item. В примере ниже используется длинное тире, шириной в одну букву M используемого вами шрифта.

\renewcommand\labelitemi{\emdash}

Упорядоченные списки

Упорядоченный список имеет тот же синтаксис в другой среде. Мы создаем упорядоченные списки, используя среду enumerate:

\begin{enumerate}
\item This is the first entry in our list
\item The list numbers increase with each entry we add
\end{enumerate}

Как и в случае с неупорядоченными списками, каждой записи должна предшествовать управляющая последовательность \item, которая автоматически сгенерирует номер, обозначающий элемент. Из-за такой автоматизации удобно перемещать элементы списка между собой, не заботясь о нумерации. Перечисляемые метки состоят из последовательных номеров, начинающихся с единицы. Это поведение также возможно изменить, добавив соответствующую строку в преамбуле, но для примера, изменим перечисляемые метки для одного списка:

\begin{enumerate}[label=\asbuk*),ref=\asbuk*]

Такой набор опций создаст список из меток а) б) в) ....

Вместо выводов

В этой статье я постарался описать самые часто используемые инструменты базового редактирования текста. Для оформления подавляющего большинства текстов этого будет достаточно. Осталось описать таблицы, псевдографику, множественные источники данных и автоматизации, но часто это причисляют к нетривиальным механизмам, поэтому пока возьмём небольшую паузу. Думаю, важно будет сказать, что использование LaTeX - это дело привычки. Например, однажды сформировав преамбулу для своих документов (например, по внутреннему, корпоративному стандарту) перестаёшь думать о стилях и вёрстке, а думаешь уже только о содержательной составляющей.