> 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/nl/meer-onderwerpen/39-mltex-enctex-and-synctex-tex-extensions.md).

# MLTeX EncTeX- en SyncTeX-TeX-uitbreidingen

## Enkele achtergronddetails over TeX-extensies

TeX kent een lange ontwikkelingsgeschiedenis—nu al meer dan 4 decennia! In die tijd zijn nieuwe “versies” van TeX ontwikkeld—zoals e-TeX, pdfTeX, XeTeX, LuaTeX en dergelijke. Naast volledig nieuwe engines, met een hele reeks extra functies, zijn er verschillende *extensies* ontwikkeld die doorgaans gericht zijn op de implementatie van een specifieke functie om Knuths oorspronkelijke software uit te breiden.

Met de komst van moderne TeX-engines, zoals XeTeX en LuaTeX, is de behoefte aan, en het gebruik van, sommige oudere TeX-extensies afgenomen, omdat de nieuwere TeX-engines krachtige extra functionaliteit bieden—zoals ingebouwde ondersteuning voor UTF-8-gecodeerde tekst. Het doel van deze pagina is om enkele notities te geven over extensies, waaronder MLTeX en EncTeX, waarnaar je misschien nog steeds verwijzingen ziet in de [opdrachtregelopties van de TeX-engine](/latex/nl/meer-onderwerpen/44-tex-engine-command-line-options-for-pdftex-xetex-and-luatex.md). MLTeX en EncTeX worden beide niet langer ontwikkeld, maar één zeer nuttige extensie, SyncTeX, wordt nog steeds actief ontwikkeld en wordt ondersteund door Overleaf.

## MLTeX

*Meertalige TeX*, of MLTeX, werd ontwikkeld in de jaren 1992–5 als een aanpassing van TeX om woordafbreking van woorden met accenten mogelijk te maken met gewone Computer Modern (CM)-lettertypen.

### MLTeX activeren (inschakelen)

MLTeX is ontworpen om te werken als onderdeel van een zogenoemd `.fmt` (formatbestand), dat in feite een vooraf gecompileerde binaire versie is van een verzameling TeX-macro's. Om formatbestanden te maken zet je een TeX-engine in de zogenoemde `INI` modus, verwerk je de macroverzameling en geef je vervolgens het `\dump` commando om het `.fmt` bestand weg te schrijven. Zie [dit artikel](/latex/nl/diepgaande-artikelen/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md) voor een bespreking van INI-modi.

Om MLTeX in te schakelen, *voor de engines die dit ondersteunen*, zoals pdfTeX, zou je schrijven

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

waar `pdfetex.ini` is een bestand dat is opgenomen in de TeX Live-distributie.

**Waarom de asterisk (`*`)?** De asterisk zet pdfTeX in de zogenoemde “extended mode”, waarmee ondersteuning voor de e-TeX-primitieven wordt ingeschakeld. Als je die weglaat en typt `pdftex -ini -mltex pdfetex.ini` krijg je een foutmelding:

```
Dit is pdfTeX, versie 3.14159265-2.6-1.40.19 (INITEX)
 \write18 ingeschakeld.
MLTeX v2.2 ingeschakeld
(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

! e-TeX fatale fout: dit bestand kan alleen in uitgebreide modus worden verwerkt;
  ben je misschien de asterisk vergeten?
```

**Opmerking**: In plaats van een asterisk te gebruiken om “extended mode” in te schakelen, kun je de `-etex` opdrachtregeloptie gebruiken:

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

**Opmerking**: Het gebruik van de `-mltex` optie op de opdrachtregel met een `.fmt` bestand dat *niet gegenereerd* is met ingeschakelde MLTeX zal *niet* werken: MLTeX moet worden “geactiveerd” via een passend formatbestand.

Wanneer je de `-mltex` optie tijdens `.fmt` het aanmaken van het formatbestand wordt een booleaanse variabele met de waarde “true” geschreven in het `.fmt` bestand, waarmee de TeX-engine wordt verteld dat de MLTeX-extensies zijn geactiveerd en aan de gebruiker beschikbaar moeten worden gemaakt. Als je de `-mltex` optie niet expliciet instelt, dan zal de overeenkomstige variabele “false” zijn. Als de waarde van die variabele als “false” wordt gedetecteerd (wanneer dat `.fmt` bestand tijdens een TeX-run opnieuw wordt geladen), dan zal het proberen de MLTeX-extensies te gebruiken resulteren in een `Niet-gedefinieerd commando...` fout—omdat de MLTeX-primitieven niet geregistreerd (geladen) zullen zijn en daarom niet worden herkend.

