Koma-script,改变章节外观(如何添加圆圈和水平标尺?)

Koma-script,改变章节外观(如何添加圆圈和水平标尺?)

我希望章节名称的格式如下所示:

在此处输入图片描述

在圆圈和章节名称之间有一个水平标尺,用于编号章节和非编号章节(我使用该chapterprefix=on选项,因此我不想在章节编号之前丢失“章节”一词)

问题在于:

  1. 放置水平标尺。

  2. 标题与“CHAPTER {number}”位于同一行。

提前致谢

答案1

这是一个使用的解决方案标题安全包;这将按预期工作,适用于编号和未编号的章节;考虑到评论,我用包\CIRCLE中的圆圈的初始定义替换了它wasysym

\documentclass[chapterprefix=true]{scrbook}
\usepackage{titlesec}
\usepackage{wasysym}

\titleformat{\chapter}[block]
  {\normalfont\huge\sffamily\bfseries}
  {\CIRCLE\vskip6pt\titlerule[1pt]\vskip9pt\chaptertitlename~\thechapter.}
  {0.5em}{}
\titleformat{name=\chapter,numberless}[block]
  {\normalfont\huge\sffamily\bfseries}
  {\CIRCLE\vskip6pt\titlerule[1pt]\vskip9pt}
  {0pc}{}

\begin{document}

\tableofcontents
\chapter{Test Numbered Chapter}
\chapter*{Test Unnumbered Chapter}

\end{document}

输出的一些图像显示了编号和未编号的章节:

在此处输入图片描述

在此处输入图片描述

答案2

以下是针对较新版本的 KOMA-Script 的建议:

您不希望章节名称和编号有额外的前缀行。因此,不要使用选项chapterprefix=on。您可以重新定义\chapterformat以插入前缀\chaptername(或\appendixname)。然后,您可以重新定义\chapterlinesformat以插入点和规则:

\documentclass[
  numbers=endperiod,% dot at the end of numbers
]{scrbook}
%\providecommand*\Ifstr{\ifstr}% needed up to and including KOMA-Script version 3.27, see https://komascript.de/faq_deprecatedif
\usepackage{wasysym}

\renewcommand\chapterformat{\chapapp~\thechapter\autodot\enskip}% chapter name as prefix
\makeatletter
\renewcommand\chapterlinesformat[3]{%
\Ifstr{#1}{chapter}
  {\CIRCLE\\*\rule{\textwidth}{1pt}\vskip9pt}{}% insert dot and rule before chapter titles
\@hangfrom{#2}{#3}%
}
\makeatother

\begin{document}
\tableofcontents
\chapter{Test Numbered Chapter}
\chapter*{Test Unnumbered Chapter}
\end{document}

结果:

在此处输入图片描述

在此处输入图片描述

答案3

我有点不明白你说的“圆形符号,20 pt”是什么意思,你是指半径还是直径?现在……我写了一段代码,我认为它有点危险(也许titlesec提供了一种更符合用户空间的方式)。这采用了 KOMA 的一个基本定义,并对其进行了修改以满足您的要求。我也遇到了 chaptermark 的问题,所以我使用了这个定义。这当然没有经过充分测试,但我相信它在任何情况下都应该有效。

\documentclass[chapterprefix=true]{scrbook}
\usepackage{tikz}

\makeatletter
 \renewcommand*{\@@makechapterhead}[1]{\chapterheadstartvskip
  {%
    \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}%
    \normalfont\sectfont\nobreak\size@chapter{}%
    \if@chapterprefix
      \let\@tempa\raggedsection
    \else
      \let\@tempa\@hangfrom
    \fi
    \@tempa{\ifnum \c@secnumdepth >\m@ne%
        \if@mainmatter
          \if@chapterprefix
            \expandafter\size@chapterprefix
          \else
            \expandafter\size@chapter
          \fi
          {\tikz\fill circle (20pt) ; \rule[.75\baselineskip]{5cm}  {1pt}}%insted of chaptermark 
          \if@chapterprefix
            \size@chapterprefix{}\endgraf\nobreak\vskip.5\baselineskip%               \chapapp\enskip \thechapter.\enskip
          \fi
        \fi
      \fi
    }%
    {\raggedsection \interlinepenalty \@M \size@chapter{#1}\par}}%
  \nobreak\chapterheadendvskip
}
\makeatother

\begin{document}

  \tableofcontents
  \chapter{text}
    Test text 
  \section{text}
    Test text

\end{document}

在此处输入图片描述

相关内容