Návod k modulu xslt2

Jan Pavlovič

2006-06-06


Obsah

Předmluva
1. Schéma transformace
2. Usage
Použití nástroje xslt2
Příklady použití
Nastavování vlastních parametrů
3. Editory
Java editory
Linux editory
Windows editory
4. Tutoriál k DocBooku
Kořenový element
Záhlaví
Členění dokumentu
Obsah
Rejstřík
Literatura
Odstavce
Seznamy
Tabulky
Příklady
ProgramListing
CDATA
Uvozovky
5. Jak napsat bakalářskou a diplomovou práci
Jak má vypadat XML dokument
Transformace do PDF a PS
Transformace do HTML
Modifikace stylů
Použití XInclude
Použití matematiky
Entity
Použití pro studenty mimo MU
Práce v cizím jazyce
6. Download
Download
Instalace
Informace o verzích
7. Hotové práce
Bakalářské práce
Magisterské práce
Další práce
8. FAQ
9. Help
10. Changelog
verze 2.6.5
verze 2.6.4
verze 2.6.3
verze 2.6.2
verze 2.6.1
verze 2.6.0
verze 2.5.1
verze 2.5.0
verze 2.4.2
verze 2.4.1
verze 2.4.0
verze 2.3.1
verze 2.3.0
verze 2.2.2
verze 2.2.1
verze 2.2.0
verze 2.1.0
verze 2.0.1
verze 2.0.0
11. Licence

Seznam obrázků

1.1. obecné schéma transformace

Seznam tabulek

4.1. Sample Table

Seznam příkladů

2.1. nová šablona pro bc. práci
2.2. validace
2.3. převod do HTML s použitím catalogů
2.4. převod do HTML s použitím catalogů, vlastního XSL souboru a saxonu
2.5. převod do RTF pomocí XSL stylů
2.6. převod do PDF s použitím catalogů, fithesisového stylu a LaTeXových úprav
2.7. PDF pro finální tisk (černobílá verze)
4.1. Záhlaví
4.2. Členění dokumentu
4.3. Obsah
4.4. Rejstřík
4.5. Literatura
4.6. Odstavce
4.7. SimpleList
4.8. ItemizedList
4.9. OrderedList
4.10. VariableList
4.11. SegmentedList
4.12. Tabulka s titulkem
4.13. Tabulka bez titulku a bez rámečku
4.14. Příklad s titulkem
4.15. Příklad s titulkem
4.16. Příklad bez titulku
4.17. CDATA
4.18. quote
5.1. vzhled XML souboru
5.2. myhtml.xsl
5.3. použití XInclude
5.4. nastavení parametrů pro matematiku
5.5. zápis matematiky
5.6. my.xsl
5.7. vzhled XML souboru
5.8. vzhled XML souboru
5.9. nastavení jazyka
8.1. procesní instrukce
8.2. procesní instrukce
8.3. nastavení proměnné
8.4. bridgehead
8.5. part
8.6. zvýraznění

Seznam rovnic

5.1. Vztah mezi hmotou a energií.

Předmluva

Psaní dokumentu v XML není vůbec nic těžkého, pokud jste schopni napsat něco v HTML, tak způsob vytváření XML dokumentu není rozhodně nic složitějšího. Pokud nevíte nic o XML, DTD a XSLT není na škodu si přečíst pár základů v nějaké publikaci.

Základní myšlenka tvorby dokumentů v XML je postavená na co možná největší přenositelnosti a zachovaní vzhledu, toho lze dosáhnout patrně jen oddělením logického a vizuálního obsahu v dokumentu. Pro tento způsob psaní je ideální právě XML. HTML je množina pravidel pro psaní dokumentu pro web. DocBook je také taková množina pravidel jak psát dokumentace v XML. V DocBooku je například vytvořena dokumentace např. k operačním systémům Linux a FreeBSD, ke skriptovacímu jazyku PHP, ke grafickým rozhraním KDE a Gnome. DocBook používají i velká počítačová nakladatelství jako O'Reilly nebo velké softwarové firmy. Tak proč to také nezkusit :-).

Jedna věc je napsat něco v DocBooku a druhá je si to prohlédnout v nějakém pěkném formátu. Jelikož je v XML zachycena pouze logická forma, musíme k dokumentu dosadit i nějaké ty vizuální informace. Toho můžeme dosáhnout např. tím, že ho zkonvertujeme do HTML, LaTeXu, PDF, PS, RTF, CHM ... Potřebujeme nějaká pravidla, která budou přesně stanovovat, jak který element v DocBooku bude vypadat třeba v HTML nebo RTF ... K tomuto existují tzv. XSL (DSSSL) styly, které takové informace obsahují a které nám umožní náš XML soubor transformovat do patřičného formátu.

Hlavní výhodou je, že napíšeme jeden dokument a získáme z něj několik dalších např. HTML, RTF, PDF plus pokud se rozhodneme v budoucnu z našich dokumentů získávat určité přesné informace nebude to žádný problém.

Další nespornou výhodou je, že můžeme náš dokument zpracovat nějakým kvalitním typografickým systémem jako je LaTeX, aniž bychom o psaní dokumentů v LaTeXu mnoho věděli. Tím, že jednoduše převedeme dokument v DocBooku do LaTeXového a pdflatexem přeložíme. Dosáhneme precizního typografického sjednocení našich dokumentů.

Kapitola 1. Schéma transformace

Transformace se skládá ze tří částí:

  1. Transformačního procesoru, který celou transformaci realizuje, většinou napsaný v Javě, C++, Pythonu ...

    modul xslt používá xsltproc, saxon7, saxon, xalan nebo jdxslt

  2. XML souboru v DocBooku

Obrázek 1.1. obecné schéma transformace

obecné schéma transformace

pro transformaci do HTML, XHTML, FO, RTF a CHM se používají rozšířené XSL styly docbook-xsl

pro transformaci do LaTeXu upravené a rozšířené XSL styly db2latex s vestavěnou podporou pro LaTeXový cls styl fithesis

Kapitola 2. Usage

Použití nástroje xslt2

Na fakultě informatiky je možné použít modul xslt2

module add xslt2

pokud chcete používat xslt2 na svém počítači, je možné si distribuci stáhnout 6 – „Download.

Program xslt vypíše jako základní hlášení toto:

usage: xslt [options] inputfile

-h, --help      prints this help message
-v, --version   prints version info
-d, --debug     debud mode: no temporary files cleaning
-e, --silent    do not display any warnings
-m, --timing    display consumed time
-f, --config    set config file
-n, --nocatalog do not use catalog files
-y, --nolatex   do not make changes in LaTeX file
-x, --xinclude  xinclude support
-l, --latex     do some useful changes in LaTeX file
-s, --xsl       stylesheet
-o, --out       output file
-i, --in        input file
-r, --param     stylesheets parameters
-p, --processor xslt processor [xsltproc|saxon|saxon7|xalan|jd]
-t, --task      task {parse|jparse|valid|jvalid|
                       pdf|foppdf|xeppdf|ps|dvi|rtf|
                       win2utf|iso2utf|math|new|}

