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

# Jag har många tikz-, matlab2tikz- eller pgfplots-figurer, så jag får en timeout vid kompileringen. Kan jag e

## Hur man externaliserar TikZ-grafik

Använd TikZ [biblioteket som heter `external`](https://tikz.dev/library-external) för att skapa och lagra (cacha) TikZ-ritningar som PDF-filer — en process som ofta kallas ”*externalisering*”.

Ladda biblioteket via `\usetikzlibrary{external}`, aktivera sedan externalisering med kommandot `\tikzexternalize`:

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

där `<options>` är en valfri lista med parametrar (nyckel-värde-par) som används för att konfigurera `external` biblioteket.

* **OBS**: För att TikZ-externalisering ska fungera på Overleaf måste `\tikzexternalize` kommandot ***måste*** anges i projektets huvudsakliga `.tex` -filen.

Låt oss titta på ett grundläggande exempel som använder en grafik hämtad från [TikZ-dokumentationen](https://tikz.dev/library-external):

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

\begin{document}
% Denna TikZ-figur kommer att skrivas till
% en fil som heter 'output-figure0.pdf'
% i mappen 'tikz'
\begin{tikzpicture}

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

\end{tikzpicture}

\end{document}
```

För att utforska detta exempel kan du [öppna det på 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=)

Koden i vårt exempel använder alternativet `prefix=tikz/` med `\tikzexternalize`:

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

Alternativet `prefix=tikz/` anger namnet på en mapp (här, `tikz`) som ska användas för att cacha genererade (externaliserade) figurer — du måste skapa den mappen manuellt i ditt projekt. Innan LaTeX (TikZ-kod) kan skriva till den mappen måste den dock innehålla en fil — vilken (dummy) fil som helst räcker; till exempel kan du lägga till en tom textfil `foo.txt` i `tikz` mappen.

Overleaf behandlar de externaliserade TikZ-PDF-grafikerna som genererade utdatafiler, så de kommer inte att visas i projektets synliga fillista — de finns i projektet, men är bara dolda för insyn — du kan visa listan över [genererade filer](/latex/sv/kunskapsbas/150-view-generated-files.md) för att se dem.

Följande (korta) videoklipp sammanfattar kompileringen av exemplet ovan och visar hur man kommer åt listan över filer som genererats av TikZ:

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

## Några anmärkningar

Att externalisera TikZ-grafik kan vara beräkningsmässigt krävande för den underliggande TeX-motorn (pdfTeX, XeTeX, LuaTeX osv.), så `external` biblioteket tillhandahåller ett alternativ för att ”optimera” processen. Om du aktiverar optimering kommer TikZ att försöka minska sin arbetsbörda genom att ”ignorera” vissa komplexa (kostsamma), men icke nödvändiga (för TikZ), kommandon — genom att omdefiniera dem (i farten). Dessutom kan vissa kommandon från andra paket orsaka fel i externaliseringsläge; till exempel `\includepdf` från `pdfpages` paketet. För att kringgå det behöver du ”optimera bort” sådana kommandon:

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

## För många komplexa grafikobjekt att externalisera!

Om dina grafikobjekt är komplexa och/eller många kommer du sannolikt att stöta på en Overleaf- [kompilerings-timeout](/latex/sv/kunskapsbas/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) under den första kompileringen — när de externaliserade filerna genereras. Detta avsnitt listar några möjliga lösningar för att undvika kompilerings-timeouts.

### Bygga stegvis

Att bygga ditt projekt stegvis genom att [kommentera bort](https://ctan.org/pkg/comment?lang=en) olika delar av ditt projekt kan hjälpa, men kom ihåg att alla genererade filer rensas som skräp med fasta intervall på servrarna. Då kan ditt projekt misslyckas med att kompileras nästa gång du loggar in, och du skulle behöva generera om dem alla stegvis igen.

### Generera ritningarna lokalt

* **Obs**: Detta avsnitt förutsätter att ditt projekt använder `\tikzexternalize[prefix=tikz/]` för att cacha genererad grafik i en mapp som heter `tikz`.

Som en lösning, [ladda ner ditt Overleaf-projekt](/latex/sv/kunskapsbas/036-exporting-your-work-from-overleaf.md) och kompilera det på en lokal dator för att externalisera (generera) grafikfilerna. När kompileringen är klar bör `tikz` mappen innehålla flera filtyper för varje genererad grafik, inklusive `*somegraphic*.pdf`, `*somegraphic*.md5` och `*somegraphic*.dpth`. Om du laddar upp dessa filer till ditt Overleaf-projekts `tikz` mapp kommer de att användas under kompileringen — vilket nu bör gå ganska snabbt. Eftersom dessa filer laddas upp och inte genereras kommer de inte att raderas av servern: uppladdade filer rensas aldrig som skräp.

* **Anmärkning (filnamn för grafik)**: Overleaf ställer in `\jobname` till `utdata`, vilket påverkar namnet som ges till externaliserade (genererade) TikZ-grafiker: som standard namnges de genererade grafikfilerna `output-figureN.EXT` där
  * `N` är ett heltal som härleds från ordningen i vilken grafikerna visas (`N`=0, 1, 2, ...);
  * `EXT` är en av filändelserna som används av TikZ, inklusive `pdf`, `md5` och `dpth` (även `log`).
* **En reservation**: Om du efter att ha laddat upp grafikfilerna därefter gör ändringar i TikZ-koden i ditt projekt kan det vara nödvändigt att ta bort motsvarande grafikfiler i `tikz` mappen så att Overleaf kan generera och använda en ny version. Alternativt kan du generera filerna på nytt på din lokala dator och ladda upp dem igen till Overleaf. Kom ihåg att du behöver ersätta alla `.pdf`, `.md5` och `.dpth` filer för just den TikZ-ritningen.

### Generera ritningarna i ett separat projekt

Ett annat alternativ är att skapa ett separat projekt endast för grafik som bara innehåller TikZ-figuren/figurerna. När dessa figurer är färdiga kan du ladda upp PDF:en från det separata projektet till ditt huvudprojekt enligt följande:

* klicka på ikonen Ladda upp filer (![Overleaf file upload icon](/files/34e99af864cab18798267917225b8883c6ebc8f5)) ovanför panelen med fillistan;
* välj **Från ett annat projekt**;
* i rullgardinslistan, välj projektet som innehåller TikZ-ritningarna;
* välj **från utdatafiler**;
* välj **output.pdf** och döp eventuellt upp den uppladdade filen.

När den har laddats upp kan du komma åt enskilda figurer genom att välja rätt sida i den uppladdade PDF:en; till exempel via ett kommando som:

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

Den [videon i slutet av denna artikel](#videodemo) visar uppladdning av en PDF från ett separat projekt.

#### Så här skapar du ett separat grafikprojekt

Använd `standalone` eller `förhandsgransknings-` paketet för att skapa ett separat projekt som innehåller TikZ-ritningarna — utdata-PDF:erna kommer att innehålla tätt beskurna sidor som matchar grafikens storlek.

**Exempel: standalone-paketet**

Här är lite exempelkod som använder `standalone` paketet:

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

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

[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Exempel på LaTeX-paketet standalone](/files/51b1a22a715c2387626efa7b0670fcf8daf02ac6)

**Exempel: preview-paketet**

Här är lite exempelkod som använder `förhandsgransknings-` paketet:

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

[Öppna detta exempel i 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)

Det här exemplet ger följande utdata:

![Exempel på LaTeX-paketet preview](/files/42b4ce2cdef3cfbbb1c47b35cccc78a620de4080)

### Videodemonstration: ladda upp filer från ett annat Overleaf-projekt

Följande video visar hur man laddar upp en PDF-fil (från ett annat Overleaf-projekt) som endast innehåller grafik — här använder vi `standalone` paketet för att skapa PDF:en som innehåller illustrationer baserade på 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/sv/fragor-och-svar/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.
