[cstex] OT: TeX a XML, XML a HTML

Zdenek Wagner zdenek.wagner at gmail.com
Fri May 4 10:29:55 CEST 2007


4.5.07, "Procházka Lukáš Ing. - Pontex s. r. o." <lpr at pontex.cz>:
> Dobrý den,
>
> zběžně jsem se seznámil s knížkou pana Koska "XML pro každého". Jelikož
> potřebuji napsat manuál k programu a jelikož bych rád, abych jej dokázal
> převést do kvalitní tiskové podoby (jakou vytváří (La)TeX přeložením
> .tex souboru) a zároveň abych byl schopen zístak identický (nebo velmi
> podobný) manuál v .htm pro prezentování na webu, zvažji napsat manuál v
> .xml.
>
"XML pro každého" je výborná knížka, ale rozhodně nestačí k tomu,
abyste s XML dokázal něco složitějšího udělat. Její hodnota spočívá
právě v tom, že je pro každého. Velmi nenásilnou formou uvede čtenáře
do problematiky a když pak čte pokročilejší knihy, už ví, o čem to je.

Pokud jde o formát (nebudu mluvit o DTD, protože máte také Relax NG,
W3C Schéma, Schematron) XML, záleží na struktuře dokumentu, jaký
vytváříte. Pro manuál k programu lze určitě použít DocBook (viz např.
http://docbook.cz/), ale pro začátečníka to může být hodně tvrdé.
Pokud na ten manuál spěcháte, asi by bylo lepší, kdybyste si udělal
nějaký klon XHTML.

Převod do (X)HTML provedete pomocí XSLT. Učebnici XSLT 1.0 najdete na
www.kosek.cz. Přejmenování elementu není problém. Řekněme, že ve svém
XML máte tabulku zapsanou jako

<tabulka> ... obsah tabulky ... </tabulka>

V HTML potřebujete element <table>, takže příslušná transformační šablona bude

<xsl:template match="tabulka">
  <table>
    <xsl:apply-templates/>
  </table>
</xsl:template>

Tisk lze řešit několika způsoby:

1. XSLT + XSL-FO + procesor formátovacích objektů (free procesory prý
nejsou moc dobré)
2. XSLT na (La)TeXový zdroják
3. Přímé zpracování XML (+FO) pomocí TeXu (PassiveTeX)
4. DSSSL a jiné technologie zděděné ze SGML

Metody jsou popsány ve Zpravodajích a sbornících SLT.

Pokud jde o metodu 2, nezapomeňte, že některé znaky nelze přímo vnutit
(La)TeXu, takže musíte ohlídat např. převedení _ na \_. V prostém XSLT
1.0 se no nedělá snadno. K tomu existuje TeXML, což le přepis TeXu,
LaTeXu a ConTeXtu do XML, a pomocí Pythonských skriptů se řeší to, co
není v XSLT 1.0 snadné. V XSLT 2.0 a procesoru Saxon verzr 8.x můžete
využít <xsl:character-map>.

Mimochodem, své stránky na icebearsoft.euweb.cz generuji z XML, které
je můj vlastní klon HTML. Do HTML jsem přidal strukturu, takže
nepoužívám elementy <h1>, <h2> apod., ale struktura mých zdrojáků je:

<document>
<title> ... </ttitle>
<section>
<title> ... </title>
...
</section>
...
</document>

Můžete se podívat na můj transformační styl, nyní používá XSLT 2.0,
ale ponechal jsem tam i dokumentované šablony, které jsem kdysi
používal s XSLT 1.0. Pro začátečníka to může být obtížné, ale třeba
tam okoukáte něco užitečného.

Držím palce.

> Pokud bych vytvářel .xml pro .html, použil bych DOCTYPE např. <!DOCTYPE
> html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">.
>
> Pokud bych vytvářel .xml pro nějaký převod do .pdf (prostřednictvím
> TeXu), jaký DOCTYPE použít? A jakým programem provést převod to .pdf?
> Nebo se provede převod něčím do .tex a ten se poté přeloží do .pdf?
>
> Jak to ale udělat, aby když DTD pro html bude používat např. tag
> <table>, který DTD pro převod do .tex nebude znát? - Předpokládám, že
> nebudu vytvářet dva manuály, jeden s tagy pro html a druhý s tagy jinými
> (pro jaký DOCTYPE vlastně?).
>
> Omlouvám se za dotazy začátečníka, k .xml jsem pouze "přičuchl" a zatím
> prakticky nepoužil; přesto doufám, že moje představy o .xml se vydávají
> správným směrem.
>
> Děkuji.
>
> Lukáš Procházka
>
>
> --
>
> Ing. Lukáš Procházka [LPr at pontex.cz <mailto:LPr at pontex.cz>]
> Pontex s. r. o.      [www.pontex.cz <http://www.pontex.cz>] [pontex at pontex.cz <mailto:pontex at pontex.cz>]
> Bezová 1658
> 147 14 Praha 4
>
> Tel: +420 244 06 22 38
> Fax: +420 244 46 10 38
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>
>


-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz




More information about the csTeX mailing list