Ein Makropaket für die gebrochenen Schriften

Walter Schmidt

                  ⟨w-a-schmidt@arcor.de⟩

Version: v1.3 – 2003/01/08

Inhaltsverzeichnis

1 Gebrochene Schriften und L^{A}TEX 1

2 Das Makropaket yfonts 2 2.1 Unterstützte Fonts . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Schriftauswahl . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 Sonderzeichen . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3.1 Umlaute . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3.2 Scharfes s . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3.3 Langes und rundes s . . . . . . . . . . . . . . . . . . 4 2.3.4 Anführungszeichen . . . . . . . . . . . . . . . . . . . 4 2.3.5 Sonstige Sonderzeichen . . . . . . . . . . . . . . . . . 4

2.4 Zeilenabstand . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.5 Verwendung der Initialen . . . . . . . . . . . . . . . . . . . 5 2.6 Bekannte Fehler und Mängel . . . . . . . . . . . . . . . . . 6

3 Implementierung 6 3.1 Das Interface zu den Schriften . . . . . . . . . . . . . . . . . 6 3.2 Die Makros . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1 Gebrochene Schriften und L^{A}TEX

Im deutschen Sprachraum waren vom Mittelalter an bis ins 20. Jahrhundert die sogenannten gebrochenen Schriften weit verbreitet. Innerhalb der Gruppe der gebrochenen Schriften unterscheidet man drei Untergruppen, nämlich Gotisch, Schwabacher und Fraktur; manchmal werden aber auch alle drei pauschal als Frakturschriften bezeichnet. Zur korrekten Verwendung der gebrochenen Schriften und zu ihrer Geschichte sei auf die am Schluß aufgeführte Literatur verwiesen. Für die Benutzung mit TEX und L^{A}TEX hat Yannis Haralambous derartige Schriften in allen drei Stilen unter Anlehnung an historische Vorbilder entworfen, dazu einen Satz an barocken Initialen. Eine ausführliche Beschreibung dieser Fonts findet man in [1] und [2].

Eine Eigenheit der gebrochenen Schriften sind ihre zahlreichen Ligaturen und einige Sonderzeichen, die in der Antiqua nicht vorkommen, während andere Sonderzeichen oder Akzente fehlen. Die Codierung entsprechender Fonts unterscheidet sich also zwangsläufig von üblichen TEX-Schriften. Deshalb war die Benutzung gebrochener Schriften in L^{A}TEX früher nicht einfach. Inzwischen unterstützt L^{A}TEX jedoch unterschiedliche Codierungen; damit ist es möglich, auch die altdeutschen Schriften in das Font-Auswahlschema von L^{A}TEX (NFSS) zu integrieren.

2 Das Makropaket yfonts

Das im folgenden beschriebene Makropaket yfonts ermöglicht den Zugriff auf Gotisch, Schwabacher, Fraktur und Initialen in L^{A}TEX 2εund verträgt sich mit der deutschen Sprachanpassung german.sty. Es wird auf die übliche Weise geladen:

     \usepackage{yfonts}

und kennt eine Option,

     \usepackage[varumlaut]{yfonts}

deren Bedeutung in Abschnitt 2.3.1 beschrieben ist.

2.1 Unterstützte Fonts

Als Voreinstellung werden folgende Fonts unterstützt:

ygoth  Gotisch
yswab  Schwabacher
yfrak  Fraktur
ysmfrak Fraktur (Variante)
yinitas Initialen

Im CTAN findet man die Quellen für diese Schriften in den Unterverzeich-

nissen von fonts/gothic.

Achtung:

Die METAFONT-Quellen der Schrift ygoth sind fehlerhaft. Wenn man METAFONT anweist, diese Fehler bei der Bearbeitung zu ignorieren, entsteht normalerweise trotzdem ein brauchbares Ergebnis. In sehr wenigen Fällen wurden Probleme auch mit den anderen Schriften beobachtet, offenbar abhängig vom mode und der Vergößerung.

