Use o pacote intelligentef para listar três ou mais capítulos

Use o pacote intelligentef para listar três ou mais capítulos

estou usando ocleverefpacote para se referir aos capítulos do meu documento com \documentclass{book}.

Abaixo está um 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}

Para o Capítulo 4, o MWE produz isto:

capítulo

Existe alguma maneira relativamente simples de \creffornecer o seguinte?

Vimos nos Capítulos 1, 2 e 3 que ...

Olhando para ocleveref package manual, parece que \Crefmultiformatou \Crefrangemultiformatpode ser apropriado. Mas, se possível, gostaria que isto se aplicasse apenas localmente ou apenas aos capítulos. Por exemplo, posso realmente querer algo como "Seções 2.1 a 2.3" paraSeções,só não paracapítulos.

Responder1

O problema aqui é que você está compactando as referências por padrão, mas para as referências dos capítulos você não deseja fazer essa compactação. A solução é inserir uma vírgula extra entre (neste caso) as duas últimas referências; isso desativará a compactação dessa lista de referências. Para uma descrição mais completa, consulte §5 da documentação. Se quiser a vírgula Oxford em suas referências, você precisará descomentar o \crefmultiformatcódigo abaixo.

\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}

saída de código

informação relacionada