带有 S 说明符的列中的“e+0”符号

带有 S 说明符的列中的“e+0”符号

我知道这听起来很傻,但我想在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 符号定义的,而我对此并不熟悉。抱歉...

相关内容