LaTeX/Основы языка TeX

Материал из Викиучебника — открытых книг для открытого мира

Этот раздел руководства направлен на ознакомление с азами LaTeX.

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

Ваш первый LaTeX документ[править]

Процесс создания документов с системе LaTeX состоит из следующих этапов:

  1. В LaTeX-редакторе создать исходный файл (LaTeX-файл) – файл с расширением .tex (например, hi.tex), который содержит текст документа и специальные команды, указывающие LaTeX, как именно нужно сверстать этот текст.
  2. Скомпилировать исходный файл (hi.tex) в файл документа, например в формате PDF (hi.pdf) с помощью PDFLaTeX или XeLaTeX.
  3. Посмотреть результирующий файл. Если результат устраивает, распечатать его. Иначе внести изменения в исходный файл, снова скомпилировать его и т.д.

Самый простой пример работающего исходного файла:

\documentclass{article}

\begin{document}
Привет, мир!
\end{document}

Здесь, однако, необходимо упомянуть, что «классический» LaTeX создавался в первую очередь для оформления текстов на основе латиницы. Для кириллических текстов после строки \documentclass потребуется также указать одну из следующих последовательностей команд:


\usepackage {fontspec}
\setmainfont [Ligatures=TeX] {DejaVu Serif}

Вместо DejaVu Serif следует указать какой-либо из доступных в конкретной установке LaTeX шрифтов.


\documentclass{standalone} \usepackage{tikz} \usetikzlibrary{shapes,arrows,positioning,calc} \begin{document} \begin{tikzpicture}[scale=1.5] % Define the sectors \def\sectors{8} \def\startangle{22.5} \def\endangle{\startangle+360/\sectors} \def\midangle{(\startangle+\endangle)/2} \def\radius{3cm} \def\labelradius{4cm} \def\innerlabelradius{2.5cm} \def\sectorlabelradius{1.5cm} % Define the colors \definecolor{enjoyment}{RGB}{255,0,0} \definecolor{conviviality}{RGB}{255,128,0} \definecolor{belonging}{RGB}{255,255,0} \definecolor{security}{RGB}{128,255,0} \definecolor{control}{RGB}{0,255,0} \definecolor{recognition}{RGB}{0,255,128} \definecolor{power}{RGB}{0,255,255} \definecolor{vitality}{RGB}{0,128,255} % Draw the sectors \foreach \i in {1,...,\sectors} {

 \pgfmathsetmacro{\colorname}{{"enjoyment","conviviality","belonging","security","control","recognition","power","vitality"}[\i-1]}
 \fill[\colorname] (\startangle:\radius) arc (\startangle:\endangle:\radius) -- (0,0) -- cycle;
 \pgfmathsetmacro{\label}{\i}
 \node[font=\large\sffamily\bfseries] at (\midangle:\labelradius) {\label};
 \pgfmathsetmacro{\innerlabel}{\i}
 \node[font=\small\sffamily\bfseries,white] at (\midangle:\innerlabelradius) {\innerlabel};
 \pgfmathsetmacro{\sectorlabel}{{"Удовольствие","Единение","Принадлежность","Защищенность","Контроль","Признание","Власть","Жизненная сила"}[\i-1]}
 \node[font=\small\sffamily\bfseries,white] at (\midangle:\sectorlabelradius) {\sectorlabel};
 \pgfmathsetmacro{\startangle}{\startangle+360/\sectors}
 \pgfmathsetmacro{\endangle}{\endangle+360/\sectors}
 \pgfmathsetmacro{\midangle}{(\startangle+\endangle)/2}

} % Draw the axes \draw[thick,->] (-\radius,0) -- (\radius,0) node[below] {Я - Другие}; \draw[thick,->] (0,-\radius) -- (0,\radius) node[left] {Контроль - Реализация}; % Draw the brand \node[font=\large\sffamily\bfseries,black,circle,fill=white,inner sep=2pt] at (90:\radius*0.8) {Leroy Merlin}; \end{tikzpicture} \end{document}

\usepackage [utf8x] {inputenc}
\usepackage [T2A] {fontenc}

Вместо utf8x должна быть указана кодировка исходного .tex файла.

Пробелы[править]

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

Не имеет значения
точное  количество
пробелов    между   словами.

Пустая строка начинает новый абзац.
Не имеет значения точное количество пробелов между словами.

