我用了
{\sffamily\tableofcontents}
将目录中的字体从 Times New Roman 更改为无衬线字体。然后我使用
\usepackage{tocloft}
\renewcommand\cftchapafterpnum{\vskip6pt}
\renewcommand\cftsecafterpnum{\vskip6pt}
\renewcommand\cftsubsecafterpnum{\vskip6pt}
在序言中增加目录条目之间的间距。但我发现目录中的所有条目(章节名称除外)都变回了 Times New Roman。我该如何解决这个问题。下面给出了一个 MWE:
\documentclass[fleqn, a4paper, 11pt, oneside]{book}
\pagestyle{plain}
\renewcommand{\rmdefault}{ptm}
\usepackage{tocloft}
\renewcommand\cftchapafterpnum{\vskip6pt}
\renewcommand\cftsecafterpnum{\vskip6pt}
\renewcommand\cftsubsecafterpnum{\vskip6pt}
\usepackage{newtxtext}
\begin{document}
{\sffamily\tableofcontents}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\subsection{xyxyzxyzxyzxyz}
\end{document}
答案1
使用时tocloft
,您必须为每个部分组件单独设置字体。没有总体字体设置,因为每个组件都放在一个框或组中,并具有自己的字体规范。它允许最终的特殊性,即使它可能不适合您的一般需求:
\documentclass{book}
\usepackage{mathptmx}
\usepackage{tocloft}
\renewcommand\cftchapafterpnum{\vskip6pt}
\renewcommand\cftsecafterpnum{\vskip6pt}
\renewcommand\cftsubsecafterpnum{\vskip6pt}
% Adjust sectional unit title fonts in ToC
\renewcommand{\cftchapfont}{\sffamily}
\renewcommand{\cftsecfont}{\sffamily}
\renewcommand{\cftsubsecfont}{\sffamily}
\usepackage{newtxtext}
\begin{document}
\tableofcontents
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\subsection{xyxyzxyzxyzxyz}
\end{document}
请注意,您还必须设置页码字体。这需要
\renewcommand{\cftchappagefont}{\sffamily}
\renewcommand{\cftsecpagefont}{\sffamily}
\renewcommand{\cftsubsecpagefont}{\sffamily}
答案2
另一个基于 的解决方案titletoc
,来自titlesec
捆绑;
\documentclass[fleqn, a4paper, 11pt, oneside]{book}
\pagestyle{plain}
\renewcommand{\rmdefault}{ptm}
\usepackage{newtxtext}
\usepackage{titletoc}
\contentsmargin[1cm]{0cm}
\titlecontents{chapter}[0em]{\vskip12pt\bfseries\sffamily}
{\thecontentslabel\enspace}
{\hspace{1.05em}}
{ \hfill\contentspage}[\vskip 6pt]
\titlecontents{section}[1em]{\sffamily}
{\thecontentslabel\enspace}
{}
{\titlerule*[1pc]{.}\quad\contentspage}[\vskip 4pt]
\titlecontents{subsection}[2.7em]{\sffamily}
{\thecontentslabel\enspace}
{}
{\titlerule*[1pc]{.}\quad\contentspage}[\vskip 3pt]
\usepackage{etoolbox}
\pretocmd{\contentsname}{\sffamily}{}{}
\begin{document}
\tableofcontents
\chapter*{INTRODUCTION}
\addcontentsline{toc}{chapter}{INTRODUCTION}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\chapter{QWERTYUIOP}
\section{XYZXYZXYZXYZ}
\subsection{xyxyzxyzxyzxyz}
\end{document}