![目录中章节后面有点,但正文中没有?](https://linux22.com/image/270171/%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%AB%A0%E8%8A%82%E5%90%8E%E9%9D%A2%E6%9C%89%E7%82%B9%EF%BC%8C%E4%BD%86%E6%AD%A3%E6%96%87%E4%B8%AD%E6%B2%A1%E6%9C%89%EF%BC%9F.png)
如何在目录中添加一个点,但在正文中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}