Como resolver o erro “longtable* já está definido” usando o pacote “caption” e documentclass “revtex4”?

Como resolver o erro “longtable* já está definido” usando o pacote “caption” e documentclass “revtex4”?

Estou com um sério problema na compilação do seguinte código:

\documentclass[a4paper,reprint,aps,unsortedaddress]{revtex4}
\usepackage{longtable}
\usepackage{caption}


\begin{document}

\captionof{table}{This is a very nice table}
\begin{longtable}{c|c|c|c}
A & B & A & B \\ \hline
\end{longtable}
\addtocounter{table}{-1}

\captionof{table}{This is a very nice table}
\begin{longtable}{c|c|c|c}
A & B & A & B \\ \hline
\end{longtable}

\end{document}

A mensagem de erro é

! LaTeX Error: Command \longtable* already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.

Você poderia me ajudar como resolver esse erro?

Responder1

Bem, no seu código há três problemas:

  1. A classe revtex4está desatualizada, a atual é revtex4-2. Você pode mudar?
  2. Carregar o pacote captionresulta em vários erros/avisos para class revtex4e para class revtex4-2. Só não carregue!
  3. \captionof{table}{This is a very nice table}só é possível se o pacote captionestiver carregado, mas longtabledefine sua própria legenda com \caption{This is a very nice table}\\(por favor veja o fechamento \\!)

Com o seguinte código

\documentclass[a4paper,reprint,aps,unsortedaddress]{revtex4}

\usepackage{longtable}
%\usepackage{caption}


\begin{document}

\begin{longtable}{c|c|c|c}
\caption{This is a very nice table}\\
A & B & A & B \\ \hline
\end{longtable}


\addtocounter{table}{-1}
\begin{longtable}{c|c|c|c}
\caption{This is a very nice table}\\
A & B & A & B \\ \hline
\end{longtable}

\end{document}

Consigo compilar sem erros com a classe revtex4e revtex4-2 com o resultado:

tabelas resultantes

informação relacionada