我想使用来自图案包中的内容与headsepline
KOMA-Script 中的一样scrbook
。我的文档的一个最小工作示例如下:
\documentclass[a4paper,ngerman,headsepline, BCOR=5mm, numbers=noenddot, sort&compress]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\setkomafont{sectioning}{\bfseries} % Serifen und Überschriften
\setkomafont{descriptionlabel}{\bfseries}
\begin{document}
some lorem here
\end{document}
那么有没有办法“替换”或更新 headsepline 选项来绘制装饰物(如 pgfornaments 中的装饰物 #88)作为标题使用?
我在这里搜索了装饰选项,但没有找到任何具体提到将其用作标题分隔线的选项,而且 pgfornaments 的文档也没有真正帮助我。这里提到了在 KOMA Script 中设计自己的标题:如何在 KOMA-Scriptclasses 中更改 \headsepline 颜色但说实话,我对 LaTeX 的经验还不够多,不知道该如何开始。
为了澄清我想要实现的目标(看起来并不是很难看):我有三个选择来尝试它们是否有效(虽然每个文档只有一个选项。所以我不会在单个文档中交换它们)
使用像 pgfornament #12 这样的装饰物在中心打断水平标题分隔线,从而使标题分隔线更加花哨
也许可以让标题分隔线的两个外端都“完成”,例如以装饰物 #21作为线的左端,以装饰物 #23作为线的右端。
或者按照左/右页的方式处理,并让线的外端(在右页上,右侧,在左页上,左侧)并且只在外侧用装饰物结束线,就像这个列表中的第二个选项一样
编辑:我当前归功于 Keks Dose 的代码如下(尽管它通常不考虑由 headsepline 引入的空间)并且可能很丑陋:
\documentclass[a4paper,ngerman]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{scrlayer-scrpage}
\usepackage{pgfornament, blindtext}
\usepackage{showframe}
\setkomafont{sectioning}{\bfseries} % Serifen und Überschriften
\setkomafont{descriptionlabel}{\bfseries}
\chead{%
\raisebox{-3mm}{
\rule{0.4\linewidth}{0.2mm}%
\pgfornament[width=2mm]{13}
\rule{0.4\linewidth}{0.2mm}}
}
\automark[chapter]{chapter}
\automark*[section]{}
\pagestyle{scrheadings}
\begin{document}
\blinddocument
\chapter{more blindtext with a very very very long name}
\blindtext[12]
\end{document}
我的代码还没有将装饰物旋转 90°,也没有正确设置规则的宽度,但我正在努力解决。
当前状态:
答案1
也许我的解决方案非常简单,但我将从这里开始:
\documentclass[a4paper,ngerman, headheight=3ex]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{scrlayer-scrpage}
\usepackage{pgfornament, blindtext}
\setkomafont{sectioning}{\bfseries} % Serifen und Überschriften
\setkomafont{descriptionlabel}{\bfseries}
\chead{\headmark\\%
\pgfornament[width=\textwidth]{88}}
\automark[chapter]{chapter}
\ohead{}
\begin{document}
\blinddocument
\end{document}
答案2
我从未使用过包的内部功能scrlayer
,但我很确定肯定有更好的方法。例如使用包的更高级别接口scrlayer-scrpage
。
这是初稿,看上去相当丑陋:
%\RequirePackage{filecontents}
\begin{filecontents}{\jobname.sty}
\ProvidesPackage{\jobname}[2014/09/05 v 0.1 pgfornaments
and scrlayer-scrpage]
\RequirePackage{pgfornament}
\RequirePackage{scrlayer-scrpage}
\RequirePackage{adjustbox}
\RequirePackage{etoolbox}
\AtEndPreamble{\KOMAoptions{headsepline=false,headinclude=true}\recalctypearea}
\newcommand{\JB@ornament}{%
\begin{adjustbox}{max width=\textwidth}%
\pgfornament{88}%
\end{adjustbox}%
}
\DeclareLayer[%
background,%
hoffset=\sls@leftmargin{head},%
voffset=\sls@topmargin+\headheight,%
width=\sls@headwidth,%
height=0pt,%
align=tl,%
contents={%
{\normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{%
\JB@ornament
}}}
}%
]{scrheadings.head.below.line}%
\AddLayersAtBeginOfPageStyle{scrheadings}{%
scrheadings.head.below.line
}
\pagestyle{scrheadings}
\endinput
\end{filecontents}
\documentclass{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{showframe}
\usepackage{\jobname}
\setkomafont{sectioning}{\bfseries}
\setkomafont{descriptionlabel}{\bfseries}
\KOMAoptions{headinclude=false}
\begin{document}
\Blinddocument lorem here
\chapter{more blindtext}
\blindtext[12]
\end{document}