scrreprt - 在 \subparagraph 下添加级别

scrreprt - 在 \subparagraph 下添加级别

我必须用(德国)法律写论文,我们通常使用嵌套的标题系统。我使用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 功能来定义新级别的结构化命令。

niclasKomaExtraLevel

\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

(这也会影响部分等默认级别)

这是一种笨重的宏,因为你必须为每个级别添加一些类似的内容(仅添加更高级别),我想我会将其删除,以便我可以看到我在哪里犯了枚举错误:)

相关内容