longtable
我正在with中设置手动换行符endfloat
。我创建了一个名为 的横向环境lgtable
并将其注册到 ,endfloat
这样当表格发送到文档末尾时,它将被横向化。
当我使用标准表格时,我用 围住表格resizebox
并将其设置为等于,\resizebox{1.00\linewidth}{!}{}
这不仅确保表格顶部的换行 Lipsum 文本一直延伸到边距,而且表格本身也很好地扩展了所有列以适合页面。
然而,当我使用时longtable
,我相信我无法longtable
用一个框包围,所以我无法知道如何合并换行的文本和对齐的表格。
如果我省略换行文本,表格会正确对齐,但不会延伸到页面边缘。如果我包括换行文本,列间距不均等,换行文本也不会严格延伸到页面边缘。
我该怎么做才能确保以下几点:表格本身能够扩展以适合页面,换行的文本能够扩展以适合页面,并且各列的间距均匀?
\documentclass[11pt]{article}
\usepackage[nolists]{endfloat}
\usepackage{comment}
\usepackage[margin=2.5cm]{geometry}
\usepackage{natbib,amssymb}
\setlength{\bibsep}{0pt plus 0.3ex}
\usepackage[affil-it]{authblk}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{siunitx}
\usepackage{lipsum}
\usepackage[FIGBOTCAP]{subfigure}
\usepackage{float}
\usepackage{catchfile,tikz}
\usepackage{filecontents}
\usepackage{silence}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{shapes,trees}
\usepackage{pdflscape }
\usepackage{eurosym}
%\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{lipsum}
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}%Need for STATA tables
\newenvironment{lgtable}
{\begin{landscape}\begin{longtable}}
{\end{longtable}\end{landscape}}
% make it known to endfloat
\DeclareDelayedFloatFlavor{lgtable}{table}
\begin{document}
\begin{lgtable}{@{\extracolsep{\fill}}l*{8}{c}}
\caption{Regression Estimation: Blank, S(1)}
\label{table:first}\\
\multicolumn{9}{l}{
\begin{minipage}{1.34\textwidth}
\footnotesize
\lipsum[3-4]\\
\end{minipage}} \\
\toprule
\multicolumn{9}{c}{Some text}\\
\midrule
&Blank& \multicolumn{3}{c}{Some title}&\multicolumn{3}{c}{Some title}& Pooled\\
\midrule
&\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)} \\
& Blank &Blank, abcs &Blank, abcs &Blank, abcs & Blank, Abc & Blank, Abc & Blank, Abc &Blank, Pooled \\
\midrule
S(1) & 0.900\sym{***}& 0.887\sym{***}& 0.876\sym{***}& 0.239\sym{***}& 0.988\sym{***}& 0.952\sym{***}& 0.330 & 0.258\sym{***}\\
\bottomrule
\newpage
\multicolumn{9}{c}{Table \ref{table:first}: (continued)}\\
\toprule
\multicolumn{9}{c}{Panel B: Seom text}\\
\midrule
&Blank& \multicolumn{3}{c}{Some title}&\multicolumn{3}{c}{Some title}& Pooled\\
\midrule
&\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)} \\
& Blank &Blank, abcs &Blank, abcs &Blank, abcs & Blank, Abc & Blank, Abc & Blank, Abc &Blank, Pooled \\
\midrule
S(1) & 0.900\sym{***}& 0.887\sym{***}& 0.876\sym{***}& 0.239\sym{***}& 0.988\sym{***}& 0.952\sym{***}& 0.330 & 0.258\sym{***}\\
\bottomrule
\end{lgtable}
\end{document}
答案1
这不完全是你想要的,但在紧急情况下可能会有用。当多列超出表格的自然宽度时,奇数列宽度的问题似乎会出现。所以我把你的lipsum放在一个\parbox
叫做的中\tmp
,然后把它放在一个9列的多列中makebox[0pt]{\tmp}
(一个零宽度框),这样宽度\tmp
就不会破坏表格的自然间距。
这个解决方案有两个缺点:
1) 表格没有延伸到边距,而是占据了它的自然宽度,这不是你想要的;
2) 需要对\parbox
名称 d的宽度进行调整\tmp
,使其符合表格的自然宽度。这里,我4ex
从整个宽度中减去,即\linewidth
。
\documentclass[11pt]{article}
\usepackage[nolists]{endfloat}
\usepackage{comment}
\usepackage[margin=2.5cm]{geometry}
\usepackage{natbib,amssymb}
\setlength{\bibsep}{0pt plus 0.3ex}
\usepackage[affil-it]{authblk}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage{siunitx}
\usepackage{lipsum}
\usepackage[FIGBOTCAP]{subfigure}
\usepackage{float}
\usepackage{catchfile,tikz}
\usepackage{filecontents}
\usepackage{silence}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{shapes,trees}
\usepackage{pdflscape }
\usepackage{eurosym}
%\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{lipsum}
\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}%Need for STATA tables
\newenvironment{lgtable}
{\begin{landscape}\begin{longtable}}
{\end{longtable}\end{landscape}}
% make it known to endfloat
\DeclareDelayedFloatFlavor{lgtable}{table}
\begin{document}
\def\tmp{\parbox{\linewidth-4ex}{\footnotesize\lipsum[3-4]\vspace{1ex}}}
\begin{lgtable}{@{\extracolsep{\fill}}l*{8}{c}}
\caption{Regression Estimation: Blank, S(1)}
\label{table:first}\\
\multicolumn{9}{c}{\makebox[0pt]{\tmp}}%
\\
\toprule
\multicolumn{9}{c}{Some text}\\
\midrule
&Blank& \multicolumn{3}{c}{Some title}&\multicolumn{3}{c}{Some title}& Pooled\\
\midrule
&\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)} \\
& Blank &Blank, abcs &Blank, abcs &Blank, abcs & Blank, Abc & Blank, Abc & Blank, Abc &Blank, Pooled \\
\midrule
S(1) & 0.900\sym{***}& 0.887\sym{***}& 0.876\sym{***}& 0.239\sym{***}& 0.988\sym{***}& 0.952\sym{***}& 0.330 & 0.258\sym{***}\\
\bottomrule
\newpage
\multicolumn{9}{c}{Table \ref{table:first}: (continued)}\\
\toprule
\multicolumn{9}{c}{Panel B: Seom text}\\
\midrule
&Blank& \multicolumn{3}{c}{Some title}&\multicolumn{3}{c}{Some title}& Pooled\\
\midrule
&\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)} \\
& Blank &Blank, abcs &Blank, abcs &Blank, abcs & Blank, Abc & Blank, Abc & Blank, Abc &Blank, Pooled \\
\midrule
S(1) & 0.900\sym{***}& 0.887\sym{***}& 0.876\sym{***}& 0.239\sym{***}& 0.988\sym{***}& 0.952\sym{***}& 0.330 & 0.258\sym{***}\\
\bottomrule
\end{lgtable}
\end{document}
ps 任何扩展表格自然宽度的尝试最终都只会在最后一列添加空间,这导致我放弃了这些尝试。