![如何使用 titletoc 实现目录 (ToC) 的格式化,而不遇到不可预测的点消失的问题?](https://linux22.com/image/458680/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20titletoc%20%E5%AE%9E%E7%8E%B0%E7%9B%AE%E5%BD%95%20(ToC)%20%E7%9A%84%E6%A0%BC%E5%BC%8F%E5%8C%96%EF%BC%8C%E8%80%8C%E4%B8%8D%E9%81%87%E5%88%B0%E4%B8%8D%E5%8F%AF%E9%A2%84%E6%B5%8B%E7%9A%84%E7%82%B9%E6%B6%88%E5%A4%B1%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%9F.png)
希望这个问题能更清楚地说明上一个问题。
我用它titletoc
来格式化我的目录。
从一开始有两个注意事项:
1:在我的实际文档中,我也在使用titlesec
。因此,我不应该切换到toctofl
,因为不建议一起使用toctofl
和。titlesec
2:另一个建议可能是切换到课堂memoir
,它对自定义章节标题和目录的格式提供了广泛的支持。但是,切换到课堂memoir
并不实际,因为我的实际文档有大量其他格式和自定义,如果我要进行切换,我将不得不重新查看。(此外,据我所知,我将要描述的问题也可能发生在课堂上memoir
。)
我尝试实现的 ToC 格式如下:
其重要特征包括:
部分名称的右边距比点的右边距大得多(即,它远离左边距)。
但是,圆点不是从章节名称的右边距开始的。相反,它们从每个章节标题结束的地方开始,通常位于标题右边距的左侧。圆点以它们自己的右边距结束,这个右边距要小得多(即它更靠右,几乎一直到页码)。
用于生成上述内容的代码如下:
\documentclass[12pt]{report}
\usepackage[paper=letterpaper,left=1.25in,right=1in]{geometry}
\usepackage{titletoc}
\contentsmargin[160bp]{15pt} % if we change 160bp to 175bp, we get a problem.
\dottedcontents{section}[1in]{}{2em}{3.3pt}
\begin{document}
\tableofcontents
\section{As any dedicated reader can clearly see, the Ideal of practical reason is a representation of, as far as I know, the things in themselves; as I have shown elsewhere, the phenomena should only be used as a canon for our understanding.}
% \section{It must be supposed that ours faculties haberdashery}
\section{The paralogisms of practical reason are what first give rise to the architectonic of practical reason.}
\section{As is proven in the ontological manuals, it is obvious that the transcendental unity of apperception proves the validity of the Antinomies; what we have alone been able to show is that, our understanding depends on the Categories.}
\end{document}
然而,我经常会遇到以下问题:一个或多个目录条目最终看起来像这里的第一个目录条目:
如您所见,在第一个条目中,虚线消失了,页码显示在最左边。
第二个有问题的输出是使用与第一个输出相同的代码生成的,只是可选参数的值\contentsmargin
略有不同,如代码中的注释所示。
通常情况下,情况是这样的:我们为 的各个参数选择一些合理的值titletoc
。我们生成文档。我们注意到目录中的某些条目遇到了我刚才描述的问题。我们调整一个或多个参数的值,titletoc
直到问题消失(但愿如此!)。
调整可选参数\contentsmargin
并不是解决问题的唯一方法。我们可以调整其他参数之一,或者稍微重写有问题的标题(通常在末尾添加一个额外的空格就足够了)。
但所有这些都非常烦人,尤其是在包含许多章节、节和小节的文档中。首先,完全无法预测问题何时会出现,因此必须不断(非常仔细地)检查目录输出。其次,经常会发生这样的情况:一个参数调整可以解决一个条目中的问题,但会导致另一个条目中出现同类问题。
问题
我怎么能够可靠地生成具有我描述的格式的目录,而不会出现上述问题,因此无需不断留意可能需要调整长度参数titletoc
或章节标题本身?无论(在合理范围内)标题的右边距是多少,无论(在合理范围内)点的右边距是多少,也无论(在合理范围内)章节标题是什么,该解决方案都应该自动起作用。
答案1
这个包裹应该能确保你不会在领导那里遇到断线的情况。
\documentclass[12pt]{report}
\usepackage[paper=letterpaper,left=1.25in,right=1in]{geometry}
\usepackage{titletoc}
\contentsmargin[175bp]{15pt} % if we change 160bp to 175bp, we get a problem.
\dottedcontents{section}[1in]{}{2em}{3.3pt}
\makeatletter
\def\ttl@row@i[#1]#2{%
\ifvmode\expandafter\titleline\fi
{\sbox\z@{#2}%
\nolinebreak
\hspace{-#1}%
\hskip\wd\z@
\mbox{}\nolinebreak\ttl@leaders\hb@xt@#1{\hss\box\z@}%
\hfill\kern\z@}}
\makeatother
\begin{document}
%\tracingall
\tableofcontents
\section{As any dedicated reader can clearly see, the Ideal of practical reason is a representation of, as far as I know, the things in themselves; as I have shown elsewhere, the phenomena should only be used as a canon for our understanding.}
% \section{It must be supposed that ours faculties haberdashery}
\section{The paralogisms of practical reason are what first give rise to the architectonic of practical reason.}
\section{As is proven in the ontological manuals, it is obvious that the transcendental unity of apperception proves the validity of the Antinomies; what we have alone been able to show is that, our understanding depends on the Categories.}
\end{document}
你也可以做
{\sloppy\tableofcontents}