2.2 Schriftauswahl

\gothfamily Das Makropaket kennt zur Schriftauswahl die neuen Befehle \gothfamily,

\swabfamily
\frakfamily
\initfamily

\swabfamily, \frakfamily und \initfamily, die innerhalb einer Gruppe

Gotisch, Schwabacher, Fraktur oder Initialen aktivieren.

Die Schriftartbefehle gibt es auch in einer Variante mit Argument:

\textgoth
\textswab
\textfrak
\textinit

\textgoth{...}, \textswab{...}, \textfrak{...} und \textinit{...}.

Die so angesprochenen Initialen stehen auf der Grundlinie. In den Absatz hineingezogene Initialen sind in Abschnitt 2.5 beschrieben.

Befehle zur Größensteuerung wirken auch auf die altdeutschen Schriften. Die definierten Schriftgrade entsprechen dem üblichen Raster von 10 pt, 10.95 pt, 12 pt, … bis 24.88 pt.

Keiner der Fonts ist in mehreren series oder shapes verfügbar; ein Befehl wie \bfseries hat also keine Wirkung. Man kann aber – das ist durchaus vorbildgerecht – innerhalb eines in Fraktur geschriebenen Textes Hervorhebungen oder Überschriften in Schwabacher setzen.

Für die Frakturschrift wird derjenige Font benutzt, der im Makro

\frakdefault \frakdefault angegeben ist. Die Voreinstellung ist yfrak. Es gibt auch eine Variante davon, ysmfrak, die sich durch geringere Strichstärken und einen etwas größeren Abstand der einzelnen Zeichen unterscheidet. Nach

     \renewcommand{\frakdefault}{ysmfrak}

wird als Frakturschrift ysmfrak benutzt.

\gothdefault  Analog dazu gibt es auch die Makros \gothdefault, \swabdefault und
\swabdefault
\initdefault

\initdefault für Gotisch (ygoth), Schwabacher (yswab) und die Initialen (yinitas). Ein Abgehen von den Voreinstellungen ist selbstverständlich nur dann sinnvoll, wenn passende Fonts und fd-Dateien verfügbar sind!

2.3 Sonderzeichen

2.3.1 Umlaute

Die Umlaute sind in den Fonts als Ligaturen definiert: "a Ohne das Makroapket german führt die Eingabe von "a zum üblichen *a Umlaut mit Pünktchen, und *a ergibt eine Variante, bei der statt der Punk-

te ein winziges e auf das Grundsymbol gesetzt wird.

Das Paket yfonts sorgt dafür, daß der normale Akzentbefehl \" den Umlaut mit Pünktchen erzeugt; wenn es aber mit der Option varumlaut geladen wurde, ergibt er die Variante mit dem aufgesetzten e.

Lädt man zusätzlich das dem Makropaket german, dann hat die Eingabe von z. B. "a stets die gleiche Wirkung wie \"a, ist also abhängig von der Option. Die *-Ligaturen sind dabei weiterhin vorhanden.

In der gotischen Schrift ist die Umlaut-Variante nicht verfügbar; die Option hat hier keine Wirkung.

2.3.2 Scharfes s

sz Das scharfe s ist sowohl als Ligatur sz wie auch als Ligatur "s in den "s Fonts vorhanden. Mit yfonts.sty wird auch der TEX-Befehl \ss erkannt.

Benutzt man zusätzlich das german-Paket, wird "s ebenfalls richtig interpretiert.

2.3.3 Langes und rundes s

Das in den gebrochenen Schriften für eine korrekte Typographie benötigte sogenannte Schluß-s wird, genauso wie auch im Makropaket oldgerm, als

s: Ligatur s: eingegeben.

2.3.4 Anführungszeichen

In den Schriften Schwabacher und Fraktur sind die doppelten deutschen Anführungszeichen auch als Ligatur der entsprechenden amerikanischen Quotes vorhanden. Die Eingabe von ``Zitat'' ist also gleichwertig mit der Ersatzdarstellung entsprechend german.sty.

