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