> 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/24-how-tex-calculates-glue-settings-in-an-hbox.md).

# Jak TeX oblicza ustawienia glue w \hbox

To trzeci, i zarazem końcowy, artykuł z serii, która przygląda się $$\mathrm \TeX$$ boksom i glue. Pierwszy wpis [Pudełka i klej: krótkie, ale wizualne wprowadzenie z użyciem LuaTeX](/latex/pl/artykuly-szczegolowe/11-boxes-and-glue-a-brief-but-visual-introduction-using-luatex.md) wprowadził pojęcia boksów i glue, a po nim pojawił się [Pandora’s \hbox: Użycie LuaTeX do uchylenia wieka boksów TeX-a](/latex/pl/artykuly-szczegolowe/36-pandora-s-hbox-using-luatex-to-lift-the-lid-of-tex-boxes.md) który przedstawił [$$\text{Lua}\mathrm\TeX$$-oparty projekt Overleaf](https://www.overleaf.com/latex/examples/exploring-the-structure-of-tex-boxes-with-luatex/pwdrypmtdbgs) do zgłębiania głębszych struktur $$\mathrm \TeX$$ boksów za pomocą grafów węzłów. W tej końcowej części zagłębiamy się w mechanikę tego, jak $$\mathrm \TeX$$ oblicza wartości glue w `\hbox`: proces ten określa się jako *ustawianie glue*. Szeroko korzystamy z grafów węzłów (wprowadzonych w [Pandora’s \hbox: Użycie LuaTeX do uchylenia wieka boksów TeX-a](/latex/pl/artykuly-szczegolowe/36-pandora-s-hbox-using-luatex-to-lift-the-lid-of-tex-boxes.md) w tej serii) i pokazujemy, jak używać oraz interpretować niektóre z dostarczanych przez nie danych: `glue_set`, `glue_sign` i `glue_order`.

Przedstawiamy w pełni opracowany przykład obliczeń glue dla `\hbox` i omawiamy wiele szczegółów; mogą jednak istnieć dodatkowe okoliczności i kwestie, których nie mamy tu miejsca poruszyć, więc zainteresowanego czytelnika odsyłamy do strony 77 $$\text{The } \mathrm \TeX \text{book}$$.

## Wyzwanie

Załóżmy, że mamy `\hbox` taki jak ten:

```latex
\hbox to100pt{%
A\hskip4pt plus3pt minus 2pt%
B\hskip 0pt plus 2fil%
C\hskip 0pt plus 2fill%
D\hskip 0pt plus 3fill%
}
```

Oto, jak wygląda ten boks — dla przejrzystości pokazany w powiększeniu i z ramką:

![boks](/files/d4a26508a2ea24a2e9a9a0cd1384d8d1b78b2439)

Pytanie brzmi: jaka jest końcowa wartość, w $$\mathrm \TeX$$ punktach, odstępu (glue) między następującymi elementami:

* A i B
* B i C
* C i D
* D i koniec boksa

tj. chcemy obliczyć wartości $$\mathrm{g}*{1}, \mathrm{g}*{2}, \mathrm{g}*{3} \text{ and } \mathrm{g}*{4}:$$

![klej](/files/d3de0efe821cf1a3ac2bff324820871ef44b7d61)

Oto graf węzłów przedstawiający powyższy boks. Szczególnie interesujące są trzy wartości zawarte w sekcji „metadata”:

* `glue_set`
* `glue_sign`
* `glue_order`

![graf węzłów](/files/55a8d7d5af9d1ae9d03721fbec87fc831b437ee6)

Warto zauważyć, że określony zestaw wartości dla `glue_set`, `glue_sign` i `glue_order` wpływa tylko na glue w boksie najwyższego poziomu: nie wpływają one na glue wewnątrz *zagnieżdżonych* boksów: każdy zagnieżdżony boks (obiekt hlist lub vlist) ma własne wartości tych trzech parametrów. Oto przykład `\hbox` zagnieżdżonego wewnątrz zewnętrznego `\hbox`. W tym przykładzie wyraźnie widać różne wartości `glue_set`—oczywiście zagnieżdżony boks może też mieć inne wartości `glue_sign` i `glue_order`.

```latex
\hbox to 75pt{\hfill ABC\hbox to15pt{\hfill D}}
```

![graf węzłów](/files/fdf260022b8cb1690a6fa8b8aa714061bcba9d7e)

## Typy glue, nieskończoności i rzędy: podsumowanie

$$\mathrm \TeX$$ udostępnia szereg podstawowych poleceń związanych z glue, w tym:

* poziomy glue: `\hskip`, `\hfil`, `\hfill`, `\hfilneg`, `\hss`;
* pionowy glue:`\vskip`, `\vfil`, `\vfill`, `\vfilneg`, `\vss`;

wraz z `\mskip` do wstawiania glue w wyrażeniach matematycznych.

Element glue definiuje się za pomocą trzech wartości:

* **naturalna szerokość**: ile miejsca zajmuje, jeśli nie jest rozciągany ani ściskany;
* **składowa rozciągania**: o ile glue może się rozciągnąć;
* **składowa ściskania**: o ile glue może się skurczyć.

To, co będziemy rozważać, to użycie glue wewnątrz `\hbox{...}` oraz obliczenia $$\mathrm \TeX$$ używa do określenia, ile miejsca ostatecznie zajmie glue. Polecenie, którego użyjemy do utworzenia pewnego *poziomy* glue, to `\hskip`, które ma postać:

`**\hskip** *<natural width>* **plus** *<amount to stretch>* **minus** *<amount to shrink>*`

Dla *pionowy* glue, którego użyłbyś `**\vskip** *<natural width>* **plus** *<amount to stretch>* **minus** *<amount to shrink>*`.

Na przykład pewien typowy poziomy glue byłby zapisany jako `\hskip 3pt plus 2pt minus 1pt`. Możesz też używać innych jednostek fizycznych:

* `\hskip 3mm plus 2mm minus 1mm`
* `\hskip 3in plus 2in minus 1in`
* `\hskip 1in plus 3cm minus 20mm`

## $$\mathrm \TeX$$ glue i jednostki „nieskończoności”

W przypadku składowej ściskania lub rozciągania glue $$\mathrm \TeX$$ wprowadza inny typ jednostki: tak zwane „nieskończoności”: $$\text{fil}$$, $$\text{fill}$$ i $$\text{filll}$$. Te trzy „poziomy nieskończoności” są tak zdefiniowane, że w ciągu uporządkowanym każdy kolejny jest „bardziej nieskończony” od poprzedniego:

$$\text{fil} < \text{fill} < \text{filll}$$

Być może „nieskończoności” to nieco myląca nazwa dla tych jednostek — pomocne może być też myślenie o nich jako o różnych poziomach *priorytetu*, ponieważ ostatecznie pomagają one określić, które glue rzeczywiście biorą udział w procesie rozciągania lub ściskania. Dzięki glue ze „nieskończoną” składową rozciągania lub ściskania, $$\mathrm \TeX$$ pozwala tworzyć glue, które może się rozciągać lub kurczyć o dowolną żądaną wielkość. Zauważ, że w przypadku skończonych glue, $$\mathrm \TeX$$ ograniczy wielkość, o jaką takie glue mogą się skurczyć. Przykładem „nieskończonego” glue jest

`\hskip 3pt plus 2fil minus 1fill`

Zauważ, że nie możemy zapisać na przykład `\hskip 1fil` ponieważ $$\mathrm \TeX$$ zwróci błąd z komunikatem `Nielegalna jednostka miary (wstawiono pt)`. Na tym etapie te „poziomy nieskończoności” mogą brzmieć bardzo dziwnie, ale na razie po prostu przyjmijmy to do wiadomości i wkrótce zobaczymy, jak $$\mathrm \TeX$$ używa tych nieskończoności podczas wykonywania obliczeń glue.

### Poziomy nieskończoności („rząd glue”)

Wewnętrznie, gdy $$\mathrm \TeX$$ wykonuje obliczenia glue, przyjmuje, że każdy poziom nieskończoności jest „rzędem glue” od 0 do 3, gdzie rząd 0 dotyczy glue o wymiarach fizycznych, takich jak bp, pt, mm i tak dalej. Jednak w $$\text{Lua}\mathrm\TeX$$ istnieje niewielkie odstępstwo, ponieważ ma on w rzeczywistości dodatkowy typ (rząd) nieskończoności, którego nie ma wiele innych $$\mathrm \TeX$$ silników: $$\text{fi}$$ (zobacz wyjaśnienie poniżej). Jeśli przeczytasz $$\text{The } \mathrm \TeX\text{book}$$ nie zobaczysz żadnej wzmianki o $$\text{fi}$$ nieskończoności — po prostu dlatego, że nie jest ona zaimplementowana w oryginalnym oprogramowaniu Knutha. $$\mathrm \TeX$$ W rezultacie mamy niewielkie „rozłączenie” między $$\text{Lua}\mathrm\TeX\text{'s}$$ rzędami nieskończoności a tymi, które możesz spotkać w książkach o $$\mathrm \TeX$$. $$\text{Lua}\mathrm\TeX$$ używa nieskończoności o rzędach od 0 do 4, ale inne (powszechne) $$\mathrm \TeX$$ silniki obejmują zakres od 0 do 3. Oto tabela pokazująca rząd glue przypisany do każdego typu jednostki glue.

|                           |                                 |     |     |      |       |
| ------------------------- | ------------------------------- | --- | --- | ---- | ----- |
|                           | Jednostki fizyczne (pt, mm, in) | fi  | fil | fill | filll |
| $$\text{Lua}\mathrm\TeX$$ | 0                               | 1   | 2   | 3    | 4     |
| Inne silniki              | 0                               | N/D | 1   | 2    | 3     |

### Uwagi dotyczące $$\text{Lua}\mathrm\TeX$$: Po co dodatkowa nieskończoność?

$$\text{Lua}\mathrm\TeX$$ wywodzi się z szeregu projektów i bibliotek kodu, w tym z jednej zwanej [Omega](https://en.wikipedia.org/wiki/Omega_\(TeX\)). $$\text{Lua}\mathrm\TeX$$ zaimplementował pewne aspekty kodu Omegi, a to obejmuje nowy typ nieskończonego glue zwany $$\text{fi}$$. Z podręcznika Omegi:

> „Dodano nowy poziom nieskończoności $$\text{fi}$$ Jest mniejszy niż $$\text{fil}$$ ale większy niż jakakolwiek skończona wielkość. Jego pierwotnym przeznaczeniem było rozciąganie między literami: albo wypełnianie czerni, jak to się robi w przypadku krojów kaligraficznych, takich jak arabski; albo dla podkreślenia, jak w rosyjskim; wszystko to bez konieczności przepisywania istniejących pakietów makr. Zatem pojawia się nowe słowo kluczowe, $$\text{fi}$$i dwa nowe prymitywy, `\hfi` i `\vfi`”.

## Powrót do naszego wyzwania

Zgodnie z modelem Knutha zdefiniujmy dwie wielkości:

* pożądaną szerokość boksa: $$\mathrm{W}\_{\mathrm{D}}$$—jak duży chcemy, aby był;
* naturalną szerokość boksa: $$\mathrm{W}\_{\mathrm{N}}$$—całkowitą przestrzeń zajmowaną przez jego składniki przed rozciągnięciem lub skurczeniem jakichkolwiek glue.

### Naturalna szerokość boksa

Naturalna szerokość boksa to całkowita szerokość wszystkich składników w tym boksie: znaków, kernów, zagnieżdżonych boksów i wszelkiego glue. Dla glue wewnątrz boksa jego naturalna szerokość ignoruje wszelkie rozciągnięcie lub skurczenie glue: tj. jego rozmiar przed rozpoczęciem rozciągania lub ściskania.

Jeszcze raz, oto boks, który badamy:

```latex
\hbox to100pt{%
A\hskip4pt plus3pt minus 2pt%
B\hskip 0pt plus 2fil%
C\hskip 0pt plus 2fill%
D\hskip 0pt plus 3fill%
}
```

Jasne jest, że chcemy, aby boks miał szerokość 100pt, stąd $$\mathrm{W}*{\mathrm{D}}=100\mathrm{pt}$$ ale co z jego naturalną szerokością, $$\mathrm{W}*{\mathrm{N}}$$? Aby obliczyć naturalną szerokość, jasne jest, że potrzebujemy szerokości czterech znaków (A, B, C i D) plus naturalnych szerokości czterech glue.

$$\eqalign{\mathrm{W}\_{\mathrm{N}} &= &\text{width(A)} + \text{width(B)} + \text{width(C)} + \text{width(D)} \ & &+ \text{width}(\verb\*\hskip 4pt plus3pt minus 2pt\*)\ & &+\text{width}(\verb\*\hskip 0pt plus 2fil\*)\ & &+\text{width}(\verb\*\hskip 0pt plus 2fill)*\ & &+\text{width}(\verb*\hskip 0pt plus 3fill\*)\ }$$

Gdzie $$\text{width}$$ to po prostu oznaczenie służące do wskazania naturalnej szerokości elementu. Naturalne szerokości czterech znaków (A, B, C i D) możemy odczytać z naszego grafu węzłów:

![graf węzłów](/files/b88dff3557396a0dcd41b8d81599e8a27fbe24fb)

Z powyższego grafu węzłów widzimy, że:

$$\eqalign{ \text{width(A)} &= 7.50002\text{pt}\ \text{width(B)} &= 7.08336\text{pt}\ \text{width(C)} &= 7.22223\text{pt}\ \text{width(D)} &= 7.6389\text{pt}\ }$$

Teraz potrzebujemy już tylko naturalnych szerokości naszych glue, które łatwo otrzymać, ignorując składowe rozciągania i ściskania:

$$\eqalign{ &\text{width}(\verb\*\hskip 4pt plus3pt minus 2pt\*) & = 4\text{pt}\ &\text{width}(\verb\*\hskip 0pt plus 2fil\*) &=0\text{pt}\ &\text{width}(\verb\*\hskip 0pt plus 2fill)*&=0\text{pt}\ &\text{width}(\verb*\hskip 0pt plus 3fill\*)&=0\text{pt}\ }$$

Zatem:

$$\eqalign{ \mathrm{W}\_{\mathrm{N}} & = \text{widths of characters} + \text{width of all glues}\ &= 7.50002\text{pt}+ 7.08336\text{pt} + 7.22223\text{pt} + 7.6389\text{pt} + 4\text{pt}\space \text{(from }\verb\*\hskip\*\text{)}\ &=33.4445\text{pt}\ }$$

Mamy teraz dwie kluczowe informacje:

$$\eqalign{ \mathrm{W}*{\mathrm{D}} & = 100\text{pt}\ \mathrm{W}*{\mathrm{N}} & = 33.4445\text{pt}\ }$$

Jasne, że $$\mathrm{W}*{\mathrm{D}} > \mathrm{W}*{\mathrm{N}}$$ a różnica wynosi $$(100-33.4445)\text{pt}=66.5555\text{pt}$$; ta nadmiarowa przestrzeń musi zostać wypełniona przez rozciągnięcie glue — ale które i o ile?

### Kto ma największe rozciąganie?

Zgodnie z metodologią Knutha (strona 77 $$\text{The } \mathrm \TeX \text{book}$$), ale z uwzględnieniem dodatkowego typu nieskończoności ($$\text{fi}$$) dostarczanego przez $$\text{Lua}\mathrm \TeX$$, następnym krokiem jest zapisanie *całkowitego* rozciągania w postaci:

$$\text{total stretch} = y\_{0}+ y\_{1}\text{fi} +y\_{2}\text{fil} +y\_{3}\text{fill} +y\_{4}\text{filll}$$

Po pierwsze, jeśli zapiszemy $$\text{total glue}$$:

$$\text{total glue } = (\verb*4pt plus3pt minus 2pt*) + (\verb*0pt plus 2fil*) + (\verb*0pt plus 2fill*) + (\verb*0pt plus 3fill*)$$

to możemy wtedy zobaczyć, że $$\text{total stretch}$$ jest:

$$\eqalign{ \text{total stretch} & = 3\text{pt}+ 0\text{fi} + (2\text{fil}) + (2\text{fill} + 3\text{fill}) + 0\text{filll}\ &=3\text{pt}+ 0\text{fi} + 2\text{fil} + 5\text{fill} + 0\text{filll}\ }$$

Porównując to z $$\text{total stretch} = y\_{0}+ y\_{1}\text{fi} +y\_{2}\text{fil} +y\_{3}\text{fill} +y\_{4}\text{filll}\space$$możemy zauważyć, że:

$$\eqalign{ y\_0 &=3\text{pt}\ y\_1 &=0\ y\_2 &=2\ y\_3&=5\ y\_4&=0\ }$$

$$\mathrm\TeX$$ następnie „zadaje sobie pytanie”: patrząc na $$\text{total stretch}$$, jaki jest najwyższy poziom nieskończoności z wartością różną od zera? Po zbadaniu $$\text{total stretch}$$ naszego boksa jasne jest, że najbardziej „nieskończonym” niezerowym składnikiem rozciągania jest $$\text{fill}$$ i mamy $$y\_3=5$$ jednostek tego typu: to glue ze składową $$\text{fill}$$ rozciągania zapewniają całe rozciąganie. Indeks dolny 3 w $$y\_3$$ mówi nam `glue_order` rzędzie `\hbox` glue, który zostanie użyty — w tym przypadku do rozciągania. Teraz, jeśli spojrzymy na sekcję „metadata” w naszym diagramie węzłów dla tego `glue_set` boksu, możemy teraz nadać sens dwóm kolejnym „wartościom metadata” (zajmiemy się

![metadane](/files/07baa4844b8d9c8b105c676e14d1aca4efe9a5b0)

* `glue_sign`: mówi, czy glue ma mieć ustawioną naturalną długość, zostać rozciągnięte czy skurczone:
* 0=ustawione na naturalną szerokość
* 1=rozciąganie
* 2=ściskanie

W naszym przykładzie, `glue_sign` ma wartość `1`, co oznacza, że uczestniczące glue mają zostać rozciągnięte.

* `glue_order` mówi, który „nieskończony” poziom jest zaangażowany; dla $$\text{Lua}\mathrm \TeX$$ wartość 3 mówi, że glue ze składową $$\text{fill}$$ będą uczestniczyć w obliczeniach glue — w naszym przypadku będą się rozciągać.

Każde glue, które nie ma składowej rozciągania zdefiniowanej w jednostkach $$\text{fill}$$ będzie **ustawione na naturalną długość**: tj. w naszym przypadku w ogóle się nie rozciągnie.

### Ile rozciągnąć lub ścisnąć: obliczanie glue\_set

Podsumujmy, gdzie jesteśmy i co wiemy:

1. pożądana szerokość boksa: $$\mathrm{W}\_{\mathrm{D}} = 100\text{pt}$$;
2. naturalna szerokość boksa: $$\mathrm{W}\_{\mathrm{N}} = 33.4445\text{pt}$$;
3. glue będzie musiało się rozciągnąć, ale tylko glue ze składową $$\text{fill}$$ rozciągania wykonają to rozciąganie;
4. mamy łącznie $$(2+3)=5$$ jednostek $$\text{fill}$$ dostępnych.

Następne pytanie brzmi: o ile właściwie rozciągną się te glue? Wkracza *współczynnik ustawienia glue*—określany jako `glue_set` w naszym grafie węzłów. To, co $$\mathrm \TeX$$ robi, to ustala, ile miejsca trzeba wypełnić, a następnie rozdziela tę ilość miejsca między odpowiednie glue proporcjonalnie do wielkości ich składowej rozciągania. Jeśli wrócisz do naszego rzeczywistego `\hbox` widzisz dokładnie, które glue mają składowe rozciągania zawierające jednostki $$\text{fill}$$:

```latex
\hbox to100pt{%
A\hskip4pt plus3pt minus 2pt%
B\hskip 0pt plus 2fil%
C\hskip 0pt plus 2fill%
D\hskip 0pt plus 3fill%
}
```

Ta $$\textit{glue set ratio }(\text{or } \verb*glue\_set*)$$ oblicza się następująco:

$$\eqalign{ \text{glue set ratio}\space (\verb*glue\_set*) = & {\text{amount to stretch}}\over{\text{value of highest infinity}}\ =& {\mathrm{W}*{\mathrm{D}}-\mathrm{W}*{\mathrm{N}}}\over{y\_3}\ =& {(100-33.4445)}\over{5}\ =& {66.5555}\over{5}\ =& 13.3111\space (\text{to 4 decimal places})\ }$$

A teraz ostatni krok w $$\mathrm\TeX$$ algorytmie zostaje zastosowany:

1. dla każdego elementu glue, którego składowa rozciągania odpowiada pożądanemu `glue_order` (w naszym przypadku 3) długość tego glue stanie się:

$$\text{stretched value} = \text{natural length} + (\verb*glue\_set* \times \text{value of stretch component})$$

3. wszystkie pozostałe glue są ustawiane na swoją naturalną długość — tj. w ogóle się nie rozciągają.

Patrząc na glue w naszym boksie:

```latex
\hbox to100pt{%
A\hskip4pt plus3pt minus 2pt%
B\hskip 0pt plus 2fil%
C\hskip 0pt plus 2fill%
D\hskip 0pt plus 3fill%
}
```

możemy przejść przez nie, aby obliczyć ich końcowe wartości:

1. **Między A i B**: `\hskip 4pt plus3pt minus 2pt`. Składowa rozciągania wynosi `3pt`, co jest rzędem `0`. Wymagany `glue_order` to `3`: składowa rozciągania jest ignorowana i ten glue przyjmuje swoją naturalną szerokość `4pt`.
2. **Między B i C**: `\hskip 0pt plus 2fil`. Składowa rozciągania wynosi `2fil`, co jest rzędem `2`. Wymagany `glue_order` to `3`: składowa rozciągania jest ignorowana i ten glue przyjmuje swoją naturalną szerokość `0pt`.
3. **Między C i D**: `\hskip 0pt plus 2fill`. Składowa rozciągania wynosi `2fill`, co jest rzędem `3` i odpowiada wymaganemu `glue_order` o wartości `3`. Ten glue zostanie rozciągnięty do: $$\eqalign{ \text{stretched value}\space = & \text{natural width} + (\verb*glue\_set* \times \text{value of stretch component})\ = & 0\text{pt} + 13.3111 \times 2 \ = & 26.6222\text{pt}\ }$$5. **Między D a końcem boksa**: `\hskip 0pt plus 3fill`. Składowa rozciągania wynosi `3fill`, co jest rzędem `3` i odpowiada wymaganemu `glue_order` o wartości `3`. Ten glue zostanie rozciągnięty do: $$\eqalign{ \text{stretched value}\space = &\text{natural width} + (\verb*glue\_set* \times \text{value of stretch component})\ =& 0\text{pt} + 13.3111 \times 3 \ = &39.9333\text{pt}\ }$$

## I wreszcie: sprawdzenie całkowitej szerokości

Proces obliczania rzeczywistej przestrzeni zajmowanej przez glue nazywa się *ustawianie glue* więc możemy teraz sprawdzić, czy wypełniliśmy boks do pożądanej szerokości, $$(\mathrm{W}\_{\mathrm{D}} = \text{100pt})$$:

$$\eqalign{ \mathrm{W}\_{\mathrm{D}} & = \text{width of all characters} + \text{width of all }\textbf{set}\text{ glue values}\ & = \text{A:7.50002pt} + \text{B:7.08336pt} + \text{C:7.22223pt} + \text{D:7.6389pt}\ & + \text{4pt} + \text{0pt} + \text{26.6222pt} + \text{39.9333pt}\ & = \text{100.00pt} }$$

Teraz znamy szerokości wszystkich glue i możemy przygotować grafikę, która odpowiada na pytanie postawione na początku tego artykułu: oto szerokości glue między znakami w naszym `\hbox`:

![klej](/files/6385e3cddc10ec1dc38383ee87ced4fb0759b8b0)


---

# 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/24-how-tex-calculates-glue-settings-in-an-hbox.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.
