我想用另一种颜色在我的 LaTeX 文档中写章节的标题,所以我导入了以下包:
\usepackage[dvipsnames]{xcolor}
但是当我尝试这个时:
\chapter{\color{Maroon} My Title}
我收到以下错误:
Package xcolor Error: undefined color MAROON.
是否还有其他必须声明的包才能使其工作?
我用:
\documentclass{report}
是的,我使用 pdftex。
答案1
我不会将这些格式更改直接应用于部分单元的参数,因为格式更改也会出现在目录中,并在标题中产生不良结果;以下最小工作示例重现了提到的问题:
\documentclass{report}
\usepackage[dvipsnames]{xcolor}
\usepackage{lipsum}
\pagestyle{headings}
\begin{document}
\chapter{\color{Maroon}My Title}
\lipsum[1-30]
\end{document}
由于\MakeUppercase
用于生成标题,LaTeX 将颜色名称视为“MAROON”(大写),这会触发错误消息
! Package xcolor Error: Undefined color `MAROON'.
为了防止此类问题,我建议使用sectsty
或者titlesec
包来执行对部分单元格式的更改。以下示例sectsty
:
\documentclass{report}
\usepackage[dvipsnames]{xcolor}
\usepackage{sectsty}
\usepackage{lipsum}% just to generate text for the example
\chapterfont{\color{Maroon}}
\begin{document}
\chapter{My Title}
\lipsum[4]
\end{document}
现在评论中给出了更多信息,显然需要采用不同的方法,因为该fncychap
包用于生成Conny
样式中的章节标题。MWE 重现了该问题:
\documentclass{report}
\usepackage[dvipsnames]{xcolor}
\usepackage[Conny]{fncychap}
\usepackage{lipsum}
\begin{document}
\chapter{\color{Maroon}My Title}
\lipsum[1-30]
\end{document}
\ChTitleVar
在这种情况下,可以通过仅使用标题中的标题来修改标题颜色必须接收颜色:
\documentclass{report}
\usepackage[dvipsnames]{xcolor}
\usepackage[Conny]{fncychap}
\usepackage{lipsum}
\ChTitleVar{\centering\Huge\color{Maroon}}
\begin{document}
\chapter{My Title}
\lipsum[1-30]
\end{document}
如果颜色变化必须影响所有标题,则可以通过重新定义获得可能的解决方案\DOCH
:
\documentclass{report}
\usepackage[dvipsnames]{xcolor}
\usepackage[Conny]{fncychap}
\usepackage{lipsum}
\makeatletter
\renewcommand{\DOCH}{%
\color{Maroon}\mghrulefill{3\RW}\par\nobreak
\vskip -0.5\baselineskip
\mghrulefill{\RW}\par\nobreak
\CNV\FmN{\@chapapp}\space \CNoV\thechapter
\par\nobreak
\vskip -0.5\baselineskip
}
\makeatother
\begin{document}
\chapter{My Title}
\lipsum[1-30]
\end{document}
答案2
无论出于什么原因我都不会使用它fncychap
。但任何人都可以随心所欲地伤害自己。:)
加载后添加以下声明xcolor
:
\colorlet{MAROON}{Maroon}
避免对标题和目录条目进行着色的一个简单方法是使用可选参数\chapter
:
\chapter[Title]{\color{Maroon}Title}
保留指定不同“简称”的可能性的“自动化”方式可以如下:
\makeatletter
\let\latex@chapter\@chapter
\renewcommand\@chapter[2][]{%
\if\relax\detokenize{#1}\relax
\latex@chapter[#2]{\color{Maroon}#2}
\else
\latex@chapter[#1]{\color{Maroon}#1}
\fi}
\makeatother
当然,改变“第 1 章”或章节标题其他部分的颜色是另一回事。