我正在使用exam
文档类进行包含多项选择部分的考试。为了匹配 scantron 表单的外观,我想在choices
和oneparchoices
环境中使用带圆圈的数字。我让它在choices
环境中工作,但它在环境中不起作用oneparchoices
。下面是一个最小的工作示例。有什么建议吗?
\documentclass{exam}
\usepackage{pifont}
\renewcommand\choicelabel{\thechoice}
\renewcommand\choiceshook{
\addtocounter{choice}{191}
}
\renewcommand\thechoice{\ding{\arabic{choice}}}
\begin{document}
\begin{questions}
\question With the choices environment this
\begin{choices}
\choice does
\CorrectChoice work
\choice nicely
\end{choices}
\question With the oneparchoices environment this
\begin{oneparchoices}
\choice does
\CorrectChoice not
\choice work
\end{oneparchoices}
\end{questions}
\end{document}
答案1
使用略微修改的圆圈编号版本制作 \textcircled 数字的好方法?,这里使用另一种方法tikz
圈出数字,而不是pifont
。宏\circled
用分隔符将其参数括起来1pt
:
\documentclass{exam}% http://ctan.org/pkg/exam
\usepackage{tikz}% http://ctan.org/pkg/pgf
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{%
\node[shape=circle,draw,inner sep=1pt] (char) {#1};}}
\renewcommand\choicelabel{\circled{\thechoice}}
\renewcommand\thechoice{\arabic{choice}}%
\begin{document}
\begin{questions}
\question With the \texttt{choices} environment this
\begin{choices}
\choice does
\CorrectChoice work
\choice nicely
\end{choices}
\question With the \texttt{oneparchoices} environment this
\begin{oneparchoices}
\choice does
\CorrectChoice work
\choice nicely
\end{oneparchoices}
\end{questions}
\end{document}
这样做的好处是允许选择超过 9 个选项。但是,我不确定扫描仪是否仅限于 9 个选择(1 到 9)。
答案2
环境将计数器oneparchoices
重置choice
为 0。快速修补:
\usepackage{pifont,etoolbox}
\renewcommand\choicelabel{\thechoice}
\renewcommand\choiceshook{
\addtocounter{choice}{191}
}
\renewcommand\thechoice{\ding{\arabic{choice}}}
\patchcmd{\oneparchoices}{0}{191}{}{}
因此,oneparchoices
环境也将从 191 开始,就像choices
。不幸的是,没有\oneparchoiceshook
,因此必须遵循不同的路径。