套件 breqn 和 subcaption 之間是否存在不相容

套件 breqn 和 subcaption 之間是否存在不相容

當我嘗試使用這兩個套件進行排版時subcaptionbreqn,我收到以下錯誤:

!套件標題錯誤:「subcaption」套件在相容模式下無法正常運作(標題)。

但是,如果我停用任一包,文檔就可以排版。

我的序言如下

\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

是的,由於我還不明白的原因,floatbreqn包的組合與包不相容(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對 did的重新定義float

\caption作為一種解決方法,可以在載入套件時保存和復原定義float

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

只要caption使用該包,這就不應該造成任何損害(但比該包的兼容性測試更聰明caption),因為該caption\caption稍後將重新定義。

我會在周末做進一步的檢查並報告。

謀殺案已出爐 (2012-08-25):

該套件以一種與該套件定義的至少一個巨集不相容的方式breqn重新定義了 LaTeX 核心巨集。由於該巨集將用於相容性測試,因此即使實際上不存在不相容性,該測試也可能會失敗。我將在軟體包的下一個版本中修復該問題。\@ifstarcaptioncaption

更新(2013/01/09):

該軟體包的下一個版本 3.3caption已修復此錯誤。謝謝你的耐心。

相關內容