我必须用(德国)法律写论文,我们通常使用嵌套的标题系统。我使用scrreprt
并具有以下级别:
- (部分)
- 章节
- 部分
- 小节
- 小节
- 段落
- 分段
但我至少需要 3 个级别。它们不必在目录中,但如果有就更好了。
我进行了大量搜索并找到了一个可行的代码片段,但我无法重现它并创建更多级别。
% Fügt Gliederungsebene \subsubparagraph hinzu.
\titleclass{\subsubparagraph}{straight}[\subparagraph]
\makeatletter
\newcounter{subsubsubsection}[subsubsection] \newcounter{subsubparagraph}[subparagraph]
\newcommand*\l@subsubparagraph{\bprot@dottedtocline{6}{14em}{6em}}
\makeatother
我的第二个问题与此有些相关。有没有办法重命名某些级别?试图记住 subsubsection 等后面的内容总是有点烦人。也许是\chapter
,,,,或其他什么。\section
\sub1section
\sub2section
\sub3section
非常感谢您的帮助:)
答案1
引用手动的来自titlesec
包裹:
借助类别,您可以在章节和节之间插入新的子章节级别,或者创建您自己的方案。
(见 3.9 小节titlesec.pdf
)。
在附录 9.2 中,它准确地显示了已存在的部分等是如何定义的;不要将已存在的部分复制到您的文件中,而是将其用作定义新部分的灵感(缩进量、样式等)。我的建议是查看所有附录和第 3.9 小节。
答案2
由于问题是关于 KOMA 级的,我们可以使用 KOMA 功能来定义新级别的结构化命令。
\documentclass{scrartcl}
\makeatletter
\DeclareSectionCommand[%
tocindent=9.0em,%
]{subparagraph}
\DeclareSectionCommand[%
style=section,%
level=6,%
indent=2.0\scr@parindent,%
beforeskip=3.25ex \@plus1ex \@minus.2ex,%
afterskip=-1em,%
tocstyle=subsection,%
tocindent=10.0em,%
tocnumwidth=4.1em%
,font=\normalcolor\normalsize\bfseries\sffamily,%
]{Aparagraph}
\DeclareSectionCommand[%
style=section,%
level=7,%
indent=3.0\scr@parindent,%
beforeskip=3.25ex \@plus1ex \@minus.2ex,%
afterskip=-1em,%
tocstyle=subsection,%
tocindent=11.0em,%
tocnumwidth=4.1em%
,font=\normalcolor\normalsize\bfseries\sffamily,%
]{Bparagraph}
\DeclareSectionCommand[%
style=section,%
level=8,%
indent=4.0\scr@parindent,%
beforeskip=3.25ex \@plus1ex \@minus.2ex,%
afterskip=-1em,%
tocstyle=subsection,%
tocindent=12.0em,%
tocnumwidth=4.1em%
,font=\normalcolor\normalsize\bfseries\sffamily,%
]{Cparagraph}
\makeatother
\setcounter{tocdepth}{7}
\begin{document}
\tableofcontents
\section{Wombat}
\subsection{Capybara}
\subsubsection{Mara}
\paragraph{Zebra}
\subparagraph{Elephant}
\Aparagraph{Giraffe}
\Bparagraph{Quail}
\Cparagraph{Duck}
\end{document}
当然,如果你不使用低级命令,你实际上并不需要它们。我使用它们,因为我直接从类文件中复制了这些位\makeatletter
。\makeitother
答案3
非常感谢大家。我修复了这个问题:
\titleclass{\subAparagraph}{straight}[\subparagraph]
\makeatletter
\newcounter{subAparagraph}[subparagraph]
\newcommand*\l@subAparagraph{\bprot@dottedtocline{6}{12em}{2.5em}}
\makeatother
\titleclass{\subBparagraph}{straight}[\subAparagraph]
\makeatletter
\newcounter{subBparagraph}[subAparagraph]
\newcommand*\l@subBparagraph{\bprot@dottedtocline{7}{14em}{2.5em}}
\makeatother
\titleclass{\subCparagraph}{straight}[\subBparagraph]
\makeatletter
\newcounter{subCparagraph}[subBparagraph]
\newcommand*\l@subCparagraph{\bprot@dottedtocline{8}{16em}{2.5em}}
\makeatother
我使用 alnumsec 来制作符号:
\usepackage{alnumsec}
\alnumsectionlevels{0}{chapter,section,subsection,subsubsection,paragraph,subparagraph,subAparagraph,subBparagraph,subCparagraph}
\otherseparators{4}
\surroundarabic[(][)]{}{.}
\surroundgreek[][)]{}{.}
\alnumsecstyle{LRaldagbr}
并格式化:
\titlespacing{\subAparagraph}{0em}{0em}{0em}
\titlespacing{\subBparagraph}{0em}{0em}{0em}
\titlespacing{\subCparagraph}{0em}{0em}{0em}
\titleformat{\subAparagraph}[hang]{\normalfont\normalsize\bfseries}{\thesubAparagraph\quad}{0pt}{}
\titleformat{\subBparagraph}[hang]{\normalfont\normalsize\bfseries}{\thesubBparagraph\quad}{0pt}{}
\titleformat{\subCparagraph}[hang]{\normalfont\normalsize\bfseries}{\thesubCparagraph\quad}{0pt}{}
我还注意到(在写了一篇具有几乎相同设置的论文并且没有注意到这一点之后),如果没有调用精确的前一个级别,计数器就不会重置。
我通过添加每个“更高”级别来重置来解决这个问题(\usepackage{remreset}
)
\makeatletter
\@addtoreset{subCparagraph}{part}
\@addtoreset{subCparagraph}{chapter}
\@addtoreset{subCparagraph}{section}
\@addtoreset{subCparagraph}{subsection}
\@addtoreset{subCparagraph}{subsubsection}
\@addtoreset{subCparagraph}{paragraph}
\@addtoreset{subCparagraph}{subparagraph}
\@addtoreset{subCparagraph}{subAparagraph}
\makeatother
(这也会影响部分等默认级别)
这是一种笨重的宏,因为你必须为每个级别添加一些类似的内容(仅添加更高级别),我想我会将其删除,以便我可以看到我在哪里犯了枚举错误:)