有没有办法通过在序言中设置某个命令来手动隐藏所有图像、方程式和所有列表(使用 lstlisting 包嵌入)?看看文档实际上包含多少页真正的“文本”会很有趣。谢谢!
编辑:我尝试使用Stefans的建议:
\renewenvironment{lstlisting}{\begin{comment}}{\end{comment}}
\renewenvironment{figure}{\begin{comment}}{\end{comment}}
\renewenvironment{equation}{\begin{comment}}{\end{comment}}
而我在序言中用的是 verbatim-package。我得到的错误消息与使用 Martins 建议时得到的错误消息相同:
File ended while scanning use of \next for a command line `\include{main/02}`
当不使用注释功能时,编译文档时不会出现错误:(
編輯2:我发现马丁斯解有效,但不适用于我通过以下方式插入的方程式:
\newcommand{\beq}{\begin{equation}}
\newcommand{\eeq}{\end{equation}}
然后:
\beq
blaaa...
\eeq
那么该采取什么方法呢?
答案1
您可以使用该comment
包将环境(甚至是现有环境)转换为注释环境。它会逐字跳过内容,因此也可以用于lstlistings
等。但是,似乎\end{<env>}
(实际上是内部的\end<env>
)仍在执行,因此您也需要将其清空。对于宏,您需要使用同一组参数定义虚拟替换。
\documentclass{article}
\usepackage{comment}
\excludecomment{figure}
\let\endfigure\relax
\excludecomment{equation}
\let\endequation\relax
\excludecomment{lstlisting}
\let\endlstlisting\relax
% Also possible:
%\renewcommand{\includegraphics}[2][]{}
%\renewcommand{\lstinputlisting}[2][]{}
% For your funny equation marks use: (you then actually don't need to redefine `equation` itself)
\let\beq\iffalse
\let\eeq\fi
% or
% \def\beq#1\eeq{}
\begin{document}
Normal text
\begin{figure}
(A figure)
\caption{A figure indeed}
\end{figure}
\begin{equation}
1+1=2
\end{equation}
\beq
1+1=2
\eeq
\end{document}
答案2
您可以使用 重新定义所有这些环境和命令,使它们不执行任何操作\renewenvironment
。当然,这可以总结在一个宏中。