考试环境中的平等空间或其他替代方案

考试环境中的平等空间或其他替代方案

我正在尝试使用考试包编写多项选择题考试。对于每个问题,我有 6 个可能的答案(每行 3 个)。这是一个最小的工作示例。

\documentclass[addpoints]{exam}
\begin{document}

\begin{center}
\gradetable
\end{center}


\begin{questions}

\titledquestion{\textbf{Multiple Choice}}[10]


What is the capital of the United states?

\begin{oneparchoices}
\choice NY 
\choice Texas
\choice LA \\\\
\choice San Antonio
\choice Chicago
\CorrectChoice Washington D.C.



\end{oneparchoices}

\end{questions}

\end{document}

我希望每三个答案均匀分布在一行中,并且它们之间的间距相等,并且答案 a 直接位于 d 上方,答案 b 位于 e 上方,答案 c 直接位于 f 上方。

谢谢

答案1

我依赖 egreg 的代码(大多数时候都是这样),这是他在我遇到类似需求时给我的。这是对他的代码的轻微修改,我定义了一个新的环境,myoneparchoices以便您可以完整地使用原始代码oneparchoices

\documentclass[addpoints]{exam}

\usepackage{environ,xparse}

%% ------------------egreg's code begins---------------------------
\ExplSyntaxOn
\cs_undefine:N \choices
\cs_undefine:N \endchoices
\NewEnviron{myoneparchoices}{%
  \par\nopagebreak
  \abd_dochoices:V \BODY
  \par
}
\tl_new:N \l_abd_choices_tl
\seq_new:N \l_abd_choices_seq
\seq_new:N \l_abd_choices_final_seq

\cs_new_protected:Npn \abd_dochoices:n #1
 {
  \setcounter{choice}{0}
  \tl_set:Nn \l_abd_choices_tl { #1 }
  \tl_replace_once:Nnn \l_abd_choices_tl { \CorrectChoice } { \choice* }
  \seq_set_split:NnV \l_abd_choices_seq { \choice } \l_abd_choices_tl
  \seq_pop_left:NN \l_abd_choices_seq \l_tmpa_tl
  \seq_set_map:NNn \l_abd_choices_final_seq \l_abd_choices_seq
   { \exp_not:n { \makechoice ##1 } }
    \seq_map_inline:Nn \l_abd_choices_final_seq
   {
    \makebox[.3333333333333333333\linewidth][l]{
      \parbox[t]{.3\linewidth}{\raggedright \hangindent1.5em ##1\strut}
    }\hspace{0pt plus .1\linewidth}
   }
 }
\cs_generate_variant:Nn \abd_dochoices:n { V }
\ExplSyntaxOff
\makeatletter
\NewDocumentCommand{\makechoice}{s}
 {
  \stepcounter{choice}
  \IfBooleanT{#1}{\ifprintanswers\CorrectChoice@Emphasis\fi}
  {\normalfont\makebox[1.2em][l]{\IfBooleanT{#1}{\ifprintanswers\CorrectChoice@Emphasis\fi}\Alph{choice}.}}
 }
\makeatother

\begin{document}

\begin{center}
\gradetable
\end{center}


\begin{questions}

\titledquestion{\textbf{Multiple Choice}}[10]


What is the capital of the United states?

\begin{myoneparchoices}
\choice NY
\choice Texas
\choice LA
\choice San Antonio
\choice Chicago
\CorrectChoice Washington D.C.
\end{myoneparchoices}

\end{questions}

\end{document}

在此处输入图片描述

相关内容