表格太宽,无法放在一页中

表格太宽,无法放在一页中
\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}

\begin{document}

\begin{table}[htbp]\centering
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\caption{Cross-sectional regression}
\begin{tabular}{l*{10}{D{.}{.}{-1}}}
\toprule
            &\multicolumn{1}{c}{(1)}         &\multicolumn{1}{c}{(2)}         &\multicolumn{1}{c}{(3)}         &\multicolumn{1}{c}{(4)}         &\multicolumn{1}{c}{(5)}         &\multicolumn{1}{c}{(6)}         &\multicolumn{1}{c}{(7)}         &\multicolumn{1}{c}{(8)}         &\multicolumn{1}{c}{(9)}         &\multicolumn{1}{c}{(10)}         \\
\midrule
rec                 &    -0.00887         &     -0.0302         &      -0.260         &      -0.203         &      -0.196         &      -0.142         &      -0.224         &      0.0137         &      -0.231         &      0.0640         \\
            &    [0.0523]         &    [0.0803]         &     [0.157]         &     [0.120]         &     [0.136]         &     [0.126]         &     [0.117]         &     [0.122]         &     [0.460]         &     [0.224]         \\
\addlinespace
Constant            &     -0.0912\sym{***}&    -0.00939         &       0.124\sym{***}&      0.0729\sym{**} &       0.112\sym{***}&       0.131\sym{***}&       0.148\sym{***}&       0.121\sym{***}&       0.235\sym{**} &       0.149\sym{***}\\
            &    [0.0100]         &    [0.0148]         &    [0.0290]         &    [0.0231]         &    [0.0264]         &    [0.0249]         &    [0.0237]         &    [0.0252]         &    [0.0817]         &    [0.0406]         \\
\midrule
Observations        &        8088         &        7153         &        6154         &        5313         &        4591         &        3983         &        3553         &        3186         &        2818         &        2441         \\
Adjusted \(R^{2}\)  &      -0.000         &      -0.000         &       0.000         &       0.000         &       0.000         &       0.000         &       0.001         &      -0.000         &      -0.000         &      -0.000         \\
\bottomrule
\multicolumn{11}{l}{\footnotesize Standard errors in brackets}\\
\multicolumn{11}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular}
\end{table}
\end{document}

这是我尝试创建表格时使用的代码。当我运行它并打印出 PDF 时,表格太宽,无法放在一页上。我一直在查看与我类似的问题,并尝试了这些答案中的建议,但我并没有真正让它发挥作用。

有什么建议么?

答案1

以下元素的组合将使表格适合文本块

  • 通过设置减少列间空白量\setlength\tabcolsep{1.5pt}(默认值6pt:)

  • 使用2.7代替作为列类型-1的说明符D

  • 用于\footnotesize将字体大小线性缩小 20%

  • 使用“正常宽度”文本块(例如,边距为 1 英寸)

  • 将行中的条目与观察次数放在一起

  • 缩写第一列中的一些长单词

  • 消除第一列左侧和最后一列右侧的空白。

(表格边缘的细垂直线是根据包装showframe的选项绘制的geometry。)

在此处输入图片描述