Význam jednotlivých voleb:

  • -h vypíše hlášení o způsobu použití

  • -v vypíše verzi programu

  • -d debug mode, vypisují se podrobná hlášení při transformaci a nemažou se pomocné soubory

  • -e nevypisuje žádné warningy ani chyby při transformaci

  • -m zobrací celkový čast transformace

  • -f jméno souboru s konfigurací, standardně se hledá v $HOME nebo lib (pro lokální instalaci)

  • -n přepínač pro nepoužití catalogů

  • -y přepínač pro nenahrazování entit v LaTeXovém souboru

  • -x přepínač pro podporu xinclude

  • -l přepínač pro náhrady entit v LaTeXovém souboru (implicitní při -t pdf )

  • -s jméno XSL souboru pro transformaci

  • -o jméno výstupního souboru

  • -i jméno vstupního souboru (nepovinné, není nutné uvádět příponu)

  • -r parametry pro procesor

  • -p jméno XSLT procesoru

  • -t způsob transformace

Detailnější informace o parametru: -t

Jako hodnotu tohoto parametru můžeme udat buď název procesoru, který bude použit pro transformaci. Neuvedeme li nic je použit implicitní binární procesor xsltproc. Nebo jeden u transformačních úkonů:

  • parse zkontroluje se zdali je dokument označkován způsobem odpovídajícímu standardu XML

  • jparse to samé pomocí xercesu

  • valid zkontroluje se zdali struktura dokumentu odpovídá uvedené gramatice (DTD)

  • jvalid na kontrolu se použije třída xercesu (umí kontrolovat i šablony)

  • pdf provede se sekvence příkazů k vygenerování souboru v PDF

  • foppdf PDF se vygeneruje ze zdrojového FO souboru pomocí FOPu

  • xeppdf PDF se vygeneruje ze zdrojového FO souboru pomocí XEPu

  • ps provede se sekvence příkazů k vygenerování souboru v PS

  • dvi provede se sekvence příkazů k vygenerování souboru v DVI

  • rtf pomocí XSL stylů se soubor transformuje do formátu RTF

  • math ze souboru s matematikou se vygenerují obrázky pro použití v HTML souboru

  • new vytvoří novou šablonu pro bc nebo dipl. práci a nakopíruje k ní doocbook.xsl a fi-logo.png

  • iso2utf transformuje vstupní soubor v kódovaní ISO-8859-2 do kódování UTF-8

  • win2utf transformuje vstupní soubor v kódovaní WINDOWS-1250 do kódování UTF-8

Za parametr -s můžeme uvést buď:

  • předdefinovanou hodnotu umístění transformačního stylu:

    • html pro HTML transformaci

    • htmlchunk pro HTML transformaci do více souboru (např. po kapitolách)

    • xhtml pro XHTML transformaci

    • xhtmlchunk pro XHTML transformaci do více souboru (např. po kapitolách)

    • fo pro FO transformaci

    • fithesis (fi) pro LaTeXovou transformaci s použitím cls stylu fithesis pro bc. a dipl. práce

    • fithesisprint (fiprn) fithesis pro konečný tisk (černobílé provedení)

    • latex pro LaTeXovou transformaci

    • htmlhelp pro transformaci do formátu CHM Dále je nutné spustit program hhc na vzniklý soubor htmlhelp.hhp hhc je součástí: HTML Help Workshop

    • javahelp pro transformaci do JavaHelpu

      Pro prohlížení Java Helpu musíte mít k dispozici: JavaHelp

      jhindexer *.html

      jar -cvf help.jar *

      hsviewer jhelpset.hs help.jar

  • nebo vlastní XSL soubor viz „Modifikace stylů“

Příklady použití

Příklad 2.1. nová šablona pro bc. práci

xslt -t new bc

Příklad 2.2. validace

xslt -t valid file.xml

Příklad 2.3. převod do HTML s použitím catalogů

xslt -s html file

Příklad 2.4. převod do HTML s použitím catalogů, vlastního XSL souboru a saxonu

xslt -p saxon -s myhtml.xsl -o file.html file.xml

Příklad 2.5. převod do RTF pomocí XSL stylů

xslt -t rtf -s fo -o file.rtf file.xml

Příklad 2.6. převod do PDF s použitím catalogů, fithesisového stylu a LaTeXových úprav

xslt -t pdf -s fithesis file.xml (equivalent: xslt -t pdf file)

Příklad 2.7. PDF pro finální tisk (černobílá verze)

xslt -t pdf -s fithesisprint file.xml (equivalent: xslt -t pdf -s fi-print file)

Nastavování vlastních parametrů

Programu xslt můžeme zadat vlastní hodnoty nastavení cest k programům které používá. Má to význam hlavně při lokálních instalacích, kdy chceme aby xslt používal konkrétní umístění jednotlivých programů. Stačí změnit údaje v konfiguračním souboru .xsltrc, který se standardně hledá v adresáři $HOME nebo lib u lokálních instalací či přímo lze udat jeho umístění přepínačem -f

Není nutné nastavovat vše, jen to co potřebujeme změnit, syntaxe je podobná perlovskému zápisu.

Výpis parametrů
jméno: $package_path
popis: cesta k distribuci
jméno: $share_path
popis: cesta k sdíleným souborům
jméno: $run_path
popis: cesta k programu xslt
jméno: $xalan_home
popis: cesta k programu xalan
jméno: $saxon_home
popis: cesta k programu saxon
jméno: $saxon7_home
popis: cesta k programu saxon7
jméno: $saxonb8_home
popis: cesta k programu saxonb8
jméno: $xerces_home
popis: cesta k programu xerces
jméno: $jd_home
popis: cesta k programu jdxslt
jméno: $xfc_home
popis: cesta k programu xfc
jméno: $fop_home
popis: cesta k programu FOP
jméno: $xep_home
popis: cesta k programu XEP
jméno: $xalan_path
popis: cesta k jar souborům xalanu
jméno: $xalan_cp
popis: classpath parametry xalanu
jméno: $xerces_cp
popis: classpath parametry xercesu
jméno: $saxon_cp
popis: classpath parametry saxonu
jméno: $saxon7_cp
popis: classpath parametry saxonu7
jméno: $saxonb8_cp
popis: classpath parametry saxonub8
jméno: $jd_cp
popis: classpath parametry jdxslt
jméno: $xfc_cp
popis: classpath parametry xfc
jméno: $fop_cp
popis: classpath parametry FOPu
jméno: $xep_cp
popis: classpath parametry XEPu
jméno: $catalog_manager
popis: cesta k souboru CatalogManager.properties
jméno: $catalog_files
popis: calalog.xml
jméno: $xsltproc
popis: xsltproc
jméno: $xmllint
popis: xmllint
jméno: $java
popis: java
jméno: $index
popis: csindex
jméno: $vlna
popis: vlna -l
jméno: $pdflatex
popis: pdfcslatex
jméno: $tex
popis: tex
jméno: $latex
popis: cslatex
jméno: $dvips
popis: dvips
jméno: $perl
popis: perl
jméno: $dvi2bitmap
popis: dvi2bitmap
jméno: $convert
popis: texmatheq2png.pl
jméno: $rm
popis: rm -f
jméno: $convertparam
popis: parametry pro program convert
jméno: $default_config
popis: defaultní umístění .xsltrc
jméno: $term
popis: oddělovač hodnot v CLASSPATH
jméno: $xfcparam
popis: parametry pro program xfc
jméno: $bmtype
popis: formát obrázků pro matematiku v HTML
jméno: $convertor
popis: umístění souboru convertor.jar
jméno: $xincluder
popis: umístění xincluderu
jméno: $xincluder_param
popis: jméno třídy xincluderu
jméno: $resolver
popis: umístění catalog resolveru
jméno: $xmlreader
popis: jméno třídy ResolvingXMLReader
jméno: $catalogresolver
popis: jméno třídy CatalogResolver
jméno: $documentbuilder
popis: jméno třídy DocumentBuilderFactoryImpl
jméno: $saxparser
popis: jméno třídy SAXParserFactoryImpl
jméno: $texpass
popis: počet iterací TeXového procesoru
jméno: $db2latex
popis: soubor pro transformaci do LaTeXu
jméno: $fithesis
popis: soubor pro transformaci do LaTeXu s fithesis
jméno: $fithesisprint
popis: soubor pro transformaci do LaTeXu s fithesis v tiskové variantě
jméno: $html
popis: soubor pro transformaci do HTML
jméno: $htmlchunk
popis: soubor pro transformaci do HTML s více soubory
jméno: $xhtml
popis: soubor pro transformaci do XHTML
jméno: $xhtmlchunk
popis: soubor pro transformaci do XHTML s více soubory
jméno: $fo
popis: soubor pro transformaci do FO
jméno: $foxep
popis: soubor pro transformaci do FO pomocí XEPu
jméno: $fofop
popis: soubor pro transformaci do FO pomocí FOPu
jméno: $htmlhelp
popis: soubor pro transformaci do formátu pro HtmlHelp
jméno: $javahelp
popis: soubor pro transformaci do formátu pro JavaHelp
jméno: $bcthesis
popis: šablona pro bc práce
jméno: $thesis
popis: šablona pro dipl. práce

