Есть ли несовместимость между пакетами breqn и subcaption

Есть ли несовместимость между пакетами breqn и subcaption

Когда я пытаюсь набрать текст с помощью обоих пакетовsubcaptionиbreqn, я получаю следующую ошибку:

! Ошибка заголовка пакета: пакет `subcaption' работает неправильно (caption) в режиме совместимости. Объяснение см. в документации по пакету caption. Введите H для немедленной помощи... \begin{document}

Однако если я деактивирую любой из пакетов, документ можно будет набрать.

Моя преамбула такова:

\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{float}
\graphicspath{{figures/}}
\includeonly{intro}
\usepackage{pstool}
\usepackage{epstopdf}
\usepackage{subcaption}
\usepackage{breqn}

\listfiles

\epstopdfDeclareGraphicsRule{.gif}{png}{.png}{%
 convert #1 \OutputFile
}
\AppendGraphicsExtensions{.gif}


\newcommand{\vect}[1]{\boldsymbol{#1}}
\newcommand{\vectornorm}[1]{\left|\left|#1\right|\right|}
\newcommand{\pic}[5]{
\begin{figure}[H]
\centering
\includegraphics[width=#2\textwidth]{#1} 
\caption[#3]{#4}
\label{#5}
\end{figure}
}

\title{\textbf{report\newline}}
\author{
\begin{tabular}{l c r}
First Middle Surname
\end{tabular}
}
\date{\today}

\setcounter{secnumdepth}{-1}


\begin{document}
\maketitle
\newpage
\begin{dmath}
x=5
\end{dmath}

\end{document}

Дайте мне знать, если вы хотите увидеть список файлов

решение1

Да, по непонятной мне пока причине комбинация floatи breqnпакета несовместима с (sub)captionпакетом:

\listfiles
\documentclass[a4paper]{article}
\usepackage{breqn}
\usepackage{float}
\usepackage{caption}

\begin{document}
A
\end{document}

вынесет предупреждение

Package caption Warning: \caption will not be redefined since it's already
(caption)                redefined by a document class or package which is
(caption)                unknown to the caption package.

что, очевидно, является чепухой, поскольку captionпакет должен знать о переопределении \captiondone пакетом float.

В качестве обходного пути можно сохранить и восстановить определение \captionпри загрузке floatпакета:

\let\captionORI\caption
\usepackage{float}
\let\caption\captionORI

Пока captionпакет используется, это не должно нанести никакого вреда (но перехитрить тест на совместимость пакета caption), поскольку captionпакет в любом случае будет переопределен \captionпозже.

Я проведу дополнительное обследование на выходных и сообщу результаты.

Убийство раскрыто (2012-08-25):

Пакет breqnпереопределяет макрос ядра LaTeX \@ifstarтаким образом, что он несовместим по крайней мере с одним макросом, определенным пакетом caption. Поскольку этот макрос будет использоваться для теста совместимости, этот тест может не пройти, даже если на самом деле нет несовместимости. Я исправлю это в следующем выпуске пакета caption.

Обновление (09.01.2013):

Вышел следующий релиз 3.3 пакета, captionв котором эта ошибка была исправлена. Спасибо за терпение.

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