Kurzbeschreibung

 german.sty und ngerman.sty (Version 2.5)

Bernd Raichle

8. Juli 1998 (für die Version 2.5e)

Zusammenfassung

Beim 6. Treffen der deutschen TEX-Interessenten in Münster (Oktober 1987) wurde Einigung über ein ”Minimal Subset von einheitlichen deutschen TEX-Befehlen“ erzielt, das seitdem an allen Installationen von TEX und L^{A}TEX als Makropaket ”german“ zur Verfügung stehen und für Texte in deutscher Sprache verwendet werden soll. Damit wird erreicht, daß alle TEX- und L^{A}TEX-Dokumente, die diese Befehle enthalten, problemlos von einem Rechner zum anderen übertragen werden können. In der Zwischenzeit wurde das Makropaket ”ngerman“ ergänzt, das die neue Rechtschreibung unterstützt.

Inhaltsverzeichnis

1 Allgemeines 2

2 Verwendung 2 2.1 Laden der Makropakete je nach Rechtschreibung . . . . . . . 2 2.2 Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2.1 Umlaute, Tremata und der Buchstabe ß . . . . . . . . 3 2.2.2 Zusammentreffen von drei gleichen Konsonanten und

”ck“ bei Silbentrennung . . . . . . . . . . . . . . . . . 4 2.2.3 Anführungszeichen . . . . . . . . . . . . . . . . . . . . 4 2.2.4 Trennhilfen für die automatische Silbentrennung … 5 2.2.5 Befehle zur Sprachauswahl . . . . . . . . . . . . . . . 7

2.3 Beschränkungen und bekannte Fehler . . . . . . . . . . . . . . 8 2.4 Wohin melde ich Fehler? . . . . . . . . . . . . . . . . . . . . . 12

3 Installation 13 3.1 Vorbereitungen für Benutzer . . . . . . . . . . . . . . . . . . . 13 3.2 Vorbereitungen für TEX-Administratoren . . . . . . . . . . . 13

3.2.1 Installation der Makropakete . . . . . . . . . . . . . . 14 3.2.2 Installation der Trennmuster . . . . . . . . . . . . . . 14

4 Sonstiges 18 4.1 Geschichtliches . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2 Verfügbarkeit der Makropakete . . . . . . . . . . . . . . . . . 19 4.3 TEX 2.x vs. TEX 3.x und die Style-Option ”german“ . . . . . 19 4.4 Änderungen seit Version 2.0 (Oktober 1987) . . . . . . . . . . 20

\begin{matrix}c \\ ◯ \end{matrix} 1998 B. Raichle 1

1 Allgemeines

Die Makropakete ”german“ und ”ngerman“ dienen mehreren Zwecken:

▷ Sie aktivieren die der deutschen Sprache zugeordneten Silbentrennmuster.

▷ Der deutsche Schriftsatz weist einige Besonderheiten auf, die in TEX durch neue Makros und verschiedene Änderungen unterstützt und dem Benutzer angeboten werden können. Beispiele sind die Makros für die unterschiedlichen Anführungszeichen und die Änderung des Umlautmakros für OT1-codierte Schriften.

▷ Zur Vereinfachung und Standardisierung der Eingabe von Umlauten und des Buchstabens ß wird die Kurznotation "x für Rechner eingeführt, die die Eingabe dieser Zeichen nicht direkt erlauben. Heutzutage unterstützen die meisten Rechnersysteme die direkte Eingabe und Anzeige von Umlauten, jedoch ist die Kurznotation weiterhin als Quasi-Standard zum Austausch von TEX- und L^{A}TEX-Dokumenten sinnvoll und für deutschsprachige Texte weit verbreitet.

▷ Das Umschalten zwischen den Sprachen Deutsch, Englisch und Französisch wird rudimentär unterstützt.

Je nachdem, ob ein deutschsprachiger Text in alter oder neuer Rechtschreibung verfaßt ist, müssen für TEX unterschiedliche Silbentrennmuster benutzt werden; außerdem werden bestimmte Makros nur für Sonderfälle der ”alten“ Silbentrennung benötigt. Dies wird berücksichtigt, indem für die alte Rechtschreibung das Paket ”german“, für die neue aber das Paket ”ngerman“ zur Verfügung steht. Wo im Folgenden von ”german“ die Rede ist, sind beide Pakete gemeint; auf Unterschiede wird explizit hingewiesen.

2 Verwendung

2.1 Laden der Makropakete je nach Rechtschreibung

Je nachdem, ob ein deutschsprachiger Text nach der traditionellen oder der ”neuen“ Rechtschreibung verfaßt ist, muß entweder das Paket ”german“ oder das Paket ”ngerman“ benutzt werden.

L^{A}TEX: Mit L^{A}TEX (genauer: L^{A}TEX 2ε) wird das Makropaket mit

     \usepackage{german}

oder

     \usepackage{ngerman}

geladen. Momentan haben die Pakete keine eigenen Optionen und werten auch keine Dokumentenklassenoptionen aus.

L^{A}TEX 2.09: Mit der alten L^{A}TEX-Version oder im L^{A}TEX 2.09-Kompatibi-litätsmodus von L^{A}TEX 2ε wird das Paket als Style-Option innerhalb des optionalen Arguments des \documentstyle-Befehls, beispielsweise mit

     \documentstyle[11pt,german]{article}

angegeben.

Plain-TEX: Unter Plain-TEX wird das Paket als gewöhnliche Makrodatei mit dem TEX-Befehl

     \input german.sty

dazugeladen.

2.2 Befehle

Der beim 6. Treffen der deutschen TEX-Interessenten in Münster festgelegte Befehlssatz wurde nachträglich um einige Befehle erweitert. Diese Erweiterungen werden zur Kenntlichmachung in der folgenden Liste mit einem † versehen.

2.2.1 Umlaute, Tremata und der Buchstabe ß

▷ \"a ergibt ein ”a“ mit einem Trema. Das Paket ”german“ definiert dieses Makro so um, daß bei Verwendung von OT1-codierten Schriften die Umlautpunkte etwas nach unten verschoben werden (Original: ä, mit ”german“: ä).

▷ "a als Kurzform für \"a (Umlaute, wie ä) – ebenso für die Vokale o und u und die entsprechenden Großbuchstaben.

▷ "e und "i für ein e und i mit Trema.

▷ "s als Kurzform für \ss (scharfes s: ß), "S^{†} ergibt ”SS“, "z^{†} und "Z^{†} kann für ß bzw. SZ verwendet werden, falls man Mißverständnisse bei der Verwendung in großgeschriebenen Wörtern vermeiden möchte.

Verwendungsbeispiele

sch"on  ergibt:  schön
sch\"on  ergibt:  schön (statt: schön)
Citro"en  ergibt:  Citroën
Stra"se Ma"ze  ergibt:  Straße Maße
STRA"SE MA"ZE  ergibt:  STRASSE MASZE

Anmerkungen: Die Befehle für Umlaute und scharfes s sind so definiert, daß auch in Silben vor und nach dem Befehl die automatische Silbentrennung funktioniert. Dabei kann TEX jedoch nicht mehr alle oder eventuell falsche Trennstellen finden (Beispiel: übert-ra-gen statt über-tra-gen). Diese fehlerhaften Trennungen treten bei der Verwendung von T1-kodierten Schriften, wie beispielsweise den EC-Schriften, die man unter L^{A}TEX 2ε ohne große Anpassungen verwenden kann, nicht auf. TEXs Trennalgorithmus kann Trennstellen prinzipbedingt nicht 100%ig fehlerfrei finden. Deshalb erhalten Sie, unabhängig von der verwendeten Schrift, immer einige, wenn auch nur sehr wenige fehlerhafte Worttrennungen.

2.2.2 Zusammentreffen von drei gleichen Konsonanten und ”ck“ bei Silbentrennung

