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

# Une série d’articles en six parties sur \expandafter, les jetons TeX et l’expansion

## Présentation

La primitive TeX `\expandafter` est une commande polyvalente, utilisée par les programmeurs LaTeX/TeX pour créer des macros sophistiquées — telles que les commandes (macros) fournies par les packages LaTeX. En apparence, `\expandafter` est simple à utiliser, mais ce masque de simplicité tombe vite lorsque vous rencontrez des constructions plus complexes telles que plusieurs `\expandafter` commandes consécutives utilisées pour effectuer toutes sortes de « jonglage de jetons » `...\expandafter\expandafter\expandafter...`.

Cette série d'articles a un objectif ambitieux : expliquer *comment* le `\expandafter` la commande, et l'expansion TeX, fonctionnent réellement — des principes de base jusqu'à l'exploration des processus qui se déroulent au cœur du moteur TeX. Les lecteurs peuvent aller directement aux [articles](#accessing-articles-the-navigation-bar) ou lire un [introduction](#introduction-and-who-is-this-series-for) et la raison ainsi que la justification de la série.

## Accéder aux articles : la barre de navigation

Chaque article comporte la barre de navigation suivante avant et après le texte afin que vous puissiez passer rapidement à un autre article de la série :

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

Voici les liens vers les 6 articles de la série :

1. [Une introduction aux jetons TeX](/latex/fr/articles-approfondis/19-how-does-expandafter-work-an-introduction-to-tex-tokens.md)
2. [Le sens de l'expansion](/latex/fr/articles-approfondis/22-how-does-expandafter-work-the-meaning-of-expansion.md)
3. [TeX utilise des listes de jetons temporaires](/latex/fr/articles-approfondis/21-how-does-expandafter-work-tex-uses-temporary-token-lists.md)
4. [Des principes de base à l'exploration du code source de TeX](/latex/fr/articles-approfondis/20-how-does-expandafter-work-from-basic-principles-to-exploring-tex-s-source-code.md)
5. [Une étude de cas détaillée d'une macro](/latex/fr/articles-approfondis/17-how-does-expandafter-work-a-detailed-macro-case-study.md)
6. [Une étude détaillée de commandes consécutives `\expandafter` commandes](/latex/fr/articles-approfondis/18-how-does-expandafter-work-a-detailed-study-of-consecutive-expandafter-commands.md)

## Introduction et à qui s'adresse cette série ?

### \expandafter : principes de fonctionnement de base

Le but de \expandafter est de forcer l'expansion prématurée d'un jeton dans l'entrée : étant donnés deux jetons consécutifs dans l'entrée, $$\mathrm{T\_1}$$ et $$\mathrm{T\_2}$$, `\expandafter` enregistrera le jeton $$\mathrm{T\_1}$$, développera le jeton $$\mathrm{T\_2}$$ et replacera le jeton $$\mathrm{T\_1}$$ devant l'expansion de $$\mathrm{T\_2}$$:

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

En suivant la description standard du comportement de `\expandafter`nous avons noté qu'il « enregistre le jeton $$\mathrm{T\_1}$$», force « l'expansion » du jeton $$\mathrm{T\_2}$$ (avant que TeX ne le fasse normalement) puis remet le jeton $$\mathrm{T\_1}$$ « dans l'entrée » pour que TeX le relise. L'auteur de cet article se souvient avoir été confus par certains aspects du comportement de « jonglage de jetons » de `\expandafter`’s ; en particulier :

* Que signifie « enregistrer un jeton » ou « remettre un jeton dans l'entrée » — où vont ces jetons enregistrés et comment TeX les relit-il ?
* À quoi ressemble l’expansion, ou que signifie-t-elle réellement ?
* Comment TeX traite-t-il plusieurs `\expandafter` commandes consécutives — comment cela *vraiment* fonctionne-t-il ?

### Objectifs de la série d'articles

Cette série cherche à répondre aux questions posées ci-dessus en documentant les résultats de recherches sur le fonctionnement interne de TeX. Overleaf a construit une version personnalisée de l'un des moteurs TeX et a utilisé [l'IDE Eclipse](https://www.eclipse.org/ide/) pour observer le code source de TeX en fonctionnement pendant qu'il traitait un `.tex` fichier contenant des exemples d'utilisation de `\expandafter`.

Nous partagerons les résultats de ces recherches pour examiner :

* la véritable nature/signification des jetons TeX ;
* la génération/l'utilisation par TeX de listes de jetons temporaires ;
* ce que signifie réellement « expansion ».

En explorant ces sujets, nous assemblerons la vue d'ensemble pour expliquer *comment* `\expandafter` effectue son comportement de « jonglage de jetons ». Cette série d'articles est écrite pour toute personne intéressée à développer une compréhension de ces sujets : pour examiner de plus près TeX lui-même, en étudiant les parties du fonctionnement interne de TeX qui permettent `\expandafter` d'opérer sa magie.

Écrire des articles sur TeX et les concepts/principes liés à TeX est difficile, car TeX est un logiciel extraordinairement complexe — son code source mis en page s'étend sur des centaines de pages. Par exemple, voir ce [projet Overleaf](https://www.overleaf.com/latex/examples/typeset-the-source-code-documentation-for-tex-e-tex-or-pdftex/qkgfgyspnhcv) qui, par défaut, met en page le code source de $$\mathrm{\varepsilon}\text{-}\mathrm{\TeX}$$: le fichier PDF mis en page contient plus de 600 pages.

En interne, TeX est un réseau complexe d'actions et de processus interdépendants qui posent des difficultés lorsqu'on tente de discuter d'aspects isolés de son comportement : disséquer un « composant » spécifique, tel que `\expandafter`, et essayer de l'expliquer sans avoir constamment besoin de faire référence à d'autres aspects du logiciel TeX. De par sa nature même, la `\expandafter` commande interagit avec le processus de TeX de *expansion*— un processus qui, pour beaucoup d'entre nous, est un concept vague et quelque peu difficile à comprendre entièrement. Cependant, l'expansion est un aspect véritablement fondamental du comportement de TeX, tissé dans les mécanismes internes de TeX et se déroulant au plus profond du logiciel TeX lui-même. Dans cette série d'articles, nous explorerons la véritable signification de l'expansion, en commençant par rassembler un ensemble de principes et de comportements connexes suffisant pour construire une compréhension de base de l'expansion. En nous appuyant sur ces fondations, nous conclurons par une « plongée en profondeur » dans TeX lui-même, en explorant le code source réel qui implémente le mécanisme d'expansion de TeX.

## En conclusion

Dans ces articles, nous avons essayé de fournir un contenu utile/valable ou intéressant pour le plus grand nombre possible de lecteurs : en essayant d'équilibrer brièveté et détails inévitables tout en essayant simultanément de ne pas risquer la patience du lecteur en fournissant trop, ou trop peu, de contexte. Nous espérons avoir apporté quelque chose d'utile/de valeur à la littérature TeX, que les membres actuels et, peut-être, futurs de la communauté TeX prendront plaisir à lire.

Joyeux $$\mathrm{\TeX}\text{ing!}$$, de la part de Graham Douglas et de l'équipe Overleaf.


---

# 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/fr/articles-approfondis/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.
