> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/de/weitere-themen/39-mltex-enctex-and-synctex-tex-extensions.md).

# MLTeX-, EncTeX- und SyncTeX-TeX-Erweiterungen

## Einige Hintergrunddetails zu TeX-Erweiterungen

TeX hat eine lange Entwicklungsgeschichte – inzwischen über 4 Jahrzehnte! In dieser Zeit wurden neue „Versionen“ von TeX entwickelt – etwa e-TeX, pdfTeX, XeTeX, LuaTeX und so weiter. Zusätzlich zu völlig neuen Engines mit einer ganzen Reihe zusätzlicher Funktionen gab es verschiedene *Erweiterungen* die sich typischerweise auf die Implementierung einer bestimmten Funktion konzentrieren, um Knuths ursprüngliche Software zu verbessern.

Mit dem Aufkommen moderner TeX-Engines wie XeTeX und LuaTeX ist der Bedarf an einigen älteren TeX-Erweiterungen sowie deren Nutzung zurückgegangen, da die neueren TeX-Engines leistungsstarke zusätzliche Funktionen mitbringen – etwa die integrierte Unterstützung für UTF-8-kodierten Text. Der Zweck dieser Seite ist es, einige Hinweise zu Erweiterungen, darunter MLTeX und EncTeX, zu geben, auf die Sie möglicherweise noch in den [Befehlszeilenoptionen der TeX-Engine](/latex/de/weitere-themen/44-tex-engine-command-line-options-for-pdftex-xetex-and-luatex.md). MLTeX und EncTeX werden beide nicht mehr weiterentwickelt, aber eine sehr nützliche Erweiterung, SyncTeX, wird weiterhin aktiv entwickelt und von Overleaf unterstützt.

## MLTeX

*Mehrsprachiges TeX*, oder MLTeX, wurde in den Jahren 1992–5 als Modifikation von TeX entwickelt, um die Silbentrennung von Wörtern mit Akzentbuchstaben mithilfe gewöhnlicher Computer Modern (CM)-Schriften zu ermöglichen.

### MLTeX aktivieren (einschalten)

MLTeX ist dafür ausgelegt, als Teil einer sogenannten `.fmt` (Formatdatei) zu funktionieren, die im Grunde eine vorkompilierte Binärversion eines Satzes von TeX-Makros ist. Um Formatdateien zu erstellen, versetzt man eine TeX-Engine in ihren sogenannten `INI` Modus, verarbeitet die Makrosammlung und gibt dann den `\dump` Befehl aus, um die `.fmt` Datei zu schreiben. Siehe [diesen Artikel](/latex/de/ausfuhrliche-artikel/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md) für eine Diskussion der INI-Modi.

Um MLTeX zu aktivieren, *für die Engines, die es unterstützen*, wie etwa pdfTeX, würde man schreiben

```
pdftex -ini -mltex *pdfetex.ini
```

wobei `pdfetex.ini` ist eine Datei, die in der TeX-Live-Distribution enthalten ist.

**Warum das Sternchen (`*`)?** Das Sternchen versetzt pdfTeX in den sogenannten „erweiterten Modus“, der die Unterstützung der e-TeX-Primitiven aktiviert. Wenn Sie es weglassen und `pdftex -ini -mltex pdfetex.ini` eingeben, erhalten Sie einen Fehler:

```
Dies ist pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 aktiviert.
MLTeX v2.2 aktiviert
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! Schwerwiegender e-TeX-Fehler: Diese Datei kann nur im erweiterten Modus verarbeitet werden;
  haben Sie vielleicht das Sternchen vergessen?
```

**Hinweis**: Anstelle eines Sternchens zum Aktivieren des „erweiterten Modus“ können Sie stattdessen die `-etex` Befehlszeilenoption verwenden:

```
pdftex -ini -etex -mltex pdfetex.ini
```

**Hinweis**: Die Verwendung der `-mltex` Option in der Befehlszeile mit einer `.fmt` Datei, die *nicht erzeugt* mit aktiviertem MLTeX *nicht* wird nicht funktionieren: MLTeX muss über eine geeignete Formatdatei „aktiviert“ werden.

Wenn Sie die `-mltex` Option während der `.fmt` Dateierstellung verwenden, wird eine boolesche Variable mit dem Wert „true“ in die `.fmt` Datei geschrieben, die der TeX-Engine mitteilt, dass die MLTeX-Erweiterungen aktiviert wurden und dem Benutzer zur Verfügung gestellt werden sollen. Wenn Sie die `-mltex` Option nicht explizit setzen, ist die entsprechende Variable „false“. Wenn der Wert dieser Variable als „false“ erkannt wird (wenn die `.fmt` Datei während eines TeX-Laufs erneut geladen wird), dann führt der Versuch, die MLTeX-Erweiterungen zu verwenden, zu einem `Undefinierter Befehl...` Fehler — weil die MLTeX-Primitiven nicht registriert (geladen) wurden und daher nicht erkannt werden.

