Что такое LaTeX. Возможности. Руссификация.

Опубликовано пользователем Бессонов Л.В. 28.02.2010г.

LaTeX - это набор макросов к TeX - издательской системе, разработанной Дональдом Кнутом. Кнут и его ученики развивали данную систему, в частности были разработаны пакеты описания шрифтов (MetaFont) и программирования рисунков (MetaPost).

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

После того, как текст набран и сохранен в файле (рекомендуемым расширением является .tex), его нужно обработать специальными утилитами. Набор утилит зависит от используемой вами реализации LaTeX, но обычно это: latex <имя файла> — создает dvi-файл, это фактически скомпилированное представление текста, но без шрифтов. dvi-файл можно перегнать в PostScript-формат для печати на принтерах, поддерживающих PostScript, либо в банальную pdf-ку. В используемой мной системе PDF генерировалось с помощью команды dvipdfm -p a4. Удобно, что файлы с исходным текстом можно подключать друг в друга. Это позволяет некоторые файлы (например, список литературы) генерировать с помощью различных утилит.

Здесь самое время поговорить о реализациях LaTeX.

Реализация LaTeX

В мире Linux (и прочих *nix) систем пользуются популярностью дистрибутивы teTeX (как его поставить хорошо расписано здесь), правда данный продукт заморожен с 2006 года.

В мире Windows единственный адекватный дистрибутив - MiKTeX.

Используйте данную ссылку, что бы развернуть или свернуть блок текста

Автор пробовал разные дистрибутивы, к примеру TeXLive 2008 — документы компилируются нормально, но не работают средства просмотра PostScript и DVI. Причём штатную смотрелку DVI — программу dviout версии 3.18.1 — в Windows надо прикручивать вручную; для этого прилагается readme-инструкция, но мне прикрутить пока не удалось — не видит сгенерированные шрифты. В MiKTeX для просмотра DVI используется программа yap, которая нормально работает сразу после установки. Наверное, придётся ставить её.

Ghostscript и GSview для просмотра PS-файлов, вероятно, тоже надо будет поставить вручную.

Минус MiKTeX, в отличие от TeXLive 2008, в том, что с сайта и СТАN-a нельзя скачать образ диска (можно только купить за деньги). Предлагаются только инсталлер и минимальный дистрибутив, всё остальное установщик будет тянуть из интернета. Можно, наверное, где-то найти или даже собрать для себя, но это уже возня.

Можно даже собрать MiKTeX Portable. Разработчика не раз об этом просили, но он только отсылает к инструкции, как это сделать:

sourceforge.net/tracker/index.php?func=detail&aid=1910727&group_id=10783&atid=360783

оттуда ссылка на инструкцию:

ftp://ftp.fu-berlin.de/tex/CTAN/info/MiKTeX+Ghostscript+GSview+USB-drive...

Обычно дистрибутивы LaTeX не содержат средств для работы с верстаемым текстом, поэтому приходится использовать дополнительные редакторы или интегрированные оболочки. Многие хвалят LyX (кроссплатформенная), TexMaker (кроссплатформенный), Kile (*nix), WinEdit (Windows), TeXnicCenter (Windows). Я в работе использовал связку Far+Colorer+bat-файл под Win и Emacs под FreeBSD. Также существует плагин для Eclipse — texlipse.

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

Не хочется устраивать священные войны. Напишу, чем лично мне нравится LaTeX.

  1. НеWYSIWYG-подход. WYSIWYG-подход ограничивает мою свободу. Я обязан делать не так как мне надо (например не так как указано в стандарте оформления), а так как реализовано в визивиг-редакторе, шаг влево, шаг вправо - побег. Данный фактор скорее идеологический, но кто имеет богатый опыт верстки (например HTML) тот со мной согласится.
  2. Набор формул - один из основных факторов. Набрать в ворде какую-нибудь сложную формулу бывает очень не просто, если же формул много - то их набор с помощью мышки может занять длительное время. В LaTeX же все гораздо проще - достаточно только сверятся иногда со справочником. Например, гораздо легче набрать символ "_" и получить нижний предел интегрирования, чем брать в руки мышь, вызывать редактор формул и тыкать в нем.
  3. Богатейшие возможности макропрограммирования. Если у меня трехэтажные формулы, и они имеют регулярную структуру, мне гораздо проще написать для них один раз макрос и собирать формулы из заготовок. Причем, хороши макросы не только для работы с формулами а вообще для работы с любыми регулярными структурами. Например, несколько лет назад в пакете оформления курсовых я написал макрос для генерации титульника и навсегда забыл о том, что такое выровнять шапку, тему, выполнил-проверил и т.д.
  4. Переносимость результата. Не всегда документ, набранный в 2007-м ворде будет корректно отображаться в 2003-м, а тем более из него печататься. В случае использования LaTeX проблема решается конвертацией в PDF. PDF гарантирует однозначную печать вашего документа в любом центре оперативной печати. Интересным следствием такого решения является борьба с любителями халявы. Да, вы всегда дадите одногруппнику посмотреть свой курсач, но использовать его как шаблон он уже не сможет.
  5. Оглавление и список литературы. Автоматическая генерация оглавления есть и в ворде, но многие так и не научились ею пользоваться. И, как показал опыт оформления диплома в ворде вид оглавления слабо кастомизируем. Еще одной интересной фичей является автоматическая генерация ссылок на источники. Т.е. при создании ссылки на источник мы указываем понятное нам имя (например roga - Самолысов Павел Евгеньевич, «Рога и Копыта»). Далее мы компонуем список литературы, сортируя источники по некоторому признаку и наша символьная ссылка заменяется номером источника. Меняем порядок следования источников — номера пересчитываются. Также если список литературы большой, то мы можем использовать для работы с ним внешние утилиты. Вплоть до генерации .tex-файла со списком литературы из БД.
  6. В LaTeX мы работаем с текстовыми файлами, соответственно легко можно хранить эти файлы в репозитории системы управления версиями (например SVN). Соответственно, расширяются возможности коллективной работы. Да, 2007й офис тоже хранит файлы в XML-формате, но попробуйте сравнить diff непонятных XML-ек и LaTeXовских файлов.
  7. В последнее время становится актуальным и для России — большинство LaTeX пакетов бесплатны.

Русификация LaTeX

Для русификации LaTeX необходимо поставить пакет, осуществляющий поддержку используемой вами кодировки, в случае Windows-кодировки это будет пакет cp1251.

Можно использовать пакет t2 для поддержки кириллических шрифтов, но если вы сгенерируете PDF, то увидите, что шрифты какие-то корявые и рубленые. Это недостаток шрифтов t2. Для его исправления следует поставить другой набор шрифтов, наиболее симпатичными и часто используемыми является пакет PSCyr - коллекция русских шрифтов в формате Type1. Пакет PSCyr не входит в состав MiKTeX, в teTeX вроде бы входит, но установить его все равно нужно руками. Если в ваш дистрибутив LaTeX данный пакет не входит - следует скачать два архива: этот и этот. В Windows распаковать архивы можно с помощью WinZip. Далее следует воспользоваться авторской инструкцией, которая поставляется вместе с пакетом. Инструкция правда написана для teTeX, но и в случае MiKTeX замечательно подходит, единственное, в MiKTeX нет файла config.bat, но и без него все работает.

Ну и что бы русский язык заработал в вашем документе необходимо в преамбуле подключить соответствующие пакеты. Преамбула документа будет иметь вид:

  1. \documentclass[12pt]{article}
  2. \usepackage[cp1251]{inputenc}
  3. \usepackage[russian]{babel}
  4. \usepackage{pscyr}

Баннер SGU.RU