我正在 LaTeX 环境中开发一些表格,但在间距方面遇到了一些问题。最初,我能够使用标准 生成表格\begin{table}
,但后来我尝试添加一些功能,因为如果表格太长(使用longtable
),就会出现拆分表格的功能。我还想按小数点和中心对齐数字,这就是我使用siunitx
包的原因。问题出在最后一列,它的宽度几乎是其他列的两倍。如果我指定列宽,问题就会“消失”,但我真的很想知道自动生成表格宽度的可能性。
代码如下:
\documentclass[paper=a4, fontsize=11pt]{scrartcl}
\usepackage[english]{babel}
\usepackage{siunitx}
\usepackage{longtable}
\usepackage{booktabs}
\begin{document}
\begin{longtable}{l*{4}{S}}
% no problem specifying the column width\begin{longtable}{l*{4}{S[table-column-width=1.25cm]}}
\caption{Univariate Item Descriptives}\\
\toprule
\multicolumn{1}{l}{\textbf{Item}} & \multicolumn{1}{c}{\textbf{Mean}} & \multicolumn{1}{c}{\textbf{Variance}} & \multicolumn{1}{c}{\textbf{Skewness}} & \multicolumn{1}{c}{\textbf{Kurtosis}} \\
\midrule
\endfirsthead
\multicolumn{5}{c}%
{\tablename\ \thetable\ -- \textit{Univariate Item Descriptives (Continued from previous page)}} \\
\toprule
\textbf{Item} & \textbf{Mean} & \textbf{Variance} & \textbf{Skewness} & \textbf{Kurtosis} \\
\midrule
\endhead
\hline \multicolumn{5}{r}{\textit{Continued on next page}} \\
\endfoot
\bottomrule
\endlastfoot
2. EX + & 2.788 & 1.060 & -0.120 & -0.368\\
3. DS + & 4.080 & 0.853 & -1.141 & 1.379\\
4. AM + & 3.684 & 0.705 & -0.541 & 0.744\\
5. EX + & 3.653 & 1.043 & -0.709 & 0.149\\
6. DS - & 2.240 & 1.665 & 0.725 & -0.603\\
7. AM + & 4.292 & 0.876 & -1.627 & 2.705\\
8. EX - & 2.419 & 1.588 & 0.449 & -0.897\\
9. AM + & 3.255 & 0.923 & -0.234 & -0.037\\
10. DS - & 3.449 & 1.408 & -0.453 & -0.599\\
11. EX + & 3.678 & 1.232 & -0.669 & -0.219\\
12. AM - & 2.830 & 1.162 & 0.029 & -0.565\\
13. EX - & 3.452 & 1.205 & -0.410 & -0.336\\
14. DS - & 2.442 & 1.374 & 0.310 & -0.893\\
15. AM - & 2.114 & 1.168 & 0.729 & -0.176\\
16. EX - & 3.070 & 1.085 & -0.176 & -0.347\\
17. AM + & 3.893 & 1.116 & -0.954 & 0.544\\
18. EX + & 3.311 & 0.964 & -0.238 & -0.066\\
19. AM - & 2.674 & 1.404 & 0.245 & -0.780\\
\end{longtable}
\end{document}
答案1
问题在于连续标题太宽;超出的部分总是转移到最后一列。
\documentclass[paper=a4, fontsize=11pt]{scrartcl}
\usepackage[english]{babel}
\usepackage{siunitx}
\usepackage{longtable}
\usepackage{booktabs}
\textheight=8\baselineskip % just for the example
\begin{document}
\begin{longtable}{
l
*{2}{S[table-format=1.3]}
*{2}{S[table-format=-1.3]}
}
\caption{Univariate Item Descriptives}\\
% first head
\toprule
\multicolumn{1}{l}{\textbf{Item}} &
\multicolumn{1}{c}{\textbf{Mean}} &
\multicolumn{1}{c}{\textbf{Variance}} &
\multicolumn{1}{c}{\textbf{Skewness}} &
\multicolumn{1}{c}{\textbf{Kurtosis}} \\
\midrule
\endfirsthead
% head
\multicolumn{5}{c}{\tablename\ \thetable\ -- \textit{Univariate Item Descriptives}} \\
\multicolumn{5}{r}{\textit{Continued from previous page}} \\
\toprule
\textbf{Item} & \textbf{Mean} & \textbf{Variance} & \textbf{Skewness} & \textbf{Kurtosis} \\
\midrule
\endhead
% foot
\hline \multicolumn{5}{r}{\textit{Continued on next page}} \\
\endfoot
% end foot
\bottomrule
\endlastfoot
% the table
2. EX + & 2.788 & 1.060 & -0.120 & -0.368\\
3. DS + & 4.080 & 0.853 & -1.141 & 1.379\\
4. AM + & 3.684 & 0.705 & -0.541 & 0.744\\
5. EX + & 3.653 & 1.043 & -0.709 & 0.149\\
6. DS - & 2.240 & 1.665 & 0.725 & -0.603\\
7. AM + & 4.292 & 0.876 & -1.627 & 2.705\\
8. EX - & 2.419 & 1.588 & 0.449 & -0.897\\
9. AM + & 3.255 & 0.923 & -0.234 & -0.037\\
10. DS - & 3.449 & 1.408 & -0.453 & -0.599\\
11. EX + & 3.678 & 1.232 & -0.669 & -0.219\\
12. AM - & 2.830 & 1.162 & 0.029 & -0.565\\
13. EX - & 3.452 & 1.205 & -0.410 & -0.336\\
14. DS - & 2.442 & 1.374 & 0.310 & -0.893\\
15. AM - & 2.114 & 1.168 & 0.729 & -0.176\\
16. EX - & 3.070 & 1.085 & -0.176 & -0.347\\
17. AM + & 3.893 & 1.116 & -0.954 & 0.544\\
18. EX + & 3.311 & 0.964 & -0.238 & -0.066\\
19. AM - & 2.674 & 1.404 & 0.245 & -0.780\\
\end{longtable}
\end{document}
答案2
如果你添加
\addtolength\textheight{-30\baselineskip}
你在第 2 页看到了空格的原因
您需要缩短标题或将其扩展到两行,这样就不会导致最后一列太宽。
也许
\multicolumn{5}{c}%
{\tablename\ \thetable\ -- \textit{Univariate Item Descriptives}} \\
\multicolumn{5}{r}%
{(\textit{Continued from previous page})} \\
\toprule
\textbf{Item} & \textbf{Mean} & \textbf{Variance} & \textbf{Skewness} & \textbf{Kurtosis} \\
\midrule
\endhead