我想自定义文档目录中章节的列表scrbook
。给出以下示例:
\documentclass{scrbook}
\begin{document}
\tableofcontents
\chapter{Alpha}
\chapter{Beta}
\chapter{Gamma}
\end{document}
我的目录目前如下所示:
如何从以下两个方面定制目录中打印的文本:
- 在编号中添加前缀/后缀,例如写“第 1 章”而不是“1”
microtype
使用's增加章节标题的字母间距textls
答案1
以下是基于示例的另一个建议本文作者:Markus Kohm,网址:www.komascript.de
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage{microtype}
\newcommand*{\SavedOriginaladdchaptertocentry}{}
\let\SavedOriginaladdchaptertocentry\addchaptertocentry
\renewcommand*{\addchaptertocentry}[2]{%
\ifstr{#1}{}{% entry without number
\SavedOriginaladdchaptertocentry{#1}{#2}%
}{% entry with number
\SavedOriginaladdchaptertocentry{}{%
\string\expandafter\string\MakeUppercase\string\chaptername
~#1\string\quad\textls[500]{#2}}%
}%
}%
\begin{document}
\tableofcontents
\addchap{Preface}
\chapter{Alpha}
\chapter{Beta}
\chapter{Gamma}
\addchap{Appendix}
\end{document}
我增加了字母间距来显示效果。
如果需要增加整个章节的字母间距,可以使用
\newcommand*{\SavedOriginaladdchaptertocentry}{}
\let\SavedOriginaladdchaptertocentry\addchaptertocentry
\renewcommand*{\addchaptertocentry}[2]{%
\ifstr{#1}{}{% entry without number
\SavedOriginaladdchaptertocentry{#1}{#2}%
}{% entry with number
\SavedOriginaladdchaptertocentry{}{%
\string\expandafter\string\MakeUppercase\string\chaptername
~#1\string\quad{}#2}%
}%
}%
\addtokomafont{chapterentry}{\textls[200]}
请注意,\textls[200]
必须是字体元素的最后一个命令,chapterentry
因为它需要一个参数
答案2
该命令的\textls
工作方式类似于。因此,您需要类似于的\textbf
单个命令。\lsstyle
\bfseries
可以通过字体元素添加前缀chapterentry
:
\documentclass{scrbook}
\usepackage{microtype}
\addtokomafont{chapterentry}{\lsstyle Chapter~}
\begin{document}
\tableofcontents
\chapter{Alpha}
\chapter{Beta}
\chapter{Gamma}
\end{document}