多数の tikz 図/プロットを含むプロジェクトのワークフロー

多数の tikz 図/プロットを含むプロジェクトのワークフロー

私はLaTeXとTiが大好きです高品質の文書を作成するためのZ。問題は大規模なプロジェクトではコンパイルにかなり長い時間を要するそしてその複雑なTiZ図/プロットはすぐにメモリ上限を超えますmain.tex. 異なるセクションを自分の中に含めて、作業していない場合はコメントを解除すれば、彼の問題は回避できます。別のアプローチとしては、Tiを外部化することです。Z 図/プロットですが、これも最適ではありません。プロットを順番にコメント解除し、各プロットを順番にコンパイルする必要があることが多いためです。ただし、プロジェクト全体をコンパイルするのはかなり問題があります。

質問: だからこそ、大量のTiを持つ大規模プロジェクトを管理するためのベストプラクティスを知りたいのです。Z 図/プロット。

答え1

tikzexternalize私が正しく理解していれば、うまくいかない理由は、部分をコメントアウトして図の順序を変更すると、混乱して画像が再コンパイルされるからです。ここでの問題はtikzexternalize、ドキュメント内の図の相対的な位置を使用して参照していることのようです。

tikzexternalize位置が変わっても画像を認識するようにする一つの方法は、画像に名前を付けることです(そうすれば、tikzexternalize図を参照する順序を使用しなくなります)。Tiをロードすると、外部ファイルから Z 画像を取得するには、次のようにします。

\newcommand{\inputtikz}[1]{%
  \tikzsetnextfilename{#1}%
  \input{#1.tikz}%
}

そして、\inputtikz{name of file}図を配置したい場所に使用します。これにより、図を移動したり、セクションをコメントアウトしたりしても安定します。

もちろん、各図に手動で名前を付けたり\tikzsetnextfilename{name}、ワークフローに適した他のコマンド/環境を定義したりすることもできます。

答え2

このような場合に私が行うことは、tikzpictureテキストやドキュメントの他の部分を操作している間は、環境を単なるコメントとして再定義し、ドキュメントが完成したとき、またはすべての図を含むドキュメントを見たいときはいつでも、この再定義をコメント アウトすることです。

また、(この長い名前はデモンストレーション用です) とtikzpictures呼ばれる環境で個人と連携できるように、古い定義も保持します。currenttikzpicture

コード:

\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: 出力では数字が本来あるべき位置に維持されないことは承知していますが、作業を高速化しようとしている間は、あまり気にしません。

関連情報