Re: siunitx 2.0

#50309
Up
0
Down
::

Ciao a tutti. Sono un fan del pacchetto siunitx e delle sue colonne S. Tuttavia, il fatto che nelle colonne S il separatore venga centrato può provocare disastri. Per esempio.
`\documentclass{scrreprt}
\usepackage[output-decimal-marker={,}]{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{SSSSS}
\toprule
{$D$} & {$P$} & {$u$} & {$\beta$} & {$G$} \\
{(m)} & {(kg)} & {(m)} & & {(Pa)} \\
\midrule
0.500 & 269.8 & 0.000674 & 1.79 & 0.04089 \\
1.50 & 421.0 & 0.001035 & 3.59 & 0.04089 \\
10.0 & 640.2 & 0.001565 & 7.18 & 0.04089 \\
\bottomrule
\end{tabular}
\end{document}`
produce una tabella inaccettabile: lo spazio tra le colonne è eccessivo.

La (nuova) versione 2.0 del pacchetto siuntix rimedia alla grande, però! Basta scrivere
`\sisetup{table-parse-only}`
nel preambolo e tutto va a posto: le colonne S si comportano ora come delle colonne standard di tipo “c”, con in più tutti i plus di siunitx nel trattamento dei numeri.

In alternativa, si può usare la chiave table-format, specificando a mano il formato di ogni colonna.
`\documentclass{scrreprt}
\usepackage[output-decimal-marker={,}]{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{S[table-format=2.3]%
S[table-format=3.1]%
S[table-format=1.6]%
S[table-format=1.2]%
S[table-format=1.5]}
\toprule
{$D$} & {$P$} & {$u$} & {$\beta$} & {$G$} \\
{(m)} & {(kg)} & {(m)} & & {(Pa)} \\
\midrule
0.500 & 269.8 & 0.000674 & 1.79 & 0.04089 \\
1.50 & 421.0 & 0.001035 & 3.59 & 0.04089 \\
10.0 & 640.2 & 0.001565 & 7.18 & 0.04089 \\
\bottomrule
\end{tabular}
\end{document}`
Le mie domande.

1. Perché l’opzione \sisetup{table-parse-only} non è predefinita, visto che rimedia a un comportamento che può essere molto fastidioso?

2. A occhio mi pare che l’ultima tabella produca un risultato uguale a quello che si ottiene con table-parse-only. A che pro allora usare tutti quei table-format?

3. In definitiva, quando è conveniente usare table-parse-only e quando invece no? Quando è conveniente usare table-format e quando no?

Abbiamo già discusso del perché ci sono quelle spaziature “abnormi” quando si usa la S senza specifica. Non vedo, come ha osservato Claudio, che l’opzione table-parse-only faccia quello che dici: le colonne dopo la prima vengono allineate perché hai inserito il giusto numero di cifre, uguali prima e dopo la virgola in tutte le celle. Se cambi il 640.2 in 111640.2, vedi che succede.

Quando usare “table-parse-only”? Esattamente, come dice Wright, per avere la funzionalità del trattamento dei numeri quando non si desiderano allineamenti alla virgola
(pagina 42 della documentazione, l’esempio nella tabella 25 mi pare illuminante).

Ciao
Enrico

Go to top