fontenc und inputenc
Die Frage, wo eigentlich der Unterschied zwischen fontenc und inputenc liegt, wurde sehr ausführlich in einem stackexchange Posting beantwortet. Da ich selbst zwar schon seit Jahren TeXe, diesen Unterschied aber selbst nie ergründet habe, folgt hier die deutsche Übersetzung.
Beide Pakete adressieren vollkommen unterschiedliche Probleme.
inputenc
erlaubt es dem Nutzer, Nicht-ASCII Zeichen direkt über die Tastatur einzugebenfontenc
kümmert sich um die Ausgabe, also darum welches Zeichen genutzt wird, um einen Buchstaben darzustellenBeide Pakete sind nicht mit einander verbunden, es ist aber besser, fontenc vor inputenc in der Präambel zu laden. Mit
\usepackage[T1]{fontenc}
wählt man diejenige Codierung des Ausgabefonts so, die die meisten europäischen Sprachen (Deutsch, Französisch, Italienisch, Polnisch, etc.) enthält. Dies ist schon deshalb wichtig, weil TeX sonst Wörter mit akzentuierten Zeichen nicht korrekt trennen könnte.Durch das Laden von
\usepackage["encoding"]{inputenc}
kann man direkt akzentuierte (Nicht-ASCII) Zeichen über die Tastatur eingeben. Wichtig ist hier, dass „encoding“ mit der TeX-Datei selbst korrespondiert, dies hängt einerseits von der Maschine und andererseit vom genutzten Editor ab. Das gebräuchlichste Encoding heute ist utf8.Nutzt man nur
\usepackage[T1]{fontenc}
, und erhält man scheinbar richtigen Output, so ist die Datei vermutlich mit Latin-1 (ISO 8859-1) kodiert. Ausreichend ist dies jedoch nicht. Tippt man ein ß so erhält man SS in der Ausgabe, was falsch ist. Der richtige Aufruf ist daher
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
Wie arbeiten die beiden Pakete? Schauen wir uns dies am Beispiel vom „ä“ an. Zuerst muss man sich bewusst sein, dass TeX nichts über Datei-Encodings weiß, es sieht nur die Zeichenzahl. Wenn man in einem auf latin-1 eingestellten Editor ein „ä“ eintippt, speichert der Rechner die Zahl 228.
TeX liest die Datei, findet das Zeichen Nummer 228, die Makros vom
inputenc
Paket transformieren dies in ein \“a.Jetzt schlägt die Stunde von
fontenc
: Der Befehl \“a steht in einer Tabelle der akzentuierten Zeichen des Zeichensatzes, daraus machtfontenc
„Setze Zeichen 228“ im aktuell gewählten Font. Beide Zahlen stimmen hier überein, daher wäre für das „ä“ dasfontenc
ausreichend.Für ß stimmt dies nicht: Gespeichert wird die Zeichennummer 223,
inputenc
wandelt dies zu \ss,fontenc
transformiert dies zu „Setze Zeichen 255“, an dieser Stelle sitzt bei T1-codierten Fonts das ß