148

I have a table that takes up a full page, but I want it to start on a page that already has some text and then continue onto the next page (i.e. it's ok if the table gets broken up and spans two pages). It is a simple two column table:

\begin{table}[h]
\centering
\begin{tabular}{| p{.20\textwidth} | p{.80\textwidth} |} 
\hline
foo & bar \\ \hline 
foo & bar \\ \hline 
...
\end{tabular}
\end{table}

I guess I need longtable? How do I use it?

153

There are a few options described in How can I make a table that takes up more than a single page?

I've put a MWE below using the longtable package; I deliberately didn't put the longtable in the table environment so that it wouldn't float, and would show that it breaks across pages.

As described in @Werner's comment, the documentation has a lot of detail.

\documentclass{article}

\usepackage{longtable}
\usepackage{lipsum} % just for dummy text- not needed for a longtable

\begin{document}
\lipsum[1]
\lipsum[1]
\lipsum[1]

%\begin{table}[h] 
%\centering
\begin{longtable}{| p{.20\textwidth} | p{.80\textwidth} |} 
\hline
foo & bar \\ \hline 
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
foo & bar \\ \hline
\caption{Your caption here} % needs to go inside longtable environment
\label{tab:myfirstlongtable}
\end{longtable}
%\end{table} 

Table \ref{tab:myfirstlongtable} shows my first longtable.
\end{document}

As a side note, some folks would advocate against using vertical lines in a table- that's a separate discussion though :) Have a look at Why not use vertical lines ('|') in a tabular?

  • @cmhughes any idea how I can decrease the font size for text within the table? – Goaler444 May 4 '13 at 13:00
  • 4
    @Goaler444 try adding \small just after \begin{longtable} – cmhughes May 4 '13 at 15:22
  • 14
    Is there any way to keep repeating the table header at each new page? – Daniel Bonetti Aug 29 '14 at 1:50
  • 1
    When I make a table longer than a single page, it still starts the table on the next empty page. Is there a way of getting it to start from where it is in the code? – Anake Mar 1 '16 at 22:26
  • 9
    @DanielBonetti: \begin{longtable}[H]{|m{0.2\linewidth}|m{0.35\linewidth}|m{0.15\linewidth}|m{0.3\linewidth}|} \hline \textbf{1} & \textbf{2} & \textbf{3} & \textbf{4}\\\hline \endfirsthead \hline \textbf{1} & \textbf{2} & \textbf{3} & \textbf{4}\\\hline \endhead Content ... \end{longtable} – Michael S. Sep 5 '16 at 15:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.