Что такое LaTeX

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

Что такое TeX и LaTeX?

TeX — это система компьютерной вёрстки, которую в 1978 году создал легендарный программист и учёный Дональд Кнут. LaTeX — это расширение этой системы, набор готовых стилей и утилит. Название TeX и LaTeX следует читать как «тех» и «латех».

Hello World в онлайн-редакторе ShareLaTeX
Hello World в онлайн-редакторе ShareLaTeX

TeX появился на заре эры домашних компьютеров. В это же время стали появляться первые коммерческие WYSIWYG (визуальные) редакторы. Сейчас визуальными редакторами, такими как Ворд и Гугл Документы пользуются почти все. Но у систем вёрстки, работающих через языки разметки есть свои преимущества:

Преимущества и недостатки LaTeX перед визуальными редакторами

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

Преимущества LaTeX

Отсутствие ручной вёрстки

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

Автоматическая расстановка блоков и текста

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

Перенос стилей

В LaTeX стили являются сосудом для текста. Потому к написанному единожды тексту могут быть применены разные стили. Например научная статья может быть свёрстана по ГОСТу для отправки в ВАК и в нормальном виде для личного использования (да, гост для НИР ужасен). Более того, одну и ту же книгу заменой стилей можно распечатать на A4 и A5 формате без кропотливых ручных правок. Также стили легко переносятся между разными документами. Я, например, один раз сверстал себе шаблон для курсовых (на самом деле допилил готовый) и теперь использую его для всех работ для ВУЗа. Также из-за того, что TeX — это язык разметки вы можете генерировать ваши документы автоматически, например если вам нужно верстать выписки и чеки для клиентов.

Математика, химия и биология

Пример формул в LaTeX
Мощные формулы
В LaTeX верстать такие страшные штуки можно. И делается это сравнительно просто. В визуальных редакторах это [всегда боль](https://www.chem4word.co.uk).

Макросы

У программистов есть такой постулат: Don’t Repeat Yourself (DRY). И в LaTeX есть средства, для того, чтобы этому постулату следовать. Вот так выглядит макрос, который я написал когда задолбался вставлять надпись «(см. картинку #)».

\newcommand{\figref}[1]{
    (\hyperref[fig:\string#1]{см рис. \ref{fig:\string#1}})
}

Библиография

Верстать библиографию в Ворде — это ад земной. В LaTeX вам достаточно вставить в ваш файл с источниками блок вида

@ARTICLE{tag,
  author = {Список авторов},
  title = {Название статьи},
  year = {год},
  journal = {Название журнала}
}

А потом в нужном месте вызвать его цитирование через \cite{tag}. Дальше LaTeX сам соберёт библиографию и выстроит её в афлавитном порядке. При этом источники, которые вы забыли процитировать по умолчанию в библиографию не попадут.

PDF

LaTeX генерирует отличные пэдээфки. Содержание, ссылки на сайты, локальные ссылки, библиография. По всему этому можно будет переходить как по обычным ссылкам в интернете. Даже на формулах текст будет нормально выделятся, а сами формулы будут прекрасно выглядеть даже на ретине. А самое приятное, что большая часть из этих фишек работает из коробки.

Недостатки LaTeX

Ваш документ может не собраться

У создателей LaTeX не было цели сделать дружелюбный язык разметки, которым сможет пользоваться каждый. По крайней мере если такая цель и была, то они её не достигли. Иногда для того, чтобы сделать что-то сложное нужно будет перерыть кучу сообщений на форумах десятилетней давности. Но с опытом станет понятнее откуда могут идти те или иные проблемы. У TeX есть даже свой StackOverflow.

Зоопарк технологий

PDFLaTeX, XeTeX, LuaLaTeX — одних только компиляторов целый ворох. И не всегда понятно какой из них нужно использовать и зачем их так много. Некоторые пакеты работают только с определёнными компиляторами, а какие-то пакеты бесполезны для некоторых компиляторов. Во всём этом не обязательно разбираться, чтобы начать использовать LaTeX, но рано или поздно вы с этим столкнётесь.

Работа с таблицами

Работать с таблицами в LaTeX очень неудобно. Особенно если таблица большая. Да, в результате получится отличная табличка, но для этого придётся помучиться. Если вы знакомы с веб вёрсткой таблиц, то для вас это не будет такой уж проблемой. Большие таблицы вообще лучше импортировать из Экселя или CSV. Есть даже онлайн-сервисы для этого, полезно в некоторых случаях.

TeX старый

TeX как технологии уже 40 лет. Внутри TeX нет скриптового движка для того, чтобы писать расширения. В итоге многие расширения сделаны очень странным способом силами TeX. Эту проблему сейчас пытается решить проект LuaLaTeX, в рамках которого ребята прикручивают lua-интерпретатор к TeX.

LaTeX начинает экономить время не сразу

У LaTeX высокий порог вхождения. Перед тем, как эта технология начнёт приносить вам пользу придётся потратить несколько вечеров, а то и выходных на её освоение. Но если вам часто приходится писать научные статьи или преимущества, описанные выше кажутся вам решающими, то это того стоит.

Как начать

Самый простой вариант — воспользоваться онлайн-редактором по типу ShareLaTeX. Если в вас горит энтузиазм, то можно начать с установки TeXLive. А дальше вас ждёт удивительный мир туториалов и восторга от красивой полной выключки.

Полезные ссылки

ВикиУчебник про LaTeX на русском
Пост с критикой LaTeX как системы для набора текстов (осторожно, холивар)
Полувизуальный редактор, в основе которого лежит TeX
Стили для написания НИР (ГОСТ 7.32-2001 и ГОСТ РВ 15.110-2003)

P.S.

LaTeX — удивительная система. Но не стоит впадать в фанатизм. Эту статью я написал в Гугл Документах, потому что так проще и быстрее. Для каждой задачи нужен подходящий инструмент.