tocloft
在book
课堂上使用会产生一些意想不到的效果副作用,我想知道如何在不使用任何其他软件包的情况下将章节字体(例如 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}
利用问题中提供的代码,可以获得: