按照我的问题顺序(这里),这是第三部分。我想像下图这样将“内容”的标题居中,并在其上方添加一小段文字,但我不知道该怎么做。谢谢。这是最简代码:
\documentclass{book}
\usepackage[a5paper]{geometry}
\usepackage{lipsum}
\linespread{1.5}
\begin{document}
\tableofcontents
\addtocontents{toc}{ \textbf{Title} \hfill \textbf{Page}\par}
\chapter{Spring}\lipsum[1-30]
\section{Sp1}\lipsum[1-30]
\section{Sp2}\lipsum[1-30]
\section{Sp3}\lipsum[1-30]
\section{Sp4}\lipsum[1-30]
\section{Sp5}\lipsum[1-30]
\section{Sp6}\lipsum[1-30]
\section{Sp7}\lipsum[1-30]
\section{Sp8}\lipsum[1-30]
\section{Sp9}\lipsum[1-30]
\chapter{Summer}
\section{Su1}\lipsum[1-30]
\section{Su2}\lipsum[1-30]
\section{Su3}\lipsum[1-30]
\section{Su4}\lipsum[1-30]
\section{Su5}\lipsum[1-30]
\section{Su6}\lipsum[1-30]
\section{Su7}\lipsum[1-30]
\section{Su8}\lipsum[1-30]
\section{Su9}\lipsum[1-30]
\chapter{Fall}
\section{F1}\lipsum[1-30]
\section{F2}\lipsum[1-30]
\section{F3}\lipsum[1-30]
\section{F4}\lipsum[1-30]
\section{F5}\lipsum[1-30]
\section{F6}\lipsum[1-30]
\section{F7}\lipsum[1-30]
\section{F8}\lipsum[1-30]
\section{F9}\lipsum[1-30]
\chapter{Winter}
\section{W1}\lipsum[1-30]
\section{W2}\lipsum[1-30]
\section{W3}\lipsum[1-30]
\section{W4}\lipsum[1-30]
\section{W5}\lipsum[1-30]
\section{W6}\lipsum[1-30]
\section{W7}\lipsum[1-30]
\section{W8}\lipsum[1-30]
\section{W9}\lipsum[1-30]
\end{document}
答案1
正如评论中所述,KOMA-Script 类提供\raggedchapter
更改章节标题的对齐方式,并将\setchapterpreamble
序言文本放在章节标题的上方和下方的功能。因此,您可以更改目录之前(和之后)的对齐方式并添加序言。作为一项额外功能,它提供了\BeforeTOCHead
。这可用于在文档序言内进行所有相关更改,而无需更改其他章节的标题:
\documentclass[emulatestandardclasses,a5paper]{scrbook}
\usepackage{xcolor}
\usepackage{blindtext}
\BeforeTOCHead[toc]{%
\let\raggedchapter\centering
\setchapterpreamble[o]{\centering\color{red} a short text}
}
\begin{document}
\tableofcontents
\blinddocument
\end{document}
对于标准类,还\BeforeTOC
可以使用 KOMA-Script 的功能。为此,您可以加载包tocbasic
。但是序言功能仍然不可用,因此您需要一个丑陋的 hack 来在标题顶部添加文本,例如,对 进行局部重新定义\contentsname
。但在这种情况下,您还需要更改目录的标记。
\documentclass[a5paper]{book}
\usepackage{xcolor}
\usepackage{tocbasic}
\usepackage{blindtext}
\BeforeTOCHead[toc]{%
\let\raggedchapter\centering
\markboth{\MakeUppercase{\contentsname}}{\MakeUppercase{\contentsname}}%
\renewcommand*{\contentsname}{% Ugly hack to add preamble and to center
\centering
\textcolor{red}{\normalsize a short text}\par
Contents
}%
}
\AfterTOCHead[toc]{%
\markboth{CONTENTS}{CONTENTS}%
}
\begin{document}
\listoftoc[\contentsname]{toc}
\blinddocument
\end{document}