设置多项选择题答案

设置多项选择题答案

我有一个关于设置 LaTeX 文档的问题。我不确定在这里发布这样的问题是否合适,但我想这里很多人都有使用该系统的经验,也许可以提供帮助。

我被要求写一份包含多项选择答案的问题列表。使用它的人对 TeX 了解不多,所以我需要尽量让代码变得健壮。我编写了一个命令来自动生成多项选择选项:命令

\mc{2}{3}{5}{7}{11}

大致输出

(A) 2  (B) 3  (C) 5  (D) 7  (E) 11

我想做的是添加第六个参数,该参数将获取问题的答案,然后自动将其附加到文档末尾的列表中,本质上是创建答案键。问题是我不清楚如何将每个\mc命令的第六个参数调用到\enumerate文档末尾的环境中。

我将非常感激任何人对这个项目提出的任何提示或建议。

答案1

您可以采用以下解决方案如何保存字符串的运行列表,然后逐个处理它们以此目的:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{pgffor}
\usepackage{enumitem}

\newcommand\AnswersList{}
\newcommand\AddAnswer[1]{\edef\AnswersList{\AnswersList#1\endgraf}}

\newcommand*{\mc}[6]{%
    % code to display the multiple choice for #1...#5
    \AddAnswer{#6,}%
}%

\begin{document}

\mc{2}{3}{5}{7}{11}{3}
\mc{2}{3}{5}{7}{11}{5}


The list of answers are:

\begin{enumerate}[label=(\arabic*)]
\foreach \answer in \AnswersList {%
    \item \answer
}%
\end{enumerate}
\end{document}

答案2

以下是使用以下功能提供的可能解决方案exam文档类和answers包裹:

\documentclass{exam}
\usepackage{answers}

\Newassociation{sol}{Solution}{ans}

\newtheorem{ex}{}{}
\renewcommand\questionlabel{}
\renewcommand\questionshook{\leftmargin0pt}
\begin{document}

\Opensolutionfile{ans}[ans1]
\section{Problems}

\begin{ex}
\begin{questions}
\question
One of these things is not like the others; one of these things is not
the same. Which one is different?

\begin{oneparchoices}
\choice John
\choice Paul
\choice George
\choice Ringo
\choice Socrates
\end{oneparchoices}
\begin{sol}
Socrates
\end{sol}
\end{questions}
\end{ex}

\begin{ex}
\begin{questions}
\stepcounter{question}
\question
One of these numbers is perfect.

\begin{oneparchoices}
\choice $2$
\choice $28$
\choice $5$
\choice $3$
\choice $7$
\end{oneparchoices}
\end{questions}
\begin{sol}
$7$
\end{sol}
\end{ex}

\Closesolutionfile{ans}
\section{Solutions}
\input{ans1}

\end{document}

在此处输入图片描述

相关内容