动态打印多项选择题解决方案

动态打印多项选择题解决方案

我试图弄清楚如何使用 tikz 包动态打印我的试卷的多项选择题答案。

这是我目前所拥有的:

\documentclass{exam}

\usepackage{tikz}

\newcounter{solcount}
\setcounter{solcount}{1} 
\newcommand{\CC}{\CorrectChoice\label{sol:\arabic{solcount}}\stepcounter{solcount}}
\newcommand\MCanswers{\section*{\centering {\textbf{{\LARGE Multiple Choice Solutions}}}}
    \foreach \x in {1,...,10}{\centering\noindent \x.~\ref{sol:\x}\par }}

\newcommand{\emptybox}[2][\textwidth]{% Empty Box
    \begingroup
    \setlength{\fboxsep}{-\fboxrule}%
    \noindent\hspace*{-5mm}\framebox[#1]{\rule{0pt}{#2}}%
    \endgroup
}

\begin{document}

\begin{questions}
\question[1] What is $1+1$? 
\begin{choices} \choice 1 \CC 2 \choice 3 \choice 4 \end{choices}

\question[1] What is $2+1$? 
\begin{choices} \choice 1 \choice 2 \CC 3 \choice 4 \end{choices}

\question[1] What is $2+2$? 
\begin{choices} \choice 1 \choice 2 \choice 3 \CC 4 \end{choices}


\end{questions}

\MCanswers
\end{document}

它产生以下内容: 输出 1

问题是,我不想将问题 4-10 视为 ??。我需要更加动态,这样如果我有 3 个问题,它就会打印这 3 个问题的答案,依此类推。

我知道问题出在这里:

\foreach \x in {1,...,10}{\centering\noindent \x.~\ref{sol:\x}\par }}

但我不确定如何让 {1,... \numquestions} 发挥作用?

答案1

solcount您可以通过在使用前(而不是使用后)增加代码来简化代码。

如果您感兴趣的话,可以使用\label和 的替代方法\ref\csname ...\endscnane\xdef\expandafter允许\csname在运行 之前扩展宏名称\xdef。虽然通常不能在宏名称中添加数字,但\csname几乎可以使用任何数字。

优点是第一次运行就成功了。缺点是不能\MCanswers在问题之前添加。

\documentclass{exam}

\usepackage{tikz}

\newcounter{solcount}% set to 0

\newcommand{\CC}{\CorrectChoice\stepcounter{solcount}%
  \expandafter\xdef\csname sol.\thesolcount\endcsname{\thechoice}}
\newcommand\MCanswers{\section*{\centering{\textbf{{\LARGE Multiple Choice Solutions}}}}
    \foreach \x in {1,...,\thesolcount}{\centering \x.~\csname sol.\x\endcsname\par }}

\newcommand{\emptybox}[2][\textwidth]{% Empty Box
    \begingroup
    \setlength{\fboxsep}{-\fboxrule}%
    \noindent\hspace*{-5mm}\framebox[#1]{\rule{0pt}{#2}}%
    \endgroup
}

\begin{document}

\begin{questions}
\question[1] What is $1+1$? 
\begin{choices} \choice 1 \CC 2 \choice 3 \choice 4 \end{choices}

\question[1] What is $2+1$? 
\begin{choices} \choice 1 \choice 2 \CC 3 \choice 4 \end{choices}

\question[1] What is $2+2$? 
\begin{choices} \choice 1 \choice 2 \choice 3 \CC 4 \end{choices}


\end{questions}

\MCanswers
\end{document}

相关内容