![如何让 cleveref 明确列出每个引用而不是将它们连接起来?](https://linux22.com/image/325348/%E5%A6%82%E4%BD%95%E8%AE%A9%20cleveref%20%E6%98%8E%E7%A1%AE%E5%88%97%E5%87%BA%E6%AF%8F%E4%B8%AA%E5%BC%95%E7%94%A8%E8%80%8C%E4%B8%8D%E6%98%AF%E5%B0%86%E5%AE%83%E4%BB%AC%E8%BF%9E%E6%8E%A5%E8%B5%B7%E6%9D%A5%EF%BC%9F.png)
我正在使用带有多个参数cleveref
的\cref{label}
命令。我想确保它明确列出我引用的所有三个部分,无论它们是否按顺序排列。
目前它们被引用为“第 1 至 3 节”,其中 1 和 3 是超链接。我需要将这三个都列出,例如“第 1、2 和 3 节”,所有数字都带有超链接,以便读者可以直接点击到第 2 节。
我正在使用hyperref
链接(并且我把 放在\usecommand{cleveref}
的后面hyperref
)。
答案1
假设您希望对所有类型的引用都这样做,只需将sort
或nosort
选项添加到cleveref
。使用前者,不同类型的交叉引用(例如章节和方程式)将一起排序,并且它们也将按编号排序。使用后者,交叉引用的放置方式与命令中相同\cref
。
和nosort
:
和sort
:
\documentclass{article}
\usepackage{hyperref}
\usepackage[
%sort
nosort
]{cleveref}
\begin{document}
\section{a}\label{1}
\begin{equation}
\label{eq1}
a=b
\end{equation}
\section{b}\label{2}
\section{c}\label{3}
\Cref{3,2,eq1,1}
\end{document}
答案2
假设您不希望所有类型的引用都这样做,您可以在想要防止压缩的地方用一个或多个空引用分隔列表中的交叉引用。
\cref{eq1,eq2,,eq3,eq4,eq5,,eq6,eq7,eq8}
将被排版为:
或者使用其他答案中的示例:
\documentclass{article}
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
\section{a}\label{1}
\begin{equation}\label{eq1}
a=b
\end{equation}
\section{b}\label{2}
\section{c}\label{3}
This sentence references \cref{3,2,eq1,1} using default options.
But this one references \cref{3,2,,eq1,1} without compression.
\end{document}
空引用确保前面的引用将明确出现在最终排版的交叉引用中。
您可以安全地在永远不会被压缩的交叉引用之间放置一个空引用;它将被忽略。
来源:cleveref
文档。