在 elsarticle 中使用 cleveref 引用时出现额外的“附录”

在 elsarticle 中使用 cleveref 引用时出现额外的“附录”

当我交叉引用附录部分时,如何去掉出现的额外“附录”?示例输出为“...参见附录附录 A”。MWE 如下:

\documentclass[preprint,3p]{elsarticle}

\usepackage{cleveref}

\begin{document}

\begin{frontmatter}

\title{Title}

\author{Author}
\ead{[email protected]}

\address{Address Here}

\begin{abstract}
Abstract abstract abstract
\end{abstract}

\end{frontmatter}

\section{Section1}
We would like to reference \cref{sec:app}. And the same for \cref{sec:app2}.

\appendix
\section{Section One} \label{sec:app}
Something here

\section{Section Two} \label{sec:app2}

\end{document}

答案1

如果要隐藏特定类型的交叉引用名称,更简单的方法是使用

\crefname{appendix}{}{}

然后,所有格式都会自动为您定义,而不必分别重新定义\crefformat、、和。(如今,如果您定义一个空名称\crefmultiformat,它会非常聪明,可以省略交叉引用名称后面的常用不间断空格。)\crefrangeformat\labelcrefformatcleveref

然而,此解决方案(以及 ach 的解决方案)将cleveref在一定程度上破坏 的多引用功能。例如,\cref{apdx1,apdx2,apdx3,apdx5,apdx7}将生成“附录 1 至附录 3 和附录 4 和附录 5”,而不是“附录 1 至 3、4 和 5”。

幸运的是,elsarticle定义了一个\appendixname宏来保存附录标签中使用的字符串,毫无疑问,这允许轻松对其进行自定义。因此,最好的解决方案就是完全摆脱,并让照常完成elsarticle其工作,方法是将其添加到您的序言中:\appendixnamecleveref

\def\appendixname{}

答案2

该类elsarticle显然重新定义了附录的标签以包含单词“附录”,但cleveref假定字母数字标签需要带有单词。

解决此冲突的一个简单方法是重新定义cleveref附录引用的格式\crrefformat{<type>}{<format>}(参见手册第 7.2.1 节cleverref)。

应用于你的 MWE 将是

\documentclass[preprint,3p]{elsarticle}

\usepackage{cleveref}

\crefformat{appendix}{#2#1#3}

\begin{document}

\begin{frontmatter}

\title{Title}

\author{Author}
\ead{[email protected]}

\address{Address Here}

\begin{abstract}
Abstract abstract abstract
\end{abstract}

\end{frontmatter}

\section{Section1}
We would like to reference \cref{sec:app}. And the same for \cref{sec:app2}.

\appendix
\section{Section One} \label{sec:app}
Something here

\section{Section Two} \label{sec:app2}

\end{document}

这得出

我们想参考附录 A。附录 B 也一样。

相关内容