考虑以下 MWE:
\documentclass{article}
\usepackage{kantlipsum}
\pagestyle{headings}
\usepackage{longtable}
\begin{document}
\section{First}
\kant[1]
% using this longtable changes the header from "1 First" to "2 Second":
% \begin{longtable}{ll}
% bla & blub \\
% bla & blub
% \end{longtable}
\section{Second}
\kant[2]
\end{document}
奇怪的是,添加longtable
环境会将页面标题从»1 第一页«到»2 秒«。我是否遗漏了一些显而易见的东西?有人知道在哪里寻找原因吗?
答案1
我认为这是一个错误,很抱歉,在错误数据库中有类似(但不同)的实例,一种解决方法是修改第 402 行左右的 longtable 的本地副本以丢失 vboxing。
\global\vsize\@colht
% \vbox
{\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
如果您让我知道(a)这是否解决了您的真实情况和/或(b)是否破坏了其他所有内容,那将是有用的信息......
答案2
根据 David Carlisle 的建议,这里有一个解决方案,它不需要您制作文件的本地副本。相反,它利用了包的longtable.sty
宏。在序言中插入以下代码应该可以解决问题。\patchcmd
etoolbox
\usepackage{longtable,etoolbox}
% The following code should only be used with v. 4.11 [2004/02/01, (DPC)]
% of the longtable package. It will probably -- actually, almost
% certainly! -- not work with other versions of this package.
% There are four separate occurrences of \vbox in "\LT@output";
% must patch (i.e., eliminate) only the one that follows "\@colht".
\makeatletter
\patchcmd{\LT@output}{\@colht \vbox}{\@colht}{}{}
\makeatother