我正在尝试将列按小数点对齐。我希望列宽相等。我认为一个可能的答案是这里,但我真的很难实现。有什么想法吗?
注意:我需要将星号放在同一列中。换句话说,我不能依赖-0.470&***
。但是,如果必要的话,我应该能够用其他代码(例如-0.470^{***}
)包装星号。
\documenttype{report}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{rllllll}
\hline
& 1 & 2 & 3 & 4 & 5 & 6 \\
\hline
1 & & & & & & \\
2 & 0.47*** & & & & & \\
3 & 0.28* & 0.24* & & & & \\
4 & 0.14 & -0.03 & -0.08 & & & \\
5 & -0.28* & -0.22 & -0.11 & -0.38*** & & \\
6 & 0.14 & -0.02 & 0.02 & 0.23* & -0.02 & \\
\hline
\end{tabular}
\end{table}
\end{document}
我最接近的一次是:
\documentclass{report}
\usepackage{siunitx}
\usepackage{booktabs}
\newcolumntype{L}{@{}l@{}} % a left column with no intercolumn space on either side
\newcommand{\mc}[1]{\multicolumn{1}{c}{#1}} % shorthand macro for column headings
\begin{document}
\begin{table}[ht]
\centering
%\begin{tabular}{rllllll}
\begin{tabular}{LS@{}S@{}S@{}S@{}S@{}S@{}}
\hline
\mc{} & \mc{1} & \mc{2} & \mc{3} & \mc{4} & \mc{5} & \mc{6} \\
\hline
1 & & & & & & \\
2 & 0.47*** & & & & & \\
3 & 0.28* & 0.24* & & & & \\
4 & 0.14 & -0.03 & -0.08 & & & \\
5 & -0.28* & -0.22 & -0.11 & -0.38*** & & \\
6 & 0.14 & -0.02 & 0.02 & 0.23* & -0.02 & \\
\hline
\end{tabular}
\end{table}
\end{document}
但请注意 (a) -0.28 和 * 之间的空间和 (b) 不同的列宽。
答案1
你可以玩以下游戏:
\documentclass{report}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{@{}l
S[table-format = -1.2,table-space-text-post = {*}]
S[table-format = -1.2,table-space-text-post = {*}]
S[table-format = -1.2,table-space-text-post = {*}]
S[table-format = -1.2,table-space-text-post = {*}]
S[table-format = -1.2,table-space-text-post = {*}]
S[table-format = -1.2,table-space-text-post = {*}]}
\hline
& {1} & {2} & {3} & {4} & {5} & {6} \\
\hline
1 & & & & & & \\
2 & 0.47*** & & & & & \\
3 & 0.28* & 0.24* & & & & \\
4 & 0.14 & -0.03 & -0.08 & & & \\
5 & -0.28* & -0.22 & -0.11 & -0.38*** & & \\
6 & 0.14 & -0.02 & 0.02 & 0.23* & -0.02 & \\
\hline
\end{tabular}
\end{table}
\end{document}