Содержание


Работа в LaTeX. История появления и внутренняя философия LaTeX

Comments

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

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

Немного истории

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

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

Роль человека в истории

Не всё равно было Дональду Эрвину Кнуту (Donald Ervin Knuth). Дональд вообще относится к книгам очень трепетно, в частности он совершенно не понимает: "Как это может быть скучно, если уже умеешь читать?" Кроме этого он является одним из тех людей, благодаря которым информатика является научной дисциплиной. Самым известным его произведением является пятитомник "Искусство программирования". Мастер всё ещё активно работает над ним, и если посетить его Web-сайт, то можно обнаружить весьма оптимистичное ожидание, что пятый том будет закончен примерно к 2020 году.

Третий том "пятитомника" был издан в 1975 году, и сразу после этого издатель Дональда Кнута окончательно избавился от печатной машины с металлическим набором типа "монотип", заменив её фотонаборным устройством, которое было гораздо проще и дешевле в эксплуатации. Правда, довеском к этим полезным качествам шла существенная деградация качества печати. Это сильно опечалило Д. Э. Кнута, который как раз подготовил переиздание второго тома и получил оттиски, сделанные по новой технологии. Дональд Кнут потратил на свои книги свыше пятнадцати лет жизни, и их печатное представление было ему не безразлично.

В новых печатных машинах буквы составлялись из точек. "Это объект для компьютерной науки", — подумал Дональд Кнут и решил научить компьютер делать книги "красивыми". Дональд планировал справиться с этой проблемой в течение летних месяцев 1977 года... Прошло примерно десять лет... Кнут сказал, что эта ошибка в планировании была его личным рекордом по недооценки сложности проекта.

Результатом работы стали METAFONT - система для создания шрифтов и TeX - лучшая на сегодня программа разбиения абзацев на строки. После стабилизации кода (версия 2.7 для METAFONT и 3.1 для TeX) в эти программы вносились только исправления обнаруженных ошибок, за обнаружение которых Дональд Кнут выплачивает вознаграждение по 256 центов за ошибку. Говорят, что мало кто обналичивает присланные профессором чеки — их место в рамочке на стене. Код программы TeX настолько хорош, что был выпущен как самостоятельная книга "TeX: The Program" (ISBN: 0201134373).

На сегодня (лето 2014 года) рабочая версия METAFONT — 2.7182818, а версия TeX — 3.14159265. Кнут завещал, что после его смерти версии программ будут окончательно заморожены и равны числу "e" и числу "пи", соответственно, а все оставшиеся неисправленные ошибки будут считаться особенностями реализации. Пакет TeX — это свободное программное обеспечение, поэтому не накладывает никаких ограничений на "отпочкование" новых версий. Это пожелание касается лишь изначальных программ, которые начали создаваться более тридцати пяти лет назад.

Что такое TeX?

Прежде всего, название пакета TeX читается как "тех", а не "текс". Последняя буква X в названии TeX — вовсе не английская буква "икс" (x), а греческая "хи".

В основу TeX заложена довольно простая идея. TeX работает с боксами (box) и клеем (glue). Элементарные боксы — это буквы, которые объединяются в боксы-слова, которые в свою очередь сливаются в боксы-строчки, боксы-абзацы и т.д. Между боксами "разлит" клей, который имеет некоторую ширину по умолчанию и степени увеличения/уменьшения этой ширины. Объединяясь в бокс более высокого порядка, элементарные боксы могут шевелиться, но после того как найдено оптимальное решение, это состояние замораживается, и полученный бокс выступает как единое целое. Оптимальное решение находится с помощью системы штрафов за то, что клея больше или меньше чем некое оптимальное значение, определённое Кнутом эмпирически, а также за разрывы абзаца в неподходящем месте. Чем меньше штрафов было получено, тем размещение "красивее". В зависимости от выбранной системы штрафов меняется и форматирование.

Появление LaTeX и CTAN

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

Начало LaTeX положил Лесли Лэмпорт. В начале 80-х годов XX века Лэсли представил набор макросов на языке TeX, позволяющих решить ту или иную стандартную для печатника задачу. Иными словами он создал сборник рецептов.

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

Сборник рецептов LaTeX всё пополнялся и пополнялся, поэтому в 1992 году был организован файловый архив CTAN. CTAN — это акроним "Comprehensive TeX Archive Network". В этом архиве находится всё, что хоть как-то относится к LaTeX и имеет свободную лицензию. Поиск нужного пакета LaTeX и его описания следует начинать именно оттуда.

Основной сервер CTAN расположен в Германии по URL-адресу dante.ctan.org. Там же сосредоточены и основные сервисы по поиску и загрузке новых пакетов. Также всё содержимое основного сервиса копируется на множество зеркал по всему миру. Для автоматического выбора ближайшего зеркала можно воспользоваться специальным сайтом http://mirror.ctan.org/.

