Longtable:文本换行和列对齐

Longtable:文本换行和列对齐

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 任何扩展表格自然宽度的尝试最终都只会在最后一列添加空间,这导致我放弃了这些尝试。

相关内容