Kapitola 3. Editory

K tomu abychom mohli XML dokument pohodlně tvořit potřebujeme i kvalitní editor ve kterém lze pohodl XML soubor editovat. Musí přinejmenším umožňovat zvýrazňovat syntaxi, ty lepší umí i kontrolovat strukturu XML dokumentu.

Java editory

Editory napsané v Javě nám poběží na každé platformě, kde máme nainstalováno JDK popřípadě JRE.

Linux editory

I pro platformu Linux je několik obstojných editorů.

  • Bluefish http://bluefish.openoffice.nl vynikající editor, který umožňuje zvýraznění syntaxe a kontrolu pravopisu pomocí Aspellu.

  • Quanta http://quanta.sourceforge.net asi nejpoužívanější editor pod linuxem, který umožňuje zvýraznění syntaxe.

  • Nedit http://www.nedit.org editor, který umožňuje zvýraznění syntaxe (neumí utf-8).

  • Kedit http://www.kde.org editor pocházející z dílny KDE, který umožňuje zvýraznění syntaxe.

  • Emacs http://www.emacs.org velice kvalitní editor (pro začátečníky trochu nezvyklé ovládání) lze do něj přidat psgml plugin a pomocí Aspellu se dá kontrolovat i pravopis.

Windows editory

Pro platformu Windows existuje mnoho různých editorů, mezi ty nejlepší patří:

  • EmEditor http://www.emurasoft.com rychlý špičkový editor umožňující zvýraznění syntaxe, existuje do něj plugin, který umí kontrolovat jestli je XML dokument well-formed a plugin, který sám doplňuje ukončovací elementy!

  • UltraEdit www.ultraedit.com editor umožňující zvýraznění syntaxe

  • Altova AUTHENTIC http://www.altova.com

  • Emacs http://www.emacs.org velice kvalitní editor (pro začátečníky trochu nezvyklé ovládání) lze do něj přidat psgml plugin a pomocí ISpelu se dá kontrolovat i pravopis.

  • HTML-Kit http://www.chami.com/html-kit

  • CookTop http://www.xmlcooktop.com umožňuje validuje DTD, XSL transformace, Xpath dotazy ...

  • TextPad http://www.textpad.com vynikající editor, má v sobě podporu přímo pro DocBook, dokumenty lze psát do šablony podobně jako ve Wordu.

Kapitola 4. Tutoriál k DocBooku

Abychom mohl napsat dokument v DocBooku je třeba vědět, které elementy pro daný druh informací máme použít. Uplný referencí přehled všech elementů DocBooku lze nalézt na: DocBook. Nám však bude stačit daleko menší podmnožina.

Kořenový element

Každý XML dokument se musí skládat z jednoho kořenového elementu, ve kterém jsou všechny jiné elementy vnořeny. Jeho název musí být shodný z názvem použitého DTD!. Nejpoužívanějším kořenovým elementem pro DocBook je book, obsahuje též užitečný atribut lang ve kterém lze zkratkou specifikovat použitý jazyk.

Záhlaví

V dokumentu můžeme v záhlaví uvést různé užitečné meta informace ať již o dokumentu tak i o autorovi. K tomu slouží bookinfo

Příklad 4.1. Záhlaví

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 
   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<book lang="cs">

<bookinfo>
   <title>Název dokumentu</title>
   <subtitle>Bakalářská práce</subtitle>
   <author>
      <firstname>Jméno</firstname>  
      <surname>Příjmení</surname>
   </author>
   <pubdate>jaro 2003</pubdate>
   <abstract>
      <para>...</para>
   </abstract>
   <keywordset>
      <keyword>DocBook</keyword>
   </keywordset>
</bookinfo>

</book>

Členění dokumentu

Rozsáhlé dokumenty lze členit na části part. U těch menších stačí dokument členit na kapitoly chapter pod části sect1..5. Jako samostatné kapitoly může do dokumentu vložit předmluvu preface, obsah toc, přílohy appendix, slovníček glossary, seznam literatury bibliography a rejstřík index. Každé části je dobré dát i atribut id pomocí kterého se může později v dokumentu na danou část odkazovat.

Příklad 4.2. Členění dokumentu

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 
   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<book lang="cs">
<bookinfo>
   <title>Název dokumentu</title>
   <subtitle>Bakalářská práce</subtitle>
   <author>
      <firstname>Jméno</firstname>  
      <surname>Příjmení</surname>
   </author>
   <pubdate>jaro 2003</pubdate>
   <abstract>
      <para>...</para>
   </abstract>
   <keywordset>
      <keyword>DocBook</keyword>
   </keywordset>
</bookinfo>

<preface id="ch00">
<title>Pár slov úvodem</title>
<para>...<para>
</preface>

<part id="partI">
<title>Část první</title>
<para>...</para>

   <chapter id="ch01">
   <title>Začínáme</title>
   <para>...</para>

      <sect1 id="sec0101">
      <title>Tematická orientace</title><para>
      <para>...</para>

         <sect2 id="sec010101">
         <title>Horizontální portály</title><para>
         <para>...</para>
         </sect2>

      </sect1>
   </chapter>
</part>

</book>

Obsah

Vytvoření v obsahu je opravdu jednoduché jediné co musí udělat je vložit do dokumentu element <toc/>. XSLT styly umí automaticky zjistit všechny části dokumentu a vygenerovat obsah sami.

Příklad 4.3. Obsah

...
</bookinfo>

<toc/>

<chapter id="ch01">
<title>Začínáme</title>
   <para>...</para>
...

Rejstřík

Pro vytvoření rejstříku musíme v textu označit které výrazy mají být do rejstříku začleněny. Rejstřík může mít až tři úrovně odkazovaní, obvykle postačí pouze první úroveň. Na konec dokumentu vložíme element <index/>. XSLT styly opět automaticky zjistí všechny odkazy na rejstřík sami ho vygenerují.

Příklad 4.4. Rejstřík

...
<para>Nejvíce rozšířený jazyk HTML<indexterm><primary>HTML</primary></indexterm> se ukázal jako ...</para>
...

<index/>

</book>

Literatura

