长表中的第二个和第一个标题未正确显示

长表中的第二个和第一个标题未正确显示

我想将表格分成两页。我使用 来实现这一点\usepackage{longtable}

但是,我希望表格的第二部分具有与第一部分不同的标题。我尝试这样做:

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{longtable}
\usepackage[margin=0.5cm,indention=0cm,font=small,labelfont=bf,format=plain,sf]{caption}

\begin{document}
\begingroup
\footnotesize
\begin{longtable}[c]{c | c | c}
\caption{My first header }\\ \hline 
\endfirsthead
\caption{Continued. My second header} \\ \hline
\endhead
 header & header1 & header2 \\
 a & b & c \\
 a & b & c \\
 a & b & c \\
\end{longtable}
\endgroup

\end{document}

但随后生成的行与换行符之间有一个空行 - 然后第一行以我的标题开始。因此它看起来像:

--------
     --empty line here
header | header1 
---------

但是我当然想删除那个换行符,因为它放错了位置。我尝试删除换行符\\,但更改后无法编译。我不知道如何解决这个问题:S。第二个标题也发生了同样的情况。

答案1

有些事情是这样的:

  \documentclass{book}
  \usepackage[utf8]{inputenc}
  \usepackage{longtable}
  \usepackage[margin=0.5cm,indention=0cm,font=small,labelfont=bf,format=plain,sf]{caption}


  \newcommand{\rows}{%
  a & b & c \\
  a & b & c \\
  a & b & c \\
  a & b & c \\
  a & b & c \\
  a & b & c \\
  a & b & c \\
  a & b & c \\
  a & b & c \\
  }
 \begin{document}
  \begingroup
% \footnotesize
 \begin{longtable}{c | c | c}
 \multicolumn{3}{c}{\textbf{Table \thetable:} My first header}\\\hline
 header & header1 & header2 \\
 \endfirsthead
 \multicolumn{3}{c}{\textbf{Table \thetable:} Continued. }\\\hline
 header & header1 & header2 \\
 \endhead
  \rows
  \rows
  \rows
  \rows
  \rows
\end{longtable}
\endgroup
\end{document}

在此处输入图片描述

答案2

可能对与标头相关的术语存在一些混淆。标题表格的标题行,然后是表格的实际“标题”。 longtable 环境会自动在标题行和标题材料之间插入空格。

目前,您的代码仅具有\hline完整标题,适用于 longtable 环境的第一页和所有后续页面。请注意,行

header & header1 & header2 \\

不是表格“标题”的一部分。相反,它是身体的表格。

您可能正在寻找以下内容:

  \begin{longtable}{c | c | c}

  \caption{An impressive table} \\ 
  \hline
  header1 & header2 & header3 \\ 
  \hline
  \endfirsthead

  \caption{An impressive table, continued} \\
  \hline
  header4 & header5 & header6 \\ 
  \hline
  \endhead

  \hline
  \endfoot

  %% body of "longtable" environment

  \end{longtable}

相关内容