使用 BCOR 和几何形状时头管长度错误

使用 BCOR 和几何形状时头管长度错误

考虑以下最小示例:

\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计算的。typeareageometry

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 选项(如BCORDIV和命令)\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}

相关内容