> 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/11-boxes-and-glue-a-brief-but-visual-introduction-using-luatex.md).

# Boxes and Glue: een korte, maar visuele introductie met LuaTeX

## Een introductie voor toekomstige artikelen

Deze post is een korte introductie tot enkele belangrijke concepten/modellen die betrokken zijn bij opmaak met $$\mathrm \TeX$$: boxes en glue—“de toon zetten” voor toekomstige artikelen die veel dieper op de materie ingaan. Een aankomende post zal het laag-niveaugedrag van $$\mathrm \TeX$$ boxes met behulp van $$\mathrm{Lua}\mathrm\TeX$$ om diagrammen (nodegraphs) te produceren, zoals het volgende voorbeeld:

![Nodegraph van een box](/files/588a6a821da197637f716cae369776395602d7fc)

Deze nodegraph is gemaakt uit een `\hbox{...}` gemaakt met de volgende $$\mathrm \TeX$$ code:

```latex

\hbox to100pt{A\hskip4pt plus3pt minus 2pt B%
\hskip 0pt plus 2fil C\hskip 0pt plus 2fill D\hskip 0pt plus 3fill}
```

dat er als volgt uitziet (getekend met een omhullende rechthoek):

![Voorbeeld \hbox](/files/3e8b23b6816920418db09cad8ee0967aec3cbe69)

Deze nodegraphs tonen de diepe interne structuur van $$\mathrm \TeX$$ boxes—wat weerspiegelt hoe ze worden opgeslagen in $$\mathrm \TeX$$ en bieden een onschatbare grafische beschrijving die helpt het gedrag van boxconstructiecommando's zoals `\hbox{...}` of `\vbox{...}`.

## Terug naar de basis...

Zelfs als nieuwe, of gewone, $$\mathrm \LaTeX$$ gebruiker kom je al snel het concept van $$\mathrm \TeX$$ “boxes” of dat $$\mathrm \TeX$$ een “boxes en glue”-model gebruikt voor zijn kernopmaakactiviteiten. De opmaakalgoritmen van $$\mathrm \TeX$$ brengen veel tijd door met het maken en vervolgens stapelen van horizontale en verticale lijsten van boxes. Bijvoorbeeld, wanneer $$\mathrm \TeX$$ een alinea tekst opmaakt en deze opbreekt in een reeks regels, beschouwt het de tekst van de alinea als een stroom of opeenvolging van boxes en gebruikt het de breedte, hoogte en diepte van die tekenboxen (eigenlijk glyphs) om de beste regeleinden te vinden en voegt vervolgens verticale ruimte tussen de regels van de opgemaakte tekst toe (die glue heet `\baselineskip`). Elke opgemaakte regel van de alinea is zelf een box (die andere boxes bevat—bijv. tekens) en de opgemaakte alinearegels (boxes) worden verticaal gestapeld om de alinea te vormen. Uiteindelijk wordt de grootste box van allemaal geproduceerd: de opgemaakte pagina. Het is duidelijk dat dit een uiterst vereenvoudigd beeld is, omdat je ook de mogelijkheid nodig hebt om die boxes te verplaatsen en te positioneren en $$\mathrm \TeX$$ doet dit met behulp van zogenaamde *glue*: een vorm van “flexibele spatiëring”. Knuth heeft opgemerkt (pagina 70 van The $$\mathrm \TeX \mathrm{book}$$) dat “glue” waarschijnlijk “spring” had moeten heten, maar de term glue werd al vroeg overgenomen en, om Knuths woordspeling te gebruiken, hij bleef plakken.

## Een opgemaakte alinea visualiseren met behulp van $$\mathrm{Lua}\mathrm\TeX$$

