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

# Serial enam bagian: Bagaimana sebenarnya makro TeX bekerja?

## Tentang seri ini

Seri artikel ini memiliki tujuan yang ambisius: untuk menjelaskan, langkah demi langkah, *bagaimana* bagaimana makro TeX, seperti perintah LaTeX, benar-benar bekerja—dengan mengeksplorasi proses yang terjadi di dalam perangkat lunak mesin TeX. Seri ini mencoba menceritakan perilaku pemrosesan TeX:

* membaca karakter masukan dan menggunakan kode kategori;
* pembuatan token karakter dan perintah—serta rumus yang digunakan TeX;
* bagaimana TeX mengidentifikasi, lalu memproses, perintah TeX;
* rincian internal penyimpanan definisi makro, dan argumen makro, sebagai daftar token—menggunakan grafik yang dihasilkan dari data internal TeX;
* dan diakhiri dengan mengeksplorasi apa arti ekspansi makro *sebenarnya* —dengan menggunakan data nyata dari dalam mesin TeX.

Namun, karena mesin TeX adalah program perangkat lunak yang sangat kompleks, kita tidak bisa berharap mencakup semuanya, tetapi kami telah mencoba membahas fitur-fitur inti yang paling penting dari kemampuan pemrosesan makro TeX.

#### Bilah navigasi

Setiap artikel memiliki bilah navigasi berikut sebelum dan sesudah teks agar Anda dapat dengan cepat berpindah ke artikel lain dalam seri ini:

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

### Bagian 1: Kode kategori

Artikel ini mengkaji alasan di balik konsep kode kategori TeX: apa itu dan bagaimana TeX menggunakannya untuk menyaring masukan menjadi konten untuk penataan huruf dan perintah yang akan dijalankan.

### Bagian 2: Membaca masukan melalui “mata” TeX

Melalui serangkaian grafik, kami menggunakan analogi yang telah teruji bahwa TeX memiliki “mata” untuk membaca (memindai) masukannya. Kami mengeksplorasi contoh penggunaan kode kategori oleh TeX untuk membuat token karakter dan bagaimana TeX mengenali serta memproses perintah dengan menggunakan kode kategori 0 (“karakter escape”).

### Bagian 3: Dari teks masukan ke perintah

Artikel ini menelaah secara mendalam bagaimana TeX mengenali dan memproses perintah yang terdeteksi dalam masukan. Kami mengeksplorasi bagaimana TeX menyimpan dan mengambil informasi tentang perintah: kode perintah, pengubah perintah, dan meninjau beberapa variabel internal yang digunakan TeX untuk menyimpan informasi tentang item yang dibaca dari masukan. Sebagian artikel ini cukup bersifat tingkat rendah dan dapat dilewati pada pembacaan pertama.

### Bagian 4: Struktur sebuah makro

Kami memperkenalkan dan menggunakan “kerangka” berikut untuk menjelaskan struktur makro:

```
<primitif makro TeX><nama makro><teks parameter>{<teks pengganti>}
```

Kami kemudian mengeksplorasi berbagai contoh untuk menunjukkan peran dan tujuan dari `<teks parameter>` sebagai “templat token” yang dapat dibangun melalui penggunaan token yang berperan sebagai *pemisah*.

### Bagian 5: Daftar token dan penyimpanan makro internal TeX

Artikel ini mengeksplorasi secara rinci bagaimana TeX menggunakan daftar token untuk menyimpan definisi makro. Dengan menggunakan diagram luas yang dihasilkan dengan versi TeX yang telah dimodifikasi secara khusus, kami mengeksplorasi token khusus yang digunakan TeX untuk mengidentifikasi dan memproses argumen makro pengguna.

### Bagian 6: Ekspansi dan pemrosesan makro

Dalam Bagian 6 kami menggunakan beberapa grafik terperinci untuk menjelaskan dan mengeksplorasi makna tepat dari ekspansi makro dan konsekuensi tokenisasi argumen makro oleh TeX sebelum memasukkannya ke dalam makro.

## Catatan singkat: Menggunakan “TeX”, bukan LaTeX

Seperti dibahas dalam artikel [Apa Arti Sebuah Nama: Panduan untuk Berbagai Ragam TeX](/latex/id/artikel-mendalam/55-what-s-in-a-name-a-guide-to-the-many-flavours-of-tex.md) berbagai istilah digunakan untuk merujuk/mendeskripsikan TeX, LaTeX, dan turunannya. Karena itu, ada baiknya, secara singkat, menjelaskan penggunaan/makna “TeX” dalam konteks seri ini.

