注释掉特定环境

注释掉特定环境

我正在处理一份包含多个图表的大型文档。由于图表较多,因此需要很长时间才能完成编译。

我想在工作时注释掉所有图形,然后在最后再将它们放回去。为此,我添加了类似

\renewenvironment{figure}{\begin{comment}}{\end{comment}}

然后我可以根据需要将其注释掉。但是,这根本行不通,而且会产生各种问题。具体来说,我尝试编译这个 -

\documentclass[12pt]{article}
\usepackage{graphicx}
\usepackage{comment}
%\renewenvironment{figure}{\begin{comment}}{\end{comment}}
\begin{document}
\begin{figure}
\begin{center}
\includegraphics{image.png}
\end{center}
\end{figure}
\end{document}

使用 % 一切都完美编译。如果我删除 %,我会得到一个错误

不包括‘comment’注释。)失控参数?!扫描使用 \next 时文件结束。

答案1

如果你只包含独立的图像,那么你可以\includegraphics通过加载文档类(或graphicx),draft选项如下:

在此处输入图片描述

\documentclass[draft]{article}
\usepackage{graphicx}
\begin{document}
Image A: \includegraphics[height=2\baselineskip]{example-image-a}

Image B: \includegraphics[height=2\baselineskip]{example-image-b}

Image C: \includegraphics[height=2\baselineskip]{example-image-c}
\end{document}

类似的方法是重新定义\includegraphics以做任何你想做的事情:

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx}
\renewcommand{\includegraphics}[2][]{\rule{50pt}{20pt}}
\begin{document}
Image A: \includegraphics[height=2\baselineskip]{example-image-a}

Image B: \includegraphics[height=2\baselineskip]{example-image-b}

Image C: \includegraphics[height=2\baselineskip]{example-image-c}
\end{document}

但是,如果您即时创建图形(使用类似tikzpicture或 的东西pspicture),那么您需要更具创造力。实现这一点的一种方法是捕获整个环境并吞噬其内容:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz,environ}
\RenewEnviron{tikzpicture}[1][]{}
\begin{document}
Image A: \begin{tikzpicture}[options-a] A beautiful image \end{tikzpicture}

Image B: \begin{tikzpicture}[options-b] A beautiful image \end{tikzpicture}

Image C: \begin{tikzpicture}[options-c] A beautiful image \end{tikzpicture}
\end{document}

使用 (float) 环境也可以完成相同的操作figure,但是您会丢失所有引用\caption(但是,您可以考虑它)。

通过在 中实际写入图片环境,可以实现环境吞噬机制的进一步发展\phantom,从而创建输出所需的大小/形状。但是,这会产生相同数量的编译开销/时间。

答案2

环境comment会提前考虑环境的结束,因此在其他环境中使用时效果不佳。

我知道注释掉特定环境的最简单的方法是使用环境包

\documentclass[12pt]{article}
\usepackage{mwe}
\usepackage{graphicx}
\usepackage{environ}
\RenewEnviron{figure}{Nothing here}
\begin{document}
  \begin{figure}
    \begin{center}
      \includegraphics{example-image.png}
    \end{center}
  \end{figure}
\end{document}

使用environ可让您直接使用\BODY环境的 。上面我已让figure环境用 替换其主体内的所有内容Nothing here。当然,您可以让figure环境不执行任何操作:

\RenewEnviron{figure}{}

无论哪种方式,环境主体的内容figure似乎都没有被处理,所以这应该很快。

相关内容