▷ "ck für ”ck“, das als ”k-k“ getrennt wird.

▷ "ff für ”ff“, das als ”ff-f“ getrennt wird – auch für die anderen relevanten Konsonanten l, m, n, p, r und t.

Diese Befehle sind nur mit der alten Rechtschreibung notwendig. Regel 204 der ”Richtlinien zur Rechtschreibung …“ [Duden, Bd. 1] bestimmte: Treffen bei Wortbildungen drei gleiche Konsonanten zusammen, dann setzt man nur zwei, wenn ein Vokal folgt. Bei Silbentrennung tritt der dritte Konsonant wieder ein. ck wird nach Regel 179 bei der Silbentrennung in k-k aufgelöst.

Verwendungsbeispiele:

Dru"cker  ergibt:  Drucker bzw. Druk-ker
Ro"lladen  ergibt:  Rolladen bzw. Roll-laden
Bettuch  ergibt:  Bettuch bzw. Bet-tuch
Be"ttuch  ergibt:  Bettuch bzw. Bett-tuch

Anmerkungen: Da man diese besonderen Fälle der Silbentrennung nur durch den TEX-Befehl \discretionary als Trennausnahmen realisieren kann, wird dadurch die Trennung in den restlichen Wortteilen und die Ligaturbildung um diese Konsonanten beeinflußt.

Neue Rechtschreibung: Mit der neuen Rechtschreibung wird das ”ck“ nicht mehr in ”k-k“ getrennt, und Dreifachkonsonanten werden immer ausgeschrieben. Im Paket ”ngerman“ haben diese Befehle deshalb eine geänderte Funktion. Sollten sie hier irrtümlich benutzt werden, dann wird diejenige Ausgabe erzeugt, die offensichtlich gemeint ist, also ein ”ck“ mit einer Trennstelle davor oder die drei Konsonanten; eine entsprechende Warnung wird ausgegeben.

2.2.3 Anführungszeichen

▷ "` oder \glqq für untere und "' oder \grqq für obere ”deutsche Anführungszeichen“ (”Gänsefüßchen“).

▷ \glq für untere und \grq für obere ’halbierte Anführungszeichen‘ (bitte Anmerkungen zur Verwendung beachten!).

▷ "< oder \flqq für linke und "> oder \frqq für rechte ^{≪}Anführungszeichen^{≫} in der französischen Form (^{≪} guillemets^{≫}).

▷ \flq für linke und \frq für rechte ^{<}halbierte Anführungszeichen^{>} in der französischen Form,

