10.2. Kniha

Kniha je nejpoužívanější a díky své variabilní struktuře by měla vyhovovat všem požadavkům. Kniha se zpravidla skládá z těchto částí:

Metainformace

jsou uzavřeny v elementu bookinfo a obsahují obecné informace o knize.

Části

Rozsáhlejší knihy se zpravidla dělí do několika částí (part)

Komponenty

dělí knihu na úrovni kapitol. Patří sem předmluva (preface), jednotlivé kapitoly (chapter), přílohy (appendix), slovníček (glossary), seznam bibliografických citací (bibliography), věnování (dedication) a tiráž (colophon).

Navigační komponenty

Kniha zpravidla obsahuje obsah (toc), seznamy tabulek, obrázků příkladů (lot) a rejstřík.(index). Naštěstí tyto komponenty umí generovat XSL šablona a proto je nemusíme vytvářet ručně.

ikona
Příklad 10.2: Jednoduchá kniha
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
          "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<book lang="cs">
<bookinfo>
  <title>Kniha</title>
  <author><firstname>Jméno</firstname><surname>Příjmení</surname></author>
  <copyright><year>2005</year></copyright>
</bookinfo>
<preface><title>Předmluva</title> ... </preface>
<chapter><title>První kapitola</title> </chapter>
<chapter><title>Druhá kapitola</title> </chapter>
<appendix> ... </appendix>
<index> ... </index>
</book>
Prvky tvořící strukturu knihy

Obrázek 10.1. Prvky tvořící strukturu knihy

Metainformace

Metainformace můžeme přidělit většině komponent (kapitoly, sekce) a se zapisují do elementu, který začíná názvem komponenty a má příponu info. Tedy např. partinfo, chapterinfo, sectioninfo a bookinfo.

Element bookinfo může obsahovat celou řadu informací o komponentě. Záleží jen na nás, které budeme chtít využít. Obvykle je přítomen element title, což je název. Příležitostně můžeme uvést i podnázev do elementu subtitle. Pro jméno autora existuje element author. Datum publikace uvedeme do značky pubdate.

ikona
<author>
 <honorific>Bc</honorific>
 <firstname>Martin</firstname>
 <surname>Ptáček</surname>
</author>

Autorů může být i více, v tom případě se sloučí pomocí elementu authorgroup. Dále se nám můžou hodit elementy pubdate obsahující datum publikování dokumentu, copyright či edition s číslem vydání dokumentu.

Metainformace ještě mohou obsahovat abstrakt (abstract), seznam klíčových slov (keywordset) a historií revizí dokumentu (revhistory).

ikona
<abstract>
 <para>Toto je abstrakt...</para>
</abstract>

<keywordset>
  <keyword>images</keyword>
  <keyword>illustrations</keyword>
</keywordset>

<revhistory>
 <revision>
   <revnumber>0.91</revnumber>
   <date>11 Dec 1996</date>
   <authorinitials>ndw</authorinitials>
   <revremark>Bug fixes</revremark>
 </revision>
 <revision>
   <revnumber>0.90</revnumber>
   <date>30 Nov 1996</date>
   <authorinitials>ndw</authorinitials>
   <revremark>First beta release</revremark>
 </revision>
</revhistory>

Možnosti jsou samozřejmě ještě větší, v jejich v seznam i význam je podrobně uveden v dokumentaci. Hledejte např. seznam dětských elementů pro chapterinfo.

Struktura knihy

Existují komponenty, které člení knihu do logických celků. Typická kniha obsahuje předmluvu, jež se uzavírá do elementu preface.

Rozsáhlé knihy pak můžeme na nejvyšší úrovni dělit do do částí (part). Název každé části je opět uvozen značkou title. Při sazbě PDF je tento titulek umístěn samostatně na stránku. V případě potřeby pod něj můžeme napsat krátký text, uvozující obsah dané části. K tomu nám slouží značka partintro. Použití částí v knize je volitelné, nemusí tam být žádná.

Značka chapter pak uvozuje kapitolu knihy. Zpravidla u nich uvádíme titulek (title) a každá kapitola může opět obsahovat metainformace, tentokráte uzavřené do elementu chapterinfo. V knize je vyžadována přítomnost alespoň jedné kapitoly.

ikona
<preface>
 <title>Předmluva</title>
 <para>Text předmluvy...</para>
</preface>
<part>
 <title>První část</title>
 <partintro>Tato část se zabývá ...</partintro>
 <chapter>
  <title>První kapitola</title>
  <para>V knize je vyžadována minimálně jedna kapitola</para
 </chapter>
</part>
<part>
 <title>Druhá část část</title>
 ...
</part>

Kapitoly hlouběji dělíme do sekcí (section). Tento element je rekurzivní a sekce lze tedy zanořovat do dalších sekcí až do libovolné úrovně. Sekce opět mohou obsahovat titulek (title), podtitulek (subtitle) a případně metainformace. Pokud chceme použít sekci, která nebude dále dělena, lze to explicitně uvést elementem simplesect.

ikona
<section>
 <sectioninfo>
  <abstract><para>Abstrakt</para></abstract>
</sectioninfo>
 <title>Sekce 1</title>
 <subtitle>Podtitulek sekce 1</subtitle>
 <para>Text sekce 1.</para>

 <section>
  <title>Vnořená sekce 2</title>
  <para>Text sekce 2.</para>
 </section>
</section>

Sekce lze také zanořovat elementy sect1-sect5, které přímo definují úroveň zanoření. Při jejich vkládání nesmíme přeskočit některou úroveň v hierarchii.

ikona
K zamyšlení:

Víte jaký může nastat problém s vkládáním sekcí pomocí sect1-sect5?

Při vkládání těchto značek máme k dispozici pouze pět úrovní, další již nemůžeme přidat. Pokud bychom také v budoucnu chtěli sekce prohodit, museli bychom čísla značek přepisovat. Vhodnější je proto používat neomezující značku section u které omezení pořadí není.

Pokud potřebujeme někde uvést oddělující nečíslovaný nadpis, slouží k tomu značka bridgehead.

ikona
<sect1>
 <title>Nejvyšší úroveň</title>
 <para>Text</para>
 <bridgehead>Jenom nadpis</bridgehead>
 <para>Další odstavec</para>
 
 <sect2>
  <title>Vnořená sekce</title>
  <para>Text vnořené sekce</para>
 </sect2>
</sect1>

Další komponenty

Kniha může obsahovat věnování (dedication) a tiráž (colophon). Na konec také často uvádíme přílohy (appendix).

ikona
<book lang="cs">
 <colophon>
  <para>Tiráž knihy...</para>
 </colophon>
 <dedication>
  <para>Věnování...</para>
 </dedication>
 <chapter>
  <title>Kapitola</title>
  <para>Text kapitoly...</para>
 </chapter>
 <appendix>
  <title>Příloha 1</title>
  <para>Text přílohy.</para>
 </appendix>
 <appendix>
  <title>Příloha 2</title>
  <para>Text přílohy.</para>
 </appendix>
</book>

Příloh můžeme k dokumentu připojit libovolný počet. Každá příloha je uvozena do samostatného elementu, může obsahovat titulek a v podstatě se chová jako běžná kapitola.