在 longtable 中使用页码

在 longtable 中使用页码

我正在使用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}

相关内容