siunitx を使用して、列内の数字を揃えています。問題は、意図的に先頭に 1 行の大きな数字 (1,000 ごとに ',' で示される) が 1 つあることです。次の例を参照してください。
達成したいこと:
1) 小数点を小数点「.」に揃えます。これは 2 行目、3 行目、4 行目です。
2) 大きな数字、つまりこの例では行 1 と 5 を中央に配置します。さまざまなオプションをテストしたところ、大きな数字は常に左寄りまたは右寄りのどちらかでした。可能であれば、中央に配置する必要があります。書式設定の点ではこれが最も理にかなっていると思います。
出来ますか?
\documentclass{article}
\usepackage{siunitx}
\sisetup{%
input-ignore={,},
input-decimal-markers = {.},
table-format = 2.2,
table-number-alignment = center,
}%
\begin{document}
\begin{tabular}{SS}
row & alignToDec \\
row1: & 19,000,000.0 \\
row2: & 12.38 \\
row3: & 1.97 \\
row4: & 91.01 \\
row5: & 87,000,000.0 \\
\end{tabular}
\end{document}
答え1
何らかの理由でコードはコンパイルされますが、次のようになります:
S
1)数式を含まない列には列タイプを使用しないでください (少なくともそうする理由はありません) 。
2) 'S' 列内のセルの内容がテキストの場合は、それを中括弧で囲みます。(この方法では、コンテンツはテキストとみなされるため、siunitx ではデフォルトで中央に配置されます)。[2 番目の列の「壊れた」alignToDec が中括弧の外側にある場合は、中括弧の内側に配置して違いを確認してください]
3) 大きな数字に対しても上記と同じ方法を使用します。
4)列table-format
にオプションの引数として を指定できますS
。(siunitx
一般的にはこのようにした方がうまく動作します)
\documentclass{article}
\usepackage{siunitx}
\sisetup{%
input-ignore={,},
input-decimal-markers = {.},
table-number-alignment = center,
}%
\begin{document}
\begin{tabular}{cS[table-format=2.2]}
row & {alignToDec} \\
row1: & {19,000,000.0} \\
row2: & 12.38 \\
row3: & 1.97 \\
row4: & 91.01 \\
row5: & {87,000,000.0} \\
\end{tabular}
\end{document}
追伸:luatex
タグを削除してください。