time

LaTeX: профессиональная компьютерная типография

TeΧ — система компьютерной вёрстки, разработанная американским почётным профессором информатики Дональдом Кнутом в целях создания компьютерной типографии. LaTeX - наиболее распространённое расширение макрокоманд для TeX. TeX используется главным образом при разработке классов и пакетов LaTeX. Для подготовки печатных документов лучше подходит LaTeX.

TeX общепризнанно считается наиболее качественной системой подготовки печатных публикаций.

TeX-документы набираются на собственном языке разметки в виде обычных текстовых файлов и позволяет автоматизировать многие задачи верстки текста: нумерацию разделов, формул, рисунков, таблиц, списков литературы; набор текста на нескольких языках; подготовку текста в нескольких форматах (статья, книга, презентация, письмо, постер) и др.

Многие зарубежные издания предлагают свои собственные стилевые файлы в LaTeX, что позволяет быстро оформить публикацию, соответствующую стандартам издания и сосредоточится на текста, а не на оформлении.

Сравнительная таблица MS Word vs LaTeX.

Содержание

  1. Установка
  2. Редакторы
  3. Структура документа и форматирование
  4. Таблицы
  5. Рисунки
  6. Математические формулы
  7. Списки
  8. Подсветка ссылок и гиперсылок
  9. Подсветка листинга кода
  10. Сноски
  11. Оформление списка литературы
  12. Макроопределения
  13. Работа с большими документами
  14. Вставка LaTeX в HTML
  15. LaTeX и Python
  16. Компиляция tex-документа в pdf/dvi
  17. Оформление диссертации и автореферата
  18. Дополнительные пакеты
  19. Дополнительное чтиво

Установка

Под Linux нам понадобиться дистрибутив TeX texlive, под Windows - MikTeX.

# под Arch Linux
yaourt -S texlive-bin texlive-most texlive-langcyrillic texstudio

# под Ubuntu
sudo apt-get install texlive-base texlive-binaries texlive-latex-extra texlive-lang-cyrillic texstudio

Редакторы

Для себя я выбрал крос-платформенный редактор TexStudio который для Linux есть в репозитариях (см. раздел Установка), под Windows качаем exe-файл отсюдова. TexStudio привлек встроенной возможностью авто-дополнения, подсветкой синтаксиса, быстрым просмотром результата в pdf. Словари для проверки орфографии берем с сайта openoffice, файлы с расширением .aff и .dic распаковываем в /usr/share/texstudio.

Для Vim есть расширения

Эти расширения можно установить с помощью pathogen.

Для Sublime Text есть расширение LaTeXTools, ознакомительная видео-презентация latextools.

Онлайн редакторы:

Структура документа и форматирование

Структура любого TeX-документа состоит из

% преамбула
\documentclass[a4paper]{article}

\begin{document}
% текст документа
\end{document}

В преамбуле объявляется класс документа и параметры документа, подключаются пакеты с расширениями. В примере мы задали класс документа - статья, размер страниц - A4.

Формат команды documentclass

\documentclass[параметры класса](класс документа)

Параметры класса документа определяют размер листа, шрифта, режим вывода текста и т.д.

Существует шесть классов документов, которые описываются текстовыми файлами с расширением .cls:

  • article - статья, лучше всего подходит для набора небольших статей. В этом классе по умолчанию установлен односторонний набор, сквозная нумерация всех нумеруемых объектов (таблиц, сносок, формул и т.д.);
  • report - отчет;
  • book - книжка;
  • letter - письмо;
  • proc - доклад, предназначен для научных публикаций для конференций;
  • slides - слайды, используют для подготовки демонстрационных материалов, набранных крупным шрифтом;

Каждый из классов имеет свои особенности по формату и оформлению.

Пример класса книги с двумя колонками

\documentclass[a4paper,12pt,landscape,twocolumn]{book}

Пакет с расширениями это набор макрокоманд или макроопределений, расширяющих возможности системы и оформленных в виде отдельного стилевого файла package.sty.

