使练习/答案表对应

使练习/答案表对应

我该如何设置以便当随机数生成练习时,它们也自动生成答案表的答案?

我是否需要重新设计整个内容或者可以做一些较小的调整?

\documentclass{article}

\usepackage{ifthen}
\usepackage{pgf}
\usepackage{pgffor}

\pgfmathsetseed{\number\pdfrandomseed}

\newcommand{\InitVariables}
{
 \pgfmathsetmacro{\PartA}{int(random(0,9))}
 \pgfmathsetmacro{\PartB}{int(random(0,9))}
 \pgfmathsetmacro{\Sum}{int(\PartA+\PartB)}
 \pgfmathtruncatemacro{\Structure}{random(1,3)}
}

\newcommand{\Blank}{\rule[-3pt]{15pt}{.5pt}}

\newcommand{\onefact}
{
 \InitVariables
 \ifcase\Structure\relax %
  \or
   \def\Question{$\PartA+\PartB=\Blank$}
   \def\Answer{$\PartA+\PartB=\Sum$}
  \or 
   \def\Question{$\PartA+\Blank=\Sum$}
   \def\Answer{$\PartA+\PartB=\Sum$}
  \or
   \def\Question{$\Blank+\PartB=\Sum$}
   \def\Answer{$\PartA+\PartB=\Sum$}
 \fi
}

\begin{document}

\section{Exercises}
\begin{tabular}{lll}
\onefact \Question & \onefact \Question & \onefact \Question \\
\end{tabular}

\section{Answers to the Above Exercises}
\begin{tabular}{lll}
\onefact \Answer & \onefact \Answer & \onefact \Answer\\
\end{tabular}

\end{document}

该代码产生以下内容。当然,我不希望生成随机数第二次对于答案,我只希望练习中完成的方程式作为答案。

理想情况下,我也不必输入单独的答案表。

在此处输入图片描述

答案1

如果你的答案部分将始终跟随你的问题部分,那么以下内容就足够了。解决方案背后的原理是用 标记每个\NewQuestion{<tag>}<tag>这会将与 相关的答案存储<tag>在宏中,您可以稍后调用它。

在此处输入图片描述

\documentclass{article}

\usepackage{pgf}

\pgfmathsetseed{\number\pdfrandomseed}

\newcommand{\InitVariables}
{%
  \pgfmathsetmacro{\PartA}{int(random(0,9))}%
  \pgfmathsetmacro{\PartB}{int(random(0,9))}%
  \pgfmathsetmacro{\Sum}{int(\PartA+\PartB)}%
  \pgfmathtruncatemacro{\Structure}{random(0,2)}%
}

\DeclareRobustCommand{\Blank}{\rule[-3pt]{15pt}{.5pt}}

\newcommand{\Answer}[1]{$\csname Answer_#1\endcsname$}
\newcommand{\NewQuestion}[1]
{%
  \InitVariables
  \expandafter\xdef\csname Answer_#1\endcsname{\PartA + \PartB = \Sum}%
  \ifcase\Structure\relax %
      \let\PartA\Blank
    \or
      \let\PartB\Blank
    \or
      \let\Sum\Blank
  \fi
  $\PartA + \PartB = \Sum$
}

\begin{document}

\section{Exercises}

\begin{tabular}{ @{}lll }
  \NewQuestion{first} & \NewQuestion{2} & \NewQuestion{last}
\end{tabular}

\section{Answers to the Above Exercises}
\begin{tabular}{ @{}lll }
  \Answer{first} & \Answer{2} & \Answer{last}
\end{tabular}

\end{document}

我删除了一些冗余代码,因为有一些重复是不需要的。还有一些虚假空间已删除。

如果你想参考答案 问题,可以使用\label-\ref系统来检索该内容。

相关内容