更改 pgfkeys sci 的“输出格式”或修复

更改 pgfkeys sci 的“输出格式”或修复

我定义了一个用于计算的环境,如下所示

\newcounter{Precision}
\newenvironment{calc}[1][1]{\setcounter{Precision}{#1}
$\pgfkeys{/pgf/fpu,/pgf/fpu/output format=sci}
}
{ 
\pgfmathfloatparsenumber{\pgfmathresult}
\pgfmathprintnumber[precision=\thePrecision]{\pgfmathresult}
\pgfkeys{/pgf/fpu=false}$}

以下环境调用将有助于设置所需的精度。

\begin{calc}[2]
  \pgfmathparse{5/(2^(15))}
\end{calc}

以类似的方式,我想通过参数将输出格式从“sci”更改为“fixed”。

\begin{calc}[2, fixed]
  \pgfmathparse{5/(2^(15))}
\end{calc}
\begin{calc}[2, sci]
  \pgfmathparse{5/(2^(15))}
\end{calc}

如何在新的环境中重新定义密钥?

答案1

您不需要为此创建环境。只需创建一个新命令作为快捷方式,并为打印样式指定一个默认参数即可。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fpu}
\newcommand*{\myparse}[2][sci,precision=2]{%
  \pgfkeys{/pgf/fpu}%
  \pgfmathparse{#2}%
  \pgfmathprintnumber[#1]{\pgfmathresult}%
  \pgfkeys{/pgf/fpu=false}%
}
\begin{document}
\myparse{5/(2^(15))},
\myparse[fixed, precision=5]{5/(2^(15))},
\myparse[1000 sep=\|, precision=0]{2^15)}
\end{document}

enter image description here

相关内容