如何禁用 cleveref 中的一个实例的排序?

如何禁用 cleveref 中的一个实例的排序?

nosort我可以使用或包选项全局禁用引用排序compress,如文档中所述。同一章解释了如何为一个实例禁用压缩\cref。但它没有提到如何为一个实例禁用排序。

梅威瑟:

\documentclass[12pt,a4paper]{article}
\usepackage{cleveref}

\begin{document}

\section{Foo}
\label{sec:foo}

\subsection{Bar}
\label{sec:foo.bar}

\section{Refs}
Check \cref{sec:foo.bar,sec:foo}

\end{document}

输出是“参见第 1 和 1.1 节”,但我想要“参见第 1.1 和 1 节”。

答案1

只需暂时将条件设置为 false 即可\if@cref@sort

\documentclass[12pt,a4paper]{article}
\usepackage{cleveref}

\makeatletter
\DeclareRobustCommand{\crefnosort}[1]{%
  \begingroup\@cref@sortfalse\cref{#1}\endgroup
}
\makeatother

\begin{document}

\section{Foo}
\label{sec:foo}

\subsection{Bar}
\label{sec:foo.bar}

\section{Refs}
Check \crefnosort{sec:foo.bar,sec:foo}

\end{document}

在此处输入图片描述

\DeclareRobustCommand是为了防止命令进入 而采取的预防措施\caption

相关内容