我喜歡 LaTeX 和 TikZ 用於建立高品質文件。問題是大型專案需要相當長的編譯時間和那個複雜的鈦kZ 圖形/圖很快就超出記憶體上限。如果我將不同的部分包含在我的內容中main.tex
,然後在我不處理它們時取消註釋它們,我可以避免他的問題。另一種方法是我的 Ti 的外部化kZ 圖形/圖,但這也不是最佳的,因為通常我必須按順序取消註釋圖,然後按順序編譯每個圖。但編譯整個專案會遇到很大問題。
問題:這就是為什麼我想知道管理大量 Ti 的大型專案的最佳實踐kZ 圖/圖。
答案1
如果我理解正確的話,它不適合你的原因tikzexternalize
是因為當你透過註解掉部分來改變圖形的順序時,它會變得混亂並重新編譯圖片。這裡的問題似乎是tikzexternalize
使用文檔中圖形的相對位置來引用它。
tikzexternalize
即使圖片改變了位置,識別圖片的一種方法是為它們命名(然後tikzexternalize
將停止使用引用圖形的順序)。假設你加載你的Tik來自外部文件的 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:我知道輸出不會將數字保留在應有的位置,但在嘗試更快地工作時我並不真正關心。