使用 emdash 和其他格式要求来设置 ToC 点引号的样式

使用 emdash 和其他格式要求来设置 ToC 点引号的样式

我正在使用memoir类并想要创建 ToC:

  1. 在目录项和页码之间使用破折号(而不是默认的点前导符)。
  2. 此样式应适用于部分和章节名称。
  3. 仅零件名称采用粗体字体。
  4. 在每个部分组之间添加垂直空间。

像这个:

我想要创建的目录样式

\documentclass[12pt,twoside]{memoir}
\usepackage[paperwidth=140mm,paperheight=210mm,margin=20mm]{geometry}
\usepackage{libertine}
\chapterstyle{dash}
\usepackage{lipsum}

\begin{document}

\tableofcontents
\newpage

% Part 1
\part{Title of part 1 goes here}
\chapter[Title of chapter 1]{Title of chapter 1} \chaptermark{Title of chapter 1} % Chapter 1
\lipsum[1-2]
\newpage
\chapter[Just another chapter]{Just another chapter} \chaptermark{Just another chapter} % Chapter 2
\lipsum[1-2]
\newpage
\chapter[Yes, keep up writing]{Yes, keep up writing} \chaptermark{Yes, keep up writing} % Chapter 3
\lipsum[1-2]
\newpage

% Part 2
\part{Just another part}
\chapter[Another part, another chapter]{Another part, another chapter} \chaptermark{Another part, another chapter} % Chapter 4
\lipsum[1-2]
\newpage
\chapter[Another chapter goes here]{Another chapter goes here} \chaptermark{Another chapter goes here} % Chapter 5
\lipsum[1-2]
\newpage

% ...and so on...

\end{document}

答案1

以下内容直接取自memoir 基本用户手册;具体部分9.2.2 条目排版在类 ToC 方法上:

在此处输入图片描述

\documentclass[12pt,twoside]{memoir}
\usepackage[paperwidth=140mm,paperheight=210mm,margin=20mm]{geometry}
\usepackage{libertine}
\chapterstyle{dash}
\usepackage{lipsum}

% Redefinitions of \part-entry in ToC
\renewcommand{\cftpartname}{Part~}
\renewcommand{\cftpartaftersnum}{:}
\renewcommand{\cftpartleader}{---}
\renewcommand{\cftpartformatpnum}[1]{%
  \cftpartformatpnumhook{#1}%
  {\cftpartpagefont #1}}
\renewcommand{\cftpartafterpnum}{\hfill\null}

% Redefinition of \chapter-entry in ToC
\renewcommand{\cftchaptername}{Chapter~}
\renewcommand{\cftchapteraftersnum}{:}
\renewcommand{\cftchapterleader}{---}
\let\oldcftchapterfont\cftchapterfont
\renewcommand{\cftchapterfont}{\oldcftchapterfont\mdseries}
\renewcommand{\cftchapterformatpnum}[1]{%
  \cftchapterformatpnumhook{#1}%
  {\cftchapterpagefont #1}}
\let\oldcftchapterpagefont\cftchapterpagefont
\renewcommand{\cftchapterpagefont}{\oldcftchapterpagefont\mdseries}
\renewcommand{\cftchapterafterpnum}{\hfill\null}

\begin{document}

\tableofcontents
\newpage

% Part 1
\part{Title of part 1 goes here}
\chapter{Title of chapter 1}% Chapter 1
\lipsum[1-2]

\chapter{Just another chapter}% Chapter 2
\lipsum[1-2]

\chapter{Yes, keep up writing}% Chapter 3
\lipsum[1-2]

% Part 2
\part{Just another part}
\chapter{Another part, another chapter}% Chapter 4
\lipsum[1-2]

\chapter{Another chapter goes here}% Chapter 5
\lipsum[1-2]

% ...and so on...

\end{document}

特定于您的要求(X其中表示partchapter):

  1. 设置;\cftpartleader---

  2. 设置;\cftchapterleader---

  3. 通过将其另存为(通过)并将其附加到其中\bfseries来删除。这也适用于页码字体。\cftchapterfont\let\oldcftchapterfont\mdseries\cftchapterpagefont

  4. 默认是\part在目录中的每个之前插入一个垂直跳过。

添加了一些额外的步骤:

  1. 在每个条目前面加上其名称(PartChapter);

  2. 将分段单元号( )后面的部分改为\cftXaftersnum冒号:

  3. 更新每个条目以 结尾\hfill\null,从而避免未满\hbox,因为 ToC 中的每个条目都设置在固定宽度的框中。

相关内容