LaTeX 之字体颜色篇

速览

使用 xcolor 宏包可用来方便地调用颜色:
该宏包为我们提供了 \textcolor , \definecolor 两关键命令

1
2
3
\textcolor{red}{Red为xcolor宏包预定义的命令} %修改颜色
%语法:\definecolor{name}{model-list}{spec-list}
\definecolor{Gcolor}{RGB}{66, 134, 243} %定义自定义颜色

宏包预定义的颜色命令

语法

1
\textcolor{colorname}{text} %修改text的颜色

宏包预定义的颜色及命令如下

01-xcolor宏包预定义颜色.png

案例 1 宏包预定的颜色修改字体颜色

1
2
3
4
5
6
7
\documentclass{ctexart}
\usepackage{xcolor}
\begin{document}
\textcolor{red}{Red为xcolor宏包预定义的命令} %将字体颜色修改为红色

\textcolor{pink}{Pink也为xcolor宏包预定义的命令}
\end{document}

02-xcolor宏包预定义的颜色命令.png

案例 2 设置颜色透明度

1
2
3
4
5
6
7
\documentclass{ctexart}
\usepackage{xcolor}
\begin{document}
\textcolor{red}{红色文字}

\textcolor{red!50}{透明度为50的红色}
\end{document}

03-调节颜色透明度.png

  • 红色文字字体颜色 RGB (255,0,0)
  • 透明度为 50% 的红色字体颜色 RGB (255,128,128)

案例 3 混合色

1
2
3
4
5
6
7
8
9
\documentclass{ctexart}
\usepackage{xcolor}
\begin{document}
\textcolor{red}{红色文字}

\textcolor{red!50!black}{50\%的红色 + 50\%的黑色}

\textcolor{red!50!white}{50\%的红色 + 50\%的白色}
\end{document}

091-混合色语法.png

  • red!50!black:即 50% 的红色(255,0,0)混合 50% 的黑色(0,0,0),最终得到(128,0,0)
  • 同理,red!50!white 最终得到(255,128,128)

定义新的颜色命令

语法

1
2
3
4
5
6
%语法:\definecolor{name}{model-list}{spec-list}
%语法:\definecolor{颜色}{颜色模式}{参数序列}
%RGB实例如下
\definecolor{keywordcolor}{RGB}{34,34,250} %定义新的颜色命令
%HTML实例如下
\definecolor{main}{HTML}{ff8080} %注意HTML是大写,后面的参数序列不跟“#”

语法中的 model-list 可以是我们常使用的 RGB、CMYK、HSV 等(整合了 12 种色彩模式 rgb, cmy, cmyk, hsb, Hsb, tHsb, gray, RGB, HTML, HSB, Gray, wave)。比如说 OFFICE 系列的软件在调节颜色时,通常会提供 RGB 和 HSV 两种颜色模式

05-PPT当中的颜色模式.png

案例 4:定义新的颜色命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
\documentclass{ctexart}
\usepackage{xcolor}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=5in]{figs/Google-logo}
\end{figure}
%语法:\definecolor{name}{model-list}{spec-list}
\definecolor{Gcolor}{RGB}{66, 134, 243}
\definecolor{Lcolor}{RGB}{52, 170, 82}
\centering
\textcolor{Gcolor}{这是Google logo中G的颜色}

\textcolor{Lcolor}{这是Google logo中L的颜色}
\end{document}

04-自定义颜色命令.png

拓展应用 彩色表格

xcolor 宏包的 \rowcolors 命令 (需要 colortbl 宏包的支持),可以分别设置表格奇偶行的背景颜色

语法

1
2
%语法:{起始行}{奇数行颜色}{偶数行颜色},如一下示例
\rowcolors{1}{White}{Lavender}

\hiderowcolors 命令是用来暂停显示前面设置的奇偶行颜色,否则后面的其他表格会继续显示颜色。另一个命令 \showrowcolors 可以用来重新激活奇偶行颜色设置。

案例 5:彩色表格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
\documentclass{ctexart}
\usepackage[table]{xcolor} %提供rowcolor命令
\begin{document}
\definecolor{mygray}{RGB}{245, 245, 245} %自定义的一种灰色颜色命令
\begin{table}[!ht]
\centering
\rowcolors{1}{white}{mygray} %彩色表格,从第一行开始,奇偶行背景色分别为白色和自定义的灰色(注意颜色名称的大小写不要写错)
\begin{tabular}{cc}
\hline
文献类型标识 & 载体类型标识 \\
\hline
\verb|[DB/OL]| & 联机网上数据库 (database online) \\
\verb|[DB/MT]| & 磁带数据库 (database on magnetic tape) \\
\verb|[M/CD]| & 光盘图书 (monograph on CD-ROM) \\
\verb|[CP/DK]| & 磁盘软件 (computer program on disk) \\
\verb|[J/OL]| & 网上期刊 (serial online) \\
\verb|[EB/OL]| & 网上电子公告 (electronic bulletin board online)\\
\hline
\hiderowcolors %暂停使用奇偶行颜色设定,防止对后续表格的背景色产生影响,后续如果想要开启,可以使用\showrowcolors来重新激活奇偶行颜色设置
\end{tabular}
\end{table}
\end{document}

09-正常表格以及彩色表格.png

需要注意的地方

  1. \usepackage[table]{xcolor} 如果仅使用 \usepackage{xcolor},无法识别 \rowcolors\hiderowcolors` 等命令
  2. \hiderowcolors 写在 tabular 环境内,否则报 Misplaced \noalign

关于第 2 点的报错,可参考:

08-彩色表格报错.png

主要参考资料

待续