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

# Ho molte figure tikz, matlab2tikz o pgfplots, quindi ottengo un timeout di compilazione. Posso e

## Come esternalizzare le grafiche TikZ

Usa la libreria TikZ [chiamata `external`](https://tikz.dev/library-external) per creare e memorizzare (in cache) i disegni TikZ come file PDF—un processo spesso chiamato “*esternalizzazione*”.

Carica la libreria tramite `\usetikzlibrary{external}`, quindi attiva l’esternalizzazione usando il comando `\tikzexternalize`:

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

dove `<options>` è un elenco opzionale di parametri (coppie chiave–valore) usato per configurare la `external` libreria.

* **NOTA**: Per far funzionare l’esternalizzazione TikZ su Overleaf, il `\tikzexternalize` comando ***deve*** essere inserito nel file principale del progetto `.tex` .

Vediamo un esempio di base che usa una grafica tratta dalla [documentazione TikZ](https://tikz.dev/library-external):

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

\begin{document}
% Questa figura TikZ verrà scritta
% in un file chiamato 'output-figure0.pdf'
% all’interno della cartella 'tikz'
\begin{tikzpicture}

  \node {radice}
    child {node {sinistra}}
    child {node {destra}
      child {node {figlio}}
      child {node {figlio}}
    };

\end{tikzpicture}

\end{document}
```

Per esplorare questo esempio, puoi [aprirlo su 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=)

Il codice nel nostro esempio usa l’opzione `prefix=tikz/` con `\tikzexternalize`:

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

L’opzione `prefix=tikz/` fornisce il nome di una cartella (qui, `tikz`) da usare per la cache delle figure generate (esternalizzate)—dovrai creare manualmente quella cartella nel tuo progetto. Tuttavia, prima che LaTeX (il codice TikZ) possa scrivere in quella cartella, questa deve contenere un file—qualsiasi file (fittizio) andrà bene; per esempio, puoi aggiungere un file di testo vuoto `foo.txt` nella `tikz` cartella.

Overleaf considera le grafiche PDF TikZ esternalizzate come file di output generati, quindi non appariranno nell’elenco visibile dei file del progetto—sono presenti nel progetto, solo nascosti alla vista—puoi visualizzare l’elenco dei [file generati](/latex/it/base-di-conoscenza/150-view-generated-files.md) per vederli.

Il seguente breve videoclip riassume la compilazione dell’esempio sopra e mostra come accedere all’elenco dei file generati da TikZ:

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

## Alcune note

Esternalizzare le grafiche TikZ può essere computazionalmente impegnativo per il motore TeX sottostante (pdfTeX, XeTeX, LuaTeX ecc.), quindi la `external` libreria offre un’opzione per “ottimizzare” il processo. Se abiliti l’ottimizzazione, TikZ cercherà di ridurre il proprio carico di lavoro “ignorando” alcuni comandi complessi (costosi), sebbene non essenziali (per TikZ), ridefinendoli (al volo). Inoltre, alcuni comandi di altri pacchetti possono causare errori in modalità di esternalizzazione; per esempio, `\includepdf` dal `pdfpages` pacchetto. Per aggirare il problema, dovrai “ottimizzare via” tali comandi:

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

## Troppe grafiche complesse da esternalizzare!

Se le tue grafiche sono complesse e/o numerose, probabilmente incontrerai un [timeout di compilazione](/latex/it/base-di-conoscenza/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) di Overleaf durante la compilazione iniziale—as vengono generate le file esternalizzate. Questa sezione elencherà alcuni possibili rimedi per evitare i timeout di compilazione.

### Compilazione incrementale

Compilare il progetto in modo incrementale [commentando](https://ctan.org/pkg/comment?lang=en) blocchi diversi del progetto può aiutare, ma ricorda che tutti i file generati vengono eliminati tramite garbage collection a intervalli fissi sui server. Il progetto potrebbe quindi non compilarsi alla prossima volta che effettuerai l’accesso, e dovresti rigenerarli tutti di nuovo in modo incrementale.

### Generare i disegni in locale

* **Nota**: Questa sezione presume che il tuo progetto usi `\tikzexternalize[prefix=tikz/]` per memorizzare nella cache le grafiche generate in una cartella chiamata `tikz`.

Come soluzione temporanea, [scarica il tuo progetto Overleaf](/latex/it/base-di-conoscenza/036-exporting-your-work-from-overleaf.md) e compilalo su una macchina locale per esternalizzare (generare) i file grafici. Una volta terminata la compilazione, la `tikz` cartella dovrebbe contenere diversi tipi di file per ogni grafica generata, inclusi `*somegraphic*.pdf`, `*somegraphic*.md5` e `*somegraphic*.dpth`. Se carichi quei file nella `tikz` cartella del tuo progetto Overleaf, verranno usati durante la compilazione—che ora dovrebbe essere piuttosto veloce. Poiché quei file vengono caricati e non generati, non verranno eliminati dal server: i file caricati non sono mai soggetti a garbage collection.

* **Nota (nomi dei file grafici)**: Overleaf imposta `\jobname` a `risultato`, il che influisce sul nome assegnato alle grafiche TikZ esternalizzate (generate): per impostazione predefinita, i file grafici generati sono denominati `output-figureN.EXT` dove
  * `N` è un intero derivato dalla sequenza/ordine in cui compaiono le grafiche (`N`=0, 1, 2, ...);
  * `EXT` è una delle estensioni di file usate da TikZ, incluse `pdf`, `md5` e `dpth` (anche `log`).
* **Una precisazione**: Se, dopo aver caricato i file grafici, apporti successivamente modifiche al codice TikZ nel tuo progetto, potrebbe essere necessario eliminare i corrispondenti file grafici nella `tikz` cartella in modo che Overleaf possa generare e usare una nuova versione. In alternativa, puoi rigenerare i file sulla tua macchina locale e ricaricarli su Overleaf. Ricorda che devi sostituire tutti i `.pdf`, `.md5` e `.dpth` file per quel particolare disegno TikZ.

### Generare i disegni in un progetto separato

Un’altra opzione è creare un progetto separato dedicato solo alla grafica, che contenga soltanto la/le figura/e TikZ. Una volta completate quelle figure, puoi caricare il PDF da quel progetto separato nel tuo progetto principale come segue:

* fai clic sull’icona Carica file (![Overleaf file upload icon](/files/25d4ebb2ee8d954b79fe7a30c1a13728d7437a5b)) sopra il pannello dell’elenco dei file;
* seleziona **Da un altro progetto**;
* dal menu a discesa, seleziona il progetto contenente i disegni TikZ;
* seleziona **dai file di output**;
* scegli **output.pdf** e (facoltativamente) assegna un nome al file caricato.

Una volta caricato, puoi accedere alle singole figure selezionando la pagina appropriata del PDF caricato; per esempio, tramite un comando come:

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

La [il video alla fine di questo articolo](#videodemo) mostra il caricamento di un PDF da un progetto separato.

#### Come creare un progetto grafico separato

Usa la `standalone` o `preview` per creare un progetto separato contenente i disegni TikZ—i PDF di output conterranno pagine ritagliate in modo preciso e corrispondenti alle dimensioni delle grafiche.

**Esempio: pacchetto standalone**

Ecco del codice di esempio che usa il `standalone` pacchetto:

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

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

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![Esempio del pacchetto LaTeX standalone](/files/67e46a9296bc2a3882dabea23bd66f426e45c113)

**Esempio: pacchetto preview**

Ecco del codice di esempio che usa il `preview` pacchetto:

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

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

[Apri questo esempio in 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)

Questo esempio produce il seguente output:

![Esempio del pacchetto LaTeX preview](/files/78e0263476901cc6e2d9e6c0d741fc9cfb8b7f1c)

### Video dimostrativo: caricamento di file da un altro progetto Overleaf

Il seguente video mostra come caricare un file PDF (da un altro progetto Overleaf) che contiene solo grafiche—qui usiamo il `standalone` pacchetto per creare il PDF contenente illustrazioni basate su 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/it/domande-e-risposte/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.
