Урок 1.3. Списки и таблицы простой верстки
Осваиваем три типа списков (маркированные, нумерованные, описания) и учимся верстать таблицы профессионального уровня с пакетом booktabs. Разбираем готовые шаблоны для оформления результатов экспериментов и сравнительного анализа.
Списки и таблицы – два главных инструмента структурирования информации в любом документе. В LaTeX они создаются через специальные окружения и дают вам полный контроль над оформлением. В этом уроке разберем все типы списков и научимся верстать таблицы профессионального уровня.
В LaTeX есть три типа списков: маркированные, нумерованные и списки описаний. Каждый тип имеет свое окружение и свое назначение. Давайте разберем их по порядку.
Маркированные списки (itemize)
Используются, когда порядок элементов не важен. Каждый пункт начинается с команды \item, а маркер (точку, тире или символ) LaTeX добавляет автоматически.
\begin{itemize}
\item Первый элемент списка
\item Второй элемент списка
\item Третий элемент списка
\end{itemize}
Нумерованные списки (enumerate)
Используются, когда порядок важен: шаги алгоритма, этапы исследования, пункты плана. LaTeX автоматически нумерует пункты арабскими цифрами.
\begin{enumerate}
\item Сбор и анализ литературы
\item Разработка методологии
\item Проведение экспериментов
\item Анализ результатов
\item Формулировка выводов
\end{enumerate}
Вложенные списки нумеруются автоматически: первый уровень – цифры, второй – буквы, третий – римские цифры. Это стандартное поведение LaTeX, и его не нужно настраивать вручную.
\begin{enumerate}
\item Первый уровень
\begin{enumerate}
\item Второй уровень
\begin{enumerate}
\item Третий уровень
\item Еще один пункт третьего уровня
\end{enumerate}
\item Снова второй уровень
\end{enumerate}
\item Возвращаемся на первый уровень
\end{enumerate}
Списки описаний (description)
Используются для глоссариев, определений, списков терминов. Каждый пункт начинается с \item[термин], после которого идет описание.
\begin{description}
\item[LaTeX] – система компьютерной верстки документов
\item[Overleaf] – облачная среда для работы с LaTeX
\item[BibTeX] – система управления библиографией
\item[PDF] – формат документов, в который компилируется LaTeX
\end{description}
Смешивать типы списков можно свободно: внутри нумерованного списка может быть маркированный, и наоборот. Главное – правильно закрывать окружения в обратном порядке.
\begin{enumerate}
\item Этапы исследования:
\begin{itemize}
\item Обзор литературы
\item Сбор данных
\item Анализ результатов
\end{itemize}
\item Инструменты, которые мы использовали:
\begin{description}
\item[Python] для обработки данных
\item[LaTeX] для оформления статьи
\item[Git] для контроля версий
\end{description}
\end{enumerate}
Настройка списков с пакетом enumitem
По умолчанию списки выглядят стандартно. Но с пакетом enumitem мы можем гибко настраивать маркеры, отступы и нумерацию.
Пакет enumitem – один из самых полезных для работы со списками. Он позволяет создавать компактные списки (nosep), настраивать отступы (leftmargin) и даже продолжать прерванный список (resume). Подробнее о возможностях пакета – в документации.
\usepackage{enumitem}
% Изменение маркера в маркированном списке
\begin{itemize}[label=$\bullet$]
\item Стандартный маркер
\item Еще один пункт
\end{itemize}
% Изменение маркера на тире
\begin{itemize}[label=---]
\item Пункт с тире
\item Еще один пункт с тире
\end{itemize}
% Изменение нумерации
\begin{enumerate}[label=\textbf{\arabic*.}]
\item Жирные цифры
\item Еще один пункт
\end{enumerate}
% Нумерация заглавными буквами
\begin{enumerate}[label=\Alph*.]
\item Пункт A
\item Пункт B
\item Пункт C
\end{enumerate}
% Убираем отступы (компактный список)
\begin{itemize}[nosep]
\item Пункт без отступов между элементами
\item Еще один пункт
\item И еще один
\end{itemize}
Таблицы: базовое окружение tabular
Таблицы в LaTeX создаются через окружение tabular. Вы задаете структуру таблицы в аргументе: количество колонок и их выравнивание.
\begin{tabular}{lcr}
Левый & Центр & Правый \\
текст & текст & текст \\
123 & 456 & 789 \\
aaa & bbb & ccc \\
\end{tabular}
Спецификаторы колонок:
l– выравнивание по левому краюc– выравнивание по центруr– выравнивание по правому краю|– вертикальная линия между колонкамиp{ширина}– колонка фиксированной ширины с переносом текста
Команды \hline создают горизонтальные линии. Разделители строк – \\. Внутри ячеек текст разделяется символом &. Обратите внимание: в обычных tabular текст не переносится автоматически, если не указана ширина колонки через p{}.
% Таблица с вертикальными разделителями
\begin{tabular}{|l|c|r|}
\hline
Имя & Возраст & Город \\
\hline
Анна & 25 & Москва \\
Борис & 30 & Санкт-Петербург \\
Виктор & 28 & Саратов \\
\hline
\end{tabular}
% Таблица с колонкой фиксированной ширины
\begin{tabular}{lp{5cm}}
Термин & Определение \\
\hline
LaTeX & Система компьютерной верстки документов, созданная Лесли Лэмпортом \\
Overleaf & Облачная платформа для совместной работы с LaTeX-документами \\
\end{tabular}
Профессиональные таблицы с пакетом booktabs
В научной литературе вертикальные разделители в таблицах не используются – это считается дурным тоном. Вместо них применяют тонкие и толстые горизонтальные линии из пакета booktabs.
Три главные команды booktabs: \toprule (толстая линия сверху), \midrule (тонкая линия в середине), \bottomrule (толстая линия снизу). Такие таблицы выглядят чисто и профессионально – именно так оформлены таблицы в ведущих научных журналах.
\usepackage{booktabs}
\begin{tabular}{lrr}
\toprule
Алгоритм & Сложность (средняя) & Память \\
\midrule
Bubble Sort & $O(n^2)$ & $O(1)$ \\
Quick Sort & $O(n \log n)$ & $O(\log n)$ \\
Merge Sort & $O(n \log n)$ & $O(n)$ \\
Heap Sort & $O(n \log n)$ & $O(1)$ \\
\bottomrule
\end{tabular}
Таблица как плавающий объект
Чтобы добавить подпись, номер и возможность ссылки, таблицу оборачивают в окружение table. Это делает её «плавающим объектом» – LaTeX сам решит, где лучше разместить таблицу на странице.
\usepackage{booktabs}
Таблица \ref{tab:algorithms} показывает сравнение алгоритмов сортировки.
\begin{table}[ht]
\centering
\caption{Сравнение алгоритмов сортировки}
\label{tab:algorithms}
\begin{tabular}{lrr}
\toprule
Алгоритм & Сложность & Память \\
\midrule
Bubble Sort & $O(n^2)$ & $O(1)$ \\
Quick Sort & $O(n \log n)$ & $O(\log n)$ \\
Merge Sort & $O(n \log n)$ & $O(n)$ \\
\bottomrule
\end{tabular}
\end{table}
Параметры размещения плавающего объекта:
h– here (здесь, если возможно)t– top (сверху страницы)b– bottom (снизу страницы)p– page (отдельная страница для плавающих объектов)H(из пакетаfloat) – жестко здесь, без исключений
Параметр [H] из пакета float – палочка-выручалочка, когда нужно жестко зафиксировать таблицу в конкретном месте. Но злоупотреблять им не стоит: LaTeX обычно лучше вас знает, где таблица будет смотреться органичнее.
\usepackage{float}
% Жесткая привязка таблицы к месту в тексте
\begin{table}[H]
\centering
\caption{Результаты эксперимента}
\begin{tabular}{lcc}
\toprule
Параметр & Значение 1 & Значение 2 \\
\midrule
Точность & 0.92 & 0.95 \\
Время (с) & 1.2 & 0.8 \\
\bottomrule
\end{tabular}
\end{table}
Готовый шаблон: таблица результатов эксперимента
Вот шаблон, который вы можете использовать в своей научной статье. Он оформлен по всем правилам академического стиля.
В этом шаблоне использованы: \multirow для объединения строк по вертикали, \multicolumn для объединения колонок, \cmidrule для частичной горизонтальной линии и \textbf для выделения лучших результатов. Это профессиональный уровень оформления таблиц.
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{float}
\begin{table}[H]
\centering
\caption{Результаты сравнительного анализа методов}
\label{tab:results}
\begin{tabular}{lccc}
\toprule
\multirow{2}{*}{Метод} & \multicolumn{2}{c}{Качество} & \multirow{2}{*}{Время, с} \\
\cmidrule(lr){2-3}
& Точность & F1-мера & \\
\midrule
Базовый & 0.85 & 0.82 & 1.5 \\
Улучшенный & 0.92 & 0.90 & 2.1 \\
Предложенный & \textbf{0.95} & \textbf{0.93} & 1.8 \\
\bottomrule
\end{tabular}
\end{table}
Советы по работе со списками и таблицами
Не вкладывайте списки глубже 3 уровней. Это затрудняет восприятие. Если нужно больше уровней – разбейте на отдельные разделы.
Избегайте вертикальных линий в таблицах. В академическом стиле они считаются дурным тоном. Используйте
booktabs.Выравнивайте числа по правому краю. В колонках с числами используйте
r– так цифры выстроятся по разрядам и будут легче читаться.Добавляйте подпись и метку. Каждая таблица должна иметь
\captionи\labelдля возможности ссылки на неё из текста.Используйте
\centeringвнутри плавающих объектов. Это центрирует таблицу или рисунок на странице.
Теперь вы умеете создавать списки любой сложности и верстать таблицы профессионального уровня. В следующем уроке мы разберем автоматическое оглавление и перекрестные ссылки – ключевой инструмент для связывания частей большого документа. А пока попробуйте сверстать таблицу с результатами вашего исследования или список этапов вашей работы.