Elementem citation označíme v textu místa, kde citujeme z cizí publikace. Na konci dokumentu (před rejstříkem) v sekci bibliography uvedeme informace o citovaných publikací. Jako identifikátor se obvykle používá pořadové číslo nebo zkratka daného autora popřípadě spojená s rokem vydaní publikace.

Příklad 4.5. Literatura

...
<para>... nalézt v knize: XML pro každého <citation>Kosek</citation> ...</para>
...
<bibliography>
   <biblioentry>
      <abbrev>Kosek</abbrev>
      <author>
         <firstname>Jiří</firstname>
         <surname>Kosek</surname>
      </author>
      <title>XML pro každého</title>
      <publisher>
         <publishername>Grada Publishing</publishername>
      </publisher>
      <pubdate>2000</pubdate>
      <isbn>80-7169-860-1</isbn>
      <releaseinfo>
         <ulink url="http://www.grada.cz">http://www.grada.cz</ulink>
      </releaseinfo>
   </biblioentry>
</bibliography>

<index/>
</book>

Odstavce

DocBook nám nabízí tři druhy odstavců: normální para, simpara ten obsahuje pouze text a inline elementy (to jsou ty které nám v textu nevytvoří další odstavce, začínají příponou inline) a formalpara což je odstavec s titulkem.

Příklad 4.6. Odstavce

<para>běžný odstavec</para>
<simpara>jednoduchý odstavec</simpara>
<formalpara><title>Titulek odstavce</title>
<para>odstavec</para>
</formalpara>

výsledek:

běžný odstavec

jednoduchý odstavec

Titulek odstavce. odstavec

Seznamy

Na výběr máme z několika možností jak seznam utvořit.

SimpleList je nejednodušší variantou, pomocí atributů type a columns můžeme sdružovat sloupce dohromady.

ItemizedList seznam s odrážkou.

OrderedList číslovaný seznam, atributem: numeration může určit typ výsledného číslování

VariableList seznam kde je ke každé množině položek přidružená definice

SegmentedList seznam seskupený do sloupců podle jednotlivých množin údajů

CalloutList slouží k vytvoření očíslovaných odkazů do textu, použití je o trošku složitější viz referenční stránky: DocBook

Příklad 4.7. SimpleList

<simplelist type="vert" columns="3">
   <member>A</member>
   <member>B</member>
   <member>C</member>
   <member>D</member>
   <member>E</member>
   <member>F</member>
   <member>G</member>
</simplelist>

výsledek:

ADG
BE 
CF 

Příklad 4.8. ItemizedList

<itemizedlist>
   <listitem><para>TeX and LaTeX</para></listitem>
   <listitem><para>XML</para></listitem>
   <listitem><simpara>HTML</simpara></listitem>
   <listitem><simpara>XHTML</simpara></listitem>
</itemizedlist>

výsledek:

  • TeX and LaTeX

  • XML

  • HTML
  • XHTML

Příklad 4.9. OrderedList

<orderedlist numeration="lowerroman">
   <listitem><para>One</para></listitem>
   <listitem><para>Two</para></listitem>
   <listitem><simpara>Three</simpara></listitem>
   <listitem><simpara>Four</simpara></listitem>
</orderedlist>

výsledek:

  1. One

  2. Two

  3. Three
  4. Four

Příklad 4.10. VariableList

<variablelist>
<title>Font Filename Extensions</title>
<varlistentry>
   <term><filename>TTF</filename></term>
   <listitem><para>TrueType fonts.</para></listitem>
</varlistentry>
<varlistentry>
   <term><filename>PFA</filename></term>
   <term><filename>PFB</filename></term>
<listitem><para>PostScript fonts. <filename>PFA</filename> coomon <acronym>UNIX</acronym>, <filename>PFB</filename> more common on Windows.</para>
</listitem>
</varlistentry>
</variablelist>

výsledek:

Font Filename Extensions

TTF

TrueType fonts.

PFA , PFB

PostScript fonts. PFA files are common on UNIX systems, PFB files are more common on Windows systems.

Příklad 4.11. SegmentedList

<segmentedlist><title>State Capitals</title>
<segtitle>State</segtitle><segtitle>Capital</segtitle>
   <seglistitem><seg>Alabama</seg><seg>Montgomery</seg></seglistitem>
   <seglistitem><seg>Alaska</seg><seg>Anchorage</seg></seglistitem>
   <seglistitem><seg>Arkansas</seg><seg>Little Rock</seg></seglistitem>
</segmentedlist>

výsledek:

State Capitals
State: Alabama
Capital: Montgomery
State: Alaska
Capital: Anchorage
State: Arkansas
Capital: Little Rock

Tabulky

Pro zápis tabulky existuje v DocBooku podobně bohatá syntaxe jako pro HTML, podrobněji opět viz originální reference DocBook

Můžeme si vybrat ze svou možností, buď klasickou tabulku uvozenou titulkem table nebo jako u jiných elementů použít prefix informal, kdy dostane tabulku bez titulku.

Příklad 4.12. Tabulka s titulkem

<table>
<title>Sample Table</title>
   <tgroup cols="2">
   <tbody>
      <row><entry>1</entry><entry>1</entry></row>
      <row><entry>2</entry><entry>4</entry></row>
      <row><entry>3</entry><entry>9</entry></row>
   </tbody>
   </tgroup>
</table>

výsledek:

Tabulka 4.1. Sample Table

11
24
39

Příklad 4.13. Tabulka bez titulku a bez rámečku

<informaltable frame="none">
   <tgroup cols="2">
   <colspec align="center"/>
   <colspec align="center"/>
   <tbody>
      <row><entry>1</entry><entry>1</entry></row>
      <row><entry>2</entry><entry>4</entry></row>
      <row><entry>3</entry><entry>9</entry></row>
   </tbody>
   </tgroup>
</informaltable>

výsledek:

11
24
39

Příklady

Různé příklady a ukázky v DocBooku se označují elementy: example nebo bez použití titulku : informalexample.

Příklad 4.14. Příklad s titulkem

<example>
<title>Příklad s titulkem</title>
<para>ukázka kódu &hellip;</para>
</example>

výsledek:

Příklad 4.15. Příklad s titulkem

ukázka kódu …

Příklad 4.16. Příklad bez titulku

<informalexample>
<para>ukázka kódu &hellip;</para>
</informalexample>

výsledek:

ukázka kódu …

ProgramListing

Slouží pro zápis programového kódu, obvykle je vhodné ho použít se sekcí CDATA. Zachovává řádkování.

CDATA

sekce CDATA slouží pro vkládání kódu, u kterého nechceme aby se uplatňovali speciální znaky jako: <, > a &.

Příklad 4.17. CDATA

<ProgramListing><![CDATA[
for (Iterátore j = neighbors.iterator(); j.hasNext(); ) {
   Node neighbor = (Node)j.next();

   System.out.print(neighbor.getName());
   if (j.hasNext()) {
      System.out.print(", ");
   }
}
]]></programlisting>

výsledek:

for (Iterator j = neighbors.iterator(); j.hasNext(); ) {
   Node neighbor = (Node)j.next();

   System.out.print(neighbor.getName());
   if (j.hasNext()) {
      System.out.print(", ");
   }
}

Uvozovky

K vytvoření uvozovek slouží element quote.

Příklad 4.18. quote

<quote>slovo</quote>

výsledek:

slovo

Kapitola 5. Jak napsat bakalářskou a diplomovou práci

Jak má vypadat XML dokument