В тексте документа пишется основной текст, в котором могут быть окружения определяющие определенный объект (например, формула, таблица и т.д.) или форматирование (например, выравнивание по правому краю, цитата и т.д.). Команды LaTeX, внутри текста документа, начинаются с \. У команды могут быть параметры

\command[опциональные параметры]{обязательные параметры}

Одна или несколько пустых строк обозначают конец абзаца. Форматирование текста не зависит от числа пробелов или пустых строк - лишние просто игнорируются.

Пример документа с форматированием

\documentclass[a4paper]{article}

% входная кодировка документа
\usepackage[utf8]{inputenc}

% поддержка русских букв
% кодировка шрифта
\usepackage[T2A]{fontenc} 
\usepackage{pscyr}

% улучшенный поиск русских слов в полученном pdf-файле
\usepackage{cmap} 

% установка полуторного интервала
% \usepackage{setspace}  
% \onehalfspacing

% использовать Times New Roman
% \renewcommand{\rmdefault}{ftm}

% языки используемые в документе 
% + возможность корректно расставлять переносы слов
\usepackage[ukrainian,russian]{babel}

% отступ для первого абзаца главы или параграфа
%\usepackage{indentfirst}

% модуль для вставки рыбы
\usepackage{blindtext}

\begin{document}
% установка размера шрифта для всего документа
% \fontsize{14pt}{18pt}\selectfont

% вставка автоматического содержания
\tableofcontents

\section{Пример рыбы}

\blindtext

\section{Пример форматирования}

\begin{tiny}Крошечный текст\end{tiny} \\
\begin{scriptsize}Индексный текст\end{scriptsize} \\
\begin{footnotesize}Подстрочный текст\end{footnotesize} \\
\begin{small}Маленький текст\end{small} \\
\begin{normalsize}Стандартный текст\end{normalsize} \\
\begin{large}Большой текст\end{large} \\
\begin{Large}Большой текст\end{Large} \\
\begin{LARGE}Большой текст\end{LARGE} \\
\begin{huge}Огромный текст\end{huge} \\
\begin{Huge}Огромный текст\end{Huge} \\

\end{document}

В LaTeX гарнитура шрифта задается такими признаками: семейство (family), насыщенность (series), начертание (shape) и размер (size).

Команды для управление начертанием и насыщенностью шрифтов

Описание Команда Декларация Сокращенная декларация
Семейство (Гарнитура)
Обычный (Roman) \textrm{text} {\rmfamily text} {\rm text}
Рубленный (Sans serif) \textsf{text} {\sffamily text} {\sf text}
Машинка (Typewriter) \texttt{text} {\ttfamily text} {\tt text}
Насыщенность
Средняя (Medium) \textmd{text} {\mdseries text}
Жирный (Boldface) \textbf{text} {\bfseries text} {\bf text}
Начертание
Прямое (Upright) \textup{text} {\upshape text}
Курсив (Italic) \textit{text} {\itshape text} {\it text}
Наклонное (Slanted) \textsl{text} {\slshape text} {\sl text}
Капитель (Small Caps) \textsc{text} {\scshape text}

По умолчанию используется шрифт формы upright, серии medium, семейства roman.

Для изменения шрифта всего текста в документа необходимо подключить следующие пакеты:

  • для Helvetica - \usepackage{helvet}
  • для Courier - \usepackage{courier}

Для изменения шрифта для фрагмента текста:

{\fontfamily{phv}\selectfont фрагмент текста} текст документа

С таблицей семейств шрифтов можно ознакомится тут.

Каталог шрифтов - FontCatalogue.

Для управления разрывами предложений возможны такие команды

  • \\[3cm] или \newline - перенос текста на следующею строку, опциональный параметр [3cm] - величина вертикального отступа;
  • \linebreak - перенос текста на следующею строку с сохранением выравниванием по оба края;
  • \mbox[text] - запрет переноса текста по разрыву или по пробелу;

