我目前正在写论文,一直在寻找加快编译时间的方法。我可以通过使用草稿模式节省大量时间,这样图像就不会被处理,但我有几个 TikZ 图表也需要一些时间来编译。有没有办法让我在标题中放置一个开关,以便在我只是检查我的写作时可以忽略处理 TikZ 图表?
例如,我只想tikzpicture
在编写草稿时“关闭”环境。
答案1
这是一个tikzpicture
通过有条件地将comment
环境(来自verbatim
包)包装在它周围来重新定义环境的解决方案。我只测试过它,tikzpicture
但我认为它可以轻松适应任何其他环境。
在文档开头将\newif
调用设置为\showtikz
true (使用\showtikztrue
) 或 false (使用),以分别显示或隐藏文档中的所有环境。\showtikzfalse
tikzpicture
cmhughes 提供的解决方案针对这个问题如何让 LaTeX 忽略环境的内容?很有用。
编辑:我把我的\newif
、原本的\hidetikz
、改为新的\showtikz
;诸如此类的双重否定\hidetikzfalse
很难解析。
\documentclass{article}
\usepackage{tikz}
\usepackage{verbatim} % for the comment environment
\usepackage{lipsum}
\newif\ifshowtikz
\showtikztrue
%\showtikzfalse % <---- comment/uncomment that line
\let\oldtikzpicture\tikzpicture
\let\oldendtikzpicture\endtikzpicture
\renewenvironment{tikzpicture}{%
\ifshowtikz\expandafter\oldtikzpicture%
\else\comment%
\fi
}{%
\ifshowtikz\oldendtikzpicture%
\else\endcomment%
\fi
}
\begin{document}
\begin{tikzpicture}[scale=1]
\path[draw=red,fill=red!20] (0,0) rectangle (4,4);
\end{tikzpicture}
\lipsum[1]
\end{document}
如果\showtikz
设置为 true,则输出为:
如果\showtikz
设置为 false,则输出为:
答案2
如同我的答案在打开或关闭内联渐近线图形的简单方法(稍作修改),你可以使用以下方式吞噬环境的内容environ
,然后输出你想要的任何内容:
\documentclass{article}
\usepackage{tikz,environ}
\usepackage{lipsum}
%\newcounter{tikzfigcntr}
%\RenewEnviron{tikzpicture}[1][]{%
% \par% New paragraph
% \stepcounter{tikzfigcntr}% Step tikzfigcntr counter
% This is \texttt{tikzpicture}~\thetikzfigcntr% Place appropriate text
% \par% New paragraph
%}
\begin{document}
\begin{tikzpicture}[scale=1]
\path[draw=red,fill=red!20] (0,0) rectangle (4,4);
\end{tikzpicture}
\lipsum[1]
\end{document}
如果取消注释重新定义(和计数器定义),则会打印tikzpicture
替换文本“This is ”(其中是代表图片编号的计数器)。将其替换为您想要的任何内容:tikzpicture
<num>
<num>