> 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/pertanyaan-and-jawaban/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md).

# Saya memiliki banyak gambar tikz, matlab2tikz, atau pgfplots, jadi saya mengalami habis waktu kompilasi. Bisakah saya e

## Cara melakukan externalisasi grafik TikZ

Gunakan TikZ [pustaka bernama `external`](https://tikz.dev/library-external) untuk membuat dan menyimpan (cache) gambar TikZ sebagai file PDF—proses yang sering disebut “*eksternalisasi*”.

Muat pustaka melalui `\usetikzlibrary{external}`, lalu aktifkan eksternalisasi menggunakan perintah `\tikzexternalize`:

```latex
\usetikzlibrary{external}
\tikzexternalize[<options>]
```

di mana `<options>` adalah daftar parameter opsional (pasangan kunci–nilai) yang digunakan untuk mengonfigurasi `external` pustaka.

* **CATATAN**: Agar eksternalisasi TikZ berfungsi di Overleaf,  `\tikzexternalize` perintah ***harus*** diberikan di file utama proyek `.tex` .

Mari kita lihat contoh dasar yang menggunakan grafik yang direproduksi dari [dokumentasi TikZ](https://tikz.dev/library-external):

```latex
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/]

\begin{document}
% Gambar TikZ ini akan ditulis ke
% file bernama 'output-figure0.pdf'
% di dalam folder 'tikz'
\begin{tikzpicture}

  \node {root}
    child {node {left}}
    child {node {right}
      child {node {child}}
      child {node {child}}
    };

\end{tikzpicture}

\end{document}
```

Untuk menjelajahi contoh ini, Anda dapat [membukanya di Overleaf.](https://www.overleaf.com/project/new/template/27519?id=1174669946\&templateName=Example+to+externalize+a+TikZ+graphic\&latexEngine=pdflatex\&texImage=texlive-full%3A2022.1\&mainFile=)

Kode pada contoh kami menggunakan opsi `prefix=tikz/` dengan `\tikzexternalize`:

```latex
\tikzexternalize[prefix=tikz/]
```

Opsi `prefix=tikz/` memberikan nama folder (di sini,  `tikz`) untuk digunakan sebagai cache bagi gambar yang dihasilkan (dieksternalisasi)—Anda perlu membuat folder itu secara manual di proyek Anda. Namun, sebelum LaTeX (kode TikZ) dapat menulis ke folder itu, folder tersebut harus berisi sebuah file—file apa pun (dummy) sudah cukup; misalnya, Anda dapat menambahkan file teks kosong `foo.txt` di `tikz` folder.

Overleaf memperlakukan grafik PDF TikZ yang dieksternalisasi sebagai file keluaran yang dihasilkan, sehingga file tersebut tidak akan muncul dalam daftar file yang terlihat di proyek—file itu ada di dalam proyek, hanya disembunyikan dari tampilan—Anda dapat melihat daftar [file yang dihasilkan](/latex/id/basis-pengetahuan/150-view-generated-files.md) untuk melihatnya.

Klip video singkat berikut merangkum kompilasi contoh di atas dan menunjukkan cara mengakses daftar file yang dihasilkan oleh TikZ:

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/6VZVoHzhpNzOWSTvsWYm08/80d178255345da83bcd82b5fc64e5c6b/TikZExternalize.mp4>" %}

## Beberapa catatan

Mengeksternalkan grafik TikZ dapat menuntut komputasi yang berat bagi mesin TeX yang mendasarinya (pdfTeX, XeTeX, LuaTeX, dll.), jadi `external` pustaka menyediakan opsi untuk “mengoptimalkan” prosesnya. Jika Anda mengaktifkan optimasi, TikZ akan mencoba mengurangi bebannya dengan “mengabaikan” beberapa perintah yang kompleks (mahal), tetapi tidak esensial (bagi TikZ), dengan mendefinisikannya ulang (secara langsung). Selain itu, beberapa perintah dari paket lain dapat menyebabkan kesalahan dalam mode eksternalisasi; misalnya, `\includepdf` dari `pdfpages` paket. Untuk mengatasinya, Anda perlu “mengoptimalkan agar meniadakan” perintah-perintah tersebut:

```latex
\tikzexternalize[prefix=tikz/,optimize command away=\includepdf]
```

## Terlalu banyak grafik kompleks untuk dieksternalkan!

Jika grafik Anda kompleks dan/atau banyak, Anda kemungkinan akan mengalami [batas waktu kompilasi](/latex/id/basis-pengetahuan/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) selama kompilasi awal—saat file yang dieksternalisasi sedang dihasilkan. Bagian ini akan mencantumkan beberapa kemungkinan solusi sementara untuk menghindari batas waktu kompilasi.

### Membangun secara bertahap

Membangun proyek Anda secara bertahap dengan [memberi komentar pada](https://ctan.org/pkg/comment?lang=en) berbagai bagian proyek Anda mungkin membantu, tetapi ingat bahwa semua file yang dihasilkan akan dibersihkan oleh garbage collection pada interval tetap di server. Proyek Anda kemudian mungkin gagal dikompilasi saat Anda masuk berikutnya, dan Anda harus membuat ulang semuanya secara bertahap lagi.

### Membuat gambar secara lokal

* **Catatan**: Bagian ini mengasumsikan proyek Anda menggunakan `\tikzexternalize[prefix=tikz/]` untuk menyimpan grafik yang dihasilkan dalam cache di folder bernama `tikz`.

Sebagai solusi sementara, [unduh proyek Overleaf Anda](/latex/id/basis-pengetahuan/036-exporting-your-work-from-overleaf.md) dan kompilasikan di mesin lokal untuk mengeksternalkan (menghasilkan) file grafik. Setelah kompilasi selesai, folder `tikz` harus berisi beberapa jenis file untuk setiap grafik yang dihasilkan, termasuk `*somegraphic*.pdf`, `*somegraphic*.md5` dan `*somegraphic*.dpth`. Jika Anda mengunggah file-file tersebut ke `tikz` folder proyek Overleaf Anda, file-file tersebut akan digunakan selama kompilasi—yang sekarang seharusnya cukup cepat. Karena file-file tersebut diunggah dan bukan dihasilkan, file-file itu tidak akan dihapus oleh server: file yang diunggah tidak pernah dibersihkan oleh garbage collection.

* **Catatan (nama file grafik)**: Overleaf menetapkan `\jobname` ke `keluaran`, yang memengaruhi nama yang diberikan pada grafik TikZ yang dieksternalisasi (dihasilkan): secara default, file grafik yang dihasilkan dinamai `output-figureN.EXT` di mana
  * `N` adalah bilangan bulat yang diturunkan dari urutan/sequence saat grafik muncul (`N`=0, 1, 2, ...);
  * `EXT` adalah salah satu ekstensi file yang digunakan oleh TikZ, termasuk `pdf`, `md5` dan `dpth` (juga `log`).
* **Satu catatan**: Jika, setelah mengunggah file grafik, Anda kemudian membuat perubahan pada kode TikZ di proyek Anda, mungkin perlu menghapus file grafik yang sesuai di `tikz` folder agar Overleaf dapat menghasilkan dan menggunakan versi baru. Sebagai alternatif, Anda dapat membuat ulang file di mesin lokal Anda dan mengunggahnya kembali ke Overleaf. Ingat bahwa Anda perlu mengganti semua `.pdf`, `.md5` dan `.dpth` file untuk gambar TikZ tertentu tersebut.

### Membuat gambar dalam proyek terpisah

Opsi lain adalah membuat proyek terpisah khusus grafik yang hanya berisi gambar TikZ. Setelah gambar-gambar itu selesai, Anda dapat mengunggah PDF dari proyek terpisah tersebut ke proyek utama Anda sebagai berikut:

* klik ikon Unggah file (![Overleaf file upload icon](/files/77f19e216f86d409e4c5620f1da401500424fe9e)) di atas panel daftar file;
* pilih **Dari proyek lain**;
* dari daftar tarik-turun, pilih proyek yang berisi gambar TikZ;
* pilih **dari file keluaran**;
* pilih **output.pdf** dan (opsional) beri nama pada file yang diunggah.

Setelah diunggah, Anda dapat mengakses gambar individual dengan memilih halaman yang sesuai dari PDF yang diunggah; misalnya, melalui perintah seperti:

```latex
\includegraphics[page=1]{tikzpics.pdf}
```

Fitur [video di akhir artikel ini](#videodemo) menunjukkan cara mengunggah PDF dari proyek terpisah.

#### Cara membuat proyek grafik terpisah

Gunakan `standalone` atau `preview` paket untuk membuat proyek terpisah yang berisi gambar TikZ—PDF keluaran akan berisi halaman yang dipangkas rapat sesuai ukuran grafik.

**Contoh: paket standalone**

Berikut contoh kode yang menggunakan `standalone` paket:

```latex
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node[fill=yellow]{Hello!};
\end{tikzpicture}

\begin{tikzpicture}
\node[fill=pink]{World!};
\end{tikzpicture}
\end{document}
```

[Buka contoh ini di Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+standalone+package+and+TikZ\&snip=%5Cdocumentclass%5Btikz%5D%7Bstandalone%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cnode%5Bfill%3Dyellow%5D%7BHello%21%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%0A%5Cbegin%7Btikzpicture%7D%0A%5Cnode%5Bfill%3Dpink%5D%7BWorld%21%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Contoh ini menghasilkan keluaran berikut:

![Contoh paket LaTeX standalone](/files/0955d800b367872da6eb3be56613c4d74219d545)

**Contoh: paket preview**

Berikut contoh kode yang menggunakan `preview` paket:

```latex
\documentclass{article}
\usepackage[active,tightpage]{preview}
\setlength{\PreviewBorder}{0pt}
\usepackage{tikz}
\PreviewEnvironment[{[]}]{tikzpicture}
\begin{document}
\begin{tikzpicture}
\node[fill=yellow]{Hello!};
\end{tikzpicture}

\begin{tikzpicture}
\node[fill=pink]{World!};
\end{tikzpicture}
\end{document}
```

[Buka contoh ini di Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Example+of+the+preview+package+and+TikZ\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bactive%2Ctightpage%5D%7Bpreview%7D%0A%5Csetlength%7B%5CPreviewBorder%7D%7B0pt%7D%0A%5Cusepackage%7Btikz%7D%0A%5CPreviewEnvironment%5B%7B%5B%5D%7D%5D%7Btikzpicture%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cnode%5Bfill%3Dyellow%5D%7BHello%21%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%0A%5Cbegin%7Btikzpicture%7D%0A%5Cnode%5Bfill%3Dpink%5D%7BWorld%21%7D%3B%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Contoh ini menghasilkan keluaran berikut:

![Contoh paket LaTeX preview](/files/dfc51d621ce61dbee81297999838c0bf84b2b123)

### Demo video: mengunggah file dari proyek Overleaf lain

Video berikut menunjukkan cara mengunggah file PDF (dari proyek Overleaf lain) yang hanya berisi grafik—di sini, kami menggunakan `standalone` paket untuk membuat PDF yang berisi ilustrasi berbasis TikZ.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/6l4dDatlnqzIymJLofSnQP/61f8ad4b872f5a82f3cd45c487e2f101/TikzSeparateProjects.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/pertanyaan-and-jawaban/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.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.