Пустая строка начинает новый абзац.

Специальные символы[править]

Следующие символы зарезервированы и имеют особое значение для LaTeX или недоступны во всех шрифтах. Если Вы введёте эти символы как есть, они не отобразятся правильно, но заставят делать LaTeX то, чего вы не ожидали.

# $ % ^ & _ { } ~ \

Для использования этих символов следует добавить обратную косую черту перед символом (или записать его в виде команды, начинающейся с \):

  • \# или \textnumbersign для #;
  • \$ или \textdollar для $;
  • \% или \textpercent для %;
  • \textasciicircum для ^;
  • \& или \textampersand для &;
  • \{ и \} для { и }, соответственно;
  • \textasciitilde для ~;
  • \backslash или \textbackslash для \.

Обратите внимание, что символы ^, ~, \ не имеют «двусимвольного» варианта.

Символ обратной косой черты \ не может быть введён как \\, поскольку эта последовательность используется для перевода строки.

Команда \~ поставит тильду (диакритический знак) над символом. Например \~{n} даёт ñ. Для отображения просто символа ~, можно использовать такую комбинацию: \~{\hbox{ }} которая помещает ~ над пустым символом. Но при этом знак тильды оказывается вверху, это в некоторых случаях может быть некорректно.

Аналогично, команда \^ помещает циркумфлекс («крышку») над следующим символом, например \^{o} дает ô.

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

Если Вам нужно вставить текст, который может содержать один или несколько указанных символов (например, ссылки), Вы можете использовать команду \verb, которая будет обсуждаться далее в секции Форматирование.

Команды[править]

Команды LaTeX чувствительны к регистру и существуют в следующих вариантах:

  • обратная косая черта \ и алфавитная последовательность (например: \textampersand); имя команды завершается первым неалфавитным символом (пробелом, цифрой, или иным); отметим, что пробелы после имени команды, как правило, игнорируются;
  • обратная косая черта и один неалфавитный символ; многие сочетания с символами используются для создания акцентов или спецсимволов; многие такие команды используются для ввода особых символов LaTeX и расстановки диакритических знаков;
  • активный символ — такой, как тильда ~, используемая для обозначения неразрывного пробела.

Некоторым командам необходим аргумент, который, как правило, передается в фигурных скобках { } после имени команды. (Фигурные скобки допустимо опустить, если аргументом является один ASCII-символ, как в случае \nicefrac12 для ½.) Некоторые команды поддерживают необязательные параметры, указываемые после имени команды в квадратных скобках [ ]. Кроме того, существуют команды, аргументы которым передаются в круглых скобках, или иным образом.

Общий синтаксис следующий:

мя_команды[параметр1][параметр2,...]{аргумент1}{аргумент2}...

Группы[править]

Как правило, группа определяется как часть документа, заключённая между двумя фигурными скобками. Действие многих команд (таких, как, например, команды выбора шрифта) автоматически отменяется по завершении группы, где они были применены. Кроме открывающей и закрывающей фигурных скобок, в качестве ограничителей могут быть использованы команды \begingroup и \endgroup.

Пример:

{\bf Это написано полужирным шрифтом.}
А это уже нет.

Отметим, что пробелы игнорируются после имени команды (и, в частности, между именем команды и открывающей фигурной скобкой первого аргумента), но не после открывающей или перед закрывающей фигурной скобкой. Так, группа с командой \bfseries в примере ниже будет содержать избыточные пробелы до и после текста, в то время как разрыв строки после \textit и ведущие пробелы на следующей строке перед ее аргументом будут проигнорированы.

{
\bfseries Это написано полужирным шрифтом.
}
\textit
       {А это уже курсив.}

Окружения[править]

Окружения LaTeX играют роль, сходную с командами, но обычно применяются для бо́льших фрагментов текста. Общий синтаксис окружения:

\begin{имя_окружения}
текст, к которому применяется окружение
\end{имя_окружения}

Между командами \begin и \end могут находиться другие команды или окружения. LaTeX сопоставляет окружению группу, так что команды, используемые внутри окружения, не влияют на остальные части документа.

Всё в LaTeX можно определить в терминах команд и окружений.

Комментарии[править]

Если LaTeX встречает в тексте символ %, он пропускает текст до конца данной строки, также пропускает разрыв строки и все пробелы в начале следующей строки.

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