页眉规则恰好位于边距

页眉规则恰好位于边距

我希望标题规则精确地定位在页边距处。默认includehead选项(例如\usepackage[margin=1in, includehead]{geometry})似乎将标题文本的顶部定位在“原始”页边距处。如何将标题规则精确地定位在“原始”页边距处(以及标题文本中的适当移位)?

编辑:我想保持正文和标题规则之间的分离。

还有什么更精确的解决方案?

编辑3:所需布局的示例\usepackage[left=2.5cm, right=2.5cm, bottom=2.5cm, top=2.92cm, headsep= 0.5cm]{geometry}在此处输入图片描述

无论是否使用,花式页眉的标准布局似乎都没有页边距规则includehead。我拥有的图像是“所需”图像,其中页眉规则大约位于页边距。无需includehead使用,例如,通过使用,也可以实现类似的效果\usepackage[left=2.5cm, right=2.5cm, bottom=2.5cm, top=3.15cm]{geometry}。这些是估计值。注意:当我说边距规则时,我指的是在正文垂直向下移动导致的边距移动之前的“原始”边距(例如,所有边为 2.5 厘米)。不过,我想知道是否有一种精确的方法可以实现这一点,可以自动适用于所有字体大小和边距大小(而不是top=3.15cm仅对 2.5 厘米边距使用 ean 近似值)。

编辑4:带有标记。注意文本是来自 Wikiepdia 页面的随机文本。示例在此处输入图片描述

梅威瑟:

\documentclass[10pt, a4paper, twoside, openany]{book}

\usepackage[left=2.5cm, right=2.5cm, bottom=2.5cm, top=2.92cm, headsep=0.5cm]{geometry} % <- want a more precise/better solution
% \usepackage[left=2.5cm, right=2.5cm, bottom=2.5cm, top=3.15cm]{geometry} % or this

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{hi}
\lhead{hi}

\begin{document}

Hello

\end{document}

答案1

您可以更新标题规则的设置方式,将其向下移动到文本块顶部边距的正上方:

在此处输入图片描述

\documentclass{book}

\usepackage[margin=1in]{geometry}

\usepackage{lipsum}
\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}% Clear header/footer
\rhead{hi}% Right header
\lhead{hi}% Left header

% Update \headrule to be on the (top) text margin
\makeatletter
\def\headrule{{%
  \if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
  \vskip\headsep% Move down to the top of the text block
  \hrule\@height\headrulewidth\@width\headwidth% Set the header rule
  \vskip\dimexpr-\headrulewidth-\headsep\relax% Move up to the header
}}

\makeatother

\begin{document}

\chapter{A chapter}
\lipsum[1-50]

\end{document}

答案2

您可以根据需要更改方法获取标题规则。我使用了xcoffin允许在页面的任何位置放置任何内容的包。在本例中,规则color= blue, width = 1pt, length =\textwidth+\oddsidemargin+1in为 。(用于\oddsidemargin)。

规则在左/右标题之前/之后排版,并通过添加适当的 Y 偏移量向下移动:1ex向下。

请使用包装检查是否正确对齐showframe

您可以根据需要设置 headsep(我设置了 2cm 来夸大结果),前提是您设置了值top=1in +headsep以使页眉规则从纸张顶部到顶部为 1 英寸。使用layout包检查 de 值。

如您所见,标题规则在标题中的位置与 中的任何设置无关geometry

这是针对书籍的更现实场景的代码,具有不同的奇数和偶数边距,并且根据我的理解,您希望规则延伸到书籍的外边距(页码所在的位置)。否则很容易更改。

\documentclass[10pt, a4paper, twoside, openany]{book}

\usepackage[left=5.5cm, right=2.5cm, bottom=2.5cm, top=4.54cm, headsep=2cm]{geometry} % top= 1in + headsep

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LO]{\TypesetCoffin\Framexi hleft}
\fancyhead[RO]{\thepage }
\fancyhead[LE]{\thepage}
\fancyhead[RE]{hright\TypesetCoffin\Framexii }
    
\renewcommand{\headrulewidth}{0pt} % width of line bellow the header

\usepackage{xcoffins,calc,xcolor} % added

\usepackage{kantlipsum} % dummy text

%   \usepackage{showframe}  %added
%   \renewcommand*\ShowFrameColor{\color{red}}    %added
\usepackage{layout} %added

\NewCoffin\Framexi
\NewCoffin\Framexii
\NewCoffin\Hrulei
\NewCoffin\Hruleii

\SetHorizontalCoffin\Hrulei{\color{blue}\rule{\textwidth+\oddsidemargin+1in}{1pt}} % lenght and width of the rule   
\SetHorizontalCoffin\Hruleii{\color{blue}\rule{\paperwidth -1in -\evensidemargin}{1pt}}

\JoinCoffins*\Framexi[l,vc]\Hrulei[l,vc](0pt,-1ex) % X Y offsets
\JoinCoffins*\Framexii[l,vc]\Hruleii[r,vc](0pt,-1ex) % X Y offsets
    
\begin{document}
%\layout  %check the layout

\kant[1-20] 
    
\end{document}

一

二

三

相关内容