Что такое tex и latex
TeXобзор
Что такое TeX? TeX — это система компьютерной вёрстки, разработанная американским профессором информатики Дональдом Кнутом в целях создания компьютерной типографии. Что такое LaTeX? LaTeX — набор макрорасширений (или макропакет) системы компьютерной вёрстки ΤeΧ, который облегчает набор сложных документов.
Кому и зачем это нужно? Студентам, аспирантам, преподавателям, учёным мужам и всем, кому по долгу службы или по велению души нужно сделать качественную вёрстку текста. Не говоря уже об особях, чьё ремесло — издательское дело. Если вам хоть немного интересна эта тема, но вы не знаете, с чего начать: добро пожаловать на сегодняшний TeXобзор.
Пост разделён на несколько частей: установка texlive и подходящего текстового редактора, пример простой страницы и её вёрстки в pdf-формат, особенности использования TeX.
LaTeX. Первые шаги
Для начала нам понадобится установить пакет texlive — полный дистрибутив TeX с несколькими программами для создания профессиональных документов. В debian-based дистрибутивах он устанавливается легко и в полной комплектации, пользователи gentoo linux могут обратить свой взор на статью в вики и подумать с какими флагами им хотелось бы провести установку, а какие опустить. Под Windows. не знаю, но, думаю, ещё проще: выкачать программу инсталляции и следовать шагам установщика.
После того, как все компоненты будут установлены, следует заняться поиском подходящего редактора для работы с TeX. Как минимум он должен поддерживать синтаксис TeX, как максимум: показывать предпросмотр создаваемого документа. Наиболее используемые программы с кратким описанием каждой указаны там же, по ссылке выше. Выбирайте любой инструмент или попробуйте их все. Далее будут рассмотрены лишь самые простые: vim и sublime text 2.
Готово. Выглядит это так:
Использование редактора Sublime Text 2 ещё проще, поскольку он уже знает, что такое TeX:
Редактор выбран, texlive установлен. Теперь попробуем сверстать первую простейшую страницу.
LaTeX. Особенности использования
Как уже наверняка заметил читатель, изготовление документов в LaTeX совершенно не похоже на привычные и повсеместно используемые MS Office, LibreOffice и иже с ними. Но пока совершенно неясно: чем он лучше? А начать разговор об этом следует издалека.
В 1974 году появилась технология WYSIWYG, работающая по принципу «что видишь, то и получишь». До появления оной при создании документов со сложным форматированием использовались программы, применяющие язык разметки подобно тому, как читатель изволил видеть выше. Первой программой, использующей WYSIWYG считается текстовый редактор Bravo, разработанный в Xerox PARC для компьютеров Alto. Современные WYSIWYG-редакторы являются объектно-ориентированными визуальными средами программирования, в которых имеются шаблоны (классы) объектов, наборы готовых форм-объектов для блочного визуального программирования, включая скрипт-объекты на языках JavaScript, VBScript и прочих. К ним и относятся все нынешние офисные пакеты, так широко используемые пользователями.
Почему они уступают LaTeX? Как справедливо отмечает товарищ Львовский в книге «Набор и вёрстка в системе LaTeX»:
Кроме того, при написании, например, дипломной работы (чем мы, возможно, займёмся в последующем) проще использовать TeX, чем корпеть над форматированием документа в MS Word. Было бы ещё лучше, если бы учёные мужи из некоторых учебных заведений не поддерживали монополию закрытых коммерческих приложений, упирая на подготовку научных работ исключительно в Word’e.
Но давайте таки приступим к обзору возможностей.
Общие положения
Прежде всего стоит уберечь юного пользователя LaTeX’a от верных ошибок в отношении дефисов и тире, дабы он получил именно то, что ожидает на выходе. Разграничим понятия:
Как будут выглядеть эти отличия на бумаге:
Также нас может взволновать вопрос с кавычками. Как их ставить? Также как и раньше, только вместо двойных кавычек нужно ставить две одинарные. Или использовать специальные теги для левой и правой кавычек Нам также могут быть важны русские кавычки-«ёлочки». Для получения таковых следует использовать немного иные символы:
Следующим любопытным вопросом является интернационализация. Как вы напишете, например, немецкую «a умляут»? 😉 В LaTeX это просто. Нужно использовать управляющий символ. Наберите несколько слов:
На выходе получите следующее:
Кстати: чтобы поставить ударение в файле с кодировкой UTF-8, следует заключить нужную букву в фигурные скобки:
Изменение размера шрифта может задаваться для всего документа, а может быть изменено для отдельных слов или строк по ходу набора. Поскольку TeX имеет свои обозначения модификаторов размера шрифта, полагаю логичным указать их здесь.
Базовый шрифт документа | 10pt | 11pt | 12pt |
\tiny | 5 | 6 | 6 |
\scriptsize | 7 | 8 | 8 |
\footnotesize | 8 | 9 | 10 |
\small | 9 | 10 | 10.95 |
\normalsize | 10 | 10.95 | 12 |
\large | 12 | 12 | 14.4 |
\Large | 14.4 | 14.4 | 17.28 |
\LARGE | 17.28 | 17.28 | 20.74 |
\huge | 20.74 | 20.74 | 24.88 |
\Huge | 24.88 | 24.88 | 24.88 |
Выравнивание
Для выравнивания документа служат теги:
Во всех этих случаях LaTeX не старается сделать строки одинаковой длины. А вот при написании курсовой или дипломной работы такое требование, как правило, присутствует. Не стоит волноваться по этому поводу: если не указано иное, TeX будет выравнивать текст по ширине.
Списки
Списки в LaTeX можно сделать нумерованными, ненумерованными, простыми и с описанием.
Пишем стихи и цитаты
Конечно, любопытнее было бы сверстать стихи Маяковского 😉
Таблицы
Расположение плавающих объектов может быть различным. Фигура или таблица могут вставляться сразу за основным текстом или на специально выделенной странице, на той же странице вверху или внизу. Чтобы понять как регулировать это расположение, смотрите комментарии в приведённом ниже коде.
Вначале указываются опции столбцов:
l — выравнивание столбца по левому краю
r — выравнивание столбца по правому краю
c — центрирование содержимого
| — вертикальная черта обозначает линию между столбцами
p <ширина>— фиксированная ширина столбца
Таким образом получим следующую таблицу:
Если таблица выходит за края документа, следует задать колонкам точный фиксированный размер.
Так, <|p<3cm>|p<3cm>|r|r|r|> задаст первым двум колонкам фиксированный размер в 3cm.
Изображения
Если изображение получилось слишком широким, можно уменьшить его, с помощью указания `scale`.
Программный код и математические формулы
С вводом программного кода всё достаточно просто: окружение verbatim поможет отобразить даже самый замысловатый программный код именно так, как он должен выглядеть. При этом будет использован моноширный шрифт.
Вводу математических формул посвящены целые главы. В первую очередь для этого и предназначен TeX. Поэтому данный вопрос не будет рассматриваться в обзоре, который и без того получился не самым коротким. Хотя ради иллюстрации всё же нужно продемонстрировать как выглядят формулы в LaTeX’e.
Осваиваем LaTeX за 30 минут
Что такое LaTeX?
LaTEX (произносится как «лэйтех» или «латех») представляет собой инструмент для создания профессиональных документов. В его основе лежит парадигма редактирования WYSIWYM (что вижу, то и подразумеваю), то есть от пользователя требуется сосредоточиться только на содержимом документа, оставив его форматирование программе. Вместо ручного распределения текста по странице, как это делается в Microsoft Word или LibreOffice Writer, можно просто его вводить, позволив LaTeX заняться остальным.
Зачем нужен LaTeX?
Этот инструмент используется повсеместно для создания научных документов, написания книг, а также многих других форм публикаций. Он позволяет не только создавать красиво оформленные документы, но также дает пользователям возможность очень быстро реализовывать такие сложные элементы печатного набора, как математические выражения, таблицы, ссылки и библиографии, получая согласованную разметку по всем разделам.
Благодаря доступности большого числа открытых библиотек (об этом чуть позже) возможности LaTEX становятся практически безграничны. Эти библиотеки расширяют возможности пользователей еще больше, позволяя добавлять сноски, рисовать схемы и пр.
Одна из наиболее веских причин, по которой многие используют LaTeX, заключается в отделении содержания документа от его стиля. Это означает, что после написания содержимого, можно с легкостью изменять его внешний вид. Аналогичным образом, можно создать один стиль документа и использовать его для стандартизации внешнего вида других.
Это позволяет научным журналам создавать шаблоны для предлагаемых на рассмотрение материалов. Такие шаблоны имеют заданную разметку, в результате чего добавить остается лишь содержание. На деле существуют сотни подобных шаблонов, начиная с различных резюме и заканчивая презентациями слайдов.
Пишем первый документ
Здесь мы видим, что LaTeX уже позаботился о первом элементе форматирования, сделав отступ в начальной строке абзаца. Теперь более подробно рассмотрим, за что отвечает каждая часть кода.
После этого мы пишем содержание документа, заключенное в теги \begin
Чтобы увидеть результат этих изменений в PDF, документ нужно скомпилировать. В Overleaf для этого нужно просто нажать Recompile. (Также можете настроить проект на автоматическую перекомпиляцию в процессе редактирования файлов, нажав на небольшую стрелку рядом с кнопкой Recompile и установив Auto Compile как On).
При использовании специального редактора LaTeX вроде TeXmaker или TeXworks нужно просто нажать кнопку Recompile. Если не знаете, где она находится, обратитесь к документации.
Теперь, когда вы разобрались, как добавлять в документ содержимое, следующим шагом будет его именование. Для этого необходимо вкратце разобрать преамбулу.
Преамбула документа
А вот подробное разъяснение каждой строки:
Эта команда задает кодировку документа. Ее можно опустить либо изменить на другой вариант, но рекомендуется использовать именно utf-8. Если вам не требуется конкретно другая кодировка, либо вы просто не уверены, то добавьте эту строку во вступление.
Добавление заголовка, автора и даты
Для добавления в документ заголовка, автора и даты необходимо внести во вступление три строки (только не в основное тело документа):
Здесь размещается имя автора. При желании можно также добавить в фигурные скобки следующую команду:
После добавления перечисленных строк преамбула должна выглядеть так:
Добавление комментариев
Как и в случае с любым кодом, зачастую будет нелишним добавлять комментарии. Комментарии – это включаемые в документ текстовые элементы, которые в итоге не отображаются и никак не него не влияют. Они помогают организовывать работу, делать пометки или закомментировать (отключать) строки/разделы при отладке. Чтобы создать комментарий в LaTeX, просто наберите символ % в начале строки, как показано ниже:
Жирный, курсив и подчеркивание
А вот еще одна очень простая команда: \emph <. >. Выполняемые ей для аргумента действия определяются контекстом – внутри обычного текста его выделенная часть переводится в курсив, а при использовании команды в курсивном тексте происходит обратное.
Добавление изображений
В Overleaf для добавления изображений их сначала нужно будет загрузить.
Команда \graphicspath <
Примечание: расширение файла включить можно, но лучше его опустить. В этом случае LaTeX будет искать все поддерживаемые форматы. Также при загрузке файлов обычно рекомендуется указывать расширение в нижнем регистре.
Подписи, метки и ссылки
С помощью окружения figure изображения можно подписывать, размечать, а также делать на них ссылки:
В примере выше показаны три важные команды:
Примечание: если вы используете подписи и ссылки на собственном компьютере, то вам потребуется скомпилировать документ дважды, чтобы они сработали. Overleaf делает это автоматически.
Создание списков
Списки в LaTeX создаются очень просто. Делается это с помощью различных окружений списков. Окружения – это разделы, которые требуется представить отличным от остальной части документа образом. Начинаются они с \begin <. >, а завершаются на \end <. >.
Существует два основных типа списков: упорядоченные и неупорядоченные. Каждый из них реализуется в собственном окружении.
Неупорядоченные списки
По умолчанию отдельные записи обозначаются черной точкой, или буллетом. Текст в записях может иметь неограниченную длину.
Упорядоченные списки
Для упорядоченных списков используется тот же синтаксис, но в другом окружении. В данном случае этим окружением выступает enumerate :
Добавление математических выражений
Одно из главных удобств LaTeX состоит в простоте использования математических выражений. Этот инструмент предоставляет два режима их написания: режим inline (встраивание) и режим display (отображение). Первый используется для написания формул, являющихся частью текста. Второй позволяет создавать выражения, не входящие в состав текста или абзаца, а размещаемые на отдельных строках. Вот пример режима встраивания:
Режим отображения предлагает два варианта: без нумерации и с нумерацией.
Важно: окружение equation* предоставляется в виде стороннего пакета. Подробнее об этом рекомендую почитать статью по amsmath.
Для использования многих команд при работе с математикой необходим пакет amsmath, поэтому не забудьте его добавить. Ниже показан пример некоторых его базовых команд:
Возможности использования математики в LaTeX безграничны, и перечислить их все здесь просто нереально. Так что рекомендую дополнительно почитать соответствующие материалы по теме:
Базовое форматирование
Теперь разберем написание аннотаций, а также форматирование документов LaTeX в разных главах, разделах и абзацах.
Аннотации
Абзацы и перевод строки
Когда при написании документа вам требуется начать новый абзац, нужно дважды нажать «Ввод», вставив таким образом двойную пустую строку. Имейте ввиду, что отступ абзацев LaTeX делает автоматически.
Чтобы создать новую строку без создания очередного абзаца нужно вставить точку разрыва строки, для чего используется \\ (двойной обратный слэш, как в примере) или команда \newline.
При этом не следует использовать несколько \\ или \newline для «имитации» абзацев с увеличенными интервалами между ними, так как это приведет к конфликту с внутренними алгоритмами LaTeX. Для подобного эффекта рекомендуется использовать двойные пустые строки, после чего добавлять во вступление \usepackage
Дополнительную информацию по теме можно найти в статье Paragraphs and new lines.
Главы и разделы
Команды для организации документа варьируются в зависимости от его типа. Простейшей формой организации выступает деление на разделы, доступное во всех форматах.
Более подробный разбор структуры документа описан в статье Sections and Chapters.
Создание таблиц
Простые таблицы
Вот простейший пример создания таблицы:
Добавление границ
Окружение tabular достаточно гибкое и позволяет размещать разделяющие строки между каждым столбцом.
Подписи, метки и ссылки
Примечание: если вы используете подписи и ссылки на своем компьютере, то для работоспособности ссылок нужно будет скомпилировать документ дважды. Overleaf делает это автоматически.
Добавление содержания
Процесс создания содержания очень прост и реализуется командой \tableofcontents :
Скачивание готового документа
Завершенный документ в формате PDF можно скачать через расположенное слева меню, кликнув PDF.
Есть и более быстрый способ через нажатие кнопки Download PDF в окне просмотра PDF, как показано ниже:
Элементарное введение
Общие замечания
Что такое TeX и LaTeX
Прежде чем углубиться в изучение собственно LaTeX’а, скажем несколько слов о других издательских системах на базе TeX’а. Наряду с LaTeX’ом распространены также макропакеты Plain-TeX и AMS-TeX. Макропакет Plain-TeX был разработан самим Дональдом Кнутом, рассматривавшим его в качестве платформы для построения более сложных систем; на практике он используется и как средство для обмена текстами (текст, подготовленный для Plain TeX’а, сравнительно несложно переделать в исходный текст для того же LaTeX’а). Что касается AMS-TeX’а, то эта издательская система сориентирована на важный, но узкий круг приложений: верстку статей для математических журналов и книг, издаваемых Американским математическим обществом. Соответственно, в AMS-TeX’е предусмотрено большое количество весьма изощренных возможностей для создания сложных математических формул, но при этом нет многих вещей, которые естественно было бы ожидать в издательских системах общего назначения (например, автоматической нумерации частей документа). Современные версии LaTeX’а включают в себя AMS-TeX’овские возможности для набора формул (и используются Американским математическим обществом).
Настоящее издание этой книги посвящено описанию LaTeX’а версии (она называется LaTeX
, произносится » два е» или «два эпсилон»). Эта версия, вышедшая в 1994 году, в настоящее время стала стандартной. Ее создатели Йоханнес Браамс (Johannes Braams), Михаэль Гуссенс (Michael Goossens), Алан Джеффри (Alan Jeffrey), Дэвид Карлайл (David Carlisle), Франк Миттельбах (Frank Mittelbach), Крис Роули ( Chris Rowley) и Райнер Шепф (Rainer Schopf). Иногда встречаются тексты, набранные в более старой версии LaTeX’а (так называемый LaTeX 2.09, описанный в предыдущих изданиях этой книги). Во многих случаях файл, подготовленный в LaTeX’e 2.09, успешно обрабатывается и с помощью LaTeX’а
, хотя абсолютной совместимости «снизу вверх» все же нет.
Достоинства и недостатки
Все издательские системы на базе TeX’а обладают достоинствами, заложенными в самом TeX’е. Для новичка их можно описать одной фразой: напечатанный текст выглядит «совсем как в книге». LaTeX как издательская система предоставляет удобные и гибкие средства достичь этого полиграфического качества. В частности, указав с помощью простых средств логическую структуру текста, автор может не вникать в детали оформления, причем эти детали при необходимости нетрудно изменить (чтобы, скажем, сменить шрифт, которым печатаются заголовки, не надо шарить по всему тексту, а достаточно заменить одну строчку в так называемом » стилевом файле»). Такие вещи, как нумерация разделов, ссылки, оглавление и т.п. получаются почти что «сами собой».
Огромным достоинством систем на базе TeX’а является высокое качество и гибкость верстки абзацев и математических формул (в этом отношении TeX до сих пор не превзойден).
Программа TeX (и все издательские системы на ее базе) неприхотлива к технике (в свое время автор этих строк с успехом работал в TeX’е на компьютерах на базе всеми забытого 80286-процессора, и даже на таком электронном тихоходе, как IBM XT, а уж с современными компьютерами проблем заведомо не возникает).
С другой стороны, TeX’овские файлы (особенно английские — с русскими дело обстоит хуже; см приложение E) обладают высокой степенью переносимости: вы можете подготовить LaTeX’овский исходный текст на своей IBM PC, переслать его (скажем, по электронной почте) в издательство, и надеяться, что там ваш текст будет правильно обработан и на печати получится в точности то же, что получилось у вас при пробной печати на вашем любимом принтере (с той единственной разницей, что фотонаборный автомат даст отпечаток более высокого качества). Благодаря этому обстоятельству TeX стал очень популярен как язык международного обмена статьями по математике и физике.
Есть у TeX’а и недостатки. Тем, кто привык к редакторам наподобие Word’а, может не понравиться, что TeX не является системой типа WYSIWYG: работа с исходным текстом и просмотр того, как текст будет выглядеть на печати, — разные операции. На взгляд автора, благодаря этой особенности время на подготовку текста типографского качества только сокращается, но представления об удобстве у всех разные.
Далее, хотя параметры оформления менять легко, создать принципиально новое оформление (новый «класс документов») — совсем не простое дело.
Переносимость TeX’овских текстов снижается, если в них предусмотрен импорт графических файлов (эта возможность в TeX’е зависит от его реализации). Впрочем, в последнее время в этом отношении наметился определенный прогресс: стандартом de facto в TeX’овском мире становится представление графики в формате PostScript, причем в LaTeX’e появились удобные средства для включения этой графики в текст.
Наконец, как мы отмечали в предисловии, TeX плохо приспособлен для верстки страниц со сложным взаимодействием текста и графики.
Литература по TeX’у
Каноническое описание языка TeX и макропакета Plain TeX — трудная книга Дональда Кнута [2]. У рядового пользователя LaTeX’а необходимость читать эту книгу обычно не возникает.
Каноническое описание AMS-TeX’а — книга [5], также написанная самим создателем AMS-TeXа Майклом Спиваком (Michael Spivak).
Как проходит работа с системой LaTeX
В дальнейшем мы будем отмечать, какие свойства системы специфичны для LaTeX’а, а какие относятся вообще к TeX’у и ко всем издательским системам на его базе, но при первом чтении вы можете об этих тонкостях не задумываться и воспринимать слова TeX и LaTeX как синонимы.
В частности, все, что сказано в этом разделе, применимо не только к LaTeX’у, но и к любому другому макропакету для TeX’а, хотя мы всегда будем говорить «LaTeX».
На самом деле повторений цикла будет больше, так как придется еще исправлять синтаксические ошибки в исходном тексте.
Перед тем, как начать работать в системе LaTeX, вам необходимо уяснить для себя три вопроса:
Кроме того, для создания исходного текста нужно, естественно, уметь обращаться с каким-нибудь текстовым редактором.
Ответы на эти вопросы проще всего получить у знакомых, которые уже пользуются TeX’ом; они же помогут его достать (практически все реализации TeX’а являются свободно распространяемыми) и установить. Некоторые сведения о реализациях TeX’а для систем типа Unix (Linux, FreeBSD и др.) и для DOS/Windows приведены в приложении E.