[docs] Re: DocBook semantic -> LaTeX semantic (was: документация для нового Junior'а)
Kirill Maslinsky
kirill на altlinux.ru
Ср Фев 4 19:36:19 MSK 2004
> > Тогда, может быть, это я неправильно понимаю, что такое формат.
> > Значит, разметка в формате C для интерпретатора C -- тоже
> > формат? Просто в LaTeX'e никто не требует использовать в
> > разметке именно команды форматного файла, как раз наоборот, это
> > не рекомендуется. Мне казалось, что формат -- это фиксированный
> > набор правил кодирования информации определенного рода.
> > Правда, если включить все макроопределения в понятие разметки,
> > то и Латех тогда -- фомрат.
>
> За эту терминологию я копья ломать не буду. Просто если я не прав
> - предложите правильный термин.
Да я вовсе и не хотел бороться за терминологию, на самом деле.
Просто хотел понять, почему db2latex сделан так, а не иначе, и
мне показалось, что тут дело не в последнюю очередь в словоупотреблении.
> Можно перевести целиком doc-template.xml в ту разметку, о которой
> Вы говорите? Там есть абзац, заголовок, а мне нужен минимальный
> целый документ, на который я буду смотреть при написании стилей.
Хорошо, вот я сделал первый примерочный вариант -- в аттачменте.
Посмотрите, если чего не нравится или чего не хватает.
> Атрибуты терять нельзя. Например, будет <para role="foo"/> и
> <emphasis role="foo">, не делать же из них \Foo{}.
Хорошо, могу предложить использовать необязательные аргументы в случае с
одним-двумя атрибутами: \emphasis[foo]{}. Хотя в общем случае поддержку
xml-атрибутов в ТеХе реализовать, кажется, непросто. Не уверен,
насколько это нужно для нашей задачи.
> > Что касается entities, должен быть отдельный файл (уже
> > обсуждавшийся entities.sty), где будет описано, как их
> > раскрывать, уже в терминах латеха. А команды для entities проще
> > всего генерировать из имени entity: &ALTSHORT; -> \ALTSHORT{}
>
> Сущностей к этому моменту уже не будет, они разрешатся на этапе
> XInclude.
Получается, невозможно организовать entities.sty так, как я предлагал?
Это, наверное, не очень хорошо, потому что тогда становятся
неавтоматическими любые изменения в entites уже на стадии ТеХа.
Зачем-то это может понадобиться.
KM
----------- следущая часть -----------
%% file: doc-template.tex
%% version 0.1 4/02/2004
\begin{Chapterinfo}{doc-template}
%% в аргументе окружения -- BASEID: нужен для создания локальных меток
%% и идентификации метаифнформации о главе и, может, еще для чего-то
%% понадобится
\begin{revhistory}
\revision{0.3}{29 Nov 2002}{Тип документа изменён с article на
section.}
\revision{0.2}{22 Oct 2002}{Кодировка изменена с cp1251 на windows-1251. Изменён
почтовый адрес автора. Добавлен тег othercredit с указанием
Антона Бояршинова. Теги sect1 изменены на section.}
\revision{0.1}{28 May 2002}{Начальный вариант}
%% номера ревизий можно сделать автоматическими, если это
%% нужно. Вообще следует решить, может ли понадобиться
%% информация о ревизиях в Латехе.
\end{revhistory}
\Author{Виталий}{}{Останин}
\Author{Антон}{}{Боярщинов}
%% что делать с дополнительной информацией об авторах (email)?
%% пока кажется, что для верстки заголовков и оглавления достаточно
%% ФИО, так что оставляю сокращенный вариант. Если не будет
%% дополнительных сведений об авторах главы, ничего не будет выводиться.
\end{Chapterinfo}
%% это окружение в обычном случае не должно производить никакого
%% вывода, оно для хранения информации о главе и для записи информации
%% об авторах, чтобы потом верстать заголовок.
\Chapter{Шаблон статьи для \ALTDOCS{}}
%% Собственно команда, которая должна верстать заголовок, записывать
%% строки для колонтитулов (необязательный аргумент) и оглавления. Не
%% хочу пока сюда включать информацию об авторах, чтобы обеспечить
%% возможность автоматически унифицировать способ написания имени
%% автора в заголовках глав и в оглавлении (один-два инициала,
%% сокращенное/полное имя). Возможно, это чрезмерное усложнение.
%% С разделами две возможности: либо использовать окружения для
%% разделов, тогда нет проблем с определением иерархии, либо
%% использовать две команды: \Section и \inSection. С авторами
%% разделов -- отдельная проблема.
\begin{Section}{Раздел}
%% Просто абзацы есть смысл разделять пустыми строками, как и положено
%% в ТеХе, специального ничего не делая. Если нужны какие-то атрибуты
%% для отдельных абзацев -- нужно смотреть в каждом случае отдельно,
%% какие и зачем это атрибуты. Если имеется в виду когда-нибудь
%% сделать механизм профайлинга, то это не обязательно привязано к
%% уровню абзаца (насколько я понимаю), и для ЛаТеХа есть
%% соответствующий пакет, который использует специальные окружения.
\end{Section}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
----------- следущая часть -----------
%% Sample output file for db -> LaTeX conversion
%% Ver 0.1 4/02/2004
\documentclass{book}
\usepackage[koi8-r]{inputenc}
\usepackage[russian]{babel}
\usepackage[..options..]{docbook}
%\usepackage[..options..]{entities}
\begin{document}
\input{doc-template}
\end{document}
Подробная информация о списке рассылки docs