使用几何图形指定页边距到页眉的距离

使用几何图形指定页边距到页眉的距离

使用geometry,可以通过指定从下方的文本主体到上方的标题的距离来设置标题的位置headsep

\documentclass{article}
\usepackage[showframe, headsep = 5mm]{geometry}
\usepackage{lipsum, fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    \fancyhead[R]{A header plus the page number: \thepage}
\begin{document}
\lipsum
\end{document}

在此处输入图片描述

另一方面,在 MS Word 中,页眉的位置是通过指定从上方页边距到下方页眉的距离来设置的:

在此处输入图片描述

我现在的问题是,有人给我提供了指南,告诉我 MS Word 中的设置,我必须弄清楚如何将其转换为 LaTeX。而这个设置我搞不懂。我该如何在的帮助下设置geometry从上方的页边距到下方的页眉的距离(在这种情况下我只需设置headsep = 0pt)?

答案1

您应该top与设置一起指定includehead

在此处输入图片描述

\documentclass{article}

\usepackage[showframe,includehead,top=5mm]{geometry}

\usepackage{lipsum, fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{A header plus the page number: \thepage}
\begin{document}
\lipsum
\end{document}

来自geometry 用户手册includehead图2显示了(和)的含义includefoot

在此处输入图片描述

如果现在要指定页面顶部(边距)到文本主体顶部的距离,请另外设置headsepheadheight。例如,我们可以默认设置headheight\baselineskip,然后设置

\geometry{
  showframe,
  includehead,
  top=5mm,
  headsep=\dimexpr20mm-\baselineskip,
  headheight=\baselineskip
}

使正文顶部25mm与页面顶部边距准确对齐。

答案2

这是我最终的做法:

\documentclass{article}
\usepackage[showframe,
    tmargin = 24mm,% distance from page margin to body text
    headheight = 4.22mm,% height of header (the minimum required by fancyhdr)
    % tmargin (24mm) - headsep (X mm) - headheight (4.22mm) = 16mm (= the desired distance from page margin to header) =
    headsep = 3.78mm,% distance from body text to header    
    ]{geometry}
\usepackage{lipsum, fancyhdr}
    \pagestyle{fancy}
    \fancyhf{}
    \fancyhead[R]{A header plus the page number: \thepage}
\begin{document}
\lipsum
\end{document}

在此处输入图片描述

答案3

你可以手动计算正确的值,因为你只需要设置一次,不是吗?如果值经常变化,你可以使用此代码

\makeatletter
\geometry{
   showframe,
   top=20mm,
   headsep = \dimexpr\Gm@tmargin-\headheight-5mm\relax,
}
\makeatother

其中\makeatletter启用@作为命令名称的一部分。然后在\dimexpr(维度表达终止于\relax)我们使用顶部边距,必须设置 headsep宽度top(!),然后减去\headheight和额外的 5 毫米。结果是页眉从页面顶部开始 5 毫米。

相关内容