Me encanta LaTeX y TikZ para crear documentos de alta calidad. El problema es eseLos proyectos grandes requieren un tiempo de compilación bastante largo.yque complicado tikLas figuras/gráficos Z superan rápidamente el límite de memoria. Puedo evadir su problema si incluyo diferentes secciones en mi main.tex
y, en consecuencia, las descomento si no estoy trabajando en ellas. Un enfoque alternativo es una externalización de mi Ti.kZ figuras/gráficos, pero eso tampoco es óptimo, porque a menudo tendré que descomentar los gráficos en orden secuencial y luego compilar cada gráfico en orden secuencial. Pero compilar todo el proyecto será bastante problemático.
Pregunta: Por eso quiero conocer las mejores prácticas para gestionar grandes proyectos con una gran cantidad de Ti.kFiguras/gráficos Z.
Respuesta1
Si te entiendo correctamente, la razón por la que tikzexternalize
no te funciona es porque se confunde y vuelve a compilar imágenes cuando cambias el orden de las figuras comentando partes. El problema aquí parece ser que se tikzexternalize
utiliza la posición relativa de una figura en el documento para hacer referencia a ella.
Una forma de hacer tikzexternalize
reconocer imágenes incluso si cambian su posición es nombrarlas (entonces tikzexternalize
dejará de usar el orden para hacer referencia a figuras). Suponiendo que cargues tu TikZ imágenes de archivos externos, podrías hacer algo como esto:
\newcommand{\inputtikz}[1]{%
\tikzsetnextfilename{#1}%
\input{#1.tikz}%
}
y luego úsalo \inputtikz{name of file}
donde quieras poner tu figura. Esto será estable cuando muevas tus figuras o comentes secciones.
Por su cuenta, también puede nombrar manualmente cada figura \tikzsetnextfilename{name}
o definir algún otro comando/entorno que lo haga, que sea más adecuado para su flujo de trabajo.
Respuesta2
Lo que haría en tal caso es redefinir el entorno para tikzpicture
que sea solo un comentario mientras trabajo con el texto u otra parte de mi documento y comentar esta redefinición cuando el documento sea definitivo o cuando quiera verlo con todos los detalles. figuras en el interior.
También mantendría la antigua definición para poder trabajar con individuos tikzpictures
en un entorno llamado currenttikzpicture
(este nombre largo solo para demostración).
Código:
\documentclass{article}
\usepackage{tikz}
\usepackage{verbatim}
\let\oldtikzpicture\tikzpicture
\let\oldendtikzpicture\endtikzpicture
\renewenvironment{tikzpicture}[1][]{\comment}{\endcomment}
\newenvironment{currenttikzpicture}[1][]{\oldtikzpicture[#1]}{\oldendtikzpicture}
\begin{document}
\begin{tikzpicture}[scale=0.5]
\foreach \i in {1,2,...,4}{\draw[-,thick,red] (\i,0)to[in={\i*10}, out={170-\i*10}]({2*\i},{4*\i+1}) to[in={170-\i*10},out={270-\i*10}] ({2*\i-3},{\i/10})--(\i,0);}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.5]
\foreach \i in {1,2,...,4}{\draw[-,thick,red] (\i,0)to[in={\i*10}, out={170-\i*10}]({2*\i},{4*\i+1}) to[in={170-\i*10},out={270-\i*10}] ({2*\i-3},{\i/10})--(\i,0);}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.5]
\foreach \i in {1,2,...,4}{\draw[-,thick,red] (\i,0)to[in={\i*10}, out={170-\i*10}]({2*\i},{4*\i+1}) to[in={170-\i*10},out={270-\i*10}] ({2*\i-3},{\i/10})--(\i,0);}
\end{tikzpicture}
\begin{currenttikzpicture}[scale=0.5]
\foreach \i in {1,2,...,4}{\draw[-,thick,green] (\i,0)to[in={\i*10}, out={170-\i*10}]({2*\i},{4*\i+1}) to[in={170-\i*10},out={270-\i*10}] ({2*\i-3},{\i/10})--(\i,0);}
\end{currenttikzpicture}
Test
\end{document}
PD: Sé que la salida no mantendría las figuras en el lugar que deberían estar, pero realmente no me importa mientras trato de trabajar más rápido.