
Я использую пакеты geometry
и fancyhdr
для удаления верхнего поля с некоторых страниц моего документа:
\fancypagestyle{special}{
\newgeometry{top=0mm}
}
Это хорошо работает для удаления верхнего поля на всех страницах, где я использую этот стиль, но также изменяет видимое нижнее поле на большее, как будто удаление верхнего поля смещает всю страницу вверх. Как мне восстановить нижнее поле до нормального состояния?
Обновлять:Вот компилируемый код, демонстрирующий проблему:
\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}
Обратите внимание на некрасивый пробел внизу первой страницы.
решение1
Вам не нужно использовать newgeometry
, или \fancypagestyle
:, просто загрузите eso-pic
и \AddToShipoutPicture*
команду:
\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}
решение2
Так нельзя. Заголовки страниц добавляютсяпослестраница уже набрана с текущей высотой текста. Таким образом, возможно, можно переместить страницу через \newgeometry
, но страница не будет набрана снова.
Поэтому \newgeometry
его следует использовать вне стиля страницы, например:
\newpage
\newgeometry{...}
...
\newpage
\restoregeometry