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

# Sześcioodcinkowa seria artykułów o \expandafter, tokenach TeX i rozwijaniu

## Przegląd

Prymityw TeX-a `\expandafter` jest wszechstronnym poleceniem, używanym przez programistów LaTeX/TeX do tworzenia zaawansowanych makr — takich jak polecenia (makra) dostarczane przez pakiety LaTeX. Na pierwszy rzut oka, `\expandafter` jest proste w użyciu, ale ta maska prostoty szybko opada, gdy napotkasz bardziej złożone konstrukcje, takie jak wiele kolejnych `\expandafter` poleceń służących do wszelkiego rodzaju „żonglowania tokenami” `...\expandafter\expandafter\expandafter...`.

Ta seria artykułów ma ambitny cel: wyjaśnić *jak* stronie `\expandafter` polecenie oraz ekspansja TeX-a naprawdę działają — od podstawowych zasad aż po badanie procesów zachodzących głęboko wewnątrz oprogramowania silnika TeX-a. Czytelnicy mogą od razu przejść do [artykułów](#accessing-articles-the-navigation-bar) lub przeczytać [wprowadzeniu](#introduction-and-who-is-this-series-for) oraz o powodach i uzasadnieniu tej serii.

## Dostęp do artykułów: pasek nawigacyjny

Każdy artykuł ma przed tekstem i po nim poniższy pasek nawigacyjny, dzięki czemu możesz szybko przejść do innego artykułu z serii:

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

Oto odnośniki do 6 artykułów z serii:

1. [Wprowadzenie do tokenów TeX-a](/latex/pl/artykuly-szczegolowe/19-how-does-expandafter-work-an-introduction-to-tex-tokens.md)
2. [Znaczenie ekspansji](/latex/pl/artykuly-szczegolowe/22-how-does-expandafter-work-the-meaning-of-expansion.md)
3. [TeX używa tymczasowych list tokenów](/latex/pl/artykuly-szczegolowe/21-how-does-expandafter-work-tex-uses-temporary-token-lists.md)
4. [Od podstawowych zasad do zgłębiania kodu źródłowego TeX-a](/latex/pl/artykuly-szczegolowe/20-how-does-expandafter-work-from-basic-principles-to-exploring-tex-s-source-code.md)
5. [Szczegółowe studium przypadku makra](/latex/pl/artykuly-szczegolowe/17-how-does-expandafter-work-a-detailed-macro-case-study.md)
6. [Szczegółowe studium kolejnych `\expandafter` polecenia](/latex/pl/artykuly-szczegolowe/18-how-does-expandafter-work-a-detailed-study-of-consecutive-expandafter-commands.md)

## Wprowadzenie i dla kogo jest ta seria?

### \expandafter: podstawowe zasady działania

Celem \expandafter jest wymuszenie przedwczesnej ekspansji tokenu w danych wejściowych: mając dwa kolejne tokeny w danych wejściowych, $$\mathrm{T\_1}$$ i $$\mathrm{T\_2}$$, `\expandafter` zapisze token $$\mathrm{T\_1}$$, rozwinie token $$\mathrm{T\_2}$$ i umieści token $$\mathrm{T\_1}$$ z powrotem przed rozwinięciem $$\mathrm{T\_2}$$:

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

Zgodnie ze standardowym opisem `\expandafter`zachowania zauważyliśmy, że „zapisuje token $$\mathrm{T\_1}$$”, wymusza „ekspansję” tokenu $$\mathrm{T\_2}$$ (zanim TeX zrobiłby to normalnie), a następnie umieszcza token $$\mathrm{T\_1}$$ „z powrotem do danych wejściowych”, aby TeX mógł go przeczytać ponownie. Autor tego artykułu pamięta, że był zdezorientowany niektórymi aspektami `\expandafter`zachowania „żonglowania tokenami”; w szczególności:

* Co znaczy „zapisać token” albo „wstawić token z powrotem do danych wejściowych” — dokąd trafiają te zapisane tokeny i jak TeX odczytuje je ponownie?
* Jak wygląda „ekspansja” albo co naprawdę oznacza?
* Jak TeX przetwarza wiele kolejnych `\expandafter` poleceń — jak to *naprawdę* działa?

### Cele serii artykułów

Ta seria ma na celu odpowiedzieć na pytania postawione powyżej poprzez udokumentowanie wyników badań nad wewnętrznym działaniem TeX-a. Overleaf zbudował dostosowaną wersję jednego z silników TeX-a i użył [środowiska IDE Eclipse](https://www.eclipse.org/ide/) do obserwowania kodu źródłowego TeX-a w działaniu podczas przetwarzania `.tex` pliku zawierającego przykładowe użycia `\expandafter`.

Podzielimy się wynikami tych badań, aby przyjrzeć się:

* prawdziwej naturze/znaczeniu tokenów TeX-a;
* generowaniu/używaniu przez TeX tymczasowych list tokenów;
* temu, co naprawdę oznacza „ekspansja”.

Badając te zagadnienia, złożymy razem pełny obraz, aby wyjaśnić *jak* `\expandafter` realizuje swoje zachowanie „żonglowania tokenami”. Ta seria artykułów jest napisana dla każdego, kto chce lepiej zrozumieć te zagadnienia: zajrzeć głębiej do samego TeX-a, analizując te części jego wewnętrznych działań, które umożliwiają `\expandafter` działać jego magii.

Pisanie artykułów o TeX-ie i związanych z nim pojęciach/zasadach jest trudne, ponieważ TeX jest niezwykle złożonym oprogramowaniem — jego składany kod źródłowy liczy setki stron. Na przykład zobacz ten [projekt Overleaf](https://www.overleaf.com/latex/examples/typeset-the-source-code-documentation-for-tex-e-tex-or-pdftex/qkgfgyspnhcv) który domyślnie składa kod źródłowy $$\mathrm{\varepsilon}\text{-}\mathrm{\TeX}$$: złożony plik PDF ma ponad 600 stron.

Wewnętrznie TeX jest misterną siecią powiązanych ze sobą działań i procesów, które stwarzają trudności, gdy próbujemy omawiać odrębne aspekty jego zachowania: wyodrębniając konkretny „komponent”, taki jak `\expandafter`, i próbując wyjaśnić go bez ciągłego odwoływania się do innych aspektów oprogramowania TeX-a. Z samej swojej natury, `\expandafter` polecenie angażuje się w proces *rozwijanie*— proces, który dla wielu z nas jest mglistym i dość trudnym do pełnego zrozumienia pojęciem. Jednak ekspansja jest naprawdę fundamentalnym aspektem zachowania TeX-a, przeplatającym się przez wewnętrzne mechanizmy TeX-a i zachodzącym głęboko wewnątrz samego oprogramowania TeX-a. W tej serii artykułów zbadamy prawdziwe znaczenie ekspansji, zaczynając od zebrania zestawu powiązanych zasad i zachowań wystarczających do zbudowania podstawowego rozumienia ekspansji. Opierając się na tych fundamentach, kończymy, robiąc „głębokie zanurzenie”, by zajrzeć do wnętrza samego TeX-a i zbadać rzeczywisty kod źródłowy, który implementuje mechanizm ekspansji TeX-a.

## Podsumowując

W tych artykułach staraliśmy się dostarczyć treści, które są użyteczne/wartościowe lub interesujące dla jak największej liczby czytelników: próbując zrównoważyć zwięzłość z nieuniknionym poziomem szczegółowości, a jednocześnie nie narażać cierpliwości czytelnika, podając zbyt wiele lub zbyt mało materiału kontekstowego. Mamy nadzieję, że wnieśliśmy coś użytecznego/wartościowego do literatury o TeX-ie, z czego obecni i być może przyszli członkowie społeczności TeX-a będą czerpać przyjemność z lektury.

Szczęśliwego $$\mathrm{\TeX}\text{ing!}$$, od Grahama Douglasa i zespołu 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/pl/artykuly-szczegolowe/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.
