Федотов А.М.

Электронные публикации и проблемы множественности кодировок русского языка

8. Обзор конверторов из TeX В HTML

В заключении несколько слов о конверторах \TeX => HTML.

В настоящее время многие солидные издательства выпускают печатную продукцию с помощью системы TEX, созданной Дональдом Кнутом и зарекомендовавшей себя как удобный инструмент для подготовки высококачественных печатных материалов . Однако,к сожалению,не всегда удобно бывает читать математические статьи составленные на LaTeX'е, не имея под рукой подходящего просмотрщика. Попытка решить эту нетривиальную проблему впервые была предпринята в 1993 году Никосом Дракосом. Первый конвертор, конечно же, оказался не самым совершенным, и вскоре за Никосом Дракосом потянулись другие, да и сам он не оставил попыток окончательно усовершенствовать latex2html.

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

LaTeX2HTML
\LaTeX 2.09 конвертор в HTML (Автор Nikos Drakos, University of Leeds, Великобритания). Конвертор написан на языке интерпретатора Perl (Perl scripts, объемом около 200 килобайт) для OS UNIX. Наиболее полный из всех в настоящий момент работающих конверторов. Конвертор включает математические формулы и таблицы в виде графических файлов, обрабатывает примечания и библиографию.

Является, пожалуй, самым известным и хорошо зарекомендовавшим себя конвертором такого типа. В возможностях преобразователя присутствует разбор и раскрытие функций, описанных пользователем (\newcommand). Автоматически происходит преобразование LaTeX конструкций, подобных существующим в HTML: таблиц,подстрочных примечаний,списков и прочих, Не имеющие аналогов в HTML элементы выделяются в отдельные файлы, компилируются с помощью LaTeX, а затем переводятся в формат Сompuserve GIF и помещаются конвертором на соответcтвующие позиции внутри документа. Этот метод конечно привлекателен, однако он, к сожалению имеет ряд серьезных недочетов. Во-первых, он медленный, поскольку требует слишком большого количества операций, а во-вторых, результат обработки имеет ряд существенных недостатков, которые приходится править в ручную.

Для работы потребуется LaTeX 2.09 (2epsilon), dvips, GhostScript и PBMPlus Toolkit. Все требуемое программное обеспечение и сам конвертор имеют статус freeware.

LaTeX2hyp
Программа, написанная на языке C, для трансляции документов из LaTeX в HTML, Text, TurboVision help, RTF или WinHelp RTF. Конвертор поддерживает перекрестные ссылки, библиографию, нумерацию и т.п. Полностью поддерживает разметку текста \LaTeX 2e в нотации HTML 3.0, ссылки и библиографию. Автор Roger Nelson, Вашингтонский университет.

Для трансляции таблиц и математических формул используется пакет math2html.

math2html
Транслятор математических формул и таблиц \LaTeX в HTML 3.0, работающий под OS UNIX. Результат работы поддерживается коммерческим просмотрщиком Arena.

Автор Йан Саарела (Janne Saarela e-mail: Janne.Saarela@hut.fi)

Программа написана на С++ для любой UNIX-платформы, где были бы доступны flex,bison и (g)make. Производит перевод математических конструкций из LaTeX 2.09 в HTML3. Необходимо отметить, что HTML3 обладает расширенными, по сравнению с HTML2, возможностями для работы с таблицами, формулами и уравнениями, поддержка именно этих возможностей и была реализована в math2html. Следует знать, что все математические формулы, включающие в себя структуры, не поддерживаемые math2html, будут проигнорированы. Единственным выходом из этого положения является перевод их в абсолютный код и отображение в конфигурационном файле.

vulcanize
Конвертор для OS UNIX, написанный на языке интерпретатора Perl (Perl scripts), для не математических текстов, подготовленных \LaTeX 2.09.
(Автор Mark-Jason Dominus Марк-Джейсон Доминус е-mail mjd@central.cis.upenn.edu)

Hyperlatex
Конвертор с подмножества \LaTeX~2.09, работающий под OS UNIX. Предназначен для создания гипертекстовых страниц средствами \LaTeX. (Автор Otfried Schwarzkopf).

Исходный текст написан на GNU Emacs Lisp для UNIX. Любители Emacs могут использовать конвертор прямо из него. Однако, если пользователь испытывает неприязнь к Emacs, он все равно сможет воспользоваться Hyperlatex-ом, запустив его из shell-а. Автор не преследовал цели поддерживать все команды LaTeX, поэтому конвертор понимает весьма ограниченный набор команд. C непонятными ему конструкциями Hyperlatex борется, выдавая сообщения об ошибках. В случаях, когда необходимо отобразить, скажем, формулы или таблицы, что совсем не тривиальная задача, авторам представляется самым разумным перевести их в графический формат а затем, поскольку существует возможность описывать те части текста, которые будут видны при просмотре стандартным WWW браузером отдельно от тех, которые пользователь желает видеть в LaTeX документе,в LaTeX-версии описать объект в LaTeX-формате, а в документ HTML поместить на нужном месте графическую вставку.

