[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