表格 - 根据小数点逗号对齐

表格 - 根据小数点逗号对齐

当我不知道逗号前有多少个数字以及数字有多少位小数时,如何根据小数点逗号对齐表格中的数字?

\documentclass[12pt,a4paper]{report}
\usepackage[english,czech]{babel}
\usepackage[margin=2.5cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern,textcomp}
\usepackage{amsmath, amssymb, bm}
\usepackage[nottoc]{tocbibind}
\usepackage{icomma,dcolumn,booktabs}

\newcommand{\mc}[1]{\multicolumn{1}{c}{#1}}
\usepackage{tabularx, ragged2e}
\newcolumntype{d}[1]{D{.}{,}{#1}}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\begin{document}

\begin{table}\small
\setlength\tabcolsep{3pt}
\begin{tabularx}{\textwidth}{@{} L *{8}{c} @{}}
\toprule
Číslo & $P$ & $T_0$ & $e$ & $\omega$ & $i$ & $a$  \\[0.33ex]
zdroje& (dny) & (RJD) & & ($^\circ$) & ($\mathrm{M}_{\odot}$) & ($\mathrm{M}_{\odot}$) \\
\midrule
1 & 5,732436(15) & 54002,780(46) & 0,0910(37) & 149,2(3,0) &  &  \\
2 & 5.732824(3) & 54002,7241(96) & 0,0858(41) & 145,6(3,9) && \\
3 & 5.732824(1) & 54002,7775(34) & 0,0883(26) & 149,1(2,3) && \\
\bottomrule
\addlinespace

\end{tabularx}
\end{table}
\end{document}

在此处输入图片描述

答案1

带有siunitxmakecell包装:

在此处输入图片描述

在您的 mwe 中,小数点和逗号的使用很混乱。我决定使用小数点。如果您希望在结果表中使用逗号,那么您需要在序言中添加:

\sisetup{output-decimal-marker={,}}

而且你对不确定性(用逗号)的使用也不清楚。 siunitx据我所知,包中不支持这种符号。

\documentclass[12pt,a4paper]{report}
\usepackage{booktabs, makecell}
\usepackage{siunitx}

\begin{document}
    \begin{table}[htb]
    \small
    \setlength\tabcolsep{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} 
                            c
                            S[table-format=1.6(2)]
                            S[table-format=5.3(2)]
                            S[table-format=1.4(2)]
                            S[table-format=3.1(2)]
                            cc % for those columns is not clear what is in them
                            }
    \toprule
\makecell[t]{Číslo\\ zdroje}
    &   {\makecell[t]{$P$\\ (dny)}}
        &   {\makecell[t]{$T_0$\\ (RJD)}}
            &   {\makecell[t]{$e$}}
                &   {\makecell[t]{$\omega$\\ (\si{\degree})}}
                    &   {\makecell[t]{$i$\\ ($\mathrm{M}_{\odot}$)}}
                        &   {\makecell[t]{$a$\\ ($\mathrm{M}_{\odot}$)}}    \\
    \midrule
1 & 5.732436(15) & 54002.780(46)  & 0.0910(37) & 149.2(30) &   &            \\
2 & 5.732824(3)  & 54002.7241(96) & 0.0858(41) & 145.6(39) &   &            \\
3 & 5.732824(1)  & 54002.7775(34) & 0.0883(26) & 149.1(23) &   &            \\
    \bottomrule
\end{tabular*}
    \end{table}
\end{document}

相关内容