表格超出文本宽度

表格超出文本宽度

我的表格超出了文本宽度...我已经尝试了很多东西(例如:tabularx,tabulary 和其他我现在不记得的东西)来尝试纠正,但它们都没有解决我的问题。

我有一个这样的情况:

\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage{tabularx}

\title{Your Paper}
\author{You}

\begin{document}
\maketitle
\begin{abstract}
Your abstract.
\end{abstract}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ultrices ipsum nec ultricies placerat. Quisque iaculis bibendum nunc, a ultricies magna pellentesque ut. Vivamus iaculis lacinia diam, sed porttitor metus ornare id. Nunc posuere magna at eleifend malesuada. Vestibulum non diam in lacus rutrum condimentum. Nullam fermentum facilisis turpis et tristique. Donec tempor purus nulla, vel ullamcorper augue sagittis sit amet. Integer blandit finibus ex, eget placerat neque mollis non. Mauris ut tempor lectus. Nullam id dolor vel lectus aliquet porta.

\section{Introduction}
Donec euismod feugiat lacus, quis convallis libero lacinia vitae. Morbi in efficitur ante, nec placerat orci. Curabitur nec rutrum neque. Integer mollis purus in dolor vulputate convallis egestas vel erat. Cras condimentum nunc eu urna sagittis pulvinar. In hac habitasse platea dictumst. Integer quam ligula, semper sit amet libero vitae, ornare maximus nibh. Quisque vitae interdum purus, in euismod arcu. Aenean at sollicitudin arcu, ac commodo lacus.

\begin{table}[h]
\centering
\begin{tabular}{ccccccccccc}
\hline
\multicolumn{1}{|c|}{PH} & \multicolumn{2}{c|}{10 } & \multicolumn{2}{c|}{20 }  & \multicolumn{2}{c|}{30 }  & \multicolumn{2}{c|}{45 }  & \multicolumn{2}{c|}{60 }  \\ \hline 
\multicolumn{1}{|c|}{W}  & \multicolumn{1}{c|}{RMSE} & \multicolumn{1}{c|}{Adj. $r^2$} & \multicolumn{1}{c|}{RMSE}  & \multicolumn{1}{c|}{Adj. $r^2$} & \multicolumn{1}{c|}{RMSE}  & \multicolumn{1}{c|}{Adj. $r^2$} & \multicolumn{1}{c|}{RMSE}  & \multicolumn{1}{c|}{Adj. $r^2$} & \multicolumn{1}{c|}{RMSE}  & \multicolumn{1}{c|}{Adj. $r^2$} \\ \hline
\multicolumn{1}{|c|}{4} & \multicolumn{1}{c|}{7.77} & \multicolumn{1}{c|}{0.92} & \multicolumn{1}{c|}{14.23}    & \multicolumn{1}{c|}{0.72} & \multicolumn{1}{c|}{19.23}    & \multicolumn{1}{c|}{0.48} & \multicolumn{1}{c|}{24.10}    & \multicolumn{1}{c|}{0.18} & \multicolumn{1}{c|}{26.61}    & \multicolumn{1}{c|}{0.01} \\ \hline
\multicolumn{1}{|c|}{7} & \multicolumn{1}{c|}{7.79} & \multicolumn{1}{c|}{0.91} & \multicolumn{1}{c|}{14.26}    & \multicolumn{1}{c|}{0.71} & \multicolumn{1}{c|}{19.22}    & \multicolumn{1}{c|}{0.47} & \multicolumn{1}{c|}{23.99}    & \multicolumn{1}{c|}{0.18} & \multicolumn{1}{c|}{26.35}    & \multicolumn{1}{c|}{0.02} \\ \hline
\end{tabular}
\caption{My caption}
\label{my-label}
\end{table}


\end{document}

我该如何解决这个问题?我想将其缩小以适合文本的边缘。但是,如果它变得太小,我希望得到一个意见和一个示例,说明如何以其他方式显示相同的信息。一个重要的方面是,我将有 33 个表格具有相同的问题。每个表总共有 18 行,而不是这里显示的两行(这只是一个例子)。

PS:这不是我正在使用的文档类。这只是一个例子,不要在这里放大量代码。在我的文档中我有更多空间,但问题是一样的。

答案1

booktabs可以显著改善表格的外观。rotating允许您将其呈现为sidewaystable

\documentclass[a4paper]{article}
\usepackage{booktabs,rotating}

