识别标签的相对位置

识别标签的相对位置

如何获取有关标签相对于其他文本的位置的信息?

  • 标签是否位于上一页还是当前页(即出现在前面的几行中,但在同一页上)。
  • 如果标签位于前一页,那么前几页是几页?例如,前 1 页,前 5 页。

获取一些值会很有帮助,例如 0 表示当前页,1 表示上一页,2 表示前两页,因为这些值可以放入 if-then 中。

答案1

这也许也是一个部分答案,因为它解决了您的第一个问题。

varioref包裹提供\vref\vpageref“修饰”页面引用,具体取决于其相对于引用的位置。以下是示例:

在此处输入图片描述

\documentclass{article}
\usepackage{varioref}% http://ctan.org/pkg/varioref
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\section{First section} \lipsum[1] \label{sec:first} \lipsum[2-3]
\section{Second section} \lipsum[4-5] \label{sec:second} \lipsum[6-8]
\section{Third section} \lipsum[9-12] \label{sec:third} \lipsum[13]
\section{Fourth section} \label{sec:fourth} \lipsum[14]
\section{Last section} \label{sec:last} \lipsum[15-17] \label{doc:end}
See the reference \vpageref{sec:last} or \vpageref{sec:second}.
\end{document}

答案2

这是一个部分解决方案:用来\pageref获取定义的页码\label

在此处输入图片描述

\documentclass{book}
\usepackage{lipsum}

\newcounter{pagedelta}
\newcommand{\pagerefdelta}[1]{%
    \setcounter{pagedelta}{\the\value{page}}%
    \addtocounter{pagedelta}{-\pageref{#1}}%
    \the\value{pagedelta}%
}%

\newcommand{\ShowRef}[1]{Section #1 is on Page~\pageref{#1}\par}%
\begin{document}

\chapter{One}
\section{One-One}\label{One-One}
\lipsum[1-4]\label{One-Two}

\chapter{Two}
\section{Two-One}\label{Two-One}
\section{Two-Two}\label{Two-Two}
\section{Two-Three}\label{Two-Three}

\chapter{Three}
\section{Three-One}\label{Three-One}
\lipsum[1-9]

\newpage
\ShowRef{One-One}
\ShowRef{One-Two}
\ShowRef{Two-One}
\ShowRef{Two-Two}
\ShowRef{Two-Three}
\ShowRef{Three-One}
\end{document}

相关内容