我在整个文档的每一页上都使用了页眉\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}
我尝试过将\newpage
following 放在\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 输出一些页面后立即使用钩子来执行代码。(根据\changes
ltshipout.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}
(缺点是您不能使用它来修改第一页,因为在此之前没有可以进行发货操作的页面。)