newgeometry 垂直移动内容

newgeometry 垂直移动内容

我在使用 geometry 包时遇到了问题。分配\newgeometry中间文档后,我的页面内容会垂直移动。我知道\newgeometry“禁用序言中指定的所有选项”,但我几乎给出了与序言中\newgeometry相同的变量(我使用文件进行设置)。以下是我的文档,采用 mws 风格:geometry.sty

\documentclass[11pt, oneside, a4paper]{memoir}
\usepackage{eso-pic}
\usepackage[left=24mm,right=14mm,top=18mm,bottom=40mm]{geometry}
\usepackage{lipsum}

\makepagestyle{strucrep}
    \makeoddhead{strucrep}{\small
        \begin{tabularx}{0.6\textwidth}{@{}l X r | l r}
            \textbf{Sag:}   & & Building 231 & \textbf{Dok. dato:} & 2017-05-21 \\
            \textbf{Sags nr.:}  & & A-2341  & \textbf{Rev. dato:} & 2017-05-28 \\
            \textbf{Doc. ID:} & & K09\_B2.2 &\textbf{Revision:}  & A \\
            \multicolumn{3}{@{}l |}{\textbf{A. Konstruktionsdokumentation}} &\textbf{Side:} & \thepage \\
            \multicolumn{4}{@{}l }{\Large\textbf{A1. Projektgrundlag}}  & \rule{0pt}{6mm} \\
        \end{tabularx}
    }{}{}
\setlength{\headheight}{32mm}
\setlength{\headsep}{8mm}

\pagestyle{strucrep}

\newcommand\BackgroundPicture{%
    \setlength{\unitlength}{1mm}
    \put(10, 10){\framebox(192,247){}}
}

\AddToShipoutPicture{\BackgroundPicture}

\begin{document}

\section{\TeX}
\lipsum
\newpage

\ClearShipoutPicture

\AddToShipoutPicture{\BackgroundPicture}
\newgeometry{left=24mm, right=44mm, top=18mm, bottom=40mm, marginparsep=10mm, marginparwidth=20mm}
\edef\marginnotetextwidth{\the\textwidth}
\section{\LaTeX}
\lipsum

\end{document}

它生成以下正确的标题: 正确的标题

之后\newgeometry它产生了这个错误的标题: 标题错误

我尝试在 之后重复\setlength{\headheight}and命令,但无济于事。\setlength{\headsep}\newgeometry

我想我可以将top=XXmm它强制放到正确的位置,但我真的很想知道如何以我理解的方式来修复它。

答案1

正如@Schweinebacke 指出的那样,问题在于我\setlength在定义几何之后使用了它,这修复了错误定义的几何。

正确的方法是定义“顶部”以包含标题(以及标题段和标题高度),并在几何定义中定义headheight和。这必须在和中完成。headsepgeometry\newgeometry

所以正确的方法是:

\usepackage[left=24mm,right=14mm,top=40mm,bottom=40mm, headheight=32mm, headsep=8mm]{geometry}

\newgeometry{left=24mm, right=44mm, top=40mm, bottom=40mm, marginparsep=10mm, marginparwidth=20mm, headheight=32mm, headsep=8mm}

(您可以使用 在文本区域中包含标题includehead,但我更喜欢这种方式)

感谢@Schweinebacke

相关内容