Cleveref:以下页面的缩写(f./ff.)

Cleveref:以下页面的缩写(f./ff.)

我想cleveref将对一页或两页的页面范围的引用显示为“5f.”或“5ff.”,而不是分别显示为“5–6”或“5–7”。

根据马丁·施罗德的评论参考页码范围:LaTeX 可以将“3-4”转换为第 4f 页,或者将“3-5”转换为第 3ff 页吗?这应该是可行的,不幸的是,我找不到任何关于如何实现这一点的提示。

答案1

这可以通过宏来完成\cpagerangelabelformat{type}{format}

该格式可以使用#1参数#6值,#1并且#2是从文件中提取的真实页计数器值.aux

这个例子还不够完美,但是它显示了一页或一页差异大于 1 且恰好为 1 的正确值。

确实如此不是处理页面标签以错误顺序出现的情况!

\documentclass{article}

\usepackage{blindtext}

\usepackage{cleveref}


\crefrangelabelformat{page}{%
  \ifnum #2 = #1 % same page
  #1% 
  \else
  \ifnum #2 > \numexpr #1+1\relax % Difference > 1
  #1ff.\@%
  \else
  #1f.\@%    Difference = 1
  \fi
  \fi
}



\begin{document}

In \cpagerefrange{sec:one}{sec:one} we see

In \cpagerefrange{sec:one}{sec:another} we see

In \cpagerefrange{sec:one}{sec:yetanother} we have

Wrong usage (reversed labels!): in \cpagerefrange{sec:yetanother}{sec:one}


\section{A section} \label{sec:one}
\blindtext[5]

\section{Another section} \label{sec:another}

\blindtext[10]

\section{Yet another section} \label{sec:yetanother}

\blindtext[5]
\end{document}

在此处输入图片描述

相关内容