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

# Boxar och lim: En kort, men visuell, introduktion med LuaTeX

## En introduktion för framtida artiklar

Det här inlägget är en kort introduktion till några centrala begrepp/modeller som ingår i sättning med $$\mathrm \TeX$$: lådor och lim—”att sätta scenen” för framtida artiklar som kommer att gå in mycket mer i detalj. Ett kommande inlägg kommer att utforska lågnivåbeteendet hos $$\mathrm \TeX$$ lådor med hjälp av $$\mathrm{Lua}\mathrm\TeX$$ för att skapa diagram (nodgrafer) som i följande exempel:

![Nodgraf för en låda](/files/72404c60508e46fbab5820ca779e0800328a810f)

Denna nodgraf skapas från en `\hbox{...}` skapad med följande $$\mathrm \TeX$$ kod:

```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 ut så här (ritad med en begränsningsrektangel):

![Exempel-\hbox](/files/1812bae76e123db9bd363ba968ffa7924596210f)

Dessa nodgrafer visar den djupa inre strukturen hos $$\mathrm \TeX$$ lådor—som speglar hur de lagras inuti $$\mathrm \TeX$$ och erbjuder en ovärderlig grafisk beskrivning som hjälper till att bättre förstå beteendet hos kommandon för lådkonstruktion som till exempel `\hbox{...}` eller `\vbox{...}`.

## Tillbaka till grunderna...

Även som en ny eller mer avslappnad, $$\mathrm \LaTeX$$ användare dröjer det inte länge förrän du stöter på begreppet $$\mathrm \TeX$$ ”lådor” eller att $$\mathrm \TeX$$ använder en modell med ”lådor och lim” för sina kärnuppgifter inom sättning. Sättningsalgoritmerna i $$\mathrm \TeX$$ tillbringar mycket av sin tid med att skapa och sedan stapla horisontella och vertikala listor av lådor. Till exempel, när $$\mathrm \TeX$$ sätter ett textstycke och bryter upp det i en serie rader betraktar den styckets text som en ström eller sekvens av lådor och använder bredden, höjden och djupet hos dessa teckenlådor (egentligen glyfer) för att hitta de bästa radbrytningarna och lägger sedan till vertikalt utrymme mellan raderna i den satta texten (det limmet kallas `\baselineskip`). Varje satt rad i stycket är i sig en låda (som innehåller andra lådor—t.ex. tecken), och de satta styckesraderna (lådorna) staplas vertikalt för att bilda stycket. Till slut produceras den största lådan av alla: den satta sidan. Tydligtvis är detta en extremt förenklad bild eftersom du också behöver förmågan att flytta och placera dessa lådor och $$\mathrm \TeX$$ gör detta med så kallade *lim*: en form av ”flexibelt mellanrum”. Knuth har kommenterat (sida 70 i The $$\mathrm \TeX \mathrm{book}$$) att ”glue” förmodligen borde ha kallats ”spring” men termen glue antogs tidigt och, för att använda Knuths ordvits, fastnade den.

## Visualisering av ett satt stycke med $$\mathrm{Lua}\mathrm\TeX$$

Använda $$\mathrm{Lua}\mathrm\TeX$$, kan ett satt stycke bearbetas för att visa de komponenter som användes för att sätta det: teckenlådorna och det flexibla lim som används för att skapa mellanrum mellan orden. Vi har skapat ett enkelt [$$\mathrm{Lua}\mathrm\TeX$$ (rent $$\mathrm \TeX$$) projekt](https://www.overleaf.com/latex/examples/using-a-luatex-callback-to-parse-typeset-paragraphs/mzbpwxtjshsj) för att demonstrera detta:

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

Projektets kod skrevs för att illustrera detta inlägg och är inte en fullständig implementation av en stycke-”parser”—den bortser från ett antal $$\mathrm{Lua}\mathrm \TeX$$ nodtyper och är utformad enbart för att illustrera idéerna som diskuteras i detta inlägg.

![lådor och lim](/files/547b7cefebd1f68916b1a9ab9966fe075b24b1a3)

I avsnittet med den inzoomade bilden nedan kan du se de enskilda styckesraderna skuggade som grå remsor—observera att det finns vitt utrymme mellan raderna: vertikalt lim som $$\mathrm \TeX$$ infogar när det staplar dem för att bilda stycket. Om du vill veta mer om det vertikala lim som infogas mellan raderna i ett satt stycke, använd Google för att hitta artiklar som diskuterar `\baselineskip` och `\lineskiplimit`.

![parsad stycke som visar lådor och lim](/files/d5b8ef111461bad46d819297e557f8d76707ff04)

När $$\mathrm \TeX$$ läser och sätter ett stycke omvandlar det mellanslagstecken mellan ord till klumpar av lim vars exakta värde är en egenskap hos det teckensnitt som används. Under sättningen sträcks eller krymps dessa mellanslagslim med den mängd som anses nödvändig för att uppnå en tilltalande radbrytning. I bilden ovan bör du notera följande:

* de grå remsorna är gränserna för de enskilda raderna i det satta stycket;
* varje tecken visas inom en ruta som definierar dess dimensioner (som $$\mathrm \TeX$$ ser dem);
* de gula rutorna visar det lim som $$\mathrm \TeX$$ har infogat mellan orden för att uppnå en tilltalande radbrytning. Lägg märke till följande:
* bredden på mellanslagslimmet varierar från rad till rad eftersom $$\mathrm \TeX$$ sträcker eller krymper det för att uppnå varje radbrytning;
* på den tredje raden är limmet efter punkttecknet bredare än annat lim på samma rad.
* den röda rutan visar var ett explicit `\hbox{...}` användes. Definitionen av `\TeX` kommandot placerar E:t i ett `\hbox{...}` så att det kan sänkas för att skapa $$\mathrm \TeX$$ logotypen.

I slutet av vårt exempelstycke finns en lång remsa av lim som kallas `\parfillskip`: detta infogas av $$\mathrm \TeX$$ sättningsmotorer för att fylla ut utrymmet på den sista raden. ![parfillskip glue](/files/a75ba13494f6b9baae5b1e9a83cc59c169dba9dc)

### Till nästa inlägg

Vi hoppas att detta inlägg har gett en användbar introduktion till principen om lådor och lim som används inom $$\mathrm \TeX$$. I ett kommande inlägg kommer vi att använda $$\mathrm{Lua}\mathrm\TeX$$ för att gräva mycket djupare i innehållet i $$\mathrm \TeX$$ lådor—med nodgrafer som det exempel som visas i början av denna 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/sv/fordjupade-artiklar/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.
