First off, don't use both table
and longtable
-- the two environments shouldn't (and mustn't) be nested. Separately, since a longtable
isn't a float (in the LaTeX sense of the word), there's no point providing location directives such as [!htb]
.
Second, to force the width of the longtable
environment to be equal to \textwidth
, type something like
\usepackage{longtable,lscape}
...
\begin{document}
...
\begin{landscape}
\setlength\LTcapwidth{\textwidth} % default: 4in (rather less than \textwidth...)
\setlength\LTleft{0pt} % default: \parindent
\setlength\LTright{0pt} % default: \fill
\begin{longtable}{@{\extracolsep{\fill}}|*{15}{c|}}
... % tabular material here
\end{longtable}
\end{landscape}
...
Note that the code above also resets the \LTcapwidth
macro; since you're working in landscape
mode, you'll almost certainly want to override this macro's default value of 4 inches. The @{\extracolsep{\fill}}
directive, by the way, is exactly the same as what one would use in a tabular*
environment. It tells LaTeX to insert \fill
-- an infinitely stretchable amount of whitespace -- in each intercolumn space.
For more information on using the longtable
environment, see the longtable user guide; if you're using TeXLive or MikTeX, the user guide may be brought up by typing texdoc longtable
in a command window.
ltxtable
package. As suggested by its slogan: "ltxtable
:longtable
meetstabularx
"