Práce je dostupná v několika formátech:
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ů |
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.
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
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.
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.