![带摘要的目录中章节标题前的页码](https://linux22.com/image/249696/%E5%B8%A6%E6%91%98%E8%A6%81%E7%9A%84%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98%E5%89%8D%E7%9A%84%E9%A1%B5%E7%A0%81.png)
我在一些小说里看到过,在目录中,页码位于章节标题之前,例如:
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%
}
使用此重新定义(在上面的完整示例代码中)代替初始定义,可以得到