![更改 pgfkeys sci 的“输出格式”或修复](https://linux22.com/image/377690/%E6%9B%B4%E6%94%B9%20pgfkeys%20sci%20%E7%9A%84%E2%80%9C%E8%BE%93%E5%87%BA%E6%A0%BC%E5%BC%8F%E2%80%9D%E6%88%96%E4%BF%AE%E5%A4%8D.png)
我定义了一个用于计算的环境,如下所示
\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}