Notación 'e+08' (no suprimir 0) en columnas con especificador S

Notación 'e+08' (no suprimir 0) en columnas con especificador S

Por razones de simetría en una tabla grande quiero el formato científico con 2 dígitos (es decir, e+08). Por defecto suprime el 0.

Esto es lo que hago:

 \documentclass[]{article}

 \usepackage{siunitx}


 \begin{document}

 \begin{table}[htbp]
 \begin{center}
 \footnotesize
 \def\fix#1{\sisetup{output-exponent-marker=\mathrm{e+}}#1}
 \sisetup{output-exponent-marker = \mathrm{e},exponent-product = {},retain-explicit-plus,retain-zero-exponent,table-format=+1.4e+2}
 \begin{tabular}{lSS}
 Sample & {$\mu_1 [Pa]$} & {$\alpha_1 [-]$} \\ \hline
 {Isotropic $10\%$ MREs} & 1.5030e+09 & \fix{4.2384e+00} \\ 
 & 6.7175e+10 & 8.4376e-01 \\
 & 6.7175e+08 & 8.4376e-01  \\ \hline 
 \end{tabular}
 \end{center}
 \caption[]{Scientific notation $e+9$, but for symmetry reasons I would like $e+09$}
 \label{tab:example}
 \end{table}

 \end{document}

Esa es la salida: ingrese la descripción de la imagen aquí

¡Muchas gracias por su ayuda! gerlind

Respuesta1

Si no te importa usarlo, pgfplotstablepuedes divertirte con expresiones de mantisa y exponentes y acercarte bastante. Y como beneficio adicional, ingresar a la tabla es un poco más fácil y la alineación aparentemente se realiza automáticamente (no lo verifiqué exhaustivamente).

\documentclass[]{article}
\usepackage{siunitx,pgfplotstable,booktabs}
\pgfplotsset{compat=1.10}% put your installed version no.
\pgfplotstableset{mycol/.style={
        sci,
        sci zerofill,
        sci precision=4,
        sci generic={
            mantissa sep={e\pgfmathparse{####1<0?"-":"+"}{\pgfmathresult}},
            exponent={%
            \pgfmathparse{abs(####1)<10?0:}\pgfmathresult%
            \pgfmathparse{int(abs(####1)}%
            \pgfmathprintnumber[int detect]{\pgfmathresult}%
            }
        }
    }
}
\begin{document}
\pgfplotstabletypeset[
columns/sample/.style={string type,column name=Sample},
columns/mu/.style={mycol,column name={$\mu_1$ [\si{\pascal}]}},
columns/a/.style={mycol,column name={$\alpha_1 [-]$}},
every head row/.style={before row=\toprule,after row=\midrule},
every last row/.style={after row=\bottomrule},
]{
sample mu a
{Isotropic $10\%$ MREs} 1.5030e9  4.2384
{}                      6.7173e10 8.4376e-1
{}                      6.7173e8  8.4376e-1
{}                      5.1232154654e7 0.0000124564e-12
{}                      1 2
}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Siguiendo con la respuesta 1 quiero agregar lo que finalmente hice. La tabla final es más complicada que la sugerida en la pregunta y utiliza más funciones de pgfplotstable.

\documentclass[]{article}
\usepackage{siunitx,pgfplotstable}
\usepackage{rotating}   
\usepackage[bf,footnotesize]{caption}   
\usepackage{multirow}   
% To increase space of some rows in tables, especially needed before and after \hline
\newcommand\T{\rule{0pt}{2.6ex}}         % Top strut
\newcommand\B{\rule[-1.2ex]{0pt}{0pt}} % Bottom strut
% pgfplot setup
\pgfplotsset{compat=1.8}% put your installed version no.
\pgfplotstableset{
mysci/.style={sci,sci zerofill,sci precision=4,sci sep align,sci generic={mantissa sep={e\pgfmathparse{##1<0?"-":"+"}{\pgfmathresult}},exponent={\pgfmathparse{abs(##1)<10?0:}\pgfmathresult\pgfmathparse{int(abs(##1)}\pgfmathprintnumber[int detect]{\pgfmathresult}}}},
myfixed/.style={fixed,precision=4,dec sep align,fixed zerofill}
}       
\begin{document}
\begin{sidewaystable}[htbp]
\centering
\footnotesize
\pgfplotstabletypeset[
columns/sample/.style={string type,column type = l,column name=Sample},
columns/strain/.style={int detect,column type/.add={|}{},column name={$\varepsilon [\%]$}},
columns/mu1/.style={mysci,column type/.add={|}{},column name={$\mu_1$ [\si{\pascal}]}},
columns/a1/.style={mysci,column name={$\alpha_1 [-]$}},
columns/mu2/.style={mysci,column name={$\mu_2$ [\si{\pascal}]}},
columns/a2/.style={mysci,column name={$\alpha_2 [-]$}},
columns/mu3/.style={mysci,column name={$\mu_3$ [\si{\pascal}]}},
columns/a3/.style={mysci,column name={$\alpha_3 [-]$}},
columns/mu/.style={myfixed,column type/.add={|}{},column name={$\mu$ [\si{\MPa}]}},
columns/r2/.style={myfixed,column type/.add={|}{},column name={$R_2$}},
columns/norm2/.style={myfixed,column name={$||\cdot ||_2$}},
every head row/.style={after row=\B, after row=\hline},
every last row/.style={after row=\B, after row=\hline},
every row no 0/.style={before row=\T},
every nth row={4[-1]}{after row=\B, after row=\hline},
every nth row={4}{before row=\T},
]{
sample strain mu1 a1 mu2 a2 mu3 a3 mu r2 norm2
\multirow{4}{1.5cm}{Pure Rubber}    40  3.0648e+05  1.5311e+00    7.5072e+02        1.5310e+00  -1.6977e+02  -8.8141e+00    0.2359   0.999986       0.011948
{}                                                  25  3.5423e+05  1.3275e+00      1.5690e+00      3.1398e-10  3.6224e-14          9.8203e-01      0.2351   0.999921   0.010659
{}                                                  15  3.4674e+05  1.3299e+00      7.6212e+02      1.2622e+01  1.4052e+00      9.7551e-01      0.2354  0.999660    0.008762
{}                                                  10  3.0004e+05  1.2792e+00  -6.3089e+04 -1.8889e-07 5.3477e+03      1.8277e+01      0.2408  0.998891        0.008090
\multirow{4}{1.5cm}{Isotropic $10\%$ MREs}  36      9.6811e+05      5.8200e-01          -1.3654e-02 -3.0302e+01  8.3622e-11  4.9200e+00  0.2817  0.999868  0.037122
{}                                                                  25      1.2535e+06      4.4717e-01          1.2331e+02  1.2547e-10      3.9909e-13      3.9848e+00  0.2803  0.999500  0.033976  
{}                                                                  15      -3.6086e+05     -1.4653e+00 9.8794e-07      3.5771e-09      1.2296e-09  1.7867e-07      0.2644  0.998287  0.025398 
{}                                                                  10      -8.2465e+04     -5.7995e+00     7.9359e+01  2.2204e-14  8.9302e-01      3.7158e-09  0.2391  0.996939    0.017356 
}
\captionsetup{width=0.9\textwidth}
\caption{Identified model parameters of \textit{Ogden Model}}
\label{ogden}
\end{sidewaystable}
\end{document}

El resultado final: ingrese la descripción de la imagen aquí

información relacionada