Eu amo LaTeX e TikZ para criar documentos de alta qualidade. O problema é queprojetos grandes requerem um tempo de compilação bastante longoeque complicado TikOs números/gráficos Z excedem rapidamente o limite de memória. Posso evitar o problema dele se incluir diferentes seções no meu main.tex
e, conseqüentemente, descomentá-las se não estiver trabalhando nelas. Uma abordagem alternativa é uma externalização do meu TikFiguras/gráficos Z, mas isso também não é o ideal, porque muitas vezes terei que descomentar os gráficos em ordem sequencial e depois compilar cada gráfico em ordem sequencial. Mas compilar todo o projeto será bastante problemático.
Pergunta: É por isso que quero conhecer as melhores práticas para gerenciar grandes projetos com uma enorme quantidade de TikFiguras/parcelas Z.
Responder1
Se bem entendi, o motivo pelo qual tikzexternalize
não está funcionando para você é porque ele fica confuso e recompila as imagens quando você altera a ordem das figuras comentando as partes. O problema aqui parece ser que se tikzexternalize
utiliza a posição relativa de uma figura no documento para referenciá-la.
Uma forma de tikzexternalize
reconhecer imagens mesmo que mudem de posição é nomeá-las (depois tikzexternalize
deixará de usar a ordem de referência das figuras). Supondo que você carregue seu TikZ de arquivos externos, você poderia fazer algo assim:
\newcommand{\inputtikz}[1]{%
\tikzsetnextfilename{#1}%
\input{#1.tikz}%
}
e depois use \inputtikz{name of file}
onde quiser colocar sua figura. Isso ficará estável quando você mover suas figuras ou comentar seções.
Obviamente, você também pode nomear manualmente cada figura \tikzsetnextfilename{name}
ou definir algum outro comando/ambiente que faça isso, que seja mais adequado ao seu fluxo de trabalho.
Responder2
O que eu faria nesse caso seria redefinir o ambiente para tikzpicture
ser apenas um comentário enquanto trabalho com o texto ou outra parte do meu documento e comentar essa redefinição quando o documento estiver finalizado ou sempre que eu quiser vê-lo com todos os figuras dentro.
Eu também manteria a definição antiga, para poder trabalhar com indivíduos tikzpictures
em um ambiente chamado currenttikzpicture
(esse nome longo apenas para demonstração).
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}
PS: Eu sei que o resultado não manteria os números no lugar que deveriam estar, mas não me importo muito em tentar trabalhar mais rápido.