Интересно, что модель сборника рецептов LaTeX CTAN была успешно скопирована и активно используется во многих открытых проектах. Достаточно упомянуть CPAN (The Comprehensive Perl Archive Network), CRAN (Comprehensive R Archive Network), PyPI (Python Package Index) и т.д.

TeXксперты, TeXники и простые пользователи

TeX — это полноценный язык программирования, который изначально не планировался быть таковым. Он позволяет решать определённые задачи, является надёжным средством и замечательно документирован, но для написания на нём полезных макрорасширений необходимо иметь достаточно высокую квалификацию. Таких специалистов можно называть "TeXкспертами". Их немного, но именно они являются авторами альтернативных реализаций TeX (например, ConTeXT или XeTeX) и базовых пакетов LaTeX.

Для вёрстки книг и других объёмных или сложных произведений необходимо уметь ориентироваться в имеющихся средствах LaTeX и выбирать подходящее решение. Если же выбранное решение не полностью подходит, то "TeXник" сможет поправить его до нужного состояния. Их больше, чем TeXкспертов и в отличие от них они предпочитают использовать уже готовые шаблоны, нежели придумывать всё с нуля. ТеХники отвечают за создание основной массы пакетов LaTeX и их разнообразие.

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

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

Литература

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

Компьютерная типография LaTeX

В качестве первого источника информации по LaTeX я возьму смелость порекомендовать собственную книгу. Книга "Компьютерная типография LaTeX" была выпущена издательством "БХВ-Петербург" в 2008 году (ISBN 978-5-9775-0230-6). После того как права на книгу вернулись ко мне, книга была выложена под свободной лицензией в каталоге CTAN.

В рамках данного цикла статей читателям, по сути, будет представлено расширение этой книги с учётом современного состояния дел в LaTeX и особенностями представления текста в Web.

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

> git clone https://code.google.com/p/ctex-ru/

Предварительно на компьютере должна быть установлена система контроля версий git. Подробнее про эту систему можно узнать в замечательной книге Pro Git.

Для облегчения сборки книги в каталоге с её исходным кодом есть Makefile, поэтому достаточно будет выполнить команду:

> make ctex.pdf

Для правильной выставки всех ссылок и указателей эту команду потребуется выполнить три раза.

По любым вопросам, связанным с книгой и её исходным кодом, следует обращаться по e-mail E.M.Baldin@inp.nsk.su или E.M.Baldin@gmail.com. Все конструктивные предложения, критика и исправления принимаются с благодарностью!

Каталог пакетов LaTeX

В книге "Компьютерная типография LaTeX" был представлен тематический каталог пакетов дистрибутива TeX Live 2007. Впоследствии в рамках цикла статей "Каталог классов и стилей LaTeX" описание этого каталога было расширено и обновлено до дистрибутива TeX Live 2013. С помощью статей из этого цикла можно легко найти LaTeX-решения для различных практических задач:

  • в первой и второй статьях описываются общие вопросы редактирования в LaTeX;
  • в третьей статье представлен путеводитель по классам LaTeX;
  • четвертая и пятая статьи содержат описание классов и стилей LaTeX, используемых для подготовки публикаций в различных научных областях;
  • классы для "нестандартных" сценариев использования (хобби или работа) описываются в шестой статье;
  • седьмая статья описывает процесс создания и вставки графических изображений в LaTeX;
  • восьмая статья посвящена работе с таблицами и плавающими объектами;
  • девятая статья посвящена вопросам вёрстки;
  • справочно-поисковый аппарат издания (оглавление, колонтитулы, сноски, библиография и алфавитный указатель) рассматривается в десятой статье;
  • одиннадцатая статья раскрывает основы программирования в LaTeX.

Классические источники

Книга Дональда Кнута "Всё про TeX" (Вильямс, 2003, ISBN: 5-8459-0382-3) — это настоящая "библия" TeX. Знакомство с этой книгой не обязательно для рядовых пользователей, которые занимаются исключительно набором текста. Но TeXкспертам и тем, кто к ним себя относит, следует прочесть эту книгу несколько раз в обязательном порядке, так как она просто необходима для написания собственных пакетов LaTeX. Книга содержит сквозной материал различной сложности, но при прочтении можно выбрать свой уровень.

Д. Э. Кнут "Всё про METAFONT" (Вильямс, 2003, ISBN: 5-8459-0382-3) — всё, что сказано про библию TeX, относится и к этой библии METAFONT. Пакет METAFONT — это система, в которой Кнут создал шрифты для своей системы вёрстки. Перед созданием иллюстраций с использованием MetaPost, также имеет смысл внимательно прочитать эту книгу.

