breqn 和 subcaption 软件包之间是否存在不兼容性?

breqn 和 subcaption 软件包之间是否存在不兼容性?

当我尝试使用这两个包进行排版时subcaptionbreqn,出现以下错误:

! 软件包标题错误:`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包应该知道包\caption对 done的重新定义float

\caption作为一种解决方法,可以在加载包时保存和恢复定义float

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

只要caption使用该包,这就不会造成任何损害(但会超越caption包的兼容性测试),因为该caption\caption以后无论如何都会重新定义。

我将在周末做进一步的检查并报告。

凶案曝光 (2012-08-25):

breqn软件包重新定义了 LaTeX 内核宏,\@ifstar但这种方式与软件包定义的至少一个宏不兼容caption。由于此宏将用于兼容性测试,因此即使实际上不存在不兼容性,此测试也可能失败。我将在软件包的下一个版本中修复此问题caption

更新(2013/01/09):

该软件包的下一个版本 3.3caption已经发布,其中已修复此错误。感谢您的耐心等待。

相关内容