页码与 titletoc 不对齐,且各节的文本格式不同

页码与 titletoc 不对齐,且各节的文本格式不同

使用 titletoc 命令为不同章节级别创建不同的文本格式时\titlecontents,页码会变得不对齐。例如

\documentclass{book}
\usepackage{titletoc}

\contentsmargin{2.55em}
\titlecontents{chapter}[0pt]{\scshape}{\thecontentslabel}{}{\hfill \contentspage[\bfseries \thecontentspage]}
\titlecontents{section}[2cm]{\bfseries}{\thecontentslabel}{}{\hfill \contentspage}

\begin{document}
\tableofcontents{}
\chapter{Lorem}
\section{Ipsum}
\end{document}

结果(红线是我加的,为了演示)页码不对齐

答案1

回答我自己的问题:

问题似乎特别在于使用格式化命令,例如\bfseries命令的 before/above 部分。不知何故,它们最终会影响填充部分的工作方式。我发现的一个解决方案是\normalfont首先使用填充部分,然后重新将任何格式应用于页码(如果需要)。示例:

\documentclass{book}
\usepackage{titletoc}

\contentsmargin{2.55em}
\titlecontents{chapter}[0pt]{\scshape}{\thecontentslabel}{}{\normalfont\hfill \contentspage[\bfseries \thecontentspage]}
\titlecontents{section}[2cm]{\bfseries}{\thecontentslabel}{}{\normalfont\hfill \contentspage[\bfseries \thecontentspage]}

\begin{document}
\tableofcontents{}
\chapter{Lorem}
\section{Ipsum}
\end{document}

这现在导致在此处输入图片描述 然而,应该注意的是,这\contentsmargin似乎也在这里发挥了一定作用,因为我需要将它添加到第一个示例中,以便至少获得明显明显的错位。我非常欢迎专家们提出想法和解释,为什么会这样。

答案2

\contentsmargin是为了正确的目录的边距。此代码生成 1cm 的右边距:

\documentclass{book}
\usepackage[showframe]{geometry}%
 \usepackage{titletoc}

\contentsmargin{1cm}
\titlecontents{chapter}[3em]{\scshape}{\contentslabel[\thecontentslabel]{2.8em}}{}{\hfill\bfseries\thecontentspage}
\titlecontents{section}[2cm]{\bfseries}{\contentslabel[\thecontentslabel]{\dimexpr2cm-2.6em}}{}{\hfill\thecontentspage}

\begin{document}

\tableofcontents

\chapter{Lorem}

\section{Ipsum}

\end{document} 

在此处输入图片描述

更改为\contentsmargin{0cm}

在此处输入图片描述

答案3

我刚刚遇到了同样的问题。似乎只有在更改字体时才会发生这种情况\titlecontents 以 em 为单位指定\contentsmargin。由于 1em 的大小取决于字体大小,titletoc 将页码放在大小不正确的框中。最简单的解决方案是指定\contentsmargin其他单位,例如

\contentsmargin{30pt}

相关内容