![适合练习答案的环境](https://linux22.com/image/343774/%E9%80%82%E5%90%88%E7%BB%83%E4%B9%A0%E7%AD%94%E6%A1%88%E7%9A%84%E7%8E%AF%E5%A2%83.png)
有不同的软件包可以将练习答案添加到文档中,例如答案和锻炼,但它们都有点过度,例如,它们重新格式化并重新编号我文档中的练习列表。
我想要实现的只是这一点:我有一个练习列表,这些练习在标准枚举环境中格式化,我想将解决方案放在下面,但在文档的开头,我希望能够定义某种“标志”。 如果标志为“开”,则文档应打印出带有解决方案的讲义,如果标志为“关”,则它应该跳过解决方案并打印出文档,就好像解决方案从未存在过一样(因此也不会留下空白或类似的东西)。
理想情况下是这样的:
List of exercises:
\begin{enumerate}
\item 2+2
\begin{solution}
4
\end{solution}
\item 3-1
\begin{solution}
2
\end{solution}
\item 5+2
\begin{solution}
7
\end{solution}
\end{enumerate}
如果标志关闭,则所有解决方案都应被彻底跳过。
有没有办法做到这一点,最好尽可能简单?
答案1
如果没有环境,只需\solution
:
\documentclass{article}
\newif\ifsolution
\def\solution#1{\ifsolution #1 \else \relax\fi}
\begin{document}
\solutiontrue
\begin{enumerate}
\item 2+2
\solution{4}
\item 3-1
\solution{2}
\item 5+2
\solution{7}
\end{enumerate}
\solutionfalse
\begin{enumerate}
\item 2+2
\solution{4}
\item 3-1
\solution{2}
\item 5+2
\solution{7}
\end{enumerate}
\end{document}