我有一张用科学计数法表示数字的大表,我正在使用siunitx
包,问题是一个数字是\SI{8.334e+00}
,然后我得到了8.334
我想要的8.334x10^0
(问题只存在于0
指数上)。另一个问题是,我无法将 \SI{...} 放在表的最后一列,因为我收到编译错误:! Use of \@@array doesn't match its definition.
。
\documentclass[11pt,notitlepage]{article}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{ | c | c | c | c | c | }
\hline
$E_m$ & $\lambda_1^{\text{tp}}$ & $\lambda_1^{\text{ts}} $ \\ \hline
8.0e7 & \SI{5.8938e+01} & \SI{4.319571e+01} & \SI{3.606297e+01} & 8.514868e+01 \\ \hline
1.0e8 & \SI{5.3398e+01} & \SI{3.583252e+01} & \SI{2.919383e+01} & 8.174273e+01 \\ \hline
2.0e8 & \SI{4.1397e+01} & \SI{1.953532e+01} & \SI{1.495294e+01} & 7.493084e+01 \\ \hline
5.0e8 & \SI{3.2030e+01} & \SI{8.334998e+00} & \SI{6.070005e+00} & 7.084370e+01 \\ \hline
\end{tabular}
\end{document}
答案1
\SI
需要二参数。使用时\SI{1234} \\
,\\
则将其读为第二个参数。这会导致错误,这并不奇怪。
为了得到零指数,使用
\sisetup{retain-zero-exponent = true}
我还建议使用S
列来格式化数字——siunitx
为表格中的数字提供了大量内容!一个优点:即使没有,数字也会对齐retain-zero-exponent
!
\documentclass[11pt,notitlepage]{article}
\usepackage{siunitx}
\sisetup{retain-zero-exponent}
\begin{document}
\begin{tabular}{ | S[table-format=1.1e1] | S[table-format=1.4e1] | *3{S[table-format=1.6e1] |} }
\hline
{$E_m$} & {$\lambda_1^{\text{tp}}$} & {$\lambda_1^{\text{ts}} $} && \\ \hline
8.0e7 & 5.8938e+01 & 4.319571e+01 & 3.606297e+01 & 8.514868e+01 \\ \hline
1.0e8 & 5.3398e+01 & 3.583252e+01 & 2.919383e+01 & 8.174273e+01 \\ \hline
2.0e8 & 4.1397e+01 & 1.953532e+01 & 1.495294e+01 & 7.493084e+01 \\ \hline
5.0e8 & 3.2030e+01 & 8.334998e+00 & 6.070005e+00 & 7.084370e+01 \\ \hline
\end{tabular}
\end{document}
(表格对于文本列来说太宽,但这是另一个问题。)
答案2
您需要使用retain-zero-exponent
SIunitx 的设置。而我倾向于\num{}
在显示没有单位的数字时使用。
\num[retain-zero-exponent=true]{8.334e+00}