Главная > Програмное обеспечение > Редакторы/Офисы >
TeX FAQ или Как пропустить Кнута через TeX [2/6]

1. Что такое TeX

Система TeX (произносится "тех", от слова "технология") была задумана профессором Стэнфордского университета Дональдом Э. Кнутом в процессе подготовки к изданию 3-го тома "Искусства программирования для ЭВМ". Оказалось, что существовавшие тогда средства подготовки к печати математических текстов совершенно непригодны для выполнения столь сложной работы быстро и качественно. Работа по созданию TeX началась в 1978 году и Кнут планировал закончить ее в течение своего годичного отпуска (sabbatical year, полагается университетским профессорам каждые семь лет), но несколько ошибся в сроках [1] --- окончательный вариант программы появился в 1985. С тех пор TeX сделался стандартом de facto для многих серьезных издательских проектов: все книги самого Кнута набираются в TeX, статьи в издания American Mathematical Society, American Physical Society принимаются только в этом формате, он использовался во множестве проектов онлайн-документации.

В России эта система также достаточно популярна. Пожалуй, первая ее русификация (ProTeX), известная автору, появилась в Институте Физики Высоких Энергий (ИФВЭ, Протвино) и случилось это не менее девяти лет тому назад. С тех пор многие издательства взяли TeX на вооружение. Его широко используют в издательстве "Мир" и многих других издательствах, выпускающих физико-математические книги. Автору не раз доводилось встречать книги, набранные в TeX, а еще, судя по внешнему виду журнала "Программирование", он также набирался в этой системе (по крайней мере, его выпуски за 1991--1993гг.)

За что же так полюбился TeX профессионалам?

  • Основные преимущества TeX (и недостатки тоже) определяются подходом к тексту, как к программе, которую нужно откомпилировать. Обычные системы подготовки текстов при этом можно сравнить с интерпретируемым языком, типа Бейсика. Подход TeX позволяет машине оперировать сразу всем абзацем или уравнением, а не собирать их построчно, когда пользователь буквально "ведет компьютер за руку". Вместо этого предлагается мощный язык, на котором можно задать команды форматирования текста. При этом имеется неоценимая возможность определить логические единицы текста. Например, в математической статье можно научить TeX видеть не просто абзацы, а теоремы и доказательства, со своим стилем оформления. Имеется полный контроль над выводом оглавлений, нумерации страниц, оформления сносок и т.п. Очень важно то, что все это достигается сравнительно небольшим количеством мощных примитивов, комбинируя которые в различных сочетаниях можно сделать практически все, что придет в голову. Стили отдельных элементов текста объединяются в пакеты макросов.

    Одним из самых популярных таких макропакетов является LaTeX, в котором реализовано практически все, что может понадобиться при подготовке широкого спектра документов. К сожалению, за высокую гибкость и многофункциональность приходится платить --- этот пакет (по мнению автора) весьма объемист и сложен в освоении.

    Одной из основных функций, заложенных в TeX при его проектировании, была возможность простого набора математических формул. Можно сказать, что это удалось. По субъективной оценке автора, набор сложных формул существенно легче и быстрее "визуальных" редакторов (M$ Equation, MathCAD). В особенности это заметно, где требуется выравнивание формул относительно друг друга, расстановка нумерации, а также при использовании нестандартных математических обозначений (последняя возможность вообще не встречалась автором нигде, кроме TeX). Американское математическое общество (American Mathematical Society) разработало макропакет AmSTeX, который содержит стандартные элементы статей, подаваемых для публикации в изданиях этого общества. Благодаря наличию этого пакета автор может самостоятельно подготовить текст публикации, который автоматически будет оформлен в соответствии с правилами. Также не составляет труда поменять внешний вид оформления --- достаточно по-другому определить стилевой файл, не переделывая при этом сами документы. Достаточно легко научить TeX вводу химических, музыкальных обозначений, и т.п. Подобные выдающиеся возможности делают TeX фактическим стандартом в научных издательствах.

    Заслуживают внимания и такие вспомогательные средства, как index и BibTeX --- специальные программы, написанные для работы с TeX и позволяющие проставлять индексы, правильно вставлять ссылки и составлять список литературы в требуемом формате. BibTeX позволяет вытащить из базы данных (сама база данных --- чисто текстовый файл, вполне читабельный и его можно вручную корректировать) упомянутые в статье ссылки в нужном порядке, и каждая ссылка будет иметь расположение авторов, название и и т.п. в порядке, указанном стилевым файлом. Проблемы с неправильной нумерацией ссылок, часто встречающиеся при интенсивном редактировании текста, исчезают.

    Непосредственное отношение к TeX имеют системы структурированного документирования программ WEB (Pascal) и CWEB (C/C++), позволяющие писать программы, как статьи, либо книги --- излагая словами и формулами идею алгоритма с "иллюстрациями" его реализации на соответствующем языке программирования. Впоследствие из такого файла можно с помощью соответствующих программ "вычистить" литературную часть и получить готовую программу, а можно получить хорошо структурированное и подготовленное к печати описание программы, снабженное перекрестными ссылками и т.п.

    К сожалению, небольшой объем публикации не позволяет продемонстрировать гибкость и расширяемость TeX в полном объеме, поскольку, IMHO, оценить ее можно, лишь научившись составлять макросы самому. Так что последуем примеру известнейшего советского физика Л. Д. Ландау, который, бывало, говорил своим студентам: "прошу поверить мне на слово, что эта формула верна".

  • Исходные тексты TeX опубликованы, форматы файлов документированы. Правда, создатель TeX, профессор Кнут, особо настаивает на том, чтобы все модификации распространялись с другими именами файлов. Он объясняет это тем, что хочет, к примеру, чтобы всегда и на всех платформах шрифт с именем Computer Modern Roman содержал одинаковый набор символов одинаковых размеров, так что все документы будут воспроизведены в точности.

  • TeX использует свои внутренние единицы измерения, кодировку символов и форматы данных. Не используются вычисления с плавающей точкой (которые на разных платформах могут давать существенно разный результат). Благодаря этому документы и шрифты TeX беспроблемно переносятся между платформами, а также обеспечивается их точное воспроизведение.
