使用 KOMA Script 中 pgfornament 的装饰作为标题行

使用 KOMA Script 中 pgfornament 的装饰作为标题行

我想使用来自图案包中的内容与headseplineKOMA-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 的经验还不够多,不知道该如何开始。

为了澄清我想要实现的目标(看起来并不是很难看):我有三个选择来尝试它们是否有效(虽然每个文档只有一个选项。所以我不会在单个文档中交换它们)

  1. 使用像 pgfornament #12 这样的装饰物在中心打断水平标题分隔线pgfornament 12 作为中心装饰,从而使标题分隔线更加花哨

  2. 也许可以让标题分隔线的两个外端都“完成”,例如以装饰物 #21pfgornament 21 作为左线结束作为线的左端,以装饰物 #23pgfornament 23 为右行结束作为线的右端。

  3. 或者按照左/右页的方式处理,并让线的外端(在右页上,右侧,在左页上,左侧)并且只在外侧用装饰物结束线,就像这个列表中的第二个选项一样

编辑:我当前归功于 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}

相关内容