我在调整下表时遇到了困难。我有如下代码:
\documentclass[dissertation,letterpaper,12pt]{utthesis}
\usepackage{tabularx}
\usepackages{multirow}
\begin{document}
\begin{table*}[hb]
\centering
\footnotesize
\caption{Parameter settings and results for different scenarios. \label[tab]{results}}
\begin{tabularx}{\textwidth}{c@{\extracolsep{\fill}}lcccccccccccc}
\hline
\multirow{4}{*}{\begin{tabular}[c]{@{}l@{}}Part\\ Type \#\end{tabular}} & \multicolumn{12}{c}{$\mu_j=U(91,876)$}\\ \cline{2-13}
& \multicolumn{3}{c}{$\lambda_j=U(0.01,0.1)$} & \multicolumn{3}{c}{$\lambda_j=U(0.09,0.1)$} & \multicolumn{3}{c}{$\lambda_j=U(0.1,0.5)$} & \multicolumn{3}{c}{$\lambda_j=U(0.5,0.9)$} \\ \cline{2-13}
& \multicolumn{12}{c}{Planning Horizon (Years)}\\ \cline{2-13}
& 10& 20& 30& 10& 20& 30& 10& 20& 30& 10& 20& 30\\ \hline
1& I& I& A& I& A& I& A& I& A& A& I& A\\
2& I& I& A& I& I& A& I& I& A& A& A& A\\
3& I& I& I& I& A& A& A& A& I& I& I& I\\
4& I& I& I& I& A& A& I& A& I& I& A& I\\
5& I& P& P& I& I& P& A& I& P& P& P& A\\
6& I& A& A& I& I& A& A& I& A& I& A& I\\ \hline
\end{tabularx}
\end{table*}
\end{document}
我使用 tabularx 环境,因为它可以轻松放置文本宽度。但是,它并不总是能很好地填充它。例如,上面的代码会产生类似以下内容:
我在这个结果中遇到了两个问题。第一个问题是我希望每 10、20、30 列的单元格宽度相等。第二个问题是cline
没有填满整个文本(不等于 \textwidth)。有什么快速解决方案吗?
答案1
注意! 我更正了\label[tab]{results}
,除非你的论文包重新定义了label
命令,否则这是错误的语法。不过,我真的建议你看看聪明人。
使用 tabular X
-column 因为您正在使用表格型。此外,我使用固定宽度列作为第一列大批的w
列(需要更新版本的数组)。此外,使用书签规则代替和hline
,cline
以便更好地在行之间留出空间。如果您希望第 2 行和第 3 行之间留出更多空间,请\addlinespace
使用书签:
示例 1
\documentclass[12pt]{article}
\usepackage{tabularx, booktabs, array, caption}
\usepackage{multirow}
\begin{document}
\begin{table*}
\centering
\footnotesize
\caption{Parameter settings and results for different scenarios.
\label{tab:results}} %%%% <------- Corrected
\begin{tabularx}{\textwidth}{@{}>{\raggedright}wl{1.5cm}*{12}{>{\centering\arraybackslash}X}@{}}
\toprule
\multirow{5}{*}{\begin{tabular}[c]{@{}l@{}}Part\\ Type \#\end{tabular}} & \multicolumn{12}{c}{$\mu_j=U(91,876)$}\\ \cmidrule{2-13}
& \multicolumn{3}{c}{$\lambda_j=U(0.01,0.1)$} & \multicolumn{3}{c}{$\lambda_j=U(0.09,0.1)$} & \multicolumn{3}{c}{$\lambda_j=U(0.1,0.5)$} & \multicolumn{3}{c}{$\lambda_j=U(0.5,0.9)$} \\ \cmidrule{2-13}
& \multicolumn{12}{c}{Planning Horizon (Years)}\\ \cmidrule{2-13}
& 10& 20& 30& 10& 20& 30& 10& 20& 30& 10& 20& 30\\ \midrule
1& I& I& A& I& A& I& A& I& A& A& I& A\\
2& I& I& A& I& I& A& I& I& A& A& A& A\\
3& I& I& I& I& A& A& A& A& I& I& I& I\\
4& I& I& I& I& A& A& I& A& I& I& A& I\\
5& I& P& P& I& I& P& A& I& P& P& P& A\\
6& I& A& A& I& I& A& A& I& A& I& A& I\\ \bottomrule
\end{tabularx}
\end{table*}
\end{document}
示例 2
这是通过拆分cmidrule
和!{\hspace*{0.25em}}
增加第 4 列和第 5 列、第 7 列和第 8 列以及第 10 列和第 11 列之间的空间来分组列。此外,我还习惯于\addlinespace
增加第 2 行和第 3 行之间的空间。
正是其中的(l)
语句\cmidrule(l){2-4}
分割了规则。只需删除括号及其内容即可获得一条可靠的规则。
\documentclass[12pt]{article}
\usepackage{tabularx, booktabs, array, caption}
\usepackage{multirow}
\begin{document}
\begin{table*}
\centering
\footnotesize
\setlength{\tabcolsep}{0.4em}
\caption{Parameter settings and results for different scenarios.
\label{tab:results}} %%%% <------- Corrected
\begin{tabularx}{\textwidth}{@{}>{\raggedright}
wl{1.5cm}*{3}{>{\centering\arraybackslash}X}
!{\hspace*{0.25em}}*{3}{>{\centering\arraybackslash}X}
!{\hspace*{0.25em}}*{3}{>{\centering\arraybackslash}X}
!{\hspace*{0.25em}}*{3}{>{\centering\arraybackslash}X}
@{}
}
\toprule
\multirow{6}{*}{\begin{tabular}[c]{@{}l@{}}Part\\ Type \#\end{tabular}}
& \multicolumn{12}{c}{$\mu_j=U(91,876)$}\\
\cmidrule(l){2-13}
& \multicolumn{3}{c}{$\lambda_j=U(0.01,0.1)$} & \multicolumn{3}{c}{$\lambda_j=U(0.09,0.1)$}
& \multicolumn{3}{c}{$\lambda_j=U(0.1,0.5)$} & \multicolumn{3}{c}{$\lambda_j=U(0.5,0.9)$} \\
\cmidrule(lr{\tabcolsep}){2-4}\cmidrule(lr{\tabcolsep}){5-7}
\cmidrule(lr{\tabcolsep}){8-10}\cmidrule(l){11-13}
\addlinespace[3pt]
& \multicolumn{12}{c}{Planning Horizon (Years)}\\ \cmidrule(l){2-13}
& 10& 20& 30& 10& 20& 30& 10& 20& 30& 10& 20& 30\\ \midrule
1& I& I& A& I& A& I& A& I& A& A& I& A\\
2& I& I& A& I& I& A& I& I& A& A& A& A\\
3& I& I& I& I& A& A& A& A& I& I& I& I\\
4& I& I& I& I& A& A& I& A& I& I& A& I\\
5& I& P& P& I& I& P& A& I& P& P& P& A\\
6& I& A& A& I& I& A& A& I& A& I& A& I\\ \bottomrule
\end{tabularx}
\end{table*}
\end{document}
答案2
如何组织表格是一个相当有见地的问题。有些人可能喜欢以下内容(基于 Sveinung 和我上面的评论):
\documentclass[12pt]{article}
\usepackage{geometry}
\usepackage{booktabs, makecell, multirow, tabularx}
\usepackage[skip=1ex]{caption}
\begin{document}
\begin{table}[hb]
\centering
\small
\caption{Results at $\mu_j=U(91,876)$ and different scenarios for $\lambda_j$.}
\label{tab:results}
\begin{tabularx}{\textwidth}{@{}
c *{3}{*{3}{>{\centering\arraybackslash}X}c}
*{3}{>{\centering\arraybackslash}X}
@{}}
\toprule
\addlinespace
& \multicolumn{15}{c}{Planning Horizon (Years)} \\
\multirow{2}{*}{\makecell{Part\\ Type \#}}
& 10& 20& 30 && 10& 20& 30 && 10& 20& 30 && 10& 20& 30 \\
& \multicolumn{3}{>{\footnotesize}c}{$\lambda_j=U(0.01,0.1)$}
&& \multicolumn{3}{>{\footnotesize}c}{$\lambda_j=U(0.09,0.1)$}
&& \multicolumn{3}{>{\footnotesize}c}{$\lambda_j=U(0.1,0.5)$}
&& \multicolumn{3}{>{\footnotesize}c}{$\lambda_j=U(0.5,0.9)$} \\
\cmidrule(r){1-1}\cmidrule{2-4}\cmidrule{6-8}\cmidrule{10-12}\cmidrule{14-16}
1 & I & I & A && I & A & I && A & I & A && A & I & A \\
2 & I & I & A && I & I & A && I & I & A && A & A & A \\
3 & I & I & I && I & A & A && A & A & I && I & I & I \\
4 & I & I & I && I & A & A && I & A & I && I & A & I \\
5 & I & P & P && I & I & P && A & I & P && P & P & A \\
6 & I & A & A && I & I & A && A & I & A && I & A & I \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}