Tabular* 环境将表格拉伸至超过页面宽度

Tabular* 环境将表格拉伸至超过页面宽度

我正在尝试使用tabular*环境将表格拉伸至页面宽度。但是表格的拉伸程度超过了序言中定义的页面宽度...

这是我的代码:

\documentclass[12pt,a4paper]{article}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{natbib}
\usepackage{url}
\usepackage{float}
\usepackage{placeins}
\usepackage[font=small,labelfont=bf,margin=\parindent,tableposition=top]{caption}

\setcounter{MaxMatrixCols}{10}


\addtolength{\oddsidemargin}{-.875in}
\addtolength{\evensidemargin}{-.875in}
\addtolength{\textwidth}{1.75in}
\addtolength{\topmargin}{-.875in}
\addtolength{\textheight}{1.50in}

\parskip = 0pt
\pagestyle{plain}
\setlength{\parskip}{.0in}
\renewcommand{\baselinestretch}{1.3}
\newcommand{\figref}[1]{Figure~\ref{#1}}
\newcommand{\tabref}[1]{Table~\ref{#1}}
\newcommand{\secref}[1]{Section~\ref{#1}}
\newcommand{\eqnref}[1]{equation (\ref{#1})}
\newcommand{\chapref}[1]{Chapter~\ref{#1}}

\newenvironment{Question}[2][Question]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}\hskip \labelsep {\bfseries #2.}]}{\end{trivlist}}


    \FloatBarrier
\begin{table}[!htbp]

  \centering
  \caption{AAAA}
  \caption*{AAAA}
  \setlength\tabcolsep{0pt}
    \begin{tabular*}{\textwidth}{l @{\extracolsep{\fill}} cccccll}
    \hline
\hline
\multicolumn{8}{c}{Panel A:}                                                                                                     \\ \hline
   & $\delta_1$           & t-stat               &                      & $\delta_2$           & t-stat               &  & $R^2$ \\ \cline{2-3} \cline{5-6} \cline{8-8} 
1  & -0.06                & -0.40                &                      & 0.8                  & 16.0                 &  & 0.05  \\
2  & 0.04                 & 0.23                 &                      & 3.3                  & 54.3                 &  & 0.39  \\
3  & 0.03                 & 0.19                 &                      & 1.7                  & 41.0                 &  & 0.27  \\
4  & 0.17                 & 0.89                 &                      & 2.2                  & 36.0                 &  & 0.22  \\
5  & 0.12                 & 0.88                 &                      & 1.2                  & 28.0                 &  & 0.15  \\
6  & 0.02                 & 0.13                 &                      & -1.9                 & -32.7                &  & 0.19  \\
7  & 0.04                 & 0.40                 &                      & 0.2                  & 5.9                  &  & 0.01  \\
8  & 0.13                 & 0.61                 &                      & 1.9                  & 27.2                 &  & 0.14  \\
9  & -0.02                & -0.22                &                      & -0.5                 & -14.8                &  & 0.05  \\
10 & 0.14                 & 1.11                 &                      & 0.3                  & 6.8                  &  & 0.01  \\
11 & -0.21                & -1.14                &                      & 0.5                  & 8.7                  &  & 0.02  \\
12 & -0.22                & -2.16                &                      & 0.4                  & 12.5                 &  & 0.03  \\ \hline
   & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} &  &       \\
   & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} &  &       \\ \hline
\multicolumn{8}{c}{Panel B:}                                                                                                     \\ \hline
   & $\delta_1$           & t-stat               &                      & $\delta_2$           & t-stat               &  & $R^2$ \\ \cline{2-3} \cline{5-6} \cline{8-8} 
1  & -0.13                & -0.58                &                      & 3.83                 & 55.00                &  & 0.40  \\
2  & -0.02                & -0.17                &                      & 2.35                 & 49.92                &  & 0.35  \\
3  & -0.05                & -0.39                &                      & 1.66                 & 40.55                &  & 0.26  \\
4  & -0.09                & -1.19                &                      & 0.79                 & 33.25                &  & 0.19  \\
5  & 0.00                 & 0.13                 &                      & -0.44                & -37.38               &  & 0.23  \\ \hline
   & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} &  &       \\
   & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} & \multicolumn{1}{l}{} &  &       \\ \hline
\multicolumn{8}{c}{Panel C:}                                                                                                     \\ \hline
   & $\delta_1$           & t-stat               &                      & $\delta_2$           & t-stat               &  & $R^2$ \\ \cline{2-3} \cline{5-6} \cline{8-8} 
1  & 0.07                 & 0.76                 &                      & -0.91                & -32.58               &  & 0.19  \\
2  & 0.04                 & 0.61                 &                      & 0.05                 & 2.24                 &  & 0.00  \\
3  & -0.05                & -0.65                &                      & 0.38                 & 14.25                &  & 0.04  \\
4  & -0.01                & -0.16                &                      & 0.69                 & 25.03                &  & 0.12  \\
5  & -0.10                & -0.60                &                      & 2.00                 & 37.21                &  & 0.23  \\ \hline
\end{tabular*}

  \label{tab:Reg1}%
\end{table}%

答案1

当使用该@{\extracolsep{\fill}}设备时,LaTeX 将每个列间空间的宽度设置为2\tabcolsep+\fill。 的默认值\tabcolsep(至少在我熟悉的大多数文档类中)是6pt

如果环境的“自然”宽度tabular*,即\fill=0pt(注意:\fill不能为负数)超出了文本块的宽度,则应考虑三种可能的补救措施:

  • 消除第一列左侧和最后一列右侧的空白(总共节省:)2\tabcolsep

  • 执行指令\setlength\tabcolsep{0pt}。这样,每个列间空格等于\fill; 并且

  • 减小字体大小,例如通过执行\small或 之类的指令\footnotesize

下面的代码显示了使用 的结果,tabular*其中有 14 个数据列,而不是“仅”6 个数据列,以创建表格宽度超出文本块宽度的示例。第一个tabular*环境使用默认值\tabcolsep,而第二个环境使用\tabcolsep=0pt

在此处输入图片描述

\documentclass{article}
\usepackage{booktabs,caption}
\begin{document}
\begin{table}[!htbp]
    \caption{\texttt{\textbackslash tabcolsep=6pt} (default)} \label{tab:default}
    \begin{tabular*}{\textwidth}{@{} l @{\extracolsep{\fill}} *{14}{c} @{}}
    \toprule
    & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14  \\
    \midrule
    \textbf{Historical } \\
    Lab1 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0& 1.0 & 1.0 \\
    Lab2 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0& 1.0 & 1.0 \\
    \bottomrule
    \end{tabular*}

    \bigskip\bigskip
    \setlength\tabcolsep{0pt} % default: 6pt
    \caption{\texttt{\textbackslash tabcolsep=0pt}} \label{tab:alt}
    \begin{tabular*}{\textwidth}{l @{\extracolsep{\fill}} *{14}{c} }
    \toprule
    & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14  \\
    \midrule
    \textbf{Historical } \\
    Lab1 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0& 1.0 & 1.0 \\
    Lab2 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.0& 1.0 & 1.0 \\
    \bottomrule
    \end{tabular*}
\end{table}

\end{document} 

附录,在 OP 扩充其帖子以显示“真实”表格后发布:不确定您对表格材料不适合文本块宽度的担心是什么。不过,我确实注意到表格太高,无法放入文本块。但是,那是因为您更改了低级 TeX 宏。我不会直接\baselineskip修改,而是加载包并发出命令\baselineskipsetstretch\setstretch{1.3};这样,脚注、表格和数组中的材料将不是被垂直拉伸。

您的表格有两个不需要的列和许多不必要的语句,参见所有这些\multicolumn{1}{l}{}指令。经过一些清理,将所有\hline指令替换为\midrules,将所有\cline语句替换为\cmdirules,并使用该dcolumn包将数字数据与相应的小数点对齐,可以得到:

在此处输入图片描述

\documentclass[12pt,a4paper]{article}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{natbib}
\usepackage{url}
\usepackage{float}
\usepackage{placeins}
\usepackage[font=small,labelfont=bf,margin=\parindent,tableposition=top]{caption}

%\setcounter{MaxMatrixCols}{10}

%\usepackage[showframe]{geometry}


\addtolength{\oddsidemargin}{-.875in}
\addtolength{\evensidemargin}{-.875in}
\addtolength{\textwidth}{1.75in}
\addtolength{\topmargin}{-.875in}
\addtolength{\textheight}{1.50in}


\parskip = 0pt
\pagestyle{plain}
\setlength{\parskip}{.0in}
%\renewcommand{\baselinestretch}{1.3}

\usepackage{setspace}
\setstretch{1.3}

\usepackage{dcolumn}
\newcolumntype{d}[1]{D..{#1}}

\newcommand{\mc}[1]{\multicolumn{1}{c}{#1}}

\newcommand{\figref}[1]{Figure~\ref{#1}}
\newcommand{\tabref}[1]{Table~\ref{#1}}
\newcommand{\secref}[1]{Section~\ref{#1}}
\newcommand{\eqnref}[1]{equation (\ref{#1})}
\newcommand{\chapref}[1]{Chapter~\ref{#1}}

\newenvironment{Question}[2][Question]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}\hskip \labelsep {\bfseries #2.}]}{\end{trivlist}}
\begin{document}

    \FloatBarrier
\begin{table}[!htbp]

  %%\centering
  \caption{AAAA}
  \caption*{AAAA}
  \setlength\tabcolsep{0pt}
    \begin{tabular*}{\textwidth}{l @{\extracolsep{\fill}} *{5}{d{2.2}}}
\midrule
\multicolumn{6}{c}{Panel A:}\\ 
\midrule
& \mc{$\delta_1$} & \mc{t-stat}  & \mc{$\delta_2$} & \mc{t-stat} &  \mc{$R^2$} \\ 
   \cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-6} 
1  & -0.06 & -0.40 & 0.8   & 16.0  &  0.05  \\
2  & 0.04  & 0.23  & 3.3   & 54.3  &  0.39  \\
3  & 0.03  & 0.19  & 1.7   & 41.0  &  0.27  \\
4  & 0.17  & 0.89  & 2.2   & 36.0  &  0.22  \\
5  & 0.12  & 0.88  & 1.2   & 28.0  &  0.15  \\
6  & 0.02  & 0.13  & -1.9  & -32.7 &  0.19  \\
7  & 0.04  & 0.40  & 0.2   & 5.9   &  0.01  \\
8  & 0.13  & 0.61  & 1.9   & 27.2  &  0.14  \\
9  & -0.02 & -0.22 & -0.5  & -14.8 &  0.05  \\
10 & 0.14  & 1.11  & 0.3   & 6.8   &  0.01  \\
11 & -0.21 & -1.14 & 0.5   & 8.7   &  0.02  \\
12 & -0.22 & -2.16 & 0.4   & 12.5  &  0.03  \\ 
\midrule
\\ \\ 
\midrule
\multicolumn{6}{c}{Panel B:}\\ 
\midrule
& \mc{$\delta_1$} & \mc{t-stat}  & \mc{$\delta_2$} & \mc{t-stat} &  \mc{$R^2$} \\ 
\cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-6} 
1  & -0.13 & -0.58 & 3.83  & 55.00 &  0.40  \\
2  & -0.02 & -0.17 & 2.35  & 49.92 &  0.35  \\
3  & -0.05 & -0.39 & 1.66  & 40.55 &  0.26  \\
4  & -0.09 & -1.19 & 0.79  & 33.25 &  0.19  \\
5  & 0.00  & 0.13  & -0.44 & -37.38 &  0.23  \\ 
\midrule
\\ \\ 
\midrule
\multicolumn{6}{c}{Panel C:}\\ 
\midrule
& \mc{$\delta_1$} & \mc{t-stat}  & \mc{$\delta_2$} & \mc{t-stat} &  \mc{$R^2$} \\ 
\cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-6} 
1  & 0.07  & 0.76  & -0.91 & -32.58 &  0.19  \\
2  & 0.04  & 0.61  & 0.05  & 2.24  &  0.00  \\
3  & -0.05 & -0.65 & 0.38  & 14.25 &  0.04  \\
4  & -0.01 & -0.16 & 0.69  & 25.03 &  0.12  \\
5  & -0.10 & -0.60 & 2.00  & 37.21 &  0.23  \\
\midrule
\end{tabular*}

  \label{tab:Reg1}%
\end{table}%
\end{document}

答案2

您的表格适合规定的边距。这是我添加\usepackage{showframe}缺失的\begin{document}\end{document}

在此处输入图片描述

正如您所见,它适合代表文本块边距的框。


以下是我的排版方式:放大表格只会使其变得难以阅读。

\documentclass[12pt,a4paper]{article}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage[font=small,labelfont=bf,margin=\parindent,tableposition=top]{caption}

\begin{document}

\begin{table}[!htbp]
\centering
\caption{AAAA}\label{tab:Reg1}

\begin{tabular}{
  @{}
  r
  S[table-format=-1.2]
  S[table-format=-1.2]
  S[table-format=-1.2]
  S[table-format=-2.2]
  S[table-format=1.2]
  @{}
}
\toprule
\multicolumn{6}{c}{Panel A:} \\
\midrule
& {$\delta_1$} & {t-stat} & {$\delta_2$} & {t-stat} & {$R^2$} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-6}
 1 & -0.06 & -0.40 &  0.8 &  16.0 & 0.05  \\
 2 &  0.04 &  0.23 &  3.3 &  54.3 & 0.39  \\
 3 &  0.03 &  0.19 &  1.7 &  41.0 & 0.27  \\
 4 &  0.17 &  0.89 &  2.2 &  36.0 & 0.22  \\
 5 &  0.12 &  0.88 &  1.2 &  28.0 & 0.15  \\
 6 &  0.02 &  0.13 & -1.9 & -32.7 & 0.19  \\
 7 &  0.04 &  0.40 &  0.2 &   5.9 & 0.01  \\
 8 &  0.13 &  0.61 &  1.9 &  27.2 & 0.14  \\
 9 & -0.02 & -0.22 & -0.5 & -14.8 & 0.05  \\
10 &  0.14 &  1.11 &  0.3 &   6.8 & 0.01  \\
11 & -0.21 & -1.14 &  0.5 &   8.7 & 0.02  \\
12 & -0.22 & -2.16 &  0.4 &  12.5 & 0.03  \\
\midrule[\heavyrulewidth]
\multicolumn{6}{c}{Panel B:} \\
\midrule
& {$\delta_1$} & {t-stat} & {$\delta_2$} & {t-stat} & {$R^2$} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-6}
 1 & -0.13 & -0.58 &  3.83 &  55.00 & 0.40  \\
 2 & -0.02 & -0.17 &  2.35 &  49.92 & 0.35  \\
 3 & -0.05 & -0.39 &  1.66 &  40.55 & 0.26  \\
 4 & -0.09 & -1.19 &  0.79 &  33.25 & 0.19  \\
 5 &  0.00 &  0.13 & -0.44 & -37.38 & 0.23  \\
\midrule[\heavyrulewidth]
\multicolumn{6}{c}{Panel C:} \\
\midrule
& {$\delta_1$} & {t-stat} & {$\delta_2$} & {t-stat} & {$R^2$} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5} \cmidrule(lr){6-6}
 1 &  0.07 &  0.76 & -0.91 & -32.58 & 0.19  \\
 2 &  0.04 &  0.61 &  0.05 &   2.24 & 0.00  \\
 3 & -0.05 & -0.65 &  0.38 &  14.25 & 0.04  \\
 4 & -0.01 & -0.16 &  0.69 &  25.03 & 0.12  \\
 5 & -0.10 & -0.60 &  2.00 &  37.21 & 0.23  \\
\bottomrule
\end{tabular}

\end{table}

\end{document}

在此处输入图片描述

相关内容