我正在制作带有随机数的基本算术工作表。
我想将问题与答案页面分开。不知道该怎么做。
理想情况下,它看起来应该是这样的,但每页上有更多的方程式。
问题页面
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}