LaTeX 考试包:使用 oneparchoices 对齐选择

LaTeX 考试包:使用 oneparchoices 对齐选择

我是一个相当新的 LaTeX 用户,所以如果这是一个简单的新手问题,请原谅我。

我正在使用该exam软件包创建考试。我同时使用\choices\oneparchoices环境,我希望它们对齐,而不是选择项的缩进程度更高。这个 MWE 应该可以说明我的观点:

\documentclass{exam}

\begin{document}

\begin{questions}

   \question
    Question 1

   \begin{oneparchoices}
       \correctchoice Answer 1
       \choice Answer 2
       \choice Answer 3
   \end{oneparchoices}

   \question
   Question 2

   \begin{choices}
    \correctchoice Answer 1
    \choice Answer 2
    \choice Answer 3
   \end{choices}

   \end{questions}

 \end{document}

这就是我得到的。

我相信更有经验的用户可以轻松解决这个问题,但我却陷入困境。

答案1

查看该类的源代码后exam我发现左边距(\leftmargin在 LaTeX 中实现)是choices使用硬编码线设置的\settowidth{\leftmargin}{W.\hskip\labelsep\hskip 2.5em}%,即,它被设置为 +labelsep+2.5em 的宽度W.(em 是相对于字体大小的)。

我没有看到一种简单的方法来改变它,因为没有提供这个设置。您只能将choicesfrom的定义复制exam.cls到文档中,在\makeatletter和之间\makeatother,然后将上面的行更改为\setlength{\leftmargin}{<your prefered length>}。我建议这里使用 15pt,这是正常的\parindent。您显然不能\parindent直接使用,因为 中的列表环境choices似乎重新定义了它。当然
,您还需要更改\newcommand\renewcommand

\documentclass{exam}

\makeatletter
% from exam.cls, line 4107:
\renewenvironment{choices}%
  {\list{\choicelabel}%
     {\usecounter{choice}\def\makelabel##1{\hss\llap{##1}}%
       \setlength{\leftmargin}{15pt}%
       \def\choice{%
         \if@correctchoice
           \color@endgroup
           \endgroup
         \fi
         \item
         \do@choice@pageinfo
       } % choice
       \def\CorrectChoice{%
         \if@correctchoice
           \color@endgroup
           \endgroup
         \fi
         \ifprintanswers
           \ifhmode \unskip\unskip\unvbox\voidb@x \fi
           \begingroup \color@begingroup \@correctchoicetrue
           \CorrectChoice@Emphasis
         \fi
         \item
         \do@choice@pageinfo
       } % CorrectChoice
       \let\correctchoice\CorrectChoice
       \labelwidth\leftmargin\advance\labelwidth-\labelsep
       \topsep=0pt
       \partopsep=0pt
       \choiceshook
     }%
  }%
  {\if@correctchoice \color@endgroup \endgroup \fi \endlist}
\makeatother

\begin{document}

\begin{questions}

   \question
    Question 1

   \begin{oneparchoices}
       \correctchoice Answer 1
       \choice Answer 2
       \choice Answer 3
   \end{oneparchoices}

   \question
   Question 2

   \begin{choices}
    \correctchoice Answer 1
    \choice Answer 2
    \choice Answer 3
   \end{choices}

   \end{questions}

 \end{document}

在此处输入图片描述

相关内容