PGF 尺寸太大

PGF 尺寸太大

我正在尝试创建心算工作表,将数学事实从 6*7=___ 扩展为 6*700000=_________ 之类的。

显然,PGF 和/或 TeX 无法处理大于 16000 的数字。[我觉得这很奇怪;我觉得这是一种 1953 年计算机程序员可能会遇到的问题。]

对此最简单的解决办法是什么?

我找到了两个相关的帖子(链接1链接2)我想知道我是否应该:

  1. 坚持这些主题,开始摆弄\ifnum计数器、、\exp13\fpeval等。[不知道这些是什么]。主题中的解释对我来说有点专业术语,但我可以处理。这需要一段时间,但到目前为止,我已经学到了很多关于、LaTeXTikZ的知识。PGF
  2. 找到另一个资源来告诉我这些命令的作用。
  3. 寻找一些更简单的第三种方法来编写工作表来处理这些(相当简单的)计算。

谢谢!

\PowerOfTen当其他数字变得太大以致超过~16000 时,此代码无法编译。

\documentclass{article}

\usepackage{pgf}
 \pgfmathsetseed{\number\pdfrandomseed}

\newcommand{\InitVariables}
 {\pgfmathrandominteger{\FactorA}{1}{10}
  \pgfmathdeclarerandomlist{PowerOfTen}{{1}{10}{100}{1000}{10000}}
  \pgfmathrandomitem{\PowerOfTen}{PowerOfTen}
   \xdef\PowerOfTen{\PowerOfTen}  
  \pgfmathrandominteger{\FactorBInteger}{1}{10}
  \pgfmathsetmacro{\FactorB}{int(\FactorBInteger*\PowerOfTen)}
  \pgfmathsetmacro{\Product}{int(\FactorA*\FactorB)}  
  }

\setlength{\parindent}{0cm}

\begin{document}

\section*{Scaled Up Times Tables Exercises}

\InitVariables

FactorA = \FactorA

FactorBInteger= \FactorBInteger

PowerOfTen = \PowerOfTen

FactorB = \FactorB

FactorA x FactorB = Product

\(\FactorA\times\FactorB=\Product\)

\end{document}

答案1

您可以打开浮点单元库以获得额外的精度(当前 PGF 手册第 54 章)。

\documentclass{article}
\usepackage{pgf}
\usepgflibrary{fpu}

\pgfmathsetseed{\number\pdfrandomseed}

\newcommand{\InitVariables}{
    \pgfkeys{/pgf/fpu}
    % OPTIONAL: Output format: float, sci, fixed
    % DEFAULT: float
    \pgfkeys{/pgf/fpu/output format=float}
    \pgfmathrandominteger{\FactorA}{1}{10}%
    \pgfmathdeclarerandomlist{PowerOfTen}{{1}{10}{100}{1000}{10000}}%
    \pgfmathrandomitem{\PowerOfTen}{PowerOfTen}%
    \pgfmathrandominteger{\FactorBInteger}{1}{10}%
    \pgfmathsetmacro{\FactorB}{int(\FactorBInteger*\PowerOfTen)}%
    \pgfmathsetmacro{\Product}{int(\FactorA*\FactorB)}%
    % These two will only work with output format=float, otherwise comment out
    \pgfmathfloattoint{\FactorB}\pgfmathresult\let\FactorB\pgfmathresult%
    \pgfmathfloattoint{\Product}\pgfmathresult\let\Product\pgfmathresult%
    \pgfkeys{/pgf/fpu=false}%
}

\setlength{\parindent}{0cm}

\begin{document}

\section*{Scaled Up Times Tables Exercises}

\InitVariables

FactorA = \FactorA

FactorBInteger= \FactorBInteger

PowerOfTen = \PowerOfTen

FactorB = \FactorB

FactorA x FactorB = \Product

\(\FactorA\times\FactorB=\Product\)

\end{document}

在此处输入图片描述

我觉得这是一个 1953 年的计算机程序员可能会遇到的问题。

再过二十年,TeX 就已经这么古老了。

相关内容