LaTeX 排版(四)——颜色与超链接

1. 使用颜色

原始的 LaTeX \LaTeX LATEX 不支持使用各种颜色。color 宏包或者 xcolor 宏包提供了对颜色的支持,给 PDF 输出生成颜色的特殊指令.

1.1 颜色的表达方式

调用 colorxcolor 宏包后,我们就可以用如下命令切换颜色:

\color[⟨color-mode⟩]{⟨code⟩}
\color{⟨color-name⟩}

颜色的表达方式有两种,其一是使用色彩模型和色彩代码,代码用 0 ∼ 1 的数字代表成分的比例. color 宏包支持 rgbcmykgray 模型,xcolor 支持更多的模型如 hsb 等.

\large\sffamily
{\color[gray]{0.6}
60\% 灰色} \\
{\color[rgb]{0,1,1}
青色}

在这里插入图片描述

其二是直接使用名称代表颜色,前提是已经定义了颜色名称(没定义的话会报错):

\large\sffamily
{\color{red} 红色} \\
{\color{blue} 蓝色}

在这里插入图片描述

color 宏包仅定义了 8 种颜色名称,xcolor 补充了一些,总共有 19 种,见下表:

LaTeX 排版(四)——颜色与超链接_第1张图片

\large\sffamily
{\color{red!40} 40\% 红色}\\
{\color{blue}蓝色
\color{blue!50!black}蓝黑
\color{black}黑色}\\
{\color{-red}红色的互补色}

LaTeX 排版(四)——颜色与超链接_第2张图片

我们还可以通过命令自定义颜色名称,注意这里的 ⟨color-mode⟩ 是必选参数:

\definecolor{⟨color-name⟩}{⟨color-mode⟩}{⟨code⟩}

1.2 带颜色的文本和盒子

原始的 \color 命令类似于字体命令 \bfseries,它使之后排版的内容全部变成指定的颜色,所以直接使用时通常要加花括号分组。color / xcolor 宏包都定义了一些方便用户使用的带颜色元素.

输入带颜色的文本可以用类似 \textbf 的命令:

\textcolor[⟨color-mode⟩]{⟨code⟩}{⟨text⟩}
\textcolor{⟨color-name⟩}{⟨text⟩}

以下命令构造一个带背景色的盒子,⟨material⟩ 为盒子中的内容:

\colorbox[⟨color-mode⟩]{⟨code⟩}{⟨material⟩}
\colorbox{⟨color-name⟩}{⟨material⟩}

以下命令构造一个带背景色和有色边框的盒子,⟨fcode⟩⟨fcolor-name⟩ 用于设置边框颜色:

\fcolorbox[⟨color-mode⟩]{⟨fcode⟩}{⟨code⟩}{⟨material⟩}
\fcolorbox{⟨fcolor-name⟩}{⟨color-name⟩}{⟨material⟩}

例如:

\sffamily
文字用\textcolor{red}{红色}强调\\
\colorbox[gray]{0.95}{浅灰色背景} \\
\fcolorbox{blue}{yellow}{%
\textcolor{blue}{蓝色边框+文字,%
黄色背景}
}

LaTeX 排版(四)——颜色与超链接_第3张图片

2. 使用超链接

PDF 文档格式是现今最流行的电子文档格式,而电子文档最实用的需求之一就是超链接功能. LaTeX \LaTeX LATEX 中实现这一功能的是 hyperref 宏包.

2.1 hyperref 宏包

hyperref 宏包涉及的链接遍布 LaTeX \LaTeX LATEX 的每一个角落——目录、引用、脚注、索引、参考文献等等都被封装成超链接. 但这也使得它与其它宏包发生冲突的可能性大大增加,虽然宏包已经尽力解决各方面的兼容性,但仍不能面面俱到. 为减少可能的冲突,习惯上将 hyperref 宏包放在其它宏包之后调用.

hyperref 宏包提供了命令 \hypersetup 配置各种参数. 参数也可以作为宏包选项,在调用宏包时指定:

\hypersetup{⟨option1⟩,⟨option2⟩={value},…}
\usepackage[⟨option1⟩,⟨option2⟩={value},…]{hyperref}

可用参数如下表所示:

LaTeX 排版(四)——颜色与超链接_第4张图片

2.2 超链接

hyperref 宏包提供了直接书写超链接的命令,用于在 PDF 中生成 URL:

\url{⟨url⟩}
\nolinkurl{⟨url⟩}

\url\nolinkurl 都像抄录命令 \verb 一样输出一个 URL,区别是前者还为 URL 加上了超链接,后者没有.

\url 命令中作为参数的 URL 里,可直接输入如 %& 这样的特殊符号.

我们也可以像 HTML 中的超链接一样,把一段文字作为超链接:

\href{⟨url⟩}{⟨text⟩}

例如:

\url{http://wikipedia.org} \\
\nolinkurl{http://wikipedia.org} \\
\href{http://wikipedia.org}{Wiki}

LaTeX 排版(四)——颜色与超链接_第5张图片

使用 hyperref 宏包后,文档中所有的引用、参考文献、索引等等都转换为超链接. 用户也可对某个 \label 命令定义的标签 ⟨label⟩ 作超链接(注意这里的 ⟨label⟩ 虽然是可选参数的形式,但通常是必填的):

\hyperref[⟨label⟩]{⟨text⟩}

默认的超链接在文字外边加上一个带颜色的边框(在打印 PDF 时边框不会打印),可指定 colorlinks 参数修改为将文字本身加上颜色,或修改 pdfborder 参数调整边框宽度以“去掉”边框;hidelinks 参数则令超链接既不变色也不加边框.

\hypersetup{hidelinks}
% or:
\hypersetup{pdfborder={0 0 0}}

2.3 PDF 书签

hyperref 宏包另一个强大的功能是为 PDF 生成书签. 对于章节命令 \chapter\section 等,默认情况下会为 PDF 自动生成书签. 和交叉引用、索引等类似,生成书签也需要多次编译源代码,第一次编译将书签记录写入 .out 文件,第二次编译才正确生成书签.

hyperref 还提供了手动生成书签的命令:

\pdfbookmark[⟨level⟩]{⟨bookmark⟩}{⟨anchor⟩}

⟨bookmark⟩ 为书签名称,⟨anchor⟩ 为书签项使用的锚点(类似交叉引用的标签). 可选参数 ⟨level⟩ 为书签的层级,默认为 0 0 0.

章节命令里往往有 LaTeX \LaTeX LATEX 命令甚至数学公式,而 PDF 书签是纯文本,对命令和公式的处理很困难,有出错的风险. hyperref 宏包已经为我们处理了许多常见命令,如 \LaTeX 和字体命令 \textbf 等,对于未被处理的命令或数学公式,就要在章节标题中使用如下命令,分别提供 LaTeX \LaTeX LATEX 代码和 PDF 书签可用的纯文本:

\texorpdfstring{⟨LATEX code⟩}{⟨PDF bookmark text⟩}

比如在章节名称里使用公式 E = m c 2 E = mc^2 E=mc2,而书签则使用纯文本形式的 E=mc^2

\section{质能公式\texorpdfstring{$E=mc^2$}{E=mc\textasciicircum 2}}

你可能感兴趣的:(LaTeX,latex)