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

# Bokser og lim: En kort, men visuell, introduksjon ved bruk av LuaTeX

## En introduksjon til kommende artikler

Dette innlegget er en kort introduksjon til noen sentrale konsepter/modeller som er involvert i satsing med $$\mathrm \TeX$$: bokser og lim – «å sette scenen» for kommende artikler som vil gå mye mer i detalj. Et kommende innlegg vil utforske lavnivåatferden til $$\mathrm \TeX$$ bokser ved hjelp av $$\mathrm{Lua}\mathrm\TeX$$ for å lage diagrammer (nodediagrammer) som i følgende eksempel:

![Nodediagram av en boks](/files/2735a4ab44fff8c778ad1a784c05f43b07c65091)

Dette nodediagrammet er laget fra en `\hbox{...}` laget med følgende $$\mathrm \TeX$$ kode:

```latex

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

som ser slik ut (tegnet med et omsluttende rektangel):

![Eksempel på \hbox](/files/e42fbfabcddc2e0887d7fdb91e6e57c40063e7d3)

Disse nodediagrammene viser den dype indre strukturen til $$\mathrm \TeX$$ bokser – som gjenspeiler hvordan de lagres inni $$\mathrm \TeX$$ og gir en uvurderlig grafisk beskrivelse som hjelper til med å forstå atferden til kommandoer for bokskonstruksjon som for eksempel `\hbox{...}` eller `\vbox{...}`.

## Tilbake til det grunnleggende...

Selv som en ny, eller tilfeldig, $$\mathrm \LaTeX$$ bruker tar det ikke lang tid før du møter begrepet $$\mathrm \TeX$$ «bokser» eller at $$\mathrm \TeX$$ bruker en modell med «bokser og lim» for sine grunnleggende satsingsaktiviteter. Satsingsalgoritmene til $$\mathrm \TeX$$ bruker mye av tiden på å lage og deretter stable horisontale og vertikale lister over bokser. For eksempel, når $$\mathrm \TeX$$ satter et avsnitt med tekst og bryter det opp i en serie linjer, betrakter den avsnittets tekst som en strøm eller sekvens av bokser og bruker bredden, høyden og dybden til disse tegnboksene (egentlig glyfene) for å finne de beste linjebrytene og legger deretter til vertikal avstand mellom linjene i den satte teksten (det limet kalles `\baselineskip`) $$\mathrm \TeX$$ gjør dette ved hjelp av såkalte *glue*: en form for «fleksibel avstand». Knuth har kommentert (side 70 i The $$\mathrm \TeX \mathrm{book}$$) at «lim» trolig burde ha blitt omtalt som «fjær», men betegnelsen lim ble tatt i bruk tidlig, og for å bruke Knuths ordspill, festet det seg.

## Visualisering av et satt avsnitt ved hjelp av $$\mathrm{Lua}\mathrm\TeX$$

Bruke $$\mathrm{Lua}\mathrm\TeX$$, kan et satt avsnitt behandles for å vise komponentene som ble brukt til å sette det: tegnboksene og det fleksible limet som brukes til å skape mellomrom mellom ordene. Vi har laget et enkelt [$$\mathrm{Lua}\mathrm\TeX$$ (ren $$\mathrm \TeX$$) prosjekt](https://www.overleaf.com/latex/examples/using-a-luatex-callback-to-parse-typeset-paragraphs/mzbpwxtjshsj) for å demonstrere dette:

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

Prosjektets kode ble skrevet for å illustrere dette innlegget og er ikke en fullstendig implementering av en avsnitts-«parser» – den ignorerer en rekke $$\mathrm{Lua}\mathrm \TeX$$ nodetyper og er utelukkende laget for å illustrere ideene som diskuteres i dette innlegget.

![bokser og lim](/files/f2eb923c21163c84f065746daefdaeb2545f5dd8)

I delen med det forstørrede bildet nedenfor kan du se de enkelte avsnittslinjene markert som grå striper – legg merke til at det er hvitt mellomrom mellom linjene: vertikalt lim som $$\mathrm \TeX$$ settes inn mens det stabler dem for å danne avsnittet. Hvis du vil vite mer om det vertikale limet som settes inn mellom linjene i et satt avsnitt, kan du bruke Google til å finne artikler som diskuterer `\baselineskip` og `\lineskiplimit`.

![tolket avsnitt som viser bokser og lim](/files/46c0849febdb1c09a9fc308bc7e71598b3b9a5c2)

Når $$\mathrm \TeX$$ leser og setter et avsnitt, konverterer det mellomromstegn mellom ord til klumper av lim, hvis nøyaktige verdi er en egenskap ved skriften som brukes. Under satsingen strekkes eller krympes disse mellomromslimene med en mengde som anses nødvendig for å oppnå et pent linjeskift. I bildet ovenfor bør du merke deg følgende:

* de grå stripene er grensene for de enkelte linjene i det satte avsnittet;
* hvert tegn vises innenfor en boks som definerer dimensjonene det har (slik som $$\mathrm \TeX$$ det ser dem);
* de gule boksene viser limet som $$\mathrm \TeX$$ har satt inn mellom ordene for å oppnå et pent linjeskift. Legg merke til følgende:
* bredden på mellomromslimet varierer fra linje til linje ettersom $$\mathrm \TeX$$ det strekkes eller krympes for å oppnå hvert linjeskift;
* på den tredje linjen er limet etter punktumtegnet bredere enn annet lim på samme linje.
* den røde boksen viser hvor en eksplisitt `\hbox{...}` ble brukt. Definisjonen av `\TeX` kommandoen setter E-en inn i en `\hbox{...}` slik at den kan senkes for å lage $$\mathrm \TeX$$ logoen.

På slutten av eksempelavsnittet vårt er det en lang stripe med lim som kalles `\parfillskip`: dette settes inn av $$\mathrm \TeX$$ motorer for å fylle ut plass på den siste linjen. ![parfillskip glue](/files/e57b95f3954072aec4b9cc97ae3367ae5a69197b)

### Til neste innlegg

Vi håper dette innlegget har gitt en nyttig introduksjon til prinsippet om bokser og lim som brukes i $$\mathrm \TeX$$. I et kommende innlegg skal vi bruke $$\mathrm{Lua}\mathrm\TeX$$ for å gå mye dypere inn i innholdet i $$\mathrm \TeX$$ bokser – ved hjelp av nodediagrammer som eksemplet som ble vist i starten av denne artikkelen.


---

# 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/no/dybdeartikler/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.
