编辑
我已经重新表述了这个问题,并根据这里一位回答者的建议,我将其作为新问题发布,这里。
最初的问题
请考虑下面的目录:
请注意,中间的目录条目缺少虚线。同时,目录中的第一个和最后一个条目与中间条目略有不同,但这些微小的差异足以导致虚线正常生成。
此 ToC 由以下 MWE 生成:
\documentclass[12pt]{report}
\usepackage[paper=letterpaper,left=1.25in,right=1in]{geometry}
\usepackage{titletoc}
\contentsmargin[140bp]{10pt}
\titlecontents{section}[1in]{}{}{}{\titlerule*[3.3pt]{.}\contentspage}
% the same issue occurs if, instead of the \titlecontents command
% above, we use \dottedcontents{section}[1in]{}{2em}{3.3pt} .
% This is not surprising given that \dottedcontents is defined
% using \titlecontents
\begin{document}
\tableofcontents
\section{Verifying a noninterpretable magenta soundness\ }
\section{Verifying a noninterpretable magenta soundness}
\section{Verifying a noninterpretable magenta source}
\end{document}
\titlecontents
如果我们调整和/或中的某些长度参数\contentsmargin
,虚线将重新出现在中间条目中(但它可能会消失在另外两个条目中!)。
但所有这些黑客行为都非常烦人。首先,在一篇足够长的文档中,你很可能会调整长度参数来修复一个目录条目中的虚线,结果却发现现在另一个条目中的虚线已经消失了。是的,你也可以保留长度参数,而是通过重新措辞或在末尾添加额外的空格来调整章节标题。但这也很烦人,因为它仍然需要人工干预。
有什么方法可以让虚线“表现”得正确吗?解决方案应该与兼容titletoc
。
注 1:在我的实际文档中,我也在使用titlesec
。因此,我不应该切换到toctofl
,因为不建议一起使用toctofl
和。titlesec
注 2:切换到memoir
类是不切实际的,因为我的实际文档有大量其他格式和自定义,如果要进行切换,我将不得不重新访问它们。
编辑
如果我解释一下我真正想要实现的目标,可能会有所帮助。具体如下:
即:
部分名称的右边距比点的右边距大得多(即,它远离左边距)。
但是,圆点不是从章节名称的右边距开始的。相反,它们从每个章节标题结束的地方开始,通常位于标题右边距的左侧。圆点以它们自己的右边距结束,这个右边距要小得多(即它更靠右,几乎一直到页码)。
这种效果应该是自动生成的,无需调整长度参数
titletoc
或章节标题本身,无论(在合理范围内)标题的右边距是多少,无论(在合理范围内)点的右边距是多少,也无论(在合理范围内)章节标题是什么。
(例如,为了生成此示例,我必须调整可选参数\contentsmargin
;我最终使用的参数是
\contentsmargin[160bp]{15pt}
\dottedcontents{section}[1in]{}{2em}{3.3pt}
最初我使用的175bp
是 而不是160bp
,这导致第一个条目丢失了虚线并且其页码显示在最左边 - 与我原始示例的中间条目存在同样的问题。)
答案1
\contentmargin
需要一个强制参数。它用于为目录中的页码分配空间。
通常它用于允许使用粗体页码,页码超过 100。此示例的合理选择是\contentsmargin{4ex}
% !TeX TS-program = pdflatex
\documentclass[12pt]{report}
\usepackage[paper=letterpaper,left=1.25in,right=1in,showframe]{geometry} % changed to show margins
\usepackage{titletoc}
\contentsmargin{4ex}% space for page numbers <<<<<<<<<<<
\titlecontents{section}[1in]{}{}{}{\,\titlerule*[3.3pt]{.}{\bfseries\contentspage}} % changed: bold page numbers <<<<
\begin{document}
\tableofcontents
\newpage
\section{Verifying a noninterpretable magenta soundness\ }
\section{Verifying a noninterpretable magenta soundness}
\newpage\setcounter{page}{100} % added <<<<<<<<<<<<
\section{Verifying a noninterpretable magenta source}
%\section{Verifying a noninterpretable magenta source xxx xxx xxx xxx xxx xxx}
\end{document}
有一个可选参数\contentsmargin
:
\contentsmargin[<correction>]{<space>}
(小的) 校正长度用于处理特殊情况,即有一行文本比最后一个点长,通过将其添加到<space>
。
例如添加
\section{Verifying a noninterpretable magenta source xxx xxx xxx xxx xxx xxx}
使用时 \contentsmargin[10pt]{4ex}