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 都支持透明色,如果需要可以调用它们实现。