我想自定义目录,让标题居中,斜体而在 中\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
由于您希望对同一件事物采用两种不同的布局 - \chapter
s - 您必须在特定时间将内容插入到目录中,以便动态进行格式化。
下面我已修补\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]
每个条目前面都插入了。由于toc
f
m
memoir
用括号将其目录条目括起来,\eqmakebox
将其作为完整参数,对l
每个条目进行左对齐,同时像以前一样将其居中。
eqparbox
将\eqmakebox[<tag>][<pos>]{<stuff>}
所有<stuff>
相同的<tag>
使用对齐<pos>
。