Примеры горизонтальных пробелов

A\hfill B % пробел 
A\hrulefill B % горизонтальная линия
A\dotfill B % точки

Примеры вертикальных пробелов

% вертикальный отступ в 1 см.
\begin{flushleft}
A
\end{flushleft}
\vspace{1cm}
B

% вертикальный заполнитель
A\vfill B

Иногда может возникнуть необходимость вывести текст буквально, со всеми пробелами и знаками, для этого используется команда

\verb|text|

Кавычки (при подключенном пакете babel)

"<text"> или \flqq text \frqq - ёлочки

``text'' или \glqq text \grqq или \lq\lq text \rq\rq - лапки

\dq text\dq - кавычки

Полезные окружения:

  • center - центрировать текст;
  • flushleft - выравнивания текста по левому краю;
  • flushright - выравнивания текста по правому краю;
  • quote, quotation - окружения для ввода цитат;
  • verbatim - вставка исходных кодов;
  • verse - вставка стихов;
  • itemize, description, enumerate - вставка списков;
  • math, displaymath, equation - вставка формул;
  • minipage - вставка министраниц;
  • table, figure - вставка плавающих объектов (таблицы, рисунка);

Вывод текста в две колонки

\documentclass[a4paper]{article}
\usepackage{multicol}
\begin{document}
\begin{multicols}{2}
...
\end{multicols}
\end{document}

Таблицы

Структура простой таблицы с тремя колонками и тремя строками. Колонки разделяются с помощью &, а ряды - \. У таблицы есть название (\caption) и метка (\label) для ссылки в тексте.

\begin{table}[t]

\begin{tabular}{|r|c|l|} 
% горизонтальный разделитель 
\hline
\No & Head & Head \\ \hline
1 & Text 1 & Text \\ \hline
2 & Text 3 & Text 4 \\ \hline
\end{tabular}

% название таблицы
\caption{Table 1}

% метка таблицы
\label{table1}
\end{table}

Окружение table принимает опциональный параметр с указанием места расположения таблицы.

  • h - объект размешается там, где описан в исходном тексте;
  • t - объект размешается в начале страницы;
  • b - объект размешается в конце страницы;
  • p - объект размешается на отдельной странице, без текста;

Окружение tabular принимает опциональный параметр с указанием выравнивания в колонках (формат). Количество маркеров выравнивания указывает количеству столбцов, при указании символа | столбцы будут отделены вертикальной чертой.

  • l – выравнивание по левому краю
  • r – выравнивание по правому краю
  • c – выравнивание по центру

Кроме выравнивания по горизонтали можно указать выравнивание по вертикали с помощью следующих маркеров, w - ширина столбца в одной из следующих метрик: in (дюйм), cm (сантиметр), em (внутренняя мера для LaTeX, равная букве m в текущем шрифте).

  • p{w} – выравнивание по верхнему краю колонки;
  • m{w} – выравнивание по середине колонки;
  • b{w} – выравнивание по нижнему краю колонки;

В таблице возможно рисовать разделяющие линии тремя способами

  • \hline - рисует горизонтальную линию через всю таблицу;
  • \cline{m-n} - рисует горизонтальную линию начиная с столбца m до n;
  • \vline - рисует вертикальную линию высотой в текущею строку;

Пример ссылки на таблицу в тексте:

см. табл.\,\ref{table1} на странице \pageref{table1}

Столбцы и строки в таблице можно объединять с помощью следующих команд

  • \multicolumn{n}{формат колонки}{текст} - объединение расположенных рядом по горизонтали клеток;
  • \multirow{n}{высота}{текст} - объединение клеток по вертикали;

Первый обязательный параметр соответствует числу объединённых колонок, второй — формату получившейся объединённой колонки, третий — тексту.

Возможно выделение строки с помощью цвета (пакет colortbl)

% пример окраски ряда в зеленый цвет
\rowcolor{green}1 & 2 & 3 \\

