在 tabularx 环境中使用 \CorrectChoice(考试包)

在 tabularx 环境中使用 \CorrectChoice(考试包)

为了对具有是/否答案的问题列表进行建模,我想定义一个环境,在其中我可以使用命令设置问题:\clO针对不适用的选项和\clX适用的选项。

基于我如何将多项选择题答案以矩阵形式排列在考试中?我想使用tabularx而不是tabular,因为右列必须是多行并填满所有空间。

一切都按计划进行,直到我最终想像或命令\CorrectChoice中那样设置一个元素,导致出现奇怪的错误消息: \clO\clXmwe.tex:41 Something's wrong--perhaps a missing \item. \end{choicelist}

梅威瑟:

平均能量损失

\documentclass[answers]{exam}
\usepackage{amssymb}
\usepackage{varwidth}
\usepackage{tabularx}

\checkboxchar{$\Box$}
\checkedchar{$\blacksquare$}

\newcommand{\clO}[1]{
    \begin{varwidth}{\textwidth}\begin{checkboxes}\CorrectChoice\end{checkboxes}\end{varwidth}
    & \begin{varwidth}{\textwidth}\begin{checkboxes}\choice\end{checkboxes}\end{varwidth}
    & #1\\
}
\newcommand{\clX}[1]{
    \begin{varwidth}{\textwidth}\begin{checkboxes}\choice\end{checkboxes}\end{varwidth}
    & \begin{varwidth}{\textwidth}\begin{checkboxes}\choice\end{checkboxes}\end{varwidth}
    & #1\\
}
\newenvironment{choicelist}{
    \renewcommand{\arraystretch}{1.4}
    \renewcommand{\checkboxeshook}{
    \setlength{\labelwidth}{0pt}
    \setlength{\labelsep}{0pt}
    \setlength{\leftmargin}{0pt}
    }
  \tabularx{\textwidth}{ccX}
    applicable & not applicable & \\
}{
    \endtabularx
}

\begin{document}
\begin{questions}
    \question
    Lorem ipsum dolor sit amet?

    \begin{choicelist}
        \clO{This is a multiline description to be answered, so we have to use a long text to ensure we can see a line break in the example.}
        \clX{foo}
        \clO{bar}
    \end{choicelist}
\end{questions}
\end{document}

答案1

我刚刚遇到了同样的问题,并重新定义了\choice\CorrectChoice,以便我可以在tabular环境中使用它们而无需添加checkboxes环境。

\usepackage{amssymb} 
\usepackage{xspace}

\newcommand{\CorrectChoice}{% true
 \ifprintanswers
   $\boxtimes$%
 \else%
   $\square$%
 \fi%
 \xspace%
}
\newcommand{\choice}{% false
   $\square$%
   \xspace%
}

相关内容