我有一堆用于预科微积分和微积分的 TeX 代码。图片在 tikzpicture 环境中。在我们的项目中,我们想要动态创建 TeX 文件并编译三次。对于包含许多图片的文件,编译速度很慢。我想知道,当我们使用类似语法绘制图形时,是否有可能阻止对函数的求值
\draw[red,thick,samples=100,domain=-10:10] plot(\x,{.......});
我知道 gnuplot 和 externalize 方法,但是它们对我来说都不方便。
如果有一个设置可以绘制几乎整个图片并跳过绘图,那就太好了。在 tikz 中可以实现吗?
所有图片都被裁剪成某个矩形,所以我希望删除函数的图形不会改变生成的图片的大小。
非常感谢
答案1
嗯,你可以引入一些特殊的命令行开关。
可以按照如下方式进行:
\documentclass[a4paper]{article}
\usepackage{tikz}
\newif\ifomitplots
\expandafter\ifx\csname OMITPLOTS\endcsname\relax
\omitplotsfalse
\else
\omitplotstrue
\fi
\begin{document}
\thispagestyle{empty}
\begin{tikzpicture}
\draw (0,0) grid (2,2);
\ifomitplots
\else
\draw[red,thick,samples=100,domain=0:1] plot (\x,{(\x)^2});
\fi
\end{tikzpicture}
\end{document}
本文档有一些 TikZpicture,其边界框与图无关(由于网格语句)。
我添加了用于命令行参数处理的自定义逻辑:\expandafter\ifx....
检查“\OMITPLOTS”是否是已知宏。如果是,则设置“\omitplotstrue”。
您可以在每张图片里面插入\ifomitplots \else <code> \fi
。
如果你通过标准方法运行编译,\OMITPLOTS
则将未定义,并且一切都将照常进行。但是如果你通过以下方式运行它,比如说
pdflatex '\def\OMITPLOTS{1} \input P'
(假设您的文件是P.tex
),\OMITPLOTS
宏被设置(值被忽略)并且\ifomitplots
开关将变为真。
或者,您可以设置一些特定样式,将绘图样本的数量减少到 2。
请注意,我有兴趣了解外部库的任何失败案例,即引入了虚假空间或移位的案例。