我想以科学计数法形式导出图形,例如,数字 1.25e-8 应该是 $1.25\times 10^{-8} $。但是我发现,如果我使用预定义样式作为 pgfmathprintnumber 的选项,指数将不会出现。例如,
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pgfkeys{
/pgf/number format/.cd,
sci,
sci generic={mantissa sep=\times,exponent={10^{#1}}}}
\pgfmathprintnumber{1.25e-8}
\tikzset{
/pgf/number format/scinum/.style={
sci,
sci generic={mantissa sep=\times,exponent={10^{#1}}},
},
}
\pgfmathprintnumber[scinum]{1.25e-8}
\end{document}
第一个结果是正确的形式,而第二个结果丢失了指数。
我怎么解决这个问题?
答案1
这不是一个真正的 pgf 问题,而是一个 LaTeX 问题:如果你在定义中定义某些东西,则需要添加#
,例如这个帖子。也就是说,您需要在命令中将替换#1
为。##1
\tikzset
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pgfkeys{
/pgf/number format/.cd,
sci,
sci generic={mantissa sep=\times,exponent={10^{#1}}}}
\pgfmathprintnumber{1.25e-8}
\tikzset{
/pgf/number format/scinum/.style={
sci,
sci generic={mantissa sep=\times,exponent={10^{##1}}},
},
}
\pgfmathprintnumber[scinum]{1.25e-8}
\end{document}