Aufzählungslisten
Der Publisher hat verschiedene Möglichkeiten, Aufzählungslisten zu erstellen.
Aufzählungslisten mit Ol und Ul
Nummerierte und nicht nummerierte Listen können mit <Ul>
und <Ol>
erstellt werden:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Record element="data">
<PlaceObject>
<Textblock>
<Ol>
<Li><Value>Lorem ipsum</Value></Li>
<Li><Value>dolor sit amet</Value></Li>
<Li><Value>consectetur adipisicing elit</Value></Li>
<Li><Value>sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</Value></Li>
</Ol>
</Textblock>
</PlaceObject>
<PlaceObject>
<Textblock>
<Ul>
<Li><Value>Lorem ipsum</Value></Li>
<Li><Value>dolor sit amet</Value></Li>
<Li><Value>consectetur adipisicing elit</Value></Li>
<Li><Value>sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</Value></Li>
</Ul>
</Textblock>
</PlaceObject>
</Record>
</Layout>
Diese Aufzählungslisten lassen sich nicht ineinander schachteln.
Aufzählungslisten mit Textformaten
Man kann einen linken Rand bzw. einen hängenden Einzug bei Textformaten einstellen. Damit kann man Aufzählungslisten ausgeben:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<DefineTextformat name="li" indentation="6pt" rows="-1"/>
<Record element="data">
<PlaceObject>
<Textblock textformat="li">
<Paragraph><Value>• </Value><Value select="sd:dummytext()"></Value></Paragraph>
<Paragraph><Value>• Two</Value></Paragraph>
<Paragraph><Value>• Three</Value></Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
Das funktioniert in der Praxis sehr gut. Der offensichtliche Nachteil ist, dass man ausmessen muss, wie breit der linke Rand sein soll.
Aufzählungslisten mit Tabellen
Verschachtelte Listen können über Tabellen realisiert werden, wobei man beachten muss, dass innerhalb der Tabellenzellen ja nicht umbrochen werden kann.
<Record element="data">
<PlaceObject>
<Table stretch="max">
<Columns>
<Column width="5mm"/>
<Column width="5mm"/>
<Column width="1*"/>
</Columns>
<Loop select="3" variable="i">
<Tr valign="top">
<Td>
<Paragraph>
<Value select="$i"/><Value>. </Value>
</Paragraph>
</Td>
<Td colspan="2">
<Paragraph textformat="justified">
<Value select="sd:dummytext()"/>
</Paragraph>
</Td>
</Tr>
<Loop select="3">
<Tr valign="top">
<Td></Td>
<Td><Paragraph><Value>•</Value></Paragraph></Td>
<Td><Paragraph textformat="justified">
<Value select="sd:dummytext()"/>
</Paragraph>
</Td>
</Tr>
</Loop>
</Loop>
</Table>
</PlaceObject>
</Record>
Aufzählungslisten mit Absatzetiketten
Der Befehl <Paragraph>
kann Zeichen links vor den Absatz anzeigen:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Pageformat width="100mm" height="100mm" />
<Record element="data">
<PlaceObject>
<Textblock>
<Paragraph label-left="•" label-left-distance="2mm" padding-left="4mm">
<Value>Lorem ipsum</Value>
</Paragraph>
<Paragraph label-left="•" label-left-distance="2mm" padding-left="4mm">
<Value>Lorem ipsum</Value>
</Paragraph>
<Paragraph label-left="•" label-left-distance="2mm" padding-left="4mm">
<Value>dolor sit amet</Value>
</Paragraph>
<Paragraph label-left="•" label-left-distance="2mm" padding-left="4mm">
<Value>consectetur adipisicing elit</Value>
</Paragraph>
<Paragraph label-left="•" label-left-distance="2mm" padding-left="4mm">
<Value>sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</Value>
</Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
Auch das kann für Aufzählungslisten benutzt werden. Das hat den Vorteil, dass im Befehl <Output>
Absätze auch umbrochen werden können.
Aufzählungslisten über HTML-Formatierung
Hier hat man die Möglichkeit, Listen zu schachteln und besonders zu formatieren:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Pageformat width="100mm" height="100mm" />
<Record element="data">
<PlaceObject>
<Textblock>
<Paragraph>
<Value select="." />
</Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
<data>
<ul>
<li>Lorem ipsum</li>
<li>dolor sit amet</li>
<li>consectetur adipisicing elit</li>
<li>
<ol>
<li>sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua.</li>
<li>Lorem ipsum</li>
<li>dolor sit amet</li>
</ol>
</li>
</ul>
</data>
Für die Formatierung kann man CSS-Anweisungen nutzen:
<Layout xmlns="urn:speedata.de:2009/publisher/en"
xmlns:sd="urn:speedata:2009/publisher/functions/en">
<Pageformat width="100mm" height="100mm" />
<Stylesheet >
ul {
list-style: none;
padding-left: 1em;
}
ul li::before {
content: "\25e6";
color: red;
display: inline-block;
width:1em;
}
</Stylesheet>
<Record element="data">
<PlaceObject>
<Textblock>
<Paragraph>
<Value select="." />
</Paragraph>
</Textblock>
</PlaceObject>
</Record>
</Layout>
mit den folgenden Daten:
<data>
<ul>
<li>Lorem ipsum</li>
<li>dolor sit amet</li>
<li>consectetur adipisicing elit</li>
</ul>
</data>