我知道这听起来很傻,但我想在e+0
具有 S 个指定列的表中使用科学计数法。目前它只给我e0
。出于对称原因,在我的表中将零带符号看起来更好。
以下是一个小例子:
\documentclass[]{article}
\usepackage{siunitx}
% To increase space of some rows in tables, especially needed in header row before \hline
\newcommand\T{\rule{0pt}{2.6ex}} % Top strut
\newcommand\B{\rule[-1.2ex]{0pt}{0pt}} % Bottom strut
\begin{document}
\begin{table}[htbp]
\begin{center}
\footnotesize
\sisetup{output-exponent-marker = \text{e},exponent-product = {},retain-explicit-plus,retain-zero-exponent,table-format=+1.4e+2}
\begin{tabular}{llSS}
MRE Sample & $N$ & {$\mu_1 [Pa]$} & {$\alpha_1 [-]$} \B \\ \hline
{Isotropic $10\%$ MREs} & 1 & 1.5030e+05 & 4.2384e+00 \T \\
& 2 & 6.7175e+05 & 8.4376e-01 \\
& 3 & 6.7175e+05 & 8.4376e-01 \B \\ \hline
\end{tabular}
\end{center}
\caption[]{Scientific notation $e0$ instead of $e+0$}
\label{tab:example}
\end{table}
\end{document}
非常感谢您的帮助。Gerlind
答案1
我有一个非常丑陋的解决方案,它可以完成你的工作,但我几乎羞于提出建议。
定义:
\def\fix#1{\sisetup{output-exponent-marker=\text{e+}}#1}
然后在表中使用\fix{4.2384e+00}
而不是。4.2384e+00
如果有人正在寻找真正的解决方案,我认为这将涉及重新定义宏\siunitx_number_process_exponent
并在那里做一个非常小的更改(大约 1800 行siunitx.sty
)。我尝试这样做,但很快就放弃了,因为这个文件中的所有内容似乎都是使用实验性的 LaTeX 3 符号定义的,而我对此并不熟悉。抱歉...