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

# LaTeX-projecten met meerdere bestanden

## Inleiding

In [grote LaTeX-documenten](/latex/nl/documentstructuur/07-management-in-a-large-project.md) heeft men meestal meerdere `.tex` bestanden, één voor elk hoofdstuk of elke sectie, en daarna worden ze samengevoegd om één enkele uitvoer te genereren. Dit helpt om alles georganiseerd te houden en maakt het gemakkelijker om fouten in het document op te sporen, maar naarmate het document groter wordt, duurt het compileren langer. Dat kan frustrerend zijn, omdat men meestal alleen geïnteresseerd is in het werken in één bepaald bestand per keer.

De natuurlijke aanpak om dit te verhelpen is elk bestand afzonderlijk te compileren. Er zijn twee hoofd­pakketten waarmee het compileren van afzonderlijke bestanden in een project met meerdere bestanden mogelijk is. De keuze die je maakt hangt af van wat je nodig hebt.

* Met [het **subfiles** pakket](#the-subfiles-package) kun je elk subbestand onafhankelijk compileren en elk subbestand gebruikt automatisch de preamble in het hoofdbestand.
* Met [het **standalone** pakket](#the-standalone-package) werkt elk subbestand als een zelfstandig bestand; subbestanden kunnen later worden samengevoegd in een hoofddocument dat de preambles uit elk van hen zal ophalen. Vooral handig als je hetzelfde bestand in meer dan één document moet hergebruiken; een tikz-afbeelding is hiervan een goed voorbeeld.

## Opmerkingen over \documentclass in Overleaf .tex-bestanden

Zoals getoond in de volgende videoclip, zelfs als je de hoofd `.tex` bestand van je project hebt ingesteld, kun je een ander bestand selecteren om te compileren—op voorwaarde dat het een `\documentclass` verklaring bevat. Om er echter voor te zorgen dat alle elementen van je project correct worden gecompileerd—zoals woordenlijsten en het openen van paden naar `.bib` bestanden enz.—raden we sterk aan alleen bestanden te compileren die zich in de hoofddirectory van je project bevinden.

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

## Het subfiles-pakket

Dit pakket is geschikt voor de meeste situaties, het is heel makkelijk te gebruiken.

De voorbeelden in deze sectie hebben de volgende hiërarchische bestandsstructuur:

![CompileSubfilesEx1OverleafV2.png](/files/2087970546cee1dbce350cbe4b69de453d3867c7)

### Het hoofdbestand

In het hoofdbestand zijn twee speciale opdrachten nodig.

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

\usepackage{blindtext}

\usepackage{subfiles} % Bij voorkeur als laatste laden in de preamble

\title{Subfiles package example}
\author{Overleaf}
\date{ }

\begin{document}

\maketitle

\section{Introduction}

\subfile{sections/introduction}

\section{Second section}

\subfile{sections/section2}

\end{document}
```

![CompileSubfilesEx1aOverleafV2.png](/files/6ab9d90498a0b7fdd34231cc9f7752e1f9ea69f3)

Per-bestand compileren vereist de regel

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

in de preamble; hiermee wordt het `subfiles` pakket geladen. Vervolgens moet elk extern subbestand worden geïmporteerd met de opdracht `\subfile{}`. In het voorbeeld worden de bestanden `introduction.tex` en `section2.tex` vanuit de `sections` map in het hoofdbestand geïmporteerd. Merk op dat de bestandsextensie niet verplicht is.

[Open een `subfiles` pakketvoorbeeld in Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

### De subfiles

Zodra je je hoofdbestand hebt ingesteld, moet elk subbestand een speciale structuur hebben.

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

\label{fig:img1}
\caption{Overleaf-logo}
\end{figure}

Hallo, hier is wat tekst zonder betekenis...

\end{document}
```

![CompileSubfilesEx2OverleafV2.png](/files/0c8781efc1579f418e26e1dde63866a0d5fb6f25)

Nu kan dit bestand als een zelfstandig bestand worden gecompileerd; de documentclass en de rest van de preamble zijn hetzelfde als gedefinieerd in het hoofddocument.

De eerste opdracht hier is

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

de parameter tussen de haken, `../main.tex`, is het relatieve pad naar het hoofddocument. In dit geval bevindt het bestand `introduction.tex` zich in de map `sections`, dus het bestand `main.tex` staat één niveau boven de huidige map (dat is wat `../` betekent).

Je moet ook de `\subfix` opdracht met het relatieve mappad gebruiken bij het opgeven van `\graphicspath` in `introduction.tex`:

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

Daarna wordt de eigenlijke inhoud getypt binnen `\begin{document}` en `\end{document}`. Alles buiten deze omgeving wordt genegeerd, of preciezer gezegd, beschouwd als onderdeel van de preamble. Laat boven- en onderaan het bestand geen lege regels staan.

[Open een `subfiles` pakketvoorbeeld in Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Het standalone-pakket

Het pakket **standalone** biedt dezelfde functionaliteit als **subfiles** en is flexibeler, maar de syntaxis is complexer en foutgevoeliger. Het belangrijkste verschil is dat elk subbestand zijn eigen preamble heeft.

De voorbeelden in deze sectie hebben de volgende hiërarchische bestandsstructuur:

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

### Het hoofdbestand

Het hoofdbestand lijkt sterk op dat van elk ander project met meerdere bestanden.

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

\title{Standalone package example}
\author{Overleaf}
\date{May 2021}

\begin{document}

\maketitle

\section{First section}
\import{sections/}{introduction}

\section{Second section}
\import{sections/}{section2}

\end{document}
```

![CompileSubfilesEx3Overleaf.png](/files/13d81ff80ca4b0167eb1dc24439bbf52133548c0)

De regel

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

laadt het **standalone** pakket, hij moet vroeg in het document worden geplaatst. De parameter tussen de haken vertelt LaTeX om de preamble uit elk subbestand te importeren (pakketten worden slechts één keer geïmporteerd); als je deze weglaat, zorg dan dat je alle noodzakelijke opdrachten in de preamble van het hoofddocument hebt, zodat de subbestanden werken. Men moet voorzichtig zijn vanwege mogelijke incompatibiliteiten tussen de verschillende preambles.

In de body van het hoofddocument wordt elk subbestand geïmporteerd met `\import{}{}`. De standaard `\input{}` opdracht kan ook worden gebruikt, maar die in dit voorbeeld wordt aanbevolen om [grote projecten te beheren](/latex/nl/documentstructuur/07-management-in-a-large-project.md) omdat het fouten in geneste bestanden voorkomt.

[Open een voorbeeld van het `standalone` pakket in Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

### De subfiles

Elk subbestand moet zijn eigen preamble hebben en alle pakketten importeren die nodig zijn om als zelfstandig document te werken.

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

\begin{document}
Een TikZ-figuur wordt onder deze regel weergegeven

\begin{figure}[ht]
\centering
\subimport{../}{diagram.tex}
\label{fig:tikzexample}
\caption{Een mooi eenvoudig diagram}
\end{figure}

\blindtext
\end{document}
```

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

De eerste regel in het subbestand is

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

Hiermee wordt verklaard dat dit een bestand is dat met het **standalone** pakket moet worden gebruikt, er zijn twee optionele parameters tussen de haken.

* `class=article`. Stelt `article` in als onderliggende class; elke andere class kan worden gebruikt: book, report, enz. (behalve beamer).
* `crop=false`. Als deze optie wordt weggelaten, wordt de uitvoer bijgesneden tot een minimale grootte.

De volgende opdracht is niet verplicht

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

maar moet in dit voorbeeld worden gebruikt omdat er hier een genest **standalone** bestand aanwezig is. Een [tikz-afbeelding](/latex/nl/afbeeldingen-en-tabellen/05-tikz-package.md) wordt ingevoegd met [`\subimport{../}{diagram.tex}`](/latex/nl/documentstructuur/07-management-in-a-large-project.md#importing-files), je kunt de inhoud van het bestand "diagram.tex" hieronder zien:

```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},
]
%Knopen
\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};

%Lijnen
\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}
```

[Open dit zelfstandige TikZ-voorbeeld in 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/5a3e0c26de4a354322a2901ca53f524a599f2834)

Dit is de belangrijkste functie van **standalone**, je kunt dit bestand in elk ander document importeren en de code hergebruiken. Bijvoorbeeld kan dit diagram later zonder verdere wijzigingen in een presentatie worden gebruikt.

[Open een voorbeeld van het `standalone` pakket in Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

## Verder lezen

Zie voor meer informatie

* [Beheer in een groot project](/latex/nl/documentstructuur/07-management-in-a-large-project.md)
* [Verwijzen tussen secties en vergelijkingen](/latex/nl/documentstructuur/03-cross-referencing-sections-equations-and-floats.md)
* [Indexen](/latex/nl/documentstructuur/04-indices.md)
* [Woordenlijsten](/latex/nl/documentstructuur/05-glossaries.md)
* [Hyperlinks](/latex/nl/documentstructuur/09-hyperlinks.md)
* [Paginanummering](/latex/nl/opmaak/03-page-numbering.md)
* [Enkelzijdige en dubbelzijdige documenten](/latex/nl/opmaak/08-single-sided-and-double-sided-documents.md)
* [Meerdere kolommen](/latex/nl/opmaak/09-multiple-columns.md)
* [Alinea-opmaak](/latex/nl/opmaak/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Paginagrootte en marges](/latex/nl/opmaak/07-page-size-and-margins.md)
* [Tellers](/latex/nl/opmaak/10-counters.md)
* [Marge-notities](/latex/nl/opmaak/15-margin-notes.md)
* [Vet, cursief en onderstrepen](/latex/nl/latex-basis/03-bold-italics-and-underlining.md)
* [Lettergroottes, lettertypes en stijlen](/latex/nl/lettertypen/01-font-sizes-families-and-styles.md)
* [Lettertypen](/latex/nl/lettertypen/02-font-typefaces.md)
* [Ondersteuning voor moderne lettertypen met XeLaTeX](/latex/nl/lettertypen/03-xelatex.md)
* [Ondersteuning voor internationale talen](/latex/nl/talen/03-international-language-support.md)
* [Lettergroottes, lettertypes en stijlen](/latex/nl/lettertypen/01-font-sizes-families-and-styles.md)
* [Grote projecten compileren](/latex/nl/kennisbank/038-fixing-and-preventing-compile-timeouts.md#compiling-big-projects)
* [Afbeeldingen invoegen](/latex/nl/meer-onderwerpen/27-inserting-images.md)
* [TikZ-pakket](/latex/nl/afbeeldingen-en-tabellen/05-tikz-package.md)
* [Je eigen pakket schrijven](/latex/nl/class-bestanden/03-writing-your-own-package.md)
* [Je eigen class schrijven](/latex/nl/class-bestanden/04-writing-your-own-class.md)
* [Het **subfiles** pakkettendocumentatie](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/subfiles/subfiles.pdf)
* [Het **standalone** pakkettendocumentatie](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/nl/documentstructuur/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.
