我正在使用longtable
并希望从 longtable 中访问页码,如以下简单示例所示:
\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage{longtable}
\begin{document}
\begin{longtable}{l}
longtable header: this is page \thepage
\endhead
A \\
A \\
A \\
... however many rows ...
... needed to exceed one page ...
\end{longtable}
\end{document}
但是,生成的 PDF 始终显示this is page 1
在 longtable 标题中,即使它在第 2 页。
根据一条评论这个问题,longtable“将头部保存在一个框中,并且不会在每一页都重新设置它”。评论似乎表明,如果不进行重大重写,滚动页码根本无法从 longtable 中访问。我理解得对吗?(我当然希望我理解正确不是理解正确,所以还是有希望做到的。
答案1
这种方法可行。不过我不知道左边距从何而来。另外,不知何故,页数计数器无法正常工作。
\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage{longtable}
\usepackage{everypage}
\newcounter{mypage}
\setcounter{mypage}{1}
\makeatletter
\AddEverypageHook{\stepcounter{mypage}%
\ifdim\ht\LT@head>0pt
\dimen0=\ht\LT@head
\global\setbox\LT@head=\vbox to\dimen0{\strut
longtable header: this is page \themypage}%
\fi
}
\makeatother
\begin{document}
\begin{longtable}{l}
longtable header: this is page \thepage
\endhead
\rule{0.7\textwidth}{0.7\textheight}\\
\rule{0.7\textwidth}{0.7\textheight}\\
\rule{0.7\textwidth}{0.7\textheight}
\end{longtable}
\end{document}