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

# Tengo muchas figuras tikz, matlab2tikz o pgfplots, así que obtengo un tiempo de espera de compilación. ¿Puedo e

## Cómo externalizar gráficos TikZ

Use la biblioteca TikZ [llamada `external`](https://tikz.dev/library-external) para crear y almacenar (caché) dibujos TikZ como archivos PDF; un proceso al que a menudo se denomina «*externalización*».

Cargue la biblioteca mediante `\usetikzlibrary{external}`, luego active la externalización usando el comando `\tikzexternalize`:

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

donde `<options>` es una lista opcional de parámetros (pares clave–valor) utilizada para configurar la `external` biblioteca.

* **NOTA**: Para que la externalización de TikZ funcione en Overleaf, el `\tikzexternalize` comando ***debe*** indicarse en el archivo principal del proyecto `.tex` archivo.

Veamos un ejemplo básico que utiliza un gráfico reproducido de la [documentación de TikZ](https://tikz.dev/library-external):

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

\begin{document}
% Esta figura TikZ se escribirá en
% un archivo llamado 'output-figure0.pdf'
% dentro de la carpeta 'tikz'
\begin{tikzpicture}

  \node {root}
    child {node {izquierda}}
    child {node {derecha}
      child {node {hijo}}
      child {node {hijo}}
    };

\end{tikzpicture}

\end{document}
```

Para explorar este ejemplo, puede [abrirlo en 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=)

El código de nuestro ejemplo utiliza la opción `prefix=tikz/` con `\tikzexternalize`:

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

La opción `prefix=tikz/` proporciona el nombre de una carpeta (aquí, `tikz`) que se utilizará para almacenar en caché las figuras generadas (externalizadas)—deberá crear esa carpeta manualmente en su proyecto. Sin embargo, antes de que LaTeX (el código TikZ) pueda escribir en esa carpeta, esta necesita contener un archivo—cualquier archivo (simulado) bastará; por ejemplo, puede añadir un archivo de texto vacío `foo.txt` en la `tikz` carpeta.

Overleaf trata los gráficos PDF de TikZ externalizados como archivos de salida generados, por lo que no aparecerán en la lista visible de archivos del proyecto: están presentes dentro del proyecto, solo que ocultos de la vista; puede ver la lista de [archivos generados](/latex/es/base-de-conocimientos/150-view-generated-files.md) para verlos.

El siguiente videoclip breve resume la compilación del ejemplo anterior y muestra cómo acceder a la lista de archivos generados por TikZ:

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

## Algunas notas

Externalizar gráficos TikZ puede exigir mucho cálculo al motor TeX subyacente (pdfTeX, XeTeX, LuaTeX, etc.), por lo que la `external` biblioteca ofrece una opción para “optimizar” el proceso. Si activa la optimización, TikZ intentará reducir su carga “ignorando” algunos comandos complejos (costosos), aunque no esenciales (para TikZ), redefiniéndolos (sobre la marcha). Además, algunos comandos de otros paquetes pueden provocar errores en el modo de externalización; por ejemplo, `\includepdf` del `paquete pdfpages` . Para evitarlo, deberá “optimizar” esos comandos:

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

## ¡Demasiados gráficos complejos para externalizar!

Si sus gráficos son complejos y/o numerosos, es probable que se encuentre con un [tiempo de espera de compilación](/latex/es/base-de-conocimientos/038-fixing-and-preventing-compile-timeouts.md#compiletimeout) de Overleaf durante la compilación inicial, mientras se generan los archivos externalizados. Esta sección enumerará algunas soluciones posibles para evitar los tiempos de espera de compilación.

### Compilación incremental

Compilar su proyecto de forma incremental [comentando](https://ctan.org/pkg/comment?lang=en) distintos fragmentos de su proyecto puede ayudar, pero recuerde que todos los archivos generados se eliminan automáticamente a intervalos fijos en los servidores. Entonces su proyecto podría no compilar la próxima vez que inicie sesión, y tendría que regenerarlos todos de forma incremental otra vez.

### Generar los dibujos localmente

* **Nota**: Esta sección supone que su proyecto usa `\tikzexternalize[prefix=tikz/]` para almacenar en caché los gráficos generados en una carpeta llamada `tikz`.

Como solución provisional, [descargue su proyecto de Overleaf](/latex/es/base-de-conocimientos/036-exporting-your-work-from-overleaf.md) y compílelo en una máquina local para externalizar (generar) los archivos gráficos. Una vez finalizada la compilación, la `tikz` carpeta debería contener varios tipos de archivos para cada gráfico generado, incluidos `*somegraphic*.pdf`, `*somegraphic*.md5` y `*somegraphic*.dpth`. Si sube esos archivos a la `tikz` carpeta de su proyecto en Overleaf, se utilizarán durante la compilación, que ahora debería ser bastante rápida. Como esos archivos se suben y no se generan, el servidor no los eliminará: los archivos subidos nunca se eliminan automáticamente.

* **Nota (nombres de archivos gráficos)**: Overleaf establece `\\jobname` a `salida`, lo que afecta al nombre dado a los gráficos TikZ externalizados (generados): por defecto, los archivos gráficos generados se llaman `output-figureN.EXT` donde
  * `N` es un entero derivado de la secuencia/orden en que aparecen los gráficos (`N`=0, 1, 2, ...);
  * `EXT` es una de las extensiones de archivo utilizadas por TikZ, entre ellas `pdf`, `md5` y `dpth` (también `log`).
* **Una salvedad**: Si, después de subir los archivos gráficos, posteriormente realiza cambios en el código TikZ de su proyecto, puede ser necesario eliminar los archivos gráficos correspondientes en la `tikz` carpeta para que Overleaf pueda generar y usar una nueva versión. Como alternativa, puede regenerar los archivos en su máquina local y volver a subirlos a Overleaf. Recuerde que debe reemplazar todos los archivos `.pdf`, `.md5` y `.dpth` de ese dibujo TikZ concreto.

### Generar los dibujos en un proyecto separado

Otra opción es crear un proyecto separado solo para gráficos que contenga únicamente las figuras TikZ. Una vez terminadas esas figuras, puede subir el PDF de ese proyecto separado a su proyecto principal de la siguiente manera:

* haga clic en el icono de subir archivos (![Overleaf file upload icon](/files/32b47dae8c96a6e7248c16c378c92099e01c3ffd)) encima del panel de la lista de archivos;
* seleccione **De otro proyecto**;
* en la lista desplegable, seleccione el proyecto que contiene los dibujos TikZ;
* seleccione **de los archivos de salida**;
* elija **output.pdf** y, opcionalmente, asigne un nombre al archivo subido.

Una vez subido, puede acceder a figuras individuales seleccionando la página adecuada del PDF subido; por ejemplo, mediante un comando como:

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

El [el video al final de este artículo](#videodemo) muestra cómo subir un PDF desde un proyecto separado.

#### Cómo crear un proyecto gráfico separado

Use el `standalone` o `preview` para crear un proyecto separado que contenga los dibujos TikZ: los PDF de salida contendrán páginas recortadas ajustadamente al tamaño de los gráficos.

**Ejemplo: paquete standalone**

Aquí hay un código de ejemplo que utiliza el `standalone` paquete:

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

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

[Abre este ejemplo en 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)

Este ejemplo produce la siguiente salida:

![Ejemplo del paquete LaTeX standalone](/files/52d5b040dfdc90187cce1231f291eb5fb2857904)

**Ejemplo: paquete preview**

Aquí hay un código de ejemplo que utiliza el `preview` paquete:

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

[Abre este ejemplo en 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)

Este ejemplo produce la siguiente salida:

![Ejemplo del paquete LaTeX preview](/files/73cf460a478f9cf734c59da7f928868ab1ccd0cf)

### Demostración en video: subir archivos desde otro proyecto de Overleaf

El siguiente video demuestra cómo subir un archivo PDF (de otro proyecto de Overleaf) que contiene solo gráficos; aquí usamos el `standalone` paquete para crear el PDF que contiene ilustraciones basadas en 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/es/preguntas-y-respuestas/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.
