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}}}
Categories: TeX

Updated: