目录条目中的字体

目录条目中的字体

我用了

{\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} 

在此处输入图片描述

相关内容