在KOMA类scrbook
的帮助下scrlayer-scrpage
,我想要实现以下标题:
即,沿页面大部分区域画一条粗的浅蓝色水平线,当前章节标题用大写字母写在其上方,章节标题前面有一条深蓝色垂直线。此垂直线应始终位于章节标题的正前方,即,可灵活适应较长或较短的标题。
我的问题是:如何在\rohead*
水平带顶部添加一条垂直线?目前,由于水平带打印在顶部,因此下部被隐藏。请参阅我的 MWE:
\documentclass{scrbook}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\KOMAoptions{headsepline=12pt, headwidth=textwithmarginpar}
\rohead*{\raisebox{-12pt}[0pt][0pt]{\color{blue}\rule{1pt}{24pt}}\hspace{0.8em}\rightmark}
\setkomafont{pagehead}{\scshape}
\setkomafont{headsepline}{\color{blue!20!white}}
\begin{document}
\markright{Some Headline}
\lipsum[1]
\end{document}
答案1
如果你添加
\newcommand*\newlineatlist{}
\noindent\ForEachLayerOfPageStyle{scrheadings}{%
\newlineatlist#1\def\newlineatlist{\\ }}
你将获得图层的顺序:
scrheadings.head.below.line
现在您可以从图层页面样式中删除图层scrheadings
\RemoveLayersFromPageStyle{scrheadings}{scrheadings.head.below.line}
并在开始处添加此层:
\AddLayersAtBeginOfPageStyle{scrheadings}{scrheadings.head.below.line}
图层的新顺序:
例子:
\documentclass{scrbook}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\KOMAoptions{headsepline=12pt, headwidth=textwithmarginpar}
\rohead*{%
\raisebox{\dimexpr-12pt-\dp\strutbox\relax}[0pt][0pt]
{\color{blue}\rule{1pt}{\dimexpr24pt+\dp\strutbox\relax}}%
\hspace{0.8em}%
\rightmark
}
\setkomafont{pagehead}{\scshape}
\setkomafont{headsepline}{\color{blue!20!white}}
\RemoveLayersFromPageStyle{scrheadings}{scrheadings.head.below.line}
\AddLayersAtBeginOfPageStyle{scrheadings}{scrheadings.head.below.line}
\begin{document}
\markright{Some Headline}
\lipsum[1]
%% List the layer ordner of scrheadings:
%\newcommand*\newlineatlist{}
%\noindent\ForEachLayerOfPageStyle{scrheadings}{%
%\newlineatlist#1\def\newlineatlist{\\ }}
\end{document}
结果:
请注意,我已放大水平线以获得所需的结果。