在 Latex tabularx 环境中调整表格

在 Latex tabularx 环境中调整表格

我在调整下表时遇到了困难。我有如下代码:

\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列(需要更新版本的数组)。此外,使用书签规则代替和hlinecline以便更好地在行之间留出空间。如果您希望第 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}

相关内容