Předem doporučuji dvě věci:

  • Používat kódování utf-8, všechny procesory ho musí podporovat, takový dokument si může přečíst každý a v neposlední řadě je to trend.
  • Všechny obrázky mít ve formátu PNG
  • DPI všech obrázků nastavit na 100, budou tak mít v HTML i PDF stejnou velikost

Ze všeho nejlepší je, inspirovat se z již hotových prací (ale není zaručeno, že jsou napsané správně): 7 – „Hotové práce

Zaručeně správnou syntaxi se můžete dozvědět z referenční příručky tvůrců docbooku: DocBook

Výborné jsou i testovací soubory pro docbook docbook-testdocs-1.1

Na škodu není přečíst si ani tutoriál Jiřího Koska: http://www.kosek.cz/xml/db

Důležité

xslt umí vygenerovat nový XML soubor pro naši práci: bakalářskou (bc) či diplomovou (thesis), obsahuje základní strukturu souboru popsanou v této kapitole a do stejného adresáře jsou nakopírovány i další potřebné soubory.

xslt -t new bc

xslt -t new thesis

Úplně na začátek souboru vložíme element pro identifikaci verze XML a kódování dokumentu.

<?xml version="1.0" encoding="utf-8"?>

Pokud chceme XML soubor úspěšně validovat je třeba uvést gramatiku DTD podle, které se dokument zkontroluje, a odkaz na jeho umístění

Můžeme použít dva způsoby umístění DTD: PUBLIC tzn. uvedeme URL, kde je dané DTD veřejně dostupné z webu. Což je velice výhodné pro přenositelnost dokumentu a obecně doporučované. Pro praxi by ale stahování DTD z internetu značně zpomalovalo proces transformace a nebylo by možné přistupovat k DTD bez připojení na internet. Řešení je použití catalogů, soubor pomocí kterého se PUBLIC DTD přemapuje na lokální umístění DTD.

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 
   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY % fithesis SYSTEM "http://www.fi.muni.cz/~xpavlov/fithesis.mod">
   %fithesis;]>

Dále kořenový element book s identifikaci jazyka.

<book lang="cs">

Do záhlaví XML souboru je nutné dát povinné identifikační elementy.

  • title název práce

  • subtitle typ práce: bakalářská, diplomová

  • firstname křestní jméno autora

  • surname příjmení autora

  • fi:woman logická hodnota pohlaví autora: true, false

  • fi:faculty zkratka fakulty:

    • fi: Fakulta informatiky

    • sci: Přírodovědecká fakulta

    • law: Právnická fakulta

    • eco: Ekonomická fakulta

    • med: Lékařská fakulta

    • fss: Fakulta sociálních studií

    • phil: Filozofická fakulta

    • ped: Pedagogická fakulta

  • fi:advisor jméno vedoucího práce

  • fi:thanks poděkování, obvykle se uvádí jen u diplomových prací

  • pubdate semestr ve kterém byla práce vytvořena

  • abstract abstrakt práce (krátké pojednání, o čem práce je)

  • keywordset klíčová slova

Takhle může vypadat začátek vašeho XML dokumentu, doporučuji cut and paste okopírovat a pozměnit podle svých údajů.

Příklad 5.1. vzhled XML souboru

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 
   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY % fithesis SYSTEM "http://www.fi.muni.cz/~xpavlov/fithesis.mod">
   %fithesis;]>

<book lang="cs">

<bookinfo>
   <title>Název práce</title>
   <subtitle>Bakalářská práce</subtitle>
   <author>
      <firstname>Jméno</firstname>  
      <surname>Příjmení</surname>
      <fi:woman>false</fi:woman>
      <fi:faculty>fi</fi:faculty>
      <fi:advisor>titul jméno příjmení</fi:advisor>
   </author>
   <pubdate>jaro 2003</pubdate>
   <abstract>
      <para>Psaní dokumentů ve formátu XML DocBook sebou přináší hned několik výhod ...</para>
   </abstract>
   <keywordset>
      <keyword>XHTML</keyword>
      <keyword>XML</keyword>
   </keywordset>
</bookinfo>
</book>

Transformace do PDF a PS

PDF můžeme z našeho souboru získat tím, že styly vygenerujeme LaTeXový zdrojový kód s již začleněnou podporou pro bakalářské a diplomové práce. Ten se pak pomoci LaTeXových transformací převede do PDF formátu.

Automaticky dojde k nahrazení nejpoužívanějších entit a slova LaTeX se změní na LaTeXové logo.

xslt -t pdf -s fithesis file.xml

Pokud chceme soubor transformovat i do PS, je nutné mít všechny obrázky dostupné i ve formátu EPS (cslatex neumí jednoduše zpracovat jiný formát). V XML souboru uvádíme jména obrázku bez jejich přípony.

xslt -t ps -s fithesis file.xml

Před finální vysázením je dobré zkrotrolovat, zdali proběhl zlom bez problémů. K tomuto slouží LaTeXovým mód draft, kdy se nám na konci každého špatně zalomeného řádku zobrazí černý obdelníček. Nastavíme pomocí:

<xsl:param name="latex.documentclass.common" select="'draft'"/>

popřípadě:

xslt -t pdf -s fithesis-draft file.xml

Pro tisk je lepší verze dokumentu, kde nejsou použité žádné barvy v odkazech, potřebné monochromatické nastavení provádí šablona fithesis-print.

xslt -t pdf -s fithesis-print file.xml

Transformace do HTML

Pro vygenerování HTML nebo XHTML použijeme bud předefinované cesty ke stylům pro HTML:

xslt -s html file.xml

pro xhtml:

xslt -s xhtml file.xml

nebo si můžeme přenastavit některé z parametrů ve svém vlastním stylu viz. „Modifikace stylů“

xslt -s myhtmlstyle.xsl -o file.html file.xml

Dále budeme potřebovat logo ve formátu PNG a nějaký CSS styl.

Dostupné CSS styly (časem přibudou další):

a pak ještě logo fakulty ve formátu PNG:

Modifikace stylů

docbook-xsl styly umožňují jistou škálu konfigurovatelnosti nastavováním různých parametrů, což lze provést v iniciálním XSL souboru transformace. V něm nastavíme potřebné parametry a importujeme originální iniciální XSL soubor docbook.xsl

Originální soubor spouštějící samostatnou je transformaci je v /packages/share/xslt2-2.6.5/xsl/{typtrasformace}/docbook.xsl

Pokud chceme změnit nějaké parametry lze spustit překlad pomocí vlastního XSL souboru, ve kterém je nutno importovat originální dockbook.xsl

Vytvoříme si vlastní XSL soubor pro transformaci do HTML, ve kterém změníme jméno CSS souboru a nastavíme potřebné parametry pro použití matematiky.

Příklad 5.2. myhtml.xsl

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>

<xsl:import href="/packages/share/xslt2-2.6.5/xsl/html/docbook.xsl"/>

<xsl:param name="html.stylesheet" select="'docbook2.css'"/>
<xsl:param name="tex.math.file" select="'tex-math-equations.tex'"/>
<xsl:param name="tex.math.in.alt" select="'latex'"/>

</xsl:stylesheet>

Transformaci pak spustíme takto:

xslt -s myhtml.xsl -o file.html file.xml

Referenční popis parametrů: reference HTML parametrů

Použití XInclude

XInclude je standard pro vkládání textu do XML souborů, nabízí mnohem elegantnější a silnější prostředek než je vkládání pomocí entit:

<!ENTITY intro "intro.xml"/>

