隔离页面以关闭页眉

隔离页面以关闭页眉

我在整个文档的每一页上都使用了页眉\usepackage{fancyhdr},我想在某些包含大图的页面上关闭页眉。如果我正确使用它,页眉会删除,但仅限于随机页面。我以为我可以通过放在我的图之前然后使用\thispagestyle{empty}来将效果应用于正确的页面,但结果仍然相同。我是否必须为图创建一个新的页眉,或者有更简单的方法吗?\newpage\thispagestyle{empty}.tex

在我的main.tex文档中,我有\begin{document},然后是\pagestyle{fancy}\fancyfoot{}\lhead{\thepage}\rhead{\nouppercase{\rightmark}}后面跟着各种.tex文档。查看特定.tex文档,我有很多插入图形的文本,如下所示:

\begin{figure}
\centering
\hbox{\hspace{-15mm} \includegraphics[scale=0.9]{my-image}}
\caption{my caption}
\label{myfigure}
\end{figure}

我尝试过将\newpagefollowing 放在\thispagestyle{empty}图片前面,但它会将其应用到错误的页面。我也尝试过\clearpage按照评论中的建议操作,但还是发生了同样的事情。

答案1

这似乎有效(尽管我们不知道您的\documentclass或其他很多反复试验的解决方案):

在此处输入图片描述在此处输入图片描述

\documentclass{article}

\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{lipsum} % For text

\begin{filecontents}[overwrite]{chapter1.tex}
    \clearpage
    \thispagestyle{empty}
    \begin{figure}[p]
    \centering
    \hbox{\hspace{-15mm} \includegraphics[scale=0.9]{example-image-a}}
    \caption{my caption}
    \label{myfigure}
    \end{figure}
\end{filecontents}

\fancyhead{}
\fancyfoot{}
\fancyhead[L]{\thepage}
\fancyhead[R]{\nouppercase{\rightmark}}
\renewcommand{\headrulewidth}{0pt}

\pagestyle{fancy}

\begin{document}

\section{Test}
\lipsum[1-8]

\include{chapter1}

\lipsum[1-8]

\end{document}

其中的各个部分只是我创建的filecontents一个文件的示例。.tex


要将页码放在页面上,[p]请使用以下命令:

在此处输入图片描述

\documentclass{article}

\usepackage{graphicx}
\usepackage{fancyhdr}
\usepackage{lipsum} % For text

\begin{filecontents}[overwrite]{chapter1.tex}
    \clearpage
    \thispagestyle{floatp}
    \begin{figure}[p]
    \centering
    \hbox{\hspace{-15mm} \includegraphics[scale=0.9]{example-image-a}}
    \caption{my caption}
    \label{myfigure}
    \end{figure}
\end{filecontents}

\fancyhead{}
\fancyfoot{}
\fancyhead[L]{\thepage}
\fancyhead[R]{\nouppercase{\rightmark}}
\renewcommand{\headrulewidth}{0pt}

% ------------ Added
\fancypagestyle{floatp}{%redefining plain pagestyle
    \fancyfoot{}
    \fancyhead{}
    \fancyfoot[R]{\thepage}         % Page number in bottom right
}

\pagestyle{fancy}

\begin{document}

\section{Test}
\lipsum[1-8]

\include{chapter1}

\lipsum[1-8]

\end{document}

答案2

那么\floatpagestyle{empty}仅适用[p]于大型浮点数吗?

\rotfloatpagestyle另请参阅包装\thisfloatpagestyle 手册floatpag

还请fancyhdr注意 \iffloatpage{浮动页面的值}{其他页面的价值}

\documentclass[twoside]{article}
\usepackage{graphicx}
\usepackage{floatpag}\floatpagestyle{empty}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\begin{document}
\section{foo1}\subsection{foo}\lipsum[1]
\section{foo}\subsection{foo}\lipsum[1]
\section{foo}\subsection{foo}\lipsum[1-2]
\begin{figure}[h]\includegraphics[]{example-image-9x16}\caption{foo}\end{figure}
\section{foo}\subsection{foo}\lipsum[1]
\begin{figure}[p]\centering\includegraphics[]{example-image-9x16}\caption{foo}\end{figure}
\section{foo}\subsection{foo}\lipsum[1]
\section{foo}\subsection{foo}\lipsum[1]
\end{document}

答案3

您需要\pagestyle{empty}在包含该模型的页面发货后,再发送该指令。

  • 在最近发布的 LaTeX中,你可以shipout/after在 LaTeX 输出一些页面后立即使用钩子来执行代码。(根据\changesltshipout.dtx该挂钩于 2021 年 1 月 8 日添加。)

  • 您可以使用该包参考值用于存储和检索 LaTeX 放置相关图形的页面的所谓“绝对页码”的值。

  • 此外,您还可以定义一个宏\CodeAfterShipoutOfAbsolutePage,在其中指定绝对页码和一些代码,以便shipout/after仅在绝对页码具有指定值的页面发出后,将指令附加到挂钩以执行代码。

  • 在下面的例子中,可以通过让 TeX 进行计算来指定绝对页码,这可能涉及访问 zref 标签。因此,在下面的例子中,\CodeAfterShipoutOfAbsolutePage不仅需要两个参数,还需要三个参数,其中一个表示逗号分隔的 zlabel 列表,必须定义这些 zlabel 才能计算出绝对页码的规范。如果其中一个 zlabel 未定义,就像第一次编译中的情况一样,代码也不会执行。

    !! 因此至少需要两次编译才能使所有内容匹配。!!

