不使用“tocloft”包更改目录中的章节字体

不使用“tocloft”包更改目录中的章节字体

tocloftbook课堂上使用会产生一些意想不到的效果副作用,我想知道如何在不使用任何其他软件包的情况下将章节字体(例如 1 简介)更改为无衬线字体?

例如,将突出显示的文本更改为sans serif font

梅威瑟:

\documentclass{book}
\usepackage[UKenglish]{babel}
\usepackage{color}
\usepackage[lining ]{libertine}
\usepackage[ T1 ]{fontenc}

\definecolor{DarkBlue}{RGB}{0,51,153}
\usepackage[ ]{titlesec} 
\titleformat{\chapter}[display]   
  {\LARGE \color{DarkBlue}}
  {\vspace{-1 em} \flushright   \normalsize \color{black}  \MakeUppercase{  \bfseries \sffamily  \chaptertitlename } \hspace{1 em}  { \fontsize{70}{70}\selectfont \color{black} \sffamily \thechapter }} {20 pt} { \bfseries \sffamily \LARGE}    

\titleformat{\section} {\Large \bfseries \sffamily \color{DarkBlue}}     {\thesection}{1 em}{}
\titleformat{\subsection}  {\large \bfseries \sffamily  \color{DarkBlue}}      {\thesubsection}{1 em}{}
\titleformat{\subsubsection}  {\normalsize \sffamily  \bfseries      \color{DarkBlue}}  {\thesubsubsection}{1 em}{}  %\slshape
\setcounter{tocdepth}{3}   % table of content depth
\setcounter{secnumdepth}{3}

\usepackage{lipsum}

\begin{document}

\frontmatter
\tableofcontents
\chapter{Preface}

\lipsum[1-3]
\mainmatter
\chapter{Introduction}
\section{Foo}
\lipsum[1-12]
\chapter{How to make nuclear bomb}
\section{Equations}
\lipsum[1-12]
\backmatter
\chapter{Appendix~A}
\lipsum[1-12]
\chapter{Appendix~B}
\lipsum[1-12]
\end{document}

在此处输入图片描述

答案1

由于缺乏可复制粘贴的代码,这并没有真正经过测试,但应该可以在课堂上使用book在序言中输入:

\makeatletter
\def\l@chapter#1#2{%
\ifnum \c@tocdepth >\m@ne \addpenalty {-\@highpenalty }\vskip 1.0em \@plus\p@
\setlength \@tempdima {1.5em}\begingroup \parindent \z@ \rightskip\@pnumwidth
\parfillskip -\@pnumwidth \leavevmode \bfseries \advance \leftskip \@tempdima
\hskip -\leftskip {\sffamily #1}\nobreak \hfil \nobreak \hb@xt@ \@pnumwidth 
{\hss #2}\par \penalty \@highpenalty \endgroup \fi}
\makeatother

更新:如果您想使用memoir或实现类似的效果scrbook,请使用以下代码:

\makeatletter
\let\originall@chapter\l@chapter
\def\l@chapter#1#2{\originall@chapter{{\sffamily #1}}{#2}}
\makeatother

上面的方案实际上比我之前提出的方案更可取,同样适用于班级book,因为它不会对你的序言造成太大的负担。不过,第一个方案的优点是,如果需要,你还可以自定义其中的硬编码长度。

\documentclass{book}
\usepackage{lipsum}

\makeatletter \def\l@chapter#1#2{%
  \ifnum \c@tocdepth >\m@ne \addpenalty {-\@highpenalty }\vskip 1.0em \@plus\p@
  \setlength \@tempdima {1.5em}\begingroup \parindent \z@ \rightskip\@pnumwidth
  \parfillskip -\@pnumwidth \leavevmode \bfseries \advance \leftskip \@tempdima
  \hskip -\leftskip {\sffamily #1}\nobreak \hfil \nobreak \hb@xt@ \@pnumwidth
  {\hss #2}\par \penalty \@highpenalty \endgroup \fi} \makeatother

\begin{document}

\tableofcontents

\chapter{One}

\section{A}

\lipsum[1]

\section{B}

\lipsum[2]

\chapter{Two}

\section{C}

\lipsum[3]

\section{D}

\lipsum[4]

\end{document}

目录

利用问题中提供的代码,可以获得:

目录

相关内容