# PdfTeX

pdfTeX ist eine Erweiterung des Textsatzprogramms TeX, mit der aus TeX-, LaTeX- und ConTeXt-Quellen unmittelbar PDF-Dateien erzeugt werden können. Es wurde ursprünglich von Hàn Thế Thành im Rahmen seines Promotionsprojekts an der Masaryk-Universität Brünn entwickelt.
Die Bedeutung von pdfTeX ergibt sich vor allem daraus, dass PDF faktisch die „alten“ TeX-Ausgabeformate DVI und PostScript verdrängt hat.
PdfTeX ist in den neueren TeX-Distributionen (TeX Live und das darauf aufbauende MacTeX, MiKTeX) enthalten und wird dort als Standard-TeX-Engine verwendet. Die Aufnahme von pdfTeX in die TeX-Distribution teTeX 1.0 war für die Verbreitung des Systems von großer Bedeutung.

## Geschichte

Die Idee zu dieser TeX-Erweiterung entstand Anfang der 1990er Jahre, als Jiří Zlatuška und Philip Taylor ihre Vorstellungen zur weiteren Entwicklung von TeX mit Donald E. Knuth in Stanford diskutierten. Als Knuth später an die Universität Brünn kam, um einen Ehrendoktortitel von der dortigen Informatik-Fakultät entgegenzunehmen, kam es zu weiteren ermutigenden Gesprächen, diesmal auch mit Hàn Thế Thành. Weitere wichtige Beiträge zur Entwicklung von pdfTeX stammen von Pavel Janík, Heiko Oberdiek, Jiří Osoba, Ricardo Sanchez Carmenes, Robert Schlicht und Martin Schröder.
PdfTeX basiert auf den TeX-Quellen und auf Web2c. Ab Version 1.40 sind auch die ε-TeX-Quellen in pdfTeX enthalten.
Die Entwicklung von pdfTeX ist so gut wie abgeschlossen. Bis zum Release der Version 1.50.0 sollen nur noch Fehler bereinigt werden. Als Nachfolger von pdfTeX gilt LuaTeX.

## Merkmale von pdfTeX
### Unterschiede zu TeX

Der Hauptunterschied zwischen TeX und pdfTeX besteht in der Erzeugung von PDF-Dateien. Das Ausgabeformat von TeX ist DVI. Um hieraus PDF-Dateien für die Druckvorstufe zu erzeugen, muss eine weitere Bearbeitung durch einen Treiber erfolgen. Dieser Schritt entfällt bei der Verwendung von pdfTeX, weil damit das PDF direkt erzeugt werden kann.
Hierdurch ist es möglich, PDF-spezifische Features wie Hypertextverweise und ein Inhaltsverzeichnis durch LaTeX-Zusatzpakete wie vor allem hyperref unmittelbar zu erzeugen. Auch PDF-Formulare können erzeugt werden.
Im Gegenzug funktionieren Pakete, die auf der Konvertierung von DVI zu PostScript aufsetzen, mit pdfTeX nicht (vor allem PSTricks). Das gilt insbesondere auch für das Einbetten von PostScript-Grafiken. Diese müssen zuvor in ein Format umgesetzt werden, das von pdfTeX unmittelbar verarbeitet werden kann (PNG, JPEG, JBIG2 oder PDF). Als Alternative zur Erzeugung von Grafiken mit LaTeX wurde das System PGF/TikZ entwickelt.
Weil pdfTeX die TeX-Quellen enthält, ist es auch möglich, eine DVI-Ausgabe unmittelbar mit pdfTeX zu erzeugen. Sie wird mit derjenigen von TeX identisch sein, sofern die mikrotypographischen Erweiterungen von pdfTeX nicht verwendet worden sind.

### Mikrotypographische Erweiterungen

Die beiden wichtigsten Fähigkeiten von pdfTeX liegen im mikrotypographischen Bereich. Zum einen wurde das sogenannte protruding implementiert (der optische Randausgleich, auch margin kerning oder hanging punctuation genannt), zum anderen gibt es die sogenannte Schriftstärkenveränderung (font expansion), womit Arbeiten von Hermann Zapf umgesetzt werden, deren Ziel es war, einen einheitlichen Grauwert der Druckseite zu bewirken. Für LaTeX erleichtert das Paket microtype, das auch das Nachfolgersystem LuaTeX unterstützt, den Zugriff auf diese Features.

### Unterstützung von TrueType- und Type-1-Schriften

Außerdem bietet pdfTeX eine native Unterstützung von TrueType- und Type-1-Schriften, die unmittelbar in PDF-Dateien eingebettet werden können. OpenType-Schriften können dagegen nur eingeschränkt verwendet werden. Deshalb wurden Nachfolgersysteme wie LuaTeX und XeTeX entwickelt, die einen rein unicode-basierten Produktionsprozess für LaTeX-Quellen bieten.

## Benutzung

Um LaTeX-Quelltexte zu verarbeiten, kann unmittelbar das Programm pdflatex aufgerufen werden. Für ConTeXt-Dokumente wurde pdfTeX beim Aufruf von texexec standardmäßig verwendet, aktuelle Versionen von ConTeXt verwenden LuaMetaTeX.