如何在 KOMA-Script 中模拟 titlesec 命令?

如何在 KOMA-Script 中模拟 titlesec 命令?

我们可以创建一个titlesec词典KOMA-script吗?或者换句话说,如何titlesec用本机命令模拟命令KOMA

重点是定义\titleseccommand[<a>]{<b>}{<c>}被模仿\KOMAcommand1{<b>}\KOMAcommand2{<c>}{<a>}对于每个titlesec命令。


背景

titlesec是一个很棒的软件包,可让您轻松定制您的标题。 KOMA-script课程也很棒。

然而,存在不兼容性KOMA类和之间titlesec。即使在大多数情况下冲突并不严重,您仍然会收到以下警告:

Class scrartcl Warning: Usage of package `titlesec' together
(scrartcl)              with a KOMA-Script class is not recommended.
(scrartcl)              I'd suggest to use the package only
(scrartcl)              if you really need it, because it breaks several
(scrartcl)              KOMA-Script features, i.e., option `headings' and
(scrartcl)              the extended optional argument of the section
(scrartcl)              commands .

事实上,KOMA班级有自己的命令来美化你的头衔。因此,你会发现这里有几个问题(123titlesec等)要求使用宏将个性化的标题“翻译”为本KOMA-script机命令。

由于只有针对具体案例的答案,因此很难概括并适应您自己的问题。


材料

titlesec以下是命令和选项的总结。

  • \titlelabel{<A:label-format>}

定义要打印为的标签 (~number) 。例如,在节号 ( ) 后(sub)sections添加一个破折号 ( ):---\thesection\titlelabel{\thesection---\quad}

  • \titleformat*{<B:sectionning-command>}{<C:format>}

(精简版\titleformat)更改格式\itshape\bfseries...)的切片命令\title\section...)。例如,将段落标题加粗:\titleformat*{\paragraph}{\bfseries}

  • \titleformat{D:command}[E:shape]{F:format}{G:label}{H:sep}{I:before-code}{J:after-code}
    重新定义标题的“内部”格式(即其外观——字体形状、标签等)。以下是选项的参数:

    • D:命令:分段命令(\part\section等)
    • E:形状: hang, block, display, runin, leftmargin, fightmargin,dropwrap. 请参阅定义titlesec 文档,第 3 页。
    • F:格式:标签和标题的文本布局(例如\bfseries\itshape
    • G:标签:定义打印为标签的内容(~number)。例如,在章节编号后添加一个破折号{\thesection---\quad}
    • 氢键分离:标签与标题之间的水平间距。长度必须为 ( 2em, 1cm, .1\linewidth...)(对于display、 和frame形状定义不同。)
    • 我:代码之前:在标题正文之前执行的代码。(例如,对于与标签不同的文本形状)
    • J:后码:标题正文之后执行的代码。
  • \titlespacing{K:command}{L:left}{M:before-sep}{N:after-sep}[O:right-sep]
    重新定义标题的“外部”格式(即它与文本其余部分的关系——缩进、间距等)。带星号的版本 ( \titlespacing*) 会取消段落后文本的缩进。以下是参数选项

    • K:命令:分段命令(\part\section等)
    • L:左:增加左边距
    • M:之前-sep:标题前的垂直空间(例如2\parskip
    • N:分离后:标题后的垂直(或水平,取决于所用形状)空间(例如5pc plus 2pt minus 3pt)。
    • O:右分离:在使用形状的情况下hang,增加右边距。blockdiplay

答案1

这实际上不是问题的答案。我认为不可能“翻译”titlesec命令一般方式到 KOMA-Script 命令。它们使用不同的方法。因此这里仅概述一些可能的方法。

相关的 KOMA-Script 命令和选项是

  • \RedeclareSectionCommand\RedeclareSectionCommands\DeclareSectionCommandETC。
  • \partformat\chapterformat\sectionformatETC。
  • \raggedchapter\raggedsection
  • \addtokomafont\setkomatfont
  • chapterprefixappendixprefix
  • headings=<value>类似、、、、等等。<value>​​bignormalsmallonelineappendixtwolineappendixonelinechaptertwolinechapter
  • \sectionlinesformat\sectioncatchphraseformat\chapterlinesformat\chapterlineswithprefixformat

查看KOMA-Script 文档了解更多信息。


\titlelabel(摘自包裹titlesec

您可以重新定义 KOMA-Script 命令\partformat\chapterformat\sectionformat。例如:

\renewcommand\sectionformat{\thesection\autodot\enskip}

\titleformat*(摘自包裹titlesec

使用 KOMA-Script 命令\addtokomafont\setkomafont\RedeclareSectionCommand\RedeclareSectionCommands更改节标题的字体设置。请注意,字体元素dispostion用于其自己的字体元素之前的所有节级别。disposition只能使用\addtokomafont或更改的设置\setkomafont。示例:

\setkomafont{disposition}{\rmfamily\bfseries}
\addtokomafont{chapterprefix}{\LARGE}
\RedeclareSectionCommand[font=\mdseries\large]{section}

\titlespacing(摘自包裹titlesec

使用选项indent(不适用于partchapter样式)beforeskip以及afterskip命令\RedeclareSectionCommand和的\RedeclareSectionCommands选项。示例:

\RedeclareSectionCommand[beforeskip=-1sp]{chapter}
\RedeclareSectionCommands[indent=2em]{section,subsection}

请注意,这些命令还有更多选项,如、、、、font等,具体取决于选项,可以是、或。levelstylecounterwithinprefixfontinnerskipstylesectionchapterpart

如果您想要更改右边距(和/或章节和部分的左边距) ,您必须重新定义\sectionlinesformat或。\chapterlinesformat\chapterlineswithprefixformat


\titleformat(摘自包裹titlesec

您必须使用上面列表中提到的命令组合。此组合取决于所需形状的示例。所以我认为这不能以简短的一般方式回答。这里仅列举一些可能性。

  • 形状像挂起:章节、节、小节和小小节标题的默认布局。要更改段落和小段落标题,请使用hang为选项设置正值。示例:。然后您可以重新定义或。afterskip\RedeclareSectionCommand\RedeclareSectionCommand[afterskip=1sp]{paragraph}\sectionlinesformat\chapterlinesformat

  • 形状像 runin:段落和子段落的默认布局。要更改其他标题(带有style=section),请使用runin为选项设置负值。示例:。然后您可以重新定义。如果您想将章节标题的形状更改为 ,您必须将其设置为。afterskip\RedeclareSectionCommand\RedeclareSectionCommand[afterskip=-1em]{subsubsection}\sectioncatchphraseformatruninstylesection

  • 形状类似显示:标题的默认布局为style=part。要使用章节前缀行,请设置选项chapterprefixline或。请注意,您可以通过选项或等headings=twolinechapter分别切换附录章节的前缀行。然后您可以重新定义。如果您想对其他部分级别使用双行标题,一种可能性是重新定义。appendixprefixlineheadings=twolinechapter\chapterlineswithprefixformat\sectionlinesformat

请注意,style可以使用 更改部分级别的选项\RedeclareSectionCommand。例如:\RedeclareSectionCommand[style=section,indent=0pt]{chapter}

\sectionlinesformat通过重新定义、\sectioncatchphraseformat\chapterlinesformat/或\chapterlineswithprefixformat,形状块、框架、左边距和右边距也应该成为可能。

相关内容