标签之间的页面距离

标签之间的页面距离

我想根据章节的长度(页数、行数等)来测量章节。

章节标题-->章节标题(12 页)

我想要一个动态的解决方案,而不是静态地生成并添加这些信息;

\section{Section Title (\pagedistance{label1,label2} pages)}
\pagedistancelabel{label1}
...
...
\section{Section Title (\pagedistance{label2, label3} pages)}
\pagedistancelabel{label2}
...
...

目前是否存在这个包?

答案1

没有针对页面距离的直接命令,但可以使用refcountHeiko Oberdiek (TeX.SX 上的 TeX 大师之一 ;-)) 编写的包。

引用的问题在于它们可以是任何东西(数字、链接等),并且命令\ref\pageref不可扩展。但是,\getpagerefnumber{label}命令返回纯数字并且可扩展。

我定义了一个\pagedistance{label1}{label2}命令,将第一个标签视为参考点(=即零级)并减去第二个标签的参考计数。如果差值为负,则label1位于比更早的页面上label2

该命令不检查标签是否存在。

\documentclass{article}

\usepackage{refcount}
\newcounter{pagediff}

\newcommand{\pagedistance}[2]{%
\setcounter{pagediff}{\getpagerefnumber{#1}}%
\addtocounter{pagediff}{-\getpagerefnumber{#2}}%
\number\value{pagediff}%
}%
\usepackage{blindtext}
\begin{document}

\section{A: \protect\pagedistance{sectionB}{sectionA} pages ahead} \label{sectionA}

\blindtext[50]

\section{B: \protect\pagedistance{sectionA}{sectionB} pages backwards} \label{sectionB}
\blindtext[20]

\section{C: \protect\pagedistance{sectionA}{sectionC} pages backwards} \label{sectionC}


\end{document}

一些改进的版本(请注意,不再\pagedistance可扩展)

\documentclass{article}

\usepackage{etoolbox}
\usepackage{xparse}
\usepackage{refcount}

\newcounter{pagediff}


\NewDocumentCommand{\pagedistance}{smm}{%
  \setcounter{pagediff}{\numexpr\getpagerefnumber{#2} -\getpagerefnumber{#3}}%
  \IfBooleanF{#1}{%
    \number\value{pagediff}%
  }%
}

\newcommand{\Pagedistance}[2]{%
  \begingroup
  \pagedistance*{#1}{#2}% The starred version doesn't print the number, it stores only. 
  \def\x{\number\value{pagediff}}
  \ifnumgreater{\x}{0}{%
    \x\ pages ahead%
  }{%
    \ifnumless{\x}{0}{%
      \x\ pages backward%
    }{%
      On the same page%
    }%
  }%
  \endgroup
}




\usepackage{blindtext}
\begin{document}

\section{A: \protect\Pagedistance{sectionB}{sectionA}} \label{sectionA}

\blindtext[4]

\section{B: \protect\Pagedistance{sectionA}{sectionA}} \label{sectionB}

\section{C: \protect\Pagedistance{sectionA}{sectionC}} \label{sectionC}


\end{document}

在此处输入图片描述

相关内容