![在新的环境定义中使用版本环境标签](https://linux22.com/image/231789/%E5%9C%A8%E6%96%B0%E7%9A%84%E7%8E%AF%E5%A2%83%E5%AE%9A%E4%B9%89%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%89%88%E6%9C%AC%E7%8E%AF%E5%A2%83%E6%A0%87%E7%AD%BE.png)
我刚刚在这里发现了这个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}
作品。