KOMA 脚本中各部分和索引之间的空格(在目录中)

KOMA 脚本中各部分和索引之间的空格(在目录中)

考虑以下代码:

\documentclass{scrbook}

\begin{document}

\frontmatter
\tableofcontents

\mainmatter

\chapter{Introduction}

\part{A}
\chapter{First}
\chapter{Second}
\chapter{Third}

\part{B}
\chapter{First}
\chapter{Second}
\chapter{Third}

\appendix

\chapter{Appendix}

\end{document}

正如所料,简介和第一部分之间有很多空白,因为简介不属于第一部分。

然而,尽管附录不属于第二部分,但第二部分与附录之间的空间很小。

是否可以将第二部分和附录之间的空间设置得与引言和第一部分之间的空间一样大?

我知道我可以手动完成目录中结论和附录之间的间距,但我需要猜出正确的间距。

在此处输入图片描述

答案1

如果只有一个章节“附录”,则可以将part的值beforeskip用作附录中的章节条目:

\documentclass{scrbook}

\AddToHook{cmd/appendix/after}{%
  \addtocontents{toc}{\protect\DeclareTOCStyleEntry[beforeskip:=part]{chapter}{chapter}}
}

\begin{document}

\frontmatter
\tableofcontents

\mainmatter

\chapter{Introduction}

\part{A}
\chapter{First}
\chapter{Second}
\chapter{Third}

\part{B}
\chapter{First}
\chapter{Second}
\chapter{Third}

\appendix

\chapter{Appendix}

\end{document}

一个附录章节

使用一个技巧,如果您有多个附录章节,您也可以这样做:

\documentclass{scrbook}

\AddToHook{cmd/appendix/after}{%
  \addtocontents{toc}{\ManipulateChapterBeforeskipOnce}
}
\DeclareRobustCommand{\ManipulateChapterBeforeskipOnce}{%
  \DeclareTOCStyleEntry[beforeskip:=chapter]{chapter}{subchapter}%
  \DeclareTOCStyleEntry[beforeskip:=part]{chapter}{chapter}%
  \AddToHook{cmd/l@chapter/after}[restorechapter]{%
    \DeclareTOCStyleEntry[beforeskip:=subchapter]{chapter}{chapter}%
    \RemoveFromHook{cmd/l@chapter/after}[restorechapter]%
  }%
}

\begin{document}

\frontmatter
\tableofcontents

\mainmatter

\chapter{Introduction}

\part{A}
\chapter{First}
\chapter{Second}
\chapter{Third}

\part{B}
\chapter{First}
\chapter{Second}
\chapter{Third}

\appendix

\chapter{First appendix}

\chapter{Second appendix}

\end{document}

在此处输入图片描述

注意:技巧的一部分是使用subchapter新条目类型的名称,用于在更改之前存储beforeskipchapter。使用其他名称需要额外的声明level,例如indent等。

但是,我不会这样做,因为在正文部分使用语义、内容描述性的名称,而在附录中使用语法名称(如第一个示例所示),这在某种程度上是不一致的。如果您已经使用了语义名称,我会使用类似以下内容:

\documentclass{scrbook}

\AddToHook{cmd/appendix/before}{%
  \addpart{\appendixname}%
}

\begin{document}

\frontmatter
\tableofcontents

\mainmatter

\chapter{Introduction}

\part{A}
\chapter{First}
\chapter{Second}
\chapter{Third}

\part{B}
\chapter{First}
\chapter{Second}
\chapter{Third}

\appendix

\chapter{One note about \dots}

\chapter{Onother addendum}

\end{document}

或者

\documentclass{scrbook}

\AddToHook{cmd/appendix/after}{%
  \cleardoublepage
  \addparttocentry{}{\appendixname}%
}

\begin{document}

\frontmatter
\tableofcontents

\mainmatter

\chapter{Introduction}

\part{A}
\chapter{First}
\chapter{Second}
\chapter{Third}

\part{B}
\chapter{First}
\chapter{Second}
\chapter{Third}

\appendix

\chapter{One note about \dots}

\chapter{Onother addendum}

\end{document}

附有附录部分和几章

我认为两者都比第一个建议更加一致且风格更好。

答案2

不要使用附录章节,而要使用附录部分。我添加了盲文,因为我(在其他示例中)得到了章节列表的奇怪结果。但是:

\documentclass{scrbook}

\usepackage{blindtext}

\begin{document}

\frontmatter
\tableofcontents

\mainmatter

\chapter{Introduction}
\blindtext{}
\part{A}
\chapter{First}
\blindtext{}
\chapter{Second}
\blindtext{}
\chapter{Third}
\blindtext{}

\part{B}
\chapter{First}
\blindtext{}
\chapter{Second}
\blindtext{}
\chapter{Third}
\blindtext{}

\appendix

\part{\appendixname}
% \chapter{Appendix}

\blindtext{}

\blindtext{}
\end{document}

目录图片

相关内容