我在一些小说里看到过,在目录中,页码位于章节标题之前,例如:
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%
}
使用此重新定义(在上面的完整示例代码中)代替初始定义,可以得到