我的问题与使用创作包进行后期处理直接相关,例如etoolbox
。我已将包包含如下内容:
\usepackage{etoolbox}
我尝试做的是将其添加到整个文档中的\color{myColor}
每个命令前面。我正在使用:\chapter
\preto\chapter{\color{myColor}}
这确实可行,但不仅会给我的章节着色,还会给之后的所有文本着色\chapter
命令(因此我的所有文档..)。
是否有某种方法可以将颜色仅包装到每个章节?
附言:我正在使用报告类
答案1
使用的示例sectsty
包裹:
\documentclass{book}
\usepackage{xcolor}
\usepackage{sectsty}
\chapterfont{\color{red}}
\begin{document}
\chapter{Test Chapter}
test
\end{document}
现在使用titlesec
包裹:
\documentclass{book}
\usepackage{xcolor}
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries\color{red}}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\begin{document}
\chapter{Test Chapter}
test
\end{document}
如我所见,您添加了正在使用文档类的信息report
;我的示例代码也适用于此类。
答案2
您可能可以添加一个结束组,但需要小心不要干扰章节标题的查找方式*
或可选参数。此外,在章节命令之前立即添加颜色命令很可能会影响垂直间距。
最好在添加字体时添加颜色。在书籍类中,章节标题定义为
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
\vskip 20\p@
\fi
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
所以我会这么做
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\huge\bfseries \textcolor{myColor}{\@chapapp\space \thechapter}%
\par\nobreak
\vskip 20\p@
\fi
\fi
\interlinepenalty\@M
\Huge \bfseries \textcolor{myColor}{#1}\par\nobreak
\vskip 40\p@
}}
这避免了在垂直模式下添加颜色。
我看到您添加了一条评论,说明您正在使用报告,因此您可以对以下内容进行相同的添加:
\def\@makechapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\huge\bfseries \@chapapp\space \thechapter
\par\nobreak
\vskip 20\p@
\fi
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
答案3
仅出于完整性考虑:如果您使用 KOMA-Script,则可以简单地使用字体元素。使用chapter
仅影响\chapter
标题或disposition
更改所有部分级别。
\documentclass{scrreprt}
\usepackage{xcolor}
\addtokomafont{disposition}{\color{red}}
\addtokomafont{chapter}{\color{blue}}
\begin{document}
\chapter{My Chapter}
\section{My Section}
\subsection{My Subsection}
Text
\end{document}
答案4
自从\color{myColor}
开始给“从现在开始”的文字着色,你可能想做类似的事情
\preto\chapter{\begingroup\color{myColor}}
\appto\chapter{\endgroup}
这绝对不是一种干净的方法,但应该可行。相反,我会使用或类似的包/类fncychap
来寻找解决方案。memoir