如何关闭环境(例如 tikzpicture)以加快草稿编译速度

如何关闭环境(例如 tikzpicture)以加快草稿编译速度

我目前正在写论文,一直在寻找加快编译时间的方法。我可以通过使用草稿模式节省大量时间,这样图像就不会被处理,但我有几个 TikZ 图表也需要一些时间来编译。有没有办法让我在标题中放置一个开关,以便在我只是检查我的写作时可以忽略处理 TikZ 图表?

例如,我只想tikzpicture在编写草稿时“关闭”环境。

答案1

这是一个tikzpicture通过有条件地将comment环境(来自verbatim包)包装在它周围来重新定义环境的解决方案。我只测试过它,tikzpicture但我认为它可以轻松适应任何其他环境。

在文档开头将\newif调用设置为\showtikztrue (使用\showtikztrue) 或 false (使用),以分别显示或隐藏文档中的所有环境。\showtikzfalsetikzpicture

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>

在此处输入图片描述

相关内容