\documentclass{article}
\usepackage[margin=1in,showframe]{geometry}
\usepackage{booktabs,dcolumn}
\newcolumntype{d}[1]{D..{#1}}
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\newcommand\mc[1]{\multicolumn{1}{c}{#1}} % handy shortcut command
\begin{document}

\begin{table}
\setlength\tabcolsep{1.5pt} % default value is 6pt
\footnotesize
\centering
\caption{Cross-sectional regression}
\begin{tabular}{@{} l *{10}{d{2.7}} @{}} 
\toprule
&\mc{(1)} &\mc{(2)} &\mc{(3)} &\mc{(4)} &\mc{(5)} 
&\mc{(6)} &\mc{(7)} &\mc{(8)} &\mc{(9)} &\multicolumn{1}{c@{}}{(10)}  \\
\midrule
rec & -0.00887 & -0.0302 &  -0.260 &  -0.203 &  -0.196 &  -0.142 &  -0.224 &  0.0137 &  -0.231 &  0.0640         \\
    & [0.0523] & [0.0803] & [0.157] & [0.120] & [0.136] & [0.126] & [0.117] & [0.122] & [0.460] & [0.224]         \\
\addlinespace
Const.\    & -0.0912\sym{***}& -0.00939 &   0.124\sym{***}&  0.0729\sym{**} &   0.112\sym{***}&   0.131\sym{***}&   0.148\sym{***}&   0.121\sym{***}&   0.235\sym{**} &   0.149\sym{***}\\
& [0.0100] & [0.0148] & [0.0290] & [0.0231] & [0.0264] & [0.0249] & [0.0237] & [0.0252] & [0.0817] & [0.0406] \\
\midrule
Obs.\ & \mc{8088} & \mc{7153} & \mc{6154} 
& \mc{5313} & \mc{4591} & \mc{3983} & \mc{3553} 
& \mc{3186} & \mc{2818} & \multicolumn{1}{c@{}}{2441} \\
Adj.~\(R^{2}\)  &  -0.000 &  -0.000 &   0.000 &   0.000 & 0.000 & 0.000 & 0.001 & -0.000 &  -0.000 & -0.000  \\
\bottomrule \addlinespace
\multicolumn{11}{@{}l}{Standard errors in brackets}\\
\multicolumn{11}{@{}l}{\sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular}
\end{table}
\end{document}

附录:如果您愿意将表格置于横向模式,即将其旋转 90 度,通过加载包rotatingsidewaystable环境,您可以省去上面的一些调整,例如使用较小的字体大小并缩写第一列中的单词,并且仍然使表格适合(现在更宽的)文本块:

在此处输入图片描述

\begin{sidewaystable}
%\footnotesize %% no longer needed
\centering
\caption{Cross-sectional regression}
\smallskip
\begin{tabular}{@{}l*{9}{D{.}{.}{2.7}}d{2.6}@{}}
\toprule
&\mc{(1)} &\mc{(2)} &\mc{(3)} &\mc{(4)} &\mc{(5)} 
&\mc{(6)} &\mc{(7)} &\mc{(8)} &\mc{(9)} &\multicolumn{1}{c@{}}{(10)}  \\
\midrule
rec & -0.00887 & -0.0302 &  -0.260 &  -0.203 &  -0.196 &  -0.142 &  -0.224 &  0.0137 &  -0.231 &  0.0640         \\
    & [0.0523] & [0.0803] & [0.157] & [0.120] & [0.136] & [0.126] & [0.117] & [0.122] & [0.460] & [0.224]         \\
\addlinespace
Constant    & -0.0912\sym{***}& -0.00939 &   0.124\sym{***}&  0.0729\sym{**} &   0.112\sym{***}&   0.131\sym{***}&   0.148\sym{***}&   0.121\sym{***}&   0.235\sym{**} &   0.149\sym{***}\\
& [0.0100] & [0.0148] & [0.0290] & [0.0231] & [0.0264] & [0.0249] & [0.0237] & [0.0252] & [0.0817] & [0.0406] \\
\midrule
Observations & \mc{8088} & \mc{7153} & \mc{6154} 
& \mc{5313} & \mc{4591} & \mc{3983} & \mc{3553} 
& \mc{3186} & \mc{2818} & \multicolumn{1}{c@{}}{2441} \\
Adjusted \(R^{2}\)  &  -0.000 &  -0.000 &   0.000 &   0.000 & 0.000 & 0.000 & 0.001 & -0.000 &  -0.000 & -0.000  \\
\bottomrule \addlinespace
\multicolumn{11}{@{}l}{Standard errors in brackets}\\
\multicolumn{11}{@{}l}{\sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabular}
\end{sidewaystable}
\end{document}

答案2

等待更多详细信息,您可以这样做

\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
    \usepackage{tabularx}
\begin{document}

\begin{table}[htbp]
    \hspace{-3.5cm}
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
\begin{tabularx}{1.5\textwidth}{lccXXXXXXXX}
\toprule
  &\multicolumn{1}{c}{(1)}         &\multicolumn{1}{c}{(2)}         &\multicolumn{1}{c}{(3)}         &\multicolumn{1}{c}{(4)}         &\multicolumn{1}{c}{(5)}         &\multicolumn{1}{c}{(6)}         &\multicolumn{1}{c}{(7)}         &\multicolumn{1}{c}{(8)}         &\multicolumn{1}{c}{(9)}         &\multicolumn{1}{c}{(10)}         \\          
\midrule
rec                 &    -0.00887         &     -0.0302         &      -0.260         &      -0.203         &      -0.196         &      -0.142         &      -0.224         &      0.0137         &      -0.231         &      0.0640         \\
            &    [0.0523]         &    [0.0803]         &     [0.157]         &     [0.120]         &     [0.136]         &     [0.126]         &     [0.117]         &     [0.122]         &     [0.460]         &     [0.224]         \\
\addlinespace
Constant            &     -0.0912\sym{***}&    -0.00939         &       0.124\sym{***}&      0.0729\sym{**} &       0.112\sym{***}&       0.131\sym{***}&       0.148\sym{***}&       0.121\sym{***}&       0.235\sym{**} &       0.149\sym{***}\\
            &    [0.0100]         &    [0.0148]         &    [0.0290]         &    [0.0231]         &    [0.0264]         &    [0.0249]         &    [0.0237]         &    [0.0252]         &    [0.0817]         &    [0.0406]         \\
\midrule
Observations        &        8088         &        7153         &        6154         &        5313         &        4591         &        3983         &        3553         &        3186         &        2818         &        2441         \\
Adjusted \(R^{2}\)  &      -0.000         &      -0.000         &       0.000         &       0.000         &       0.000         &       0.000         &       0.001         &      -0.000         &      -0.000         &      -0.000         \\
\bottomrule
    \multicolumn{11}{l}{\footnotesize Standard errors in brackets}\\
\multicolumn{11}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \(p<0.001\)}\\
\end{tabularx}
\end{table}
\end{document}

这将导致这样的结果

在此处输入图片描述

tabularx 包提供了一种新的列类型“X”,这可能是您正在寻找的。我还使用 hspace 删除了左侧的 3.5 厘米,并将表格的宽度设置为文本宽度的 1.5 倍。

您可能需要更改边距或尝试这些设置,或者更具体地说:)

编辑:要旋转表格,请使用rotating包。然后,您可以将 \begin{table} 替换为 \begin{sidewaystable},这样您的表格就旋转了。显然,您可以删除 hspace 并根据自己的喜好调整 tabularx 环境的宽度……

\documentclass{article}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{rotating}
\usepackage{tabularx}
\begin{document}

\begin{sidewaystable}[htbp]\centering

\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
    \begin{tabularx}{0.99\textheight}{lccXXXXXXXX}
    \toprule
&\multicolumn{1}{c}{(1)}         &\multicolumn{1}{c}{(2)}         &\multicolumn{1}{c}     {(3)}         &\multicolumn{1}{c}{(4)}         &\multicolumn{1}{c}{(5)}            &\multicolumn{1}{c}{(6)}         &\multicolumn{1}{c}{(7)}         &\multicolumn{1}{c}{(8)}           &\multicolumn{1}{c}{(9)}         &\multicolumn{1}{c}{(10)}         \\          
\midrule
rec                 &    -0.00887         &     -0.0302         &      -0.260         &       -0.203         &      -0.196         &      -0.142         &      -0.224         &       0.0137         &      -0.231         &      0.0640         \\
          &    [0.0523]         &    [0.0803]         &     [0.157]         &      [0.120]         &     [0.136]         &     [0.126]         &     [0.117]         &      [0.122]         &     [0.460]         &     [0.224]         \\
\addlinespace
Constant            &     -0.0912\sym{***}&    -0.00939         &       0.124\sym{***}&        0.0729\sym{**} &       0.112\sym{***}&       0.131\sym{***}&       0.148\sym{***}&         0.121\sym{***}&       0.235\sym{**} &       0.149\sym{***}\\
          &    [0.0100]         &    [0.0148]         &    [0.0290]         &     [0.0231]         &    [0.0264]         &    [0.0249]         &    [0.0237]         &     [0.0252]         &    [0.0817]         &    [0.0406]         \\
\midrule
Observations        &        8088         &        7153         &        6154         &           5313         &        4591         &        3983         &        3553         &          3186         &        2818         &        2441         \\
Adjusted \(R^{2}\)  &      -0.000         &      -0.000         &       0.000         &        0.000         &       0.000         &       0.000         &       0.001         &       -0.000         &      -0.000         &      -0.000         \\
\bottomrule
\multicolumn{11}{l}{\footnotesize Standard errors in brackets}\\
\multicolumn{11}{l}{\footnotesize \sym{*} \(p<0.05\), \sym{**} \(p<0.01\), \sym{***} \ (p<0.001\)}\\
\end{tabularx}
\end{sidewaystable}
\end{document}

在此处输入图片描述

相关内容