xcolor 包错误

xcolor 包错误

我想用另一种颜色在我的 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 章”或章节标题其他部分的颜色是另一回事。

相关内容