Как устранить ошибку «longtable* уже определен» с помощью пакета «caption» и documentclass «revtex4»?

Как устранить ошибку «longtable* уже определен» с помощью пакета «caption» и documentclass «revtex4»?

У меня возникла серьезная проблема с компиляцией следующего кода:

\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}

Сообщение об ошибке:

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

Не могли бы вы мне помочь, как устранить эту ошибку?

решение1

Ну, в вашем коде есть три проблемы:

  1. Класс revtex4устарел, текущий — revtex4-2. Можно изменить?
  2. Загрузка пакета captionприводит к нескольким ошибкам/предупреждениям для класса revtex4и для класса revtex4-2. Просто не загружайте его!
  3. \captionof{table}{This is a very nice table}возможно только если пакет captionзагружен, но longtableопределяет свой собственный заголовок с помощью \caption{This is a very nice table}\\(см. заключение \\!)

С помощью следующего кода

\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}

Я могу скомпилировать без ошибок с классом revtex4и revtex4-2 с результатом:

результирующие таблицы

Связанный контент