我有我的 Latex 文档(文档类为article
),它由几个\section
s 和\subsection
s 组成。
该\tableofcontents
命令根据我的需要生成目录(在本例中是:超引用、带有页码、带有点等),但对于章节,我想添加“章节副标题”。
举个例子:我当前的目录如下
1 Layout
1.1 Main Window
1.2 Footer
2 Navigation
2.1 Basic structure
2.2 Overview page
现在我想给每个部分添加一个副标题,我希望它能像这样工作\section{Layout}{this section describes the layout}
,但显然不起作用。
我想要的是:
1 Layout - this section describes the layout
1.1 Main Window
1.2 Footer
2 Navigation - here you will get information on foobar
2.1 Basic structure
2.2 Overview page
答案1
如果“副标题”属性与标题的属性相同,并且希望信息紧接着标题出现,则可以使用分段单位的可选参数:
\documentclass{article}
\begin{document}
\tableofcontents
\section[Layout -- This section describes the layout]{Layout}
\subsection{Main Window}
\subsection{Footer}
\section[Navigation -- Here you will get information on foobar]{Navigation}
\subsection{Basic structure}
\subsection{Overview page}
\end{document}
作为托黑茨在评论中提到这也会将此副标题添加到标题标记中。
另一种有时使用的格式是将此“副标题”写在章节单元标题的正下方。以下代码显示了实现此目的的一种方法;其思想是定义一个新命令\sectionsubtitle
,将信息写入目录,模仿章节条目的排版方式,但隐藏章节和页码以及前导点;此外,使用这种方法,副标题不会添加到头标中:
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\let\@nodottedtocline\@dottedtocline
\patchcmd{\@nodottedtocline}{\hbox{.}}{\hbox{}}{}{}
\patchcmd{\@nodottedtocline}{\normalcolor #5}{\normalcolor}{}{}
\newcommand*\l@sectionsubtitle{\@nodottedtocline{1}{0em}{1.5em}}
\makeatother
\def\sectionsubtitle#1{%
\addcontentsline{toc}{sectionsubtitle}{\protect\numberline{}#1}%
}
\begin{document}
\tableofcontents
\section{Layout}
\sectionsubtitle{This section describes the layout}
\subsection{Main Window}
\subsection{Footer}
\section{Navigation}
\sectionsubtitle{Here you will get information on foobar}
\subsection{Basic structure}
\subsection{Overview page}
\end{document}