\appendix* 仍产生“附录 A”

\appendix* 仍产生“附录 A”

根据 Revtex 4.1 官方文档,如果只有一个附录,可以使用\appendix*而不是 来\appendix避免出现不必要的字母 A。但是,就我而言,添加*只会将其打印在文本中,似乎根本没有效果。我不知道如何调试。可能是什么问题?

更新:\usepackage[capitalize]{cleveref}在序言中注释掉可以\appendix*按预期工作,但我需要这个包。

\documentclass[aps,pre,twocolumn,superscriptaddress,showkeys,showpacs]{revtex4-1}
\usepackage[capitalize]{cleveref}

\begin{document}
    \title{Paper}
    \date{\today}
    \maketitle

    \appendix*
    \section{Proof of X}
    Easy peasy
\end{document}

摘自paper.log

revtex4-1.cls    2010/07/25/20:33:00 4.1r (http://publish.aps.org/revtex4/ for documentation)
...
revsymb4-1.sty    2010/07/25/20:33:00 4.1r (http://publish.aps.org/revtex4/ for documentation)
cleveref.sty    2013/12/28 v0.19 Intelligent cross-referencing

答案1

\appendixin的定义revtex4.cls以 结尾\@ifstar{...}{...},但是cleveref向宏中添加了代码,因此\@ifstar效率低下。

您可以在最后恢复它:

\documentclass[aps,pre,twocolumn,superscriptaddress,showkeys,showpacs]{revtex4-1}
\usepackage{etoolbox} % for \appto
\usepackage{lipsum} % for mock text
\usepackage[capitalize]{cleveref}

\makeatletter
\appto{\appendix}{%
  \@ifstar{\def\thesection{\unskip}\def\theequation@prefix{A.}}%
          {\def\thesection{\Alph {section}}}%
}
\makeatother

\begin{document}

\title{Paper}
\date{\today}
\maketitle

\section{Title}

\lipsum[1-3]

\appendix*
\section{Proof of X}

\lipsum[4]

\end{document}

(请注意,这revtex4-1是最新版本。)

在此处输入图片描述

答案2

cleveref附加了一些代码,\appendix破坏了所提供的带星号的变体revtex4.cls

可以将原始版本保存到,然后\revappendix使用 代替\appendix。可以使用 的可选参数来维护交叉引用\label[appendix]{...},这是 的一项发明cleveref

\documentclass[aps,pre,twocolumn,superscriptaddress,showkeys,showpacs]{revtex4}

\let\revappendix\appendix


\usepackage[capitalize]{cleveref}

\begin{document}
\title{Paper}
\date{\today}
\maketitle

\section{Main section} \label{mainsection}

\revappendix*
\section{Proof of X} \label[appendix]{myappsection}
Easy peasy


In \cref{mainsection} and \cref{myappsection}


\end{document}

在此处输入图片描述

相关内容