Д. Э. Кнут "Компьютерная типография" (Мир, 2003, ISBN: 5-03-3361-0) — сборник статей Д. Э. Кнута, написанных в процессе создания TeX и METAFONT. В книге подробно разобраны алгоритмы, которые легли в основу TeX и перечислены проблемы, которые необходимо было решить в процессе создания "компьютерной типографии". Книга интересна и в историческом плане, как рассказ о становлении одного из самых успешных и долгоживущих компьютерных проектов.

Переводная литература

Новичкам можно порекомендовать книгу Г. Грэтцер "Первые шаги в LaTeX" (Мир, 2000, ISBN: 5-03-0033661-0) — компактный и элементарный учебник с упором на математическую нотацию, позволяющий быстро освоить базовые приёмы.

М. Гуссенс, Ф. Миттельбах и А.,Самарин "Путеводитель по пакету LaTeX и его расширению LaTeXe" (Мир, 1999, ISBN: 5-03-003325-4) — действительно исчерпывающее полное справочное руководство по основным пакетам и приёмам работы с LaTeX. Эта книга является эталонным справочником по LaTeX во всём мире. На английском актуальным является второе издание.

М. Гуссенс, С. Ратц и Ф. Миттельбах "Путеводитель по пакету LaTeX и его графическим расширениям" (Мир, 2002, ISBN: 5-03-003388-2) — иллюстрирование документов при помощи LaTeX, MetaPost и PostScript. При подготовке основного путеводителя авторы обнаружили, что описание пакетов для создания рисунков с использованием TeXнологий по объёму начинает превосходить базовый текст. Пришлось выделить для этого отдельную книгу, в которой описаны различные сценария использования графики: от шахмат и нот до электронных схем. Очень полезный, хотя и несколько устаревший, учебник-справочник для тех, кто самостоятельно создаёт иллюстрации.

М. Гуссенс, С. Ратц "Путеводитель по пакету LaTeX и его Web-приложениям" (Мир, 2001, ISBN: 5-03-003387-4) — использование документов LaTeX и его производных на просторах WWW. Книга ориентирована на любителей технологии XML и расписывает различные аспекты совместного использования LaTeX и PDF.

"Не очень краткое введение LaTeXe. Или LaTeXe за 137 минуты" в переводе Бориса Тоботраса от 2003 г. К существенным недостаткам этого краткого введения можно отнести разве что отсутствие информация о русификации документа.

Российские источники по LaTeX

С. М. Львовский "Набор и вёрстка в системе \LaTeX" 3-е издание (МЦНМО, 2003, ISBN: 5-94057-091-7) — классическая книга с упором на математическую нотацию. Существует авторская электронная версия, которую можно взять на сайте Московского центра непрерывного математического образования. Готовится новое обновлённое переиздание этой замечательной книги. Более того, возможно она уже вышла.

И. А. Котельников, П. З. Чеботаев "LaTeX по-русски" 3-е издание (Сибирский Хронограф, 2004, ISBN: 5-87550-195-2) — очень качественный учебник.

А. И. Роженко "Искусство вёрстки в LaTeX'е" (ИВМиМГ СО~РАН, 2005, ISBN: 5-901548-25-6) — краткий и достаточно исчерпывающий справочник с упором на разработанные автором макросы NCC. Также в книге обсуждаются особенности русского стиля в книгопечатании.

Н. С. Беляков, В. Е. Палош, П. А. Садовский "TeX для всех" (ЛИБРОКОМ, 2009, ISBN: 978-5-397-02341-2) — учебник, описывающий базовые правила оформления.

А. В. Столяров "Сверстай диплом красиво" (МАКС Пресс, 2010 году, ISBN 978-5-317-03440-5) — краткое введение, ориентированное на нужды студентов. В открытом доступе выложена электронная авторская версия книги.

Источники в Интернет

Владимир Сюткин на своей LaTeX-страничке выложил переводы документации к некоторым стандартным пакетам.

Михаил Конник в своём блоге Записки Дебианщика регулярно выкладывает довольно любопытные статьи по LaTeX-тематике.

Иван Моргун в своём блоге proft.me опубликовал хорошую статью LaTeX: профессиональная компьютерная типография

Данил Фёдоровых при поддержке ВШЭ прочитал на Coursera видеокурс-введение Документы и презентации в LaTeX.

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

Со своей стороны я бы порекомендовал форумы сайта linux.org.ru, например, этот. При публикации вопроса нужно добавить тег latex и это обеспечит к нему внимание со стороны людей, интересующихся этой темой.

Англоязычное сообщество пользователей LaTeX поддерживает в актуальном состоянии достаточно обширный FAQ.

Заключение

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

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


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Open source
ArticleID=978409
ArticleTitle=Работа в LaTeX. История появления и внутренняя философия LaTeX
publish-date=07222014