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

# Mám spoustu obrázků tikz, matlab2tikz nebo pgfplots, takže narážím na časový limit kompilace. Mohu e

## Jak externalizovat grafiku TikZ

Použijte knihovnu TikZ [s názvem `external`](https://tikz.dev/library-external) pro vytváření a ukládání (mezipaměť) kreseb TikZ jako souborů PDF — proces často označovaný jako „*externalizace*“.

Načtěte knihovnu pomocí `\usetikzlibrary{external}`, poté aktivujte externalizaci pomocí příkazu `\tikzexternalize`:

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

kde `<options>` je volitelný seznam parametrů (páry klíč–hodnota) používaný ke konfiguraci `external` knihovny.

* **POZNÁMKA**: Aby externalizace TikZ fungovala na Overleafu, `\tikzexternalize` příkaz ***musí*** být uveden v hlavním `.tex` souboru.

Podívejme se na základní příklad, který používá grafiku převzatou z [dokumentace TikZ](https://tikz.dev/library-external):

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

\begin{document}
% Tento obrázek TikZ bude zapsán do
% souboru s názvem 'output-figure0.pdf'
% ve složce 'tikz'
\begin{tikzpicture}

  \node {kořen}
    child {node {levý}}
    child {node {pravý}
      child {node {potomek}}
      child {node {potomek}}
    };

\end{tikzpicture}

\end{document}
```

Chcete-li si tento příklad vyzkoušet, můžete [si jej otevřít na Overleafu.](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=)

Kód v našem příkladu používá volbu `prefix=tikz/` s `\tikzexternalize`:

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

Volba `prefix=tikz/` uvádí název složky (zde, `tikz`) která se má použít pro ukládání vygenerovaných (externalizovaných) obrázků do mezipaměti — tuto složku budete muset v projektu vytvořit ručně. Než však do této složky může LaTeX (kód TikZ) zapisovat, musí v ní být soubor — postačí jakýkoli (fiktivní) soubor; například můžete přidat prázdný textový soubor `foo.txt` ve `tikz` složce.

Overleaf považuje externalizované grafiky TikZ PDF za generované výstupní soubory, takže se neobjeví ve viditelném seznamu souborů projektu — v projektu jsou přítomny, jen jsou skryté před zobrazením — můžete si zobrazit seznam [vygenerovaných souborů](/latex/cs/znalostni-baze/150-view-generated-files.md) si je zobrazit.

Následující (krátký) videoklip shrnuje kompilaci výše uvedeného příkladu a ukazuje, jak přistupovat k seznamu souborů vygenerovaných TikZ:

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

## Některé poznámky

Externalizace grafiky TikZ může být pro základní engin TeXu (pdfTeX, XeTeX, LuaTeX atd.) výpočetně náročná, takže `external` knihovna nabízí volbu, která proces „optimalizuje“. Pokud optimalizaci povolíte, TikZ se pokusí snížit svou zátěž tím, že bude „ignorovat“ některé složité (nákladné), avšak pro TikZ nepodstatné příkazy — jejich redefinováním (za běhu). Kromě toho mohou některé příkazy z jiných balíčků způsobovat chyby v režimu externalizace; například `\includepdf` z balíčku `pdfpages` . Aby bylo možné to obejít, budete muset takové příkazy „optimalizovat pryč“:

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

## Příliš mnoho složitých grafik k externalizaci!

Pokud jsou vaše grafiky složité a/nebo početné, pravděpodobně během počáteční kompilace narazíte na Overleaf [vypršení času pro kompilaci](/latex/cs/znalostni-baze/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) na Overleafu — jak se externalizované soubory generují. Tato část uvede některá možná řešení, jak se vyhnout časovým limitům kompilace.

### Postupné sestavování

Postupné sestavování vašeho projektu [zakomentováváním](https://ctan.org/pkg/comment?lang=en) různých částí projektu může pomoci, ale pamatujte, že všechny generované soubory jsou na serverech v pravidelných intervalech automaticky odstraněny. Váš projekt pak může při příštím přihlášení přestat kompilovat a všechny je budete muset znovu postupně vygenerovat.

### Generování kreseb lokálně

* **Poznámka**: Tato část předpokládá, že váš projekt používá `\tikzexternalize[prefix=tikz/]` pro ukládání vygenerované grafiky do mezipaměti ve složce nazvané `tikz`.

Jako řešení obejití, [stáhněte si svůj projekt na Overleafu](/latex/cs/znalostni-baze/036-exporting-your-work-from-overleaf.md) a zkompilujte jej na místním počítači, aby se grafické soubory externalizovaly (vygenerovaly). Po dokončení kompilace by měla složka `tikz` obsahovat několik typů souborů pro každou vygenerovanou grafiku, včetně `*somegraphic*.pdf`, `*somegraphic*.md5` a `*somegraphic*.dpth`. Pokud tyto soubory nahrajete do `tikz` složky vašeho projektu na Overleafu, budou použity během kompilace — která by nyní měla být docela rychlá. Protože tyto soubory jsou nahrané a nikoli generované, server je nesmaže: nahrané soubory se nikdy automaticky neodstraňují.

* **Poznámka (názvy grafických souborů)**: Overleaf nastavuje `\jobname` na `výstup`, což ovlivňuje název přidělený externalizované (vygenerované) grafice TikZ: ve výchozím nastavení jsou generované grafické soubory pojmenovány `output-figureN.EXT` kde
  * `N` je celé číslo odvozené z pořadí, v jakém se grafiky objevují (`N`=0, 1, 2, ...);
  * `EXT` je jedna z přípon souborů používaných TikZ, včetně `pdf`, `md5` a `dpth` (také `log`).
* **Upozornění**: Pokud po nahrání grafických souborů následně provedete změny v kódu TikZ ve svém projektu, může být nutné odstranit odpovídající grafické soubory ve složce `tikz` aby Overleaf mohl vygenerovat a použít novou verzi. Alternativně můžete soubory znovu vygenerovat na svém místním počítači a znovu je nahrát na Overleaf. Pamatujte, že je třeba nahradit všechny `.pdf`, `.md5` a `.dpth` soubory pro danou konkrétní kresbu TikZ.

### Generování kreseb v samostatném projektu

Další možností je vytvořit samostatný projekt pouze pro grafiku, který bude obsahovat jen obraz(y) TikZ. Jakmile budou tyto obrázky hotové, můžete PDF z tohoto samostatného projektu nahrát do hlavního projektu následovně:

* klikněte na ikonu Nahrát soubory (![Overleaf file upload icon](/files/af9b0e9e7fec872789a7e63fe264ced82beb77b8)) nad panelem se seznamem souborů;
* vyberte **Z jiného projektu**;
* z rozbalovacího seznamu vyberte projekt obsahující kresby TikZ;
* vyberte **z výstupních souborů**;
* vyberte **output.pdf** a (volitelně) pojmenujte nahraný soubor.

Po nahrání můžete přistupovat k jednotlivým obrázkům výběrem příslušné stránky nahraného PDF; například pomocí příkazu jako:

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

Ta [video na konci tohoto článku](#videodemo) ukazuje nahrávání PDF z odděleného projektu.

#### Jak vytvořit samostatný grafický projekt

Použijte `samostatný` nebo `náhled` k vytvoření samostatného projektu obsahujícího kresby TikZ — výstupní PDF budou obsahovat těsně oříznuté stránky odpovídající velikosti grafik.

**Příklad: balíček standalone**

Tady je ukázkový kód používající `samostatný` balíček:

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

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

[Otevřete tento příklad v Overleafu](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)

Tento příklad vytvoří následující výstup:

![Příklad balíčku LaTeX standalone](/files/5911c5b9c3a4fb448a1fb0dfeea52a59e1669af7)

**Příklad: balíček preview**

Tady je ukázkový kód používající `náhled` balíček:

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

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

[Otevřete tento příklad v Overleafu](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)

Tento příklad vytvoří následující výstup:

![Příklad balíčku LaTeX preview](/files/ce24ec78672f2fe67a4f32d95aea5f201f56d5ca)

### Video ukázka: nahrávání souborů z jiného projektu Overleaf

Následující video ukazuje, jak nahrát soubor PDF (z jiného projektu Overleaf), který obsahuje pouze grafiku — zde používáme `samostatný` balíček k vytvoření PDF obsahujícího ilustrace založené na 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/cs/otazky-a-odpovedi/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.
