36

I would like to set a longtable to fit correctly the page-witdh. From now, I've this situation:

longtable-width-error

and the related tex code is:

\usepackage{array}
\usepackage{multirow}
\usepackage{longtable}
\usepackage[tableposition=below]{caption}

[...]

We now present a table that summarises the possible scenarios that can happen in the overlap zone.
{\small \begin{center}
\begin{longtable}{|c|c|c|}

\hline \textbf{Type of movement in the overlap zone} & \textbf{State of the object in camera 1} & \textbf{State of the object in camera 2}  \\ \hline
\endfirsthead

\hline \textbf{Type of movement in the overlap zone} & \textbf{State of the object in camera 1} & \textbf{State of the object in camera 2}  \\ \hline
\endhead

\hline
\caption{Table title.}
\endfoot

\caption{Table title.}
\endlastfoot

Object moving from camera 1 to camera 2 & Object will eventually be in the \emph{exiting} state and the be \emph{deleted} & Object will be recognised as a \emph{new} object, then become \emph{to be classified} and eventually \emph{classified} \\ \hline
\end{longtable}  
\end{center}
}

How can I fix the error?

0

3 Answers 3

26

Use the tabu with its environment

\begin{longtabu} to \textwidth {|X|X|X|}
…
\end{longtabu}

For more information, see the documentation of tabu.

7
  • Thank you so much, now it works fine. Just another question: how can I set padding values for the cells?
    – vdenotaris
    Commented Apr 23, 2013 at 14:57
  • 1
    I mean the distance between the borders (top, right, bottom and left) and the text inside a cell.
    – vdenotaris
    Commented Apr 23, 2013 at 14:59
  • 1
    The horizontal space can be controlled via options to the X columns or usually via @{…}. The vertical space can be controlled via \tabulinesep and \extrarowsep (see the documentation).
    – Toscho
    Commented Apr 23, 2013 at 15:09
  • 3
    You need to \usepackage{tabu} and make sure that the column to be restricted is of the column type X.
    – Chris
    Commented Sep 17, 2015 at 12:01
  • 1
    I still not your solution, someone explain, please?
    – HQuser
    Commented Sep 7, 2020 at 20:42
26
\begin{center}
\begin{longtable}{|c|c|c|}

the center environment has no affect on longtable as the table rows are always full width.

The longtable documentation does give an example of how to produce a full width table:

\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\begin{longtable}{@{\extracolsep{\fill}}|c|c|c|@{}}

...

2
  • Shouldn't that be as follows? \setlength{\LTleft}{0pt} \setlength{\LTright}{0pt}
    – Urhixidur
    Commented Feb 18, 2022 at 22:07
  • @Urhixidur the braces are optional Commented Feb 18, 2022 at 22:42
5

an ancient solution is possible with the package ltablex: Here is a MWE with booktabs, which provides better rules then \hline (I recommend to read at least chapter 2 from texdoc booktabs)

\documentclass{article}
\usepackage{ltablex,booktabs}
\begin{document}
\begin{tabularx}{\textwidth}{XXX}
\textbf{Type of movement in the overlap zone} & \textbf{State of the object in camera 1} & \textbf{State of the object in camera 2}  \\ \toprule
\endhead
\caption{Table title.}
\endfoot
Object moving from camera 1 to camera 2 & Object will eventually be in the \emph{exiting} state and the be \emph{deleted} 
& 
Object will be recognised as a \emph{new} object, then become \emph{to be classified} and eventually \emph{classified}
\end{tabularx}
\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .