我正在使用该Memoir
课程,并尝试格式化我正在处理的文档的目录。目前,目录按以下方式排列条目:
<<chapter name>> <<chapter number>> <<chapter title>>
例如
Chapter 1 Introduction
Appendix A Specifications
我希望章节条目的格式如下:
<<chapter name>> <<chapter number>>
<<chapter title>>
例如
Chapter 1
Introduction
Appendix A
Specifications
我看过了回忆录手册但尚未找到任何有用的东西。
编辑
添加了 MWE 和图像:
\documentclass[openany]{memoir}
\usepackage{memsty}
\renewcommand*{\cftchaptername}{\chaptername\space}
\renewcommand*{\cftappendixname}{Appendix\space}
\begin{document}
\tableofcontents
\chapter{Foo}
\section{Bar}
\chapter{Baz}
\appendix
\chapter{Misc}
\end{document}
答案1
手册中没有提到这一点,因为这可能不太常见,而且使用简单的配置也不太容易做到。这里有一个建议
\makeatletter
\renewcommand*{\l@chapapp}[3]{%
\ifnum \c@tocdepth >\m@ne
\cftchapterbreak
\vskip \cftbeforechapterskip
{%\leftskip \cftchapterindent\relax
\memRTLleftskip \cftchapterindent\relax
%%% \rightskip \@tocrmarg
\memRTLrightskip \@tocrmarg
%%% \parfillskip -\rightskip
\parfillskip -\memRTLrightskip
\parindent \cftchapterindent\relax
\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\let\@cftbsnum \cftchapterpresnum
\let\@cftasnum \cftchapteraftersnum
\let\@cftasnumb \cftchapteraftersnumb
\def\@chapapp@head{#3}%
\settowidth{\@tempdima}{\cftchapterfont\@chapapp@head}%
\addtolength{\@tempdima}{\cftchapternumwidth}%
%% this line have to be out commented
%\advance\memRTLleftskip \@tempdima \null\nobreak\hskip -\memRTLleftskip
{\cftchapterfont {#1}}\nobreak
\cftchapterfillnum{#2}}
\fi}
\makeatother
\renewcommand\cftchapteraftersnumb{\par}
我们基本上需要\l@chapapp
(在目录中排版章节和附录)停止增加左边距
添加:
您可以添加\nopagebreak
,但在我看来,最好的解决方案是使长度\cftbeforechapterskip
更加灵活。默认情况下,\cftbeforechapterskip
它不是那么灵活。所以我通常使用类似于
\setlength{\cftbeforechapterskip}{1.0em plus 0.2em minus 0.3em}
也就是说,它可以拉伸一些,也可以收缩一些。这样可以得到更好的结果。
顺便说一句:你可能还想使用
\setlength\parskip{0pt}
为了消除文档中段落之间的任何延伸。