> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/tr/derinlemesine-makaleler/24-how-tex-calculates-glue-settings-in-an-hbox.md).

# TeX, bir \hbox içinde glue ayarlarını nasıl hesaplar

Bu, şu konulara bakan bir dizideki üçüncü ve son makaledir $$\mathrm \TeX$$ kutular ve glue. İlk gönderi [Kutular ve Glue: LuaTeX Kullanarak Kısa ama Görsel Bir Giriş](/latex/tr/derinlemesine-makaleler/11-boxes-and-glue-a-brief-but-visual-introduction-using-luatex.md) kutular ve glue kavramlarını tanıttı ve bunu [Pandora’nın \\\hbox’u: LuaTeX kullanarak TeX kutularının kapağını kaldırmak](/latex/tr/derinlemesine-makaleler/36-pandora-s-hbox-using-luatex-to-lift-the-lid-of-tex-boxes.md) şu projeyi sundu [$$\text{Lua}\mathrm\TeX$$-tabanlı bir Overleaf projesi](https://www.overleaf.com/latex/examples/exploring-the-structure-of-tex-boxes-with-luatex/pwdrypmtdbgs) daha derin yapılarını keşfetmek için $$\mathrm \TeX$$ düğüm grafikleri kullanarak kutuların daha derin yapıları. Bu son bölümde, nasıl $$\mathrm \TeX$$ bir `\hbox`: bir süreç olarak adlandırılan *glue’yu ayarlama*. Bu seride tanıtılan düğüm grafiklerini yoğun biçimde kullanıyoruz (bkz. [Pandora’nın \\\hbox’u: LuaTeX kullanarak TeX kutularının kapağını kaldırmak](/latex/tr/derinlemesine-makaleler/36-pandora-s-hbox-using-luatex-to-lift-the-lid-of-tex-boxes.md) bu seride) ve sağladıkları bazı verilerin nasıl kullanılacağını ve yorumlanacağını gösteriyoruz: `glue_set`, `glue_sign` ve `glue_order`.

bir `\hbox` için glue hesaplamalarının tam çözümlü bir örneğini sunuyoruz $$\text{The } \mathrm \TeX \text{book}$$.

## Zorluk

Elimizde bir `\hbox` bunun gibi bir şey olduğunu varsayalım:

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

İşte bu kutunun nasıl göründüğü—anlaşılırlık için büyütülmüş ve kenarlıklı olarak gösterilmiştir:

![kutu](/files/2f39faf79bfb860f22dc4e88f58126a9c27b04e4)

Soru şu: son değer nedir, $$\mathrm \TeX$$ aşağıdaki öğeler arasındaki boşluğun (glue’un) points cinsinden değeri:

* A ile B
* B ile C
* C ile D
* D ile kutunun sonu

yani, şu değerleri hesaplamak istiyoruz $$\mathrm{g}*{1}, \mathrm{g}*{2}, \mathrm{g}*{3} \text{ and } \mathrm{g}*{4}:$$

![esnek boşluk](/files/99bf24c03a42125acf82285ec0c4ae809b1271db)

Yukarıdaki kutuyu temsil eden bir düğüm grafiği burada. Özellikle “metadata” bölümündeki üç değer ilgi çekicidir:

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

![düğüm grafiği](/files/5f4bc3ca2cd802a220aa86f88ed6e11cc1fa5445)

Belirli bir `glue_set`, `glue_sign` ve `glue_order` yalnızca en üst düzey kutudaki glue’ları etkiler: bunlar *iç içe* kutular içindeki glue’ları etkilemez: her iç içe kutu (hlist veya vlist nesnesi) bu üç parametre için kendi değerlerine sahiptir. İşte bir `\hbox` dış bir `\hbox`içinde iç içe kutuya bir örnek. Bu örnekte, `glue_set`—elbette, iç içe kutu için `glue_sign` ve `glue_order`.

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

![düğüm grafiği](/files/ba6d93158ab5b98dba355d19ae9b90063048f6a4)

## Glue türleri, sonsuzluklar ve mertebeler: Özet

$$\mathrm \TeX$$ bir dizi ilkel glue ile ilgili komut sağlar; bunlar arasında:

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

bunlarla birlikte `\\mskip` matematik ifadelerine glue eklemek için.

Bir glue öğesi üç değer kümesiyle tanımlanır:

* **doğal genişlik**: onu esnetmez veya küçültmezseniz ne kadar yer kapladığı;
* **esneme bileşeni**: glue’un ne kadar esneyebileceği;
* **küçülme bileşeni**: glue’un ne kadar küçülebileceği.

Ele alacağımız konu, bir `\hbox{...}` ve hesaplamaların $$\mathrm \TeX$$ glue’un sonunda ne kadar yer kaplayacağını belirlemek için kullandığı şeydir. Bir miktar *yatay* glue `\hskip`, ve şu biçimi alır:

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

için *dikey* kullanacağınız glue `**\\vskip** *<natural width>* **plus** *<amount to stretch>* **minus** *<amount to shrink>*`.

Örneğin, bazı tipik yatay glue şöyle ifade edilir `\\hskip 3pt plus 2pt minus 1pt`. Başka fiziksel birimler de kullanabilirsiniz:

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

## $$\mathrm \TeX$$ glue ve “sonsuzluk” birimleri

Glue’nun küçülme veya esneme bileşeni için $$\mathrm \TeX$$ başka bir birim türünü tanıtır: sözde “sonsuzluklar”: $$\text{fil}$$, $$\text{fill}$$ ve $$\text{filll}$$. Bu üç “sonsuzluk düzeyi”, bir dizide sıralandıklarında her birinin bir öncekinden “daha sonsuz” olması anlamına gelir:

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

Belki de “sonsuzluklar” bu birimler için biraz kafa karıştırıcı bir isimdir—onları farklı *öncelik*düzeyleri olarak da düşünmek faydalı olabilir, çünkü sonuçta hangi glue’ların gerçekten esneme veya küçülme sürecine katılacağını belirlemeye yardımcı olurlar. “Sonsuz” bir esneme veya küçülme bileşenine sahip glue, $$\mathrm \TeX$$ istediğiniz miktarda esneyebilen veya küçülebilen glue oluşturmanıza olanak tanır. Sonlu glue’lar için, $$\mathrm \TeX$$ bu tür glue’ların küçülebileceği miktarı sınırlar. “Sonsuz” glue örneği şöyledir:

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

Şuna dikkat edin, örneğin şöyle yazamayız, `\\hskip 1fil` çünkü $$\mathrm \TeX$$ şu mesajla bir hata bildirir `Geçersiz ölçü birimi (pt eklendi)`. Bu noktada, bu “sonsuzluk düzeyleri” çok garip gelebilir; ancak şimdilik olduğu gibi kabul edin, birazdan nasıl $$\mathrm \TeX$$ glue hesaplamaları yaparken bu sonsuzlukları kullanır.

### Sonsuzluk düzeyleri (“glue mertebesi”)

İçsel olarak, $$\mathrm \TeX$$ glue hesaplamalarını yaparken, her sonsuzluk düzeyini 0–3 aralığında bir “glue mertebesi” olarak kabul eder; 0. mertebe bp, pt, mm gibi fiziksel boyutlara sahip glue içindir. Ancak, $$\text{Lua}\mathrm\TeX$$ biraz sapma vardır, çünkü gerçekte birçok diğer $$\mathrm \TeX$$ motorlarda bulunmayan fazladan bir sonsuzluk türü (mertebesi) vardır: $$\text{fi}$$ (aşağıdaki açıklamaya bakın). Eğer $$\text{The } \mathrm \TeX\text{book}$$ şuna dair hiçbir atıf görmezsiniz $$\text{fi}$$ sonsuzluğa—çünkü bu, Knuth’un özgün $$\mathrm \TeX$$ yazılımında uygulanmamıştır. Sonuç olarak, $$\text{Lua}\mathrm\TeX\text{'s}$$ sonsuzluk mertebeleri ile kitaplarında görebileceğiniz mertebeler arasında hafif bir kopukluk var $$\mathrm \TeX$$. $$\text{Lua}\mathrm\TeX$$ 0–4 aralığında mertebelere sahip sonsuzluklar kullanır, ancak diğer (yaygın) $$\mathrm \TeX$$ motorlarda aralık 0–3’tür. İşte her bir glue birimi türüne atanan glue mertebesini gösteren bir tablo.

|                           |                                |     |     |      |       |
| ------------------------- | ------------------------------ | --- | --- | ---- | ----- |
|                           | Fiziksel birimler (pt, mm, in) | fi  | fil | fill | filll |
| $$\text{Lua}\mathrm\TeX$$ | 0                              | 1   | 2   | 3    | 4     |
| Diğer motorlar            | 0                              | Yok | 1   | 2    | 3     |

### Üzerine notlar $$\text{Lua}\mathrm\TeX$$: Neden fazladan bir sonsuzluk?

$$\text{Lua}\mathrm\TeX$$ bir dizi proje ve kod kitaplığından türetilmiştir; bunlardan biri şudur: [Omega](https://en.wikipedia.org/wiki/Omega_\(TeX\)). $$\text{Lua}\mathrm\TeX$$ Omega’nın kodunun bazı yönlerini içeriyordu ve buna, adı verilen yeni bir sonsuz glue türü de dahildir $$\text{fi}$$omega’nın kılavuzundan:

> “Yeni bir sonsuzluk düzeyi $$\text{fi}$$ eklendi. Bu, $$\text{fil}$$ herhangi bir sonlu nicelikten büyüktür. İlk amacı harfler arası esnemeydi: Arapça gibi kaligrafik yazılarda yapıldığı gibi siyah alanı doldurmak için; ya da Rusçada olduğu gibi vurgu için; tüm bunlar mevcut makro paketlerini yeniden yazmadan yapılacaktı. Bu nedenle yeni bir anahtar sözcük vardır, $$\text{fi}$$, ve iki yeni ilkel komut, `\\hfi` ve `\\vfi`” ifadesiyle belirtilir.

## Tekrar zorluğumuza dönelim

Knuth’un modelini izleyerek, iki nicelik tanımlayalım:

* bir kutunun istenen genişliği: $$\mathrm{W}\_{\mathrm{D}}$$—onu ne kadar büyük istiyoruz;
* bir kutunun doğal genişliği: $$\mathrm{W}\_{\mathrm{N}}$$—glue’lar esnetilmeden veya küçültülmeden önce, onu oluşturan öğelerin kapladığı toplam alan.

### Bir kutunun doğal genişliği

Bir kutunun doğal genişliği, o kutudaki tüm bileşenlerin toplam genişliğidir: karakterler, kern’ler, iç içe kutular ve herhangi bir glue. Kutu içindeki glue için doğal genişlik, glue’un herhangi bir esneme veya küçülmesini yok sayar: yani, herhangi bir esnetme veya küçültme gerçekleşmeden önceki boyutudur.

Bir kez daha, incelediğimiz kutu burada:

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

Açıkça, kutunun 100pt genişliğinde olmasını istiyoruz, dolayısıyla $$\mathrm{W}*{\mathrm{D}}=100\mathrm{pt}$$ peki doğal genişliği ne olacak, $$\mathrm{W}*{\mathrm{N}}$$? Doğal genişliği hesaplamak için dört karakterin (A, B, C ve D) genişliklerine artı dört glue’un doğal genişliklerine ihtiyacımız olduğu açıktır.

$$\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\*)\ }$$

Burada $$\text{width}$$ yalnızca bir öğenin doğal genişliğini belirtmek için kullanılan bir gösterimdir. Dört karakterin (A, B, C ve D) doğal genişliklerini düğüm grafiğimizden elde edebiliriz:

![düğüm grafiği](/files/95f4b6390efcba1b79bfdfe962e9aeb245735de8)

Yukarıdaki düğüm grafiğinden şunu görebiliriz ki:

$$\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}\ }$$

