LaTeX色彩
【注】笔记来自《LaTeX入门》——刘海洋。
1. 简介
原始的 TeX 引擎不支持彩色,有关彩色的功能都是由输出 PS、PDF 格式的 TeX 引擎或驱动提供的,有关命令是在绘图相关的扩展宏包中定义的。基本的彩色支持工具是 color 宏包,它是 LaTeX 的基本组件,graphics 工具包的一部分。
2. 基础
2.1 预定义颜色
在标准的 color 宏包中只有几种原色是预定义的,分别是:
- 黑白颜色:
black(黑)、white(白) - 色光三原色:
red(红)、green(绿)、blue(蓝) - 印刷三原色:
cyan(青)、magenta(品红)、yellow(黄)
这三类原色分别使用三种不同的色彩模型:gray(灰度)、rgb(红绿蓝)和 cmyk(青品红黄黑)。在使用颜色时,除了可以使用预定义的颜色外,还可以给颜色命令指定模型,然后使用色彩模型下的几个分量 之间的数值来表示具体颜色。
1 | % 命令解释见下文 |
还有一种由输出驱动直接支持的 named 名称模型,比如在 Dvips 驱动下,可以给用 usenames 宏包选项直接调用下图中的各种色彩名,并加以色彩强度。
| 名称 | 颜色 | 数值 | 名称 | 颜色 | 数值 |
| Apricot | #FBB982 | Aquamarine | #00B5BE | ||
| Bittersweet | #C04F17 | Black | #221E1F | ||
| Blue | #2D2F92 | BlueGreen | #00B3B8 | ||
| BlueViolet | #473992 | BrickRed | #B6321C | ||
| Brown | #792500 | BurntOrange | #F7921D | ||
| CadetBlue | #74729A | CarnationPink | #F282B4 | ||
| Cerulean | #00A2E3 | CornflowerBlue | #41B0E4 | ||
| Cyan | #00AEEF | Dandelion | #FDBC42 | ||
| DarkOrchid | #A4538A | Emerald | #00A99D | ||
| ForestGreen | #009B55 | Fuchsia | #8C368C | ||
| Goldenrod | #FFDF42 | Gray | #949698 | ||
| Green | #00A64F | GreenYellow | #DFE674 | ||
| JungleGreen | #00A99A | Lavender | #F49EC4 | ||
| LimeGreen | #8DC73E | Magenta | #EC008C | ||
| Mahogany | #A9341F | Maroon | #AF3235 | ||
| Melon | #F89E7B | MidnightBlue | #006795 | ||
| Mulberry | #A93C93 | NavyBlue | #006EB8 | ||
| OliveGreen | #3C8031 | Orange | #F58137 | ||
| OrangeRed | #ED135A | Orchid | #AF72B0 | ||
| Peach | #F7965A | Periwinkle | #7977B8 | ||
| PineGreen | #008B72 | Plum | #92268F | ||
| ProcessBlue | #00B0F0 | Purple | #99479B | ||
| RawSienna | #974006 | Red | #ED1B23 | ||
| RedOrange | #F26035 | RedViolet | #A1246B | ||
| Rhodamine | #EF559F | RoyalBlue | #0071BC | ||
| RoyalPurple | #613F99 | RubineRed | #ED017D | ||
| Salmon | #F69289 | SeaGreen | #3FBC9D | ||
| Sepia | #671800 | SkyBlue | #46C5DD | ||
| SpringGreen | #C6DC67 | Tan | #DA9D76 | ||
| TealBlue | #00AEB3 | Thistle | #D883B7 | ||
| Turquoise | #00B4CE | Violet | #58429B | ||
| VioletRed | #EF58A0 | White | #FFFFFF | ||
| WildStrawberry | #EE2967 | Yellow | #FFF200 | ||
| YellowGreen | #98CC70 | YellowOrange | #FAA21A |
比如可以选定 的淡紫色:
1 | % 导言区 |
此外,还可以使用 dvipsnames 选项来获得更多的色彩名,而不必考虑使用的输出驱动。dvipsnames 选项调入的色彩名默认以 cmyk 色彩模型给出。
1 | % 导言区 |
类似的色彩名称也可以用户自己定义,其语法格式如下:
1 | \definecolor{<色彩名>}{<模型>}{<分量值>} |
2.2 文字
在 color 宏包中,使用彩色的基本命令是 \color 和 \textcolor:
1 | \color{<颜色>} |
其中,\color 是生命式命令,它使(同一分组内)后面的内容都使用指定的颜色输出,而 \textcolor 则将参数 <文字> 以指定的颜色输出。
2.3 背景和线框
color 宏包还提供页面背景色以及彩色盒子的命令,其语法格式如下:
1 | \pagecolor{<页面颜色>} |
和 \fbox 类似,盒子外框的间距与线框粗细由长度变量 \fboxsep 和 \fboxrule 控制。
3. 扩展
3.1 xcolor 宏包
xcolor 宏包支持更多的色彩模型,诸如 rgb、cmy、cmyk、hsb、gray 等。使用这些模型可以更方便地定义各色色彩,而且将这些色彩模型作为宏包选项,则可以将整个文档的所有色彩都转换到指定的模型去,比如制作印刷稿时:
1 | % 将所有色彩转换为 cmyk 模型 |
xcolor 宏包比 color 宏包支持更多的基本色彩,下表中的颜色在调用 xcolor 宏包后即可任意使用:
| 名称 | 颜色 |
|---|---|
| black | |
| blue | |
| brown | |
| cyan | |
| darkgray | |
| gray | |
| green | |
| lightgray | |
| lime | |
| magenta | |
| olive | |
| orange | |
| pink | |
| purple | |
| red | |
| teal | |
| violet | |
| white | |
| yellow |
同时除了可以使用 dvipsnames 选项可以访问 PostScript 预定义的色彩名称(见「2.1」节表格)外,还可以使用 svgnames 和 x11names 访问 svg 格式或者是 unix x11 库中预定义的大量色彩名称。尤其有用的是,xcolor 还支持颜色表达式的记法,常用的有:
- 半色调:
<颜色>!<百分数> - 混合色:
<颜色>!<百分数>!<颜色> - 互补色:
-<颜色>
这样可以方便地表示出 的紫色或者是更复杂的将不同颜料按比例混合的中间色调。
1 | \textcolor{purple!70}{淡紫色} |
xcolor 宏包也提供了许多新的命令来支持更丰富的命令,比如 \colorlet 可以使用色彩表达式来定义新色彩名:
1 | \colorlet{darkred}{red!50!black} |
更多相关的命令可以参见官方手册。
1 | texdoc xcolor |
3.2 transparent 宏包
color 和 xcolor 宏包都不提供透明颜色的支持,使用 pdfTeX 引擎时,可以使用 transparent 宏包实现颜色透明度的支持。它提供了 \transparent 与 \texttransparent 命令,用法与 \color 和 \textcolor 类似。transparent 宏包不支持 pdfTeX 以外的其他图形驱动,不过 LaTeX 中更为复杂的绘图语言 PSTricks 和 TikZ 都支持透明色,如果需要可以调用它们实现。








