在新的环境定义中使用版本环境标签

在新的环境定义中使用版本环境标签

我刚刚在这里发现了这个versions包,并且有兴趣用它来隐藏问题集文档中的解决方案。回想一下,要创建版本块,在序言中,您需要

\usepackage{versions}  
\excludeversion{sol}  
%\includeversion{sol}

并在文件中,

\begin{sol} ... \end{sol}

这里,标有“sol”的块将被排除。

在我的文档中,我将新环境“解决方案”定义为

\newenvironment{Solution}{\begin{sol} \\ \textbf{Solution: }}{\end{sol}}

如果我指示 LaTeX 包含“sol”块,此构造可以完美运行,但如果我尝试排除它们,则会出现故障。例如,以下代码会出现故障并给出错误Incomplete \iffalse

\documentclass{article}  
\usepackage{versions}  
\excludeversion{sol}  
%\includeversion{sol}  
\newenvironment{Solution}{  
  \begin{sol}\\ \textbf{Solution: }}{  
  \end{sol}}  
\begin{document}  
\section{Question 1}  
What is $2+2$?  
\begin{Solution}  
It is $2+2=4$.  
\end{Solution}  
\end{document}

如果我更改注释并包含“sol”,则此代码将按预期工作。我猜版本包的工作方式出了问题。有什么建议吗?

答案1

不要\begin{sol} ... \end{sol}在解决方案环境的定义中使用。 \begin ... \end块嵌套不太好。相反,使用\sol ... \endsol。因此:

\documentclass{article}
\usepackage{versions}
\excludeversion{sol}
%\includeversion{sol}
\newenvironment{Solution}{
\sol\\ \textbf{Solution: }}{
\endsol}
\begin{document}
\section{Question 1}
What is $2+2$?
\begin{Solution}
It is $2+2=4$.
\end{Solution}
\end{document}

作品。

相关内容