Şimdi ihtiyacımız olan tek şey glue’larımızın doğal genişlikleridir; bunlar esneme ve küçülme bileşenleri yok sayılarak kolayca elde edilir:

$$\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}\ }$$

Dolayısıyla:

$$\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}\ }$$

Şimdi iki temel bilgiye sahibiz:

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

Açıkça, $$\mathrm{W}*{\mathrm{D}} > \mathrm{W}*{\mathrm{N}}$$ ve fark $$(100-33.4445)\text{pt}=66.5555\text{pt}$$; bu fazla boşluğun glue’ların esnetilmesiyle doldurulması gerekiyor—ama hangileri ve ne kadar?

### En çok esneme kimde?

Knuth’un yöntemini izleyerek (sayfa 77 $$\text{The } \mathrm \TeX \text{book}$$), fakat ek sonsuzluk türüne ($$\text{fi}$$) tarafından sağlanan $$\text{Lua}\mathrm \TeX$$, bir sonraki adım kutunun *toplam* esnemesini şu biçimde yazmaktır:

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

Öncelikle, eğer $$\text{total glue}$$:

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

yazarsak, o zaman $$\text{total stretch}$$ şudur:

$$\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}\ }$$

Bunu $$\text{total stretch} = y\_{0}+ y\_{1}\text{fi} +y\_{2}\text{fil} +y\_{3}\text{fill} +y\_{4}\text{filll}\space$$ile karşılaştırınca şunu görebiliriz ki:

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