К сожалению, у системы есть и определенные недостатки.
  • Например, нет стандартного способа вставки рисунков. Впрочем, возможность вставки файлов PostScript распространена достаточно широко, кроме того, существуют макропакеты типа PiCTeX, с помощью которых можно размещать в документе контурные рисунки. PiCTeX использует исключительно стандартные средства, но при этом весьма и весьма ресурсоемок.

  • Не определено стандартом использование цветов.

  • Система TeX ориентирована прежде всего на подготовку [научных] изданий большого объема, предназначенных для серьезного чтения. Поэтому она не слишком подходит для изготовления рекламных буклетов и т.п., где требуются, в основном, вычурные эффекты (такие, как в небезызвестном Word Art'е), среди которых в реальной работе необычайно досаждает лишь невозможность, к примеру, развернуть полученную страницу (или, вообще говоря, "бокс") хотя бы на 90 градусов. Впрочем, как пишет [Евгений Цымбалюк], многие ограничения снимаются особыми расширениями для MetaFont или пакетом PSTrick.

  • Самый прискорбный (для меня) недостаток: несмотря на относительную свободу исходных текстов, нельзя того же сказать о документации. К сожалению, авторские руководства по системе TeX в настоящий момент принадлежат издателям, так что доступные в Сети электронные версии запрещено распечатывать (что ненавязчиво поддержано отсутствием некоторых нужных файлов) и вообще использовать, кроме как "coup de maitre"-образец документа.

Краткое описание работы с TeX

Последовательность действий такая:
  1. Установить и заставить TeX работать :-)
  2. Подготовить текстовый файл (по умолчанию расширение .tex), содержащий текст документа, в котором текст содержит команды форматирования.
  3. Пропустить этот файл через TeX, получив версию документа в формате DVI (DeVice Independent). В таком виде он переносим между платформами. (К сожалению, в реальной жизни это случается не всегда, но главная причина --- несоблюдение общепринятых правил хорошего тона, к примеру, шрифты, искалеченные местными умельцами.)
  4. Просмотреть DVI-файл с помощью специальной утилиты просмотра либо вывести его на принтер с помощью программы "драйвер принтера".
  5. Наслаждаться безупречным результатом.

Страница 1 2 3 4 5 6 <<< Предыдущая Следущая >>>


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

Copyright © 2001 - 2002 Olexandr Slobodyan.
Сайт создан в системе uCoz