“TeX” adalah, agak membingungkan, baik nama dari program yang dapat dieksekusi maupun nama dari bahasa penataan huruf. Untuk membedakan keduanya, istilah *mesin TeX* digunakan untuk membedakan antara program TeX yang dapat dieksekusi dan bahasa penataan huruf. Beberapa data, informasi, dan detail spesifik yang digunakan dalam seri ini berasal dari pemeriksaan terperinci terhadap kode sumber perangkat lunak TeX asli karya Knuth, tetapi prinsip yang dijelaskan berlaku umum untuk semua mesin TeX. Jadi, sepanjang pembahasan kami, penggunaan “TeX” harus dipahami sebagai salah satu mesin TeX yang dapat dieksekusi—seperti TeX asli karya Knuth, pdfTeX, XeTeX, atau LuaTeX.

Di dalam artikel-artikel ini kami menggunakan perintah primitif TeX `\def` untuk mendefinisikan contoh makro kami: kami tidak menggunakan perintah LaTeX `\newcommand` yang hampir pasti lebih familiar bagi sebagian besar pengguna Overleaf. Ada alasan yang sangat baik untuk ini: tujuan kami adalah memahami prinsip-prinsip fundamental yang mendasari perilaku makro TeX, tetapi untuk melakukannya kami perlu menggunakan perintah inti (primitif) yang terpasang dalam perangkat lunak TeX. Perintah LaTeX, seperti `\newcommand`, pada dasarnya adalah makro itu sendiri: perintah dengan perilaku terprogram tertentu dan yang, pada akhirnya, dibangun dari lapisan-lapisan perintah primitif TeX tingkat lebih rendah. Untuk lebih memahami perilaku fundamental TeX, kita harus menggunakan primitif TeX, bukan makro LaTeX.

## Contoh dan grafik

Alih-alih hanya mengandalkan serangkaian contoh makro yang dirancang untuk mendemonstrasikan berbagai fitur, kasus tepi, dan perilaku TeX, kami juga menggunakan beragam grafik yang luas untuk melihat ke dalam TeX itu sendiri guna melihat *bagaimana* dan *mengapa* bagaimana pemrosesan makronya bekerja seperti adanya. Banyak grafik (daftar token/diagram node) telah disiapkan menggunakan versi TeX asli karya Knuth yang dimodifikasi secara khusus.

Overleaf menyesuaikan TeX karya Knuth dengan kode tambahan (ditulis dalam C) yang “terhubung ke” pemrosesan makro TeX dan mengeksplorasi data, serta struktur data, yang biasanya tidak dapat diakses oleh pengguna. Setiap kali sebuah makro dipanggil, mesin TeX yang dimodifikasi menghasilkan file keluaran tambahan yang berisi data dalam format yang dapat diproses menggunakan [Graphviz](https://www.graphviz.org/)sebuah program visualisasi graf berbasis sumber terbuka. Hasil akhirnya adalah grafik (diagram daftar node) yang menunjukkan dengan tepat bagaimana TeX menyimpan definisi sebuah makro, beserta representasi grafis dari argumen apa pun yang diberikan oleh pengguna saat makro itu dipanggil.

Karena kebutuhan, tujuan seri ini mengharuskan pembahasan berbagai topik, banyak di antaranya cukup tingkat rendah, dan pada awalnya mungkin tampak sangat jauh dari tugas menata huruf dokumen Anda. Semoga, setelah menyelami lebih dalam, Anda akan memperoleh dasar untuk membangun pemahaman yang lebih baik yang pada akhirnya akan menghemat banyak waktu Anda dan, mungkin, juga mengurangi tingkat frustrasi. Kami juga berharap bahwa grafik yang dihasilkan secara khusus yang menyertai seri ini memberikan wawasan yang sangat berharga untuk membantu dan mendukung para pembaca dalam upaya mereka memahami makro TeX dengan lebih baik.

## Versi TeX yang dikustomisasi oleh Overleaf

Video ini memberikan demonstrasi singkat tentang versi TeX yang dimodifikasi oleh Overleaf, disesuaikan untuk menghasilkan diagram node Graphviz (`.gv` berkas)—tidak ada aspek lain dari perilaku TeX yang terpengaruh oleh perubahan tersebut. Itu `.gv` berkas-berkas tersebut berisi representasi daftar token TeX yang digunakan untuk menyimpan definisi makro dan argumen makro. Visualisasi Graphviz diekspor ke SVG yang kemudian diimpor ke [Inkscape](https://inkscape.org/) untuk anotasi lebih lanjut sebelum memasukkan grafik ke dalam sebuah artikel.

{% 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/id/topik-lainnya/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.
