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 ein 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>
textauszeichnungen
Verschiedene Textauszeichnungen

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.

fontexpansionsome
Wenn fontexpansion="some" angeschaltet ist, unterscheidet sich der umbrochene Absatz nur wenig. Rechts sind beide Absätze übereinander gelegt, grün ist der Absatz bei dem fontexpansion auf some eingestellt ist.
fontexpansionyes
Bei fontexpansion="yes" muss man etwas experimentieren, um ein gutes Maß an Streckung und Stauchung festzulegen so dass die Absätze auch »gut« aussehen. Links ist fontexpansion auf no gesetzt, bei den beiden anderen auf yes. Der rechte Absatz ist mit den Werten 5% strecken und 3% stauchen (50 und 30 bei fontstretch und fontshrink) gesetzt.

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>
marginprotrusion
Links: Komma, Punkt und Bindestrich ragen in den rechten Rand hinein. Rechts: ohne optischen Randausgleich.

Leerzeichen

Folgende Unicode-Leerzeichen werden vom speedata Publisher interpretiert:

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

Aufzählungslisten

Anstelle eines Absatzes kann auch eine Aufzählungsliste erscheinen. Diese wird mit <Ol> bzw. <Ul> für eine Liste mit Nummerierung (ordered list) und eine Liste mit Punkten (unordered list) angegeben. Die einzelnen Punkte müssen mit <Li> ausgezeichnet werden.

<PlaceObject>
  <Textblock>
    <Ol>
      <Li><Value>One</Value></Li>
      <Li><Value>Two</Value></Li>
    </Ol>
    <Ul>
      <Li><Value>One</Value></Li>
      <Li><Value>Two</Value></Li>
    </Ul>
  </Textblock>
</PlaceObject>
olul

Es gibt einen eigenen Abschnitt über 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>
nobreak1
Die Voreinstellung bei NoBreak ist, dass der Teil zusammen hängen muss.

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>
nobreak2
Hier wird per cut der Text abgeschnitten und mit dem angegebenen Text aufgefüllt.

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

url

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