LaTeX — 30 лет спустя

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

Идея Лэсли Лампорта, создателя LaTeX, состояла в том, чтобы дать автору возможность сосредоточиться на содержательной стороне текста. Автор набирает текст, указывает его логическую структуру (разбивает на главы, разделы и т. п.), а LaTeX решает оформительские вопросы, выполняя роль дизайнера и верстальщика.

Лесли Лампорт — создатель LaTeX

Напомню, верстальщик — это специалист по компоновке текста. Вы делаете это сами? Сочувствую, так как эта работа требует профессиональной подготовки. Вот типичный пример плохой вёрстки — «висячая» строка. Оторванная от своего абзаца, она «висит» в одиночестве на предыдущей или последующей странице документа.

«Висячая» строка-«вдова»

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

К чему это я? А к тому, что LaTeX «сам» справляется с подобными проблемами. Поэтому его и называют системой компьютерной верстки, а не текстовым редактором. В итоге текст выглядит более читабельным, а автор избавляется от несвойственной ему работы.

Что еще может дать автору современный LaTeX?

Простой набор формул. Запись формул напоминает запись математических выражений в языках программирования.

Запись формулы в LaTeX и готовый результат

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

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

Переносимость. Головная боль пользователей ряда текстовых редакторов — «плывущее» оформление, подмена шрифтов, порча шаблонов… и, как следствие, изменение вида документов при переносе на другой компьютер — всего этого в LaTeX не существует. Документы, набранные с помощью разных дистрибутивов LaTeX, а более того — в разных операционных системах, — всё равно выглядят одинаково. Вы можете подготовить документ в Linux и отправить его другу, работающему в Windows, не беспокоясь о том, что у него в документе что-то испортится или не заработает.

Плавающие объекты. LaTeX позволяет вставлять в документ рисунки основных графических форматов: JPEG, PNG, EPS и т. п. Но вот вопрос: как сделать это так, чтобы страницы были заполнены гармонично, без «дыр»? Текстовый редактор этой проблемой не занимается, тогда как LaTeX её решает. Точнее, старается решить, поскольку полностью автоматизировать этот процесс невозможно — слишком много может оказаться несовместимых между собой требований. Разумеется, LaTeX позволяет вставлять рисунки и таблицы туда, куда укажет автор, как это делает обычный текстовый редактор.

Создание рисунков. Существует несколько пакетов для создания рисунков средствами LaTeX. Именно создания, а не использования уже готовых рисунков. Наиболее популярен пакет Tikz. Фактически, это язык высокого уровня для создания векторной графики. Для описания такой графики придумано немало языков (например, SVG), но создавать с их помощью рисунков... — попросите чего-нибудь попроще. Tikz, кажется, удалось найти компромисс между богатыми возможностями и сложностью их описания при помощи команд. Примеры тут.

Развертка календаря в форме додекаэдра, выполненная с помощью библиотеки calendar пакета Tikz

График, построенный в Tikz

Впрочем, делать всё только при помощи команд вовсе не обязательно. Иногда удобнее воспользоваться графическим интерфейсом. Здесь на помощь приходит редактор векторной графики Inkscape, в котором есть плагин, позволяющий сохранить графики в виде команд Tikz. Популярная графическая программа gnuplot также умеет делать это. Кроме того, обе указанные программы сохраняют рисунки в «обычных» векторных и растровых форматах, и затем эти рисунки можно будет вставить в документ LaTeX.

Построение графиков и таблиц по данным из файлов. У вас есть файл данных и вы хотите сформировать из него таблицу и поместить в документ или, выбрав нужные столбцы (строки), построить график? В LaTeX это делается с помощью пакетов datatool и pgfplots. Кроме того, графики можно построить при помощи gnuplot.

Презентации. Формулы, набранные в Word, можно затем использовать в презентациях PowerPoint — это большой плюс Microsoft Office и других подобных офисных пакетов. В LaTeX для создания презентаций используется пакет beamer, так что и здесь заново набирать формулы не придётся.

Пример презентации (beamer)

В презентацию можно добавить анимацию, аудио- и видеофайлы — стандарт PDF, в котором сохраняются результаты работы LaTeХ, это позволяет.

