
Я пытаюсь использовать 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}
Приложение, опубликовано после того, как автор поста дополнил свой пост, чтобы показать «настоящую» таблицу: Не уверен, что именно вас беспокоит, что табличный материал не вписывается в ширину текстового блока. Я заметил, что таблица слишком высокая, чтобы вписаться в текстовый блок. Однако это потому, что вы изменили макрос TeX низкого уровня \baselineskip
. Вместо того, чтобы вносить изменения \baselineskip
напрямую, я бы загрузил setstretch
пакет и выполнил команду \setstretch{1.3}
; таким образом, материал в сносках, таблицах и массивах будетнетбыть вытянутым вертикально.
В вашей таблице два ненужных столбца и много ненужных операторов, см. все эти \multicolumn{1}{l}{}
директивы. С некоторой очисткой, заменой всех \hline
директив на \midrule
s и всех \cline
операторов на \cmdirule
s, и использованием 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}