$$\mathrm\TeX$$ sonra kendi kendine “sorar”: $$\text{total stretch}$$bakınca, sıfır olmayan değere sahip en yüksek sonsuzluk düzeyi nedir? Kutumuzun $$\text{total stretch}$$ incelenince, “en sonsuz” sıfır olmayan esneme bileşeninin $$\text{fill}$$ olduğu açıktır ve elimizde $$y\_3=5$$ birimi vardır: bu, $$\text{fill}$$ esneme bileşenine sahip glue’lardır ve tüm esnemeyi sağlarlar.  $$y\_3$$ alt simgesi 3 bize `glue_order` kullanılacak glue’nun `\hbox` şimdi iki “metadata değeri”ni daha anlamlandırabiliriz ( `glue_set` bir sonraki bölümde ele alacağız)

![metadata](/files/42274d0d3c8a65ca74ee1f31ce30122d5ade70f8)

* `glue_sign`: glue’un doğal uzunluğuna ayarlanıp ayarlanmadığını, esnetilip esnetilmediğini ya da küçültülüp küçültülmediğini söyler:
* 0=doğal genişliğe ayarlı
* 1=esneme
* 2=küçülme

Örneğimizde, `glue_sign` değerine sahiptir `1`, yani katılan glue’lar esnetilecektir.

