我创建了一个目录,将各部分居中,并隐藏了页码条目。(参见我如何将目录中的条目置于中央并隐藏页码条目?)
更新 1:我在 Apple Silicon 上使用 TexLive 2022 (MacTeX)。pdfLaTeX
,,XeLaTeX
并且LuaLaTeX
都产生相同的结果。
更新 2:似乎\dotfill
无论是否使用都会产生相同(糟糕)的结果microtype
。我已将 MWE 编辑为使用\hfill
。
更新 3:我刚刚在 Overleaf 上尝试了此操作,它允许尝试不同版本的 TexLive。这似乎只是 TexLive 2022 中的问题(即,在 TexLive 2021 及更早版本中,不会发生这种情况)。
但是,当我添加microtype
包时,它会将居中移到左侧。为什么会microtype
这样?有解决方法吗?
\documentclass{memoir}
\usepackage{microtype} % Comment out to restore correct behavior
\renewcommand*{\chaptitlefont}{\normalfont\Huge\bfseries\centering}
\renewcommand*{\cftpartname}{\partname\space}
\renewcommand*{\cftpartaftersnum}{.\space}
\renewcommand*{\cftpartformatpnum}[1]{} %suppress the page number
\renewcommand*{\cftpartfont}{\hfill{}\large\bfseries}
\renewcommand*{\cftpartafterpnum}{\hfill}
\begin{document}
\tableofcontents*
\part{Lorem ipsum}
\chapter{Sed do eiusmod tempor incididunt}
\chapter{Ut labore et dolore magna aliqua}
\part{Consectetur adipiscing elit}
\chapter{Cras ornare arcu dui vivamus}
\chapter{Arcu felis bibendum}
\end{document}
答案1
经过实验,我认为我找到了最好的解决方案。
\documentclass{memoir}
% Apparently, the latest version of microtype interferes
% with the dot leader macro. However, we can disable that macro.
\usepackage{microtype}
% Have something centered for comparison
\renewcommand*{\chaptitlefont}{\normalfont\Huge\bfseries\centering}
% Format the part name and number
\renewcommand*{\cftpartname}{\partname\space}
\renewcommand*{\cftpartaftersnum}{.\space}
% Suppress the page number
\renewcommand*{\cftpartformatpnum}[1]{}
% Disable the dot leader code entirely
\renewcommand*{\cftpartleader}{}
% Dissolve the linebox (otherwise, the part title
% is slightly off-center)
\renewcommand*{\partnumberlinebox}[2]{#2}
% Set the font and add the \hfill commands
\renewcommand*{\cftpartfont}{\large\bfseries\hfill}
\renewcommand*{\cftpartafterpnum}{\large\bfseries\hfill}
\begin{document}
\tableofcontents*
\part{Lorem ipsum}
\chapter{Sed do eiusmod tempor incididunt}
\chapter{Ut labore et dolore magna aliqua}
\part{Consectetur adipiscing elit}
\chapter{Cras ornare arcu dui vivamus}
\chapter{Arcu felis bibendum}
\end{document}