带摘要的目录中章节标题前的页码

带摘要的目录中章节标题前的页码

我在一些小说里看到过,在目录中,页码位于章节标题之前,例如:

3    Down the Rabbit Hole
7    The Pool of Tears
15   The Caucus Race and a Long Tale

我怎样才能获得相同的使用memoir类?

答案1

您可以通过多种方式实现所需的结果。下面有这样一种可能性;我假设使用的分段单元是\chapter

\documentclass{memoir}

% redefinition for the ToC title
\renewcommand\printtoctitle[1]{\HUGE\sffamily#1}

% redefinitions for chapter entries
\renewcommand\chapternumberline[1]{}
\renewcommand\cftchapterfont{\sffamily}
\renewcommand\cftchapterpagefont{\huge\sffamily}

\makeatletter
\newcommand\l@mychap[3]{%
  \vskip2ex%
  \par\noindent
  \parbox{2.5em}{%
    \hfill{\cftchapterpagefont#2}%
  }\hspace*{3em}%
  \parbox{\dimexpr\textwidth-5.5em-15pt\relax}{%
    \cftchapterfont#1%
  }\par%
}

\renewcommand*\l@chapter[2]{%
  \l@mychap{#1}{#2}{\chaptername}%
}
\makeatother

\begin{document}

\tableofcontents*

\chapter{Down the Rabbit Hole}
\chapter{The Pool of Tears}
\chapter{The Caucus Race and a Long Tale}
\setcounter{page}{14}% just for the example

\end{document}

在此处输入图片描述

上述代码将使页码右对齐;要使它们左对齐,必须使用类似以下代码定义 \l@mychap

\newcommand\l@mychap[3]{%
  \vskip2ex%
  \par\noindent
  \parbox{4.5em}{%
    {\cftchapterpagefont#2}\hfill%
  }%
  \parbox{\dimexpr\textwidth-4.5em-15pt\relax}{%
    \cftchapterfont#1%
  }\par%
}

使用此重新定义(在上面的完整示例代码中)代替初始定义,可以得到

在此处输入图片描述

相关内容