Při vkládání dokumentů jako entity jsme nemohli uvádět DOCTYPE a XML soubory nebyly tak plnohodnotné a nešly validovat. S XInclude tento problém odpadá. Navíc můžeme pomocí Xpointer odkazu stanovit, kterou část dokumentu vložit, vybrat si zdali dokument vložit jako text nebo jako XML kód a ošetřovat případy, kdy se vložení nepodařilo.

Elementy použité pro XInclude patří do vlastního jmenného prostotu, který musí být všude v dokumentu stejný.

<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 
   href="intro.xml"/>

Dokument nemusíme vkládat celý, ale třeba jen danou kapitolu, nejednodušší způsob je použít ID dané kapitoly.

<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 
   href="intro.xml#Installing"/>

Mnohem více lze docílit, pokud použijeme xpointer ukazatel na požadovanou část dokumentu, pomocí Xpath syntaxe.

<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 
   href="intro.xml" xpointer="(/sect1/section[1]/*)"/>

XInclude můžeme použít i ke vkládání prostého textu. Atribut parse="text" sdělí procesoru, aby daný obsah namísto XML zobrazil jako prostý text. Tím jsou speciální XML znaky převedeny na odpovídající entity:

& na &amp;
< na &lt;
> na &gt;
" na &quot;

<programlisting>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" 
   href="code.c" parse="text"/>
</programlisting>

Na fakultě informatiky vznikl projekt xincluder-fi.jar, který rozšiřuje originální xincluder.jar o možnost vložit pouze specifikované řádky z vkládaného souboru.

Při vkládání prostého textu můžeme využít rozšířené interpretace URL vkládaného souboru. V URL textového souboru nemají standardně znaky za # žádný speciální význam – např. code.c#1 je běžně interpretováno stejně jako code.c. Prostor za # proto využijeme ke specifikaci, které řádky ze vstupního souboru vložit, např.:

#2

vloží pouze druhý řádek

#2-

vloží od druhého řádku počínaje všechny řádky

#2-5

vloží řádky od druhého do pátého včetně

#2$3

vloží tři řádky počínaje druhým

#-2

vloží první dva řádky

#$2

vloží první dva řádky

Pokud vložení neproběhne správně, ať už z důvodu, že daný soubor neexistuje nebo jej nelze stáhnout, lze namísto prázdného xi:include elementu vložit na dané místo vlastní chybové hlášení.

<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="intro.xml">
  <xi:fallback>
    <para><emphasis>CHYBA: XINCLUDE</emphasis></para>
  </xi:fallback>
</xi:include>

Ve skutečnosti může xi:fallback obsahovat další xi:include element, který se procesor pokusí vyhodnotit v případě neúspěchu. Nesmíme však zapomenout, že pokud uvedeme xi:fallback, tak se transformace dokumentu v případě chyby nezastaví. Pokud je nezbytné, aby vložení souboru proběhlo, je lepší xi:fallback element nepoužívat a nechat proces skončit s chybou.

Příklad 5.3. použití XInclude

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 
	"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY % fithesis SYSTEM "http://www.fi.muni.cz/~xpavlov/fithesis.mod">
	%fithesis; ]>

<book lang="cs">

<xi:include href="preface.xml" xpointer="(/book/*)" />
<xi:include href="intro.xml" xpointer="(/book/*)" />

</book>

Při překladu je potřeba použít parametr -x.

Použití matematiky

V současné době je možné v XML souboru použít LaTeXovou notaci pro zápis matematiky, ta se pak po transformaci zobrazí jak ve výsledném PDF (PS) tak i HTML (XHTML). LaTeXový procesor si ji sám nativně přeloží a v HTML souboru je zobrazena jako obrázek. Do našeho XSL souboru viz. „Modifikace stylů“ pro HTML nastavíme:

Příklad 5.4. nastavení parametrů pro matematiku

   <xsl:param name="tex.math.file" select="'tex-math-equations.tex'"/>
   <xsl:param name="tex.math.in.alt" select="'latex'"/>

Styly zapíší matematické výrazy do souboru tex-math-equations.tex z něho lze pomocí

xslt -t math tex-math-equations.tex

získat obrázky matematiky, na které se HTML dokument odkazuje.

Pro zápis matematických výrazů v textu se používá element inlineequation. Pokud chceme zobrazit matematiku jako samostatnou rovnici, používá se element quation v XML notaci uvedeme:

Příklad 5.5. zápis matematiky

<para>test matematiky
<inlineequation>
   <alt role="tex">a^2+b^2=c^2</alt>
   <graphic fileref="math1.png"/>
</inlineequation>
</para>

<equation>
   <title>Vztah mezi hmotou a energií.</title>
   <mediaobject>
      <imageobject>
         <imagedata fileref="math2.png"/>
      </imageobject>
      <textobject role="tex">
         <phrase>E=mc^2</phrase>
      </textobject>
   </mediaobject>
</equation>

Dojde k vytvoření dvou obrázků math1.png, math2.png a HTML kódu:

<p>test matematiky</p>
<div>
   <img src="math1.png" />
</div>

<div class="equation">
   <a id="id535184"></a>
   <p class="title">
      <b>Rovnice 3.1. Vztah mezi hmotou a energií.</b>
   </p>
   <div class="mediaobject">
      <img src="math2.png" />
   </div>
</div>

Celý výsledek vypadá takto:

test matematiky

Rovnice 5.1. Vztah mezi hmotou a energií.

Do LaTeXového souboru je vložen kód:

test matematiky	$a^2+b^2=c^2$

\begin{dbequation}
\begin{center}
$$E=mc^2$$
\caption{Vztah mezi hmotou a energií.}
\label{id465441}\hypertarget{id465441}{}%
\end{center}
\end{dbequation}

Entity

Ne všechny znaky jsme schopni napsat na klávesnici, třeba dlouhá pomlčka: — na klávesnici prostě není. Do XML ji dostaneme tak, že ji zapíšeme pomocí entity: &mdash;. Stějně tak všechna řecká písmenka atd.

Nicméně do LaTeXové zdrojového kódu se nám vygeruje entita v číselné podobě, pro mdash je to &#8212. Nic takového běžný LaTeXový procesor nezná, musíme proto nahradit všechny takovéto výskyty XML entit na patřičné LaTeXové zápisy, pro mdash je to: ---.

Nahrazování entit se z důvodu rychlosti provádí regulárním výrazem v perlu. Náhrazovaní se zapína přepínačem -l. Tato volba umožní náhradu všech běžných entit všetně řeckých písmenek. (implicitní při volbě -t pdf)

Pokud bychom chtěli nahrazovat entitu, která není standardně zahrnuta v reguláních výrazech programu xslt můžeme includovat v náší XSLT šabloně soubor $XSLT_HOME/xsl/latex/format.xsl pomocí následující direktivy:

Příklad 5.6. my.xsl

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>

<xsl:import href="/packages/share/xslt2-2.6.5/xsl/latex/fithesis.xsl"/>
<xsl:include href="/packages/share/xslt2-2.6.5/xsl/latex/format.xsl"/>
<xsl:param name="latex.texmap.xml" select="document('/packages/share/xslt2-2.6.5/xsl/latex/texmap.xml')"/>

</xsl:stylesheet>

Do proměnné latex.texmap.xml můžeme vložit jméno našeho souboru s definicemi náhrat entit, čím méně položek soubor bude mít, tím rychlejší bude transfomace

Použití pro studenty mimo MU

