目录中章节文本以外的点

目录中章节文本以外的点

我有下一个代码用于在目录中定义章节标题后的点:

\newcommand\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%8em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode 
      \advance\leftskip\@tempdima
      \hskip -\leftskip
{#1}\unskip\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par      
      \penalty\@highpenalty
      \endgroup
  \fi}

结果是: 在此处输入图片描述

我怎样才能去掉章节标题后面的点?谢谢。

更新

我发现,如果我在上面的代码中将一些静态文本放在 {#1} 之前 - 点会尊重静态文本的大小并在其之后开始。我不确定 latex (overleaf) 此时如何计算 {#1}。它似乎首先渲染点,然后渲染给定参数 #1 的内容。您知道在 #1 的内容准备好后,我如何延迟渲染上述代码中的点吗?或者是否可以“强制”渲染内容?如果您能给我提供一些关于 Latex 如何进行租用的背景信息(在哪个阶段或根据文件中的定义),我将非常感激。

以下是章节在目录中出现方式的另一个摘录:


\newcommand\@chapapp{Chapter}
\newcommand\chapter{%
  \clearpage
  \doublespacing
  \thispagestyle{myotherheadings}
  \global\@topnum\z@
  %\@afterindentfalse
  \@afterindenttrue
  \secdef\@chapter\@schapter}
\def\@chapter[#1]#2{%
  \refstepcounter{chapter}%
  \typeout{\@chapapp\space\thechapter. #1}%
  % 1999.6 Period after chapter number removed in TOC.  HJG
  \addcontentsline{toc}{chapter}{\protect\numberline{%
        {\@chapapp\space\thechapter:\space#1}}}%
  \chaptermark{#1}%
  \@makechapterhead{#2}%
  \@afterheading
}

\chapter 被重新定义并包含 \addcontentsline - 最后一个参数 {\protect\numberline{{@chapapp\space\thechapter:\space#1}}} 定义 ToC 行的内容 - 即第一个摘录中的 {#1}。@makechapterhead 构成章节标题本身(代码省略)

答案1

为什么不使用处理 ToC 外观等诸多方面的tocloft包( )?> texdoc tocloft

使用正常\caption命令:

\documentclass{report}
\usepackage{tocloft}
\renewcommand{\cftchapdotsep}{\cftdotsep}
\begin{document}
\tableofcontents
\chapter{One}
\end{document}

上述操作将在目录中的章节条目后产生点。

答案2

看来我找到了解决方案。正如我在更新中提到的那样 - 问题在于如何渲染 #1 - 它是在渲染点之后渲染的 - 这是由于上面更新的代码中的 \addcontentsline 内的 \numberline 造成的。

删除数字线后,点会根据需要进行渲染,但我必须修复 ToC 中某些条目的 vspacing

在此处输入图片描述

相关内容