> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/latex/fr/questions-et-reponses/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md).

# J'ai beaucoup de figures tikz, matlab2tikz ou pgfplots, donc j'obtiens un délai d'attente de compilation. Puis-je e

## Comment externaliser des graphiques TikZ

Utilisez la [bibliothèque appelée `external`](https://tikz.dev/library-external) pour créer et stocker (mettre en cache) des dessins TikZ sous forme de fichiers PDF — un processus souvent appelé «*externalisation* ».

Chargez la bibliothèque via `\usetikzlibrary{external}`, puis activez l’externalisation à l’aide de la commande `\tikzexternalize`:

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

où `<options>` est une liste facultative de paramètres (paires clé-valeur) utilisée pour configurer la `external` bibliothèque.

* **REMARQUE**: Pour que l’externalisation TikZ fonctionne sur Overleaf, la `\tikzexternalize` commande ***doit*** être placée dans le principal fichier `.tex` .

Voyons un exemple de base qui utilise un graphique reproduit à partir de la [documentation TikZ](https://tikz.dev/library-external):

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

\begin{document}
% Cette figure TikZ sera écrite dans
% un fichier nommé 'output-figure0.pdf'
% dans le dossier 'tikz'
\begin{tikzpicture}

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

\end{tikzpicture}

\end{document}
```

Pour explorer cet exemple, vous pouvez [l’ouvrir sur 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=)

Le code de notre exemple utilise l’option `prefix=tikz/` avec `\tikzexternalize`:

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

L’option `prefix=tikz/` fournit le nom d’un dossier (ici, `tikz`) à utiliser pour mettre en cache les figures générées (externalisées) — vous devrez créer ce dossier manuellement dans votre projet. Cependant, avant que LaTeX (le code TikZ) puisse écrire dans ce dossier, celui-ci doit contenir un fichier — n’importe quel fichier (factice) fera l’affaire ; par exemple, vous pouvez ajouter un fichier texte vide `foo.txt` dans le `tikz` dossier.

Overleaf traite les graphiques PDF TikZ externalisés comme des fichiers de sortie générés, ils n’apparaîtront donc pas dans la liste visible des fichiers du projet — ils sont bien présents dans le projet, mais simplement cachés — vous pouvez consulter la liste des [fichiers générés](/latex/fr/base-de-connaissances/150-view-generated-files.md) pour les voir.

Le court clip vidéo suivant résume la compilation de l’exemple ci-dessus et montre comment accéder à la liste des fichiers générés par TikZ :

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

## Quelques remarques

L’externalisation de graphiques TikZ peut être exigeante en calcul pour le moteur TeX sous-jacent (pdfTeX, XeTeX, LuaTeX, etc.), donc la `external` bibliothèque propose une option pour « optimiser » le processus. Si vous activez l’optimisation, TikZ essaiera de réduire sa charge de travail en « ignorant » certaines commandes complexes (coûteuses), bien que non essentielles (pour TikZ), en les redéfinissant (à la volée). De plus, certaines commandes d’autres paquets peuvent provoquer des erreurs en mode d’externalisation ; par exemple, `\includepdf` du `pdfpages` package. Pour contourner cela, vous devrez « optimiser » ces commandes :

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

## Trop de graphiques complexes à externaliser !

Si vos graphiques sont complexes et/ou nombreux, vous rencontrerez probablement un [délai de compilation expiré](/latex/fr/base-de-connaissances/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) Overleaf lors de la compilation initiale — au fur et à mesure que les fichiers externalisés sont générés. Cette section présentera plusieurs solutions possibles pour éviter les dépassements de délai de compilation.

### Construction incrémentale

Construire votre projet de manière incrémentale en [commentant](https://ctan.org/pkg/comment?lang=en) différentes parties de votre projet peut aider, mais n’oubliez pas que tous les fichiers générés sont nettoyés à intervalles fixes sur les serveurs. Votre projet peut alors ne plus se compiler lors de votre prochaine connexion, et vous devrez tous les régénérer de façon incrémentale à nouveau.

### Générer les dessins localement

* **Note**: Cette section suppose que votre projet utilise `\tikzexternalize[prefix=tikz/]` pour mettre en cache des graphiques générés dans un dossier appelé `tikz`.

Comme solution de contournement, [téléchargez votre projet Overleaf](/latex/fr/base-de-connaissances/036-exporting-your-work-from-overleaf.md) et compilez-le sur une machine locale pour externaliser (générer) les fichiers graphiques. Une fois la compilation terminée, le `tikz` dossier devrait contenir plusieurs types de fichiers pour chaque graphique généré, notamment `*somegraphic*.pdf`, `*somegraphic*.md5` et `*somegraphic*.dpth`. Si vous téléversez ces fichiers dans le `tikz` dossier de votre projet Overleaf, ils seront utilisés pendant la compilation — qui devrait désormais être assez rapide. Comme ces fichiers sont téléversés et non générés, ils ne seront pas supprimés par le serveur : les fichiers téléversés ne sont jamais nettoyés.

* **Remarque (noms des fichiers graphiques)**: Overleaf définit `\jobname` sur `output`, ce qui influence le nom donné aux graphiques TikZ externalisés (générés) : par défaut, les fichiers graphiques générés sont nommés `output-figureN.EXT` où
  * `N` est un entier dérivé de la séquence/de l’ordre dans lequel les graphiques apparaissent (`N`=0, 1, 2, ...);
  * `EXT` est l’une des extensions de fichiers utilisées par TikZ, notamment `pdf`, `md5` et `dpth` (ainsi que `log`).
* **Un avertissement**: Si, après avoir téléversé les fichiers graphiques, vous apportez ensuite des modifications au code TikZ dans votre projet, il peut être nécessaire de supprimer les fichiers graphiques correspondants dans le dossier `tikz` afin qu’Overleaf puisse générer et utiliser une nouvelle version. Sinon, vous pouvez régénérer les fichiers sur votre machine locale et les re-téléverser sur Overleaf. N’oubliez pas que vous devez remplacer tous les fichiers `.pdf`, `.md5` et `.dpth` pour ce dessin TikZ particulier.

### Générer les dessins dans un projet séparé

Une autre option consiste à créer un projet séparé dédié uniquement aux graphiques, qui ne contient que la/les figure(s) TikZ. Une fois ces figures terminées, vous pouvez téléverser le PDF de ce projet séparé dans votre projet principal comme suit :

* cliquez sur l’icône de téléversement de fichiers (![Overleaf file upload icon](/files/c287877f42a4b31ac45df641d9625872535ed485)) au-dessus du panneau de liste des fichiers ;
* sélectionnez **From another project**;
* dans la liste déroulante, sélectionnez le projet contenant les dessins TikZ ;
* sélectionnez **from output files**;
* choisissez **output.pdf** et (facultativement) nommez le fichier téléversé.

Une fois téléversé, vous pouvez accéder à des figures individuelles en sélectionnant la page appropriée du PDF téléversé ; par exemple, via une commande telle que :

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

La [vidéo à la fin de cet article](#videodemo) montre le téléversement d’un PDF à partir d’un projet séparé.

#### Comment créer un projet graphique séparé

Utilisez le `standalone` ou `preview` paquet pour créer un projet séparé contenant les dessins TikZ — les PDF de sortie contiendront des pages recadrées au plus juste, correspondant à la taille des graphiques.

**Exemple : paquet standalone**

Voici un exemple de code utilisant le `standalone` package :

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

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

[Ouvrir cet exemple sur 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)

Cet exemple produit la sortie suivante :

![Exemple du paquet LaTeX standalone](/files/e630373177687bb6d0b8bf62515f48f771bcc345)

**Exemple : paquet preview**

Voici un exemple de code utilisant le `preview` package :

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

[Ouvrir cet exemple sur 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)

Cet exemple produit la sortie suivante :

![Exemple du paquet LaTeX preview](/files/ee9cd837193cd5ed5488a53f37f423cd5928fc64)

### Démo vidéo : téléverser des fichiers depuis un autre projet Overleaf

La vidéo suivante montre comment téléverser un fichier PDF (provenant d’un autre projet Overleaf) qui ne contient que des graphiques — ici, nous utilisons le `standalone` paquet pour créer le PDF contenant des illustrations basées sur 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://ayakaleaf-pro.ayaka.space/latex/fr/questions-et-reponses/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.
