10.7. Seznamy

Seznamů je v DocBooku opět několik. Každý má trošku jiný způsob použití. Všechny lze samozřejmě do sebe libovolně zanořovat, jen je třeba dbát na jejich správné uzavírání.

itemizedlist

Běžný seznam s odrážkami.

orderedlist

Číslovaný seznam.

variablelist

Seznam pojmů a definic jejich významu.

calloutlist

Seznam popisů k výpisu kódu.

glosslist

Seznam slovníkových pojmů. Slovníčky zpravidla generujeme automaticky.

simplelist

Seznam slov nebo frází.

segmentedlist

Seznam elementů uvozených nadpisem.

Výčtový a číslovaný seznam

Seznamy itemizedlist a variablelist mají stejnou syntaxi. Jejich jednotlivé položky se uvozují elementem listitem a text v něm navíc musí být obalen elementem para.

ikona
<itemizedlist mark="opencircle">
 <listitem><para>První položka</para></listitem>
 <listitem override='bullet'><para>Druhá položka</para></listitem>
 <listitem><para>Třetí položka</para>
</listitem>
</itemizedlist>

<orderedlist numeration="lowerroman">
<listitem><para>Jedna</para></listitem>
<listitem><para>Dvě</para></listitem>
<listitem><para>Tři</para></listitem>
</orderedlist>

U seznamu itemizedlist si všimněte atributů mark a override. Ty uvozují symbol před položkou seznamu. Mohou nabývat hodnot opencircle (prázdné kolečko), bullet (plné kolečko) a box (čtvereček). Zatímco atribut mark náleží k elementu itemizedlist a definuje odrážky pro všechny položky, atributem override lze změnit symbol před konkrétními odrážkami.

V číslovaném seznamu orderedlist zase uvozujeme způsob číslování atributem numeration. Ten může nabývat hodnot arabic (arabské číslice), loweralpha (malá písmena), upperalpha (velká písmena), lowerroman (malé římské číslice), upperroman (velké římské číslice).

Pokud ani jeden z těchto atributů neuvedeme, použijí se pro odrážky nebo číslování implicitní hodnoty.

Seznam pojmů a jejich významů

Tento seznam je vhodný pro vysvětlování pojmů. Pracuje tak, že vždy vysází pojem a pod něj odsazeně jeho význam. Položku seznamu musíme uvést do elementuvarlistentry a skládá se ze dvou prvků - pojmu (term) a významu daného pojmu který uzavřeme mezi známou konstrukci <listitem><para>vyznam</para></listitem>. Pojmů můžeme uvést i více najednou.Seznam může mít volitelně titulek.

ikona
<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.</para></listitem>
 </varlistentry>
</variablelist>

Pokud nechceme aby význam pojmu byl uveden až pod daným pojmem, ale vedle něj, můžeme to provést vložením procesní instrukce XML <?dbhtml list-presentation="table"?>, která zaručí že seznam bude XSL styly chápán jako tabulka a významy budou uvedeny hned vedle pojmů.

Podobně můžeme pomocí <?dbfo term-width="2cm"?> určit šířku sloupce s pojmem (v tomto případě na 2cm).

ikona
<variablelist>
<?dbhtml list-presentation="table"?>
<?dbfo term-width="2cm"?>
<title>Font Filename Extensions</title>
 <varlistentry>
  <term><filename>TTF</filename></term>
  <listitem><para>TrueType fonts.</para></listitem>
 </varlistentry>
</variablelist>

Jednoduché seznamy

Jednoduchý seznam simplelist je vhodný pro uvádění výčtů. Každou položku seznamu uzavřeme do elementu member. Výhodou tohoto seznamu je to, že jej snadno můžeme zobrazit inline do řádku i klasicky pod sebe. Za tímto účelem je zaveden atribut type elementu simplelist. Ten může nabývat hodnot horiz (horizontální seznam), inline (inline zobrazení) a nebo vert (vertikální seznam). U vertikálního a horizontálního seznamu lze atributem columns uvést počet sloupců do kterého se seznam rozloží.

ikona
<para>
<simplelist type='horiz' columns='3'>
 <member>A</member>
 <member>B</member>
 <member>C</member>
</simplelist>
</simplelist>
</para>
ikona
Úkol 10.1:

Vyzkoušejte si jakým způsobem se rozloží seznam simplelist složený z prvků A, B, C, D, E, F, G, který bude formátován inline, horizontálně se třemi sloupci a vertikálně se třemi sloupci.

Segmentovaný seznam dovoluje vypisovat položky spolu s titulky, označujícími jejich význam. Titulek uzavíráme do elementu segtitle, vlastní položky pak do seglistitem s tím, že tento element dělíme na části spadající pod jednotlivé titulky elementem seg.

ikona
<segmentedlist><title>State Capitals</title>
<?dbhtml list-presentation="list"?>
<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>

Bude vysázen jako

State Capitals
State: Alabama
Capital: Montgomery
State: Alaska
Capital: Anchorage

Pokud změníme procesní instrukci na <?dbhtml list-presentation="table"?> bude seznam vysázen takto:

State Capitals
StateCapital
AlabamaMontgomery
AlaskaAnchorage

Tato změna vzhledu se netýká dokumentů PDF, je viditelná pouze v HTML.