Die Anführungszeichen der Frakturschriften yfrak und ysmfrak unterscheiden sich nicht von der Computer-Modern Antiqua – das ist kein Fehler, sondern es entspricht dem Stil der Breitkopf-Fraktur, die als Vorbild diente. Spätere Schriften hatten Anführungszeichen, die ungefähr dem Fraktur-Komma ähnelten.

Leider fehlt in allen Schriften das ”einfache öffnende“ Anführungszeichen, das mit dem Paket german als \glq eingegeben wird. Stattdessen wird das entsprechende Zeichen aus CM Roman benutzt, was zumindest bei der Frakturschrift natürlich nicht auffällt.

2.3.5 Sonstige Sonderzeichen

Sonstige Sonderzeichen und Akzente werden mit den üblichen L^{A}TEX-Befeh-len oder Befehlen aus german.sty eingegeben. Falls sie in den altdeutschen Fonts nicht vorhanden sind, wird automatisch ein Ersatz aus einer anderen Schrift genommen (Ausnahmen siehe Abschnitt 2.6) und eine entsprechende Warnung angezeigt.

\etc Ein zusätzliches Sonderzeichen ist \etc, womit ein früher weithin übliches Kurzzeichen fur ”usw.“ erzeugt wird. Dieses Zeichen ist nur in der Frakturschrift enthalten.

2.4 Zeilenabstand

Die gebrochenen Schriften von Y. Haralambous dürfen bei gleicher Nenngröße viel enger gesetzt werde als Antiqua. So paßt zu einer Fraktur oder Schwabacher mit einer Nenngröße von 12 pt ein Zeilenabstand von

12 dd. Das ist ein ”klassischer“ Wert, den man in vielen alten Büchern

\fraklines findet. Das Paket definiert den Befehl \fraklines, der den Zeilenschritt \baselineskip in genau diesem Verhältnis zur laufenden Schriftgröße einstellt. Die Wirkung des Befehls beschränkt sich auf die laufende Gruppe. Bei einem Wechsel der Schriftgröße muß der Befehl fraklines wiederholt werden!

Für Gotisch ist der geeignete Zeilenabstand im Vergleich zur Nenngröße der Schrift noch erheblich geringer; eine entsprechende Unterstützung ist hier aber nicht vorgesehen. ygoth ist nach Vorbildern des 15. Jh. gestaltet, so daß für eine vorbildgerechte Typographie sowieso zahlreiche weitere Anpassungen nötig sind. Das vorliegende Paket stellt nur das NFSS-Interface zur Verfügung.

2.5 Verwendung der Initialen

In den Absatz hineingezogene Initialen kann man mit dem Befehl \yinipar

\yinipar erzeugen. Er lehnt sich an einen Vorschlag von Kopka [2] an. Ein Absatz mit Initiale sieht dann folgendermaßen aus:

      {\frakfamily\fraklines
      \yinipar{D}ie Orgel, der Fl"ugel, das: Fortepiano und das:
      Clavicord sind die gebr"auchlichsten Instrumente zum ...
      \par}

Diese Initialen stehen auf der Grundlinie der vierten Zeile des Absatzes, und sie schließen genau mit der Oberkante der ersten Zeile ab, wenn man den Zeilenabstand wie oben beschrieben mit \fraklines einstellt.

\yinipar beginnt einen neuen Absatz (wie \par) und hebt einen evtl. Absatzeinzug auf (wie \noindent). Wichtig ist, daß das Ende des Absatzes (\par oder Leerzeile) innerhalb der Gruppe steht, wo \fraklines noch gültig ist!

Die Initialen kennen selbstverständlich nur Großbuchstaben und keine Sonderzeichen. Auch Umlaute sind in diesem Zeichensatz nicht enthalten; es ist üblich, stattdessen den Vokal als Initiale und nachfolgend ein ”e“ zu setzen.

