没有上边距时保持正常下边距

没有上边距时保持正常下边距

我正在使用geometryfancyhdr包来删除文档中某些页面的顶部边距:

\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

相关内容