captions of wide longtables are indented
Some of my longtables are wider than \hsize (=\columnwidth). It’s ok. The problem is the left-aligned captions of such tables. If a table is X too wide, then the caption is indented by X.
An example to reproduce the problem:
\documentclass{article}
\usepackage{longtable}
\usepackage[nooneline,justification=raggedright]{caption}
\begin{document}
\begin{longtable}[l]{|p{\hsize}|p{50pt}|}
row1col1&row1col2\\
row2col1&row2col2\\
\caption{my table}
\end{longtable}
\end{document}
In this example, the caption is indented by 50pt.
I asked in comp.text.tex: Any suggestions how to avoid indenting? Or, at least, any ideas why it happens?
Axel Sommerfeldt, the author of the longtable package, explained that the caption in a longtable is typeset as centered multicolumn. It, and looking at the source code of \LT@makecaption, revealed me the source of the problem.
Among Axel’s suggestins, I’ve choosen patching the definition of \LT@makecaption. It combines code from the longtable and caption2 packages, and uses the fact that my captions are always of \hsize.
\def\LT@makecaption#1#2#3{%
\LT@mcol\LT@cols l{\hskip-\tabcolsep\hbox to\z@{\parbox[t]\hsize{%
\captionfont\selectfont {#2: }#3%
\endgraf\vskip\baselineskip}%
\hss}}}