请问大家,在录制数学试题时,想在大题后面配上答案解析,然后想隐藏答案,而且在不显示答案时,题目后面会保留答案的那个长度。 之前在网上找到了一种方法,就是新定义solution,方法如下: \newtheorem*{mysolution}{Solution}%无编号 \usepackage{comment}%参看宏包说明 \renewenvironment{mysolution}{{\heiti 参考答案:}}{} \specialcomment{mysolution}{}{}%%%%不注释就没有答案,注释掉这两行答案就出来了 \excludecomment{mysolution}%%%%不注释就没有答案,注释掉这两行答案就出来了 但是这个,把答案隐藏以后,两个大题之间就没有空间答题了,有点不方便,只能制作两个版本,即学生版和教师版,请问大家,能否实现刚才讲述的功能,谢谢大家

3 回答3

1
https://github.com/mathedu4all/bhcexam BHCexam 的作者一直在做试卷,它做出来的试卷仿佛和你的要求相关,可以看看。
  • 非常感谢! – 匿名用户 2020-03-17 21:21 回复
  • 好的,感谢啸行大哥 – 匿名用户 2020-03-17 21:21 回复
1
自定义一个条件命令 ```tex \documentclass{ctexart} \usepackage{xparse} % make \phantom a long macro \newtoks\patchtoks % helper token register \def\longpatch#1% % worker macro {\let\myoldmac#1% \long\def#1##1{\patchtoks={##1}\myoldmac{\the\patchtoks}}} \longpatch\phantom %% define an answer environment that can be hidden \NewDocumentEnvironment{answer}{ +b }{% \par \ifanswer \textbf{解}\quad {#1} \else \phantom{#1} \fi }{\par} \newif\ifanswer %\answertrue %% Set \answertrue to show the answer environment \answerfalse %% Set \answerfalse to hide the answer environment \begin{document} 这是答案开始: \begin{answer} 1+2=3 2+2=4 \end{answer} 这是答案结束。 \end{document} ``` 设置`\answertrue`就打印答案,设置`\answerfalse`就隐藏答案,保留答案所需的空格。
  • 懂了懂了,太感谢了 – 匿名用户 2020-03-17 21:30 回复
  • 感谢感谢!看到晚了,请问使用的时候是\begin{newtoks}这样吗? – 匿名用户 2020-03-17 21:24 回复
0
用动画宏包,把答案写进动画环境,可以随意显示,随意隐藏。

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。