> 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/wiecej-tematow/01-a-six-part-series-how-do-tex-macros-actually-work.md).

# Sześcioczęściowy cykl: Jak naprawdę działają makra TeX-a?

## O tej serii

Ta seria artykułów ma ambitny cel: wyjaśnić, krok po kroku, *jak* jak naprawdę działają makra TeX, takie jak polecenia LaTeX — poprzez analizę procesów zachodzących wewnątrz oprogramowania silnika TeX. Próbuje opowiedzieć historię zachowania przetwarzania TeX-a:

* odczytywanie znaków wejściowych i używanie kodów kategorii;
* tworzenie tokenów znaków i poleceń — oraz formuł, których używa TeX;
* jak TeX identyfikuje, a następnie przetwarza polecenia TeX;
* wewnętrzne szczegóły przechowywania definicji makr oraz argumentów makr jako list tokenów — z użyciem grafik wygenerowanych z wewnętrznych danych TeX;
* i kończy się analizą tego, czym rozwijanie makr *w rzeczywistości* oznacza — z wykorzystaniem rzeczywistych danych z wnętrza silnika TeX.

Jednak ponieważ silniki TeX są tak złożonymi programami, nie możemy liczyć na omówienie wszystkiego, ale staraliśmy się poruszyć najważniejsze, podstawowe cechy możliwości przetwarzania makr w TeX.

#### Pasek nawigacyjny

Każdy artykuł ma następujący pasek nawigacyjny przed i po tekście, aby można było szybko przejść do innego artykułu z serii:

