
Tenho cabeçalhos em cada página \usepackage{fancyhdr}
em todo o documento, que desejo desativar em determinadas páginas com números grandes. Se eu usar \thispagestyle{empty}
corretamente, remove o cabeçalho, mas apenas em uma página aleatória. Achei que poderia aplicar o efeito à página correta colocando \newpage
logo antes da minha figura e depois usando \thispagestyle{empty}
, mas o resultado ainda é o mesmo. Tenho que criar um novo .tex
só para a figura ou existe uma maneira mais fácil de fazer isso?
No meu main.tex
documento eu tenho , e
\begin{document}
então \pagestyle{fancy}
,,,,, seguido por vários \fancyfoot{}
documentos . Olhando para um documento específico, tenho muito texto com gráficos inseridos da seguinte forma:\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}
Tentei colocar \newpage
seguido de \thispagestyle{empty}
logo antes da imagem, mas aplica na página errada. Também tentei \clearpage
conforme sugerido nos comentários, mas aconteceu a mesma coisa.
Responder1
Isso parece funcionar (embora não conheçamos suas \documentclass
soluções de tentativa e erro ou muito mais):
\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}
As partes filecontents
são apenas um exemplo de um dos .tex
arquivos que criei.
Para colocar o número da página na [p]
página, use isto:
\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}
Responder2
E usar \floatpagestyle{empty}
apenas [p]
para carros alegóricos grandes?
Veja também \rotfloatpagestyle
e \thisfloatpagestyle
no manual da floatpag
embalagem.
Observe também que fancyhdr
fornece
\iffloatpage{
valor para página flutuante}{
valor para outras páginas}
.
\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}
Responder3
Você precisa que a diretiva \pagestyle{empty}
seja emitida após a página anterior à página que contém a figura ser enviada.
Com uma versão recente do LaTeX, você pode usar o gancho
shipout/after
para executar o código logo após o LaTeX enviar alguma página. (De acordo com as\changes
entradas emltshipout.dtxesse gancho foi adicionado em 8 de janeiro de 2021.)Você pode usar o pacotezrefpara armazenar e recuperar o valor do chamado "número absoluto da página" da página onde o LaTeX está colocando a figura em questão.
Além disso, você pode definir uma macro
\CodeAfterShipoutOfAbsolutePage
onde pode especificar um número absoluto de página e algum código para que as diretivas sejam anexadas ao ganchoshipout/after
para executar o código somente após o envio da página cujo número absoluto de página possui o valor especificado.No exemplo abaixo, o número absoluto da página pode ser especificado fazendo com que o TeX faça cálculos que podem envolver o acesso a um rótulo zref. Portanto, no exemplo abaixo,
\CodeAfterShipoutOfAbsolutePage
não são necessários apenas dois argumentos, mas três argumentos, um deles denotando uma lista separada por vírgula de zlabels que devem ser definidos para que a especificação do número absoluto da página funcione. Se um desses zlabels não estiver definido, como acontece na 1ª compilação, o código também não será executado.!! Assim, são necessárias pelo menos duas compilações para que tudo corresponda. !!
Então a sintaxe de \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{...}`.
}%
Aí vem um exemplo mínimo de trabalho.
No exemplo, o gancho shipout/after
é usado.
De acordo com as \changes
entradas emltshipout.dtxesse gancho foi adicionado em 8 de janeiro de 2021.
Portanto, o exemplo definitivamente não funciona com versões do LaTeX anteriores a 8 de janeiro de 2021, mas com versões anteriores do LaTeX você não recebe mensagens de erro!
Isso ocorre porque atribuir código a um gancho que não existe no sentido de seu uso não ser implementado não aciona mensagens de aviso ou de erro. O exemplo funciona, por exemplo, com TeX Live 2022. Portanto, é compilável, por exemplo, comNo versose no menu do Overleaf TeX Live 2022 estiver selecionado.
\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}
(Uma desvantagem é que você não pode usar isso para modificar a primeira página porque não haverá uma página anterior a essa, após cujo envio as coisas possam ser feitas.)