Оформление списка литературы. Вот как это выглядит: пользователь один раз вводит данные источника (авторов, название, число страниц и т. п.), ставит ссылки на этот источник в документе (что-то вроде: [Иванов1985]) и указывает, в соответствии с каким стилем нужно оформить список литературы (например, в стиле ГОСТа или какого-то журнала), а программа оформляет список в заданном стиле, нумерует источники и следит за поддержанием актуальности этих номеров в документе. Чтобы реализовать это, кроме LaTeXа (пакет biber), понадобится программа для работы с библиографической базой данных, например, JabRef. Саму базу затем можно будет использовать в других публикациях.

Расширение возможностей. Для этого в LaTeX существуют пакеты, то есть программы, написанные на самом LaTeXе, решающие те или иные частные задачи. Искать их не нужно: современные дистрибутивы LaTeX скачивают и устанавливают необходимые пакеты «на лету». А число пакетов, доступных для централизованной установки, — около 5000. Так что, пожалуй, с обзором возможностей пора заканчивать.

LaTeX представляет собой язык разметки документа и транслятор с этого языка. Транслятор обрабатывает снабженный разметкой текст и выдает документ полиграфического качества. Таким образом, LaTeX не обладает свойством WYSIWYG (What You See Is What You Get – что видишь, то и получаешь).

Почему это так? Если коротко, потому что для получения качественного результата необходимо обработать весь документ. А если чуть подробней, то так: LaТeХ работает с боксами (box) и клеем (glue). Элементарные боксы — это буквы.

Бокс-буква

Боксы-буквы объединяются в боксы-слова. Те, в свою очередь, образуют боксы-строки, боксы-абзацы и так далее. Боксы соединяются клеем, который может растягиваться и сжиматься. Объединяясь в бокс более высокого порядка, элементарные боксы могут «шевелиться», но после того как найдено оптимальное решение, это состояние запоминается и полученный бокс выступает уже как единое целое. Решение находится с помощью системы штрафов за то, что клея больше или меньше оптимального значения, а также за разрывы абзаца в неподходящем месте. Чем меньше полученный штраф, тем более «красивым» считается размещение текста. Получается, что добавление (удаление) одного символа может, в принципе, повлиять на внешний вид всей страницы и даже на то, как будут выглядеть другие страницы документа.

Представьте себе, как происходили бы подобные преобразования документа во время работы в редакторе типа WYSIWYG. Например, вставляемый рисунок мог бы исчезнуть и неожиданно появиться через несколько страниц от места его вставки. Чтобы избежать этих проблем, LaТeХ и сделан как транслятор, который обрабатывает документ только тогда, когда вы дадите ему команду. Просто набирайте текст, жмите на кнопку и … смотрите на результат, появившийся в соседней половине экрана.

Структура документа, текст и готовый документ в редакторе Texmaker

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

Мастер вставки таблиц в Texmaker

Есть и компромиссные подходы, например, редактор LyX, основанный на принципе WYSIWYM (What You See Is What You Mean — видишь то, что подразумеваешь).

 

Окно редактирования документа в LyX

Какое-то время источником проблем являлась русификация LaTeX — в том смысле, что её настройка требовала от пользователя выполнения некоторых нетривиальных операций. К счастью, эта проблема осталась в XX веке. Сейчас, чтобы установить MiKTeX или TeX Live, достаточно согласиться со всеми предложениями программы-установщика.

Если вы не хотите устанавливать LaTeX на свой компьютер, то существуют онлайновые редакторы с возможностью совместной работы: writeLaTeX и ShareLaTeX. Последний — с русским интерфейсом.

Чаще всего LaTeX используют студенты и ученые. Причем не только математики или физики, но и химики, лингвисты, медики и многие другие.

Структурная формула (пакет chemfig) и уравнение реакции (mhchem)

Отображение фонетических символов в пакете tipa

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

Исходный код в LaTeX (minted)

А еще в LaTeX можно строить блок схемы и UML-диаграммы.

Блок-схема (tikz)

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

Все указанные в статье программы являются бесплатными. Книг на русском языке про LaTeX существует множество (например, тут). Главный форум любителей LaTeX: tex.stackexchange.com.

Дмитрий Храмов

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя jamesjames root@erc

Хорошая статья-обзор, спасибо.

ltx