当我尝试对齐 pgfplots 表中的值时,如果科学计数法中的指数有更多数字,就会遇到问题。
目前我使用的风格:
columns/0/.style={column type={r},column name=\makecell{Column 0},sci,sci 10e,precision=3, column type/.add={}{@{\hspace{1em}}}},
当我有如下值时,现在遇到了问题
1.1234 · 10⁹
1.12 · 10¹¹
如果没有右对齐,我得到
1.1234 · 10⁹
1.12 · 10¹¹
我想要的是
1.1234 · 10⁹
1.12 · 10¹¹
或者用零填充
1.1234 · 10⁹
1.1200 · 10¹¹
示例代码:
\documentclass[a4paper,10pt]{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstabletypeset[
columns/1/.style={column type={r},sci,sci 10e,precision=3, column type/.add={}{@{\hspace{1em}}}},
col sep=&,
row sep=\\,
]{
1 & 1234000000 \\
2 & 120000000000 \\
}
\end{document}
答案1
您可以使用 siunitx 的 S 类型列。
\documentclass[a4paper,10pt]{article}
\usepackage{siunitx} % Formats the units and values
\usepackage{pgfplotstable}
\usepackage[hang,bf,small]{caption}
\begin{document}
\pgfplotstabletypeset[
columns/1/.style={column type={r},sci,sci 10e,precision=3, column type/.add={}{@{\hspace{1em}}}},
col sep=&,
row sep=\\,
]{
1 & 1234000000 \\
2 & 120000000000 \\
}
\pgfplotstabletypeset[
string type,
columns/1/.style={column type={S[
round-mode=places,
round-precision = 3,
exponent-mode = scientific,
drop-zero-decimal=true,
table-format=1.3e1,
]}},
col sep={&},
row sep={\\},
header=false,
]{
1 & 1234000000 \\
2 & 120000000000 \\
}
\end{document}
产生
答案2
我现在使用sci,sci zerofill,sci 10e
左对齐列的样式column type={l}
。它将点对齐,因为现在它们左边的所有数字都具有相同的长度。