具有有效数字的“美观打印”数字

具有有效数字的“美观打印”数字

我喜欢使用 LaTeX 以图形和表格形式显示数据。我使用 arrayjobx.sty 和 fp.sty 处理来自 Excel 或其他 Windows 数据处理工具的数据,效果非常好。但是,到目前为止,我还没能做到四舍五入到有效数字。

我想出了一个计划(一个非常好的计划!),用于获取存储数字的给定宏,并将该数字转换为科学计数法。但在我费力实现它之前,我想看看它是否已经完成了。以下是我设想的:

\documentclass{minimal}

\usepackage[E]{sigfigs}  %% conjectural package (will require fp.sty, trimspaces.sty, others)
                         %% options: E will do <mantissa>E+<exponent>
                         %%          e will do <mantissa>e+<exponent>
                         %%          times will do <mantissa>$\times{}10^{<exponent>}$

\usepackage{arrayjobx}
\newarray\MyData
\readarray{MyData}{ 3.14159 & 2077652 & 0.000006543 }


\begin{document}
\setsigfigs{3}
\checkMyData(1)
\sigfigs\cachedata % outputs 3.14

\checkMyData(2)
\sigfigs\cachedata % outputs 2.08E+6

\checkMyData(3)
\sigfigs\cachedata % outputs 6.54E-6

\end{document}

答案1

为了充实siunitx答案,你可以这样做

\documentclass{article}

\usepackage{arrayjobx}
\newarray\MyData
\readarray{MyData}{ 3.14159 & 2077652 & 0.000006543 }

\usepackage{siunitx}
\sisetup{output-exponent-marker = E,round-mode = figures, round-precision = 3,
  scientific-notation = true}

\begin{document}

\checkMyData(1)
\num{\cachedata}

\checkMyData(2)
\num{\cachedata}

\checkMyData(3)
\num{\cachedata}

\end{document}

这需要siunitxv2.2,因为该output-exponent-marker选项是新的。(我注意到,这指出了不使用时负指数的问题\times 10^{<exponent>}:我将在接下来的几天内研究这个问题,看看我能做些什么。)

答案2

希尼奇应该可以满足您的需求——尤其是当您要布置数字表格时。S此包提供的列描述符非常棒,因为它可以控制小数点对齐等内容。非常感谢 Joseph Wright 提供此包——我已使用它来排版许多实验报告!

感谢 Christian Feuersänger,最新版本的前列腺素F还包含大量函数,用于以十进制和科学计数法漂亮地打印数字,以及PGF绘图表将这些工具应用于表格材料的包。

相关内容