Textauszeichnung

Jede beliebige Textverarbeitung ermöglicht es, Textstellen fett, kursiv oder unterstrichen darzustellen, ebenso wie eine beliebige Kombination davon. Selbstverständlich ist dies auch in einem PDF möglich, aber es ist leider nicht ganz so einfach.

Fett und Kursiv

Die meisten Schriftarten bestehen aus vier einzelnen Schriften: Eine Normalschrift, eine Kursivschrift, eine Fettschrift und eine Fettkursivschrift. Um in einem Fliesstext einzelne Stellen kursiv, fett oder fettkursiv zu setzen, müssen wir also vorübergehend die Schrift umschalten, und danach wieder zurückstellen.

PDF macht es zum Glück ziemlich leicht, innerhalb einer Zeile die Schrift zu wechseln. Folgt innerhalb eines BT ET Blocks auf eine Textzeichenanweisung ein Tj, ohne das dazwischen eine Platzieranweisung wie Td oder T* vorkommt, so wird der zweite Text direkt hinter dem ersten gesetzt. Zwischen den beiden Anweisungen kann mit Tf die Schrift gewechselt werden.

Beispiel:

/F1 24 Tf
BT 72 72 Td (Ein Text mit einem ) Tj /F2 24 Tf (fetten) Tj /F1 24 Tf ( Wort.) Tj ET

Dieses Beispiel geht davon aus, das /F1 eine Normalschrift, /F2 eine Fettschrift ist. In der Praxis hängen die Fontnamen natürlich von den Einträgen im Resourcendictionary ab.

Unterstreichung

Für Unterstreichung gibt es keine offizielle Unterstützung in PDF. Statt dessen zeichnet man einfach eine Linie an die richtige Stelle. Hierbei gilt:

  • Die Liniendicke sollte 50‰ der Schriftgrösse sein.
  • Die Linie sollte 100‰ der Schriftgrösse unterhalb der Grundlinie sein.
  • Die Linie sollte horizontal vom Anfang des ersten bis zum Ende des letzten unterstrichenen Wortes reichen.

Vorsicht: Die Unterstreichung darf nicht innerhalb des Textblocks (zwischen BT und ET) vorgenommen werden.

Beispiel:

/F1 24 Tf
BT 72 72 Td (Ein Text mit einem unterstrichenen Wort.) Tj ET
q 1.2 w 277.4 69.6 m 442.8 69.6 l S Q

Die verwendete Schrift ist in diesem Fall Helvetica. Bei anderen Schriften werden die X-Koordinaten für die Linie logischerweise anders sein.

farbliche Hervorhebung

Einzelne Textstellen können durch einen Wechsel der Schriftfarbe hervorgehoben werden. Dabei geht man gleich vor, wie beim temporären Wechsel der Schrift für fetten und kursiven Text.

Vorsicht: Die Anweisungen für Gruppierung dürfen nicht innerhalb eines Textblocks verwendet werden. Daher muss die Rückstellung auf die Originalfarbe „von Hand“ erfolgen.

Beispiel:

/F1 24 Tf 0 g
BT 72 72 Td (Ein Text mit einem ) Tj 1 0 0 rg (roten) Tj 0 g ( Wort.) Tj ET

Falls man zusätzlich Unterstreichung verwendet, so sollte man nicht vergessen, auch die Linienfarbe um- und zurückzustellen.

Hoch- und Tiefgestellter Text

Dies ist ein wenig komplizierter. Wir müssen nicht nur die Schriftgrösse ändern, sondern auch die Grundlinie verschieben. Hierfür gibt es die Ts Anweisung. Sie erwartet einen Parameter mit der Anhebung (bei positiven Werten) bzw. Absenkung (bei negativen Werten) der Grundlinie in Point.

Was die Masse und Positionen betrifft, so verwendet Adobe folgende de facto Norm:

  • Die Schriftgrösse wird auf 583‰ der normalen Schriftgrösse verkleinert.
  • Die Grundlinie wird um 333‰ der normalen Schriftgrösse angehoben bzw. abgesenkt.

Beispiel:

/F1 12 Tf
BT 72 72 Td (Normal) Tj /F1 7 Tf 4 Ts (hoch) Tj /F1 12 Tf 0 Ts ( Normal) Tj /F1 7 Tf -4 Ts (tief) Tj ET

falsche Kapitälchen

Kapitälchen sind Grossbuchstaben mit reduzierter Grösse (normalerweise von der Höhe eines kleinen „x“). Sie werden manchmal in Überschriften oder zur Hervorhebung anstelle von Kleinbuchstaben verwendet.