* `glue_order` hangi “sonsuzluğun” işin içinde olduğunu söyler; $$\text{Lua}\mathrm \TeX$$ 3 değeri, glue’ların $$\text{fill}$$ bileşeninin glue hesaplamalarına katılacağını söyler—bizim durumumuzda bunlar esneyecek.

birimleri cinsinden tanımlı bir esneme bileşeni olmayan herhangi bir glue $$\text{fill}$$ olacaktır **doğal uzunluğuna ayarlanmış**: yani (bizim durumumuzda) hiç esnemeyecektir.

### Ne kadar esnetilecek veya küçültülecek: glue\_set’in hesaplanması

Nerede olduğumuzu ve ne bildiğimizi özetleyelim:

1. kutunun istenen genişliği: $$\mathrm{W}\_{\mathrm{D}} = 100\text{pt}$$;
2. kutunun doğal genişliği: $$\mathrm{W}\_{\mathrm{N}} = 33.4445\text{pt}$$;
3. glue esnemek zorunda olacak, ancak yalnızca $$\text{fill}$$ esneme bileşeni bunu yapacaktır;
4. toplam $$(2+3)=5$$ birim $$\text{fill}$$ mevcut.

Sonraki soru şu: bu glue’lar gerçekte ne kadar esneyecek? İşte *glue ayar oranı*—olarak adlandırılır `glue_set` düğüm grafiğimizde. Glue\_set’in yaptığı şey $$\mathrm \TeX$$ doldurulması gereken boşluk miktarını hesaplamak ve sonra bu boşluğu uygun glue’lar arasında, esneme bileşenlerinin büyüklüğüne orantılı olarak dağıtmaktır. Gerçek `\hbox` bakarsanız, tam olarak hangi glue’ların esneme bileşenlerinin $$\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%
}
```

Bu $$\textit{glue set ratio }(\text{or } \verb*glue\_set*)$$ şu şekilde hesaplanır:

$$\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})\ }$$

Ve şimdi $$\mathrm\TeX$$ algoritmasının son adımı uygulanır:

1. esneme bileşeni istenen `glue_order` ile eşleşen her glue öğesi için (3 bizim durumumuzda) o glue’un uzunluğu şu hale gelecektir:

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

3. diğer tüm glue’lar doğal uzunluklarına ayarlanır—yani hiç esnemezler.

Kutumuzdaki glue’lara bakarak:

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

son değerlerini hesaplamak için tek tek inceleyebiliriz:

1. **A ile B arasında**: `\\hskip 4pt plus3pt minus 2pt`. Esneme bileşeni `3pt`, bu da mertebedir `0`. Gerekli `glue_order` şudur `3`: esneme bileşeni göz ardı edilir ve bu glue doğal genişliği olan `4pt`.
2. **B ile C arasında**: `\\hskip 0pt plus 2fil`. Esneme bileşeni `2fil`, bu da mertebedir `2`. Gerekli `glue_order` şudur `3`: esneme bileşeni göz ardı edilir ve bu glue doğal genişliği olan `0pt`.
3. **C ile D arasında**: `\\hskip 0pt plus 2fill`. Esneme bileşeni `2fill`, bu da mertebedir `3` ve gerekenle eşleşir `glue_order` için bir belirteç değeri oluşturur `3`. Bu glue şu kadar esnetilecektir: $$\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. **D ile kutunun sonu arasında**: `\\hskip 0pt plus 3fill`. Esneme bileşeni `3fill`, bu da mertebedir `3` ve gerekenle eşleşir `glue_order` için bir belirteç değeri oluşturur `3`. Bu glue şu kadar esnetilecektir: $$\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}\ }$$

## Ve son olarak: toplam genişliğin kontrolü

Glue’nun kapladığı gerçek alanı hesaplama sürecine *glue’yu ayarlama* denir, böylece artık kutuyu istenen genişliğe doldurup doldurmadığımızı kontrol edebiliriz, $$(\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} }$$

Artık tüm glue’ların genişliklerini biliyoruz ve bu makalenin başında sorulan soruyu yanıtlayan bir grafik hazırlayabiliriz: işte bizim içindeki karakterler arasındaki glue genişlikleri `\hbox`:

![esnek boşluk](/files/35e3232c7af4859f19c4ed5420e780aa97918af9)


---

# 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://ayakaleaf-pro.ayaka.space/latex/tr/derinlemesine-makaleler/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.
