> 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/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 TikZ [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 indiquée dans le document principal du projet `.tex` fichier.

Examinons un exemple de base qui utilise un graphique reproduit depuis 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 appelé « 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, il doit contenir un fichier — n’importe quel fichier (fictif) suffit ; 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, simplement cachés à la vue — 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 extrait 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 des graphiques TikZ peut être exigeante en calcul pour le moteur TeX sous-jacent (pdfTeX, XeTeX, LuaTeX, etc.), donc la `external` bibliothèque fournit 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), mais non essentielles (pour TikZ), en les redéfinissant à la volée. En outre, certaines commandes d'autres packages peuvent provoquer des erreurs en mode d'externalisation ; par exemple, `\includepdf` de `pdfpages` package. Pour contourner cela, vous devrez « éliminer par optimisation » 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 Overleaf [dépassement de délai de compilation](/latex/fr/base-de-connaissances/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) lors de la compilation initiale — pendant la génération des fichiers externalisés. Cette section présentera quelques solutions de contournement possibles pour éviter les dépassements de délai de compilation.

### Construction incrémentale

Construire votre projet progressivement en [commentant](https://ctan.org/pkg/comment?lang=en) différentes parties de votre projet peut aider, mais rappelez-vous 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 à nouveau progressivement.

### Générer les dessins localement

* **Remarque**: 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 maintenant ê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 de fichiers graphiques)**: Overleaf définit `\jobname` à `sortie`, ce qui affecte 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 fichier utilisées par TikZ, notamment `pdf`, `md5` et `dpth` (également `log`).
* **Un avertissement**: Si, après avoir téléversé les fichiers graphiques, vous modifiez ensuite le code TikZ de votre projet, il peut être nécessaire de supprimer les fichiers graphiques correspondants dans le `tikz` dossier afin qu'Overleaf puisse générer et utiliser une nouvelle version. Sinon, vous pouvez régénérer les `.pdf`, `.md5` et `.dpth` fichiers de 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, contenant seulement la ou les figures 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 **Depuis un autre projet**;
* dans la liste déroulante, sélectionnez le projet contenant les dessins TikZ ;
* sélectionnez **dans les fichiers de sortie**;
* choisissez **output.pdf** et, éventuellement, 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}
```

Le [la vidéo à la fin de cet article](#videodemo) montre comment téléverser un PDF depuis un projet séparé.

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

Utilisez la `standalone` ou `preview` package 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 : package 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}
```

&#x20;[Ouvrez cet exemple dans 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 le résultat suivant :

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

**Exemple : package 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}
```

&#x20;[Ouvrez cet exemple dans 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 le résultat suivant :

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

### Démonstration vidéo : téléversement de fichiers depuis un autre projet Overleaf

La vidéo suivante montre comment téléverser un fichier PDF (depuis un autre projet Overleaf) contenant uniquement des graphiques — ici, nous utilisons le `standalone` package 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://overleaf-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.