[Część 1](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_1?preview=true) [Część 2](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_2?preview=true) [Część 3](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_3?preview=true) [Część 4](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_4?preview=true) [Część 5](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_5?preview=true) [Część 6](https://www.overleaf.com/learn/latex/Understanding_TeX_macros:_Part_6?preview=true)

### Część 1: Kody kategorii

Ten artykuł bada rozumowanie stojące za koncepcją kodów kategorii w TeX: czym są i jak TeX używa ich do filtrowania swoich danych wejściowych na treść do składu oraz polecenia do wykonania.

### Część 2: Odczytywanie danych wejściowych oczami TeX

Za pomocą serii grafik wykorzystujemy sprawdzoną analogię, że TeX ma „oczy”, którymi odczytuje (skanuje) swoje dane wejściowe. Analizujemy przykłady użycia kodów kategorii przez TeX do tworzenia tokenów znaków oraz to, jak TeX rozpoznaje i przetwarza polecenia, używając kodu kategorii 0 („znak ucieczki”).

### Część 3: Od tekstu wejściowego do poleceń

Ten artykuł szczegółowo przygląda się temu, jak TeX rozpoznaje i przetwarza polecenia wykryte w danych wejściowych. Badamy, jak TeX przechowuje i pobiera informacje o poleceniach: kody poleceń, modyfikatory poleceń, a także przeglądamy kilka zmiennych wewnętrznych, których TeX używa do przechowywania informacji o elementach odczytanych z danych wejściowych. Część artykułu to dość niskopoziomowy materiał, który można pominąć przy pierwszym czytaniu.

### Część 4: Struktura makra

Wprowadzamy i używamy następujących „ram” do opisywania struktury makr:

```
<prymityw makra TeX><nazwa makra><tekst parametrów>{<tekst podstawienia>}
```

Następnie analizujemy szereg przykładów, aby pokazać rolę i przeznaczenie makra `<tekst parametrów>` jako „szablonu tokenów”, który można skonstruować za pomocą tokenów działających jako *ograniczniki*.

### Część 5: Listy tokenów i wewnętrzne przechowywanie makr w TeX

Ten artykuł szczegółowo bada, jak TeX używa list tokenów do przechowywania definicji makr. Korzystając z rozbudowanych diagramów wygenerowanych za pomocą specjalnie zmodyfikowanej wersji TeX, analizujemy wyspecjalizowane tokeny, których TeX używa do identyfikowania i przetwarzania argumentów makr podanych przez użytkownika.

### Część 6: Rozwijanie i przetwarzanie makr

W części 6 używamy szczegółowych grafik, aby wyjaśnić i zbadać dokładne znaczenie rozwijania makr oraz konsekwencje tokenizacji argumentów makr przez TeX przed przekazaniem ich do .

## Krótka uwaga: Używamy „TeX”, a nie LaTeX

Jak omówiono w artykule [What’s in a Name: A Guide to the Many Flavours of TeX](/latex/pl/artykuly-szczegolowe/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md) szeroki zakres terminów jest używany do odnoszenia się do TeX, LaTeX i ich pochodnych. W związku z tym warto krótko wyjaśnić, jak używamy/rozumiemy „TeX” w kontekście tej serii.

„TeX” jest, co nieco mylące, zarówno nazwą programu wykonywalnego, jak i nazwą języka składu. Aby rozróżnić te dwa pojęcia, używa się terminu *silnikiem TeX* do odróżnienia wykonywalnego programu TeX od języka składu. Niektóre konkretne dane, informacje i szczegóły użyte w tej serii pochodzą z dokładnej analizy kodu źródłowego oryginalnego oprogramowania TeX Knutha, ale opisane zasady są wspólne dla wszystkich silników TeX. Zatem w całej naszej dyskusji użycie „TeX” należy rozumieć jako jeden z wykonywalnych silników TeX — taki jak oryginalny TeX Knutha, pdfTeX, XeTeX lub LuaTeX.

W artykułach używamy pierwotnego polecenia TeX `\def` do definiowania naszych przykładów makr: nie używamy polecenia LaTeX `\newcommand` które jest niemal na pewno bardziej znane większości użytkowników Overleaf. Jest ku temu bardzo dobry powód: naszym celem jest zrozumienie podstawowych zasad leżących u podstaw zachowania makr w TeX, ale aby to zrobić, musimy używać podstawowych poleceń (prymitywów) wbudowanych w oprogramowanie TeX. Polecenia LaTeX, takie jak `\newcommand`, same są makrami: poleceniami o określonym zaprogramowanym zachowaniu, które ostatecznie są zbudowane z warstw niższopoziomowych prymitywnych poleceń TeX. Aby lepiej zrozumieć podstawowe zachowanie TeX, musimy używać prymitywów TeX, a nie makr LaTeX.

## Przykłady i grafiki

Zamiast opierać się wyłącznie na zestawie przykładowych makr zaprojektowanych do demonstrowania różnych funkcji, przypadków brzegowych i zachowań TeX, używamy również obszernego zestawu grafik, aby zajrzeć do wnętrza samego TeX i zobaczyć *jak* i *dlaczego* jak działa jego przetwarzanie makr. Wiele grafik (list tokenów/diagramów węzłów) zostało przygotowanych przy użyciu specjalnie zmodyfikowanej wersji oryginalnego TeX Knutha.

Overleaf zaadaptował TeX Knutha, dodając kod (napisany w C), który „włącza się” w przetwarzanie makr TeX i bada dane oraz struktury danych, które zwykle są niedostępne dla użytkowników. Za każdym razem, gdy wywoływane jest makro, zmodyfikowany silnik TeX generuje dodatkowe pliki wyjściowe zawierające dane w formacie, który można przetwarzać za pomocą [Graphviz](https://www.graphviz.org/), otwartoźródłowego programu do wizualizacji grafów. Efektem końcowym są grafiki (diagramy list węzłów), które pokazują dokładnie, jak TeX przechowuje definicję makra, wraz z graficznym przedstawieniem wszelkich argumentów podanych przez użytkownika przy wywołaniu makra.

Z konieczności cele tej serii wymagają omówienia szerokiego zakresu tematów, z których wiele jest dość niskopoziomowych i początkowo może wydawać się bardzo odległych od zadania składu dokumentów. Mamy nadzieję, że po głębszym zanurzeniu się w temat zyskacie solidną podstawę do budowania lepszego zrozumienia, co ostatecznie zaoszczędzi wam dużo czasu i być może zmniejszy także poziom frustracji. Mamy również nadzieję, że specjalnie generowane grafiki towarzyszące tej serii dostarczą wyjątkowo cennego wglądu, pomagając i wspierając czytelników w ich dążeniu do lepszego zrozumienia makr TeX.

## Dostosowana wersja TeX firmy Overleaf

Wideo przedstawia krótką demonstrację zmodyfikowanej wersji TeX firmy Overleaf, dostosowanej do generowania diagramów węzłów Graphiviz (`.gv` plików) — żaden inny aspekt zachowania TeX nie jest przez te zmiany naruszony.  `.gv` Pliki zawierają reprezentacje list tokenów TeX używanych do przechowywania definicji makr i argumentów makr. Wizualizacja Graphviz jest eksportowana do SVG, które następnie jest importowane do [Inkscape](https://inkscape.org/) w celu dalszej adnotacji przed włączeniem grafiki do artykułu.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/40EAwKxZnNwgxwe9SpAwNY/5bce5de21509f3324bc50527ec6815e7/texdemo.mp4>" %}


---

# 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/wiecej-tematow/01-a-six-part-series-how-do-tex-macros-actually-work.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.