Der Befehl \yinipar setzt voraus, daß als Font für die Initialen tatsächlich yinitas gewählt ist, d. h., daß die Voreinstellung für \initfamily nicht verändert wurde. (Eine andere Schrift mit gleicher Größe könnte jedoch verwendet werden.)

\yinitpar Der Befehl \yinitpar , der vor Version 1.2 in diesem Paket vorhanden war, existiert weiterhin. Er hat die gleiche Wirkung wie \yinipar, beginnt aber nicht automatisch einen neuen Absatz und hebt einen vorhandenen \parindent nicht selbst auf.

2.6 Bekannte Fehler und Mängel

• Das Symbol \etc fehlt in der Schwabacher, obwohl es in der zugehörigen Codierung LY definiert ist. Beim Versuch, dieses Zeichen anzusprechen, erhält man keinen Fehler, sondern nur eine Warnung in der Protokolldatei.

• In allen Fonts fehlen einige der folgenden ASCII-Symbole; ein automatischer Ersatz durch Zeichen aus anderen Schriften ist hier nicht

möglich: ; ` [ ] / * @ & %

Für die üblichen Anwendungen altdeutscher Schrift sollte das kein Problem darstellen.

• Bei der Verwendung der deutschen Silbentrennmuster zusammen mit gebrochenen Schriften werden schon allein wegen der zwei unterschiedlichen Varianten des Buchstabens ”s“ einige Trennstellen nicht erkannt. Normalerweise bekommt man trotzdem ein brauchbares Ergebnis, solange Wortwahl und Rechtschreibung nicht zu sehr vom heute Üblichen abweichen.

3 Implementierung

Das Makropaket setzt mindestens L^{A}TEX 2ε in der Version 1994/12/01 voraus, denn es macht Gebrauch von der vollständigen Unterstützung unterschiedlicher Font-Codierungen:

1 ⟨∗package⟩

2 \NeedsTeXFormat{LaTeX2e}[1994/12/01]

Die Option varumlaut steuert, ob die Umlaute mit Pünktchen oder in der Variante mit einem aufgesetzten e erscheinen:

3 \newif\ifyf@v
4 \DeclareOption{varumlaut}{\yf@vtrue}
5 \ProcessOptions\relax

3.1 Das Interface zu den Schriften

Wir definieren lokale Codierungen für Fraktur und Schwabacher …

6 \DeclareFontEncoding{LY}{}{}
7 \DeclareFontSubstitution{LY}{yfrak}{m}{n}

… und Gotisch:

8 \DeclareFontEncoding{LYG}{}{}
9 \DeclareFontSubstitution{LYG}{ygoth}{m}{n}

Die Schriftfamilie ”Gotisch“:

10 \DeclareFontFamily{LYG}{ygoth}{}
11 \DeclareFontShape{LYG}{ygoth}{m}{n}{%
12 <10><10.95><12><14.4><17.28><20.74><24.88>ygoth}{}

Die Schriftfamilie ”Fraktur“:

13 \DeclareFontFamily{LY}{yfrak}{}
14 \DeclareFontShape{LY}{yfrak}{m}{n}{%
15 <10><10.95><12><14.4><17.28><20.74><24.88>yfrak}{}

16 %

17 \DeclareFontFamily{LY}{ysmfrak}{}
18 \DeclareFontShape{LY}{ysmfrak}{m}{n}{%
19 <10><10.95><12><14.4><17.28><20.74><24.88>ysmfrak}{}

Die Schriftfamilie ”Schwabacher“:

20 \DeclareFontFamily{LY}{yswab}{}
21 \DeclareFontShape{LY}{yswab}{m}{n}{%
22 <10><10.95><12><14.4><17.28><20.74><24.88>yswab}{}

Wir benutzen die von Andreas Schrell korrigierten Initialen yinitas, denn die ursprüngliche Version yinit wies zahlreiche Ungereimtheiten auf.

Die Codierung ist U (undefiniert), denn die Initialen gibt es nur als Großbuchstaben, und es werden keine spezifischen Befehle für diesen Zeichensatz definiert.

Die Initialen werden in den normalen Vergrößerungsstufen benutzt, also 1, 1.095, 1.2 usw. Mit ihrer Entwurfsgröße von (1392/36) pt ergeben sich daraus die unten eingesetzten effektiven Größen. Bei einem klassischen Zeilenabstand, wie ihn \fraklines einstellt, sind diese Initialen dann wunderbarerweise exakt so groß, daß sie von der Oberkante der ersten bis zur Unterkante der vierten Zeile des Absatzes reichen!

23 \DeclareFontFamily{U}{yinitas}{}
24 \DeclareFontShape{U}{yinitas}{m}{n}{%
25 <10>sfixed*yinitas%
26 <10.95>sfixed*[42.34]yinitas%
27 <12>sfixed*[46.39]yinitas%
28 <14.4>sfixed*[55.68]yinitas%
29 <17.28>sfixed*[66.82]yinitas%
30 <20.74>sfixed*[80.19]yinitas%
31 <24.88>sfixed*[96.20]yinitas%
32 }{}

3.2 Die Makros

Es werden alle für diese Codierungen spezifischen Befehle definiert; zunächst für die gotische Schrift:

33 \DeclareTextSymbol{\textemdash}{LYG}{124}
34 \DeclareTextSymbol{\textendash}{LYG}{123}
35 \DeclareTextComposite{\"}{LYG}{a}{91}
36 \DeclareTextComposite{\"}{LYG}{o}{93}
37 \DeclareTextComposite{\"}{LYG}{u}{94}
38 \DeclareTextComposite{\"}{LYG}{e}{92}
39 \DeclareTextSymbol{\ss}{LYG}{25}
40 \DeclareTextCommand{\SS}{LYG}{SS}

41 \DeclareTextSymbol{\i}{LYG}{16}
42 \DeclareTextSymbol{\j}{LYG}{17}
43 \DeclareTextSymbol{\textquotedblleft}{LYG}{95}
44 \DeclareTextCommand{\grqq}{LYG}{\textquotedblleft}
45 \DeclareTextSymbol{\textquotedblright}{LYG}{34}

Die Makros für Fraktur und Schwabacher:

46 \DeclareTextCommand{\"}{LY}[1]{\UseTextAccent{OT1}{\"}{#1}}
47 \DeclareTextAccent{\'}{LY}{19}
48 \DeclareTextAccent{\.}{LY}{95}
49 \DeclareTextAccent{\=}{LY}{22}
50 \DeclareTextAccent{\^}{LY}{94}
51 \DeclareTextAccent{\`}{LY}{18}
52 \DeclareTextAccent{\~}{LY}{126}
53 \DeclareTextAccent{\H}{LY}{125}
54 \DeclareTextAccent{\u}{LY}{21}
55 \DeclareTextAccent{\v}{LY}{20}
56 \DeclareTextAccent{\r}{LY}{23}

57 %

58 \DeclareTextSymbol{\textemdash}{LY}{124}
59 \DeclareTextSymbol{\textendash}{LY}{123}

60 %

61 \ifyf@v
62 \DeclareTextComposite{\"}{LY}{a}{137}
63 \DeclareTextComposite{\"}{LY}{o}{153}
64 \DeclareTextComposite{\"}{LY}{u}{158}
65 \DeclareTextComposite{\"}{LY}{e}{144}
66 \else
67 \DeclareTextComposite{\"}{LY}{a}{138}
68 \DeclareTextComposite{\"}{LY}{o}{154}
69 \DeclareTextComposite{\"}{LY}{u}{159}
70 \DeclareTextComposite{\"}{LY}{e}{145}
71 \fi

72 %

73 \DeclareTextSymbol{\textsection}{LY}{60}
74 \DeclareTextSymbol{\i}{LY}{16}
75 \DeclareTextSymbol{\j}{LY}{17}
76 \DeclareTextSymbol{\ss}{LY}{26}
77 \DeclareTextSymbol{\etc}{LY}{201}

78 %

79 \DeclareTextSymbol{\textquotedblleft}{LY}{34}
80 \DeclareTextCommand{\grqq}{LY}{\textquotedblleft}
81 %\DeclareTextSymbol{\quotesinglbase}{LY}{13}% missing!
82 \DeclareTextSymbol{\quotedblbase}{LY}{92}
83 \DeclareTextSymbol{\textquoteleft}{LY}{`\`}
84 \DeclareTextCommand{\grq}{LY}{\textquoteleft}
85 \DeclareTextSymbol{\textquoteright}{LY}{`\'}

