LaTeX字体颜色设置:color与xcolor宏包详解

0 次阅读

LaTeX中的字体颜色控制主要依赖 colorxcolor 两个宏包。对于简单的文字着色,color 已经能够满足基本需求;如果需要自定义颜色、混合颜色、设置颜色表或进行更复杂的颜色操作,则更推荐使用功能更丰富的 xcolor 宏包。

使用color宏包设置字体颜色

最基础的方式是引入 color 宏包:

LaTeX
usepackage{color}

然后使用 color extcolor 命令设置文字颜色。

使用 extcolor命令

extcolor 适合给一小段文字指定颜色,基本语法如下:

LaTeX
	extcolor{red}{这是一段红色文字}

完整示例:

LaTeX
documentclass{article}
usepackage{color}

egin{document}

普通文字。

	extcolor{red}{这是一段红色文字。}

	extcolor{blue}{这是一段蓝色文字。}

end{document}

这种写法的特点是颜色只作用于花括号中的内容,不会影响后面的正文。

使用color命令

color 命令则会改变当前位置之后的文字颜色:

LaTeX
{color{red}
这部分文字都是红色。
}

通过花括号限制作用范围,可以避免颜色一直延续到后面的内容。

也可以直接改变后续正文的颜色:

LaTeX
color{blue}

这段文字是蓝色。

后面的文字仍然是蓝色。

因此,在普通段落中使用颜色时,通常更推荐 extcolor;需要对较大的文本区域统一设置颜色时,可以使用 color 配合分组。

color宏包支持哪些颜色

color 宏包提供了一些常用的预定义颜色,例如:

red
green
blue
cyan
magenta
yellow
black
darkgray
gray
lightgray
white

例如:

LaTeX
	extcolor{green}{绿色文字}

	extcolor{cyan}{青色文字}

	extcolor{magenta}{洋红色文字}

	extcolor{gray}{灰色文字}

对于常见的红、绿、蓝等颜色,使用 color 宏包即可快速完成设置。

不过,当项目涉及更多颜色需求时,color 的能力就显得有限,这也是 xcolor 更常用的原因。

使用xcolor宏包设置字体颜色

xcolor 是 LaTeX 中功能更加完善的颜色处理宏包。使用方法是:

LaTeX
usepackage{xcolor}

最简单的字体颜色设置方式与 color 基本一致:

LaTeX
	extcolor{red}{红色文字}

或者:

LaTeX
{color{blue}
这是一段蓝色文字。
}

因此,如果没有特殊兼容性要求,实际写作中通常可以直接选择 xcolor

xcolor自定义颜色

xcolor 的一个重要优势是支持自定义颜色。

例如,可以使用 RGB 模型定义一种颜色:

LaTeX
definecolor{myblue}{RGB}{30,100,200}

随后即可使用:

LaTeX
	extcolor{myblue}{这是自定义蓝色文字。}

完整示例:

LaTeX
documentclass{article}
usepackage{xcolor}

definecolor{myblue}{RGB}{30,100,200}

egin{document}

	extcolor{myblue}{这是自定义颜色。}

end{document}

这样可以避免在正文中反复写 RGB 数值,也便于统一调整整个文档的视觉风格。

xcolor中的常见颜色模型

xcolor 支持多种颜色模型,常用的包括 RGB、HTML、CMYK、gray 等。

RGB颜色

RGB 使用红、绿、蓝三个分量定义颜色:

LaTeX
definecolor{mycolor}{RGB}{255,100,50}

这里三个数值通常处于 0255 范围内。

使用时:

LaTeX
	extcolor{mycolor}{RGB颜色文字}

HTML颜色

如果手头已经有网页设计中常见的十六进制颜色值,可以使用 HTML 模型:

LaTeX
definecolor{mycolor}{HTML}{3366CC}

然后:

LaTeX
	extcolor{mycolor}{蓝色文字}

这种方式非常适合需要与网页、PPT、品牌视觉规范保持颜色一致的文档。

CMYK颜色

对于印刷场景,可以使用 CMYK:

LaTeX
definecolor{mycolor}{cmyk}{0.8,0.4,0,0}

然后:

LaTeX
	extcolor{mycolor}{印刷文档中的颜色}

如果文档最终需要用于专业印刷,CMYK 通常比简单的 RGB 表达更符合实际需求。

灰度颜色

还可以使用灰度模型:

LaTeX
definecolor{darkgray}{gray}{0.3}

其中 0 表示黑色,1 表示白色。

例如:

LaTeX
	extcolor{darkgray}{这是一段深灰色文字。}

xcolor颜色混合

xcolor 不仅可以定义颜色,还可以直接进行颜色混合。

例如:

LaTeX
	extcolor{red!50}{红色与白色混合后的颜色}

这里的 red!50 表示使用 50% 的红色与默认背景色进行混合。

还可以指定两种颜色:

LaTeX
	extcolor{red!50!blue}{混合颜色}

其含义是按照指定比例在红色和蓝色之间进行混合。

常见写法包括:

LaTeX
red!20
blue!50
green!70
red!30!blue

这种机制在制作技术文档、演示文稿以及学术论文时非常实用,可以快速生成不同深浅的颜色。

给整段文字设置颜色

如果希望整段内容使用相同颜色,可以使用分组:

LaTeX
{
color{blue}

这一段文字是蓝色。
这里仍然是蓝色。

}

