我们可以创建一个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
班级有自己的命令来美化你的头衔。因此,你会发现这里有几个问题(1,2,3titlesec
等)要求使用宏将个性化的标题“翻译”为本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
,drop
或wrap
. 请参阅定义titlesec 文档,第 3 页。 - F:格式:标签和标题的文本布局(例如
\bfseries
)\itshape
- G:标签:定义打印为标签的内容(~number)。例如,在章节编号后添加一个破折号
{\thesection---\quad}
- 氢键分离:标签与标题之间的水平间距。长度必须为 (
2em
,1cm
,.1\linewidth
...)(对于display
、 和frame
形状定义不同。) - 我:代码之前:在标题正文之前执行的代码。(例如,对于与标签不同的文本形状)
- J:后码:标题正文之后执行的代码。
- D:命令:分段命令(
\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
,增加右边距。block
diplay
- K:命令:分段命令(
答案1
这实际上不是问题的答案。我认为不可能“翻译”titlesec
命令一般方式到 KOMA-Script 命令。它们使用不同的方法。因此这里仅概述一些可能的方法。
相关的 KOMA-Script 命令和选项是
\RedeclareSectionCommand
,\RedeclareSectionCommands
,\DeclareSectionCommand
ETC。\partformat
,\chapterformat
,\sectionformat
ETC。\raggedchapter
和\raggedsection
\addtokomafont
和\setkomatfont
chapterprefix
和appendixprefix
headings=<value>
类似、、、、等等。<value>
big
normal
small
onelineappendix
twolineappendix
onelinechapter
twolinechapter
\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
(不适用于part
和chapter
样式)beforeskip
以及afterskip
命令\RedeclareSectionCommand
和的\RedeclareSectionCommands
选项。示例:
\RedeclareSectionCommand[beforeskip=-1sp]{chapter}
\RedeclareSectionCommands[indent=2em]{section,subsection}
请注意,这些命令还有更多选项,如、、、、font
等,具体取决于选项,可以是、或。level
style
counterwithin
prefixfont
innerskip
style
section
chapter
part
如果您想要更改右边距(和/或章节和部分的左边距) ,您必须重新定义\sectionlinesformat
或。\chapterlinesformat
\chapterlineswithprefixformat
\titleformat
(摘自包裹titlesec
)
您必须使用上面列表中提到的命令组合。此组合取决于所需形状的示例。所以我认为这不能以简短的一般方式回答。这里仅列举一些可能性。
形状像挂起:章节、节、小节和小小节标题的默认布局。要更改段落和小段落标题,请使用
hang
为选项设置正值。示例:。然后您可以重新定义或。afterskip
\RedeclareSectionCommand
\RedeclareSectionCommand[afterskip=1sp]{paragraph}
\sectionlinesformat
\chapterlinesformat
形状像 runin:段落和子段落的默认布局。要更改其他标题(带有
style=section
),请使用runin
为选项设置负值。示例:。然后您可以重新定义。如果您想将章节标题的形状更改为 ,您必须将其设置为。afterskip
\RedeclareSectionCommand
\RedeclareSectionCommand[afterskip=-1em]{subsubsection}
\sectioncatchphraseformat
runin
style
section
形状类似显示:标题的默认布局为
style=part
。要使用章节前缀行,请设置选项chapterprefixline
或。请注意,您可以通过选项或等headings=twolinechapter
分别切换附录章节的前缀行。然后您可以重新定义。如果您想对其他部分级别使用双行标题,一种可能性是重新定义。appendixprefixline
headings=twolinechapter
\chapterlineswithprefixformat
\sectionlinesformat
请注意,style
可以使用 更改部分级别的选项\RedeclareSectionCommand
。例如:\RedeclareSectionCommand[style=section,indent=0pt]{chapter}
\sectionlinesformat
通过重新定义、\sectioncatchphraseformat
和\chapterlinesformat
/或\chapterlineswithprefixformat
,形状块、框架、左边距和右边距也应该成为可能。