Leider gibt es längst nicht zu allen Schriftarten Kapitälchen. Daher werden diese oft nachgebildet, indem die normalen Grossbuchstaben mit einer kleineren Schriftgrösse geschrieben werden. Dies nennt man „falsche Kapitälchen“. Das Problem hierbei ist, dass diese falschen Kapitälchen folgerichtig deutlich dünnere Linien und kürzere Zeichenabstände haben, als die Grossbuchstaben. Worte, die mit einem Grossbuchstaben beginnen, und mit falschen Kapitälchen fortfahren, sehen mitunter seltsam aus.

Generell rate ich daher vom Einsatz falscher Kapitälchen ab. Wenn es sein muss, so sollte die Schriftgrösse auf nicht weniger als 850‰ verkleinert werden. Dadurch werden die falschen Kapitälchen zwar grösser als ein „x“, aber die Unterschiede in Strichdicke und Zeichenabstand fallen nicht so sehr auf.

Beispiel:

/F1 12 Tf
BT 72 72 Td (falsche K) Tj /F1 10.2 Tf (APITAELCHEN) Tj ET

Zusatzinformationen zu den Fonts

Die meisten Fonts haben zusätzliche Informationen. Über diese ist feststellbar, welche Schriften zur selben Schriftart gehören, welche normal, kursiv, fett und fettkursiv sind, und unter Umständen auch Informationen für Unterstreichung, Hoch- und Tiefstellung.

Schriftart

Die Schriften können den Namen der Schriftart abgelegt haben, so dass sich die Schriften einer Schriftart gruppieren lassen. Der Name ist aber nicht zwingend vorhanden.

Bei Postscript Type1 ist dies ein allgemeiner Eintrag im AFM namens „FamilyName“.

Bei TrueType und OpenType ist dies ein Eintrag im „name“ Block. Plattform, Kodierung und Sprache sind gleich, wie beim betriebssystemspezifischen Schriftnamen. Der Typ ist aber 1 statt 4.

Kursivschrift

Ob eine Schrift eine Kursivschrift ist, lässt sich am Schrägungswinkel erkennen, den wir ja für den Schriftdeskriptor ermitteln mussten. Ist dieser ungleich 0, so handelt es sich um eine Kursivschrift. Ansonsten ist die Schrift gerade.

Fettschrift

Bei Postscript Type1 Schriften lässt sich leider nicht mit Sicherheit festlegen, ob eine Schrift eine Fettschrift ist. Zwar kann das AFM einen allgemeinen Eintrag namens „Weight“ haben, aber dessen Wert ist keineswegs normiert. Als Daumenregel kennzeichnen Textwerte, welche „Demi“, „Heavy“, „Bold“ oder „Black“ als Wort oder Wortbestandteil enthalten, wahrscheinlich Fettschriften. Allerdings gibt es auch Schriften mit mehreren Dickegraden.

Bei TrueType und OpenType ist es am Einfachsten, den „Mac Style“ Wert zu ermitteln. Dieser befindert sich im „head“ Block an Position 44. Es handelt sich um eine uint16 Zahl. Sie ist ungerade bei Fettschrift, und gerade bei normal dicker Schrift.

Unterstreichungsdicke und -position

Die Schrift kann eine alternative Schriftdicke und -position für die Unterstreichung festlegen.

Bei PostScript Type1 sind dies zwei allgemeine Einträge in der AFM Datei: „UnderlineThickness“ für die Liniendicke, und „UnderlinePosition“ für die Position. Beide Werte sind in Promille der Schriftgrösse.

Bei TrueType und OpenType sind dies zwei Einträge im „post“ Block. Die Dicke ist an Position 10, die Linienposition an Position 8 abgelegt. Beides sind int16 Zahlen, die anhand der Skala in Promille der Schriftgrösse umgerechnet werden müssen. Von der Linienposition muss zusätzlich die halbe Liniendicke abgezogen werden, da die Position der Oberkante statt der Strichmitte angegeben ist.

Was die Position der Linie betrifft, so ist sie immer relativ zur Grundlinie gesehen. Typischerweise ist sie negativ, da unterhalb der Grundlinie.

Grösse und Position für Hoch- und Tiefstellung

Bei TrueType und OpenType kann auch die Grösse und Position für hoch- und tiefgestellten Text festgelegt werden. Die Informationen finden sich im „OS/2“ Block und zwar an folgenden Positionen:

Position Grösse Typ Inhalt
122 Byte uint16 Grösse Tiefstellung
162 Byte uint16 Absenkung Tiefstellung
202 Byte uint16 Grösse Hochstellung
242 Byte uint16 Anhebung Hochstellung

Alle Angaben müssen anhand der Skala in Promille der Schriftgrösse umgerechnet werden. Anders als bei der Position der Unterstreichungslinie ist die Absenkung als positive Zahl abgelegt.

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
G M R A C
 
grundlagen/layout/textauszeichnung.txt · Zuletzt geändert: 2012/07/12 09:41 (Externe Bearbeitung)
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC0 1.0 Universal
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki