练习和解决方案页面

练习和解决方案页面

我之前的一个帖子,我问过如何为基本算术创建单独的练习和解决方案页面。我现在正在尝试对简单三项式进行因式分解,但它不起作用,我不确定为什么。我觉得代码的关键部分——定义练习页面和解决方案页面——基本相同,但它们显然不是,因为我的代码无法编译。

我确实知道,如果我注释掉主体中的行\FactoredPage,它就会编译,但我仍然会收到小错误消息。

发生了什么?

\documentclass{article}

\usepackage{pgf}
\usepackage{pgffor}

\setlength{\parindent}{0pt}

\pagestyle{empty}

\pgfmathsetseed{\number\pdfrandomseed}

\newcommand{\InitVariablesSTA} %all positives
{%
 \pgfmathsetmacro{\avar}{int(1)}
 \pgfmathsetmacro{\bvar}{int(random(1,11))}
 \pgfmathsetmacro{\cvar}{int(1)}
 \pgfmathsetmacro{\dvar}{int(random(1,11))}

 \pgfmathsetmacro{\Avar}{int(\avar*\cvar)}
 \pgfmathsetmacro{\Bvar}{int(\avar*\dvar+\bvar*\cvar)}
 \pgfmathsetmacro{\Cvar}{int(\bvar*\dvar)}
}

\newcommand{\STA}
{%
 \InitVariablesSTA%
 \newcommand{\factored}{\((x+\bvar)(x+\dvar)\)}%
 \newcommand{\expanded}{\(x^2+{\Bvar}x+\Cvar\)}%
}

\newcommand{\FactoredPage}{}

\newcommand{\ExpandedPage}[1]
{%
 \foreach \x in {1,...,#1}
  {%
   \STA \expanded \par
   \xdef\FactoredPage{\FactoredPage \factored \par}%
  }
}


\begin{document}

\ExpandedPage{10}

\FactoredPage

\end{document}

答案1

\(\)不生存\xdef。使用$

\newcommand{\STA}
{%
 \InitVariablesSTA
 \newcommand{\factored}{$(x+\bvar)(x+\dvar)$}%
 \newcommand{\expanded}{\(x^2+{\Bvar}x+\Cvar\)}%
}

在此处输入图片描述

有关的:通过 \foreach 构建表格内容

您可能会使用\protected@xdef,因此\(\)可能使用;另一种方法更简单。

答案2

以下是您需要做的。但无需任何 pgf(或类似)包。仅使用原语和纯 TeX 宏:

\input random
\newcount\tmpnum  \newcount\loopnum
\randomi=1  % fixed random sequence (independent of time of document processing)
\parindent=0pt

\def\ExpandedPage#1{%
   \def\FactoredPage{}\loopnum=0
   \loop
      \advance\loopnum by1
      \preparepages
      \ifnum\loopnum<#1 \repeat 
}
\def\preparepages{\par
   \setrannum\tmpnum{1}{10} \edef\bvar{\the\tmpnum}
   \setrannum\tmpnum{1}{10} \edef\dvar{\the\tmpnum}
   \tmpnum=\bvar \advance\tmpnum by\dvar  \edef\Bvar{\the\tmpnum}
   \tmpnum=\bvar \multiply\tmpnum by\dvar \edef\Cvar{\the\tmpnum}
   $x^2 + \Bvar x + \Cvar$\par
   \edef\FactoredPage{\FactoredPage$(x+\bvar)(x+\dvar)$\par}
}

\ExpandedPage{10}
\bigskip
\FactoredPage

\bye

相关内容