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

# Mam dużo figur tikz, matlab2tikz lub pgfplots, więc pojawia się przekroczenie czasu kompilacji. Czy mogę e

## Jak eksternalizować grafiki TikZ

Użyj biblioteki TikZ [o nazwie `external`](https://tikz.dev/library-external) aby tworzyć i przechowywać (buforować) rysunki TikZ jako pliki PDF — proces często nazywany „*eksternalizacją*”.

Załaduj bibliotekę za pomocą `\usetikzlibrary{external}`, a następnie aktywuj eksternalizację za pomocą polecenia `\tikzexternalize`:

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

gdzie `<options>` jest opcjonalną listą parametrów (par klucz–wartość) używaną do konfiguracji `external` biblioteki.

* **UWAGA**: Aby eksternalizacja TikZ działała w Overleaf, `\tikzexternalize` polecenie ***musi*** być podane w głównym `.tex` pliku.

Przyjrzyjmy się podstawowemu przykładowi, który korzysta z grafiki zaczerpniętej z [dokumentacji TikZ](https://tikz.dev/library-external):

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

\begin{document}
% Ten rysunek TikZ zostanie zapisany do
% pliku o nazwie 'output-figure0.pdf'
% w folderze 'tikz'
\begin{tikzpicture}

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

\end{tikzpicture}

\end{document}
```

Aby wypróbować ten przykład, możesz [otworzyć go w 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=)

Kod w naszym przykładzie używa opcji `prefix=tikz/` z `\tikzexternalize`:

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

Opcja `prefix=tikz/` podaje nazwę folderu (tutaj, `tikz`) do użycia do buforowania wygenerowanych (eksternalizowanych) rysunków — musisz utworzyć ten folder ręcznie w swoim projekcie. Jednak zanim LaTeX (kod TikZ) będzie mógł zapisywać do tego folderu, musi on zawierać plik — wystarczy dowolny plik (zastępczy); na przykład możesz dodać pusty plik tekstowy `foo.txt` w `tikz` folderze.

Overleaf traktuje eksternalizowane grafiki TikZ PDF jako wygenerowane pliki wynikowe, więc nie pojawią się na widocznej liście plików projektu — są obecne w projekcie, tylko ukryte przed widokiem — możesz wyświetlić listę [wygenerowanych plików](/latex/pl/baza-wiedzy/150-view-generated-files.md) aby je zobaczyć.

Poniższy (krótki) klip wideo podsumowuje kompilację powyższego przykładu i pokazuje, jak uzyskać dostęp do listy plików wygenerowanych przez TikZ:

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

## Kilka uwag

Eksternalizacja grafik TikZ może być obciążająca obliczeniowo dla bazowego silnika TeX (pdfTeX, XeTeX, LuaTeX itp.), więc `external` biblioteka udostępnia opcję „optymalizacji” tego procesu. Jeśli włączysz optymalizację, TikZ spróbuje zmniejszyć swój nakład pracy, „ignorując” niektóre złożone (kosztowne), choć nieistotne (dla TikZ) polecenia — redefiniując je (w locie). Ponadto niektóre polecenia z innych pakietów mogą powodować błędy w trybie eksternalizacji; na przykład, `\includepdf` z `pakietu pdfpages` Aby obejść ten problem, będziesz musiał „wyłączyć” takie polecenia:

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

## Zbyt wiele złożonych grafik do eksternalizacji!

Jeśli twoje grafiki są złożone i/lub liczne, najprawdopodobniej napotkasz w Overleaf [limit czasu kompilacji](/latex/pl/baza-wiedzy/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) podczas początkowej kompilacji — w trakcie generowania eksternalizowanych plików. Ta sekcja wymieni kilka możliwych obejść, aby uniknąć przekroczenia limitu czasu kompilacji.

### Budowanie przyrostowe

Budowanie projektu przyrostowo poprzez [zakomentowywanie](https://ctan.org/pkg/comment?lang=en) różnych fragmentów projektu może pomóc, ale pamiętaj, że wszystkie wygenerowane pliki są usuwane w ramach garbage collection w stałych odstępach na serwerach. Twój projekt może wtedy nie skompilować się przy następnym logowaniu, i trzeba by było wygenerować je wszystkie ponownie, przyrostowo.

### Generowanie rysunków lokalnie

* **Uwaga**: Ta sekcja zakłada, że twój projekt używa `\tikzexternalize[prefix=tikz/]` do buforowania wygenerowanych grafik w folderze o nazwie `tikz`.

Jako obejście, [pobierz swój projekt Overleaf](/latex/pl/baza-wiedzy/036-exporting-your-work-from-overleaf.md) i skompiluj go lokalnie, aby eksternalizować (wygenerować) pliki graficzne. Po zakończeniu kompilacji `tikz` folder powinien zawierać kilka typów plików dla każdej wygenerowanej grafiki, w tym `*somegraphic*.pdf`, `*somegraphic*.md5` i `*somegraphic*.dpth`. Jeśli prześlesz te pliki do folderu projektu Overleaf `tikz` — będą używane podczas kompilacji, która powinna teraz przebiegać całkiem szybko. Ponieważ te pliki są przesłane, a nie wygenerowane, nie zostaną usunięte przez serwer: przesłane pliki nigdy nie są usuwane w ramach garbage collection.

* **Uwaga (nazwy plików graficznych)**: Overleaf ustawia `\jobname` na `wynik`, co wpływa na nazwę nadawaną eksternalizowanym (wygenerowanym) grafikom TikZ: domyślnie wygenerowane pliki graficzne są nazywane `output-figureN.EXT` gdzie
  * `N` jest liczbą całkowitą wyprowadzoną z kolejności, w jakiej pojawiają się grafiki (`N`=0, 1, 2, ...);
  * `EXT` jest jednym z rozszerzeń plików używanych przez TikZ, w tym `pdf`, `md5` i `dpth` (także `log`).
* **Zastrzeżenie**: Jeśli po przesłaniu plików graficznych później wprowadzisz zmiany w kodzie TikZ w swoim projekcie, może być konieczne usunięcie odpowiednich plików graficznych w `tikz` folderze, aby Overleaf mógł wygenerować i użyć nowej wersji. Alternatywnie możesz ponownie wygenerować pliki na swoim lokalnym komputerze i przesłać je ponownie do Overleaf. Pamiętaj, że musisz zastąpić wszystkie `.pdf`, `.md5` i `.dpth` pliki dla tego konkretnego rysunku TikZ.

### Generowanie rysunków w osobnym projekcie

Inną opcją jest utworzenie osobnego projektu zawierającego wyłącznie grafiki, który będzie zawierał tylko rysunki TikZ. Gdy te rysunki będą gotowe, możesz przesłać plik PDF z tego osobnego projektu do głównego projektu w następujący sposób:

* kliknij ikonę Prześlij pliki (![Overleaf file upload icon](/files/46aa4df1b6fcf4429fab733ec6d2d1cfa997ec16)) nad panelem listy plików;
* wybierz **Z innego projektu**;
* z listy rozwijanej wybierz projekt zawierający rysunki TikZ;
* wybierz **z plików wyjściowych**;
* wybierz **output.pdf** i (opcjonalnie) nadaj nazwę przesłanemu plikowi.

Po przesłaniu możesz uzyskać dostęp do poszczególnych rysunków, wybierając odpowiednią stronę przesłanego pliku PDF; na przykład za pomocą polecenia takiego jak:

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

Ta [film na końcu tego artykułu](#videodemo) pokazuje przesyłanie pliku PDF z osobnego projektu.

#### Jak utworzyć osobny projekt graficzny

Użyj `standalone` lub `preview` pakietu do utworzenia osobnego projektu zawierającego rysunki TikZ — pliki PDF wyjściowe będą zawierały ściśle przycięte strony dopasowane do rozmiaru grafik.

**Przykład: pakiet standalone**

Oto przykładowy kod wykorzystujący `standalone` pakiet:

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

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

[Otwórz ten przykład w 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)

Ten przykład generuje następujący wynik:

![Przykład pakietu LaTeX standalone](/files/b8a824abb1cd8d78d7c5e40a9f2257bdd49bae61)

**Przykład: pakiet preview**

Oto przykładowy kod wykorzystujący `preview` pakiet:

```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}
```

[Otwórz ten przykład w 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)

Ten przykład generuje następujący wynik:

![Przykład pakietu LaTeX preview](/files/91ea0b17473f27561f36481647a327656cef4181)

### Pokaz wideo: przesyłanie plików z innego projektu Overleaf

Poniższy film pokazuje, jak przesłać plik PDF (z innego projektu Overleaf) zawierający wyłącznie grafiki — tutaj używamy `standalone` pakietu do utworzenia pliku PDF zawierającego ilustracje oparte 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/pl/pytania-i-odpowiedzi/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.
