Diplomová práce

Práce je dostupná v několika formátech:

Jak jsem generoval několik výstupních formátů

Skutečný důvod, proč jsem zveřejnil diplomovou práci na stránkách, není ani tak její obsah, ale způsob jakým byla připravena. Celá práce je napsána v DocBooku, což umožňuje její snadný převod do dalších formátů. Chtěl jsem dát ostatním pro pokusy větší dokument a zároveň ukázat, jak lze docbookový dokument poměrně snadno převést do LaTeXu a získat nepoměrně hezčí a kvalitnější výstup než běžným postupem pomocí DSSSL nebo XSL stylů.

Chcete-li si vše sami vyzkoušet, nebo se jen tak ze zajímavosti podívat, stáhněte si archiv se zdrojovými texty. Obsahuje následující soubory:

Jméno Popis
pic Adresář s obrázky. Obrázky jsou dostupné v několika formátech: PNG (snímky obrazovek a bitmapové verze schémat pro HTML verzi), WMF (pro schémata v RTF formátu), PDF (schémata pro formátování LaTeXem), ZMF a VSD (originální schémata připravená v Zoner Callisto a Visio).
dp.xml Hlavní dokument
hledani.xml Kapitola
komunikace.xml Kapitola
literatura.xml Kapitola
navigace.xml Kapitola
prilohy.xml Kapitola
robot.xml Kapitola
uvod.xml Kapitola
xml.xml Kapitola
zaver.xml Kapitola
latex.xsl Styl pro převod do LaTeXu
latex.mapping.xml Pomocný soubor pro konverzi do LaTeXu
html-common.xsl Společné parametry HTML konverze
chunk.xsl Styl pro generování sady HTML stránek
html.xsl Styl pro generování jedné velké HTML stránky
print.dsl Styl pro generování tištěného výstupu (např. RTF) pomocí DSSSL stylů

Převod do LaTeXu

Pro převod do LaTeXu existují XSLT styly od Ramona Casellase, které jsou dostupné na adrese http://db2latex.sourceforge.net/. Bohužel se již rok dále nevyvíjejí, neboť jejich autor na to momentálně nemá čas. Obsahují také poměrně velké množství chyb a nedodělků. Jelikož je poslední verze dostupná pouze pomocí CVS, připravil jsem pro vás archiv db2latex.zip, který obsahuje mnou použitou verzi db2latex. V souborech latex.xsl a latex.mapping.xml jsem největší chyby, na které jsem narazil, opravil. Provedl jsem také úpravy nezbytné pro generování dokumentů v češtině. Pokud chcete dokument převést do PDF pomocí LaTeXu stačí k tomu následující příkazy:

saxon -o dp.tex dp.xml latex.xsl
pdfcslatex dp

Předpokládám přitom, že máte nainstalován XSLT procesor Saxon (lze použít v podstatě libovolný jiný) a TeX. V souboru latex.xsl musíte rovněž upravit řádku s instrukcí <xsl:import...> tak, aby načítala db2latex styly z místa, kde jste si je uložili.

Převod do HTML

Pro převod potřebujete klasické XSL styly. Cestu k nim je potřeba opravit v souborech html.xsl a chunk.xsl. Pro vygenerování sady HTML stránek pak slouží příkaz:

saxon dp.xml chunk.xsl

Pro vygenerování jedné velké HTML stránky stačí použít:

saxon -o dp.html dp.xml html.xsl

Převod do RTF

Pro převod do RTF můžeme použít Jade/OpenJade a DSSSL styly. Opět jsem drobně upravil standardní formátování, takže je potřeba v souboru print.dsl opravit cestu na druhém řádku tak, aby ukazovala na skutečné umístění DSSSL stylu pro tisk. RTF verzi dokumentu pak získáme příkazem:

jade -d print.dsl -t rtf c:\jade\xml.dcl dp.xml

Místo c:\jade\xml případně uveďte jinou cestu, která vede k souboru xml.dcl obsahujícímu SGML deklaraci pro XML.

K čemu jsou dobré instrukce pro zpracování

V dokumentu narazíte na několika místech na řádky jako:

<?tex \hyphenation{RAINBOW SOAPem} ?>

nebo

<?dbhtml filename="websluzby.html"?>

Jedná se přitom o tzv. instrukce pro zpracování. Ty nejsou přímo součástí obsahu dokumentu, jako takového, ale mohou se jimi řídit aplikace, provádějící zpracování dokumentu. Např. při konverzi do LaTeXu se pomocí následující jednoduché šablony:

<xsl:template match="processing-instruction('tex')">
  <xsl:value-of select="."/>
</xsl:template>

obsah všech instrukcí označených jako tex zkopíruje do výstupního dokumentu (v tomto případě zdrojového kódu pro TeX). Můžeme tak do dokumentu vkládat drobné rady pro formátovací program, aniž by to ovlivnilo ostatní aplikace provádějící zpracování dokumentů. V našem případě jsme TeXu předali informaci o tom, že slova "RAINBOW" a "SOAPem" nemá dělit.

Instrukce dbhtml je naopak využívána jen při konverzi do HTML a určuje jméno výstupního HTML dokumentu pro danou část XML dokumentu.

Instrukce pro zpracování jsou tak velmi užitečný pomocník v situacích, kdy nejde vytvořit obecné pravidlo pro zpracování dokumentu, které by se zařadilo do stylu, a musíme ošetřit nějakou výjimku.

© Jiří Kosek 2002
$Id$