Tablas que ocupan más de una página

El paquete longtable permite definir, usando una versión extendida del entorno tabular, denominada también longtable, tablas que se rompen automáticamente en diferentes páginas si no caben en una sola.

El entorno longtable permite definir cuatro secciones antes de comenzar con el propio contenido de la tabla:

  • Formato de la primera cabecera (firsthead): el final de la definición del formato viene marcado por el comando \endfirsthead
  • Formato de las cabeceras restantes (head): el final de la definición del formato viene marcado por el comando \endhead
  • Formato del último pie de tabla (lastfoot): el final de la definición del formato viene marcado por el comando \endlastfoot
  • Formato de los pies de tabla restantes (foot): el final de la definición del formato viene marcado por el comando \endfoot

La definición del formato de cualquiera de estas secciones puede incluir una redefinición del título de la tabla (caption) y/o la especificación de una o más filas. A modo de ejemplo aclaratorio:

...
\usepackage{longtable}
...
\setlength{\arrayrulewidth}{1pt}
\setlength{\doublerulesep}{0mm}
...
\begin{longtable}{|p{2in}|p{1in}|c|}
\caption{Un ejemplo sencillo}\\
\hline\hline
\multicolumn{3}{|c|}{\textbf{Tabla repetitiva}}\\
\hline\hline
\multicolumn{2}{|c|}{Primera y segunda columnas} & {Tercera columna}\\
\hline
\multicolumn{2}{|c|}{p-type} & \\
\hline\hline
\endfirsthead
\caption[]{Un ejemplo sencillo (continuación)}\\
\hline\hline
\multicolumn{3}{|c|}{\textbf{Tabla repetitiva (cont.)}}\\
\hline\hline
\multicolumn{2}{|c|}{Primera y segunda columnas} & {Tercera columna}\\
\hline
\endhead
\hline
\multicolumn{3}{|c|}{Sigue $\ldots$}\\
\hline
\endfoot
\hline
\multicolumn{3}{|c|}{\textbf{Fin de la tabla repetitiva}}\\
\hline
\endlastfoot
Una línea como & ésta & 1 \\
\hline
Muchas líneas como & ésta & 2 \\
Muchas líneas como & ésta & 2 \\
...
Muchas líneas como & ésta & 2 \\
\end{longtable} 

Para conseguir el efecto de líneas horizontales más gruesas se redefinen los valores \arrayrulewidth (grosor de línea de la tabla) al valor de grosor sencillo y \doublerulesep (separación entre dobles líneas) a 0mm, de modo que \hline\hline produce una única línea con un grosor doble. El resultado es el mostrado en las figuras:

Primera página   última página
longtable (primera página)   longtable (última página)