
Estou usando os pacotes geometry
e fancyhdr
para remover a margem superior de algumas páginas do meu documento:
\fancypagestyle{special}{
\newgeometry{top=0mm}
}
Isso funciona bem para remover a margem superior em todas as páginas onde uso esse estilo, mas também altera a margem inferior aparente para ser maior, como se a remoção da margem superior deslocasse toda a página para cima. Como posso restaurar a margem inferior ao normal?
Atualizar:Aqui está um código compilável para demonstrar o problema:
\documentclass[openany]{book}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{bophook}
\usepackage{afterpage}
\usepackage{lipsum}
\fancypagestyle{special}{
\newgeometry{top=0mm}
}
\fancypagestyle{plain}{
\restoregeometry
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
}
\begin{document}
\pagestyle{plain}
\thispagestyle{special}
\centerline{\includegraphics[width=\paperwidth, trim={0 37mm 0 37mm},clip]{Downloads/full.jpg}}
\section*{Test}
\lipsum[1-10]
\end{document}
Observe a lacuna feia na parte inferior da primeira página.
Responder1
Você não precisa usar newgeometry
, nem \fancypagestyle
: apenas load eso-pic
e o \AddToShipoutPicture*
comando:
\documentclass[openany]{book}
\usepackage{graphicx}
\usepackage[export]{adjustbox}
\usepackage[showframe]{geometry}
\usepackage{fancyhdr}
\usepackage{bophook}
\usepackage{afterpage}
\usepackage{lipsum}
\usepackage{eso-pic}
\begin{document}
\pagestyle{plain}
\AddToShipoutPictureBG*{\AtPageUpperLeft{%
\makebox[\paperwidth]{\includegraphics[scale = 1.05,valign=t]{SanRomano-all}}}}
\section*{Test}
\lipsum[1-20]
\end{document}
Responder2
Você não pode assim. Os cabeçalhos das páginas são adicionadosdepoisa página já está composta com a altura do texto atual. Assim, pode ser possível mover a página via \newgeometry
, mas a página não será composta novamente.
Portanto, \newgeometry
deve ser usado fora de um estilo de página, por exemplo:
\newpage
\newgeometry{...}
...
\newpage
\restoregeometry