Textformatierung – speedata Publisher
Description: <Textblock> und <Text> enthalten einen oder mehrere Absätze (Befehl <Paragraph>). Die eigentlichen Texte werden dort innerhalb von …

Version 5.9.2

# Textformatierung

`<Textblock>` und `<Text>` enthalten einen oder mehrere Absätze (Befehl `<Paragraph>`). Die eigentlichen Texte werden dort innerhalb von `<Value>` gekapselt. Es gibt zahlreiche Möglichkeiten, die Formatierung der Texte zu beeinflussen. Die Schalter für die Schriftschnitte wurden in Einbinden von Schriftarten vorgestellt. Mit einer ähnlichen Funktionalität gibt es die folgenden Befehle:

`<Sub>` und `<Sup>`
  Tiefgestellter und hochgestellter Text.
`<Fontface>`
  Schaltet vorübergehend auf eine andere Schriftart um.
`<Color>`
  Gibt den eingeschlossenen Text in einer anderen Farbe aus.
`<A>`
  Erzeugt einen Hyperlink.
`<HSpace>`
  Fügt einen dehnbaren Leerraum (mit oder ohne Punkte) ein.
`<U>`
  Unterstreichen.

    <PlaceObject>
      <Textblock width="11">
        <Paragraph>
          <Value>Text</Value>
          <Sub><Value>sub</Value></Sub>
          <Value> </Value>
          <Sup><Value>sup</Value></Sup>
          <Value> </Value>
          <U><Value>underline</Value></U>
          <Value> </Value>
          <Color name="green"><Value>green</Value></Color>
          <Value> </Value>
          <A href="https://www.speedata.de">
            <Value>link to the homepage</Value>
          </A>
          <HSpace leader=" . "/>
          <Value>right margin.</Value>
        </Paragraph>
      </Textblock>
    </PlaceObject>

## Mikrotypographie

Unter diesem Punkt finden sich Einstellungen, die kleine, manchmal unscheinbare Details verändern können.

### Absatzumbruch und Zeichenerweiterung

In der Voreinstellung des speedata Publishers, dürfen Zeichen ein wenig gestreckt oder gestaucht werden, damit ein Absatz besser umbrechen kann. Das tritt in der Regel nur in sehr schmalen Spalten auf, wenn zu große Leerräume zwischen den Wörtern entstehen würden. Dieses Verhalten kann man über den Befehl `<Options>` steuern.

    <Options fontexpansion="yes" />

Die folgenden Werte sind erlaubt:

`no`
  Alle Zeichen behalten ihre durch den Schriftdesigner vorgegebene Breite.
`some`
  Der Zeilenumbruch wird mit den ursprünglichen Breiten durchgeführt, nach dem Umbruch können die Zeichen in ihrer Breite etwas verändert werden, damit die Leerräume zwischen den Wörtern etwas verkleinert werden.
`yes`
  (Voreinstellung) Der Absatzumbruch wird mit verschiedenen Zeichenbreiten ausprobiert und dann das beste Ergebnis genommen.

Es gibt noch folgende Attribute bei `<Options>`, um den Grad der Zeichenerweiterung einzustellen:

`fontstretch`
  Die Angabe, um wie viel Prozent die Zeichen gestreckt werden dürfen. Angabe ist in 0,1 Prozent: ein Wert von 20 bedeutet 2%. Voreinstellung ist 40 (= 4%).
`fontshrink`
  Wie `fontstretch`, nur als Angabe der Stauchung. Voreinstellung ist 30 (= 3%).
`fontstep`
  Die Stufen, in denen der Umbruchalgorithmus die Dehnung oder Stauchung »ausprobiert«. Voreinstellung ist 10.

### Optischer Randausgleich

Mit dem Parameter `marginprotrusion` (Prozentangabe) beim Befehl `<LoadFontfile>` kann man bestimmen, wie weit bestimmte Zeichen (Komma, Punkt und Bindestrich) rechts in den Rand hineinragen. Damit kann man einen optisch ruhigeren Rand bei Blocksatz erreichen:

    <Layout
      xmlns="urn:speedata.de:2009/publisher/en"
      xmlns:sd="urn:speedata:2009/publisher/functions/en">

      <Options mainlanguage="German" />
      <LoadFontfile name="main"
                    filename="MinionPro-Regular.otf"
                    marginprotrusion="100" />

      <DefineFontfamily name="text" fontsize="10" leading="12">
        <Regular fontface="main"/>
      </DefineFontfamily>

      <Record element="data">
        <PlaceObject>
          <Textblock width="4">
            <Paragraph>
              <Value select="."/>
            </Paragraph>
          </Textblock>
        </PlaceObject>
      </Record>
    </Layout>