Met behulp van $$\mathrm{Lua}\mathrm\TeX$$, kan een opgemaakte alinea worden verwerkt om de componenten weer te geven die zijn gebruikt om haar op te maken: de tekenboxen en de flexibele glue die wordt gebruikt om ruimte tussen de woorden te plaatsen. We hebben een eenvoudig [$$\mathrm{Lua}\mathrm\TeX$$ (eenvoudig $$\mathrm \TeX$$) project](https://www.overleaf.com/latex/examples/using-a-luatex-callback-to-parse-typeset-paragraphs/mzbpwxtjshsj) om dit te demonstreren:

[![Screenshot of Overleaf](/files/a886c96d0c50073a7493f823bcc74d76a177b3d1)](https://www.overleaf.com/latex/examples/using-a-luatex-callback-to-parse-typeset-paragraphs/mzbpwxtjshsj)

De code van het project is geschreven om deze post te illustreren en is geen volledige implementatie van een alinea-“parser”—het negeert een aantal $$\mathrm{Lua}\mathrm \TeX$$ nodetypen en is puur ontworpen om de ideeën die in deze post worden besproken te illustreren.

![boxes en glue](/files/5c0c330266648c6d579316a9efb99573dac044b0)

In de ingezoomde afbeeldingssectie hieronder kun je de afzonderlijke alinearegels zien als grijze stroken weergegeven—let op dat er witruimte tussen de regels is: verticale glue die $$\mathrm \TeX$$ het invoegt terwijl het ze stapelt om de alinea te vormen. Als je meer wilt weten over de verticale glue die tussen regels in een opgemaakte alinea wordt ingevoegd, gebruik Google om artikelen te vinden die `\baselineskip` en `\lineskiplimit`.

![geparseerde alinea met boxes en glue](/files/baf7610faa8db7b0e9ca44adf0dea917df117e35)

Wanneer $$\mathrm \TeX$$ een alinea leest en opmaakt, zet het spaties tussen woorden om in klonten glue waarvan de exacte waarde een eigenschap is van het gebruikte lettertype. Tijdens het opmaken worden deze glue-tussenwoorden uitgerekt of ingekrompen met een hoeveelheid die nodig wordt geacht om een prettig regeleinde te bereiken. In de bovenstaande afbeelding moet je op het volgende letten:

* grijze stroken zijn de grenzen van de afzonderlijke regels van de opgemaakte alinea;
* elk teken wordt weergegeven binnen een box die zijn afmetingen definieert (zoals $$\mathrm \TeX$$ het ziet);
* de gele boxes tonen de glue die $$\mathrm \TeX$$ heeft ingevoegd tussen de woorden om een prettig regeleinde te bereiken. Let op het volgende:
* de breedte van glue tussen woorden varieert van regel tot regel terwijl $$\mathrm \TeX$$ het uitrekt of inkrimpt om elk regeleinde te bereiken;
* op de derde regel is de glue na het puntteken breder dan andere glue op dezelfde regel.
* de rode box toont waar een expliciete `\hbox{...}` werd gebruikt. De definitie van de `\TeX` commando zet de E in een `\hbox{...}` zodat het kan worden verlaagd om de $$\mathrm \TeX$$ logo te maken.

Aan het einde van onze voorbeeldalinea is er een lange strook glue die wordt genoemd `\parfillskip`: deze wordt ingevoegd door $$\mathrm \TeX$$ engines om ruimte op de laatste regel op te vullen. ![parfillskip glue](/files/859836398684f7c3bd5c2a003e6be8ab07a2b5d5)

### Tot de volgende post

We hopen dat deze post een nuttige introductie heeft geboden tot het principe van boxes en glue dat binnen $$\mathrm \TeX$$. In een aankomende post zullen we $$\mathrm{Lua}\mathrm\TeX$$ gebruiken om veel dieper in de inhoud van $$\mathrm \TeX$$ boxes te duiken—met behulp van nodegraphs zoals het voorbeeld aan het begin van dit artikel.


---

# 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/11-boxes-and-glue-a-brief-but-visual-introduction-using-luatex.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.
