TEItools довольно плохо документированы. Ниже идет минимальная информация и советы. Надеюсь, этот раздел когда-нибудь станет пользовательской документацией по TEItools. Есть добровольцы?
Пользовательский интерфейс к TEItools -- один скрипт, sgml2any. Он, однако, должен запускаться под каким-либо другим именем, например, linuxdoc2tei или tei2tex, что достигается символьным линком или просто копированием. Синтаксис следующий:
скрипт входной_файл [стилевые опции]
входной_файл -- имя исходного файла SGML для обработки.
Каждая стилевая_опция выглядит как -style имя или как -style имя=значение. Порядок опций -style имеет значение. Один ключ -style может иметь несколько стилей, перечисленных через запятую. Подробнее о стилях -- ниже.
Возможно, вы будете создавать свои собственные расширения к TEItools. Они могут включать:
Для помощи в такой локальной разработке домашний каталог TEItools может иметь подкаталог site, который можно сделать символьным линком вовне иерархии $SGML_HOME для облегчения апгрейдов. Он должен иметь ту же структуру, что и основное дерево каталогов TEItools. Файлы ищутся вначале в дереве site, потом -- в основном дереве.
sgml2any определяет входной и выходной форматы просто по своему имени: если он запущен под именем tei2rtf, то входной формат будет tei, а выходной -- rtf.
Каждый входной формат соответствует каталогу под $SGML_HOME. Каждому выходному, в свою очередь, -- каталог под каталогом входного. Он уже содержат спецификацию CoST по имени script, необходимые дополнительные файлы и каталог styles. Файлы в последней и являются стилями.
Каждая спецификация обрабатывает документы независимо от других, что отличает TEItools от систем, основанных на DSSSL. (И, пожалуйста, не говорите мне что мой путь менее правильный. Вы даже в первую десятку указавших на это не попадете ;-)) Я старался сделать спецификации максимально близкими по виду выходных файлов, так что все различия в виде выходных форматов следует считать ошибками.
Стилевые файлы используются просто путем приписывания их к концу спецификации, так что они могут переименовывать существующие процедуры Tcl и подставлять вместо них свои замены. Стили для преобразования, например, из tei в rtf ищутся в каталоге $SGML_HOME/tei/rtf/styles.
Если стиль имеет вид имя=значение, то глобальная переменная TEItools_имя_value устанавливается равной значение. Ее значение может затем использоваться коде спецификации или стилей.
Чтобы разобраться в спецификациях, вам нужно понимать Tcl, CoST, и, для случая выходного формата RTF, RATFINK.
TEItools должны легко адаптироваться к новому языку. Они хорошо работают с русским, поскольку я их использую именно так. В поставку включены файлы локализации для русского, английского, французского, финского и чешского языков. Делая поддержку нового языка, берите один из них в качестве примера.
Все, что зависит от локализации, находится в файлах $SGML_HOME/lib/locale.ЯЗЫК.tcl. ЯЗЫК определяется в таком порядке:
Заметьте, что для формирования имени файла локализации LANG приводится к нижнему регистру.
Файлы локализации определяют следующее.
Во-первых, нужно определить substitution[2] localize, которая определяет вставляемые в документы слова на данном языке. Во-вторых, там же определяются зависящие от локализации функции. Сейчас их список таков:
Заметьте, что каждый стиль относится только к одному выходному формату.
Возможно использовать задаваемые пользователем стили в генерируемом RTF. Пример задания стилей смотрите в $SGML_HOME/site/tei/rtf/styles/userstyle.
Для того, чтобы ссылки на страницы (например, в оглавлении) были актуальными, полученный RTF-файл нужно загрузить в MS Word и нажать Ctrl-A F9 (выделить все и обновить поля).
Последние изменения: Чтв Фев 19 18:09:58 MSK 2004
Сгенерировано TEItools