Tikz-Picture:通过 \input[file_with_tikzcode.tex] 插入纯 tikz 代码还是使用 \input 与独立包结合?

Tikz-Picture:通过 \input[file_with_tikzcode.tex] 插入纯 tikz 代码还是使用 \input 与独立包结合?

我想知道上述方法中是否存在任何区别?

情况1: 我的 main.tex 中只有普通文本。绘制图片时,我使用以下代码创建另一个 .tex 文件:

\begin{tikzpicture}
...
\end{tikzpicture} 

因此图片有自己的文件,这使得修改它更加容易。

情况2: 我最近学习了独立包。如果我现在还使用一个额外的 .tex 文件来存储图片,但现在使用独立包,如下所示:

\documentclass[10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
[...]
\end{tikzpicture}
\end{document}

然后在我的 main.tex 中使用 \input 命令

情况 2 是否有任何优势,例如在编译时间方面,还是两种方法完全相同?目前,它们对我来说似乎完全相同,但是随着文档的增长,这种情况可能会在以后发生变化。非常感谢。

编辑:我通过 QTikz 创建和更改 tikz 图片本身

答案1

包括编译后的 pdf 文件

使用standalone文档类可以节省编译时间\includegraphics包含已编译的pdf文件。

使用独立包包含 tex 文件

standalone当您在主文档中使用包时(\usepackage{standalone}包( )并包含一个特克斯文件(standalone文档类),tikz 代码将再次运行,因此不会节省编译时间。

替代方法

因此我建议一种额外的方法:\input使用 tikz externalize 库的命令包含您的图像:

\usepackage{tikz}
\usetikzlibrary{external}
\tikzexternalize
\tikzsetexternalprefix{ext-tikz/} % all tikz files will be stored as a pdf in here

对于此方法,您需要使用选项运行编译器-shell-escape。(例如,将 pdfLaTeX 的调用更改为 pdflatex -synctex=1 -interaction=nonstopmode %.tex -shell-escape。)这可以在编辑器的设置中完成,或者,如果您使用命令行,则可以通过将命令添加到通常的调用中来完成。

这种方法仅在必要时编译图像,从而节省了时间,而且还使用与文档中相同的字体(可能还有其他一些优点)。

编译后的 tikz 图像以 pdf 形式单独存储(在本例中存储在指定的文件夹中,即“ext-tikz”)。您也可以filename使用命令手动设置文件名()\tikzsetnextfilename{filename}

相关内容