长表中的列太宽

长表中的列太宽

我是 LaTeX 的初学者,需要用它制作一些非常复杂的表格。我借助 TeX.SE 的帮助完成了绘制这些困难表格的工作。

这次我被表格难住了:除了一列(第 8 列)太宽外,其他都很好用。我试过一些技巧,但这次都不管用。有人能帮我解决这个问题吗?

\documentclass[a4paper,10pt]{article} 

\usepackage{graphicx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{pdflscape}
\usepackage{footnote}

\begin{document}
\begin{landscape}
\begin{center}
\begin{savenotes}
{\renewcommand{\arraystretch}{1.1}
\begin{longtable}{|*{4}{c@{\hskip1pt}|}|*{4}{c@{\hskip1pt}|}|*{1}{c@{\hskip1pt}|}|*{3}{c@{\hskip1pt}|}|*{3}{c@{\hskip1pt}|}|*{1}{c@{\hskip1pt}|}}
\hline

{\bf \multirow{3}{*}{\rotatebox[origin=c]{90}{Nodes}}}& {\bf \multirow{3}{*}{\rotatebox[origin=c]{90}{Clusters}}}& \multirow{3}{1cm}{${|E^*|}$}& \multirow{3}{1.2cm}{\bf{\%age gap of} ${|E_{heu}|}$}& \multicolumn{4}{c|}{\bf \small Percentage of Clusters removed by}& \multirow{3}{1.4cm}{\small \bf No. of nodes removed}& \multicolumn{7}{c|}{\bf \small Time for computing solution (in seconds)}  \\\cline{5-8} \cline{10-16}


 & & &  & \multirow{2}{1cm}{Red 1\&2}& \multirow{2}{1cm}{Red 3}& \multirow{2}{1cm}{Red 4}& \multirow{2}{1cm}{Red 5}& & \multicolumn{3}{c|}{\bf {Before reductions}}& \multicolumn{3}{c|}{\bf {After reductions}}& \multirow{2}{1cm}{\bf {heu}}\\\cline{10-15}

& & &  &  & & & & & inr & rf-inr & imp & inr & rf-inr& imp&  \\\hline


\multirow{3}{*}{6}& 6& 6.00& 0.00& 31.67& 16.67& 0.00& 0.00& 2.80& 0.03& 0.02& 0.02& 0.00& 0.01& 0.01& 0.01\\
  & 18& 8.40& 7.14& 1.67& 42.78& 0.00& 0.00& 0.10& 0.03& 0.04& 0.03& 0.02& 0.02& 0.02& 0.02\\
  & 30& 10.40& 2.88& 0.00& 56.00& 0.67& 0.00& 0.00& 0.06& 0.05& 0.05& 0.02& 0.02& 0.02& 0.03\\\hline
\multirow{3}{*}{8}& 8& 8.00& 1.25& 37.50& 16.25& 0.00& 0.00& 4.30& 0.06& 0.06& 0.03& 0.01& 0.01& 0.01& 0.01\\
  & 24& 12.10& 9.09& 0.00& 37.08& 0.00& 0.00& 0.00& 0.11& 0.09& 0.07& 0.05& 0.05& 0.04& 0.03\\
  & 40& 14.60& 12.33& 0.00& 50.25& 0.00& 0.00& 0.00& 0.23& 0.13& 0.10& 0.06& 0.05& 0.04& 0.06\\\hline

\end{longtable}
}
\end{savenotes}
\end{center}
\end{landscape}
\end{document}

请参阅附图

答案1

我建议你精简和简化环境中的大部分代码longtable。我还建议你不是使用粗体完全不需要;真的不需要。双垂直线也不需要。

在此处输入图片描述

\documentclass[a4paper,10pt]{article} 

\usepackage{graphicx}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{pdflscape} % for 'landscape' env.
\usepackage{footnote}  % for 'savenotes' env. 

\begin{document}
\begin{landscape}
\centering
\begin{savenotes}
\renewcommand{\arraystretch}{1.1}
\setlength\tabcolsep{4pt}
\begin{longtable}{|*{16}{c|}}
\hline

\multirow{3}{*}{\rotatebox[origin=c]{90}{Nodes}}& 
\multirow{3}{*}{\rotatebox[origin=c]{90}{Clusters}} & 
\multirow{3}{*}{$|E^*|$}& 
   \multirow{3}{1.2cm}{{\% age gap of $|E_{heu}|$}}& 
   \multicolumn{4}{c|}{\small Percent.\ of clusters removed by}& 
   \multirow{3}{1.3cm}{\small No.\ of nodes removed}& 
   \multicolumn{7}{c|}{\small Time for computing solution (in seconds)}  \\
   \cline{5-8} \cline{10-16}
 & & & & 
 \multirow{2}{1cm}{Red 1\&2}& 
 \multirow{2}{1cm}{Red 3}& 
 \multirow{2}{1cm}{Red 4}& 
 \multirow{2}{1cm}{Red 5}& & 
 \multicolumn{3}{c|}{\small Before reductions}& 
 \multicolumn{3}{c|}{\small After reductions}& 
 \multirow{2}{*}{heu}\\
 \cline{10-15}
& & & & & & & & & inr & rf-inr & imp & inr & rf-inr& imp & \\
\hline\hline
\endhead

\hline
\endfoot

\multirow{3}{*}{6}& 6& 6.00& 0.00& 31.67& 16.67& 0.00& 0.00& 2.80& 0.03& 0.02& 0.02& 0.00& 0.01& 0.01& 0.01\\
  & 18& 8.40& 7.14& 1.67& 42.78& 0.00& 0.00& 0.10& 0.03& 0.04& 0.03& 0.02& 0.02& 0.02& 0.02\\
  & 30& 10.40& 2.88& 0.00& 56.00& 0.67& 0.00& 0.00& 0.06& 0.05& 0.05& 0.02& 0.02& 0.02& 0.03\\
\hline
\multirow{3}{*}{8}& 8& 8.00& 1.25& 37.50& 16.25& 0.00& 0.00& 4.30& 0.06& 0.06& 0.03& 0.01& 0.01& 0.01& 0.01\\
  & 24& 12.10& 9.09& 0.00& 37.08& 0.00& 0.00& 0.00& 0.11& 0.09& 0.07& 0.05& 0.05& 0.04& 0.03\\
  & 40& 14.60& 12.33& 0.00& 50.25& 0.00& 0.00& 0.00& 0.23& 0.13& 0.10& 0.06& 0.05& 0.04& 0.06\\
\end{longtable}
\end{savenotes}
\end{landscape}
\end{document}

答案2

作为补充米科回答:

在此处输入图片描述

\documentclass[a4paper,10pt]{article}

\usepackage{graphicx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{pdflscape}
\usepackage{footnote}

\usepackage{booktabs, makecell, rotating}% <-- added
\settowidth\rotheadsize{\theadfont Clusters}% <-- added

\usepackage{siunitx}

\begin{document}
\begin{landscape}
\begin{center}
\begin{savenotes}
{\renewcommand{\arraystretch}{1.1}
 \setlength\tabcolsep{4pt}
\begin{longtable}{c  % <-- new columns definition, based on siunitx
                  S[table-format=2.0]
             *{4}{S[table-column-width=11mm,
                    table-format=2.2]}
            *{10}{S[table-column-width=11mm,
                    table-format=1.2]}
                 }
    \toprule % <-- from booktabs
\multirow[b]{3}{*}[1ex]{\rothead{Nodes}}% <-- from makecell
    & {\multirow[b]{3}{*}[1ex]{\rothead{Clusters}}}
    & {\multirow[b]{3}{1cm}[-1ex]{$|E^*|$}}
    & {\multirow[b]{3}{1.2cm}[-1ex]{\%age gap of $|E_{heu}|$}}
    & \multicolumn{4}{c}{Percentage of Clusters removed by}
    & {\multirow[b]{3}{1.4cm}[-1ex]{No. of nodes removed}}
    & \multicolumn{7}{c}{Time for computing solution (in seconds)}  \\
    \cmidrule(lr){5-8} \cmidrule(l){10-16}
 & & &  & {\multirow{2}{*}{\makecell{Red\\ 1\&2}}}
        & {\multirow[b]{2}{*}{Red 3}}
        & {\multirow[b]{2}{*}{Red 4}}
        & {\multirow[b]{2}{*}{Red 5}}
          & & \multicolumn{3}{c}{Before reductions}
            & \multicolumn{3}{c}{After reductions}
            & {\multirow{2}{1cm}{heu}}  \\
    \cmidrule(lr){10-12} \cmidrule(lr){13-15}
 & & &  &  & & & & & {inr} & {rf-inr} & {imp} & {inr} & {rf-inr} & {imp} &  \\
    \midrule
\multirow{3}{*}{6}
 & 6& 6.00& 0.00& 31.67& 16.67& 0.00& 0.00& 2.80& 0.03& 0.02& 0.02& 0.00& 0.01& 0.01& 0.01\\
 & 18& 8.40& 7.14& 1.67& 42.78& 0.00& 0.00& 0.10& 0.03& 0.04& 0.03& 0.02& 0.02& 0.02& 0.02\\
 & 30& 10.40& 2.88& 0.00& 56.00& 0.67& 0.00& 0.00& 0.06& 0.05& 0.05& 0.02& 0.02& 0.02& 0.03\\
    \midrule
\multirow{3}{*}{8}
 & 8& 8.00& 1.25& 37.50& 16.25& 0.00& 0.00& 4.30& 0.06& 0.06& 0.03& 0.01& 0.01& 0.01& 0.01\\
 & 24& 12.10& 9.09& 0.00& 37.08& 0.00& 0.00& 0.00& 0.11& 0.09& 0.07& 0.05& 0.05& 0.04& 0.03\\
 & 40& 14.60& 12.33& 0.00& 50.25& 0.00& 0.00& 0.00& 0.23& 0.13& 0.10& 0.06& 0.05& 0.04& 0.06\\
    \bottomrule
\end{longtable}
}
\end{savenotes}
\end{center}
\end{landscape}
\end{document}

也许你会喜欢这个更专业的表格

注意:您的基本问题可以通过两种方式解决:

  • 将文本分成\multicolumn{4}{c}{Percentage of Clusters removed by}两行,宽度multicolumn小于跨列宽度的总和,并保留列定义
  • 或者根据建议更改列定义米科并且在这个答案中进一步阐述

相关内容