> 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/struktur-dokumen/08-multi-file-latex-projects.md).

# Proyek LaTeX multi-file

## Pendahuluan

Dalam [dokumen LaTeX besar](/latex/id/struktur-dokumen/07-management-in-a-large-project.md) biasanya ada beberapa `.tex` file, satu untuk setiap bab atau bagian, dan kemudian digabungkan untuk menghasilkan satu keluaran. Ini membantu menjaga semuanya tetap terorganisasi dan memudahkan untuk men-debug dokumen, tetapi saat dokumen menjadi lebih besar, proses kompilasi memakan waktu lebih lama. Ini bisa membuat frustrasi karena biasanya seseorang hanya ingin bekerja di file tertentu setiap kali.

Pendekatan alami untuk mengatasi hal ini adalah mengompilasi setiap file secara terpisah. Ada dua paket utama yang memungkinkan kompilasi file tunggal dalam proyek multi-file. Pilihan yang Anda buat bergantung pada kebutuhan Anda.

* Dengan [situs web **subfile** ke preambel dokumen Anda (seperti disarankan](#the-subfiles-package) Anda dapat mengompilasi setiap subfile secara independen dan setiap subfile akan secara otomatis menggunakan preamble pada file utama.
* Dengan [situs web **standalone** ke preambel dokumen Anda (seperti disarankan](#the-standalone-package) setiap subfile bekerja sebagai file independen, subfile kemudian dapat digabungkan dalam dokumen utama yang akan mengambil preamble dari masing-masing subfile. Sangat berguna jika Anda perlu menggunakan ulang file yang sama di lebih dari satu dokumen; gambar tikz adalah contoh yang baik untuk ini.

## Catatan tentang \documentclass di file .tex Overleaf

Seperti yang ditunjukkan dalam cuplikan video berikut, meskipun Anda telah menetapkan file utama proyek `.tex` Anda dapat memilih file lain untuk dikompilasi—asalkan file tersebut berisi sebuah `\documentclass` deklarasi. Namun, untuk memastikan semua elemen proyek Anda dikompilasi dengan benar—seperti glosarium, akses jalur ke `.bib` file, dll.—kami sangat menyarankan agar Anda hanya mengompilasi file yang berada di direktori root proyek Anda.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/U2nGfRx9NwNGX0vWXNebP/1ca4b9a4b2f36d5ca9c0dbaa87f44bfa/maincompile.mp4>" %}

## Paket subfiles

Paket ini cocok untuk sebagian besar situasi, dan sangat mudah digunakan.

Contoh-contoh di bagian ini memiliki struktur file hierarkis berikut:

![CompileSubfilesEx1OverleafV2.png](/files/6b61e0ded57450b767b4f28dc515ef38e365cb7a)

### File utama

Di file utama diperlukan dua perintah khusus.

```latex
\documentclass{article}
\usepackage{graphicx}
\graphicspath{{images/}}

\usepackage{blindtext}

\usepackage{subfiles} % Sebaiknya dimuat paling akhir di preamble

\title{Contoh paket subfiles}
\author{Overleaf}
\date{ }

\begin{document}

\maketitle

\section{Pendahuluan}

\subfile{sections/introduction}

\section{Bagian kedua}

\subfile{sections/section2}

\end{document}
```

![CompileSubfilesEx1aOverleafV2.png](/files/6930efcc917a80d69b5d4bb2bf306037bd08b226)

Kompilasi per file memerlukan baris

```latex
\usepackage{subfiles}
```

di preamble, ini mengaktifkan `subfile` paket tersebut. Kemudian setiap subfile eksternal harus diimpor dengan perintah `\subfile{}`. Dalam contoh, file `introduction.tex` dan `section2.tex` diimpor ke file utama dari folder `sections` folder. Perhatikan bahwa ekstensi file tidak wajib.

[Buka sebuah `subfile` contoh paket ini di Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

### Subfile

Setelah Anda menyiapkan file utama, setiap subfile harus memiliki struktur khusus.

```latex
\documentclass[../main.tex]{subfiles}
\graphicspath{{\subfix{../images/}}}
\begin{document}
\textbf{Halo dunia!}
\begin{figure}[bh]
\centering
\includegraphics[width=3cm]{overleaf-logo}

\label{fig:img1}
\caption{Logo Overleaf}
\end{figure}

Halo, berikut adalah beberapa teks tanpa makna...

\end{document}
```

![CompileSubfilesEx2OverleafV2.png](/files/da3530d48d940441d2dc9528c86d35d8a7e327c8)

Sekarang file ini dapat dikompilasi sebagai file mandiri, kelas dokumen dan sisa preamble akan sama seperti yang didefinisikan dalam dokumen utama.

Perintah pertama di sini adalah

```latex
\documentclass[../main.tex]{subfiles}
```

parameter di dalam tanda kurung, `../main.tex`, adalah jalur relatif ke dokumen utama. Dalam kasus ini, file `introduction.tex` berada di dalam folder `sections`, sehingga file `main.tex` berada satu tingkat di atas folder saat ini (inilah yang `../` berarti).

Anda juga perlu menggunakan `\subfix` perintah dengan jalur folder relatif saat menentukan `\graphicspath` di `introduction.tex`:

```latex
\graphicspath{{\subfix{../images/}}}
```

Kemudian isi sebenarnya diketik di dalam `\begin{document}` dan `\end{document}`. Semua yang berada di luar lingkungan ini akan diabaikan, atau lebih tepatnya, akan dianggap sebagai bagian dari preamble. Hindari meninggalkan baris kosong di bagian atas dan bawah file.

[Buka sebuah `subfile` contoh paket ini di Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Paket standalone

Paket **standalone** menyediakan fungsionalitas yang sama seperti **subfile** dan lebih fleksibel, tetapi sintaksnya lebih kompleks dan rentan terhadap kesalahan. Perbedaan utamanya adalah bahwa setiap subfile memiliki preamble-nya sendiri.

Contoh-contoh di bagian ini memiliki struktur file hierarkis berikut:

![CompileSubfilesEx3OverleafV2.png](/files/cbeaac09bf10f30962f320437e8be69c39974d23)

### File utama

File utama sangat mirip dengan proyek multi-file lainnya.

```latex
\documentclass{article}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}

\title{Contoh paket standalone}
\author{Overleaf}
\date{Mei 2021}

\begin{document}

\maketitle

\section{Bagian pertama}
\import{sections/}{introduction}

\section{Bagian kedua}
\import{sections/}{section2}

\end{document}
```

![CompileSubfilesEx3Overleaf.png](/files/565c0fb77c1a75b497317d87fd4fa27a5c1ecbd1)

Baris

```latex
\usepackage[subpreambles=true]{standalone}
```

mengaktifkan **standalone** paket tersebut, dan sebaiknya ditempatkan lebih awal di dokumen. Parameter di dalam tanda kurung memberi tahu LaTeX untuk mengimpor preamble dari setiap subfile (paket hanya diimpor satu kali), jika dihilangkan, pastikan Anda memiliki semua perintah yang diperlukan di preamble dokumen utama agar subfile dapat berfungsi. Harus berhati-hati karena kemungkinan adanya ketidakcocokan di antara preamble yang berbeda.

Di badan dokumen utama, setiap subfile diimpor dengan `\import{}{}`. Perintah standar `\input{}` juga dapat digunakan, tetapi yang dalam contoh ini disarankan untuk [mengelola proyek besar](/latex/id/struktur-dokumen/07-management-in-a-large-project.md) karena mencegah kesalahan pada file bersarang.

[Buka contoh `standalone` paket di Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

### Subfile

Setiap subfile harus memiliki preamble sendiri dan mengimpor semua paket yang diperlukan agar berfungsi sebagai dokumen mandiri.

```latex
\documentclass[class=article, crop=false]{standalone}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
\usepackage{blindtext}

\begin{document}
Sebuah gambar TikZ akan dirender di bawah baris ini

\begin{figure}[ht]
\centering
\subimport{../}{diagram.tex}
\label{fig:tikzexample}
\caption{Diagram sederhana yang bagus}
\end{figure}

\blindtext
\end{document}
```

![CompileSubfilesEx4OverleafV2.png](/files/bc9baf60d9fa98933e092a334077bd7f0a54369a)

Baris pertama dalam subfile adalah

```latex
\documentclass[class=article, crop=false]{standalone}
```

Ini menyatakan bahwa ini adalah file yang akan digunakan dengan **standalone** paket tersebut, ada dua parameter opsional di dalam tanda kurung.

* `class=article`. Menetapkan `article` sebagai kelas dasar; kelas lain apa pun dapat digunakan: book, report, dll. (kecuali beamer).
* `crop=false`. Jika opsi ini dihilangkan, keluaran akan dipotong ke ukuran minimum.

Perintah berikutnya tidak wajib

```latex
\usepackage[subpreambles=true]{standalone}
```

tetapi harus digunakan dalam contoh ini karena ada file bersarang **standalone** di sini. Sebuah [gambar TikZ](/latex/id/gambar-dan-tabel/05-tikz-package.md) disisipkan dengan [`\subimport{../}{diagram.tex}`](/latex/id/struktur-dokumen/07-management-in-a-large-project.md#importing-files), Anda dapat melihat isi file "diagram.tex" di bawah ini:

```latex
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}

\begin{tikzpicture}[
roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
squarednode/.style={rectangle, draw=red!60, fill=red!5, very thick, minimum size=5mm},
]
%Simpul
\node[squarednode]      (maintopic)                              {2};
\node[roundnode]        (uppercircle)       [above=of maintopic] {1};
\node[squarednode]      (rightsquare)       [right=of maintopic] {3};
\node[roundnode]        (lowercircle)       [below=of maintopic] {4};

%Garis
\draw[->] (uppercircle.south) -- (maintopic.north);
\draw[->] (maintopic.east) -- (rightsquare.west);
\draw[->] (rightsquare.south) .. controls +(down:7mm) and +(right:7mm) .. (lowercircle.east);

\end{tikzpicture}
\end{document}
```

[Buka contoh TikZ Standalone ini di Overleaf](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Standalone+TikZ+example\&snip=%5Cdocumentclass%7Bstandalone%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cusetikzlibrary%7Bpositioning%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Btikzpicture%7D%5B%0Aroundnode%2F.style%3D%7Bcircle%2C+draw%3Dgreen%2160%2C+fill%3Dgreen%215%2C+very+thick%2C+minimum+size%3D7mm%7D%2C%0Asquarednode%2F.style%3D%7Brectangle%2C+draw%3Dred%2160%2C+fill%3Dred%215%2C+very+thick%2C+minimum+size%3D5mm%7D%2C%0A%5D%0A%25Nodes%0A%5Cnode%5Bsquarednode%5D++++++%28maintopic%29++++++++++++++++++++++++++++++%7B2%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28uppercircle%29+++++++%5Babove%3Dof+maintopic%5D+%7B1%7D%3B%0A%5Cnode%5Bsquarednode%5D++++++%28rightsquare%29+++++++%5Bright%3Dof+maintopic%5D+%7B3%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28lowercircle%29+++++++%5Bbelow%3Dof+maintopic%5D+%7B4%7D%3B%0A%0A%25Lines%0A%5Cdraw%5B-%3E%5D+%28uppercircle.south%29+--+%28maintopic.north%29%3B%0A%5Cdraw%5B-%3E%5D+%28maintopic.east%29+--+%28rightsquare.west%29%3B%0A%5Cdraw%5B-%3E%5D+%28rightsquare.south%29+..+controls+%2B%28down%3A7mm%29+and+%2B%28right%3A7mm%29+..+%28lowercircle.east%29%3B%0A%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

![CompileSubfilesEx5.png](/files/5562a623b36cd3cf0e025f127ca959f363c81b6d)

Ini adalah fitur utama dari **standalone**, Anda dapat mengimpor file ini ke dokumen lain mana pun dan menggunakan ulang kodenya. Misalnya, diagram ini nantinya dapat digunakan dalam presentasi tanpa perubahan lebih lanjut.

[Buka contoh `standalone` paket di Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

## Bacaan lanjutan

Untuk informasi lebih lanjut, lihat

* [Pengelolaan dalam proyek besar](/latex/id/struktur-dokumen/07-management-in-a-large-project.md)
* [Referensi silang bagian dan persamaan](/latex/id/struktur-dokumen/03-cross-referencing-sections-equations-and-floats.md)
* [Indeks](/latex/id/struktur-dokumen/04-indices.md)
* [Glosarium](/latex/id/struktur-dokumen/05-glossaries.md)
* [Hyperlink](/latex/id/struktur-dokumen/09-hyperlinks.md)
* [Penomoran halaman](/latex/id/pemformatan/03-page-numbering.md)
* [Dokumen satu sisi dan dua sisi](/latex/id/pemformatan/08-single-sided-and-double-sided-documents.md)
* [Beberapa kolom](/latex/id/pemformatan/09-multiple-columns.md)
* [Pemformatan paragraf](/latex/id/pemformatan/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Ukuran halaman dan margin](/latex/id/pemformatan/07-page-size-and-margins.md)
* [Penghitung](/latex/id/pemformatan/10-counters.md)
* [Catatan pinggir](/latex/id/pemformatan/15-margin-notes.md)
* [Tebal, miring, dan garis bawah](/latex/id/dasar-dasar-latex/03-bold-italics-and-underlining.md)
* [Ukuran font, keluarga font, dan gaya](/latex/id/font/01-font-sizes-families-and-styles.md)
* [Jenis huruf](/latex/id/font/02-font-typefaces.md)
* [Mendukung font modern dengan XeLaTeX](/latex/id/font/03-xelatex.md)
* [Dukungan bahasa internasional](/latex/id/bahasa/03-international-language-support.md)
* [Ukuran font, keluarga font, dan gaya](/latex/id/font/01-font-sizes-families-and-styles.md)
* [Mengompilasi proyek besar](/latex/id/basis-pengetahuan/038-fixing-and-preventing-compile-timeouts.md#compiling-big-projects)
* [Menyisipkan Gambar](/latex/id/topik-lainnya/27-inserting-images.md)
* [Paket TikZ](/latex/id/gambar-dan-tabel/05-tikz-package.md)
* [Menulis paket Anda sendiri](/latex/id/file-kelas/03-writing-your-own-package.md)
* [Menulis kelas Anda sendiri](/latex/id/file-kelas/04-writing-your-own-class.md)
* [Fitur **subfile** dokumentasi paket](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/subfiles/subfiles.pdf)
* [Fitur **standalone** dokumentasi paket](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/standalone/standalone.pdf)


---

# 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/struktur-dokumen/08-multi-file-latex-projects.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.
