软件包“版本”警告:重新定义环境

软件包“版本”警告:重新定义环境

我正在使用versions.sty包,并希望在不同的版本配置中处理一些文本两次(或更多次),但在同一文档中。所以我多次使用了\excludeversion\includeversion。每次使用这些似乎都使用与参数名称相同的参数来定义环境。所以我每次运行时都会收到一个恼人的警告,使我的LaTeX消息变得混乱。

以下是一个小例子:

\documentclass{book}
\usepackage{versions}

\begin{document}

\includeversion{A}
\excludeversion{B}

\begin{A}a\end{A}
\begin{B}b\end{B}

\excludeversion{A}
\includeversion{B}

\begin{A}a\end{A}
\begin{B}b\end{B}

\end{document}

产生以下警告:

Package `Versions' Warning: Redefining environment `A' on input line 11.
Package `Versions' Warning: Redefining environment `B' on input line 12.

输出如下:

a
b

输出很好。有没有更好的方法来实现我想要实现的目标,而又不出现这些警告?

(当然,我们的想法是,在 MWE 中重复的文本包含来自同一个文件,所以我获得了同一个文件的不同乳胶运行)。

答案1

您可以抑制发出的警告versions将以下内容添加到您的序言中:

\makeatletter
\let\@Vs@envwarn\@gobble% Remove environment renewal warnings.
\makeatother

或者silence包裹做类似的事情:

\usepackage{silence}
\WarningFilter{`Versions'}{Redefining environment}

使用 -constructions 的另一种方法\if是:

\documentclass{article}
\newif\ifVersionA
\newif\ifVersionB
\begin{document}

\VersionAtrue% Include Version A
\VersionBfalse% Exclude Version B

\ifVersionA a \fi
\ifVersionB b \fi

\VersionAfalse% Exclude Version A
\VersionBtrue% Include Version B

\ifVersionA a \fi
\ifVersionB b \fi

\end{document}

相关内容