因此语法\CodeAfterShipoutOfAbsolutePage是:

\CodeAfterShipoutOfAbsolutePage
  {<comma-list of zref-labels that must exist for the code to be carried out>%
    % Here you specify both those zref-labels that are needed for the
    % <expression for computing the absolute page number of the page after 
    % whose shipping-out code shall be carried out> to work out and probably
    % also those zref-labels that are needed for the <code to carry out after
    % the page has been shipped out> to work out.
  }%
  {<expression for computing the absolute page number of the page after 
    whose shipping-out code shall be carried out>}%
  {<code to carry out after the page has been shipped out>%
    % Be aware that you cannot use this for adding visible material
    % or glue to a page. You can use this only for doing abstract actions
    % like calculations or directives like `\thispagestyle{...}`.
  }%

下面是一个最小的工作示例。
示例中shipout/after使用了钩子。
根据\changes-entriesltshipout.dtx该钩子是在 2021 年 1 月 8 日添加的。
因此,该示例肯定不适用于 2021 年 1 月 8 日之前的 LaTeX 版本,但对于这些早期的 LaTeX 版本,您不会收到错误消息!
这是因为将代码分配给不存在的钩子(其用法未实现)不会触发警告或错误消息。例如,该示例在 TeX Live 2022 中有效。因此它是可编译的,例如,背页如果在 Overleaf 的菜单中选择了 TeX Live 2022。

\NeedsTeXFormat{LaTeX2e}[2021/01/08]
% (According to \changes-entry in ltshipout.dtx the hook
%  shipout/after  was added in January 8, 2021.)
\makeatletter
\RequirePackage[abspage]{zref}
\ExplSyntaxOn
%...............................................................................
% Save the  value of abspage-counter to a zref-label:
%...............................................................................
\cs_new_protected:Npn \saveabspage #1 {\zref@labelbyprops{#1}{abspage}}
%...............................................................................
% Obtain the saved abspage-counter-value from zref-label if possible, otherwise
% deliver -1:
%...............................................................................
\cs_new_protected:Npn \getabspage #1 {\zref@extractdefault{#1}{abspage}{-1}}
%...............................................................................
% Map over comma-list #1 denoting zref-labels and execute code #2 in case all of
% them are defined, otherwise execute code #3; this is for doing calculations 
% with zref-labels which can only be done in case all of them are defined:
%...............................................................................
\cs_new:Npn \CheckWhetherAllZlabelsDefined #1 
  {
    \exp:w
      \clist_map_function:nN {#1} \mystuff_checkzlabel:nwnn
      \exp_after:wN\exp_end:\use_i:nn
  }
\cs_new:Npn \mystuff_checkzlabel:nwnn #1#2 \exp_after:wN\exp_end:\use_i:nn #3#4
  {
    \int_compare:nNnTF {\getabspage{#1}}={-1}
      {#2 \exp_after:wN\exp_end:\use_i:nn {#4}}
      {#2 \exp_after:wN\exp_end:\use_i:nn {#3}}{#4}%
  }
%...............................................................................
% Map over comma-list denoting zref-labels and generate warning for each 
% undefined zref-label:
%...............................................................................
\cs_new_protected:Npn \WarnForUndefinedZlabels #1
  {
    \clist_map_function:nN {#1}\zref@refused
  }
%...............................................................................
% Provide code to execute on background-picture-environment of page whose
% absolute page number is to be specified:
%...............................................................................
\cs_new_protected:Npn \CodeAfterShipoutOfAbsolutePage#1#2#3{ 
  % #1 = comma-list of zref-labels that must exist for the code (#3) to be 
  %      carried out.
  % #2 = expression for computing the absolute page number of the page 
  %      after whose shipout the code #3 shall be carried out:
  % #3 = code to carry out after shipping out the specified page
  \AddToHook{shipout/after}{
    \WarnForUndefinedZlabels{#1}
    \int_compare:nNnT {\CheckWhetherAllZlabelsDefined{#1}{#2}{-1}}
                      =
                      {\value{abspage}}
                      {#3}
  }
}
\ExplSyntaxOff
\makeatother



\documentclass{article}
\usepackage{lipsum}
\pagestyle{headings}

\CodeAfterShipoutOfAbsolutePage{Some ABS label}%
                               {\getabspage{Some ABS label}-1}%
                               {\thispagestyle{empty}}%

\begin{document}
\section{Some headings}
\subsection{Some more headings}
\lipsum{1-2}
\begin{figure}
\noindent\rule{\textwidth}{.6\textheight}
\caption{Some figure}\saveabspage{Some ABS label}
\end{figure}
\lipsum{3-18}
\end{document}

在此处输入图片描述

(缺点是您不能使用它来修改第一页,因为在此之前没有可以进行发货操作的页面。)

相关内容