自定义回忆录中的目录、居中对齐和斜体

自定义回忆录中的目录、居中对齐和斜体

我想自定义目录,让标题居中,斜体而在 中\frontmatter,如下图所示:

在此处输入图片描述

我的 MWE:

\documentclass[14pt,twoside,a5paper,extrafontsizes, draft, showtrims]{memoir}
\usepackage[brazilian]{babel} 
\usepackage[utf8]{inputenc}
\chapterstyle{thatcher}

\begin{document}
        \frontmatter
        \tableofcontents*
        \chapter{Apresentação}
        \chapter{Dedicatória}
        \chapter{Agradecimentos}
        \chapter{Introdução}
        \mainmatter
        \chapter{Preparação}
        \chapter{Conhecimento}
        \chapter{Influências}
\end{document}

答案1

由于您希望对同一件事物采用两种不同的布局 - \chapters - 您必须在特定时间将内容插入到目录中,以便动态进行格式化。

下面我已修补\frontmatter\mainmatter执行此操作。每个命令都会将特定内容插入到目录中。通过向其附加字体更改()以及将其居中(通过)\frontmatter来更新。将内容居中的原因是因为典型的领导者\cftchapterfont\itshape\hfill\hfill关注章节条目已经添加了橡胶填充。因此,添加一个使其居中。必须进行小幅调整才能使其完美居中,因为条目左侧没有页码。我们只需添加一个空白页条目即可实现此目的。

在此处输入图片描述

\documentclass{memoir}

\usepackage[utf8]{inputenc}

\chapterstyle{thatcher}
\makeatletter
\let\oldcftchapterfont\cftchapterfont% Save ToC-related chapter entry font
\g@addto@macro\frontmatter{%
  \addtocontents{toc}{% Update chapter entry font
    \protect\g@addto@macro\protect\cftchapterfont{\protect\cftchapterformatpnum{}\hfill\itshape}%
  }%
}

\g@addto@macro\mainmatter{%
  \addtocontents{toc}{% Restore chapter entry font
    \let\protect\cftchapterfont\protect\oldcftchapterfont%
  }%
}
\makeatother

\begin{document}

\frontmatter
\tableofcontents*
\chapter{Apresentação}
\chapter{Dedicatória}
\chapter{Agradecimentos}
\chapter{Introdução}

\mainmatter
\chapter{Preparação}
\chapter{Conhecimento}
\chapter{Influências}

\end{document}

上述解决方案可以稍加修改,以获得居中左对齐:

在此处输入图片描述

\documentclass{memoir}

\usepackage[utf8]{inputenc}
\usepackage{eqparbox}

\chapterstyle{thatcher}
\makeatletter
\let\oldcftchapterfont\cftchapterfont% Save ToC-related chapter entry font
\g@addto@macro\frontmatter{%
  \addtocontents{toc}{% Update chapter entry font
    \protect\g@addto@macro\protect\cftchapterfont{\protect\cftchapterformatpnum{}\hfill\itshape
    \protect\eqmakebox[tocfm][l]}%
  }%
}

\g@addto@macro\mainmatter{%
  \addtocontents{toc}{% Restore chapter entry font
    \let\protect\cftchapterfont\protect\oldcftchapterfont%
  }%
}
\makeatother

\begin{document}

\frontmatter
\tableofcontents*
\chapter{Apresentação}
\chapter{Dedicatória}
\chapter{Agradecimentos}
\chapter{Introdução}

\mainmatter
\chapter{Preparação}
\chapter{Conhecimento}
\chapter{Influências}

\end{document}

我在构成前言部分的\eqmakebox[tocfm][l]每个条目前面都插入了。由于tocfmmemoir用括号将其目录条目括起来,\eqmakebox将其作为完整参数,对l每个条目进行左对齐,同时像以前一样将其居中。

eqparbox\eqmakebox[<tag>][<pos>]{<stuff>}所有<stuff>相同的<tag>使用对齐<pos>

相关内容