我想知道上述方法中是否存在任何区别?
情况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}
。