86 %

87 \DeclareTextCommand{\SS}{LY}
88 {SS}

Die folgenden Makros verweisen auf die Fonts, die als Voreinstellung benutzt werden:

 90 \def\gothdefault{ygoth}
 91 \def\swabdefault{yswab}
 92 \def\frakdefault{yfrak}
 93 \def\initdefault{yinitas}

Die Kommandos zur Schriftumschaltung werden unter Verwendung des Befehls \usefont definiert, weil in diesen Familien keine weiteren Schriftschnitte (series, shape) vorhanden sind:

 94 \def\gothfamily{\usefont{LYG}{\gothdefault}{m}{n}}
 95 \def\swabfamily{\usefont{LY}{\swabdefault}{m}{n}}
 96 \def\frakfamily{\usefont{LY}{\frakdefault}{m}{n}}
 97 \def\initfamily{\usefont{U}{\initdefault}{m}{n}}

98 %

 99 \DeclareTextFontCommand{\textgoth}{\gothfamily}
100 \DeclareTextFontCommand{\textswab}{\swabfamily}
101 \DeclareTextFontCommand{\textfrak}{\frakfamily}
102 \DeclareTextFontCommand{\textinit}{\initfamily}

Ein Makro zur Benutzung der Initialen: \yinipar beginnt einen neuen Absatz, unterdrückt einen evtl. definierten Einzug und ruft seinerseits

 \yinitpar auf.
