суббота, 19 января 2008 г.

Возвращаемся к истокам: LaTeX


Давно - давно, горячей зимой 2005-го, когда учился на третьем курсе - фанател я FreeBSD и держал ее в качестве единой ОС на своем компе. Проблема оформления курсовых, лаб и прочей учебной чухни (а их было ох как не мало...) решалась с помощью замечательной издательской системы LaTeX, а точнее ее реинкарнации под названием teTeX.

Была куча наработок, в том числе и свой пакет стилей для оформления курсачей в соответствии с СТП ЮУрГУ.

Вчера под давлением оформления курсовой работы по ТАУ решил, что ворд дико сливает при наборе текста со множеством формул и поставил себе замечательную штуку - MiKTeX.


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

Я не собираюсь устраивать всяких разных священных войн, напишу только, чем для меня лично хорош LaTeX и почему я вообще не люблю WYSIWYG-подход.

1. WYSIWYG-подход ограничевает мою свободу. Я обязан делать не так как мне надо (например не так как указано в стандарте оформления), а так как реализовано в визивиг-редакторе, шаг влево, шаг вправо - побег. Данный фактор скорее идеологический, но кто имеет богатый опыт верстки (например HTML) тот со мной согласится.

2. Набор формул - один из основных факторов. Набрать в ворде какую-нибудь сложную формулу - утопиться проще. А если формул очень много - если вся работа пропитанна формулами (кто знает ТАУ - тот поймет)? В LaTeX же все гораздо проще - достаточно только сверятся иногда со справочником. Гораздо легче набрать символ "_" и получить нижний предел интегрирования, чем брать в руки мышь, вызывать редактор формул и тыкать в нем.

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

4. Переносимость результата. Не всегда документ, набранный в 2007-м ворде будет корректно отображаться в 2003-м, а тем более из него печататься. В случае использования LaTeX проблема решается конвертацией в PDF. PDF гарантирует однозначную печать вашего документа в любом центре оперативной печати. Очень интересным следствием такого решения является борьба с любителями халявы. Да, вы всегда дадите одногруппнику посмотреть свой курсач, но использовать его как шаблон он не сможет.

5. Оглавление и список литературы. Автоматическая генерация оглавления есть и в ворде, но большинство так и не умеют ею пользоваться. Согласен, что это проблема не ворда а пользователей, но вот он оказывается какой - продукт для домохозяек. С ним еще оказывается разобраться нужно. Но вот чего точно в ворд нет - автоматической генерации ссылок на источники. Т.е. при создании ссылки на источник мы указываем его понятное нам имя (например spe1 - Самолысов Павел Евгеньевич, "Рога и Копыта"). Далее мы компонуем список литературы, сортируя источники по алфавиту и ву-а-ля, наша символьная ссылка заменяется номером источника. Меняем порядок следования источников - номера пересчитываются.

6. В последнее время становится актуальным и для России - большинство LaTeX пакетов бесплатны.


Установка и настройка MiKTeX

В прочем, чтобы данными фичами пользоваться стоит одну из реализаций LaTeX установить. Я выбрал MiKTeX 2.7. Скачиваем базовый пакет, устанавливаем. Далее необходимо русифицировать LaTeX. Ставим модули cp1251 - для обработки стандартной Windows-кодировки, пакет t2 для включения поддержки кириллических шрифтов.

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

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

\documentclass[12pt]{article}

\usepackage[cp1251]{inputenc}

\usepackage[russian]{babel}

\usepackage{pscyr}



Литература по LaTeX

Ну и напоследок хотелось бы привести список наиболее интересных и полезных книг по системе LaTeX. Эти книги легко найти в сети, многие есть у меня в электронном виде.
1. Не очень краткое введение в LaTeX 2e, перевод Б. Тоботрас
2. С. М. Львовский - LaTeX: подробное описание - культовая книга, должен прочитать каждый.
3. Набор математических формул в LaTeX 2e - все средства LaTeX 2e и AMS-LaTeX для печати математики в документах на англ. и русском языке. Очень много внимания уделяется российским стандартам оформления формул.
4. Включение рисунков в LaTeX 2e - графики, диаграммы и просто картинки. Не OLE единым.
5. Гипертекст в PDF-документе - как сделать функциональное оглавление с помощью LaTeX
6. Цвет в LaTeX - раскрашиваем текст и таблицы.
7. Русский язык в LaTeX - кодировки шрифтов, стандарты оформления русских текстов, формул. Все о номерах, кавычках и тире (а вы знали что их три типа?).
8. Беляков Н.С., Палош В.Е., Садовский П.А. - ТеХ для всех: Оформление учебных и научных работ в системе LaTeX - новая книга от издательства УРСС.

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

P.S. мож вернуться на BSD, тем более 6.3 вышла


Понравилось сообщение - подпишись на блог через RSS

7 комментариев:

Анонимный комментирует...

Спасибо Вам за эту статью! Пробую TeX впервые, но уже успел заинтересоваться настолько, что не отстану, пока не освою хотя бы минимум, нужный мне для НОРМАЛЬНОЙ верстки книг. Спуск полос предполагаю делать из готового многостраничного pdf в Quite Imposing. Ну, как всегда в общем :)

--
С уважением,
Дмитрий.

Анонимный комментирует...

Ну, вот прошли почти сутки... Дважды переустановлен MikTex, прочитан не один форум в Сети, выкурена не одна сигарета. А всё потому, что Pscyr не захотел работать "с первого пинка".
К чему я тут плачусь? Да просто Вы забыли упомянуть, что после размещения содержимого архивов с Pscyr "по своим местам" и правки конфигов, надо ещё обновить конфигурацию шрифтов %)
Любопытно, что две кнопочки в разделе "обслуживание" (Maintenance) окна MikTeX Options не повлияли на это самое обновление, и шрифты из Pscyr выводились попросту никак :(
Помогла непосредственно команда mkfntmap, данная из виндового окна cmd в корневой MikTeX'овой директории. Во как! =)
Вы бы дополнили текст статьи, может другой такой-же дилетант в TeX как я, не наступит хоть на эти грабли. ;)

--
С уважением,
Дмитрий.

Unknown комментирует...

Спасибо, Дмитрий, за ваш комментарий. По поводу pscyr - тот факт, что надо обновить шрифты описан в документации к pscyr, поэтому я и не стал обращать на это внимание в статье.

В любом случае, если у вас есть вопросы - задавайте. Помогу ответить )

Анонимный комментирует...

Гораздо приятнее получить доступ ко всем шрифтам в системе с помощью XeTeX. В MikTeX 2.7 оно входит.

Анонимный комментирует...

Не могли бы Вы подробно описать установку пакета pscyr в "Basic MiKTeX 2.7" Size: 82.33 MB.

С уважением, Максим.

Анонимный комментирует...

Хотелось бы также порекомендовать очень доходчивую книжку, изданную буквально на днях в издательстве УРСС: "ТеХ для всех: Оформление учебных и научных работ в системе LaTeX", авторы Беляков Н.С., Палош В.Е., Садовский П.А.
http://urss.ru/cgi-bin/db.pl?lang=Ru&blang=ru&page=Book&id=95615

Наиболее приемлемое введение для тех, кто хочет с минимальными потерями освоить ТеХ с нуля (в частности, в других книгах не встречал рассказы о многих очень полезных пакетах).

Unknown комментирует...

Большое спасибо за ссылку на книгу. Добавил в список литературы.

Отправить комментарий

Любой Ваш комментарий важен для меня, однако, помните, что действует предмодерация. Давайте уважать друг друга!