问题和解决方案的单独页面

问题和解决方案的单独页面

我正在制作带有随机数的基本算术工作表。

我想将问题与答案页面分开。不知道该怎么做。

理想情况下,它看起来应该是这样的,但每页上有更多的方程式。

问题页面

2+3=__

7=__+4

1+__=9

答案页面

2+3=5

7=3+4

1+8=9

我的代码将所有问题和答案放在一起,这是我输入的代码所期望的,因为我不知道如何将它们分开。我需要重新构造整个代码吗?

\documentclass{article}

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

\pgfmathsetseed{\number\pdfrandomseed}

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

\newcommand{\onefact}
{
 \InitVariables
 \ifcase\Structure\relax %
  \or
   \newcommand{\Question}{\(\PartA+\PartB=\_\_\_\)}
   \newcommand{\Answer}{\(\PartA+\PartB=\Sum\)}
  \or 
   \newcommand{\Question}{\(\PartA+\_\_\_=\Sum\)}
   \newcommand{\Answer}{\(\PartA+\PartB=\Sum\)}
  \or
   \newcommand{\Question}{\(\_\_\_+\PartB=\Sum\)}
   \newcommand{\Answer}{\(\PartA+\PartB=\Sum\)}
 \fi
}

\newcommand{\thismany}[1] 
{\foreach \x in {1,2,...,#1} { \onefact \par \Question \par \Answer \par}}

\begin{document}

\thismany{10}

\end{document}

答案1

有多种方法可以做到这一点,但使用\xdef创建列表可能是最简单的方法。注意,\newcommand检查命令是否已定义,因此如果您不知道或不关心,请使用\def

我还做了一些不必要的格式更改。

\documentclass{article}

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

\pgfmathsetseed{\number\pdfrandomseed}

\newcommand{\InitVariables}
{
 \pgfmathsetmacro{\PartA}{int(random(0,10))}
 \pgfmathsetmacro{\PartB}{int(random(0,10))}
 \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
}

\newcommand{\answerlist}{}% reserve macro name

\newcommand{\thismany}[1] 
{\foreach \x in {1,2,...,#1} { \onefact \Question \par 
   \xdef\answerlist{\answerlist \Answer \par}}}

\begin{document}
\parskip=\baselineskip
\thismany{10}

\newpage
\answerlist

\end{document}

相关内容