¿Cómo solucionar el error "longtable* ya está definido" usando el paquete "caption" y la clase de documento "revtex4"?

¿Cómo solucionar el error "longtable* ya está definido" usando el paquete "caption" y la clase de documento "revtex4"?

Tengo un problema grave con la compilación del siguiente 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}

El mensaje de error es

! 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.

¿Podrías ayudarme a resolver este error?

Respuesta1

Bueno, en tu código hay tres problemas:

  1. La clase revtex4está desactualizada, la actual es revtex4-2. ¿Puedes cambiar?
  2. La carga del paquete captionproduce varios errores/advertencias para class revtex4y para class revtex4-2. ¡Simplemente no lo cargues!
  3. \captionof{table}{This is a very nice table}solo es posible si el paquete captionestá cargado, pero longtabledefine su propio título con \caption{This is a very nice table}\\(¡consulte el cierre \\!)

Con el siguiente 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}

Puedo compilar sin errores con clase revtex4y revtex4-2 con el resultado:

tablas resultantes

información relacionada