Прежде, чем читать этот раздел, прочтите описание разметки TEI Lite.
Практика показала, что использование немодифицирванного DTD TEI Lite требует лишнего ввода, особенно если вспомнить, что TEItools фактически реализуют конкретное подмножество TEI Lite, делая свои предположения об использовании разметки. Для облегчения жизни пользователям, я создал "TEItools DTD". Он является почти буквальной копией TEI Lite с мелкими изменениями. Если вам не нравится идея использования нестандартного DTD, просто пользуйтесь TEI Lite: TEItools будут и впредь обрабатывать его без проблем. TEItools DTD позволяет сократить требуемую разметку, в частности:
Формальный идентификатор для TEItools DTD следующий: "-//TEI//DTD TEI Tools 0.1//EN".
TEItools распознают два вида иерархии разделов. Это, наверно, запутывает, но мне попадались закодированные в TEI документы, использующие оба типа разметки, так что я решил поддержать их оба.
Заметьте, что атрибут TYPE является обязательным для элементов <div?>, кроме случая использования TEItools DTD вместо TEI Lite DTD (см. раздел DTD).
Кроме этих значений, любой раздел может иметь атрибут TYPE имеющим значение "abstract" или "appendix", и будет сверстан как аннотация или приложение, соответственно. TYPE=stub сгенерирует раздел, чей заголовок не появится в колонтитулах и в содержании.
Распознаются следующие типы генерируемых разделов (<divGen>):
REND должен влиять на любой элемент разметки, так что, если он где-то не работает -- это ошибка. Различный вид одного элемента в разных выходных форматах -- тоже ошибка.
Значением REND является список ключевых слов, разделенных пробелами или запятыми. Распознаются следующие ключевые слова:
Текст будет обтекать иллюстрацию, если <figure> имеет атрибут REND, указывающий, к какой стороне страницы следует отодвинуть иллюстрацию ("left" или "right").
Абзацы будут последовательно нумероваться, если <div?> имеет атрибут REND со значением "ordered".
Несколько примеров. Центрированный абзац:
<p rend='Center'>....</p>Выделенное жирным слово:
<hi rend='Bold'>слово</hi>(Всегда лучше размечать, чем является элемент, чем как он должен выглядеть. Скажем, <kw>функция</kw> всегда лучше, чем <hi rend='bold,typewriter'>функция</kw>.)
<label> работает только внутри <list type='gloss'>. <list type='alpha'> будет нумеровать элементы списка буквами.
Элемент <table> должен иметь атрибут REND. Его значение задает формат колонок таблицы. Поддерживаются два формата REND: "в стиле LaTeX" и "в стиле CALS".
Символы и форматы | |
l | Отжат влево |
c | Центрирован |
r | Отжат вправо |
j | Выровнен. Заметьте, что только выровненные ячейки могут включать текст на несколько строчек, остальные будут всегда располагаться в одну строку. |
<table rend='1l,2j'>
Вот, в качестве примера, SGML текст таблицы Команды форматирования таблицы:
<table rend='cj' id='alignment'> <head/Команды форматирования таблицы/ <row role=label> <cell cols='2'/Символы и форматы/ <row> <cell role=label/ l / <cell/Отжат влево/ <row> <cell role=label/ c / <cell rend='center'/Центрирован/ <row> <cell role=label/ r / <cell rend='right'/Отжат вправо/ <row> <cell role=label/ j / <cell rend='justified'> Выровнен. Заметьте, что только выровненные ячейки могут включать текст на несколько строчек, остальные будут всегда располагаться в одну строку. </table>
<cell ROWS=N> работает не во всех выходных форматах, к сожалению. COLS=N, однако, работает во всех.
На самом деле атрибут REND у <table> задает формат колонок по умолчанию. Каждая ячейка может, в свою очередь, определить ее собственный REND, являющийся одним символом. Его значение будет иметь приоритет перед форматом по умолчанию.
Каждый элемент <row> и <cell> может иметь атрибут ROLE. Единственное используемое его значение -- "label".
Внимание: если содержимое ячейки состоит более, чем из простого текста, например, включает в себя списки, вам нужно использовать выровненные ("justified") ячейки.
Таблицу можно развернуть вдоль листа, указав у элемента <table> атрибут N со значением landscape. Для вывода в TeX это потребует использования dvips, потому что xdvi не сможет показать такую таблицу, так что пользуйтесь ghostview, gv или другими средствами просмотра PostScript'а. Такая таблица будет всегда занимать целый лист. То же самое верно и для элемента <figure>, но при помощи атрибута REND вместо N.
Атрибут N может также иметь значение "notlined". В этом случае таблица будет не линованной.
TEItools использует по умолчанию графику в следующих форматах:
где filename -- это то, что указано в объявлении внешнего объекта. Исторически TEItools добавлял соответствующий суффикс автоматически. Это и сейчас так, из соображений совместимости, однако более правильно объявлять реальные имена и форматы в объявлениях объектов. Поскольку они зависят от используемых выходных форматов и даже от стилей, объявления нужно заключать в маркированные секции. TEItools определяет параметрические объекты с именами, соответствующими именам форматов и стилей. Пример:
<!doctype tei.2 public '-//TEI//DTD TEI Tools 0.1//EN' [ <!ENTITY % html "IGNORE"> <!ENTITY % tex "IGNORE"> <!ENTITY % rtf "IGNORE"> <!ENTITY % pdf "IGNORE"> <!ENTITY % externalfigs "IGNORE"> <![ %pdf; [ <!ENTITY logo SYSTEM "image.pdf" NDATA PDF> ]]> <![ %tex; [ <!ENTITY logo SYSTEM "image.eps" NDATA EPS> ]]> <![ %html; [ <!ENTITY logo SYSTEM "image.jpeg" NDATA JPEG> ]]> <![ %externalfigs; [ <!ENTITY logo SYSTEM "image.wmf" NDATA WMF> ]]> <![ %rtf; [ <!ENTITY logo SYSTEM "image.rtfdata" NDATA RTFDATA> ]]> ]>Заметьте, что символ подчеркивания в именах выходных форматов и стилей опускается.
Графика вставляется с ее "родным" размером, то есть, пиксельными размерами для RTF и HTML или bounding box для TeX (Encapsulated PostScript).
Ссылки на иллюстрации на самом деле ссылаются на их заголовки. Поэтому только на иллюстрации с <head> внутри <figure> можно ссылаться при помощи <ptr>.
Если у <figure> есть атрибут N, он становится атрибутом ALT элемента <img> в HTML.
На URL можно ссылаться при помощи <xref> с атрибутом TYPE. Пользоваться этим так:
<xref type='URL' n='Интересное место'>http://some.where</xref>
Начата поддержка SUBDOC. Они должны работать, как минимум, на уровне разделов со спецификацией tei2tex. Вот один пример. Главный документ:
<!doctype tei.2 public '-//TEI//DTD TEI Tools 0.1//EN' [ <!entity chap1 system "chap1.tei" subdoc> ]> <tei.2><text> <body>&chap1;</body> </text></tei.2>А вот -- содержимое файла chap1.tei:
<!doctype div1 public '-//TEI//DTD TEI Tools 0.1//EN'> <div1><head/The section/ <p>Something</p> </div1>
Теперь можно пропустить через tei2tex и главный файл, и chap1.tei, и получить идентичные результаты. Можно использовать свойство SUBDOC, например, для того, чтобы несколько авторов независимо работали над разными разделами документа.
Замечания (<note>) могут иметь следующие значения атрибута PLACE:
Формулы поддерживаются только в нотации TeX. Пользуйтесь этим так:
<formula notation='TeX'>E=mc^2</formula>что будет выглядеть так:
Примеры оформляются в виде элемента <eg>. Внутри его содержимого пробелы и форматирование сохраняются. При этом, однако, в нем распознается разметка SGML. Если Вы хотите полностью защитить текст от интерпретации процессором, пользуйтесь отмеченной секцией CDATA, например, так:
<eg><![CDATA[ текст, включающийся без изменений ]]></eg>
Заметьте, что сохраняются именно пробелы: символы табуляции не раскрываются в наборы пробелов. Так что прежде, чем включать программный код в <eg>, замените в нем табуляции на пробелы.
Эта инструкция используется для подключения стилей. Например:
<?TEItools useStyle skip=1.5>эквивалентно использованию -style skip=1.5.
Хочется поблагодарить:
Последние изменения: Чтв Фев 19 18:10:02 MSK 2004
Сгенерировано TEItools