▷ \dq zum Ausdrucken des Doublequote-Zeichens (").

In [Duden, Bd. 1] findet man: Im deutschen Schriftsatz werden vornehmlich die Anführungszeichen ”…“ und ^{≫}…^{≪} angewendet. Die französische Form ≪… ^{≫} ist im Deutschen weniger gebräuchlich; in der Schweiz hat sie sich für den Antiquasatz eingebürgert. Die Regeln 10ff ergänzen diese Aussagen durch: Eine Anführung in einer Anführung wird durch halbe Anführungszeichen deutlich gemacht. In französischen Texten ist hinter dem öffnenden und vor dem schließenden ein zusätzlicher Leerraum einzufügen und es werden keine halben Anführungszeichen verwendet.

Verwendungsbeispiele:

"`Ja, bitte!"'  ergibt:  ”Ja, bitte!“

     "`Sag' doch nicht immer \glq Ja, bitte!{}\grq!"'

ergibt: ”Sag’ doch nicht immer ’Ja, bitte!‘!“

">Ja, bitte!"<  ergibt:  ^{≫}Ja, bitte!^{≪}

     ">Sag' doch nicht immer \frq Ja, bitte!\flq!"<

ergibt: ^{≫}Sag’ doch nicht immer ^{>}Ja, bitte!^{<}!^{≪}

     "<\,Merci bien\,!\,"> ergibt:  ^{≪} Merci bien !^{≫}

Anmerkungen: Folgt \grq auf ein Ausrufe- oder Fragezeichen, so sollte man zwischen diesen beiden Zeichen, wie im Beispiel gezeigt, ein leeres Klammerpaar {} oder {\kern0pt} einfügen, um die Ligaturen !` (¡) bzw. ?` (¿) zu verhindern, die sonst bei Verwendung von T1-kodierten Schriften gebildet würden.

Für die Realisierung der Anführungszeichen existiert keine Lösung, die uneingeschränkt für alle Schriften verwendbar wäre. Bei der momentanen Realisierung ist zu beachten, daß bei Verwendung von nicht-T1-kodierten Schriften kein Kerning zwischen den Anführungszeichen und den anderen Zeichen eingefügt wird. Bei einigen Buchstaben-Anführungszeichen-Kombi-nationen können daher zu große bzw. zu kleine Abstände auftreten (Beispiel: ”V statt ”V).

Relativ häufig ist in Dokumenten folgender Fehler zu beobachten: Statt mit Hilfe von "` und "' die Anführungszeichen ”…“ bzw. mit `` und '' die im englischsprachigen Raum gebräuchlichen Anführungszeichen “… ” zu erzeugen, wird einfach der direkt auf der Tastatur zu findende Doublequote " verwendet, der das falsche Ergebnis ”… ” erzeugt. Dieser Fehler ist leider in vielen mit L^{A}TEX erstellten deutschsprachigen Texte zu beobachten, obwohl das Fehlen der unteren, öffnenden Anführungszeichen auffallen müßte! Bei Verwendung des Pakets ”german“ mit der dann geänderten Bedeutung des Doublequote kann dies außerdem zu verschiedenen Fehlermeldungen führen.

Benötigt man das Doublequote-Zeichen, so muß man mit dem Paket ”german“ die Befehle \dq oder \verb+"+ verwenden. Aus Kompatibilitätsgründen mit alten Versionen des Makropakets wird auch noch "{} unterstützt.

2.2.4 Trennhilfen für die automatische Silbentrennung

▷ \- für eine Silbentrennstelle, wobei vor und nach dieser Trennstelle die Silbentrennung unterdrückt wird (dies ist der Originalbefehl in TEX zur Kennzeichnung von Trennstellen).

▷ "- für eine Silbentrennstelle an der angegebenen Stelle; ähnlich wie mit \-, jedoch bleibt die automatische Silbentrennung vor und nach dieser Trennstelle erhalten. Im Unterschied zu \- kann man mit "- eine Trennstelle einfügen und alle weiteren Trennstellen werden von TEX selbst bestimmt, solange man dies nicht unterdrückt.

▷ "" für eine Silbentrennstelle an der angegebenen Stelle, an der im Fall einer Trennung kein Bindestrich hinzugefügt wird.

▷ "| zur Verhinderung von Ligaturen, ähnlich wie "-, jedoch wird zusätzlich ein kleiner Zwischenraum zur besseren Trennung der Einzelzeichen einer Ligatur eingefügt.

▷ - für einen Bindestrich (Divis) bei Zusammensetzungen von Wörtern und Wortabkürzungen; TEX erlaubt eine Trennung nach dem Bindestrich und trennt nie automatisch in den Wortteilen vor und nach dem Bindestrich.

▷ "~^{†} für einen Bindestrich, an dem nicht getrennt wird.

▷ "=^{†} für einen Bindestrich, an dem die Trennung erlaubt ist; außerdem darf vor und nach dieser Stelle automatisch getrennt werden.

Verwendungsbeispiele: Die möglichen Silbentrennstellen sind in den Beispielen durch das Zeichen | gekennzeichnet.

Auf"|lage  ergibt:  Auf|la|ge

(formatiert: Auflage statt Auflage)

"ubertragen  ergibt:  übert|ra|gen (falsche Trennstelle)
"uber\-tragen  ergibt:  über|tragen
"uber"-tragen  ergibt:  über|tra|gen
bergauf und -ab  ergibt:  berg|auf und -|ab (falsche Trennstelle)
bergauf und "~ab  ergibt:  berg|auf und -ab
I-Punkt  ergibt:  I-|Punkt (schlechte Trennstelle)
I"~Punkt  ergibt:  I-Punkt
Arbeiter"=Unfall  ergibt:  Ar|bei|ter-|Un|fall|ver|si|che|rungs-

versicherungsgesetz  ge|setz

Tips:

▷ Bei zusammengesetzten Wörtern, die falsche Trennstellen aufweisen, sollte man zuerst die Trennhilfe "- in die Wortfuge der Zusammensetzung einfügen und nochmals testen, ob danach richtig getrennt wird, bevor man weitere Trennhilfen einfügt.

"ubertragen  ergibt:  übert|ra|gen
"uber"-tragen  ergibt:  über|tra|gen
Bedienoberfl"ache  ergibt:  Be|dieno|ber|fläche
Bedien"-oberfl"ache  ergibt:  Be|di|en|ober|fläche

Be\-dien"-oberfl"ache ergibt: Be|dien|ober|fläche

▷ Bei der Verwendung von Bindestrichen zur Ergänzung (”bergauf und -ab“, ”ein-, zwei- oder dreimal“), vor Schrägstrichen (”Ein-/Ausgang“) und Klammern (”Primär-(Haupt-)Strom“) sollte man mit den Befehlen \mbox, "" und "~ vor den Satzzeichen die Trennung unterbinden und eventuell nach den Satzzeichen wieder erlauben.

bergauf und -ab  ergibt:  berg|auf und -|ab

bergauf und \mbox{-ab} ergibt: berg|auf und -ab

bergauf und "~ab  ergibt:  berg|auf und -ab
Ein-/Ausgang  ergibt:  Ein-|/Ausgang

     \mbox{Ein-}/""Ausgang ergibt:  Ein-/|Aus|gang

Ein"~/""Ausgang  ergibt:  Ein-/|Aus|gang

▷ Der Befehl "= erlaubt in den mit dem Bindestrich verbundenen Wortteilen auch nahe am Bindestrich liegende Trennstellen, die oft häßlich oder gar sinnwidrig sind. Zusammengesetzte Wörter sollten normalerweise ohne Bindestrich geschrieben werden. Wenn der Bindestrich dennoch zur Vermeidung von Mißverständnissen nötig ist, oder um das Schriftbild übersichtlicher zu machen, und man neben der Trennung am Bindestrich weitere Trennstellen erlauben will, sollte man mit \- und "- wenige, wohlüberlegte Trennhilfen einfügen.

Arbeiter-Unfall  ergibt:  Arbeiter-|

versicherungsgesetz Unfallversicherungsgesetz Arbeiter"=Unfall ergibt: Ar|bei|ter-|Un|fall| versicherungsgesetz ver|si|che|rungs|ge|setz Arbeiter-Unfall"- ergibt: Arbeiter-|Unfall| versicherungsgesetz ver|si|che|rungs|ge|setz

Der Befehl "= ist also vorzugsweise in automatisch erstellten oder konvertierten Texten zu verwenden, wo manuelle Trennhilfen nicht verfügbar sind.

2.2.5 Befehle zur Sprachauswahl

▷ \selectlanguage{⟨Sprache⟩} aktiviert die der Sprache zugeordneten Trennmuster (siehe auch 3.1, S. 13) und schaltet zwischen deutschen, österreichischen, englischen, amerikanischen und französischen Datumsangaben und Überschriften um. Für ⟨Sprache⟩ ist einer der folgenden Namen zu verwenden:

⋄ Mit dem Paket ”german“:

    german, austrian, english, USenglish oder french

⋄ Mit dem Paket ”ngerman“:

    ngerman, naustrian, english, USenglish oder french.

▷ \germanTeX zum Einschalten der deutschen TEX-Befehle. Dieser Befehl aktiviert alle "x-Befehle, ändert das \"x-Makro, setzt durch einen Aufruf von \selectlanguage die traditionellen deutschen Trennmuster in Kraft und ändert die Datumsangabe und Überschriften. Dieser Befehl ist nur im Paket ”german“ definiert.

▷ \ngermanTeX^{†} dito, aber aktiviert die ”neuen“ deutschen Trennmuster. Dieser Befehl ist nur im Paket ”ngerman“ definiert.

▷ \originalTeX zum Zurückschalten auf Original-TEX bzw. -L^{A}TEX: deaktiviert alle durch \germanTeX oder \ngermanTeX eingeschalteten Befehle.

Zu jeder Sprache gehören ein spezifisches Datumsformat und eigene, in den L^{A}TEX-Klassen bzw. -Styles^{1} verwendete Überschriften:

     ⟨Sprache⟩  \today           \chaptername

german, ngerman  1. Januar 1995  Kapitel
austrian, naustrian 1. Jänner 1995  Kapitel
english  1st January 1995 Chapter
USenglish  January 1, 1995 Chapter
french  1^{er} janvier 1995 Chapitre

Voreinstellung: Nach dem Laden des Pakets ”german“ oder ”ngerman“ wird implizit der Befehl \germanTeX bzw. \ngermanTeX ausgeführt, so daß ohne weiteres Zutun von Seiten des Anwenders die Sprache german bzw. ngerman als Voreinstellung aktiviert wird.

Verwendung: \selectlanguage ist primär dazu bestimmt, die ”Hauptsprache“ eines Dokuments einzustellen. So können die Befehle aus dem Paket ”german“ auch innerhalb eines fremdsprachigen Dokuments benutzt werden:

     \NeedsTeXFormat{latex2e}
     \documentclass{article}
     \usepackage{german}
     %\germanTeX  % nicht notwendig, wird durch das Laden von
                  % `german' implizit aufgerufen
     \selectlanguage{USenglish}
     \begin{document}
     An english text with some german words, e.g., "Au"serung.
     \end{document}

Benutzt man \selectlanguage zum Umschalten der Sprache innerhalb eines Textes, etwa für fremdsprachige Zitate, dann ist zu beachten, daß das Umschalten der Überschriften und der Datumsdarstellung unerwünschte Nebenwirkungen haben kann, z. B. wenn das aktuelle Datum in der Fußzeile erscheinen soll.^{2}

Die Befehle \originalTeX und \(n)germanTeX dienen vor allem dazu, für einen Teil eines Dokuments das Verhalten des originalen, englischsprachigen L^{A}TEX herzustellen, wenn dies aus Gründen der Kompatibilität mit anderer Software notwendig werden sollte. Häufig genügen dazu aber die Befehle \mdqoff und \mdqon, siehe Tab. 1, die nur die "x-Makros aus- und einschalten.

2.3 Beschränkungen und bekannte Fehler

Doublequote-Mechanismus: Da ”german“ das Doublequote-Zeichen aktiviert und dessen ursprüngliche Bedeutung ändert, können Probleme mit anderen Makropaketen und fremden Dokumenten auftreten:

▷ Ganzzahlige Konstanten können in TEX auch in hexadezimaler Notation mit einem voranstehenden Doublequote eingegeben werden (Beispiel: "FF für die Dezimalzahl 255). Beginnt die Hexadezimalzahl mit Befehle mit aktivem Doublequote:

1Anpaßbare Klassen bzw. Styles sind seit Dezember 1991 Bestandteil der offiziellen L^{A}TEX-Verteilung.

2Eine zukünftige Version des Pakets ”german“ wird vsl. zusätzliche und angemessenere Befehle für mehrsprachige Dokumente zur Verfügung stellen.

"a, "A, "o, "O, "u, "U  Umlaute: ä, Ä, ö, Ö, ü, Ü
"s, "S, "z, "Z  Buchstaben: ß, SS, ß und SZ
"e, "E, "i, "I  Buchstaben mit Trema: ë, Ë, ï, Ï
"c, "C  ck → k-k

"f, "l, "m, "n, "p, "r, "t,

"F, "L, "M, "N, "P, "R, "T  ausfallender dritter Konsonant

"`, "'  ” “
">, "<                          ^{≫ ≪}

"-, "|, ""  Trennhilfen
"~, "=  Bindestriche mit besonderem Verhalten

Alle anderen "x-Befehle, die mit keiner Bedeutung belegt sind, erzeugen eine Fehlermeldung, um auf eine fehlerhafte Eingabe hinzuweisen.

Befehle mit geändertem Verhalten:

\"  Umlautmakro mit tieferem Akzentzeichen,

ohne Unterdrückung der Silbentrennung

Befehle für Anführungszeichen:

\glqq, \grqq, \glq, \grq  Anführungszeichen: ” “ ’ ‘
\flqq, \frqq, \flq, \frq  dto., französische Form: ^{≪} ^{≫} ^{<} ^{>}
\dq  Doublequote-Zeichen: ”

Befehle zur Sprachumschaltung:

\selectlanguage  Trennmuster u. Überschriften wechseln
\originalTeX  deaktiviere deutsche TEX-Befehle
\germanTeX (nur mit ”german“)  aktiviere deutsche TEX-Befehle
\ngermanTeX (nur mit ”ngerman“) aktiviere deutsche TEX-Befehle

Obsolete Befehle: (Nicht mehr verwenden!)

\3, \ck  alte Form von ß und ck → k-k

\setlanguage  ersetzt durch \selectlanguage

Low-Level-Befehle:

\allowhyphens  künstliche, nicht trennbare Wortfuge
\mdqoff, \mdqon  (de-)aktiviere Doublequote-Befehle

Tabelle 1: Befehlsübersicht einer Ziffer, so sollten mit neueren Versionen des Pakets ”german“ keine Probleme auftreten. Beginnt die Zahl stattdessen mit einem Buchstaben A–F, so tritt durch die geänderte Bedeutung des Doublequote

meist der Fehler ”Missing number, treated as zero“ auf.

Abhilfe: Hexadezimalzahlen, die mit einem Buchstaben beginnen, die Ziffer 0 voranstellen – statt "FF sollte man demnach "0FF verwenden. Eine andere Möglichkeit besteht darin, den Doublequote mit Hilfe des TEX-Primitivs \string (Bsp: \string"FF) oder mit einem vorangestellten \originalTeX bzw. \mdqoff zu deaktivieren.

▷ Leerschritte nach einem aktivierten Doublequote werden ignoriert, d. h. sowohl " a als auch "a erzeugen dasselbe Ergebnis. Da dies eine Eigenschaft von TEX selbst ist, kann es nicht ohne andere Nachteile verhindert werden.

▷ Nach einem aktivierten Doublequote sollten keine geschweiften Klammern folgen. Sowohl die Kombination mit einer öffnenden Klammer "{ als auch mit einer schließenden Klammer "} führt zu Fehlern.

Treten die in den letzten beiden Punkten beschriebenen Fehler auf, ist dies meist auf die falsche Eingabe von Anführungszeichen zurückzuführen. Anführungszeichen sind als "`… "' (bzw. als ``… '') einzugeben, die Verwendung eines einfachen Doublequote führt zu falschen Ergebnissen!

OT1-kodierte Schriften: Bei Verwendung von Schriften in der Kodierung OT1, z. B. der CM-Familie, gibt es zusätzlich folgende Einschränkungen:

▷ Es werden nicht alle oder falsche Silbentrennstellen in Wörtern mit Umlauten gefunden, insbesondere wird nicht direkt am Umlaut getrennt. Hier muß man bei Bedarf mit dem Befehl "- nachhelfen.

▷ Da TEX mit Hilfe der Makros im Paket ”german“ die Umlaute und die Anführungszeichen aus mehreren Zeichen aufbauen muß, findet kein Kerning und keine Ligaturbildung mit den umgebenden Zeichen statt. Dies fällt insbesondere bei den Kombinationen ”V, ”W und f“ auf und wird bei schräggestellten Schriften noch verstärkt. Eine Abhilfe ist auf Makroebene nur sehr schwer realisierbar, so daß man von Hand mit den Befehlen \negthinspace und \/ für korrektere Abstände sorgen muß.

▷ Die Anführungszeichen in der französischen Form ^{≫} und ^{≪} könnten, auch vom Aussehen, verbessert werden. Außerdem wird nach diesen Anführungszeichen nicht umbrochen, selbst wenn ein Wortzwischenraum folgen sollte.

▷ Die Typewriter-Schriften cmtt enthalten keine deutschen Anführungszeichen, sondern nur den einfachen Doublequote ". Daher erhält man mit L^{A}TEX 2ε für die Eingabe "`..."' das unerwartete Ergebnis ”"...\“.

Wer dies vermeiden will, muß die L^{A}TEX 2ε-Deklarationen für die bei-

den Symbole \textquotedblleft und \textquotedblright für die

OT1-Kodierung entsprechend ändern.

T1-kodierte Schriften: Die meisten der für OT1-kodierte Schriften genannten Einschränkungen existieren für Schriften in der Kodierung T1, wie beispielsweise die EC-Schriftfamilie, nicht, da diese Schriften Umlaute und Anführungszeichen enthalten. Für T1-kodierte Schriften existiert nur die Einschränkung, daß man bei Verwendung des halben schließenden Anführungszeichens \grq ein leeres Klammerpaar {} oder {\kern0pt} einfügen muß, wenn \grq auf ein Ausrufe- oder Fragezeichen folgt. Andernfalls erhält man sonst die Ligatur !` (¡) bzw. ?` (¿).

PostScript-Schriften: Zur Einbindung dieser Schriften in TEX und L^{A}TEX existieren unterschiedliche Versionen, wobei neuere Versionen die Verwendung von PostScript-Schriften sowohl in der Kodierung OT1 als auch in der Kodierung T1 und seit Anfang 1997 auch in der Kodierung TS1 der Text-Companion-Schriften erlauben. Für die jeweilige Kodierung gelten die zuvor aufgezählten Einschränkungen.

Verwendet man mit L^{A}TEX 2ε eine zu alte Version der Einbindung, so erhält man mit dem Paket ”german“ fehlerhafte Akzent- und Anführungszeichen. Bitte probieren Sie mit folgendem Testdokument aus, ob sie ein zu altes Paket zur Verwendung von PostScript-Schriften installiert haben. (Hinweis: Das Testdokument verwendet ”german“ nicht, da der Test nur von der verwendeten Einbindung der PostScript-Schriften abhängt.)

     \NeedsTeXFormat{LaTeX2e}
     \documentclass{article}
     \renewcommand\rmdefault{ptm}% oder: \usepackage{times}
     \begin{document}
     Test: \"a \"A \ss.
     \end{document}

Erhalten Sie fehlerhafte Umlaute oder kein scharfes s, so besorgen Sie sich bitte eine neuere Version des PostScript-Schriftpakets und installieren Sie die darin enthaltenen tfm-, vf-, tex-, fd- und map-Dateien nach Anleitung.

L^{A}TEX 2ε (1. Dezember 1994 und neuer): L^{A}TEX 2ε benutzt als Standardschriftauswahlschema die Version 2 des NFSS, das den neuen Schriftparameter \fontencoding zur Verfügung stellt. Dadurch können sehr einfach Schriften in unterschiedlicher Kodierung verwendet werden. So kann jetzt innerhalb eines Dokuments beliebig zwischen OT1- und T1-kodierten Schriften gewechselt werden.

Sollen Schriften in anderen Kodierungen verwendet werden, so müssen nur die entsprechenden L^{A}TEX 2ε-Deklarationen für diese Kodierung mit den Anweisungen \DeclareText… durchgeführt werden, damit ”german“ die Lettern dieser Schrift korrekt verwenden kann.

L^{A}TEX 2ε (1. Juni 1994): Da die erste öffentliche L^{A}TEX 2ε-Version die Verwendung von Schriften in unterschiedlicher Kodierung nur unvollständig erlaubt, wird sie von ”german“ nicht mehr unterstützt. Ein Update auf die neueste L^{A}TEX 2ε-Version ist auf alle Fälle ratsam!

L^{A}TEX 2.09: Mit der mittlerweile veralteten L^{A}TEX-Version können andere als die Schriften der Computer-Modern-Familie nur mit relativ großen Aufwand integriert werden. Die von den Entwicklern nicht mehr gewartete Version 1 des Schriftauswahlschemas NFSS erleichtert dies zwar, jedoch unterstützt diese Version die Einbindung von Schriften in anderen Kodierungen noch nicht.

Die Style-Option ”german“ unterstützt daher mit L^{A}TEX 2.09 nur Schriften in der Kodierung OT1. Sollen Schriften mit einer anderen Kodierung verwendet werden, so müssen die Makros \", \ss, \flqq, … \grq entsprechend geändert werden. Weitere Änderungen, insbesondere am Doublequote-Mechanismus, sind nicht notwendig.

Plain-TEX: Hier gilt das zuvor für L^{A}TEX 2.09 Gesagte. Es ist geplant, NFSS Version 2 auch für Plain-TEX verfügbar zu machen, so daß man auch die unter L^{A}TEX 2ε verfügbaren Vorteile nutzen kann. Leider ist der Zeitpunkt der Fertigstellung nicht absehbar.

2.4 Wohin melde ich Fehler?

Wenn Sie einen Fehler in dieser Version 2.5e der Makropakete ”german“ oder ”ngerman“ gefunden haben oder Vorschläge zu deren Verbesserung haben, schreiben Sie bitte an

Bernd Raichle Stettener Str. 73 73732 Esslingen-Wäldenbronn Germany

     E-Mail: raichle@Informatik.Uni-Stuttgart.DE

oder an

DANTE, Deutschsprachige Anwendervereinigung TEX e.V.

Betreuung ”german.sty“

Postfach 10 18 40 69008 Heidelberg Germany

     E-Mail: german@dante.de

Ein Kontakt per electronic mail wird bevorzugt.

Der Fehlermeldung sollten Sie die komplette Eingabedatei beilegen, mit der dieser Fehler erzeugt werden kann. In Ihrem eigenen Interesse sollte diese Eingabedatei möglichst klein sein und nur die wirklich zur Reproduktion des Fehlers notwendigen Klassen, Pakete, Styles, Style-Optionen und Makrodateien laden. Andernfalls gestaltet sich die Fehlersuche zu aufwendig und/oder es fehlen verwendete Makrodateien, um den Fehler nachvollziehen zu können. Fügen Sie auch die Protokolldatei für diese Eingabedatei mit an, da diese weitere Hinweise auf die verwendeten Makros enthält. Um die Protokolldatei klein zu halten, brechen Sie bitte bei einem Fehler TEX bzw. L^{A}TEX mit x und nicht mit q ab.

Bevor Sie einen Fehler melden, vergewissern Sie sich bitte, daß der Fehler tatsächlich durch das Makropaket ”german“ und nicht durch eine fehlerhafte Eingabe Ihrerseits oder einen Folgefehler eines zuvor aufgetretenen Fehlers verursacht wird. Sehen Sie bitte auch in der Protokolldatei nach, ob diese eventuell Hinweise auf die Fehlerursache gibt. Sehr häufig gibt es Fehler in Zusammenhang mit Konstanten in hexadezimaler Schreibweise, die zur Fehlermeldung ”Missing number, treated as zero“ führen. Dieser ”Fehler“ ist bekannt und ist in dieser Anleitung in Abschnitt 2.3 beschrieben.

3 Installation

Für die Benutzung der Pakete ”german“ und ”ngerman“ benötigen Sie folgende Dateien:

1. german.sty und ngerman.sty, die Makropakete selbst;

2. ghyph31.tex, die deutschen Trennmuster für die alte Rechtschreibung (nur mit german.sty) in der z. Z. aktuellen Version 3.1a vom 13. Februar 1994; Vorsicht: Auf der CD TeX Live 3 heißt diese Datei dehyphen.tex;

3. gnhyph01.tex, die deutschen Trennmuster für die neue Rechtschreibung (nur mit ngerman.sty);

4. wahlweise weitere Dateien mit Trennmustern für andere Sprachen;

5. evtl. hyphxmpl.cfg, eine Beispieldatei für die Konfiguration der Trennmuster.

3.1 Vorbereitungen für Benutzer

Als gewöhnlicher TEX- bzw. L^{A}TEX-Benutzer müssen Sie nur dafür sorgen, daß die Dateien german.sty und ngerman.sty in der neuesten Version vorhanden sind und geladen werden können. Dazu sind diese Dateien einfach in ein Verzeichnis zu kopieren, in dem TEX nach Makrodateien sucht.

Erscheint beim Laden des Makropakets die Meldung

     \language number for German undefined, default 255 used.

so haben Sie die deutschen Trennmuster nicht korrekt installiert und erhalten eventuell fehlerhafte Trennungen, oder es wird nicht getrennt. Wie Sie die Trennmuster installieren müssen, erfahren Sie im nächsten Abschnitt.

Möglicherweise hat Ihre Plain-TEX- oder L^{A}TEX-Version eines der Makropakete ”german“ oder ”ngerman“ bereits vorgeladen, d. h., Sie müssen es nicht explizit als L^{A}TEX 2ε-Paket bzw. als Style-Option deklarieren oder die Makrodatei laden. Sie sollten dies dennoch nicht ausnutzen: Wenn Sie Ihre Dokumente weitergeben wollen, vermeiden Sie dadurch unnötige Probleme und Rückfragen. Am besten ändern Sie Ihre Installation so ab, daß ”german“ nicht vorgeladen wird, da Sie mit einem vorgeladenen Makropaket zu anderen TEX-Installationen i. d. R. inkompatibel sind.

3.2 Vorbereitungen für TEX-Administratoren

Damit Sie die Pakete ”german“ und ”ngerman“ den TEX-Benutzern zur Verfügung stellen, müssen diese, falls noch nicht getan, installiert werden. Außerdem müssen Sie alle Formatdateien mit den deutschen Trennmustern so erstellen, daß die Makropakete erkennen können, wie auf diese Trennmuster umgeschaltet wird. Andernfalls wird nicht mehr oder falsch getrennt!

3.2.1 Installation der Makropakete

Die Dateien german.sty und ngerman.sty, sollten Sie in ein Verzeichnis kopieren, in dem TEX nach Makrodateien sucht (Bsp: .../texmf/tex/ generic/german/). Ältere Versionen dieser Dateien in weiteren Verzeichnissen, die TEX durchsucht, sollten Sie löschen.

Bitte lesen Sie nun den nächsten Abschnitt, da es sehr wahrscheinlich ist, daß die Trennmuster in Ihren bisher verwendeten Formatdateien nicht korrekt oder nicht vollständig installiert wurden. Ist dies der Fall, wird in allen Dokumenten, die diese Pakete verwenden, nicht mehr automatisch getrennt!

3.2.2 Installation der Trennmuster

TEX kann ab Version 3.0 in einer einzigen Formatdatei mehrere verschiedene Trennmuster halten. Zur Auswahl der Trennmuster einer Sprache dient eine ganze Zahl von 0–255, die der Sprache beim Installieren der Trennmuster zugeordnet worden sein muß.

Beim Laden eines Satzes von Trennmustern während der Installation (IniTEX-Lauf) erfolgt die Zuordnung der Trennmuster zu einer Sprache durch Zuweisung der für diese Sprache gewählten Zahl an das spezielle TEX-Register \language. Ebenso werden später beim Übersetzen eines Dokuments die zu verwendenden Trennmuster durch Zuweisung der Zahl an \language wieder aktiviert. Achtung: Weist man \language beim Übersetzen eines Dokuments einen Wert zu, für den IniTEX keine Trennmuster geladen hatte, so findet keine automatische Silbentrennung statt.

Wie werden nun die Nummern von 0–255 an die einzelnen Sprachen vergeben? Als Quasi-Standard für die Vergabe der Nummern hat sich mittlerweile das im Babel-System [Braams91, Goossens94a, Goossens94b] verwendete Schema herausgebildet. Dabei wird jede Sprache deklariert und an diese eine Nummer in aufsteigender Folge von 0 an vergeben. Wichtig dabei ist, daß die jeweils zugeordnete Nummer in einer control sequence \l@⟨Sprache⟩ abgespeichert wird. So kann man später auf die Sprache unter ihrem Namen zugreifen, also ohne die Nummer explizit angeben zu müssen.

Der Code zum Laden der Trennmuster und zum Zuordnen der Sprachnamen befindet sich in einer Makrodatei, die für das aktuelle L^{A}TEX 2ε beispielsweise hyphen.cfg heißt. Sie muß normalerweise neu erstellt oder zumindest angepaßt werden, um festzulegen, welche Sprachen unterstützt werden sollen.

Mit dem Babel-Paket wird eine besondere Version dieser Datei ausgeliefert, die die Information über die zu ladenden Sprachen einer weiteren Konfigurationsdatei language.dat entnimmt, die ihrerseits einfacher aufgebaut und leichter zu bearbeiten ist.

Unabhängig davon, welche der beiden Methoden zur Konfiguration benutzt wird, kann das damit erzeugte Format sowohl mit Babel als auch mit dem Paket ”german“ benutzt werden. Die Version 3.6h des Babel-Pakets selbst kennt allerdings noch keine Option für ”Deutsch mit neuer Rechtschreibung“.

Gehen Sie zum Konfigurieren der Sprachunterstützung wie folgt vor:

Schritt 1^{∗}: Sie verwenden den Konfigurationsmechanismus des Babel-Pakets; dies ist standardmäßig z. B. mit teTeX oder dem Web2c-TEX der CD TeX Live der Fall. In diesem Fall müssen in der Konfigurationsdatei language.dat die folgenden Zeilen (neben evtl. weiteren) eingetragen sein:

       german     ghyph31.tex
       ngerman    gnhyph01.tex

Damit wird die Zuordnung von Sprachnamen und Trennmusterdateien festgelegt. Evtl. fehlende Einträge sind am Ende der Datei zu ergänzen. (Mit der TeX Live-CD ist der Dateiname ghyph31.tex durch dehyphen.tex zu ersetzen.)

Überspringen Sie nun die Schritte 1 und 2. Falls in Ihrem TEX-System nicht der Babel-Mechanismus zur Konfiguration der Trennmuster benutzt wird, dann lesen Sie bitte weiter:

Schritt 1: Sie benötigen zum Laden der Trennmusterdateien für verschiedene Sprachen eine Makrodatei, die (leider) je nach verwendetem Format einen unterschiedlichen Dateinamen besitzt. Den Namen dieser Datei können Sie der Tabelle in Schritt 2 entnehmen, die Datei selbst sollte folgenden Inhalt haben:

     %% Konfigurationsdatei -- Trennmuster: `hyphen.cfg'
     \message{== Loading hyphenation patterns:}
     %% american english
     \chardef\l@USenglish=\language
     %% british english als "Dialekt"
     \chardef\l@english=\l@USenglish
     \input hyphen
     %% german
     \newlanguage\l@german \language=\l@german
     %% oesterreichisch als "Dialekt":
     \chardef\l@austrian=\l@german
     \input ghyph31
     %% new german
     \newlanguage\l@ngerman \language=\l@ngerman
     %% oesterreichisch (neu) als "Dialekt"
     \chardef\l@naustrian=\l@ngerman
     \input gnhyph01
     %% weitere Sprachen nach folgendem Schema:
     % \newlanguage\l@SPRACHE \language=\l@SPRACHE
     % \chardef\l@DIALEKT=\l@SPRACHE
     % \input SPRACHhyphen
     %% Default-Trennmuster: USenglish
     \language=\l@USenglish \lefthyphenmin=2 \righthyphenmin=3
     \message{done.}
     \endinput

In dem gezeigten Beispiel werden die US-englischen Trennmuster, die ”alten“ und die ”neuen“ deutschen Trennmuster geladen, wobei für die britischenglische und für die österreichische ”Sprache“ Synonyme deklariert werden. Eine Datei mit genau diesem Inhalt wird unter dem Namen

     hyphxmpl.cfg

zusammen mit dem Makropaket ”german“ verteilt. Wollen Sie für weitere Sprachen Trennmuster laden, sollten Sie in der Lage sein, die dazu notwendigen Zeilen anhand des auskommentierten Schemas im gezeigten Beispiel zu vervollständigen.

Es ist wichtig, daß Sie die beiden Parameter \lefthyphenmin und \righthyphenmin, die die Mindestlänge der nicht trennbaren Wortpräfixe und -suffixe angeben, am Ende der Datei mit passenden Werten für diejenige Sprache vorbesetzen, mit der TEX startet. Ansonsten erhalten Sie eventuell Trennungen, bei denen einzelne Zeichen am Wortanfang oder -ende abgetrennt werden. Es ist jedoch nicht notwendig, diese beiden Parameter für jede zu ladende Trennmusterdatei zu setzen, da TEX die Parameterwerte sowieso nicht mit den Trennmustern abspeichert.

Schritt 2: Entscheiden Sie sich, für welches TEX-Format Sie eine neue Formatdatei erstellen wollen. Je nach zu erzeugendem Format hat die in Schritt 1 gezeigte Konfigurationsdatei einen anderen Namen:

Format  Dateiname
L^{A}TEX 2ε (ab 1. Dezember 1994) hyphen.cfg
L^{A}TEX 2ε (1. Juni 1994)  lthyphen.cfg
L^{A}TEX2.09 (ab Dezember 1991) lhyphen.tex
L^{A}TEX2.09 (vor Dezember 1991) hyphen.tex

     Plain-TEX  hyphen.tex

Geben Sie der in Schritt 1 erstellten Datei (oder dem Beispiel hyphxmpl.cfg) den entsprechenden Dateinamen aus dieser Tabelle.

Zu Plain-TEX und den älteren L^{A}TEX-Versionen: Da die US-englischen Trennmuster, die als Mindestausstattung jeder Installation beiliegen, den selben von Donald E. Knuth vergebenen Namen hyphen.tex haben, müssen Sie diese Trennmusterdatei für Plain-TEX und die älteren L^{A}TEX 2.09-Versionen in ushyphen.tex umbenennen, um Namenskollisionen zu vermeiden. Vergessen Sie in diesem Fall nicht, auch in der Konfigurationsdatei den

Namen hyphen.tex durch ushyphen.tex zu ersetzen!

Schritt 3: Bevor Sie nun mit IniTEX eine Formatdatei erstellen, sollten Sie sich vergewissern, daß Ihre TEX-Version genügend Platz für die Trennmuster reserviert.

Um beispielsweise die amerikanischen und die beiden deutschen Trennmusterdateien zu laden, benötigen Sie einen ”Trie“-Wert, der mindestens 21547 trie size und 625 trie op size Platz bietet. Wollen Sie Trennmuster für weitere Sprachen, wie beispielsweise britisches Englisch, dazuladen, müssen diese Werte erhöht werden. Vergessen Sie später nicht, daß Sie auch bei der Übersetzung der Dokumente entsprechend mehr Platz für die Trennmuster benötigen.

Ob Sie diese Werte in Ihrer TEX-Installation ändern müssen, und wenn ja, wie, entnehmen Sie bitte der zugehörigen Dokumentation. Häufig kann man die Größe der Trennmustertabelle über Umgebungsvariablen, spezielle Konfigurationsdateien oder Optionen in der Kommandozeile festlegen.

Mit emTeX beispielsweise muß die Voreinstellung für trie size über die Option -mt erhöht werden, wenn die o. g. drei Trennmusterdateien gleichzeitig verfügbar sein sollen:

Format erzeugen: -mt27000
TEX-Lauf:  -mt23000

Schritt 4: Erzeugen Sie durch Aufruf von IniTEX aus der Datei, die die Makros für das TEX-Format, z. B. L^{A}TEX, enthält, die Formatdatei. Genaueres darüber, wie Sie eine Formatdatei erstellen, entnehmen Sie bitte der zu Ihrem TEX-System gehörenden Beschreibung.

Während IniTEX abläuft, sollten Sie darauf achten, daß auch die oben angegebene Konfigurationsdatei und die Trennmusterdateien eingelesen werden. Wenn dies nicht geschieht, haben Sie einen falschen Namen für die Konfigurationsdatei gewählt. Überprüfen Sie nochmals den Dateinamen und ziehen Sie die Formatdokumentation zu Rate.

Bricht IniTEX beim Laden der Trennmusterdateien mit der Fehlermeldung

     TEX capacity exceeded, sorry [pattern memory=x]

ab, so haben Sie trie size zu klein gewählt, bei

     TEX capacity exceeded, sorry [pattern memory ops=x]

wurde trie op size zu klein gewählt. Falls dies bei Ihrer TEX-Implemen-tierung möglich ist, sollten Sie in diesen Fällen die Tabellen entsprechend vergrößern (siehe Schritt 3). Ansonsten können Sie nicht alle in Ihrer Konfigurationsdatei angegebenen Trennmusterdateien in einer einzigen Formatdatei verwenden.

Schritt 5: Wenn alles ohne Probleme durchlief, sollte zum Schluß eine Datei mit Endung .fmt und eine Protokolldatei mit Endung .log erstellt worden sein. Kopieren Sie beide Dateien in das Verzeichnis, wo Ihre TEX-Implementierung nach Formatdateien sucht, falls dieser Schritt nicht automatisch erfolgt. Die Protokolldatei sollten Sie nicht löschen, da Sie anhand dieser Datei noch Monate später nachvollziehen können, wie Sie diese Formatdatei erstellt haben.

Als Kontrolle, welche Trennmuster für welche Sprachen geladen wurden, können Sie das Ende der Protokolldatei betrachten. Sie sollten beim Erstellen eines L^{A}TEX 2ε-Formates ungefähr folgende Zeilen erhalten:

     This is emTeX (tex386), Version 3.14159 [4b] (INITEX) ...
     **latex.ltx
     (latex.ltx (texsys.cfg)
     ...
     (e:/texmf/tex/latex/local/hyphen.cfg
     == Loading hyphenation patterns:
     (e:/texmf/tex/generic/hyphen/hyphen.tex)
     \l@german=\language1
     (e:/texmf/tex/generic/hyphen/ghyph31.tex
     German Hyphenation Patterns `ghyphen' Version 3.1a <94/02/13>)
     \l@ngerman=\language2
     (e:/texmf/tex/generic/hyphen/gnhyph01.tex
     New German Hyphenation Patterns `gnhyph01' Rev. 22) done.)
     ...
     Beginning to dump on file latex.fmt

     ...
     14 hyphenation exceptions
     Hyphenation trie of length 21547 has 625 ops out of 750
       237 for language 2
       207 for language 1
       181 for language 0
     No pages of output.

Wie Sie in der vorletzten und den vorhergehenden Zeilen sehen, enthält die Formatdatei Trennmuster für drei Sprachen, denen die Nummern 0 bis 2 zugewiesen wurden. Zusammen benötigen Sie trie size = 21547 und trie op size = 625 von 750 vorhandenen Plätzen im ”Trie“-Bereich. Außerdem wurden mit \hyphenation zusätzlich 14 Trennungsausnahmen geladen. Laden Sie andere Trennmuster, unterscheiden sich Ihre Werte natürlich von den hier gezeigten Werten.

In der Konfigurationsdatei, in der die Trennmuster geladen werden, werden die den Sprachen zugeordneten Nummern in den control sequences \l@⟨Sprache⟩ abgespeichert. Wird später beim Übersetzen eines Dokuments auf eine Sprache gewechselt, für die keine control sequence definiert wurde, so verwenden die Pakete ”german“ und ”ngerman“ die folgenden Default-Werte:

Sprache Wert oder, falls gesetzt, Wert der Sprache

     USenglish 255 english
     english  255 USenglish
     german  255 austrian
     austrian  255 german
     ngerman  255 naustrian
     naustrian 255 ngerman
     french  255

In älteren Versionen der Style-Option ”german“ wurden den Sprachen Werte zwischen 0 und 5 zugewiesen. Ab Version 2.5a wird der Wert 255 verwendet, um die Trennung für alle undefinierten Sprachen zu unterbinden. Dies funktioniert in den meisten Fällen, da im allgemeinen für den Wert 255 keine Trennmuster geladen werden.

4 Sonstiges

4.1 Geschichtliches

Die Style-Option ”german“, die das Erstellen deutschsprachiger Texte mit TEX vereinfacht, wurde von Dr. H. Partl (Technische Universität Wien) realisiert und zusammengestellt. Sie war als ”rasche Lösung“ entstanden, die den Vorteil hat, daß sie keine Änderungen an der TEX-Software, den Schriftdateien und den Trennmustern erfordert, sondern direkt auf die Originalversion von TEX aufgesetzt werden kann [Partl87, Partl88]. Diese ”rasche Lösung“ hat sich bewährt und besitzt heutzutage ein weites Verbreitungsgebiet im deutschsprachigen Raum und darüberhinaus.

Folgende Personen haben durch Ideen und Code-Beispiele zum Erfolg der Style-Option ”german“ beigetragen (die Liste erhebt keinen Anspruch auf Vollständigkeit): W. Appelt, F. Hommes und andere (Gesellschaft für Mathematik und Datenverarbeitung St. Augustin), T. Hofmann (Ciba-Geigy Basel), N. Schwarz (Universität Bochum), J. Schrod (TH Darmstadt), D. Armbruster (Universität Stuttgart), R. Schöpf (Universität Mainz, Universität Heidelberg, Zuse-Zentrum für Informationsverarbeitung Berlin), F. Mittelbach (Universität Mainz, EDS Rüsselsheim), J. Knappen (Universität Mainz), P. Breitenlohner (Max-Planck-Institut München), H. Oberdiek (Universität Freiburg) und viele andere.

Für die Anpassung an die neue Rechtschreibung war W. Schmidt verantwortlich.

Seit Version 2.3e vom 31. Juli 1991 werden die Pakete ”german“ und ”ngerman“ von B. Raichle (Universität Stuttgart) gepflegt und weiterentwickelt.

4.2 Verfügbarkeit der Makropakete

Die Makropakete ”german“ und ”ngerman“ kann man, wie fast jede andere TEX-Software, vom Comprehensive TEX Archive Network, kurz CTAN, erhalten. Dieses Netzwerk besteht z. Z. aus den ftp-Servern ftp.dante.de, ftp.tex.ac.uk und ctan.tug.org, wobei auf jedem dieser Server der gleiche Inhalt zu finden ist. CTAN dient als sogenannter ”Backbone“, d. h. das komplette Archiv oder Teile davon werden von diesen Servern auf vielen weiteren Server ”gespiegelt“ vorgehalten, so daß Sie die für Sie günstigste Zugriffsmöglichkeit wählen können. Außerdem ist der Inhalt von CTAN von mehreren Anbietern auch auf CD-ROM erhältlich.

Die Pakete, die zugehörige Dokumentation und die deutschen Trennmuster finden Sie auf CTAN in den Verzeichnissen

     tex-archive/language/german/
     tex-archive/language/hyphenation/

Die Mitgliedschaft in DANTE e.V. bietet eine weitere Möglichkeit an die TEX-Software und viele Kontakte zu anderen TEX-Anwendern zu gelangen. Informationen über DANTE e.V. erhalten Sie von

DANTE, Deutschsprachige Anwendervereinigung TEX e.V.

Postfach 10 18 40 69008 Heidelberg Federal Republic of Germany

Tel.: +49 6221 2 97 66 Fax: +49 6221 16 79 06

     E-Mail: dante@dante.de
     www: http://www.dante.de/
     ftp: ftp://ftp.dante.de/tex-archive/usergrps/dante/

4.3 TEX 2.x vs. TEX 3.x und die Style-Option ”german“

Seit Oktober 1987 ist TEX in der Version 3.x verfügbar. Da diese Version gegenüber TEX 2.x einige Erweiterungen besitzt, soll hier kurz auf die wichtigsten Änderungen in der Style-Option ”german“ eingegangen werden.

TEX Version 3 führte neue control sequences für neue Primitive und interne Register ein. Darunter fällt das in älteren Versionen der Style-Option ”german“ verwendete Makro \setlanguage, das ab Version 2.3 in \selectlanguage umbenannt wurde. Da \setlanguage ein TEX 3-Primitiv ist und deshalb keine aufwärtskompatible Definition angeboten werden kann, muß in älteren Texten der alte Makroname durch den neuen Namen ersetzt werden.

Zu TEXs internen Registern kamen u. a. \language, \lefthyphenmin und \righthyphenmin hinzu, um Trennmuster für mehr als eine Sprache unterstützen zu können. Diese drei Register bestimmen die zu verwendenden Trennmuster und die Mindestlänge der nicht trennbaren Wortpräfixe und -suffixe. Der ”normale“ TEX-Benutzer sollte diese Register zum Wechsel der Trennmuster nie direkt ändern, sondern sollte dazu das \selectlanguage-Makro verwenden. Ab Version 2.4a der Style-Option ”german“ werden für die Sprachen german und austrian zusätzlich \frenchspacing und die Werte für \lefthyphenmin und \righthyphenmin auf zwei gesetzt.

4.4 Änderungen seit Version 2.0 (Oktober 1987)

Zusätzlich zu den in früheren Abschnitten erwähnten Änderungen kommen folgende hinzu:

▷ In Versionen vor 2.2 fehlen die Befehle "S, "CK, "FF für Großbuchstaben und die entsprechenden Befehle für die Konsonanten L, M, N, P und T.

▷ In Versionen bis 2.2 gab es die undokumentierten Makros \original-

@dospecials und \original@sanitize, die die ursprünglichen Defi-
nitionen von \dospecial und \@sanitize enthielten, und \german-

@dospecials, \german@sanitize, die zusätzlich das Doublequote (") enthielten. Diese Makros werden von einigen ”fremden“ Makros benutzt, obwohl sie undokumentiert und nur zur internen Verwendung bestimmt waren.

▷ Bis Version 2.3e wurden bei Verwendung von "| zur Verhinderung von Ligaturen keine weiteren Trennstellen im Wort gefunden.

▷ Ab Version 2.3e werden die etwas tieferen Umlautakzente durch ein geändertes Makro erzeugt, das schneller ist und zu kleineren dvi-Dateien führt. Außerdem werden jetzt bis auf die Zählerallokationen alle Definitionen und Zuweisungen lokal ausgeführt.

▷ In Version 2.4a wurden durch zusätzliche \/-Anweisungen Überschneidungen der öffnenden Anführungszeichen mit nachfolgenden Zeichen bei Verwendung der Computer-Modern-Schriften für viele Fälle verhindert. Undefinierte "x-Befehle führen jetzt zu einer Fehlermeldung – dies führt oft dazu, daß viele einfache Tippfehler schon beim Übersetzen aufgedeckt werden. Die Befehle "z, "Z, "~ und "= kamen neu dazu.

▷ Version 2.5a enthält Anpassungen an L^{A}TEX 2ε zur Verwendung von Schriften mit Kodierung OT1 und T1. Die Befehle "r und "R kamen hinzu. Die Defaults für ”undefinierte“ Sprachen sind jetzt 255 mit entsprechenden Warnungen, um die Benutzer zu zwingen, beim Laden der Trennmuster gleich die verwendete \language-Nummer zu sichern (z. B. mit dem Babel-System oder einer von Hand geschriebenen Konfigurationsdatei). Intern wurden, neben der Verwendung von docstrip, kleinere Optimierungen ausgeführt.

▷ Bis Version 2.5b wird bei "ff die ff-Ligatur verhindert, obwohl diese bei Ausfall des dritten ”f“ stehen sollte. Diese Änderung ab Version 2.5c kann zu geringfügig anderen Trennungen im direkt auf "ff folgenden Wortteil führen.

▷ Version 2.5c fügt das explizite Kerning der oberen deutschen Anführungszeichen “ für T1-kodierte Schriften nicht mehr ein, da die EC-Schriften (und die DC-Schriften ab Version 1.2 als deren Testversion) diese Anführungszeichen etwas weiter nach links plazieren, so daß es sonst zu Überschneidungen kommt.

▷ Version 2.5d erlaubt bei T1-kodierten Schriften das dort notwendige Kerning der Anführungszeichen sowohl bei \glqq, \grqq, \flqq und \frqq als auch bei "`, "', "< und ">.

▷ Mit Version 2.5e wird zusätzlich das Paket ”ngerman“ eingeführt. Die Implementierung des undokumentierten Befehls \iflanguage wird dahingehend geändert, daß in seinen ”then“- und ”else“-Argumenten auch Makros verwendet werden können, deren Parameter erst hinter dem \iflanguage-Befehl folgen. Das ermöglicht Konstrukte wie

Sto\iflanguage{german}{"}{f}ffetzen.

Literatur

[Duden, Bd. 1] Duden, Rechtschreibung der deutschen Sprache und der Fremdwörter. Hrsg. von der Duden-Redaktion. Auf der Grundlage der amtlichen Rechtschreibregeln. Mannheim; Wien; Zürich: Bibliographisches Institut, 19. Auflage, 1986.

[Partl87] Hubert Partl, Ein ”Minimal Subset“ für einheitliche deutsche TEX-Befehle, Vortrag und Diskussion beim 6. Treffen der deutschen TEX-Interessenten in Münster (1987). Anm.: veröffentlicht in einer Datei namens germdoc.tex, mittlerweile ersetzt durch das Ihnen vorliegende Dokument ”Kurzbeschreibung – (n)german.sty“.

[Partl88] Hubert Partl, German TEX, TUGboat 9(1):70–72, 1988.

[Braams91] Johannes Braams, Babel, a multilingual style-option system for use with L^{A}TEX’s standard document styles, TUGboat 12(2):291–301, Juni 1991.

[Goossens94a] Michel Goossens, Frank Mittelbach und Alexander Samarin, The L^{A}TEX Companion, Addison-Wesley, Reading, 2. Auflage, 1994.

[Goossens94b] Michel Goossens, Frank Mittelbach und Alexander Samarin, Der L^{A}TEX-Begleiter, Addison-Wesley, Bonn, 1. Auflage, 1994. Anm.: überarbeitete, deutsche Übersetzung von [Goossens94a].