Nach dem Ausführen von `pdftex -ini -mltex *pdfetex.ini` in der Befehlszeile sehen Sie etwas Ähnliches wie den folgenden Text, der zeigt, dass MLTeX v2.2 aktiviert ist:

```
Dies ist pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
\write18 aktiviert.
Wechsel in den erweiterten Modus
MLTeX v2.2 aktiviert
....
....
....
Beginne mit dem Schreiben in die Datei pdfetex.fmt
....
Keine Ausgabeseiten.
Protokoll in pdfetex.log geschrieben.
```

Dies führt zu einer `.fmt` Datei namens `pdfetex.fmt` die es Ihnen ermöglicht, die MLTeX-Befehle zu verwenden:

```
pdftex -fmt=pdfetex <yourfile.tex>
```

wobei `<yourfile.tex>` kann die MLTeX-spezifischen Primitiven nutzen

MLTeX wurde ursprünglich als separate Änderungsdatei verteilt, [mltex.ch](http://tug.ctan.org/systems/generic/mltex/mltex.ch), die mit Knuths Hauptquellcode ([`tex.web`](https://ctan.org/tex-archive/systems/knuth/dist/tex?lang=en)) zusammengeführt werden konnte, um eine neue Version von TeX namens MLTeX abzuleiten, die eine Reihe neuer Primitiven enthielt. Heute ist der MLTeX-Code aus `mltex.ch` ist in die Haupt- `tex.ch` Änderungsdatei integriert, die zum Erstellen nahezu aller TeX-Engines verwendet wird.

### MLTeX-Primitiven

Die folgenden Hinweise wurden größtenteils aus der Datei zusammengestellt und übernommen `web2c.info` enthalten in der [TeX Live](https://tug.org/texlive/) Distribution.

* **`\charsubdef`**: Definitionen zur Zeichenersetzung. Legt fest, wie eine akzentierte Zeichen-Glyphe (muss im aktuellen Font nicht unbedingt vorhanden sein) mithilfe von zwei Zeichen-Glyphen (die vorhanden sind) konstruiert wird.

  ```
  \charsubdef COMPOSITE [=] ACCENT BASE
  ```

  COMPOSITE, ACCENT und BASE sind jeweils Schrift-Glyphennummern, ausgedrückt in der üblichen TeX-Syntax: \`\e symbolisch, '145 für Oktal, "65 für Hexadezimal, 101 für Dezimal. Damit wird festgelegt, ob ein Zeichen-Glyphencode, entweder als einzelnes Zeichen eingegeben oder mit der `\char` Primitive, einer Schriftglyphe oder einer `\accent` Glyphenkonstruktion.

  Beispielsweise, wenn Sie für ein e-circumflex den Glyphencode 138 (dezimal) annehmen und die Computer Modern-Schriften verwenden, die den Zirkumflex-Akzent an Position 18 und das Kleinbuchstaben-‚e‘ an der üblichen ASCII-Position 101 dezimal haben, würden Sie verwenden `\charsubdef` wie folgt:

  ```
  \charsubdef 138 = 18 101
  ```
* **`\charsubdefmax`**: Legt den größten Wert in der `\charsubdef` Liste fest. Zum Beispiel:

  ```
  \charsubdefmax=-1 % alle Ersetzungen deaktivieren
  \charsubdefmax=256 % alle Ersetzungen aktivieren
  ```
* **`\tracingcharsubdef`**: Verfolgung von Ersetzungen. Um bei der Diagnose von Problemen mit `\charsubdef`, stellt MLTeX einen primitiven Parameter bereit, `\tracingcharsubdef`. Wenn er positiv ist, wird jede Verwendung von `\charsubdef` gemeldet. Das kann helfen, nachzuvollziehen, wann ein Zeichen neu definiert wird.

## EncTeX

EncTeX wurde in den Jahren 1997–2004 als TeX-Erweiterung entwickelt, die durch das Hinzufügen neuer Primitiven eine flexible Eingabe-/Ausgabe-Neukodierung bereitstellt – zum Beispiel ein Mittel zur Übersetzung von Eingaben auf dem Weg in TeX. Es ermöglicht beispielsweise die Übersetzung von Mehrbyte-Sequenzen wie UTF-8-Kodierung für den Einsatz in standardmäßigen 8-Bit-TeX-Engines.

### EncTeX aktivieren (einschalten)

Wie bei MLTeX ist auch EncTeX dafür ausgelegt, als Teil einer sogenannten `.fmt` (Formatdatei) zu funktionieren — siehe [MLTeX](#mltex), oben, für eine Erklärung von Formatdateien/INI-Modus.

Um EncTeX zu aktivieren, *für die Engines, die es unterstützen*, wie etwa pdfTeX, würde man eine mit EncTeX aktivierte Formatdatei erzeugen, indem man schreibt

```
pdftex -ini -enc *pdfetex.ini
```

wobei `pdfetex.ini` ist eine Datei, die in der TeX-Live-Distribution enthalten ist.

**Warum das Sternchen (`*`)?** Das Sternchen versetzt pdfTeX in den sogenannten „erweiterten Modus“, der die Unterstützung der e-TeX-Primitiven aktiviert. Wenn Sie es weglassen und `pdftex -ini -mltex pdfetex.ini` eingeben, erhalten Sie einen Fehler:

```
Dies ist pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 aktiviert.
MLTeX v2.2 aktiviert
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! Schwerwiegender e-TeX-Fehler: Diese Datei kann nur im erweiterten Modus verarbeitet werden;
  haben Sie vielleicht das Sternchen vergessen?
```

**Hinweis**: Anstelle eines Sternchens zum Aktivieren des „erweiterten Modus“ können Sie stattdessen die `-etex` Befehlszeilenoption verwenden:

```
pdftex -ini -etex -mltex pdfetex.ini
```

Die `-enc` Befehlszeilenoption veranlasst die pdfTeX-Engine, EncTeX zu aktivieren, indem einige Daten in die resultierende `pdfetex.fmt` Formatdatei geschrieben werden.

**Hinweis**: Die Verwendung der `-enc` Option in der Befehlszeile mit einer `.fmt` Datei, die *nicht erzeugt* mit aktiviertem EncTeX *nicht* wird nicht funktionieren: EncTeX muss über eine entsprechend erzeugte Formatdatei „aktiviert“ werden.

### EncTeX-Primitiven

EncTeX fügt einer TeX-Engine 10 neue primitive Befehle hinzu:

* 3 Primitiven in der ersten Version (1997):
* `\xordcode`
* `\xchrcode`
* `\xprncode`
* 7 zusätzliche Primitiven (für UTF-8-Unterstützung) im Jahr 2003:
* `\mubyte`
* `\endmubyte`
* `\mubytein`
* `\mubyteout`
* `\mubytelog`
* `\specialout`
* `\noconvert`

Die Verwendung und das Verhalten dieser Primitiven sind im [EncTeX reference manual](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf), das von dem Autor von EncTeX, Petr Olšák, verfasst wurde, gut dokumentiert. Um hier unnötige Wiederholungen zu vermeiden, sei interessierten Lesern dieses Dokument empfohlen.

### Weitere Informationen zu EncTeX

* [Zweite Version von EncTeX: UTF-8-Unterstützung](http://mirrors.ctan.org/systems/enctex/eurotex2003-enctex.pdf): ein Artikel von EncTeXs Autor Petr Olšák.
* [EncTeX reference manual](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf) (auf Englisch).

### Sowohl MLTeX als auch EncTeX aktivieren (einschalten)

Um sowohl MLTeX als auch EncTeX zu aktivieren, würde man eine geeignete Formatdatei mit einer Befehlszeile wie der folgenden erzeugen

```
pdftex -ini -enc -mltex *pdfetex.ini
```

wobei `pdfetex.ini` ist eine Datei, die in der TeX-Live-Distribution enthalten ist.

**Warum das Sternchen (`*`)?** Das Sternchen versetzt pdfTeX in den sogenannten „erweiterten Modus“, der die Unterstützung der e-TeX-Primitiven aktiviert. Wenn Sie es weglassen und `pdftex -ini -enc -mltex pdfetex.ini` eingeben, erhalten Sie einen Fehler:

```
Dies ist pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 aktiviert.
MLTeX v2.2 aktiviert
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! Schwerwiegender e-TeX-Fehler: Diese Datei kann nur im erweiterten Modus verarbeitet werden;
  haben Sie vielleicht das Sternchen vergessen?
```

**Hinweis**: Anstelle eines Sternchens zum Aktivieren des „erweiterten Modus“ können Sie stattdessen die `-etex` Befehlszeilenoption verwenden:

```
pdftex -ini -etex -enc -mltex pdfetex.ini
```

Nach dem Ausführen der obigen Befehlszeile würden Sie eine Nachricht wie die folgende sehen, die Sie darüber informiert, dass MLTeX und EncTeX beide aktiviert sind:

```
Dies ist pdfTeX, Version 3.14159265-2.6-1.40.19 (INITEX)
 \write18 aktiviert.
Wechsel in den erweiterten Modus
MLTeX v2.2 aktiviert
 encTeX v. Jun. 2004, Neukodierung aktiviert.
....
....
....
Beginne mit dem Schreiben in die Datei pdfetex.fmt
....
Keine Ausgabeseiten.
Protokoll in pdfetex.log geschrieben.
```

und den `pdfetex.fmt` Formatdatei, die sowohl MLTeX als auch EncTeX aktiviert, würde erzeugt.

## SyncTeX

Die SyncTeX-Erweiterung ist seit 2008 verfügbar und wird weiterhin aktiv von ihrem Erfinder Jérôme Laurens entwickelt. Sie ist weit verbreitet, auch bei Overleaf, und wird von allen heute verwendeten TeX-Engines unterstützt.

### Was macht SyncTeX?

Beim Anzeigen eines von TeX gesetzten Dokuments, vielleicht zum Korrekturlesen/Überprüfen vor der Einreichung bei einem Verlag, können Sie einen Fehler entdecken und ihn im TeX-Quellcode beheben müssen. Allerdings kann es schwierig sein, die richtige Stelle in der TeX-Datei zu finden, insbesondere wenn es sich um ein umfangreiches Dokument handelt. Ebenso möchten Sie vielleicht den umgekehrten Weg gehen: von einer Position in einer TeX-Quelldatei direkt zur Seitenposition im endgültig gesetzten PDF springen. In beiden Fällen besteht die Notwendigkeit, *zu synchronisieren* eine bestimmte Stelle in einer TeX-Datei und die entsprechende Stelle innerhalb einer Anzeige ihrer gesetzten Ergebnisse zu synchronisieren: und genau das bietet SyncTeX — eine Möglichkeit, Orte in TeX-Dateien automatisch mit den Seitenpositionen in gesetzten Dokumenten zu verknüpfen.

Wenn SyncTeX aktiviert ist, schreibt es eine spezielle Datei mit der Erweiterung `.synctex.gz` (gzip-komprimiert) oder `.synctex` (unkomprimiert) abhängig von den [SyncTeX bereitgestellten Befehlszeilenoptionen](#synoptions). SyncTeX-fähige Texteditoren und (meistens) PDF-Betrachter können diese Dateien verwenden, um die notwendige Synchronisierung zwischen Eingabe (TeX-Code) und Ausgabe (Anzeige des gesetzten PDFs) durchzuführen. Offensichtlich kann dies nicht einfach „passieren“, ohne dass der Texteditor und der PDF-Dokumentbetrachter des Benutzers über eine passende Funktionalität verfügen, die die Kommunikation von Positionen in Textdatei/PDF-Betrachter ermöglicht — basierend auf Daten, die in der `.synctex.gz` (oder `.synctex`) von SyncTeX ausgegebenen Datei enthalten sind.

Zusätzlich zur Funktionalität innerhalb der TeX-Engine — um `.synctex.gz` Dateien zu erzeugen — bietet SyncTeX auch einen speziellen [Parser](https://github.com/jlaurens/synctex/) der `.synctex.gz` (oder `.synctex`)-Dateien liest, um die relevanten Seiten-/Zeilenpositionsinformationen zu extrahieren. Anwendungen nutzen diesen Parser, um Unterstützung für SyncTeX bereitzustellen.

### SyncTeX aktivieren (einschalten)

SyncTeX-fähige TeX-Engines haben zwei Möglichkeiten, SyncTeX zu aktivieren/deaktivieren:

* eine Befehlszeilenoption: `-synctex=NUMBER`
* ein Befehl in der `.tex-Datei` Datei: die `\synctex` primitiver

### SyncTeX in der Befehlszeile verwenden

Sie können den `-synctex=NUMBER` Option, wenn Sie eine TeX-Engine ausführen, die SyncTeX unterstützt, wie etwa pdfTeX.

#### Beispiele

* SyncTeX aktivieren: Ausgabe `.synctex.gz` (gzip-komprimierte Datei):

```
pdftex -synctex=1 myfile.tex
```

Erzeugt `myfile.synctex.gz`

* SyncTeX aktivieren: Ausgabe `.synctex` (unkomprimierte Datei):

```
pdftex -synctex=-1 myfile.tex
```

Erzeugt `myfile.synctex`

* SyncTeX deaktivieren:

```
pdftex -synctex=0 myfile.tex
```

Es wird keine SyncTeX-Ausgabe erzeugt.

### Die einzige Primitive von SyncTeX

SyncTeX stellt eine Primitive bereit, `\synctex`, die Benutzer zu ihrer `.tex-Datei` Datei:

* SyncTeX aktivieren: `\synctex=1`
* SyncTeX deaktivieren: `\synctex=0`

### Weitere Informationen zu SyncTeX

* [Ein TUGBoat-Artikel von Jérôme Laurens](http://www.tug.org/TUGboat/tb29-3/tb93laurens.pdf), dem Autor von SyncTeX.
* Die [GitHub-Repository](https://github.com/jlaurens/synctex) des SyncTeX-Parsers.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/de/weitere-themen/39-mltex-enctex-and-synctex-tex-extensions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
