> 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/03-a-six-part-article-series-on-expandafter-tex-tokens-and-expansion.md).

# En artikelserie i sex delar om \expandafter, TeX-tokens och expansion

## Översikt

TeX-primitiven `\expandafter` är ett mångsidigt kommando som används av LaTeX/TeX-programmerare för att skapa sofistikerade makron – såsom de kommandon (makron) som tillhandahålls av LaTeX-paket. På ytan, `\expandafter` är enkelt att använda, men den där enkelhetsmasken faller snart när du stöter på mer komplexa konstruktioner som flera på varandra följande `\expandafter` kommandon som används för att utföra alla möjliga slags “tokenjonglering” `...\expandafter\expandafter\expandafter...`.

Denna artikelserie har ett ambitiöst mål: att förklara *hur* den `\expandafter` kommandot och TeX-expansion faktiskt fungerar – från grundläggande principer till att utforska processer som äger rum djupt inne i TeX-mjukvarans motor. Läsare kan gå direkt till [artiklarna](#accessing-articles-the-navigation-bar) eller läsa en [introduktionen](#introduction-and-who-is-this-series-for) och orsaken samt motiveringen till serien.

## Åtkomst till artiklarna: navigeringsfältet

Varje artikel har följande navigeringsfält före och efter texten så att du snabbt kan hoppa till en annan artikel i serien:

[Del 1](/latex/sv/fordjupade-artiklar/19-how-does-expandafter-work-an-introduction-to-tex-tokens.md) [Del 2](/latex/sv/fordjupade-artiklar/22-how-does-expandafter-work-the-meaning-of-expansion.md) [Del 3](/latex/sv/fordjupade-artiklar/21-how-does-expandafter-work-tex-uses-temporary-token-lists.md) [Del 4](/latex/sv/fordjupade-artiklar/20-how-does-expandafter-work-from-basic-principles-to-exploring-tex-s-source-code.md) [Del 5](/latex/sv/fordjupade-artiklar/17-how-does-expandafter-work-a-detailed-macro-case-study.md) [Del 6](/latex/sv/fordjupade-artiklar/18-how-does-expandafter-work-a-detailed-study-of-consecutive-expandafter-commands.md)

Här är länkarna till de 6 artiklarna i serien:

1. [En introduktion till TeX-token](/latex/sv/fordjupade-artiklar/19-how-does-expandafter-work-an-introduction-to-tex-tokens.md)
2. [Expansionens betydelse](/latex/sv/fordjupade-artiklar/22-how-does-expandafter-work-the-meaning-of-expansion.md)
3. [TeX använder tillfälliga tokenlistor](/latex/sv/fordjupade-artiklar/21-how-does-expandafter-work-tex-uses-temporary-token-lists.md)
4. [Från grundläggande principer till att utforska TeX:s källkod](/latex/sv/fordjupade-artiklar/20-how-does-expandafter-work-from-basic-principles-to-exploring-tex-s-source-code.md)
5. [En detaljerad fallstudie av makron](/latex/sv/fordjupade-artiklar/17-how-does-expandafter-work-a-detailed-macro-case-study.md)
6. [En detaljerad studie av på varandra följande `\expandafter` kommandon](/latex/sv/fordjupade-artiklar/18-how-does-expandafter-work-a-detailed-study-of-consecutive-expandafter-commands.md)

## Introduktion och för vem är denna serie?

### \expandafter: grundläggande funktionsprinciper

Syftet med \expandafter är att tvinga fram förtida expansion av ett token i indata: givet två på varandra följande token i indata, $$\mathrm{T\_1}$$ och $$\mathrm{T\_2}$$, `\expandafter` kommer att spara token $$\mathrm{T\_1}$$, expandera token $$\mathrm{T\_2}$$ och placera token $$\mathrm{T\_1}$$ tillbaka framför expansionen av $$\mathrm{T\_2}$$:

$$\verb\*\expandafter\*\ \mathrm{T\_1}\mathrm{T\_2} \rightarrow \mathrm{T\_1}\text{\<expansion of }\mathrm{T\_2}\text{>}$$

I enlighet med den vanliga beskrivningen av `\expandafter`s beteende noterade vi att det “sparar token $$\mathrm{T\_1}$$”, tvingar fram “expansionen” av token $$\mathrm{T\_2}$$ (innan TeX normalt skulle göra det) och sedan sätter token $$\mathrm{T\_1}$$ “tillbaka in i indata” så att TeX kan läsa det igen. Författaren till denna artikel minns att hen blev förvirrad av vissa aspekter av `\expandafter`s “tokenjonglerings”-beteende; särskilt:

* Vad betyder det att “spara ett token” eller “sätta tillbaka ett token i indata” – var “tar” dessa sparade token vägen och hur läser TeX dem igen?
* Hur “ser” expansion ut, eller vad betyder den egentligen?
* Hur behandlar TeX flera på varandra följande `\expandafter` kommandon – hur fungerar det *egentligen* fungerar?

### Målen med artikelserien

Denna serie syftar till att besvara frågorna ovan genom att dokumentera resultaten av forskning om TeX:s inre funktioner. Overleaf byggde en anpassad version av en av TeX-motorerna och använde [Eclipse IDE](https://www.eclipse.org/ide/) för att observera TeX-källkod i drift när den bearbetade en `.tex` fil som innehöll exempel på användning av `\expandafter`.

Vi kommer att dela resultaten av den forskningen för att undersöka:

* den verkliga naturen/betydelsen av TeX-token;
* TeX:s generering/användning av tillfälliga tokenlistor;
* vad “expansion” egentligen betyder.

Genom att utforska dessa ämnen kommer vi att lägga pusslet för att förklara *hur* `\expandafter` utför sitt “tokenjonglerings”-beteende. Denna artikelserie är skriven för alla som är intresserade av att utveckla en förståelse för dessa ämnen: att ta en djupare titt in i själva TeX och undersöka de delar av TeX:s interna funktioner som gör att `\expandafter` det kan utföra sin magi.

Att skriva artiklar om TeX och TeX-relaterade koncept/principer är utmanande eftersom TeX är så oerhört komplex mjukvara – dess satta källkod omfattar många hundratals sidor. Se till exempel detta [Overleaf-projekt](https://www.overleaf.com/latex/examples/typeset-the-source-code-documentation-for-tex-e-tex-or-pdftex/qkgfgyspnhcv) som som standard sätter källkoden för $$\mathrm{\varepsilon}\text{-}\mathrm{\TeX}$$: den satta PDF-filen innehåller över 600 sidor.

Internt är TeX ett intrikat nät av sammanlänkade handlingar och processer som innebär utmaningar när man försöker diskutera isolerade aspekter av dess beteende: att plocka isär en specifik “komponent”, såsom `\expandafter`, och försöka förklara den utan att ständigt behöva hänvisa till andra aspekter av TeX-mjukvaran. Till sin natur `\expandafter` interagerar kommandot med TeX:s process för *expansion*– en process som för många av oss är ett vagt och något svårt begrepp att helt förstå. Expansion är dock en verkligt grundläggande aspekt av TeX:s beteende, invävd genom hela TeX:s inre funktioner och som äger rum djupt inne i själva TeX-mjukvaran. I denna artikelserie kommer vi att utforska den verkliga betydelsen av expansion, med början i att sammanställa en samling relaterade principer och beteenden som räcker för att skapa en grundläggande förståelse för expansion. Med dessa grundvalar bygger vi vidare och avslutar med att göra en “djupdykning” för att titta in i själva TeX och utforska den faktiska källkod som implementerar TeX:s expansionsmekanism.

## Sammanfattningsvis

I dessa artiklar har vi försökt tillhandahålla innehåll som är användbart/värt något eller intressant för så många läsare som möjligt: vi har försökt balansera korthet med oundvikliga detaljer samtidigt som vi försökt undvika att riskera läsarens tålamod genom att ge för mycket eller för lite kontextuellt material. Vi hoppas ha bidragit med något användbart/värt något till TeX-litteraturen, som nuvarande och kanske framtida medlemmar av TeX-gemenskapen kommer att uppskatta att läsa.

Glad $$\mathrm{\TeX}\text{ing!}$$, från Graham Douglas och Overleaf-teamet.


---

# 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/03-a-six-part-article-series-on-expandafter-tex-tokens-and-expansion.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.