Die dazugehörige Datendatei (`data.xml`) ist folgende:

    <data>A wonderful serenity has taken possession of my entire
      soul, like these sweet mornings of spring which I enjoy
      with my whole heart. I am alone, and feel the charm of
      existence in this spot, which was created for the bliss of
      souls like mine. I am so happy, my dear friend, so
      absorbed in the exquisite sense of mere tranquil
      existence, that I neglect my talents.</data>

### Leerzeichen

Folgende Unicode-Leerzeichen werden vom speedata Publisher interpretiert:

Code | Name | Beispiel | Breite
--- | --- | --- | ---
`&amp;#x00A0;` | NO-BREAK SPACE | 1000 × 500 | Variabel
`&amp;#x2002;` | EN SPACE | 1000 × 500 | 1/2 em
`&amp;#x2003;` | EM SPACE | 1000 × 500 | 1 em
`&amp;#x2004;` | THREE-PER-EM SPACE | 1000 × 500 | 1/3 em
`&amp;#x2005;` | FOUR-PER-EM SPACE | 1000 × 500 | 1/4em
`&amp;#x2006;` | SIX-PER-EM SPACE | 1000 × 500 | 1/6 em
`&amp;#x2009;` | THIN SPACE | 1000 × 500 | 1/8 em
`&amp;#x200A;` | HAIR SPACE | 1000 × 500 | 1/24 em
`&amp;#x200B;` | ZERO WIDTH SPACE | 1000​×​500 | ohne Breite
(Leerzeichen) | SPACE | 1000 × 500 | Variabel

## Aufzählungslisten

Anstelle eines Absatzes kann auch eine Aufzählungsliste erscheinen: `<Ol>` erzeugt eine nummerierte Liste, `<Ul>` eine Liste mit Aufzählungszeichen; die einzelnen Punkte werden mit `<Li>` ausgezeichnet. Alle Verfahren für Aufzählungslisten, einschließlich Beispielen zu `<Ol>` und `<Ul>`, beschreibt das Kapitel Aufzählungslisten.

## Verhindern von Textumbruch

Manche Überschriften und Eigennamen sollen nicht umbrochen werden. Dafür gibt es den Befehl `<NoBreak>`, der auf verschiedene Weisen einen Umbruch unterdrückt. Ein etwas übertriebenes Beispiel ist:

    <PlaceObject>
      <Textblock width="10cm">
        <Paragraph>
          <Value>A wonderful serenity has taken possession </Value>
          <NoBreak><Value>of my entire soul, like these sweet mornings...</Value></NoBreak>
        </Paragraph>
      </Textblock>
    </PlaceObject>

Alternativ kann man durch eine Vorgabe der maximalen Breite die Schriftgröße verringern oder den Text mit Auslassungspunkten kürzen.

    <Textblock width="10cm">
      <Paragraph>
        <NoBreak maxwidth="10" reduce="cut" text="...">
          <Value>A wonderful serenity has taken possession of my entire soul, like these sweet mornings...</Value>
        </NoBreak>
      </Paragraph>
    </Textblock>

## Umbrechen von URLs

Der Befehl `<URL>` dient zum leichteren Umbrechen von URLs. Es darf vornehmlich an Schrägstrichen (/) umbrochen werden, außerdem werden keine Trennstriche eingefügt. Es wird kein Hyperlink erzeugt, dafür ist der Befehl `<A>` zuständig.

    <Layout
      xmlns="urn:speedata.de:2009/publisher/en"
      xmlns:sd="urn:speedata:2009/publisher/functions/en">

      <SetGrid nx="40" ny="10"/>
      <Trace grid="yes"/>
      <Pageformat width="90mm" height="5cm"/>
      <Record element="data">
        <PlaceObject>
          <Textblock width="35">
            <Paragraph>
              <URL><Value>https://github.com/speedata/publisher/issues</Value></URL>
            </Paragraph>
          </Textblock>
        </PlaceObject>
      </Record>
    </Layout>

ergibt

(Siehe auch https://github.com/speedata/publisher/issues/173)

#### Inhalt