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

# Bagaimana TeX Menghitung Pengaturan Glue dalam \hbox

Ini adalah artikel ketiga, dan penutup, dalam seri yang menyoroti $$\mathrm \TeX$$ kotak dan glue. Tulisan pertama [Kotak dan Glue: Pengantar Singkat, tetapi Visual, Menggunakan LuaTeX](/latex/id/artikel-mendalam/11-boxes-and-glue-a-brief-but-visual-introduction-using-luatex.md) memperkenalkan konsep kotak dan glue dan diikuti oleh [Pandora’s \hbox: Menggunakan LuaTeX untuk Membuka Tutup Kotak TeX](/latex/id/artikel-mendalam/36-pandora-s-hbox-using-luatex-to-lift-the-lid-of-tex-boxes.md) yang menampilkan sebuah [$$\text{Lua}\mathrm\TeX$$-berbasis proyek Overleaf](https://www.overleaf.com/latex/examples/exploring-the-structure-of-tex-boxes-with-luatex/pwdrypmtdbgs) untuk mengeksplorasi struktur yang lebih dalam dari $$\mathrm \TeX$$ kotak melalui penggunaan graf node. Dalam bagian terakhir ini kita melakukan “penyelaman mendalam” ke mekanisme bagaimana $$\mathrm \TeX$$ menghitung nilai glue dalam sebuah `\hbox`: sebuah proses yang disebut *menetapkan glue*. Kita banyak menggunakan graf node (diperkenalkan dalam [Pandora’s \hbox: Menggunakan LuaTeX untuk Membuka Tutup Kotak TeX](/latex/id/artikel-mendalam/36-pandora-s-hbox-using-luatex-to-lift-the-lid-of-tex-boxes.md) dalam seri ini) dan menunjukkan cara menggunakan dan menafsirkan beberapa data yang mereka berikan: `glue_set`, `glue_sign` dan `glue_order`.

Kami menyediakan contoh lengkap perhitungan glue untuk sebuah `\hbox` dan mencakup banyak detail; namun, mungkin ada keadaan dan pertimbangan tambahan yang tidak sempat kita bahas di sini dan pembaca yang berminat dirujuk ke halaman 77 dari $$\text{The } \mathrm \TeX \text{book}$$.

## Tantangannya

Misalkan kita memiliki sebuah `\hbox` seperti ini:

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

Berikut tampilan kotak ini—untuk kejelasan, ditampilkan diperbesar dan dengan bingkai:

![kotak](/files/6ad650774bb43ee75741aba0b1bd75f3e85b040d)

Pertanyaannya adalah: berapa nilai akhir, dalam $$\mathrm \TeX$$ poin, dari ruang (glue) di antara item-item berikut:

* A dan B
* B dan C
* C dan D
* D dan akhir kotak

yakni, kita ingin menghitung nilai $$\mathrm{g}*{1}, \mathrm{g}*{2}, \mathrm{g}*{3} \text{ and } \mathrm{g}*{4}:$$

![glue](/files/e7c94f5894b30c57f38356700e5b7d7ac0a60dba)

Berikut adalah graf node yang merepresentasikan kotak di atas. Yang paling menarik adalah tiga nilai yang terkandung dalam bagian “metadata”:

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

![graf node](/files/41fb14023b0a831fc878d2475a368451f9e958dc)

Penting untuk dicatat bahwa seperangkat nilai tertentu untuk `glue_set`, `glue_sign` dan `glue_order` hanya memengaruhi glue di dalam kotak tingkat atas: nilai tersebut tidak memengaruhi glue di dalam *bersarang* kotak: setiap kotak bersarang (objek hlist atau vlist) memiliki nilai sendiri untuk ketiga parameter ini. Berikut adalah contoh dari sebuah `\hbox` yang bersarang di dalam sebuah `\hbox`. Dalam contoh ini, Anda dapat dengan jelas melihat nilai-nilai berbeda dari `glue_set`—tentu saja, kotak bersarang juga dapat memiliki nilai berbeda untuk `glue_sign` dan `glue_order`.

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

![graf node](/files/6bf2dbe4de8f58ad4dd4cf5249f33cbbeb8920ed)

## Jenis glue, infinity, dan orde: Ringkasan

$$\mathrm \TeX$$ menyediakan sejumlah perintah primitif terkait glue, termasuk:

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

bersama dengan `\mskip` untuk menyisipkan glue dalam ekspresi matematika.

Sebuah item glue didefinisikan oleh seperangkat tiga nilai:

* **lebar alami**: seberapa banyak ruang yang ditempati jika Anda tidak meregangkan atau menyusutkannya;
* **komponen regangan**: seberapa jauh glue dapat diregangkan;
* **komponen penyusutan**: seberapa jauh glue dapat menyusut.

Yang akan kita pertimbangkan adalah penggunaan glue di dalam sebuah `\hbox{...}` dan perhitungan $$\mathrm \TeX$$ menggunakan untuk menentukan seberapa banyak ruang yang pada akhirnya akan ditempati oleh glue. Perintah yang akan kita gunakan untuk membuat beberapa *horizontal* glue adalah `\hskip`, yang berbentuk:

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

Untuk *vertikal* glue yang akan Anda gunakan `**\vskip** *<natural width>* **plus** *<amount to stretch>* **minus** *<amount to shrink>*`.

Sebagai contoh, beberapa glue horizontal tipikal akan dinyatakan sebagai `\hskip 3pt plus 2pt minus 1pt`. Anda juga dapat menggunakan satuan fisik lainnya:

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

## $$\mathrm \TeX$$ glue dan satuan “infinity”

Untuk komponen penyusutan atau peregangan dari glue $$\mathrm \TeX$$ memperkenalkan jenis satuan lain: yang disebut “infinity”: $$\text{fil}$$, $$\text{fill}$$ dan $$\text{filll}$$. Ketiga “tingkat infinity” ini sedemikian rupa sehingga ketika disusun berurutan, masing-masing satu lebih “tak hingga” daripada sebelumnya:

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

Mungkin “infinity” adalah nama yang agak membingungkan untuk satuan-satuan ini—mungkin akan membantu jika juga memandangnya sebagai tingkat berbeda dari *prioritas*, karena pada akhirnya mereka membantu menentukan glue mana yang benar-benar ikut serta dalam proses peregangan atau penyusutan. Dengan memiliki glue dengan komponen regang atau susut yang “tak hingga”, $$\mathrm \TeX$$ memungkinkan Anda membuat glue yang dapat meregang atau menyusut sebesar apa pun yang diinginkan. Perhatikan bahwa untuk glue hingga, $$\mathrm \TeX$$ akan membatasi jumlah penyusutan glue semacam itu. Contoh glue “tak hingga” adalah

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

Perhatikan, kita tidak bisa menulis, misalnya, `\hskip 1fil` karena $$\mathrm \TeX$$ akan melaporkan kesalahan dengan pesan `Illegal unit of measure (pt inserted)`. Pada titik ini, “tingkat infinity” ini mungkin terdengar sangat aneh tetapi, untuk saat ini, terima saja apa adanya dan kita segera akan melihat bagaimana $$\mathrm \TeX$$ menggunakan infinity ini saat melakukan perhitungan glue.

### Tingkat infinity (“orde glue”)

Secara internal, saat $$\mathrm \TeX$$ melakukan perhitungan glue, ia menganggap bahwa setiap tingkat infinity adalah sebuah “orde glue” yang berkisar dari 0–3, di mana orde ke-0 adalah untuk glue dengan dimensi fisik seperti bp, pt, mm, dan seterusnya. Namun, dengan $$\text{Lua}\mathrm\TeX$$ ada sedikit penyimpangan karena ia sebenarnya memiliki satu jenis (orde) infinity tambahan yang tidak ada pada banyak $$\mathrm \TeX$$ mesin: $$\text{fi}$$ (lihat penjelasan di bawah). Jika Anda membaca $$\text{The } \mathrm \TeX\text{book}$$ Anda tidak akan melihat penyebutan tentang $$\text{fi}$$ infinity—sederhananya karena itu tidak diimplementasikan dalam $$\mathrm \TeX$$ perangkat lunak asli Knuth. Akibatnya, ada sedikit “ketidaksinkronan” antara $$\text{Lua}\mathrm\TeX\text{'s}$$ orde infinity dan yang mungkin Anda lihat dalam buku-buku tentang $$\mathrm \TeX$$. $$\text{Lua}\mathrm\TeX$$ menggunakan infinity yang ordonya berkisar dari 0–4 tetapi yang lain (umum) $$\mathrm \TeX$$ mesin berkisar dari 0–3. Berikut tabel yang menunjukkan orde glue yang diberikan pada setiap jenis unit glue.

|                           |                           |     |     |      |       |
| ------------------------- | ------------------------- | --- | --- | ---- | ----- |
|                           | Satuan fisik (pt, mm, in) | fi  | fil | fill | filll |
| $$\text{Lua}\mathrm\TeX$$ | 0                         | 1   | 2   | 3    | 4     |
| Mesin lain                | 0                         | N/A | 1   | 2    | 3     |

### Catatan pada $$\text{Lua}\mathrm\TeX$$: Mengapa memiliki infinity tambahan?

$$\text{Lua}\mathrm\TeX$$ diturunkan dari sejumlah proyek dan pustaka kode, termasuk salah satunya bernama [Omega](https://en.wikipedia.org/wiki/Omega_\(TeX\)). $$\text{Lua}\mathrm\TeX$$ menggabungkan beberapa aspek kode Omega dan itu mencakup jenis baru glue tak hingga yang disebut $$\text{fi}$$. Dari manual Omega:

> “Sebuah tingkat infinity baru $$\text{fi}$$ telah ditambahkan. Ini lebih kecil daripada $$\text{fil}$$ tetapi lebih besar daripada kuantitas hingga apa pun. Tujuan awalnya adalah untuk peregangan antarhuruf: baik pengisian ruang kosong, seperti yang dilakukan untuk aksara kaligrafis seperti Arab; atau untuk penekanan, seperti dalam bahasa Rusia; semuanya tanpa harus menulis ulang paket makro yang sudah ada. Karena itu, ada kata kunci baru, $$\text{fi}$$, dan dua primitif baru, `\hfi` dan `\vfi`.”

## Kembali ke tantangan kita

Mengikuti model Knuth, mari kita definisikan dua kuantitas:

* lebar yang diinginkan dari sebuah kotak: $$\mathrm{W}\_{\mathrm{D}}$$—seberapa besar kita ingin kotak itu;
* lebar alami sebuah kotak: $$\mathrm{W}\_{\mathrm{N}}$$—total ruang yang ditempati oleh elemen-elemen penyusunnya sebelum glue apa pun diregangkan atau disusutkan.

### Lebar alami sebuah kotak

Lebar alami sebuah kotak adalah lebar total dari semua komponen dalam kotak itu: karakter, kern, kotak bersarang, dan glue apa pun. Untuk glue di dalam kotak, lebar alaminya mengabaikan peregangan atau penyusutan glue apa pun: yakni, ukurannya sebelum peregangan atau penyusutan terjadi.

Sekali lagi, berikut adalah kotak yang sedang kita periksa:

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

Jelas, kita ingin kotak itu selebar 100pt, jadi $$\mathrm{W}*{\mathrm{D}}=100\mathrm{pt}$$ tetapi bagaimana dengan lebar alaminya, $$\mathrm{W}*{\mathrm{N}}$$? Untuk menghitung lebar alami, jelas bahwa kita memerlukan lebar empat karakter (A, B, C, dan D) ditambah lebar alami dari empat 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\*)\ }$$

Di mana $$\text{width}$$ adalah sekadar notasi untuk menyatakan lebar alami sebuah item. Kita dapat memperoleh lebar alami keempat karakter (A, B, C, dan D) dari graf node kita:

![graf node](/files/fca74ec67707565dc42690974e9f5c98792a0664)

Dari graf node di atas kita dapat melihat bahwa:

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

Sekarang, yang kita perlukan hanyalah lebar alami dari glue kita yang mudah diperoleh dengan mengabaikan komponen regang dan susut:

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

Jadi:

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

Sekarang kita memiliki dua informasi kunci:

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

Jelas, $$\mathrm{W}*{\mathrm{D}} > \mathrm{W}*{\mathrm{N}}$$ dan selisihnya adalah $$(100-33.4445)\text{pt}=66.5555\text{pt}$$; ruang berlebih ini harus diisi dengan meregangkan glue—tetapi yang mana dan sebesar apa?

### Siapa yang paling banyak meregang?

Mengikuti metodologi Knuth (halaman 77 dari $$\text{The } \mathrm \TeX \text{book}$$), tetapi dengan memperhitungkan jenis infinity tambahan ($$\text{fi}$$) yang disediakan oleh $$\text{Lua}\mathrm \TeX$$, langkah berikutnya adalah menuliskan peregangan kotak *total* peregangan dalam bentuk:

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

Pertama-tama, jika kita menuliskan $$\text{total glue}$$:

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

maka kita kemudian dapat melihat bahwa $$\text{total stretch}$$ adalah:

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

Jika dibandingkan dengan $$\text{total stretch} = y\_{0}+ y\_{1}\text{fi} +y\_{2}\text{fil} +y\_{3}\text{fill} +y\_{4}\text{filll}\space$$kita dapat melihat bahwa:

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

$$\mathrm\TeX$$ langkah berikutnya “bertanya pada dirinya sendiri”: dengan melihat $$\text{total stretch}$$, berapa tingkat infinity tertinggi dengan nilai bukan nol? Setelah memeriksa $$\text{total stretch}$$ kotak kita, jelas bahwa komponen regang bukan nol yang “paling tak hingga” adalah $$\text{fill}$$ dan kita memiliki $$y\_3=5$$ satuan sebanyak itu: yaitu glue dengan $$\text{fill}$$ komponen regang yang menyediakan seluruh peregangan. Subskrip 3 dari $$y\_3$$ memberi tahu kita `glue_order` dari glue yang akan digunakan—dalam kasus ini untuk peregangan. Sekarang, jika kita melihat bagian “metadata” dalam diagram node kita untuk `\hbox` ini, sekarang kita dapat memahami dua nilai “metadata” lagi (kita akan membahas `glue_set` di bagian berikutnya)

![metadata](/files/b634e12366ba46b52179ec67e55a5de925ad83a8)

* `glue_sign`: memberi tahu Anda apakah glue diatur ke panjang alaminya, diregangkan, atau disusutkan:
* 0=diatur ke lebar alami
* 1=peregangan
* 2=penyusutan

Dalam contoh kita, `glue_sign` bernilai `1`, yang berarti glue yang berpartisipasi akan diregangkan.

* `glue_order` memberi tahu Anda “infinity” mana yang terlibat; untuk $$\text{Lua}\mathrm \TeX$$ nilai 3 memberi tahu Anda bahwa glue dengan komponen $$\text{fill}$$ akan berpartisipasi dalam perhitungan glue—dalam kasus kita mereka akan meregang.

Setiap glue yang tidak memiliki komponen regang yang didefinisikan dalam satuan $$\text{fill}$$ akan **diatur ke panjang alaminya**: yakni, dalam kasus kita, tidak akan meregang sama sekali.

### Seberapa banyak meregang atau menyusut: menghitung glue\_set

Untuk merangkum posisi kita dan apa yang kita ketahui:

1. lebar kotak yang diinginkan: $$\mathrm{W}\_{\mathrm{D}} = 100\text{pt}$$;
2. lebar alami kotak: $$\mathrm{W}\_{\mathrm{N}} = 33.4445\text{pt}$$;
3. glue harus meregang tetapi hanya glue dengan $$\text{fill}$$ komponen regang yang akan melakukan peregangan itu;
4. kita memiliki total $$(2+3)=5$$ unit $$\text{fill}$$ tersedia.

Pertanyaan berikutnya adalah: seberapa besar glue-glue itu benar-benar akan meregang? Masukkan *rasio set glue*—disebut sebagai `glue_set` dalam graf node kita. Yang $$\mathrm \TeX$$ dilakukan adalah menghitung berapa banyak ruang yang harus diisi lalu mendistribusikan jumlah ruang itu di antara glue yang sesuai secara proporsional terhadap ukuran komponen regang mereka. Jika Anda melihat kembali `\hbox` node $$\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%
}
```

Fitur $$\textit{glue set ratio }(\text{or } \verb*glue\_set*)$$ dihitung sebagai berikut:

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

Dan sekarang langkah terakhir dalam $$\mathrm\TeX$$ algoritme diterapkan:

1. untuk setiap item glue yang komponen regangnya cocok dengan `glue_order` (3 dalam kasus kita) panjang glue itu akan menjadi:

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

3. semua glue lainnya diatur ke panjang alaminya—yakni, mereka tidak meregang sama sekali.

Melihat glue dalam kotak kita:

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

kita dapat menelusurinya untuk menghitung nilai akhirnya:

1. **Di antara A dan B**: `\hskip 4pt plus3pt minus 2pt`. Komponen regangnya adalah `3pt`, yang berorde `0`. Orde yang diperlukan `glue_order` adalah `3`: komponen regang diabaikan dan glue ini mengambil lebar alaminya sebesar `4pt`.
2. **Di antara B dan C**: `\hskip 0pt plus 2fil`. Komponen regangnya adalah `2fil`, yang berorde `2`. Orde yang diperlukan `glue_order` adalah `3`: komponen regang diabaikan dan glue ini mengambil lebar alaminya sebesar `0pt`.
3. **Di antara C dan D**: `\hskip 0pt plus 2fill`. Komponen regangnya adalah `2fill`, yang berorde `3` dan cocok dengan yang diperlukan `glue_order` sebesar `3`. Glue ini akan diregangkan menjadi: $$\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. **Di antara D dan akhir kotak**: `\hskip 0pt plus 3fill`. Komponen regangnya adalah `3fill`, yang berorde `3` dan cocok dengan yang diperlukan `glue_order` sebesar `3`. Glue ini akan diregangkan menjadi: $$\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}\ }$$

## Dan terakhir: Memeriksa lebar total

Proses menghitung ruang sebenarnya yang ditempati oleh glue disebut *menetapkan glue* jadi sekarang kita bisa memeriksa apakah kita telah mengisi kotak hingga lebar yang diinginkan, $$(\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} }$$

Sekarang kita mengetahui lebar semua glue dan dapat menyiapkan grafik yang menjawab pertanyaan yang diajukan di awal artikel ini: berikut adalah lebar glue di antara karakter dalam kotak kita `\hbox`:

![glue](/files/1889a7518c84c9483365bbda5a74f107f92ca1bf)


---

# 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/id/artikel-mendalam/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.