Na het uitvoeren van `pdftex -ini -mltex *pdfetex.ini` op de opdrachtregel zul je iets zien dat lijkt op de volgende tekst, waaruit blijkt dat MLTeX v2.2 is ingeschakeld:

```
Dit is pdfTeX, versie 3.14159265-2.6-1.40.19 (INITEX)
\write18 ingeschakeld.
ingaan op uitgebreide modus
MLTeX v2.2 ingeschakeld
....
....
....
Begint met wegschrijven naar bestand pdfetex.fmt
....
Geen pagina's uitvoer.
Transcript geschreven naar pdfetex.log.
```

Dit resulteert in een `.fmt` bestand met de naam `pdfetex.fmt` waarmee je de MLTeX-commando's kunt gebruiken:

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

waar `<yourfile.tex>` kan gebruikmaken van de MLTeX-specifieke primitieven

MLTeX werd oorspronkelijk verspreid als een afzonderlijk wijzigingsbestand, [mltex.ch](http://tug.ctan.org/systems/generic/mltex/mltex.ch), dat kon worden samengevoegd met Knuths hoofdbroncode ([`tex.web`](https://ctan.org/tex-archive/systems/knuth/dist/tex?lang=en)) om een nieuwe versie van TeX af te leiden, MLTeX genaamd, die een aantal nieuwe primitieven bevatte. Tegenwoordig is de MLTeX-code uit `mltex.ch` opgenomen in het hoofd `tex.ch` wijzigingsbestand, dat wordt gebruikt om bijna alle TeX-engines te bouwen.

### MLTeX-primitieven

De volgende notities zijn grotendeels opgesteld op basis van en overgenomen uit het bestand `web2c.info` dat in de [TeX Live](https://tug.org/texlive/) distributie is opgenomen.

* **`\charsubdef`**: Definities voor tekenvervanging. Geeft aan hoe een geaccentueerd teken-glyph (niet noodzakelijk aanwezig in het huidige lettertype) kan worden samengesteld uit twee teken-glyphs (die wel bestaan).

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

  COMPOSITE, ACCENT en BASE zijn alle font-glyphnummers, uitgedrukt in de gebruikelijke TeX-syntaxis: \`\e symbolisch, '145 voor octaal, "65 voor hex, 101 voor decimaal. Daarmee wordt dus gedefinieerd of een teken-glyphcode, ingevoerd als één enkel teken of met behulp van de `\char` primitieve, wordt toegewezen aan een font-glyph of aan een `\accent` glyphconstructie.

  Als je bijvoorbeeld uitgaat van glyphcode 138 (decimaal) voor een e-circumflex en je gebruikt de Computer Modern-lettertypen, die het circumflex-accent op positie 18 hebben en de kleine ‘e’ op de gebruikelijke ASCII-positie 101 decimaal, dan gebruik je `\charsubdef` als volgt:

  ```
  \charsubdef 138 = 18 101
  ```
* **`\charsubdefmax`**: Stelt de grootste waarde in de `\charsubdef` lijst in. Bijvoorbeeld:

  ```
  \charsubdefmax=-1 % schakel alle substituties uit
  \charsubdefmax=256 % schakel alle substituties in
  ```
* **`\tracingcharsubdef`**: Substituties traceren. Om problemen met `\charsubdef`MLTeX `\tracingcharsubdef`. Als deze positief is, wordt elk gebruik van `\charsubdef` gerapporteerd. Dit kan helpen achterhalen wanneer een teken opnieuw wordt gedefinieerd.

## EncTeX

EncTeX werd ontwikkeld in de jaren 1997–2004 als een TeX-extensie die flexibele input/output-hercodering biedt door toevoeging van nieuwe primitieve commando's—bijvoorbeeld een manier om invoer te vertalen op weg naar TeX. Het maakt bijvoorbeeld de vertaling van multibytereeksen, zoals UTF-8-codering, mogelijk voor gebruik in standaard 8-bit TeX-engines.

### EncTeX activeren (inschakelen)

Net als MLTeX is EncTeX ook ontworpen om te werken als onderdeel van een zogenoemd `.fmt` (formatbestand)—zie [MLTeX](#mltex), hierboven, voor een uitleg van formatbestanden/INI-modus.

Om EncTeX in te schakelen, *voor de engines die dit ondersteunen*, zoals pdfTeX, maak je een EncTeX-ingeschakeld formatbestand door

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

waar `pdfetex.ini` is een bestand dat is opgenomen in de TeX Live-distributie.

**Waarom de asterisk (`*`)?** De asterisk zet pdfTeX in de zogenoemde “extended mode”, waarmee ondersteuning voor de e-TeX-primitieven wordt ingeschakeld. Als je die weglaat en typt `pdftex -ini -mltex pdfetex.ini` krijg je een foutmelding:

```
Dit is pdfTeX, versie 3.14159265-2.6-1.40.19 (INITEX)
 \write18 ingeschakeld.
MLTeX v2.2 ingeschakeld
(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

! e-TeX fatale fout: dit bestand kan alleen in uitgebreide modus worden verwerkt;
  ben je misschien de asterisk vergeten?
```

**Opmerking**: In plaats van een asterisk te gebruiken om “extended mode” in te schakelen, kun je de `-etex` opdrachtregeloptie gebruiken:

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

De `-enc` opdrachtregeloptie zorgt ervoor dat de pdfTeX-engine EncTeX inschakelt door enkele gegevens naar het resulterende `pdfetex.fmt` formatbestand te schrijven.

**Opmerking**: Het gebruik van de `-enc` optie op de opdrachtregel met een `.fmt` bestand dat *niet gegenereerd* met ingeschakelde EncTeX zal *niet* werken: EncTeX moet worden “geactiveerd” via een passend gegenereerd formatbestand.

### EncTeX-primitieven

EncTeX voegt 10 nieuwe primitieve commando's toe aan een TeX-engine:

* 3 primitieve commando's in de eerste versie (1997):
* `\xordcode`
* `\xchrcode`
* `\xprncode`
* 7 extra primitieve commando's (voor UTF-8-ondersteuning) in 2003:
* `\mubyte`
* `\endmubyte`
* `\mubytein`
* `\mubyteout`
* `\mubytelog`
* `\specialout`
* `\noconvert`

Het gebruik en gedrag van deze primitieve commando's zijn goed gedocumenteerd in de [EncTeX-handleiding](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf), geschreven door de auteur van EncTeX, Petr Olšák. Om hier onnodige duplicatie te voorkomen, wordt geïnteresseerde lezers naar dat document verwezen.

### Meer informatie over EncTeX

* [Tweede versie van EncTeX: UTF-8-ondersteuning](http://mirrors.ctan.org/systems/enctex/eurotex2003-enctex.pdf): een artikel van de auteur van EncTeX, Petr Olšák.
* [EncTeX-handleiding](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf) (in het Engels).

### MLTeX en EncTeX tegelijk activeren (inschakelen)

Om zowel MLTeX als EncTeX in te schakelen, genereer je een geschikt formatbestand met een opdrachtregel zoals

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

waar `pdfetex.ini` is een bestand dat is opgenomen in de TeX Live-distributie.

**Waarom de asterisk (`*`)?** De asterisk zet pdfTeX in de zogenoemde “extended mode”, waarmee ondersteuning voor de e-TeX-primitieven wordt ingeschakeld. Als je die weglaat en typt `pdftex -ini -enc -mltex pdfetex.ini` krijg je een foutmelding:

```
Dit is pdfTeX, versie 3.14159265-2.6-1.40.19 (INITEX)
 \write18 ingeschakeld.
MLTeX v2.2 ingeschakeld
(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

! e-TeX fatale fout: dit bestand kan alleen in uitgebreide modus worden verwerkt;
  ben je misschien de asterisk vergeten?
```

**Opmerking**: In plaats van een asterisk te gebruiken om “extended mode” in te schakelen, kun je de `-etex` opdrachtregeloptie gebruiken:

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

Na het uitvoeren van bovenstaande opdrachtregel zie je een bericht, zoals het volgende, dat aangeeft dat MLTeX en EncTeX beide zijn ingeschakeld:

```
Dit is pdfTeX, versie 3.14159265-2.6-1.40.19 (INITEX)
 \write18 ingeschakeld.
ingaan op uitgebreide modus
MLTeX v2.2 ingeschakeld
 encTeX v. Jun. 2004, hercodering ingeschakeld.
....
....
....
Begint met wegschrijven naar bestand pdfetex.fmt
....
Geen pagina's uitvoer.
Transcript geschreven naar pdfetex.log.
```

en de `pdfetex.fmt` formatbestand, waarmee zowel MLTeX als EncTeX worden ingeschakeld, zou worden geproduceerd.

## SyncTeX

De SyncTeX-extensie is sinds 2008 beschikbaar en wordt nog steeds actief ontwikkeld door de maker, Jérôme Laurens. Ze wordt veel gebruikt, ook door Overleaf, en wordt ondersteund door alle TeX-engines die tegenwoordig in gebruik zijn.

### Wat doet SyncTeX?

Wanneer je een document bekijkt dat door TeX is gezet, misschien om het te proeflezen/controleren voordat je het naar een uitgever verstuurt, kun je een fout ontdekken en die in de TeX-broncode moeten herstellen. Het vinden van de juiste locatie in het TeX-bestand kan echter lastig zijn, vooral als het een omvangrijk document is. Omgekeerd wil je misschien juist de andere kant op: springen van een positie in een TeX-bronbestand rechtstreeks naar de paginalocatie in de uiteindelijke gezette PDF. In beide gevallen is er behoefte aan het *synchroniseren* een bepaalde locatie in een TeX-bestand en de overeenkomstige locatie binnen een weergave van de gezette resultaten: en dat is wat SyncTeX biedt—een manier om locaties in TeX-bestanden automatisch te koppelen aan de paginaposities in gezette documenten.

Als SyncTeX is ingeschakeld, schrijft het een speciaal bestand met extensie `.synctex.gz` (gz-gecomprimeerd) of `.synctex` (ongecomprimeerd), afhankelijk van de [opdrachtregelopties die aan SyncTeX worden meegegeven](#synoptions). Teksteditors met SyncTeX-ondersteuning en (meestal) PDF-viewers kunnen die bestanden gebruiken om de nodige synchronisatie uit te voeren tussen invoer (TeX-code) en uitvoer (weergave van de gezette PDF). Uiteraard kan dit niet zomaar “gebeuren” zonder dat de teksteditor en PDF-viewer van de gebruiker de juiste functionaliteit hebben om locaties in het tekstbestand en de PDF-viewer met elkaar te laten communiceren—op basis van gegevens in het `.synctex.gz` (of `.synctex`) -bestand dat door SyncTeX wordt weggeschreven.

Naast functionaliteit binnen de TeX-engine—om `.synctex.gz` bestanden te genereren—biedt SyncTeX ook een speciale [parser](https://github.com/jlaurens/synctex/) die `.synctex.gz` (of `.synctex`) bestanden leest om de relevante pagina-/regel-locatie-informatie te extraheren. Toepassingen gebruiken die parser om ondersteuning voor SyncTeX te bieden.

### SyncTeX activeren (inschakelen)

TeX-engines met SyncTeX-ondersteuning hebben twee manieren om SyncTeX te activeren/deactiveren:

* een opdrachtregeloptie: `-synctex=NUMBER`
* een commando in het `.tex` bestand: het `\synctex` primitieve

### SyncTeX gebruiken op de opdrachtregel

Je kunt het `-synctex=NUMBER` optie wanneer je een TeX-engine uitvoert die SyncTeX ondersteunt, zoals pdfTeX.

#### Voorbeelden

* SyncTeX inschakelen: uitvoer `.synctex.gz` (gz-gecomprimeerd bestand):

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

Produceert `myfile.synctex.gz`

* SyncTeX inschakelen: uitvoer `.synctex` (ongecomprimeerd bestand):

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

Produceert `myfile.synctex`

* SyncTeX uitschakelen:

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

Er wordt geen SyncTeX-uitvoer geproduceerd.

### SyncTeX's enige primitieve

SyncTeX biedt één primitieve, `\synctex`, die gebruikers kunnen toevoegen aan hun `.tex` bestand:

* SyncTeX inschakelen: `\synctex=1`
* SyncTeX uitschakelen: `\synctex=0`

### Meer informatie over SyncTeX

* [Een TUGBoat-artikel van Jérôme Laurens](http://www.tug.org/TUGboat/tb29-3/tb93laurens.pdf), de auteur van SyncTeX.
* De [GitHub-repository](https://github.com/jlaurens/synctex) van de SyncTeX-parser.


---

# 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/nl/meer-onderwerpen/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.
