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.

olulstandard

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>
olulwithtext

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>
olulwithtables

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.

olulparlabel

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>
olulhtmlnested

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>
olulhtmlcolor