Если пользователь желает отобразить i-ый элемент какого-либо множества, например как n_i в LaTeX и как n[i] в HTML документе, то авторы этого преобразователя предоставляют ему такую возможность. Допускается также использование функций и режимов (/environment), определенных пользователем, но начинаться такие описания должны с новой строки, с /H или с пробела.

tex2rtf
Конвертор \LaTeX 2.09 в HTML, RTF, Windows Help RTF and wxHelp.

Программа, написанная на C, работает на всех платформах (DOS, Windows, UNIX). Конвертор не поддерживает математику и имеет проблемы с переводом таблиц. Конвертор является частью свободно распространяемой библиотеки wxWindows, работающей под Sun Open Look, Motif, Windows~3.1, Windows~95/NT, non-GUI UNIX. При разборе текста пропускает таблицы и математику. (см. так же предыдущую статью).

Автор Юлиан Смарт (J.Smart@ed.ac.uk).

JAM
Мета-язык для описаний конверторов. Конвертирует в HTML текстовые файлы \LaTeX{} и RTF. Конвертор написан на языке C для OS UNIX, Macintosh и Intel.
(Автор Лахлан Кренсвик Lachlan Cranswick e-mail lachlan@dmp.csiro.au)

BETA
Пакет, работающий под DOS. Конвертирует \LaTeX{} в HTML. Организован в виде формата \TeX. Работает по аналогии с конвертором LaTeX2HTML. (Автор Horst Wassenberg).

YODL
Язык создания документов с транслятором \LaTeX - HTML. В система организована поддержка и некоторых других форматов. Понимает макросы \TeX'а. Правильно транслирует только текстовые документы. Работает под LINUX'ом (в принципе, может работать на любой UNIX платформе).
Автор Карел Кубат (Karel Kubat e-mail karel@icce.rug.nl)

axTeX
Конвертирует текстовую часть \LaTeX-файла в HTML. Неконвертируемые части (формулы, таблицы и др) вставляет в виде HTML комментария в \TeX'овской нотации для последующей замены графическими файлами. Выделяет LaTeX "объекты", встроенные в HTML документ, создает отдельные .tex файлы и, в конце, преобразовав их в графический формат, создает HTML-документ с соответствующими графическими вставками.
(Автор Philip Thrift).

HyperTeX
Наиболее полный интегрированный в WWW пакет, позволяющий конвертировать \TeX'овские документы, используя DVI или PDF файлы.
(Автор Arthur Smith).

В сентябре 1994 года Сenter for Geometry Analysis Numerics and Graphics заявил о появлении HyperTex. Для начала была реализована версия для UNIX/X Window System co временем был предложен вариант для Apple Macintosh. Для правильной работы требуется Acroexchange, желательно как можно более поздней версии. Исходные тексты написаны на С.

Вдохновленные успехом WWW, авторы программы расширили TeX возможностями добавления в документ связей между его частями и другими документами. Во время on-line просмотра связи становятся активными и дают пользователю возможность без труда передвигаться между документами и внутри них. Естественно, междокументные связи эффективны только на экране. Просмотр требует поддержки форматов файлов (.dvi, .ps и .pdf)

plain2
Автор Акигиро Ушида (Akihiro Uchida), Япония(e-mail uchida@ccs.mt.nec.co.jp).

Cтандартную поставку исходных файлов можно откомпилировать под System V или 4.xBSD UNIX,а также и MS-DOS, для этого потребуется соответствующий компилятор C. Преобразует plain\text в форматы ROFF, HTML, TeX, LaTeX.

plain2html
Написан программистами Colos (COnceptual Learning Of Science) Lyon, Франция. Язык, разработанный для этого конвертора, настолько похож на TeX, что может считаться его диалектом.


Tаким образом, для разрешения проблемы успешного перевода документов из формата LaTeX в формат HTML были выработаны три основные стратегии:

  1. Поскольку HTML на сегодняшний день не имеет в своем арсенале возможностей поддержки математических формул в требуемом объеме, формулы предлагается превращать в изображения, а затем помещать на нужные места в документе. У этого довольно изящного метода, наиболее полно реализованного Никосом Дракосом, есть ряд существенных недостатков:

  2. Создать новый язык и его транслятор и в дальнейшем использовать его для составления документов и последующего перевода в различные форматы, такие как LaTeX, HTML, PS и прочие. Примеров несколько JAM, BETA format. YODL, HyperTeX, plain2html.

  3. И, наконец, "засунуть голову в песок" перед лицом трудностей конвертирования математических формул и таблиц.