\pgfkeys{/pgf/fpu=false} 有效吗?

\pgfkeys{/pgf/fpu=false} 有效吗?

当我计算非常小的数字时,我会使用该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}

相关内容