我正在使用书籍文档类,我想生成一个包含多个部分、章节、节、节和小节的文档。我想通过根据部分对所有内容进行着色,让读者更容易阅读。例如,我想要:
- A部分的标题为蓝色
- A 部分中的章节标题为蓝色
- A 部分的所有章节标题均为蓝色
进而..
- B 部分的标题为红色
- B 部分中的章节标题为红色
- B 部分的所有章节标题均为红色
ETC..
有人能帮忙解决这样的问题吗?提前谢谢了!
PS. 我的文档开头是这样的:
\documentclass[11pt,letterpaper]{book}
\usepackage{amsfonts,amsthm,amssymb}
\usepackage[tbtags]{amsmath}
\usepackage{color}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[LE,RO]{\slshape\thepage}
\fancyhead[RE]{\slshape \leftmark}
\fancyhead[LO]{\slshape \rightmark}
\renewcommand{\thepart}{\Alph{part}}
\renewcommand{\thechapter}{\Roman{chapter}}
答案1
这是一个可能的解决方案,使用标题安全包来为章节标题添加颜色;部分标题(及其目录条目)的颜色是通过重新定义内部宏来添加的\part
,\@part
和\@spart
;目录中章节条目的颜色是通过重新定义来实现的\@chapter
。颜色方案是通过一个简单的实现的\ifcase
:
\documentclass[11pt,letterpaper]{book}
\usepackage{amsfonts,amsthm,amssymb}
\usepackage[tbtags]{amsmath}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage{titlesec}
\usepackage{chngcntr}
\newcommand\MyColor{black}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[LE,RO]{\slshape\color{\MyColor}\thepage}
\fancyhead[RE]{\slshape\color{\MyColor}\leftmark}
\fancyhead[LO]{\slshape\color{\MyColor}\rightmark}
\counterwithin{chapter}{part}
\renewcommand{\thepart}{\Alph{part}}
\renewcommand{\thechapter}{\Roman{chapter}}
\titleformat{\chapter}[display]
{\normalfont\huge\bfseries\color{\MyColor}}{\chaptertitlename\ \thechapter}{20pt}{\Huge}
\makeatletter
\renewcommand\part{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\thispagestyle{plain}%
\renewcommand\MyColor{%
\ifcase\value{part} \or blue\or red\or olive\or magenta\else yellow\fi}
\if@twocolumn
\onecolumn
\@tempswatrue
\else
\@tempswafalse
\fi
\null\vfil
\secdef\@part\@spart}
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}%
\addcontentsline{toc}{part}{\color{\MyColor}\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{\color{\MyColor}#1}%
\fi
\markboth{}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >-2\relax
\huge\bfseries\color{\MyColor} \partname\nobreakspace\thepart
\par
\vskip 20\p@
\fi
\Huge \bfseries #2\par}%
\@endpart}
\def\@spart#1{%
{\centering
\interlinepenalty \@M
\normalfont
\Huge \bfseries #1\par}%
\@endpart}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\color{\MyColor}\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{\color{\MyColor}#1}%
\fi
\else
\addcontentsline{toc}{chapter}{\color{\MyColor}#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}
\makeatother
\begin{document}
\tableofcontents
\part{Test Part One}
\chapter{Chapter A-One}
\lipsum[1]
\section{Test section A-One One}
\lipsum[1-10]
\chapter{Chapter A-Two}
\lipsum[1]
\section{Test section A-Two One}
\lipsum[1-10]
\part{Test Part Two}
\chapter{Chapter B-One}
\lipsum[1-7]
\chapter{Chapter B-Two}
\lipsum[1-7]
\part{Test Part Three}
\chapter{Chapter C-One}
\lipsum[1-7]
\chapter{Chapter C-Two}
\lipsum[1-7]
\end{document}
以下是最终文件的一些页面:
以下是目录的图片:
仅作为个人评论,这种着色方案必须非常小心地处理(选择合适的颜色至关重要),以免分散注意力并避免实现不愉快的布局。
答案2
您可以使用该sectsty
包修改标题格式。例如,在加载包后,使用它\partfont{\color{blue}}
来更改部分标题的颜色、\chapterfont{\color{blue}}
章节标题的颜色等。也可以使用此包应用其他格式;参考 sectsty 包文档以了解其他修饰符(字体大小、字体粗细、字体形状等)可能会很有用。
在本例中,我定义了一个变量\pcolor
,以便可以为每个部分更改颜色。在每个部分之前,使用\renewcommand\pcolor{}
定义下一个部分的颜色;为了防止颜色更改影响前一部分,请\clearpage
在更改颜色之前使用。通过修改定义来更改页眉字体颜色fancyhdr
。
以下是显示变化的 MWE:
\documentclass[11pt,letterpaper]{book}
\usepackage{amsfonts,amsthm,amssymb}
\usepackage[tbtags]{amsmath}
\usepackage{color}
\usepackage[english]{babel}
\usepackage{lipsum}
\newcommand\pcolor{black}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[LE,RO]{\slshape\thepage}
\fancyhead[RE]{\color{\pcolor}\slshape \leftmark}
\fancyhead[LO]{\color{\pcolor}\slshape \rightmark}
\renewcommand{\thepart}{\Alph{part}}
\renewcommand{\thechapter}{\Roman{chapter}}
\usepackage{sectsty}
\partfont{\color{\pcolor}}
\chapterfont{\color{\pcolor}}
\begin{document}
\renewcommand\pcolor{blue}
\part{Part 1}
\chapter{Chapter 1}
\lipsum
\chapter{Chapter 2}
\lipsum
\clearpage
\renewcommand\pcolor{red}
\part{Part 2}
\chapter{Chapter 3}
\lipsum
\chapter{Chapter 4}
\lipsum
\end{document}