我刚刚在这里发现了这个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}
作品。