我正在尝试改变我的部分、小节和小小节的颜色。
我使用 titlesec 页面进行此操作:
\titleformat*{\section}{\Large\bfseries\sffamily\color{red}}
\titleformat*{\subsection}{\large\bfseries\sffamily\color{red}}
但问题是我还必须输入字体和字体大小。我正在使用 fontenc 包:
\usepackage[T1]{fontenc}
但我似乎无法找出该节、小节和小小节所使用的字体和大小。
我指的是这两个价值观:\Large\bfseries\sffamily
我尝试在 .sty 中查找,但没有什么帮助。
答案1
的第二个参数\titleformat*{\<name>}{<code>}
存储在一个名为的宏中,\ttlf@<name>
该宏(默认)定义可以在命令行中使用打印出来\show\ttlf@<name>
,当然是在之后\makeatletter
。
\makeatletter
\show\ttlf@section
\ttlf@section:
macro:->\ttlh@hang {\normalfont \Large \bfseries }{\@seccntformat {section}}{\z
@ }{\ttl@passexplicit }{}.
\show\ttlf@subsection
\ttlf@subsection:
macro:->\ttlh@hang {\normalfont \large \bfseries }{\@seccntformat {subsection}}
{\z@ }{\ttl@passexplicit }{}.
\show\ttlf@subsubsection
\ttlf@subsubsection:
macro:->\ttlh@hang {\normalfont \normalsize \bfseries }{\@seccntformat {subsubs
ection}}{\z@ }{\ttl@passexplicit }{}.
因此,请求的标题格式的正确设置是:
\titleformat*{\section}{\normalfont\Large\bfseries\color{red}}
\titleformat*{\subsection}{\normalfont\large\bfseries\color{red}}
\titleformat*{\subsubsection}{\normalfont\normalsize\bfseries\color{red}}
为了完整性,这里还提供\paragraph
和的设置\subparagraph
:
\titleformat*{\paragraph}{\normalfont\normalsize\bfseries\color{red}}
\titleformat*{\subparagraph}{\normalfont\normalsize\bfseries\color{red}}
答案2
这更像是对马丁的回答的评论,但它太长了,所以我把它作为社区维基答案。
为了更加用户友好,您可以定义一个\addtotitleformat
宏,它允许您只写
\addtotitleformat*{\subsection}{\sffamily\color{blue}}
而不必每次都重复其他格式信息。代码如下:
\documentclass{article}
\usepackage{xcolor}
\usepackage{titlesec}
\makeatletter
\newcommand*\@secondofsix[6]{#2}
\newcommand{\addtotitleformat}{%
\@ifstar{\addtotitleformat@star}{\addtotitleformat@nostar}}
\newcommand\addtotitleformat@nostar[2]{%
\PackageError{titlesec}{non starred form of \string\addtotitleformat\space not supported}{}}
\newcommand\addtotitleformat@star[2]{%
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter\def
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter\@currentsection@font
\expandafter\expandafter\expandafter\expandafter
\expandafter\expandafter\expandafter{%
\expandafter\expandafter\expandafter\@secondofsix
\csname ttlf@\expandafter\@gobble\string#1\endcsname}%
\titleformat*{#1}{\@currentsection@font#2}%
}
\makeatother
\addtotitleformat*{\section}{\Huge\color{red}}
\addtotitleformat*{\subsection}{\sffamily\color{blue}}
\begin{document}
\section{Section title}
\subsection{Section title}
\end{document}