使用 cleveref 包列出三个或更多章节

使用 cleveref 包列出三个或更多章节

我正在使用cleveref包来引用我的文档中的章节\documentclass{book}

下面是 MWE。

\documentclass{book}
\usepackage[capitalize]{cleveref}
\begin{document}
\chapter{First chapter}\label{ch:first}
\chapter{Second chapter}\label{ch:second}
\chapter{Third chapter}\label{ch:third}
\chapter{Fourth chapter}\label{ch:fourth}
We saw in \cref{ch:first,ch:second,ch:third} that ...
\end{document}

对于第 4 章,MWE 得出以下结论:

章节

有没有相对简单的方法来\cref代替给出以下内容?

我们在第 1、2 和 3 章中看到...

看看cleveref package manual,似乎\Crefmultiformat\Crefrangemultiformat可能合适。但如果可能的话,我希望这只适用于本地或仅适用于章节。例如,我可能确实想要“第 2.1 至 2.3 节”之类的内容部分,只是为了不章节。

答案1

这里的问题是,您默认压缩参考文献,但对于章节参考文献,您不想进行这种压缩。解决方案是在(在本例中)最后两个参考文献之间插入一个额外的逗号;这将关闭该参考文献列表的压缩。有关更详细的说明,请参阅文档的§5。如果您想在参考文献中使用牛津逗号,则需要取消注释\crefmultiformat下面代码中的代码。

\documentclass{book}
\usepackage[capitalize]{cleveref}
%\crefmultiformat{chapter}{Chapters~#2#1#3}{ and~#2#1#3}{, #2#1#3}{, and~#2#1#3}
\begin{document}
\chapter{First chapter}\label{ch:first}
\chapter{Second chapter}\label{ch:second}
\chapter{Third chapter}\label{ch:third}
\chapter{Fourth chapter}\label{ch:fourth}
We saw in \cref{ch:first,ch:second,,ch:third} that ...
\end{document}

代码输出

相关内容