> 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/cs/struktura-dokumentu/08-multi-file-latex-projects.md).

# LaTeXové projekty s více soubory

## Úvod

V [velkých dokumentech LaTeXu](/latex/cs/struktura-dokumentu/07-management-in-a-large-project.md) člověk obvykle má několik `.tex` souborů, jeden pro každou kapitolu nebo sekci, a poté se spojí dohromady, aby se vygeneroval jediný výstup. To pomáhá udržet vše uspořádané a usnadňuje ladění dokumentu, ale jak dokument narůstá, kompilace trvá déle. To může být frustrující, protože člověk obvykle chce pokaždé pracovat jen v určitém souboru.

Přirozeným způsobem, jak toto překonat, je kompilovat každý soubor zvlášť. Existují dva hlavní balíčky, které umožňují kompilaci jednotlivých souborů ve vícesouborovém projektu. Volba, kterou uděláte, závisí na tom, co potřebujete.

* S [webových stránkách **subfiles** accents](#the-subfiles-package) můžete kompilovat každý podsoubor nezávisle a každý podsoubor bude automaticky používat preambuli v hlavním souboru.
* S [webových stránkách **samostatný** accents](#the-standalone-package) každý podsoubor funguje jako samostatný soubor, podsoubory lze později spojit do hlavního dokumentu, který načte preambule z každého z nich. Zvláště užitečné, pokud potřebujete znovu použít stejný soubor ve více než jednom dokumentu, příkladem je obrázek TikZ.

## Poznámky k \documentclass v souborech .tex na Overleafu

Jak je ukázáno v následujícím videoklipu, i když jste nastavili hlavní `.tex` soubor projektu, můžete vybrat jiný soubor ke kompilaci — za předpokladu, že obsahuje `\documentclass` deklaraci. Nicméně, aby bylo zajištěno, že `.bib` soubory atd. — důrazně doporučujeme, abyste kompilovali pouze soubory obsažené v kořenovém adresáři vašeho projektu.

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

## Balíček subfiles

Tento balíček je vhodný pro většinu situací, jeho použití je opravdu snadné.

Příklady v této části mají následující hierarchickou strukturu souborů:

![CompileSubfilesEx1OverleafV2.png](/files/b7d0f5bf8568138deddd1cda05b61c06c16f29cd)

### Hlavní soubor

V hlavním souboru jsou potřeba dva speciální příkazy.

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

\usepackage{blindtext}

\usepackage{subfiles} % Nejlépe načíst na konci preambule

\title{Příklad balíčku subfiles}
\author{Overleaf}
\date{ }

\begin{document}

\maketitle

\section{Úvod}

\subfile{sections/introduction}

\section{Druhá sekce}

\subfile{sections/section2}

\end{document}
```

![CompileSubfilesEx1aOverleafV2.png](/files/fda84468731ea8a3f509b620ded6d8951c7ce8a7)

Kompilace po souborech vyžaduje řádek

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

v preambuli, tím se aktivuje `subfiles` balíček. Poté musí být každý externí podsoubor importován příkazem `\subfile{}`. V příkladu jsou soubory `introduction.tex` a `section2.tex` jsou importovány do hlavního souboru ze `složky sections` . Všimněte si, že přípona souboru není povinná.

[Otevřete `subfiles` příklad balíčku v Overleafu](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

### Podsoubory

Jakmile nastavíte hlavní soubor, každý podsoubor musí mít zvláštní strukturu.

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

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

Ahoj, zde je nějaký text bez významu...

\end{document}
```

![CompileSubfilesEx2OverleafV2.png](/files/7b146cfab922880d5301f0dd6353804940ced899)

Nyní lze tento soubor kompilovat jako samostatný soubor, třída dokumentu a zbytek preambule budou stejné jako v hlavním dokumentu.

Prvním příkazem zde je

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

parametr uvnitř hranatých závorek, `../main.tex`, je relativní cesta k hlavnímu dokumentu. V tomto případě je soubor `introduction.tex` je uvnitř složky `složky sections`, proto je soubor `main.tex` je o úroveň výše než aktuální složka (to je to, co `../` znamená).

Budete také muset použít `\subfix` příkaz s relativní cestou ke složce při zadávání `\graphicspath` v `introduction.tex`:

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

Poté se skutečný obsah píše uvnitř `\begin{document}` a `\end{document}`. Vše mimo toto prostředí bude ignorováno, nebo konkrétněji, bude považováno za součást preambule. Vyhněte se ponechání prázdných řádků na začátku a na konci souboru.

[Otevřete `subfiles` příklad balíčku v Overleafu](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Balíček standalone

Balíček **samostatný** poskytuje stejnou funkčnost jako **subfiles** a je flexibilnější, ale syntaxe je složitější a náchylnější k chybám. Hlavní rozdíl je v tom, že každý podsoubor má svou vlastní preambuli.

Příklady v této části mají následující hierarchickou strukturu souborů:

![CompileSubfilesEx3OverleafV2.png](/files/78ba9bcd057fa7677043929c87904c28bbc79aee)

### Hlavní soubor

Hlavní soubor je velmi podobný tomu v jakémkoli jiném projektu s více soubory.

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

\title{Příklad balíčku standalone}
\author{Overleaf}
\date{květen 2021}

\begin{document}

\maketitle

\section{První sekce}
\import{sections/}{introduction}

\section{Druhá sekce}
\import{sections/}{section2}

\end{document}
```

![CompileSubfilesEx3Overleaf.png](/files/4427ebc1b6e0a474ddd1799e48df485eca3e9ba5)

Řádek

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

aktivuje **samostatný** balíček, měl by být umístěn na začátku dokumentu. Parametr v hranatých závorkách říká LaTeXu, aby importoval preambuli z každého podsouboru (balíčky jsou importovány pouze jednou); pokud je vynechán, ujistěte se, že máte v preambuli hlavního dokumentu všechny potřebné příkazy, aby podsoubory fungovaly. Je třeba být opatrný kvůli možným nekompatibilitám různých preambulí.

V těle hlavního dokumentu je každý podsoubor importován pomocí `\import{}{}`. Standardní `\input{}` příkaz lze také použít, ale ten v tomto příkladu se doporučuje pro [správu velkých projektů](/latex/cs/struktura-dokumentu/07-management-in-a-large-project.md) protože zabraňuje chybám ve vnořených souborech.

[Otevřete příklad `samostatný` balíčku na Overleafu](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

### Podsoubory

Každý podsoubor musí mít vlastní preambuli a importovat všechny balíčky potřebné k tomu, aby fungoval jako samostatný dokument.

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

\begin{document}
Pod tímto řádkem se vykreslí obrázek TikZ

\begin{figure}[ht]
\centering
\subimport{../}{diagram.tex}
\label{fig:tikzexample}
\caption{Pěkný jednoduchý diagram}
\end{figure}

\blindtext
\end{document}
```

![CompileSubfilesEx4OverleafV2.png](/files/93e155e2daf39ce9de63f5c9002b8df5c904c5a7)

První řádek v podsouboru je

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

Toto deklaruje, že jde o soubor určený pro použití s **samostatný** balíčkem, v závorkách jsou dva volitelné parametry.

* `class=article`. Nastavuje `article` jako základní třídu, lze použít jakoukoli jinou třídu: book, report atd. (kromě beamer).
* `crop=false`. Pokud je tato volba vynechána, výstup bude oříznut na minimální velikost.

Následující příkaz není povinný

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

ale v tomto příkladu se musí použít, protože je zde vnořený **samostatný** soubor zde. [obrázek TikZ](/latex/cs/obrazky-a-tabulky/05-tikz-package.md) se vkládá pomocí [`\subimport{../}{diagram.tex}`](/latex/cs/struktura-dokumentu/07-management-in-a-large-project.md#importing-files), níže můžete vidět obsah souboru "diagram.tex":

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

%Čáry
\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}
```

[Otevřete tento samostatný příklad TikZ na Overleafu](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/6cc631aff247420840103e832621f8b023d28d52)

Toto je hlavní vlastnost **samostatný**můžete tento soubor importovat do jakéhokoli jiného dokumentu a znovu použít kód. Tento diagram lze například později použít v prezentaci bez dalších úprav.

[Otevřete příklad `samostatný` balíčku na Overleafu](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

## Další čtení

Další informace najdete v

* [Správa ve velkém projektu](/latex/cs/struktura-dokumentu/07-management-in-a-large-project.md)
* [Křížové odkazy na sekce a rovnice](/latex/cs/struktura-dokumentu/03-cross-referencing-sections-equations-and-floats.md)
* [Rejstříky](/latex/cs/struktura-dokumentu/04-indices.md)
* [Slovníčky](/latex/cs/struktura-dokumentu/05-glossaries.md)
* [Hypertextové odkazy](/latex/cs/struktura-dokumentu/09-hyperlinks.md)
* [Číslování stránek](/latex/cs/formatovani/03-page-numbering.md)
* [Jednostranné a oboustranné dokumenty](/latex/cs/formatovani/08-single-sided-and-double-sided-documents.md)
* [Více sloupců](/latex/cs/formatovani/09-multiple-columns.md)
* [Formátování odstavců](/latex/cs/formatovani/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Velikost stránky a okraje](/latex/cs/formatovani/07-page-size-and-margins.md)
* [Čítače](/latex/cs/formatovani/10-counters.md)
* [Poznámky na okraji](/latex/cs/formatovani/15-margin-notes.md)
* [Tučné písmo, kurzíva a podtržení](/latex/cs/zaklady-latexu/03-bold-italics-and-underlining.md)
* [Velikosti, rodiny a styly písma](/latex/cs/pisma/01-font-sizes-families-and-styles.md)
* [Řezy písma](/latex/cs/pisma/02-font-typefaces.md)
* [Podpora moderních písem pomocí XeLaTeXu](/latex/cs/pisma/03-xelatex.md)
* [Podpora mezinárodních jazyků](/latex/cs/jazyky/03-international-language-support.md)
* [Velikosti, rodiny a styly písma](/latex/cs/pisma/01-font-sizes-families-and-styles.md)
* [Kompilace velkých projektů](/latex/cs/znalostni-baze/038-fixing-and-preventing-compile-timeouts.md#compiling-big-projects)
* [Vkládání obrázků](/latex/cs/dalsi-temata/27-inserting-images.md)
* [Balíček TikZ](/latex/cs/obrazky-a-tabulky/05-tikz-package.md)
* [Psaní vlastního balíčku](/latex/cs/tridni-soubory/03-writing-your-own-package.md)
* [Psaní vlastní třídy](/latex/cs/tridni-soubory/04-writing-your-own-class.md)
* [Ta **subfiles** dokumentace balíčku](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/subfiles/subfiles.pdf)
* [Ta **samostatný** dokumentace balíčku](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/cs/struktura-dokumentu/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.
