如何测试新页面?

如何测试新页面?

我需要知道何时更改页面。我以为我有一个使用 everypage 的解决方案。使用 \newpage 有效,但使用 \vspace 无效。

\documentclass{article}
\usepackage{everypage}
\usepackage{tikzpagenodes}

\newif\ifnewpage
\newpagefalse
\AddEverypageHook{NEWPAGE\global\newpagetrue}

\newcommand{\pagetest}{\noindent
\ifnewpage{ It worked!}\else{ What's going on?}\fi
\begin{tikzpicture}[remember picture,overlay]
\ifnewpage\node[above right]{ Okay};
%\global\newpagefalse
\else\node[above right]{Still not found.};
\fi
\pgfextracty{\offset}{\pgfpointanchor{current page text area}{north}}
\node[below]{distance to top of page = \the\offset};
\end{tikzpicture}
\global\newpagefalse}

\begin{document}
\pagetest
\newpage
\pagetest
\vspace{60\baselineskip}

\pagetest
\end{document}

根据第一页,钩子在 tikz 之后运行(或者也许 tikz 在稍后调用时保存寄存器以供使用)。请注意, \newpagefalse 都可以。

答案1

事实证明 tikz 已经使用 aux 来计算页码。

\documentclass{article}
\usepackage{tikzpagenodes}

\makeatletter
\let\tikzpage=\oddpage@page
\makeatother

\newcommand{\pagetest}{\noindent
\begin{tikzpicture}[remember picture,overlay]
\node[right]{current page = \tikzpage{} which may not equal \thepage};
\end{tikzpicture}
}

\begin{document}
\pagetest
\vspace{60\baselineskip}

\pagetest
\end{document}

第2页

只需将 \tikzpage 与另一个计数器进行比较即可。请注意,该值是在 tikz 内部计算的,可能在其他地方不准确。

它的实际用途是两列文本对齐:强制一列为空行,以避免另一列发生冲突

相关内容