\begin{document}
  \begin{sidewaystable}
    \centering
    \begin{tabular}{*{11}{c}}
      \toprule
      PH & \multicolumn{2}{c}{10 } & \multicolumn{2}{c}{20}  & \multicolumn{2}{c}{30}  & \multicolumn{2}{c}{45}  & \multicolumn{2}{c}{60}  \\
      W  & RMSE & Adj. $r^2$ & RMSE  & Adj. $r^2$ & RMSE  & Adj. $r^2$ & RMSE  & Adj. $r^2$ & RMSE  & Adj. $r^2$ \\\midrule
      4 & 7.77 & 0.92 & 14.23    & 0.72 & 19.23    & 0.48 & 24.10    & 0.18 & 26.61    & 0.01 \\
      7 & 7.79 & 0.91 & 14.26    & 0.71 & 19.22    & 0.47 & 23.99    & 0.18 & 26.35    & 0.02 \\ \bottomrule
    \end{tabular}
    \caption{My caption}
    \label{my-label}
  \end{sidewaystable}
\end{document}

旋转表格

如果你真的不想旋转它,你唯一的选择就是让它变小。这意味着要么重新考虑如何呈现数据,要么挤压它。只有你才能真正做到前者,所以这里有一个后者的例子。但请记住,你的读者不会感谢你这样做!

\documentclass[a4paper]{article}
\usepackage{booktabs}

\begin{document}
  \begin{table}
    \centering\small\setlength\tabcolsep{.225em}
    \begin{tabular}{*{11}{c}}
      \toprule
      PH & \multicolumn{2}{c}{10 } & \multicolumn{2}{c}{20}  & \multicolumn{2}{c}{30}  & \multicolumn{2}{c}{45}  & \multicolumn{2}{c}{60}  \\
      W  & RMSE & Adj. $r^2$ & RMSE  & Adj. $r^2$ & RMSE  & Adj. $r^2$ & RMSE  & Adj. $r^2$ & RMSE  & Adj. $r^2$ \\\midrule
      4 & 7.77 & 0.92 & 14.23    & 0.72 & 19.23    & 0.48 & 24.10    & 0.18 & 26.61    & 0.01 \\
      7 & 7.79 & 0.91 & 14.26    & 0.71 & 19.22    & 0.47 & 23.99    & 0.18 & 26.35    & 0.02 \\ \bottomrule
    \end{tabular}
    \caption{My caption}
    \label{my-label}
  \end{table}
\end{document}

压扁

答案2

还有一个选项,表格列和行的布局不同,例如:

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}

\begin{document}
  \begin{tabular}{
    S[table-format=2.0]
    S[table-format=1.0]
    S[table-format=2.2]
    S[table-format=1.2]
  }
    \toprule
    {PH} & {W} & {RMSE} & {Adj.\@ $r^2$} \\
    \midrule
    10 & 4 &  7.77 & 0.92 \\
       & 7 &  7.79 & 0.91 \\
    \addlinespace
    20 & 4 & 14.23 & 0.72 \\
       & 7 & 14.26 & 0.71 \\
    \addlinespace
    45 & 4 & 24.10 & 0.18 \\
       & 7 & 23.99 & 0.18 \\
    \addlinespace
    60 & 4 & 26.61 & 0.01 \\
       & 7 & 26.35 & 0.02 \\
    \bottomrule
  \end{tabular}
\end{document}

结果

答案3

如果您愿意用$\bar{R}^2$而不是来书写Adj. $r^2$——前一种符号在我的领域(即计量经济学)中更为常见——您可以充分缩短标题材料,以便表格能够适应“普通”模式,即纵向模式。与到目前为止给出答案的其他两个人一样,我也建议使用该包的规则绘制宏booktabs

在此处输入图片描述

\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{tabularx,booktabs}
\newcolumntype{C}{>{\centering\arraybackslash}X}

\title{Your Paper}
\author{You}

\begin{document}

\section{Introduction}

\begin{table}[h]
\begin{tabularx}{\textwidth}{ @{} l *{10}{C} @{} }
\toprule
PH & \multicolumn{2}{c}{10 } 
   & \multicolumn{2}{c}{20 }  
   & \multicolumn{2}{c}{30 }  
   & \multicolumn{2}{c}{45 }  
   & \multicolumn{2}{c}{60 }  \\ 
\cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-7} \cmidrule(lr){8-9} \cmidrule(l){10-11}  
W  & \textsc{rmse} & $\bar{R}^2$ & 
     \textsc{rmse} & $\bar{R}^2$ & 
     \textsc{rmse} & $\bar{R}^2$ & 
     \textsc{rmse} & $\bar{R}^2$ & 
     \textsc{rmse} & $\bar{R}^2$ \\ 
\midrule
4 & 7.77 & 0.92 & 14.23  & 0.72 & 19.23 & 0.48 & 24.10 & 0.18 & 26.61 & 0.01\\ 
7 & 7.79 & 0.91 & 14.26 & 0.71 & 19.22 & 0.47 & 23.99 & 0.18 & 26.35 & 0.02 \\ 
\bottomrule
\end{tabularx}
\caption{My caption}
\label{my-label}
\end{table}

\end{document}

相关内容