[docs] Re: DocBook semantic -> LaTeX semantic (was: документация для нового Junior'а)
Kirill Maslinsky
kirill на altlinux.ru
Ср Фев 4 13:24:15 MSK 2004
> > Если честно, то мне кажется неправильно, что
> > латех считается форматом.
>
> Тогда предложите, как считать правильно. В моём понимании
> разметка LaTeX для интерпретатора LaTeX - формат. Про понимание
> авторов db2latex ничего не скажу :)
Тогда, может быть, это я неправильно понимаю, что такое формат.
Значит, разметка в формате C для интерпретатора C -- тоже формат?
Просто в LaTeX'e никто не требует использовать в разметке именно
команды форматного файла, как раз наоборот, это не рекомендуется.
Мне казалось, что формат -- это фиксированный набор правил кодирования
информации определенного рода.
Правда, если включить все макроопределения в понятие разметки, то и
Латех тогда -- фомрат.
<skipped/>
> > > Отлично! Я правильно понял, что при наличии стилей,
> > > переводящих разметку DocBook в идентичную разметку LaTeX,
> > > проблема с вёрсткой в LaTeX решается?
> >
> > Да, именно так, и становится практически автоматической, если
> > поработать с penalties. В ТеХе же очень гибкий механизм верстки
> > абзацев и страниц, и есть совершенно конкретный способ его
> > регулировать -- штрафы. Если есть грамотная разметка и хорошо
> > подобранные штрафы -- верстка и без ручного вмешательства
> > выглядит почти идеально.
>
>
> Ок. Это очень хорошо. Давайте сделаем так: Вы переведёте в
> идентичную разметку LaTeX doc-template.xml из cvs docs, а я на
> этом примере попробую начать стили для автоматического перевода.
Не совсем понял, что именно сейчас от меня требуется. doc-template
же текста не содержит, там только заголовки, информация об авторах.
Чего там переводить? Если речь о том, как должен выглядеть output
для LaTeX -- тогда я думаю, что особенно мудрить не стоит:
пусть все теги докбука по возможности станут тегами латеха, просто
с соответствующим синтаксисом. Если я чего недопонял, прошу меня
исправить.
По моему, это должно выглядеть как
\filename{test.txt} \acronym{RPM} ну и пр.
\begin{itemizedlist}
\item
\item
\end{itemizedlist}
Единственная проблема -- нужно, чтобы не было совпадений со стандартными
LaTeXовскими командами, чтобы не было лишних проблем с переопределениями
и совместимостью со стандартными классами. Поэтому, думаю, стоит
использовать в этих случаях команды, начинающиеся с большой буквы:
\Section{} -- одну для всех уровней заголовков, как в docbook, с иерархией
разберемся автоматически. \Chapter{}
Еще из стандартных существующих приходит в голову \Quote{}, ну и вроде
все. systemitem лучше, мне кажется, конвертировать по названию класса,
типа \osname{}, так менее громоздко, а по смыслу ничего не теряется.
Что касается entities, должен быть отдельный файл (уже обсуждавшийся entities.sty),
где будет описано, как их раскрывать, уже в терминах латеха. А команды
для entities проще всего генерировать из имени entity:
&ALTSHORT; -> \ALTSHORT{}
Поскольку они все более-менее строго пишутся большими буквами, здесь
совпадений с латеховскими стандартными командами быть вроде не должно.
Будет, правда, небольшая проблема (небольшая?) со стандартными entities
типа &emdash; и всякими юникодовскими символами, вроде неразрывных пробелов,
для которых нужны особые правила.
Я начну писать соответствующие латеховские пакеты, но для этого нужно
прежде разобраться в том, что вообще есть в докбуковской разметке и
какой в этом смысл. Сейчас нахожусь в процессе познания.
KM
Подробная информация о списке рассылки docs