当我计算非常小的数字时,我会使用该fpu
包。但它似乎\pgfkeys{/pgf/fpu=false}
不起作用。
\documentclass[dvipdfmx]{article}
% packages
\usepackage{pgf}
\usepackage{tikz}
% libraries for tikz
\usetikzlibrary{fpu}
\begin{document}
\pgfkeys{/pgf/fpu=true, pgf/fpu/output format=fixed}
\pgfmathsetmacro{\Gu}{6.67*10^(-11)}
\pgfkeys{/pgf/fpu=false}
\pgfmathsetmacro{\Mc}{5.0*random(10,14)}
\end{document}
如果执行这个,会出现错误:
包 PGF 数学错误:操作“random”尚未在浮点单元中实现:-((在“5.0*random(10,14)”中)。
哪里不对了?
答案1
此错误早已修复。请更新您的 TeX 发行版。
https://github.com/pgf-tikz/pgf/commit/061d5c7153bb7eece61f38ae31486de7bb939493
\documentclass[dvipdfmx]{article}
% packages
\usepackage{pgf}
\usepackage{tikz}
% libraries for tikz
\usetikzlibrary{fpu}
% has to come after \usetikzlibrary{fpu}!
\makeatletter
\def\pgfmathfloat@install@unimplemented#1{%
\expandafter\pgfmathfloat@prepareuninstallcmd\csname pgfmath#1@\endcsname%
\expandafter\def\csname pgfmath#1@\endcsname##1{\pgfmathfloat@notimplemented{#1}}%
}
\makeatother
\begin{document}
\pgfkeys{/pgf/fpu=true, pgf/fpu/output format=fixed}
\pgfmathsetmacro{\Gu}{6.67*10^(-11)}
\pgfkeys{/pgf/fpu=false}
\pgfmathsetmacro{\Mc}{5.0*random(10,14)}
\end{document}