Styly pro transformace nejsou omezeny jen na použití pod Masarykovou Univerzitou. Stačí do XML souboru vložit dodatečné informace o jménu fakulty, univerzity a loga.

Do XML souboru přidáme následující elementy:

  • fi:faculty celý název fakulty

  • fi:university celý název univerzity

  • fi:logo jméno souboru s logem fakulty, bez přípony

Hlavička takového souboru může vypadat například takto:

Příklad 5.7. vzhled XML souboru

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 
   "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY % fithesis SYSTEM "http://www.fi.muni.cz/~xpavlov/fithesis.mod">
   %fithesis;]>

<book lang="cs">

<bookinfo>
   <title>Název práce</title>
   <subtitle>Bakalářská práce</subtitle>
   <author>
      <firstname>Jméno</firstname>  
      <surname>Příjmení</surname>
      <fi:woman>false</fi:woman>
      <fi:faculty>Fakulta uměleckého kovářství</fi:faculty>
      <fi:university>Metalurgická univerzita</fi:university>
      <fi:logo>mojelogo</fi:logo>
      <fi:advisor>titul jméno příjmení</fi:advisor>
   </author>
   <pubdate>Praha, jaro 2003</pubdate>
   <abstract>
      <para>...</para>
   </abstract>
   <keywordset>
      <keyword>Meče</keyword>
      <keyword>Sváření</keyword>
   </keywordset>
</bookinfo>
...
</book>

Dále je vhodné upravit i místo, kde byla práce publikována. Stačí předefinovat hodnotu paramentru fithesis.pub.place viz. „Modifikace stylů“.

Příklad 5.8. vzhled XML souboru

<xsl:param name="fithesis.pub.place" select="'Hradec Králové, '"/>

Práce v cizím jazyce

Svou práci můžeme pohodlně plát i v jiných jazycích. V současné době systém xslt2 podporuje následující jazyky: čeština, slovenština a angličtina (cz, sk, en).

Jediné co je potřeba změnit, je atlibut lang v elementu book

Příklad 5.9. nastavení jazyka

<book lang="sk">

Kapitola 6. Download

Download

binary:

source:

Systém je možné používat i off-line lokálně na systémech Linux, Windows, MacOS X, Solaris, FreeBSD a IRIX (na ostatních nebylo vyzkoušeno).

xslt je napsán v jazyce Perl binární distribuci Perlu lze získat z www.perl.com nebo přímo binární verze (Windows, Linux) z http://www.activestate.com

Pro instalaci a práci s javovými procesory je nutné i JRE nebo JDK http://java.sun.com/j2se.

A pro tvorbu PDF a PS potřebujeme nějakou distribuci LaTeXu nejlépe TeXLive nebo tetex.

Instalace

Instalaci spustíme pomocí příkazu:

java -jar xslt2-2.6.5-install.jar

Pokud chceme použít vlastní softwarové řešení a nemáme přístupové cesty zavedeny do systémových proměnných je nutné změnit cesty v souboru:

lib/.xsltrc

Tak a to by mělo být všechno, nejlépe bude si zkusit přeložit nějakou už hotovou práci, zdali všechno funguje 7 – „Hotové práce

Transformace se spouští příkazem xslt, v UNIXových systémech stačí přidat cestu k němu do proměnně PATH. Pod Windows stačí nakopírovat soubor xslt.bat někam, kde máme nastavenou cestu nebo jí k němu nastavit.

Informace o verzích

Tato distribuce obsahuje následující verze programů:

  • xslt-2.0.36
  • xerces-2.8.0
  • xalan-2_7_0
  • saxon-6-5-5
  • saxon-7.9-1
  • saxonb-8.7-1j
  • jdxslt-1.5.5
  • fop-0.20.5
  • xep-4.4
  • resolver-1.1
  • xfc-23p1
  • libxml2-2.6.24
  • libxslt-1.1.16
  • texmatheq2png-1.3
  • docbook-xsl-1.69.1
  • db2latex-cvs
  • DTD DocBook-4.4
  • DTD fithesis-1.4
  • DTX fithesis-0.2.9

Kapitola 7. Hotové práce

Inspirace jak by taková práce v XML DocBooku měla vypadat.

Bakalářské práce

Jan Pavlovič - Tvorba dokumentu v XML
: All
: bc1
: XML
: HTML
: XHTML
: LaTeX
: RTF
: RTF
: PDF
: CHM
Lukáš Macháček - Webový portál věnovaný syntaktické analýze přirozeného jazyka
: All
: bc2
: XML
: HTML
: XHTML
: LaTeX
: RTF
: RTF
: PDF
: CHM
Tomáš Závodný - Videoformáty, videokodeky
: All
: bc3
: XML
: HTML
: XHTML
: LaTeX
: RTF
: RTF
: PDF
: CHM
Marek Lipovčan - Optimalizace aplikací distribuce teTeX
: All
: bc4
: XML
: HTML
: XHTML
: LaTeX
: RTF
: RTF
: PDF
: CHM

Magisterské práce

Libor Vaněk - Snímek souborového systému
: All
: dp1
: XML
: HTML
: XHTML
: LaTeX
: RTF
: PDF
: CHM
David Kutálek - Technické řešení univerzální služby připojení k Internetu
: All
: dp2
: XML
: HTML
: XHTML
: LaTeX
: RTF
: PDF
: CHM

Další práce

Pokud jste svou práci také napsali v XML DocBooku a chcete ji poskytnout k inspiraci pro další studenty zašlete ji prosím na .

Kapitola 8. FAQ

8.1. Úprava XSLT stylů
8.1.1. Lze nějak vložit v DocBooku řádkovou mezeru?
8.1.2. Jak zalomím dlouha slova v bunkách tabulky?
8.1.3. Jak zruším < > v url odkazev v PDF?
8.1.4. Jak vytvořím podkapitolu, která nebude v obsahu?
8.1.5. Jak mohu použít rozdělění práce do kapitol?
8.2. Ostatní
8.2.1. Jak automaticky zarovnám svůj XML dokument?
8.2.2. Jak zvýrazním text boldem nebo italitou?

8.1. Úprava XSLT stylů

8.1.1. Lze nějak vložit v DocBooku řádkovou mezeru?
8.1.2. Jak zalomím dlouha slova v bunkách tabulky?
8.1.3. Jak zruším < > v url odkazev v PDF?
8.1.4. Jak vytvořím podkapitolu, která nebude v obsahu?
8.1.5. Jak mohu použít rozdělění práce do kapitol?
8.1.1.

Lze nějak vložit v DocBooku řádkovou mezeru?

Vkládání mezer je typograficky ošemetná věc, je lepší nechat formátování dokumentu na procesoru.

Nicméně aniž DocBook obsahuje element pro nový řádek, je možné takovýto element jednoduše dodefinovat pomocí procesní instrukce. Stačí si vytvořit vlastní XSLT styl viz: „Modifikace stylů“ a přidat do něj následující šablonu.

Příklad 8.1. procesní instrukce

Do XML souboru vložíme následující procesní instrukci.

<?br?>
							

Kterou definujeme v XSLT souboru.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
<xsl:import href="/opt/xslt2/xsl/latex/fithesis.xsl"/>
<xsl:output method="text" encoding="ISO-8859-2"/>

<xsl:template match="processing-instruction('br')">
	<xsl:text>\\[1cm]</xsl:text>
</xsl:template>

</xsl:stylesheet>
						
8.1.2.

Jak zalomím dlouha slova v bunkách tabulky?

