> 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/diepgaande-artikelen/49-the-tex-family-tree-latex-pdftex-xetex-luatex-and-context.md).

# De TeX-stamboom: LaTeX, pdfTeX, XeTeX, LuaTeX en ConTeXt

Het LaTeX-verhaal gaat helemaal terug tot 1977, toen Donald Knuth voor het eerst het belang inzag van een opmaakprogramma van hoge kwaliteit. Het is een opmerkelijk bewijs van de kwaliteit van LaTeX dat het systeem dat hij toen bedacht, vandaag de dag nog steeds het beste hulpmiddel voor de klus is, hoewel er sindsdien in de loop der decennia veel nuttige toevoegingen zijn gedaan. LaTeX is in feite een van deze toevoegingen aan het oorspronkelijke systeem dat Donald Knuth ontwikkelde, dat heette [TeX](http://www.tug.org/).

Om je streetcred in de LaTeX-wereld te behouden, moet je het schrijven met een hoofdletter T en X, en het uitspreken als Lay-Tech. Dit komt doordat de X in TeX eigenlijk een hoofdletter Chi (χ) uit het Grieks is. Latex met een normale hoofdlettergebruik en uitspraak is een soort rubber!

## Het oorspronkelijke TeX

Er is een grote familie van hulpmiddelen die inmiddels zijn afgeleid van TeX, en het kan er op het eerste gezicht uitzien als een lijst met onzinwoorden: LaTeX, pdfTeX, XeLaTeX, LuaTeX, ConTeXt, enzovoort. De voorouder van dit alles is natuurlijk het oorspronkelijke TeX-programma van Knuth. Dit neemt een document in platte tekst en zet het om in een prachtig opgemaakt document. Knuth was nogal precies wat betreft opmaak en de aandacht voor detail in TeX is duidelijk te zien. Een voorbeeld van een TeX-document zou er ongeveer zo uit kunnen zien:

```latex
\TeX{} is goed in het opmaken van woorden als `fjord', `efficiency',
en `fiasco'. Het is ook goed in het opmaken van wiskunde zoals,
$a^2 + b^2 = c^2$.
\bye
```

De uitvoer hiervan na verwerking door het TeX-programma is:

![Texsample.png](/files/c4d81ff49091ccd953df3d976d622103968643c0)

Let op hoe de combinaties van letters 'fi', 'fj' en 'ff' in de voorbeeldwoorden op een prettige manier in elkaar overlopen, en hoe de wiskundige symbolen goed zijn gespatieerd. Op grotere schaal doet TeX het erg goed bij het afbreken van regels op de juiste plaatsen om goed uitgevulde tekst te maken, met waar nodig afbrekingen aan het einde van een regel.

Niet alleen zet het tekst mooi op, `\bye` en `\TeX` in het voorbeeld hierboven. Deze kunnen eenvoudige dingen doen zoals de lettergrootte wijzigen, of de lay-out van tekst veranderen, maar ook veel krachtigere dingen zoals het bijhouden van een sectietelling om je pagina's kruisverwijzingen te geven, of automatisch een inhoudsopgave op te bouwen. Het TeX-programma heeft ongeveer 300 ingebouwde opdrachten, maar andere opdrachten kunnen erin worden gedefinieerd. Donald Knuth schreef nog zo'n 600 nuttige opdrachten binnen TeX, in een pakket genaamd Plain TeX, dat sommige veelvoorkomende zetwerk-taken eenvoudiger maakt.

## LaTeX

De opdrachten in TeX en Plain TeX zijn nog steeds vrij basaal en het is niet eenvoudig om er ingewikkelde dingen mee te doen. Om hierbij te helpen, creëerde Leslie Lamport [LaTeX](http://www.latex-project.org/) in het begin van de jaren 80 om een taal op hoger niveau te bieden om mee te werken dan TeX. LaTeX is een set opdrachten die zijn gedefinieerd in termen van de onderliggende TeX-opdrachten, vaak op heel veel lagen van abstractie. Alle opdrachten die je in een LaTeX-document gebruikt, zijn in feite gewoon ingewikkelde sets van TeX-opdrachten daaronder, tenzij je natuurlijk rechtstreeks een TeX-opdracht gebruikt! Concepten als pakketten (`\usepackage{...}`), omgevingen (`\begin{environment} ... \end{environment}`), en documentklassen (`\documentclass{...}`) werden allemaal geïntroduceerd door Leslie Lamport in LaTeX.

Door een gestandaardiseerd pakketsysteem voor LaTeX te creëren, liet Leslie Lamport de gemeenschap enorm groeien. Er zijn nu duizenden en duizenden LaTeX-pakketten beschikbaar waarmee je alles kunt opmaken, van subfiguren tot breipatronen. Er zijn ook veel documentklassen beschikbaar voor verschillende soorten documenten, of je nu een boek, een labrapport of een cv schrijft. Veel uitgevers en tijdschriften hebben hun eigen aangepaste documentklassen die hun documenten opmaken zoals zij dat willen.

## pdfTeX

Het TeX-programma is opmerkelijk stabiel voor een stuk software van meer dan 20 jaar oud; Knuth verklaarde in 1989 dat het functioneel compleet was, en sindsdien zijn er alleen bugfixes aangebracht. Natuurlijk heeft dit de aanzienlijke en voortdurende ontwikkeling van LaTeX niet tegengehouden, omdat dat zelf in TeX is geschreven. In feite heeft de stabiliteit van TeX ervoor gezorgd dat pakketten zoals LaTeX, die erop zijn gebouwd, konden floreren.

Dit wil niet zeggen dat het onderliggende TeX-programma de afgelopen 20 jaar geen vooruitgang heeft geboekt. Integendeel zelfs, verbeteringen zijn gewoon naast TeX aangebracht, waarbij het oorspronkelijke TeX stabiel is gebleven. De belangrijkste verbetering van de jaren 90 was de creatie van [pdfTeX](http://www.tug.org/applications/pdftex/) door Hàn Thế Thành voor zijn proefschrift. Het oorspronkelijke TeX-programma voert het opgemaakte document uit in een aangepast formaat genaamd DVI (DeVice Independent format), dat later kan worden omgezet in een PostScript-bestand om af te drukken. Het PDF-formaat kwam echter in 1993 en we zien vandaag de dag duidelijk dat het als beter formaat dan PostScript heeft gewonnen. Er zijn veel functies die PDF beter maken, zoals hyperlinks tussen secties, een metadatasectie waarmee je een inhoudsopgave aan de linkerkant van je PDF-viewer kunt zien, en ondersteuning voor een breder en moderner scala aan afbeeldingsformaten. pdfTeX is een aanpassing van TeX die het mogelijk maakt direct naar PDF uit te voeren en zo gebruik te maken van deze extra functies.

Wanneer je vandaag een LaTeX-distributie op je systeem installeert, wordt deze eigenlijk geleverd met twee verschillende programma's: `tex` en `pdftex`. Het wordt ook geleverd met nog twee programma's daarbovenop: `latex` en `pdflatex`, maar deze zijn eigenlijk slechts wrappers om `tex` en `pdftex` respectievelijk. Deze laden eerst de LaTeX-pakketten voordat ze je document verwerken, maar zijn nog steeds TeX van binnen. Als je `latex` of `tex` dan krijg je een DVI-bestand dat je kunt omzetten in een PostScript-bestand of een PDF, maar als je `pdflatex` krijg je direct een PDF.

Grotendeels, `pdftex` en `pdflatex` zijn verbeteringen ten opzichte van `tex` en `latex`, maar er is één nadeel. Het oorspronkelijke TeX en het DVI-formaat ondersteunen Encapsulated PostScript-bestanden (`.eps`) omdat deze gemakkelijk kunnen worden opgenomen in PostScript-bestanden (verkregen door het omzetten van `.dvi` bestanden naar PostScript via [`Dvips`](https://www.tug.org/texinfohtml/dvips.html)). Echter, `pdftex` kan geen EPS-bestanden opnemen, en je moet in plaats daarvan PDF's gebruiken (die uit EPS-bestanden kunnen worden gemaakt met het commando `epstopdf` dat doorgaans met LaTeX-distributies wordt meegeleverd). In ruil voor dit nadeel voegt pdfTeX echter ondersteuning toe voor `.png`, `.jpg` en `.pdf` afbeeldingen, terwijl het oorspronkelijke TeX alleen .eps ondersteunt (via [`Dvips`](https://www.tug.org/texinfohtml/dvips.html)).

## XeLaTeX and LuaTeX

Tot nu toe hebben we gezien dat TeX zich sinds zijn ontstaan op twee verschillende manieren heeft ontwikkeld: met de toevoeging van gemakkelijker te gebruiken opdrachten boven op het oorspronkelijke systeem (LaTeX), en met updates van het onderliggende programma om PDF-uitvoer te ondersteunen (pdfTeX). Het verhaal eindigt daar echter niet en er zijn voortdurende pogingen geweest om TeX te moderniseren. In 2004 creëerde Jonathon Kew [XeTeX](http://tug.org/xetex/), wat nog een aanpassing is van de onderliggende TeX-engine, dit keer om een breder scala aan tekens te ondersteunen dan alleen gewone Engelse cijfers en letters, en om ondersteuning voor moderne lettertypeformaten toe te voegen. Dit maakt schrijven in vreemde talen veel gemakkelijker, en stelt je ook in staat om lettertypen binnen LaTeX te gebruiken die traditioneel alleen beschikbaar waren in je tekstverwerker.

[LuaTeX](http://www.luatex.org/) is een poging om het oorspronkelijke TeX-programma uit te breiden met een zinvollere programmeertaal. Hoewel je in principe absoluut alles vanuit TeX kunt doen, is het in de praktijk een zeer onhandige programmeertaal om mee te werken, als het al überhaupt een programmeertaal genoemd kan worden. Veel van de interne onderdelen van LaTeX zijn ingewikkeld en moeilijk te begrijpen voor buitenstaanders, omdat ze alleen in TeX moeten werken. LuaTeX wordt uitgebreid met de gelijknamige scripttaal, Lua, die een eenvoudige en stabiele taal is, ideaal voor het schrijven van ingewikkelde macro's. Vanaf 2012 is het nog steeds in actieve ontwikkeling en de API kan nog veranderen, maar het is nog steeds zeer bruikbaar.

## ConTeXt

We hebben LaTeX genoemd als een uitbreiding op de opdrachten die beschikbaar zijn in TeX, maar het is niet het enige pakket dat TeX op een significante manier heeft uitgebreid. [ConTeXt](http://wiki.contextgarden.net/What_is_ConTeXt) is een ander systeem dat in 1990 werd gecreëerd door Hans Hagen. LaTeX streeft ernaar de gebruiker te ontlasten van het nemen van beslissingen over typografie en lay-out (je typt `\section` en `\emph` maar je hoeft je niet druk te maken over wat deze doen - dat wordt overgelaten aan de documentklasse of lay-out). ConTeXt daarentegen streeft ernaar een eenvoudige interface te bieden voor geavanceerde typografische functies. Helaas weet ik niet zoveel van ConTeXt als ik zou willen, dus ik kan er niet veel verder op ingaan, maar als ik er ooit meer mee ga experimenteren, zal ik zeker mijn bevindingen opschrijven.

Als laatste historische noot moet ik [AMSTeX](http://en.wikipedia.org/wiki/AMS-LaTeX) vermelden, dat een uitbreiding was op de Plain TeX-macro's en werd gebruikt door de American Mathematical Society (AMS) van 1982 tot 1985. Zijn nalatenschap leeft voort in AMS-LaTeX-pakketten, die een vast onderdeel zijn van veel LaTeX-documenten: `\usepackage{amsmath}`.

## De toekomst

Wat brengt de toekomst voor TeX en LaTeX? Ik weet het nog niet, maar zoals Alan Kay ooit zei:

> De beste manier om de toekomst te voorspellen is haar uit te vinden.

Met ShareLaTeX hopen we TeX en LaTeX in een derde richting te verbeteren, door aanzienlijke verbeteringen aan de LaTeX-werkstroom aan te brengen. Ondanks dat het meer dan 20 jaar oud is, is LaTeX nog steeds grotendeels een commandoregelprogramma dat moet worden gebruikt in een lastige cyclus van schrijven, compileren en de uitvoer controleren. Methoden voor samenwerking bestaan vaak uit omslachtige e-mailberichten in plaats van de gestroomlijnde processen die beschikbaar zijn voor tekstverwerking zoals Google Documenten.


---

# 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/diepgaande-artikelen/49-the-tex-family-tree-latex-pdftex-xetex-luatex-and-context.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.
