TeX, LaTeX, XML a komplikace s tim spojene

Zdenek Wagner wagner at cesnet.cz
Mon Jan 28 12:22:57 CET 2002


On Fri, 25 Jan 2002, Jirka Kosek wrote:

> Struktura nemusí vůbec být složitá -- záleží na tom, jak podrobnou ji
> potřebujete, a podle toho si ji uděláte. XML dokonce umožňuje vytvářet
> dokumenty bez předem dané definice struktury (bez DTD) -- ale v praxi
> zjistíte, že to později přináší jen problémy.
>
Sazim knihu o hrbitovech, kde jsou zivotopisy pohrbenych a popisy
funeralniho umeni. Kazdy hrob ma informaci urcite struktury, kterou
potrebuji dale zpracovavat, nejen sazet. Minulou knihu podobneho stylu
jsem delal v LaTeXu a na dalsi zpracovani jsem si napsal perlovske
skripty, protoze ciste TeXovymi prostredky by to bylo velmi obtizne, spis
dokonce nemozne (abecedni razeni retezcu se v TeXu dela spatne, to chce
externi program a strukturu jsem mel takovou, ze makeindex bez upravy by
to taky nezvladl). Letos to delam v XML a vsechny operace vcetne kontrol,
ktere drive nebyly mozne, delam pomoci XSLT bez dalsich externich
programu. Sice to taky dalo dost prace, protoze je to muj prvni vetsi
projekt a XML/XSL se na tom ucim, ale jasne vidim, ze je to ta spravna
cesta.

> > Pro nás ostatní lidi má LaTeX jednu ohromnou výhodu -- umožňuje
> > skloubit dohromady dodržování struktury textu a logické
> > značkování s občasnými ,,dodělávkami`` a občasnými nutnými
> > odbočkami od té přísnoti. Na rozdíl od SGML/XML, kde je nutné
> > (pokud se nedostaneme k tagům, které zcela odporují duchu SGML,
> > jako <font> v HTML) pro každou výjimkou nadefinovat nový tag
> > s novou definicí v CSS2/XSL/DSSL.
>
> Teď ovšem předpokládáte, že dokument budete jen tisknout. Když chcete
> více výstupních formátů (HTML, tisk, ...) zjistíte, že LaTeXové
> "dodělávky" vám znemožní (nebo alespoň ztíží) automatickou konverzi

Ve svych LaTeXovych dokumentech pouzivam temer vzdy radu vlastnich maker
vetsinou ve svych vlastnich packagich. Pritom nepouzivam pro definici
jenom \newcommand a \DeclareRobustCommand, ale casto vyuzivam plne
moznosti primitivu \def s parametry oddelenymi treba mezerou apod.
Pochybuji, ze automaticke konvertory LaTeX->cokoliv si poradi s
\usepackage{mujbalik} a mymi definicemi. V XML si mohu nadefinovat novy
element, udelat pro nej sablonu v XSLT pro vsechny typy vystupu a v
LaTeXovem textu to treba bude vyuzivat nejake makro z mujbalik.sty.
Nemusim se ucit XSLFO, protoze stejne budu pro tisk pouzivat LaTeX, v XSLT
si vygeneruji vhodna makra, ktera nadefinuji v LaTeXovem stylu.

Take se podivejte, jak ma Jiri Kosek vytazeny na WWW stranky hypertextove
odkazy z knihy XML pro kazdeho. V XSLT je to par prikazu, v LaTeXu by to
tak snadno neslo.

V LaTexu klidne muzete napsat

\begin{center}
\section{Nadpis...}
\end{center}

Zkuste v XML (DocBook) napsat

<center>
<section>
<title>Nadpis...</title>
</section>
</center>

Jiste se to bude zlobit. Validace je nekdy velmi uzitecna. LaTeX takovy
nastroj nema. Ja vim, ze existuje lacheck, ale ten se s validaci podle DTD
srovnavat neda.

Samozrejme je dost pripadu, kdy pouziti XML je pro me zbytecny krok navic.
Nic na svete neni univerzalni, je treba uvazit, zda v konkretnim pripade
prinese XML nejaky uzitek proti primemu pouziti LaTeXu. Neodvazuji se dat
obecnou odpoved.

> třeba do HTML. Když chcete dokument publikovat do několika formátů, je
> mnohem jednodušší přesunout formátovací záležitosti do stylu. Vždy, ale
> máte možnost do dokumentu vložit pomocí instrukcí pro zpracování
> informace jen pro určitý procesor (např. pro TeX).
>
Ovsem taky mohu mit procesor, ktery takovym instrukcim nerozumi. Ani pak
neni nic ztraceno. Mohu si nadeklarovat vlastni jmenny prostor a pridat
nekolik malo tagu do DTD i XSLT.

> > Uznávám, že tento požadavek je absolutně
> > subjektivní, ale mě připadne velice nepříjemné se muset brodit
> > skrzevá technická střeva dokumentu, když mám vytvářet nějaké
> > myšlenky. Byť uznávám, že AUCTeX a auctex.vim (a pro přátele OS/2
> > přidávám makra pro EPM), jsou pro někoho ideálem, já se jim

OS/2 ma taky vim, emacs a LyX, ale kdyz uz jsem na EPM zvykly...


Zdenek Wagner
e-mail: wagner at mbox.cesnet.cz  or  wagner at icpf.cas.cz

see also http://www.icpf.cas.cz/wagner/
         http://icebearsoft.euweb.cz







More information about the csTeX mailing list