smartef 用 IEEEtran 中定義的可選參數打破 \appendix

smartef 用 IEEEtran 中定義的可選參數打破 \appendix

我認為標題說明了一切。包含cleveref在此 MWE 中會改變輸出的外觀:

\documentclass{IEEEtran}
% \usepackage{cleveref}
\begin{document}
    \appendix[Appendix headline]
\end{document}

有沒有辦法可以防止這種情況發生?我已經看過cleveref手冊,但還沒有找到任何東西。

答案1

我相信這個問題已在我的網站上提供的預發布版本 (0.21) 中得到修復,並且很可能也在先前的預發布版本 (0.20) 中得到修復:http://www.dr-qubit.org/latex.html

至少,無論有無 smartef,MWE 都會產生相同的輸出。

答案2

最快最簡單的方法肯定是保存\appendix載入前的含義cleveref並恢復到載入套件後的含義:

\documentclass{IEEEtran}
\let\ieeeappendix\appendix
\usepackage{cleveref}
\let\appendix\ieeeappendix

\begin{document}
\appendix[Appendix headline]
\end{document}

但請注意,這可能會限制 的功能cleveref

答案3

提供一個機會透過使用更強大的版本IEEEtran來維護 的定義。\appendix\AtBeginDocument{...}\appendix

由於在代碼中IEEEtran使用,將存儲此信息,因此將始終報告而不是.那就用吧。\refstepcounter{section}\appendix\labelcleverefSectionAppendix\label[appendix]{foo}

\documentclass{IEEEtran}

\usepackage{letltxmacro}

\usepackage{xparse}

\makeatletter
\LetLtxMacro\ieeetran@appendix\appendix
\AtBeginDocument{%
\RenewDocumentCommand{\appendix}{o}{%
  \IfValueTF{#1}{%
    \ieeetran@appendix[#1]%
  }{%
    \ieeetran@appendix%
  }%
}
}
\makeatother

\usepackage{cleveref}

\begin{document}
See \Cref{appone}

\appendix \label[appendix]{appone}

\appendix[Appendix headline] \label{apptwo}
\end{document}

在此輸入影像描述

相關內容