> 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/39-mltex-enctex-and-synctex-tex-extensions.md).

# Ekstensi TeX MLTeX EncTeX dan SyncTeX

## Beberapa detail latar belakang tentang ekstensi TeX

TeX memiliki sejarah pengembangan yang panjang—sekarang sudah lebih dari 4 dekade! Selama masa itu, “versi” baru TeX telah dikembangkan—seperti e-TeX, pdfTeX, XeTeX, LuaTeX, dan seterusnya. Selain mesin baru yang sepenuhnya baru, dengan serangkaian fitur tambahan, ada berbagai *ekstensi* yang biasanya berfokus pada penerapan fitur tertentu untuk memperkaya perangkat lunak asli Knuth.

Dengan hadirnya mesin TeX modern, seperti XeTeX dan LuaTeX, kebutuhan akan, dan penggunaan, beberapa ekstensi TeX lawas telah berkurang karena mesin TeX yang lebih baru membawa fungsionalitas tambahan yang kuat—seperti dukungan bawaan untuk teks yang dienkode UTF-8. Tujuan halaman ini adalah memberikan beberapa catatan tentang ekstensi, termasuk MLTeX dan EncTeX, yang mungkin masih Anda lihat dirujuk dalam [opsi baris perintah mesin TeX](/latex/id/topik-lainnya/44-tex-engine-command-line-options-for-pdftex-xetex-and-luatex.md). MLTeX dan EncTeX keduanya tidak lagi dikembangkan, tetapi satu ekstensi yang sangat berguna, SyncTeX, terus dikembangkan secara aktif dan didukung oleh Overleaf.

## MLTeX

*TeX multibahasa*, atau MLTeX, dikembangkan selama tahun 1992–5 sebagai modifikasi TeX untuk memungkinkan pemenggalan kata dengan huruf beraksen menggunakan font Computer Modern (CM) biasa.

### Mengaktifkan (mengizinkan) MLTeX

MLTeX dirancang untuk bekerja sebagai bagian dari apa yang disebut `.fmt` (berkas format) yang pada dasarnya adalah versi biner terkompilasi sebelumnya dari sekumpulan makro TeX. Untuk membuat berkas format, Anda menempatkan mesin TeX ke dalam apa yang disebut `INI` mode, memproses kumpulan makro lalu menjalankan `\dump` perintah untuk menulis `.fmt` berkas. [artikel ini](/latex/id/artikel-mendalam/50-the-two-modes-of-tex-engines-ini-mode-and-production-mode.md) Lihat

untuk pembahasan tentang mode INI. *bagi mesin yang mendukungnya*, seperti pdfTeX, Anda akan menulis

```
pdftex -ini -mltex *pdfetex.ini
```

di mana `pdfetex.ini` adalah berkas yang terdapat dalam distribusi TeX Live.

**Mengapa tanda bintang (`*`)?** Tanda bintang menempatkan pdfTeX ke dalam apa yang disebut “mode diperluas” yang mengaktifkan dukungan untuk primitif e-TeX. Jika Anda menghilangkannya dan mengetik `pdftex -ini -mltex pdfetex.ini` Anda akan menerima galat:

```
Ini adalah pdfTeX, Versi 3.14159265-2.6-1.40.19 (INITEX)
 \write18 diaktifkan.
MLTeX v2.2 diaktifkan
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! galat fatal e-TeX: berkas ini hanya dapat diproses dalam mode diperluas;
  apakah Anda mungkin lupa tanda bintang?
```

**Catatan**: Alih-alih menggunakan tanda bintang untuk mengaktifkan “mode diperluas”, Anda dapat menggunakan `-etex` opsi baris perintah sebagai gantinya:

```
pdftex -ini -etex -mltex pdfetex.ini
```

**Catatan**: Menggunakan `-mltex` opsi pada baris perintah dengan sebuah `.fmt` berkas yang *tidak dihasilkan* dengan MLTeX yang diaktifkan akan *berisi nilai data aktual yang disimpan dalam* berfungsi: MLTeX harus “diaktifkan” melalui berkas format yang sesuai.

Saat Anda menggunakan `-mltex` opsi selama `.fmt` pembuatan berkas, sebuah variabel boolean bernilai “true” ditulis ke dalam `.fmt` berkas yang memberitahu mesin TeX bahwa ekstensi MLTeX telah diaktifkan dan harus tersedia bagi pengguna. Jika Anda tidak secara eksplisit menetapkan `-mltex` opsi maka variabel yang bersesuaian akan bernilai “false”. Jika nilai variabel tersebut terdeteksi sebagai “false” (saat `.fmt` berkas itu dimuat ulang selama proses TeX) maka mencoba menggunakan ekstensi MLTeX akan menghasilkan sebuah `Perintah tidak dikenal...` galat—karena primitif MLTeX belum didaftarkan (dimuat) dan karenanya tidak dikenali.