Для добавления пустого места между рядами нужно добавить в преамбулу следующею команду

\renewcommand{\arraystretch}{yourvalue}

yourvalue - это множитель, значение по умолчанию 1.

У окружение tabular и его производных есть один недостаток - они не могут занимать больше одной страницы (т.к. рассматриваются LaTeX'ом как одна большая буква и не могут разбиваться постранично). Для поддержки таблицы с переносам на страницы нужны пакеты longtable или xtab.

Рассмотрим пример таблицы с окружением longtable. Это окружение позволяет задать три разных заголовка: для страницы с началом таблицы, для последующих страницах и для последней страницы с таблицей. Для подключения longtable нужно добавить в преамбулу \usepackage{longtable}. Пример разметки таблицы:

\begin{longtable}[c]{|l|l|}
\caption{Название таблицы} \label{tab:longtable} \\
\hline

\textbf{Заголовок 1} & \textbf{Заголовок 2} \\
\hline
\endfirsthead % конец заголовка на первой странице

\hline
\textbf{Заголовок 1} (продолжение) & \textbf{Заголовок 2} (продолжение) \\
\hline
\endhead % заголовок для других страниц 

\hline
Конец & Конец \\
\hline
\endlastfoot % заголовок для последней страницы 

Столбец 1 & Столбец 2 \\
\hline

Столбец 1 & Столбец 2 \\
\hline

Столбец 1 & Столбец 2 \\
\hline

\end{longtable}

Рисунки

Включение рисунков из внешних файлов происходит с помощью пакета graphics.

% добавить в преамбулу
\usepackage{graphicx}
\graphicspath{{images/}} % базовый путь к рисункам

В тексте документа подключаем файла командой \includegraphics[опции]{имя_файла}, имя файла указывается без расширения.

Для TeX-файлов конвертируемых в pdf возможно подключение файлов png, jpg или pdf.

\begin{figure}[t]
\centering
\includegraphics[width=0.9\textwidth]{flowchart1}
\caption{Блок-схема}
\label{flowchart1}
\end{figure}

Опциональный аргумент для окружения figure (table) предписывает (но не настаивает) где разместить рисунок (таблицу).

  • h - объект размешается там, где описан в исходном тексте;
  • t - объект размешается в начале страницы;
  • b - объект размешается в конце страницы;
  • p - объект размешается на отдельной странице, без текста;

Математические формулы

Набор математических формул в LaTeX одна из самых популярных возможностей. Из личного опыта могу это подтвердить формулы набираются быстрее и приятней чем в текстовых процессорах.

Для использования нам понадобятся пакеты amssymb, amsmath

% добавить в преамбулу
\usepackage{amssymb,amsmath}

Математические формулы набираются в одном из трех окружений:

  • math - располагает формулу в строке с текстом (строчная формула), сокращенная форма \( ... \), $ ... $;
  • displaymath - располагает формулу в новой строке (выносная формула), сокращенная форма \[ ... \], $$ ... $$;
  • equation - располагает формулу в новой строке и добавляет номер формулы (выносная формула);

Некоторые команды для формул:

  • \frac{a^2+1}{b+2} - дробь;
  • \sqrt{3}{a_i+4} - квадратный корень;
  • \int_a^b f(x) \, dx - интеграл;
  • \sum_{n=0}^{n} q_i - сумма;
  • \stackrel{*}{A} - размещение объектов друг над другом;

LaTeX игнорирует пробелы в формулах и расставляет их на свое усмотрение. Для добавления пробелов можно воспользоваться такими командами:

  • \; широкий пробел;
  • \: средний пробел;
  • \, узкий пробел;
  • \! отрицательный узкий пробел;

Дополнительное оформление:

  • \overline{text} - горизонтальная черта над text;
  • \underline{text} - горизонтальная черта под text;
  • \overbrace{text} - фигурная скобка над text;
  • \underbrace{text} - фигурная скобка под text;

Строки в матрице разделяются командой \\, а столбцы &amp;

\[ \left( \begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{matrix} \right)
\]

Система уравнений

\[
\left\{
\begin{aligned}
&x+y=5 \\
&x-2y=2 \\
\end{aligned}
\right.
\]

Перечисление случаев

\[
|x| = \begin{cases}
x, & x \ge 0, \\
-x, & x < 0
\end{cases}
\]

Список символов

LaTeX математика

Греческие буквы

LaTeX математика

Дополнительный материал:

Списки

Пример вставки ненумерованного перечисление

\begin{itemize}
\item Item 1
\item Item 2
\item Item 3
\end{itemsize}

Пример вставки нумерованного перечисление

\begin{enumerate}
\item Item 1
\item Item 2
\item Item 3
\end{enumerate}

Для создания компактных списков (с меньшим количеством отступов по вертикали) можно воспользоваться пакетом paralist и соответствующими окружениями

# для нумерованного списка
\begin{compactenum}
\item point 1
\item point 2
\end{compactenum}

# для ненумерованного списка
\begin{compactitem}
\item point 1
\item point 2
\end{compactitem}

Переназначение метки перед списком

\renewcommand{\labelitemi}{$\clubsuit$}

Список других символов можно посмотреть тут.

Для гибкой настройки списков можно воспользоваться пакетом enumitem, описание можно посмотреть тут.

Список с описанием

\begin{description}
\item[Python] высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.
\item[CVS] программный продукт, относящийся к разряду систем управления версиями.
\end{description}

Подсветка ссылок и гиперсылок

Для этого нам понадобиться пакет hyperref. В списке загружаемых пакетов hyperref, должен стоять последним, так как он модифицирует работу других пакетов.

\usepackage{xcolor}
\usepackage{hyperref}

Настроим параметры пакета:

% цвета для гиперссылок
\definecolor{linkcolor}{HTML}{799B03} % цвет ссылок
\definecolor{urlcolor}{HTML}{799B03} % цвет гиперссылок

\hypersetup{linkcolor=linkcolor, urlcolor=urlcolor, colorlinks=true}

Параметр colorlinks=true указывает, что ссылки будут отображаться цветом, а не рамкой, вокруг них. Параметры linkcolor и urlcolor обозначают цвета ссылок и гиперссылок.

Команды вставки ссылок в тексте документа

  • \ref{label} - ссылка на номер объекта с меткой label;
  • \href{url}{text} - ссылка на произвольный сайт с указанием имени ссылки;
  • \url{url} - просто ссылка на сайт;

Подробнее про hyperref читаем тут.

При ссылке на объект с помощью \ref{prefix:label} рекомендуется использовать следующие префиксы

  • chap: - для ссылки на главу;
  • sec: - для ссылки на секцию;
  • fig: - для ссылки на рисунок;
  • tab: - для ссылки на таблицу;
  • eq: - для ссылки на формулу;
  • lst: - для ссылки на листинг с кодом;
  • itm: - для ссылки на список;

Подсветка листинга кода

Для вставки листинга кода можно воспользоваться встроенным окружением verbatim

\begin{verbatim}
...
\end{verbatim}

Для вставки листинга с подсветкой кода понадобиться пакет listings

\usepackage{listings}

\begin{lstlisting}[language=python]
#!/usr/bin/python

import sys
import os

os.system('meld "%s" "%s"' % (sys.argv[2], sys.argv[5]))
\end{lstlisting}

Также пакет listings позволяет вставить исходники из файла

\lstinputlisting{listing.py}

Примеры настройки цвета листинга можно посмотреть в LaTeX syntax highlighting examples или Подсветка синтаксиса в Latex с кириллицей.

Сноски

Команда для создания сноски

\footnote{текст сноски}
\label{footnote1}

Ссылка на сноску

см. сноску\,\ref{footnote1} на стр.\,\pageref{footnote1}

Оформление списка литературы

В LaTeX есть окружение thebibliography для составления списка литературы. Оно очень похожа на процедуру enumerate, которая печатает список пронумерованных записей. В отличие от последнего, окружение thebibliography дополнительно печатает заголовок списка — слово "Литература" или что-то в этом роде, а каждая запись начинается с команды \bibitem, совмещающей функции команд \item и \label. Отличается также команда для вывода ссылки на запись в списке литературы - \cite.

Многие авторы используют гарвардский стиль для меток. В этом случае сначала указывают имя автора, а затем год издания, например Hellmann:2012.

Пример списка литературы с помощью thebibliography

% вставить в конце текста, на месте размещения списка литературы 
\begin{thebibliography}{9}
\bibitem{book1} Author A.B. Book 1
\bibitem{book2} Author B.C. Book 2
\end{thebibliography}

Обязательный параметр 9 указывает на максимальное количество элементов в списке литературы.

В тексте на объявлению книгу можно сослаться так - \city{book1}.

Список литературы thebibliography можно составлять заново для каждого документа либо поручить это занятие программе BibTEX. Она компилирует список цитируемой литературы, извлекая информацию из заранее составленной библиографической базы данных. BibTEX поставляется вместе с LATEX'ом. Библиографическую базу данных можно составить самостоятельно, а затем расширять по мере необходимости и подключать для каждого нового документа схожей тематики.

BibTEX умеет сортировать список литературы либо по очерёдности упоминания ссылок в тексте, либо по именам авторов.

Пример файла с литературой (lit.bib) для описания книги (с несколькими авторами), статьи и ссылки на сайт:

@book{authors:92,
    author = "Автор, А. А. and Автор, Б. Б.",
    title = "Книга 1",
    address = "М.",
    publisher = "Энергоиздат",
    year = 1992,
    numpages = 190,
    language = "russian"
}

@book{author:97,
    author = "Автор, В. В.",
    title = "Книга 2",
    address = "К.",
    publisher = "Вища школа",
    year = 1997,
    numpages = 230,
    language = "ukrainian"
}

@article{article:04,
    author={Author, X. X. and Author, Y. Y.},
    title={Article 1},
    journal={Naval Research Logistics Quarterly},
    volume={8},
    year = 1961,
    pages = {175-191}
}

@misc{proft:website,
    author = "Bloger",
    title = "the website title",
    month = feb,
    year = 2011,
    note = "\url{http://proft.me}"
}     

Пример TeX-документа с BibTEX

\documentclass[12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc} 
\usepackage{natbib}

\title{BibTeX in action}
\author{proft}
\date{\today}

\begin{document}
\maketitle
\tableofcontents

\section{Introduction}

Lorem ipsum dolor sit amet, consectetur \cite{authors:92} adipisicing elit, sed do eiusmod tempor 
incididunt ut labore et dolore magna aliqua. Ut enim ad minim \cite[p. 57]{author:97} veniam, quis 
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
 \cite{article:04} dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint \cite{proft:website} occaecat cupidatat non proident, sunt in culpa qui officia 
deserunt mollit anim id est laborum.

\addcontentsline{toc}{section}{\bibname}
\bibliographystyle{plain}
\bibliography{lit}
\end{document}

Обязательный параметр для \bibliographystyle - стиль, который может быть одним из четырёх:

  • plain — открытый стиль, библиография сортируется в алфавитном порядке по фамилиям авторов, затем по годам, затем по названиям публикаций. Каждая запись помечается порядковым номером;
  • unsrt — не сортируемый стиль, аналогичен стилю plain за тем исключением, что записи в списке литературы печатаются в порядке их цитирования в тексте документа. Этот стиль подходит для большинства научных журналов;
  • alpha — алфавитный стиль, аналогичен стилю plain, но вместо нумерации публикаций они помечаются аббревиатурой, состоящей из фамилии автора и года издания. Записи в списке литературы сортируются по меткам, затем по имени автора, затем по году издания, затем по названию;
  • abbrv — аббревиатурный стиль, идентичен стилю plain за тем исключением, что вместо полных имен авторов, названий месяцев и журналов печатаются сокращения;

Ниже перечислены все типы записей со всеми обязательными полями:

  • article — статья в журнале. Обязательные поля: author, title, journal, year. Необязательные поля: volume, number, pages, month, note.
  • book — книга с указанием издательства. Обязательные поля: author или editor, title, publisher, year. Необязательные поля: volume или number, series, address, edition, month, note.
  • booklet — отпечатанное и сброшюрованное издание без названия издательства или имени спонсора. Обязательные поля: title. Необязательные поля: author, howpublished, address, month, year, note.
  • conference — статья в трудах конференции. Обязательные поля: author, title, booktitle, year. Необязательные поля: editor, pages, organization, publisher, address, month, note.
  • inbook — часть книги, которая может быть главой или рядом страниц. Обязательные поля: author или editor, title, chapter и/или pages, publisher, year. Необязательные поля: volume или number, series, type, address, edition, month, note.
  • incollection — часть книги со своим заглавием. Обязательные поля: author, title, booktitle, publisher, year. Необязательные поля: editor, volume или number, series, type, chapter, pages, address, edition, month, note.
  • inproceedings — то же, что и conference.
  • manual — техническая документация. Обязательные поля: title. Необязательные поля: author, organization, address, edition, month, year, note.
  • mastersthesis — дипломная работа. Обязательные поля: author, title, school, year. Необязательные поля: address, month, note.
  • misc - используется, когда нет ничего более подходящего. Обязательных полей нет. Необязательные поля: author, title, howpublished, month, year, note.
  • phdthesis — диссертация. Обязательные поля: author, title, school, year. Необязательные поля: address, month, note.
  • proceedings — труды конференции. Обязательные поля: title, year. Необязательные поля: editor, publisher, organization, address, month, note.
  • techreport — доклады, опубликованные школами или институтами, обычно пронумерованные внутри серии. Обязательные поля: author, title, institution, year. Необязательные поля: type, number, address, month, note.
  • unpublished — неопубликованный документ с автором и заглавием. Обязательные поля: author, title, note.

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

Сконвертировать специально сформированный текстовый файл в BibTEX можно с text2bib.

Макроопределения

Пример создания макроопределения для выделения нотация (#1 - аргумент для команды \notion)

\newcommand\notion[1]{textit{#1}}

Пример создания макроопределения для выделения заголовков (#1 - аргумент для команды \head)

\newcommand\head[1]{textbf{#1}}

Работа с большими документами

При работе с большими документами есть резон разбить одни файл на несколько составных и подключить

\documentclass{book}
\input{preamble}

\begin{document}
\tableofcontents
\include{chapter1}
\include{chapter2}
\end{document}

Дополнительное оформление, для трех основных частей документа

  • \frontmatter - страницы нумеруются строчными римскими цифрами, для глав (chapters) генерится содержание без номеров;
  • \mainmatter - страницы нумеруются арабскими цифрами, для глав (chapters) генерится содержание с номерами;
  • \backmatter - страницы нумеруются арабскими цифрами, для глав (chapters) генерится содержание без номеров;
\documentclass{book}
\input{preamble}

\begin{document}
\frontmatter

\include{dedication}
\tableofcontents
\listoftables
\listoffigures

\mainmatter
\include{chapter1}
\include{chapter2}

\backmatter
\include{proofs}
\nocite{*}

\bibliographystyle{plainnat}
\bibliography{tex}
\end{document}

Примеры оформления разных титульных страниц можно посмотреть в titlepages.

Вставка LaTeX в HTML

В заметке Equations in HTML (SVG + GIF) описаны способы вставки формул какgif, svg или с помощью javascript для специальных div-блоков. Пример вставки как gif-файла:

<img src="http://latex.codecogs.com/gif.latex?1+sin(x)" border="0"/>

Там же описаны способы вставки формул в редакторы FCK Editor, Tiny MCE, CK Editor.

Вставка формул с помощью Google Charts:

http://chart.apis.google.com/chart?cht=tx&chl=x^2

Поделиться формулами можно с помощью mathurl.com, по аналогии с tinyurl.com.

Вставка формул средствами javascript с помощью mathjax.com.

Конвертация LaTeX в изображения:

LaTeX и Python

С помощью python.sty можно вставлять куски кода на python в TeX-документ. При компиляции TeX-документа результат работы python-скрипта будет вставлен в документ.

Подробности можно узнать в

Компиляция tex-документа в pdf/dvi

LaTeX преобразует размеченный исходный текст в печатный документ.

Для компиляции TeX в DVI

latex in.tex
xdvi in.tex

Для компиляции TeX в PDF

pdflatex in.tex out.pdf

Оформление диссертации и автореферата

Для облегчения набора диссертации и автореферата по требованиям ВАК (Украина) можно воспользоваться пакетом vakthesis. Последние правки датированы 2009 годом. Обсуждение пакета ведется на форуме linux.org.ua.

Для облегчения набора диссертации и автореферата по требованиям ВАК (Россия) можно воспользоваться - Russian-Phd-LaTeX-Dissertation-Template .

Дополнительные пакеты

В Arch Linux все установленные пакеты находятся в /usr/share/texmf-dist/tex/latex/.

Узнать путь к пакету можно так kpsewhich geometry.sty.

Установка дополнительных пакетов описана в LaTeX/Installing Extra Packages.

Список пакетов по темам можно посмотреть в texcatalogue.sarovar.org. Также есть обзор популярных пакетов на русском языке.

Пример задания границ документа с помощью пакета geometry

% добавить в преамбулу
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1.5cm]{geometry}

Установка полуторного интервала для всего документа

% добавить в преамбулу
\usepackage[onehalfspacing]{setspace}

Список интересных дополнительных пакетов:

  • pscyr - набор красивых кириллических шрифтов;
  • graphicx - подключение рисунков;
  • amstext - для отображения кириллицы в математических формулах;
  • amssymb - подключаем дополнительный набор математических символов;
  • lscape - некоторые страницы (например, содержащие сетевой график или длинные таблицы) лучше печатать в альбомном виде;
  • eskdpz - настраиваем оформление в соответствии с требованиями ГОСТ;
  • makecell и multirow - позволяют создавать красивые таблицы;
  • indentfirst - добавляет в начале каждого абзаца отступ;
  • tocdepth - задаем глубину оглавления;
  • booktabs - красивое оформление таблиц без вертикальных разделителей;
  • cleveref - автоматическое определение ссылки на объект и вставка типа объекта перед номер;
  • longtable - пример создания номенклатурных списков и таблиц с возможностью переноса по страницам;
  • blindtext - вставка "рыбы";
  • fancyhdr - оформление колонтитулов;
  • xypic - рисование диаграмм;
  • setspace - гибкое указание межстрочного интервала;
  • pgfornament - оформление орнаментов;
  • flafter - гарантирует, что любой плавающий объект (рисунок или таблица) не появится в документе до первой ссылки на него;
  • makeidx - используется для генерации алфавитного указателя;

Дополнительное чтиво

Книги:

  • Беляков Н. С., Палош В. Е., Садовский П. А. TEX для всех: Оформление учебных и научных работ в системе LATEX - хорошая книга для быстрого ознакомления с LaTeX
  • Kottwitz S. LaTeX Beginner's Guide, 2011 - практическое руководство, без лишних объяснений
  • Балдин Е. М. Компьютерная типография LATEX, 2013 - живо поданный материал про LaTeX с описанием многих пакетов
  • Котельников И. А., Чеботаев П. З. LATEX по-русски, 2004 - описание LaTeX в деталях на русском

Справочная информация:

Блоги:

Полезные советы:

Подборка заготовок разных документов

blog comments powered by Disqus