考虑以下最小示例:
\documentclass[BCOR=12mm, headsepline]{scrbook}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\KOMAoption{headsepline}{0.5pt:\textwidth}
\usepackage{geometry} % all okay of geometry not loaded
\usepackage{blindtext}
\begin{document}
\blindtext
\end{document}
头管的长度刚好BCOR
够短。但只有在geometry
装载包裹时才有。
我在这里遗漏了什么?
答案1
将顺序更改为
\usepackage{geometry}
\KOMAoption{headsepline}{0.5pt:\textwidth}
解释
\KOMAoption{headsepline}{0.5pt:\textwidth}
\usepackage{geometry}
使用在包加载之前\textwidth
计算的。typearea
geometry
geometry
请注意,即使没有边距等选项,加载也会改变页面布局。
下面的例子使用更大BCOR
和更厚headsepline
来显示差异:
\documentclass[BCOR=60mm, headsepline]{scrbook}
\usepackage{scrlayer-scrpage}% sets page style scrheadings
\KOMAoption{headsepline}{5pt:\textwidth}
\usepackage[
%pass % disables calculations by geometry
]{geometry}
\usepackage{showframe}% show the page layout
\usepackage{blindtext}% dummy text
\begin{document}
\blindtext
\end{document}
geometry
您可以使用选项避免重新计算页面布局pass
。如果在上面的示例中启用此选项,您将获得
如果比较结果,您会发现包geometry
还至少禁用了由类选项“headsepline”自动设置的选项BCOR
和选项。headinclude
因此,如果您想使用包geometry
(设置边距?),那么您必须使用此包的选项来设置绑定偏移量,并可能将头部包含在整个主体中。
\documentclass[headsepline]{scrbook}
\usepackage{scrlayer-scrpage}% sets page style scrheadings
\usepackage[
bindingoffset=60mm,
includehead
]{geometry}
\KOMAoption{headsepline}{5pt:\textwidth}
\usepackage{showframe}% show the page layout
\usepackage{blindtext}% dummy text
\begin{document}
\blindtext
\end{document}
结果:
以你的例子来说:
\documentclass[headsepline]{scrbook}
\usepackage{scrlayer-scrpage}% sets page style scrheadings
\usepackage[
bindingoffset=12mm,
includehead
]{geometry}
\KOMAoption{headsepline}{.5pt:\textwidth}
\usepackage{blindtext}% dummy text
\begin{document}
\blindtext
\end{document}
一些 KOMA-Script 选项(如BCOR
或DIV
和命令)\recalctypearea
也会更改页面布局。因此,使用
\AtBeginDocument{\KOMAoption{headsepline}{0.5pt:\textwidth}}
请注意,\textwidth
也可以在文档中更改。如果长度\headsepline
应自动调整,请使用
\AddToLayerPageStyleOptions{scrheadings}{oninit=\KOMAoptions{headsepline=.5pt:\textwidth}}
例子:
\documentclass[headsepline]{scrbook}
\usepackage{scrlayer-scrpage}% sets page style scrheadings
\AddToLayerPageStyleOptions{scrheadings}{oninit=\KOMAoptions{headsepline=.5pt:\textwidth}}
%% if there could be also a plain headsepline:
%\AddToLayerPageStyleOptions{plain.scrheadings}{oninit=\KOMAoptions{headsepline=.5pt:\textwidth}}
\usepackage[
bindingoffset=12mm,
includehead
]{geometry}
\usepackage{blindtext}% dummy text
\begin{document}
\blindtext
\newgeometry{margin=5cm}
\blindtext
\end{document}
答案2
我认为,您必须通过以下方式来设置线的宽度:
\KOMAoption{headsepline}{7pt}
至少这个 MWE 对我有用:
\documentclass[BCOR=12mm, headsepline]{scrbook}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\KOMAoption{headsepline}{0.7pt}
\usepackage{geometry} % all okay of geometry not loaded
\usepackage{blindtext}
\begin{document}
\blindtext
\end{document}