Setelah menjalankan `pdftex -ini -mltex *pdfetex.ini` di baris perintah dan Anda akan melihat teks serupa berikut, yang menunjukkan bahwa MLTeX v2.2 diaktifkan:

```
Ini adalah pdfTeX, Versi 3.14159265-2.6-1.40.19 (INITEX)
\write18 diaktifkan.
memasuki mode diperluas
MLTeX v2.2 diaktifkan
....
....
....
Mulai melakukan dump ke berkas pdfetex.fmt
....
Tidak ada halaman keluaran.
Transkrip ditulis ke pdfetex.log.
```

Ini menghasilkan sebuah `.fmt` berkas bernama `pdfetex.fmt` yang memungkinkan Anda menggunakan perintah MLTeX:

```
pdftex -fmt=pdfetex <yourfile.tex>
```

di mana `<yourfile.tex>` dapat memanfaatkan primitif khusus MLTeX

MLTeX awalnya didistribusikan sebagai berkas perubahan terpisah, [mltex.ch](http://tug.ctan.org/systems/generic/mltex/mltex.ch), yang dapat digabungkan dengan kode sumber master Knuth ([`tex.web`](https://ctan.org/tex-archive/systems/knuth/dist/tex?lang=en)) untuk menurunkan versi TeX baru, bernama MLTeX, yang berisi sejumlah primitif baru. Saat ini, kode MLTeX dari `mltex.ch` digabungkan ke dalam `tex.ch` utama yang digunakan untuk membangun hampir semua mesin TeX.

### Primitif MLTeX

Catatan berikut sebagian besar disiapkan dan direproduksi dari berkas `web2c.info` yang terdapat dalam [TeX Live](https://tug.org/texlive/) distribusi.

* **`\charsubdef`**: Definisi substitusi karakter. Menyatakan cara membangun sebuah glif karakter beraksen (belum tentu ada di font saat ini) menggunakan dua glif karakter (yang memang ada).

  ```
  \charsubdef COMPOSITE [=] ACCENT BASE
  ```

  Masing-masing COMPOSITE, ACCENT, dan BASE adalah nomor glif font, dinyatakan dalam sintaks TeX biasa: \`\e secara simbolis, '145 untuk oktal, "65 untuk heksadesimal, 101 untuk desimal. Jadi ini menentukan apakah kode glif karakter, baik diketik sebagai satu karakter atau menggunakan `\char` primitif, akan dipetakan ke glif font atau ke sebuah `\accent` konstruksi glif.

  Sebagai contoh, jika Anda mengasumsikan kode glif 138 (desimal) untuk e-sirkumfleks dan Anda menggunakan font Computer Modern, yang memiliki aksen sirkumfleks di posisi 18 dan huruf kecil ‘e’ pada posisi ASCII biasa 101 desimal, Anda akan menggunakan `\charsubdef` sebagai berikut:

  ```
  \charsubdef 138 = 18 101
  ```
* **`\charsubdefmax`**: Menetapkan nilai terbesar dalam `\charsubdef` daftar. Contohnya:

  ```
  \charsubdefmax=-1 % menonaktifkan semua substitusi
  \charsubdefmax=256 % mengaktifkan semua substitusi
  ```
* **`\tracingcharsubdef`**: Pelacakan substitusi. Untuk membantu mendiagnosis masalah dengan `\charsubdef`, MLTeX menyediakan parameter primitif, `\tracingcharsubdef`. Jika bernilai positif, setiap penggunaan `\charsubdef` akan dilaporkan. Ini dapat membantu melacak kapan sebuah karakter didefinisikan ulang.

## EncTeX

EncTeX dikembangkan selama tahun 1997–2004 sebagai ekstensi TeX yang menyediakan pengodean ulang input/output yang fleksibel melalui penambahan primitif baru—misalnya, sarana untuk menerjemahkan input saat masuk ke TeX. Hal ini memungkinkan, misalnya, penerjemahan sekuens multibita, seperti pengodean UTF-8, untuk digunakan dalam mesin TeX 8-bit standar.

### Mengaktifkan (mengizinkan) EncTeX

Seperti halnya MLTeX, EncTeX juga dirancang untuk bekerja sebagai bagian dari apa yang disebut `.fmt` (berkas format)—lihat [MLTeX](#mltex), di atas, untuk penjelasan tentang berkas format/mode INI.

Untuk mengaktifkan EncTeX, *bagi mesin yang mendukungnya*, seperti pdfTeX, Anda akan membuat berkas format yang diaktifkan EncTeX dengan menulis

```
pdftex -ini -enc *pdfetex.ini
```

di mana `pdfetex.ini` adalah berkas yang terdapat dalam distribusi TeX Live.

**Mengapa tanda bintang (`*`)?** Tanda bintang menempatkan pdfTeX ke dalam apa yang disebut “mode diperluas” yang mengaktifkan dukungan untuk primitif e-TeX. Jika Anda menghilangkannya dan mengetik `pdftex -ini -mltex pdfetex.ini` Anda akan menerima galat:

```
Ini adalah pdfTeX, Versi 3.14159265-2.6-1.40.19 (INITEX)
 \write18 diaktifkan.
MLTeX v2.2 diaktifkan
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! galat fatal e-TeX: berkas ini hanya dapat diproses dalam mode diperluas;
  apakah Anda mungkin lupa tanda bintang?
```

**Catatan**: Alih-alih menggunakan tanda bintang untuk mengaktifkan “mode diperluas”, Anda dapat menggunakan `-etex` opsi baris perintah sebagai gantinya:

```
pdftex -ini -etex -mltex pdfetex.ini
```

Fitur `-enc` opsi baris perintah memicu mesin pdfTeX untuk mengaktifkan EncTeX dengan menulis beberapa data ke dalam `pdfetex.fmt` berkas format yang dihasilkan.

**Catatan**: Menggunakan `-enc` opsi pada baris perintah dengan sebuah `.fmt` berkas yang *tidak dihasilkan* dengan EncTeX yang diaktifkan akan *berisi nilai data aktual yang disimpan dalam* berfungsi: EncTeX harus “diaktifkan” melalui berkas format yang dibuat dengan tepat.

### Primitif EncTeX

EncTeX menambahkan 10 perintah primitif baru ke sebuah mesin TeX:

* 3 primitif pada rilis awal (1997):
* `\xordcode`
* `\xchrcode`
* `\xprncode`
* 7 primitif tambahan (untuk dukungan UTF-8) pada 2003:
* `\mubyte`
* `\endmubyte`
* `\mubytein`
* `\mubyteout`
* `\mubytelog`
* `\specialout`
* `\noconvert`

Penggunaan dan perilaku primitif ini terdokumentasi dengan baik dalam [manual referensi EncTeX](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf), yang ditulis oleh penulis EncTeX, Petr Olšák. Untuk menghindari pengulangan yang tidak perlu di sini, pembaca yang tertarik dirujuk ke dokumen tersebut.

### Informasi lebih lanjut tentang EncTeX

* [Versi kedua EncTeX: dukungan UTF-8](http://mirrors.ctan.org/systems/enctex/eurotex2003-enctex.pdf): sebuah artikel oleh penulis EncTex, Petr Olšák.
* [manual referensi EncTeX](http://mirrors.ctan.org/systems/enctex/encdoc-e.pdf) (dalam bahasa Inggris).

### Mengaktifkan (mengizinkan) baik MLTeX maupun EncTeX

Untuk mengaktifkan baik MLTeX maupun EncTeX, Anda akan membuat berkas format yang sesuai menggunakan perintah seperti

```
pdftex -ini -enc -mltex *pdfetex.ini
```

di mana `pdfetex.ini` adalah berkas yang terdapat dalam distribusi TeX Live.

**Mengapa tanda bintang (`*`)?** Tanda bintang menempatkan pdfTeX ke dalam apa yang disebut “mode diperluas” yang mengaktifkan dukungan untuk primitif e-TeX. Jika Anda menghilangkannya dan mengetik `pdftex -ini -enc -mltex pdfetex.ini` Anda akan menerima galat:

```
Ini adalah pdfTeX, Versi 3.14159265-2.6-1.40.19 (INITEX)
 \write18 diaktifkan.
MLTeX v2.2 diaktifkan
(c:/texmf-dist/tex/plain/config/pdfetex.ini
(c:/texmf-dist/tex/generic/tex-ini-files/pdftexconfig.tex)
(c:/texmf-dist/tex/plain/etex/etex.src

! galat fatal e-TeX: berkas ini hanya dapat diproses dalam mode diperluas;
  apakah Anda mungkin lupa tanda bintang?
```

**Catatan**: Alih-alih menggunakan tanda bintang untuk mengaktifkan “mode diperluas”, Anda dapat menggunakan `-etex` opsi baris perintah sebagai gantinya:

```
pdftex -ini -etex -enc -mltex pdfetex.ini
```

Setelah menjalankan baris perintah di atas, Anda akan melihat pesan seperti berikut, yang memberi tahu Anda bahwa MLTeX dan EncTeX keduanya diaktifkan:

```
Ini adalah pdfTeX, Versi 3.14159265-2.6-1.40.19 (INITEX)
 \write18 diaktifkan.
memasuki mode diperluas
MLTeX v2.2 diaktifkan
 encTeX v. Jun. 2004, pengodean ulang diaktifkan.
....
....
....
Mulai melakukan dump ke berkas pdfetex.fmt
....
Tidak ada halaman keluaran.
Transkrip ditulis ke pdfetex.log.
```

dan `pdfetex.fmt` berkas format, yang mengaktifkan baik MLTeX maupun EncTeX, akan dihasilkan.

## SyncTeX

Ekstensi SyncTeX telah tersedia sejak 2008 dan terus dikembangkan secara aktif oleh penciptanya, Jérôme Laurens. Ekstensi ini digunakan secara luas, termasuk oleh Overleaf, dan didukung oleh semua mesin TeX yang digunakan saat ini.

### Apa yang dilakukan SyncTeX?

Saat melihat dokumen yang ditata huruf oleh TeX, mungkin untuk melakukan pemeriksaan ulang/koreksi sebelum diserahkan ke penerbit, Anda mungkin menemukan kesalahan dan perlu memperbaikinya di kode sumber TeX. Namun, menemukan lokasi yang tepat di berkas TeX bisa rumit, terutama jika dokumennya besar. Demikian pula, Anda mungkin ingin melakukan sebaliknya: melompat dari suatu posisi dalam berkas sumber TeX langsung ke lokasi halaman dalam PDF hasil tata huruf akhir. Dalam kedua kasus, ada kebutuhan untuk *menyinkronkan* lokasi tertentu dalam berkas TeX dan lokasi yang bersesuaian dalam tampilan hasil tata hurufnya: dan itulah yang disediakan SyncTeX—cara untuk secara otomatis menautkan lokasi dalam berkas TeX dengan posisi halaman dalam dokumen yang ditata huruf.

Jika SyncTeX diaktifkan, ia menulis berkas khusus dengan ekstensi `.synctex.gz` (dikompresi gz) atau `.synctex` (tidak dikompresi) tergantung pada [opsi baris perintah yang diberikan ke SyncTeX](#synoptions). Editor teks dan penampil PDF yang mendukung SyncTeX dapat menggunakan berkas-berkas tersebut untuk melakukan sinkronisasi yang diperlukan antara masukan (kode TeX) dan keluaran (tampilan PDF yang ditata huruf). Jelas, ini tidak dapat begitu saja “terjadi” tanpa editor teks dan penampil dokumen PDF pengguna memiliki fungsionalitas yang sesuai yang memungkinkan komunikasi lokasi berkas teks/lokasi penampil PDF—berdasarkan data yang terkandung dalam berkas `.synctex.gz` (atau `.synctex`) yang ditulis oleh SyncTeX.

Selain fungsionalitas di dalam mesin TeX—untuk menghasilkan `.synctex.gz` berkas—SyncTeX juga menyediakan sebuah [parser](https://github.com/jlaurens/synctex/) yang membaca berkas `.synctex.gz` (atau `.synctex`) untuk mengekstrak informasi lokasi halaman/baris yang relevan. Aplikasi menggunakan parser itu untuk menyediakan dukungan bagi SyncTeX.

### Mengaktifkan (mengizinkan) SyncTeX

Mesin TeX yang mendukung SyncTeX memiliki dua cara untuk mengaktifkan/menonaktifkan SyncTeX:

* opsi baris perintah: `-synctex=NUMBER`
* sebuah perintah dalam `.tex` berkas: `\synctex` primitif

### Menggunakan SyncTeX di baris perintah

Anda dapat menggunakan `-synctex=NUMBER` opsi saat Anda menjalankan mesin TeX yang mendukung SyncTeX, seperti pdfTeX.

#### Contoh

* Aktifkan SyncTeX: keluaran `.synctex.gz` (berkas terkompresi gz):

```
pdftex -synctex=1 myfile.tex
```

Menghasilkan `myfile.synctex.gz`

* Aktifkan SyncTeX: keluaran `.synctex` (berkas tidak dikompresi):

```
pdftex -synctex=-1 myfile.tex
```

Menghasilkan `myfile.synctex`

* Nonaktifkan SyncTeX:

```
pdftex -synctex=0 myfile.tex
```

Tidak ada keluaran SyncTeX yang dihasilkan.

### Satu-satunya primitif SyncTeX

SyncTeX menyediakan satu primitif, `\synctex`, yang dapat ditambahkan pengguna ke `.tex` file:

* Aktifkan SyncTeX: `\synctex=1`
* Nonaktifkan SyncTeX: `\synctex=0`

### Informasi lebih lanjut tentang SyncTeX

* [Sebuah artikel TUGBoat oleh Jérôme Laurens](http://www.tug.org/TUGboat/tb29-3/tb93laurens.pdf), penulis SyncTeX.
* Fitur [Repositori GitHub](https://github.com/jlaurens/synctex) dari parser SyncTeX.


---

# 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/39-mltex-enctex-and-synctex-tex-extensions.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.