103 \newcommand{\yinipar}[1]{\par\noindent\yinitpar{#1}}

\yinitpar setzt – nach einem Vorschlag von Kopka [2] – die Initiale auf die Grundlinie der vierten Zeile:

104 \newcommand{\yinitpar}[1]{\setbox0=\hbox{\textinit{#1}}%
105 \hangindent=\wd0\hangafter=-4\advance\hangindent by .25em
106 {\dimen@=-3\baselineskip
107 \dimen@=\baselinestretch\dimen@
108 \hskip-\wd0 \hskip-.25em
109 \raisebox{\dimen@}[0pt][0pt]{\unhbox0}\hskip.25em}}

Der Befehl \fraklines stellt den Zeilenabstand so ein, daß sein Wert in dd dem aktuellen Schriftgrad in pt entspricht:

110 \def\fraklines{\baselineskip\f@size dd\relax}

111 ⟨/package⟩

Die vorliegende Beschreibung …

… wird erzeugt, indem man die Datei yfonts.dtx mit L^{A}TEX bearbeitet. Diese Datei enthält folgende Docstrip-Module:

Modul: Inhalt:
package Makropaket yfonts
driver  Treiber für Beschreibung

Der nächste Befehl verhindert, daß die abschließende Character Table in die Docstrip-Module übernommen wird:

112 \endinput

Literatur

[1] Haralambous, Y.: Typesetting old german.

CTAN: macros/latex/packages/mfnfss/oldgerm.dtx

[2] Kopka, H.: LaTeX – Ergänzungen.

Addison-Wesley Deutschland, Bonn 1995, Kapitel 2.2.3.

[3] Weichert, J.: Druckschriften.

Bruckmann, München 1991.

[4] DUDEN – Rechtschreibung der deutschen Sprache und der Fremd-

wörter. Bibliographisches Institut, Mannheim 1986, Kapitel ”Richtlinien für den Schriftsatz“.