分组结束后,颜色会恢复到之前的状态。

也可以使用环境控制:

LaTeX
egin{quote}
color{gray}
这是一段灰色引用文字。
end{quote}

这种方法适合引用、提示框、说明文字等区域的统一样式设计。

给数学公式设置颜色

LaTeX 中也可以使用 extcolor 给数学公式中的内容设置颜色:

LaTeX
[
E = 	extcolor{red}{mc^2}
]

还可以只给公式的一部分着色:

LaTeX
[
a + 	extcolor{blue}{b} = c
]

如果需要强调推导过程中的某一项,这种方法尤其方便。

例如:

LaTeX
[
	extcolor{red}{x^2} + 2x + 1 = 0
]

需要注意的是,颜色主要改变显示效果,不会改变数学公式本身的计算含义。

给章节标题设置字体颜色

结合 xcolor 后,可以进一步修改文档标题的颜色。例如配合 titlesec

LaTeX
usepackage{xcolor}
usepackage{titlesec}

	itleformat{section}
  {color{blue}Largefseries}
  {	hesection}
  {1em}
  {}

这样可以将 section 标题设置为蓝色粗体。

这种方式适合需要统一设计论文、技术手册或电子书视觉风格的场景。

color与xcolor应该怎么选择

两者最大的区别在于功能范围。

对比项目colorxcolor
基础字体着色支持支持
extcolor支持支持
color支持支持
常用预定义颜色支持支持
自定义颜色支持基础功能功能更丰富
RGB颜色支持支持
HTML颜色功能有限支持
CMYK颜色支持基础模型支持
颜色混合不够灵活支持
颜色管理基础更完善
推荐程度适合简单需求更适合现代文档

如果只是编写非常简单的 LaTeX 文档,例如:

LaTeX
	extcolor{red}{重要内容}

使用 color 完全可以。

如果文档中存在大量自定义颜色、颜色混合、表格着色或复杂视觉设计,则建议直接使用:

LaTeX
usepackage{xcolor}

表格中使用xcolor设置颜色

xcolor 还经常用于 LaTeX 表格的颜色控制。例如配合 colortbl 可以设置单元格背景色:

LaTeX
usepackage[table]{xcolor}

然后可以使用:

LaTeX
egin{tabular}{|c|c|}
hline

owcolor{gray!20}
姓名 & 成绩 \
hline
张三 & 90 \
hline
李四 & 85 \
hline
end{tabular}

其中:

LaTeX

owcolor{gray!20}

可以给当前表格行设置浅灰色背景。

也可以使用:

LaTeX
cellcolor{yellow}

给单独的单元格添加背景颜色。

因此,xcolor 不只是用于字体颜色,还可以参与整个 LaTeX 文档的视觉样式设计。

设置颜色时常见的问题

颜色命令没有效果

首先检查是否引入了宏包:

LaTeX
usepackage{xcolor}

或者:

LaTeX
usepackage{color}

如果没有加载对应宏包, extcolorcolor 等命令可能无法正常使用。

自定义颜色报错

例如:

LaTeX
definecolor{mycolor}{RGB}{30,100,200}

需要确认颜色模型和参数数量匹配。

RGB 通常需要三个数值:

LaTeX
{RGB}{30,100,200}

而 HTML 颜色则使用:

LaTeX
{HTML}{3366CC}

不要将两种格式混用。

颜色影响了后面的文字

下面这种写法会让后续内容继续使用红色:

LaTeX
color{red}
这段文字是红色。
后面的文字仍然可能是红色。

如果只想改变局部内容,应使用:

LaTeX
{color{red}
这段文字是红色。
}

或者直接使用:

LaTeX
	extcolor{red}{这段文字是红色。}

PDF中颜色与屏幕显示存在差异

RGB、CMYK 等颜色模型面向的应用场景不同,而且不同 PDF 阅读器、显示器和打印设备可能产生视觉差异。

如果文档主要用于屏幕阅读,可以优先考虑 RGB 或 HTML 色值;如果需要专业印刷,则应根据出版或印刷要求选择合适的颜色模式,并进行实际输出测试。

LaTeX字体颜色设置的实用建议

对于普通论文、技术文档和课程作业,建议统一使用 xcolor

LaTeX
usepackage{xcolor}

然后将项目中的颜色集中定义:

LaTeX
definecolor{maincolor}{HTML}{2F5597}
definecolor{accentcolor}{HTML}{C00000}
definecolor{graytext}{HTML}{666666}

正文中统一调用:

LaTeX
	extcolor{maincolor}{主要内容}
LaTeX
	extcolor{accentcolor}{重点内容}
LaTeX
	extcolor{graytext}{辅助说明}

这种写法比直接在各处使用 redblue 等颜色更加容易维护。如果后续需要调整整个文档的配色,只需修改颜色定义即可。

需要特别注意的是,学术论文不宜过度使用字体颜色。颜色最好承担“强调”“分类”或“视觉层次”的作用,而不是代替正常的排版结构。对于打印版本,还应考虑黑白打印后文字是否仍然能够清晰区分。

总体而言,color 适合解决简单的 LaTeX 字体颜色问题,而 xcolor 则更适合需要自定义颜色、颜色混合以及复杂文档样式控制的场景。掌握 extcolorcolordefinecolor 以及 RGB、HTML、CMYK 等颜色模型后,就可以覆盖绝大多数 LaTeX 颜色设置需求。