目录中章节后面有点,但正文中没有?

目录中章节后面有点,但正文中没有?

如何在目录中添加一个点,但在正文中thechapter没有点?thechapter

以下是 MWE:

\documentclass{book}

\usepackage{fontspec} % enagles loading of OpenType fonts
\usepackage{polyglossia} % support for languages

% fonts:
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text} % without this XeLaTeX won't turn "--" into dashes
\setmainfont{DejaVu Sans}
\setsansfont{DejaVu Sans}
\setmonofont{DejaVu Sans Mono}

% toc:
\usepackage{titletoc}
\titlecontents{chapter}
[1.5em]{\addvspace{\baselineskip}}
{\contentslabel{1.5em}\hspace*{0em}}
{}
{\titlerule*[1pc]{.}\contentspage}

\begin{document}

\tableofcontents

\chapter{foo}
\chapter{bar}
\chapter{baz}

\end{document}

我尝试thechapter在目录前用点进行定义,然后在目录后用无点重新定义它,但是不起作用:

\renewcommand\thechapter{\Roman{chapter}.}
\tableofcontents
\renewcommand\thechapter{\Roman{chapter}}

编辑

感谢egreg,解决方案是:

\usepackage[dotinlabels]{titletoc}

我还必须:

\renewcommand{\theequation}{\thechapter.\arabic{equation}}
\renewcommand\thefigure{\thechapter.\arabic{figure}}
\renewcommand\theproblem{\thechapter.\arabic{problem}.}

以便在图形、问题等的名称中带有点。

答案1

titlesec在/文档第 6.2 节末尾,titletoc您可以找到解决方案:

\usepackage[dotinlabels]{titletoc}

代码如下:

\documentclass{book}

\usepackage{fontspec} % enagles loading of OpenType fonts
\usepackage{polyglossia} % support for languages

% fonts:
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text} % without this XeLaTeX won't turn "--" into dashes
\setmainfont{DejaVu Sans}
\setsansfont{DejaVu Sans}
\setmonofont{DejaVu Sans Mono}

% toc:
\usepackage[dotinlabels]{titletoc}
\titlecontents{chapter}
  [1.5em]
  {\addvspace{\baselineskip}}
  {\contentslabel{1.5em}\hspace*{0em}}
  {}
  {\titlerule*[1pc]{.}\contentspage}

\begin{document}

\tableofcontents

\chapter{foo}
\chapter{bar}
\chapter{baz}

\end{document}

如果你只想在章节中使用句号,而不是在节中使用句号,你可以采取不同的做法

\usepackage{titletoc}
\titlecontents{chapter}
  [1.5em]
  {\addvspace{\baselineskip}}
  {\contentslabel[\thecontentslabel.\hfill]{1.5em}\hspace*{0em}}
  {}
  {\titlerule*[1pc]{.}\contentspage}

在此处输入图片描述

答案2

以防有人喜欢使用托克洛夫特包而不是titletoc包本身:为了实现 OP 的目标,只需加载tocloft包并发出命令即可

\renewcommand{\cftchapaftersnum}{.} 

在序言中。另外,如果您想要在章节名称和相关页码之间添加一组“点引线”,您可以通过发出以下命令让 LaTeX 执行此操作

\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}}

以下 MWE 说明了的效果\renewcommand{\cftchapaftersnum}{.}

\documentclass{book}
\usepackage{tocloft}
\renewcommand{\cftchapaftersnum}{.}
\begin{document}
\tableofcontents
\chapter{ABC}
\chapter{DEF}
\end{document}

在此处输入图片描述

相关内容