自定义目录:多行标题每行缩进相同

自定义目录:多行标题每行缩进相同

在之前的一个问题中我问过自定义我的目录。目前,我决定为每篇文章简单地填写目录,如下所示:

\addtocontents{toc}{\textit{\Author}\\}
\addtocontents{toc}{\hspace{1cm} \Title \dotfill \pageref{firstpage}–\pageref{lastpage}\\}

但我仍然不知道如何缩进包含标题的行(如果标题延伸超过一行,则所有行都应缩进相同的量):

=== Author's Name ===

    === Title: 1st Line ===
    === Title: 2nd Line ===

有简单的解决办法吗?

答案1

下面是受一些内部memoir宏启发的示例,可以用于任何类:

\documentclass[a4paper]{memoir}
\newcommand\Title{This is a very long and complicated title that spans
several lines going on and on}
\newcommand\AuthorInToc[1]{\addtocontents{toc}{\protect\formatauthor{#1}}}
\newcommand\ArticleInToc[2]{\addtocontents{toc}{%
   \protect\formatarticle{#1}{#2}}}
\newcommand\formatauthor[1]{\noindent \textit{#1}\par}
\newcommand\formatarticle[2]{%
  \begingroup%
  \nopagebreak%
  \noindent%
  \setlength\leftskip{1cm}%
  \setlength\rightskip{4em}%
  \setlength\parfillskip{-4em}%
  \textit{Title:}~{#1}\dotfill\hbox to 4em{\hfil #2}\par%
  \endgroup%
}
\begin{document}

\tableofcontents*

\chapter{test}
\AuthorInToc{An Author}
\ArticleInToc{\Title}{1--5}
\end{document}

这样做的目的是要记住,每个条目实际上TOC都是一个段落,所以要这样对待它。

相关内容