当前页命令未返回正确的页码值

当前页命令未返回正确的页码值

我将尝试获取每个段落的起始和结束页码。但是,我无法获取每页第一段的正确页码。我提到了以下 MWE。

\documentclass{book}

\usepackage{lipsum}
\usepackage{pageslts}
\usepackage{tikz}

\DeclareDocumentCommand\ptag{m}{\bgroup%
    \begin{tikzpicture}[remember picture,overlay]%
        \coordinate (here) at (0,0);%
        \protect\draw (current page.west |- here) node[right]{{\textbf{PID:#1-PST:\theCurrentPage}}};%
    \end{tikzpicture}\egroup%
}

\DeclareDocumentCommand\etag{m}{\bgroup%
    \begin{tikzpicture}[remember picture,overlay]%
        \coordinate (here) at (0,0);%
        \protect\draw (current page.west |- here) node[right]{{\textbf{PID:#1-PED:\theCurrentPage}}};%
    \end{tikzpicture}\egroup%
}


\begin{document}

\pagenumbering{arabic}

\chapter{Lipsum Content}

\ptag{1}\lipsum[1]\etag{1}

\ptag{2}\lipsum[2]\etag{2}

\ptag{3}\lipsum[3]\etag{3}

\ptag{4}\lipsum[4]\etag{4}

\ptag{5}\lipsum[5]\etag{5}

\ptag{6}\lipsum[6]\etag{6}

\ptag{7}\lipsum[7]\etag{7}

\ptag{8}\lipsum[8]\etag{8}

\ptag{9}\lipsum[9]\etag{9}

\ptag{10}\lipsum[10]\etag{10}

\ptag{11}\lipsum[11]\etag{11}

\ptag{12}\lipsum[12]\etag{12}

\ptag{13}\lipsum[13]\etag{13}

\ptag{14}\lipsum[14]\etag{14}

\ptag{15}\lipsum[15]\etag{15}


\end{document}

输出 PDF 术语如。我已经提到了下图的PID - para ID, PST - Para Start Page Number, PED - Para End Page Number错误。此错误持续到连续的页面。Para End Page Number

在此处输入图片描述

如何使用“pageslts”包获取准确的实际页码。它是如何发生的。如何解决此错误。请检查并提出建议

答案1

您可以创建自己的页码计数器,但您需要一个自定义版本\label以便延迟扩展直至打印。 \pageref仍然会返回\thepage

请注意,这与 hyperref 或任何其他修改 的包不兼容\newlabel。不过,hyperref 有自己的页数\Hy@abspage

\documentclass{book}

\usepackage{lipsum}
\usepackage{tikz}

\newcounter{realpage}
\setcounter{realpage}{1}
\AddToHook{shipout/after}{\stepcounter{realpage}}

\makeatletter
\def\realpagelabel#1{\@bsphack
  \protected@write\@auxout{\let\therealpage=\relax}% delay expansion
   {\string\newlabel{#1}{{\therealpage}{\thepage}}}%
\@esphack}
\makeatother

\DeclareDocumentCommand\ptag{m}{\realpagelabel{ptag#1}%
    \begin{tikzpicture}[remember picture,overlay]
        \coordinate (here) at (0,0);
        \draw (current page.west |- here) node[right]{\textbf{PID:#1-PST:\ref{ptag#1}}};
    \end{tikzpicture}%
}

\DeclareDocumentCommand\etag{m}{\realpagelabel{etag#1}%
    \begin{tikzpicture}[remember picture,overlay]
        \coordinate (here) at (0,0);
        \draw (current page.west |- here) node[right]{{\textbf{PID:#1-PED:\ref{etag#1}}}};
    \end{tikzpicture}%
}

\begin{document}

\pagenumbering{arabic}

\chapter{Lipsum Content}

\ptag{1}\lipsum[1]\etag{1}

\ptag{2}\lipsum[2]\etag{2}

\ptag{3}\lipsum[3]\etag{3}

\ptag{4}\lipsum[4]\etag{4}

\ptag{5}\lipsum[5]\etag{5}

\ptag{6}\lipsum[6]\etag{6}

\ptag{7}\lipsum[7]\etag{7}

\ptag{8}\lipsum[8]\etag{8}

\ptag{9}\lipsum[9]\etag{9}

\ptag{10}\lipsum[10]\etag{10}

\ptag{11}\lipsum[11]\etag{11}

\ptag{12}\lipsum[12]\etag{12}

\ptag{13}\lipsum[13]\etag{13}

\ptag{14}\lipsum[14]\etag{14}

\ptag{15}\lipsum[15]\etag{15}


\end{document}

相关内容