In vielen Beispielen auf dieser Seite und anderswo sieht man in der Präambel

Open in writeLaTeX
\usepackage[T1]{fontenc}

Wofür ist das eigentlich gut? Brauche ich das auch? Und wenn ja, warum? Der Name deutet an, dass es etwas mit Schrift zu tun hat?

gefragt 21 Mai '14, 04:07

Clemens's gravatar image

Clemens
19.0k113060
Akzeptiert: 73%

bearbeitet 21 Mai '14, 04:07


Ich erlaube mir eine zweigeteilte Antwort. Zunächst eine (noch immer etwas simplifizierte) für diejenigen, die es etwas genauer wissen wollen. Weiter unten folgt dann eine Kurzantwort für all diejenigen, die es gar nicht so genau wissen wollen, sondern die nur an den Auswirkungen interessiert sind.

Ausführliche Antwort:

Für TeX kann ein Zeichensatz nur aus max. 256 Zeichen bestehen (ursprünglich waren es übrigens nur 128). Die Zeichen eines Zeichensatzes werden intern durch die Zahlen 0 bis 255 repräsentiert. Damit kann TeX also beispielsweise moderne Zeichensätze, die mehr Zeichen enthalten oder bei denen Zeichen über ihren Namen, statt über ihren Code angesprochen werden, nicht direkt umgehen. Stattdessen müssen solche Zeichensätze für TeX in einzelne Zeichensätze mit einem beschränkten Zeichenumfang von max. 256 Zeichen aufgeteilt werden.

In unterschiedlichen, sprachlich geprägten Regionen werden unterschiedliche Zeichen benötigt. Bei einer Tagung im schottischen Cork wurden vor vielen Jahren solche Untermengen definiert. T1 ist dabei eine Untermenge an Zeichen, die für westeuropäische Länder gedacht ist. Es gibt beispielsweise auch T2 für osteuropäische Länder oder TS1 für Textsymbole wie das €.

Das Paket fontenc wurde geschaffen, um für ein Dokument eine Grundcodierung der Schrift zu wählen. Letztlich führt die Verwendung von \usepackage[T1]{fontenc} dazu, dass LaTeX bei der Auswahl eines konkreten Fonts dann die Datei t1<schriftkürzel>.fd lädt, über die dann die konkret zu ladende Schrift ausgewählt wird. Bei den LaTeX-Standardfonts lautet das <Schriftkürzel> für die rm-Familie, also die Serifenschrift, cmr. Es wird dann also t1cmr.fd geladen. Darin ist über weitere Regeln festgelegt, dass tatsächlich der Font ecmr in entsprechender Größe zu laden ist. Das ist die Serifenschrift von European Computer Modern. Das ändert sich natürlich, wenn man zusätzlich ein Font-Paket angibt. Dieses kann dafür sorgen, dass eine ganz andere Schrift geladen wird, etwas Latin Modern durch Angabe von \usepackage{lmodern}.

Ohne Laden des Pakets würde hingegen die Standard-Codierung OT1 verwendet. Diese ist für US-ASCII-codierte Fonts mit nur 128-Zeichen vorgesehen. Diese Zeichensätze haben beispielsweise keine Umlaute! Darüber hinaus wird dann über ot1cmr.fd auch nicht mehr ecmr, sondern cmr, also die Serifenschrift von Computer Modern geladen. Auch hier kann durch die Wahl eines Font-Pakets eine andere Schrift erreicht werden.

Zeichen, die in einem Zeichensatz eigentlich nicht existieren, werden bei TeX teilweise über Makros gebildet. So wird ein ä über einige Umwege bei der OT1-Codierung tatsächlich aus den Diaresis-Pünktchen und dem a zusammengesetzt. Das hat den Nachteil, dass Wörter mit diesen Zeichen für TeX bei der Trennung in einzelne Wörter zerfallen, wobei die zusammengesetzten Zeichen nicht Teil der Wörter sind. Aus »Wörter« würde also beispielsweise »W«, »ö«, »rter«. Das führt dazu, dass solche Wörter nicht korrekt getrennt werden können.

Die Verwendung von \usepackage[T1]{fontenc} hat also unmittelbar Auswirkungen darauf, welche Wörter korrekt getrennt werden können. In der Regel verbessert sich bei westeuropäischen Sprachen die Trennung dadurch signifikant.

Noch einen Schritt komplizierter wird das durch neuere TeX-Maschinen, wie XeTeX und LuaTeX, die auf LaTeX-Seite als xelatex und lualatex zur Verfügung stehen. Bei diesen existiert die Beschränkung auf nur 256 Zeichen/Zeichensatz nicht mehr. Dadurch wurde auch die Verwendung von fontenc überflüssig. Stattdessen kann und sollte bei Verwendung von XeLaTeX oder LuaLaTeX das Paket fontspec verwendet werden. Dieses schaltet nicht nur die Standardschrift auf Latin Modern um (was über zusätzliche Befehle und Optionen wiederum geändert werden kann), sondern spricht diese auch nicht mehr in der alten TeX-Codierung von Fonts an. Stattdessen werden die Systemfonts in den üblichen Codierungen Type-1 und OpenType direkt verwendet.

Kurzfassung:

Durch \usepackage[T1]{fontenc} werden von LaTeX Fonts in westeuropäischer Codierung verlangt. Diese enthalten die meisten Text-Zeichen für westeuropäische Sprachen als einzelne Zeichen. Dies führt zu einer verbesserten Trennung für westliche Sprachen (vorausgesetzt man stellt diese Sprache auch ein und hat Trennmuster für diese im Format). Als Nebeneffekt wird die Standardschrift von Computer Modern zu European Computer Modern umgeschaltet.

Ohne \usepackage[T1]{fontenc} wird von LaTeX eine US-ASCII-Codierung verlangt. Diese enthält keine Textsonderzeichen wie Umlaute oder Buchstaben mit Akzent. Da diese daher zusammengesetzt werden müssen, ist die Trennung bei Wörtern mit solchen Zeichen unvollständig oder fehlerhaft. Auch Suchen in und Kopieren aus den erzeugten PDF-Dokumenten kann dadurch verbessert werden. Für Wörter mit Ligaturen genügt dies jedoch noch nicht generell.

Bei Verwendung von lualatex oder xelatex ist nicht fontenc sondern fontspec zu verwenden. Dieses schaltet die Standardschrift auf Latin Modern um und ist in der Lage alle Zeichen eines (unicode-)Zeichensatzes anzusprechen.

Permanenter link

beantwortet 21 Mai '14, 04:53

Bes's gravatar image

Bes
1411516

bearbeitet 22 Mai '14, 02:37

2

Dieses Zusammensetzen von akzentuierten Zeichen und Umlauten dürfte auch Copy&Paste aus dem fertigen Dokument erschweren, nehme ich an?

(21 Mai '14, 05:06) Clemens
1

@Clemens Das ließe sich AFAIK mit cmap bzw. mmap lösen. Das wird ggf. auch bei T1 benötigt, damit Ligaturen beim Suchen und Kopieren richtig aufgelöst werden. Allerdings gibt es da wieder Probleme, wenn man eben nicht die Standardfonts verwendet, sondern einen Font, der für die letztendliche Zuordnung zu einem realen Font einen virtuellen Font benötigt.

(21 Mai '14, 05:25) Bes
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×40
×35
×5

Frage gestellt: 21 Mai '14, 04:07

Frage wurde angeschaut: 25,846 Mal

Zuletzt aktualisiert: 22 Mai '14, 02:37