我希望标题规则精确地定位在页边距处。默认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}