考虑以下代码:
\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
新条目类型的名称,用于在更改之前存储beforeskip
值chapter
。使用其他名称需要额外的声明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}