抑制仅包含一个大表的单个页面的页码?

抑制仅包含一个大表的单个页面的页码?

我有一张大表格,占据了一页的整个空间。不幸的是,表格还覆盖了页码,页码是透明的。我不想将表格拆分到两页,因此我想隐藏这一页的页码。这是我的表格源代码:

\begin{table}
    \myfloatalign
    \begin{tabular}[t]{rrrrr}
        % lots
        % of
        % rows
    \end{tabular}
\end{table}

我尝试将其放置\thispagestyle{empty}在桌子前面、桌子后面以及其他各个地方,但是都没有成功。

如何隐藏包含表格的页面的页码?

答案1

您遇到的行为是因为表格首先在当前页面上排版,因此\thispagestyle之前或之后适用于该页面,但随后它会浮动到显示它的下一页。

为了使这项工作使用floatpag\floatpagestyle{empty}使所有浮动页面都有一个空的样式或使用\thisfloatpagestyle{empty} 里面浮点数,即table环境。

答案2

您可以使用该afterpage包及其命令\afterpage;该方法确实有点笨拙,但多年来,我已经在您描述的那种情况下使用了它,并且效果非常好。

... material before large table ...
\afterpage{ % execute argument of this command *after* end of current page
\clearpage % clear any pending floats
\begin{table}
...
\end{table}
\thispagestyle{empty}
\clearpage % force a page break
} % end of \afterpage{...} stuff
... remainder of document ...

唯一可能失败的情况是,在执行命令之前,您已经有其他浮点数排队等待在页面上排版\afterpage{}。如果是这种情况,只需发出第二个\clearpage命令。:-)

答案3

您可以更改页面样式全部使用包创建浮动页面fancyhdr。它提供了构造\iffloatpage{value for float page}{value for other pages}。请参阅文档fancyhdr,第 14 节。

另一个选项是使用 float 包和提供的H放置说明符将表格放在非浮动页面上。然后您可以\thispagestyle在此页面上使用。当然,这意味着您要自己控制表格的放置位置……

答案4

扩展鲍里斯的答案,我通过在我的序言中添加以下内容来使其发挥作用

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[C]{\iffloatpage{}{\thepage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

相关内容