Neprve si definujeme procesní instrukci na zalomení slova, kterou vložíme na potřebné místo k zalomení.

Příklad 8.2. procesní instrukce

<?br?>
							

Kterou definujeme v XSLT souboru.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
<xsl:import href="/opt/xslt2/xsl/latex/fithesis.xsl"/>
<xsl:output method="text" encoding="ISO-8859-2"/>

<xsl:template match="processing-instruction('br')">
	<xsl:text>\-</xsl:text>
</xsl:template>

</xsl:stylesheet>
						

Dále musíme také nastavit šířku sloupce tabulky.

<colspec colwidth="5cm"/>
  						
8.1.3.

Jak zruším < > v url odkazev v PDF?

Stačí nastavit proměnnou latex.url.quotation no hodnotu 0. Nejlépe ve vlastní XSLT šabloně

Příklad 8.3. nastavení proměnné

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
<xsl:import href="/opt/xslt2/xsl/latex/fithesis.xsl"/>
<xsl:output method="text" encoding="ISO-8859-2"/>

<xsl:param name="latex.url.quotation" select="0"/>

</xsl:stylesheet>
						
8.1.4.

Jak vytvořím podkapitolu, která nebude v obsahu?

Stačí použím element bridgehead.

Příklad 8.4. bridgehead

<bridgehead renderas="sect4">Caching Services</bridgehead>							
8.1.5.

Jak mohu použít rozdělění práce do kapitol?

Jelikož standardní LaTeXový styl, na kterém je potaven fithesis nepozdopruje part, je potřeba použít styl scrreprt. Změnu provedeme nastavením proměnné fithesis.cls.class

Příklad 8.5. part

<xsl:param name="fithesis.cls.class" select="'scrreprt'"/>

8.2. Ostatní

8.2.1. Jak automaticky zarovnám svůj XML dokument?
8.2.2. Jak zvýrazním text boldem nebo italitou?
8.2.1.

Jak automaticky zarovnám svůj XML dokument?

Stačí použít plugin XML Indenter v JEditu, který umí na jedno kliknutí zarovnat jakýkoli XML dokument.

8.2.2.

Jak zvýrazním text boldem nebo italitou?

Takovéto ruční zvýrazňování je většinou proti typografickým zásadám. Proto se mu snažte vyvarovat. Pokud chcete zvýraznit nějaky text použite patřičný element vystihující typ textu.

Pokud i přes to potřebuje zvýraznit nějaky text, lze použít následující elemety.

Příklad 8.6. zvýraznění

<emphasis>italics</emphasis>
<emphasis role="bold">bold</emphasis>
							

Kapitola 9. Help

V případě jakéhokoli problému při transformaci XML souboru klidně napište na , rád se vám pokusím pomoci, co se týče problému při překladu LaTeXových zdrojových kódů, spíše vám poradí v diskusní skupině: cz.muni.courses.PB029 nebo na cz.muni.redir.cstex.

Kapitola 10. Changelog

verze 2.6.5

  • fix CSS outputs are valid

  • fix XHMLT, HTML outputs are valid

  • fix quote substitution

  • add draft mode to documentation

  • add to doc how to use part (no part or scrreprt)

  • add to doc how to use unnumbered section

  • delted dist/.xsltrc

  • rename dist and build dirs

  • add download izpack

  • del package structure in build.xml

  • add xslt src compile target and jar

  • del SDK in build.xml since SVN

  • SDK should contails only sdk files, no more fully functional distribution

  • change sdk to SVN

  • add libxml2 bin package only for windows

  • move db2latex and docbook styles to optional package

  • move all devel addtitional files to one directory

  • clean build.xml

  • all installers in Java or ant

  • check margins

  • fix param.latex.url.quotation -> latex.url.quotation in FAQ

  • fix adding xalan serializer.jar to .xsltrc xalan jars

  • add icons to changes

  • fix postinstall changes, separete them to several files and run in pack sections

  • del xinstall.xml

  • add image to installation splash screen

  • xslt processors upgrade

  • stylesheets bug fixes

  • now it is possible to install xslt2 in directories containing spaces

verze 2.6.4

  • fix FO styles (thanks Pavel Drozd)

  • fix FO logo path in profile-docbook.xsl

  • fix imagedata with in db2latex

  • fix implicite suffix for XHTML

  • fix figure align in db2latex

  • add wider left margin in fi-print

  • no more use of stupid package czech

  • add DocBook 4.4 DTD

verze 2.6.3

  • new fithesis.mod for DocBook DTD V4.3

  • new XSLT processors

  • fix regexp in xslt.pl for images

  • fix texmatheq2png.pl eraser for windows

  • fix --silent for windows

  • fix index page references

verze 2.6.2

  • new option --silent (-e)

  • fix XPath in fithesis.xsl (thanks Petr Hlávka)

  • fix defaul logo extension (thanks Marek Chowaniok)

  • FAQ update

  • fithesis.pub.place update

  • add support for XEP

  • fix FO styles

  • fix FO logo path after installation

  • fix FOP font path after installation

  • fix windows fithesis installer

  • fix windows xslt2 installer (no for Program Files like dirs yet)

  • fix ugly regxp bug in xslt.pl (thanks Marek Chowaniok)

verze 2.6.1

  • return to option -l

  • saxon-8.2

  • XSLT style fixes

  • add DocBook 4.3 DTD

  • GUI installer update

  • language correction (thanks Petr Adamek)

  • HTML declaration text fix

verze 2.6.0

  • new graphical installer

  • fithesis 0.2.6

  • fix saxon and jdxslt with j2sdk-1.5

  • add saxon8

  • add -c -l implicite

  • add FAQ

  • add os option for vars in .xsltrc

  • new XSLT processors

  • new XSLT styles

  • XSLT bug fixes

verze 2.5.1

  • fithesis 0.2.5

  • new XSLT processors

  • new XSLT styles

verze 2.5.0

  • add lang sk, en

  • fithesis 2.0

  • add installator for fithesis (linux only)

  • new XSLT processors

  • bug fixes

  • LaTeX improvements

verze 2.4.2

  • new processors

  • bug fixes

  • LaTeX improvements

verze 2.4.1

  • new XSLT processors

verze 2.4.0

  • FOP included

  • load default config before user config

  • add blufish and quanta to editors

  • upgraded to XInclude 2003

  • new param for number of LaTeX passes

  • new XSLT processors

  • new db2latex-xsl stylesheets

  • new docbook-xsl stylesheets

  • new way how change entites

  • new installer

verze 2.3.1

  • bug fixes

  • new fithesis

  • new stylesheets

  • new XSLT processors

verze 2.3.0

  • no more DSSSL

  • new xslt2 params -p and -r

  • new fithesis URL

  • new stylesheets

  • new XSLT processors

verze 2.2.2

  • new templates

  • xerces-2.5.0

  • libxml2

verze 2.2.1

  • fithesis-print

  • xalan-2.5.1

verze 2.2.0

  • install.pl

  • new XSLT processors

  • new stylesheets

verze 2.1.0

  • db2latex-0.7

  • XIncluder

  • DocBook tutorial

  • new XSLT processors

  • new stylesheets

verze 2.0.1

  • vylepšení výstupu do LaTeXu

  • úpravy ve stylech pro matematiku a titulní stranu

  • update procesorů (xalan, xerces)

verze 2.0.0

  • nová přepracovaná verze xslt

Kapitola 11. Licence

xslt2 je šířen pod GPL v2 (GNU GENERAL PUBLIC LICENSE Version 2).