2.1 字体
- 字体属性
字体有五个属性:
1. 编码(encoding)—将字体按某种规定的⽅式编制成相应的代码信息, 如OT1, T1,GB 编码等; LATEX 中字体的默认编码为OT1,⽽XƎLATEX 采⽤unicode/UTF-8.
2. 字族(family)—字族就是通常所说的字体, 是某⼀类型字体的集合, 例如Adobe Times 字族、仿宋体字族等; LATEX 中⼏⼗种字族被分成三类:
(1)罗马体字族(默认)
(2)等线体(sans serif) 字族
(3)打字机字族
3. 序列(series)—字体笔画的精细与宽窄程序; LATEX 采⽤⼗多种序列中的⼆种: 常规序列(默认) 和粗宽序列.
4. 形状(shape)—字体的外表形态, 如倾斜、直⽴等; LATEX 采⽤直⽴(默认)、斜体、倾斜和⼩型⼤写(Small Caps)4 种形状.
5. 尺寸(size)—字体的大小, 以点数表⽰, 例如11pt, 20pt 等; LATEX 预定为5-25 pt,book, report, article 三个标准⽂档类将常规字体尺⼨的默认值设为10pt.
- 字体声明命令
按字体的字族、形状和系列分三类介绍:
(1). 族指概观样式, 包括3种声明:
• mfamily: 罗马(roman) 字体(简化形式: m)
• sffamily: ⽆衬线(sans serif) 字体(简化形式: sf)
• tfamily: 打字机(typerwriter) 字体(简化形式: t)
(2). 形状指倾斜和⾼矮, 包括4 种声明:
• 甥獰慨pe: 直⽴(upstanding) 字体
• itshape: 意⼤利(italic) 字体(简化形式: it)
• slshape: slanted 的斜体(简化形式: sl)
• scshape: 小体⼤写(Small Caps) 字体(简化形式: sc)
(3). 系列指字体的宽度和权重(⿊度), 包括2 种声明:
• mdseries: 中等(medium) 权重
• bfseries: 粗体(bold face) (简化形式: bf)
(4). 常规字体: LATEX 通过ormalfont 将常规字体定义为罗马体字族
(extrm)、常规序列(extmd) 和直⽴形状(extup).
(5). 强调: 强调某段⽂字, 声明为em
- 参数形式的字体命令
LATEX 中⽤于⽂字模式的默认字体是直⽴的罗马字体. 声明ormalfont 就将除字体尺⼨以外的所有属性重新设为默认值. 对应于上⾯的字体声明, 都有相应的字体命令, 它们只对参数中的⽂字起作⽤, ⽤于改变⼀段或⼀个单词的属性.
(1). 族: extrm{文本}, extsf{文本}, exttt{文本}
(2). 形状: extup{文本}, extit{文本}, extsl{文本}, extsc{文本}
(3). 系列: extmd{文本}, extbf{文本}
(4). 默认值: extnormal{文本}
(5). 强调: emph{文本}
若要改变很长的字体属性则需要使⽤下⾯的环境:
begin{字体属性}
使用新属性的文本
end{字体属性}
- 字体尺寸命令
字体尺⼨命令是声明形式的命令, ⽤于设定英⽂与中⽂字体的尺⼨属性, 改变字体的⼤⼩. book, report, article 三个基本⽂档类都给出了10pt, 11pt 和12pt 三个选项,它可通过:
documentclass[Options]{class}
中的Options 来设置⽂档类的基准尺⼨. 此外⽂档中字体的⼤⼩可以通过字体声明命令来改变, 其实际⼤⼩还取决于⽂档中的基准字体.
本⽂使⽤的基准尺⼨为10pt, 相应的声明对应的字体⼤⼩⽰例如下:
2.2 中文字体
1. 使⽤LATEX 处理中⽂, 需要调⽤CTEX 提供的中⽂字体宏包ctex 或LATEX 系统提供的CJK 宏包.
2. CJK 宏包提供CJK 和CJK* 两种双字节⽂字处理环境, 使⽤可排版中、⽇、韩等多种亚洲⽂字, 它使⽤GBK 汉字编码字库处理中文.
3. ctex 宏包提供了⼀个统⼀的中文LATEX ⽂档框架, 底层⽀持CCT 和CJK 两种中文LATEX 系统.
4. ctex 宏包按中⽂的各种排版习惯进⾏了默认设置, 它还重新定义了⽂件环境document, 在begin{document} 与end{document} 之间加⼊了CJK 宏包提供的CJK* 环境.
5. 空格处理: 使⽤带space 选项的ctex 宏包相当于CJK 宏包的CJK 环境, 它保留汉字与中文标点符号(或其他字符) 之间的空格, 换⾏时⾃动插⼊空格; 使⽤不带space 选项的ctex 宏包相当于CJK 宏包的CJK* 环境, 它将忽略汉字与中⽂标点符号(或其他字符) 之间的空格, 换⾏时⾃动插⼊的空格被删除.
6. 两种CJK 环境的转换: 如果在ctex 默认的中⽂处理模式(即CJK* 环境模式) 下,可使⽤命令CJKspace 将其后的中⽂按CJK 环境模式来处理; 类似地, 如果采⽤ctex 的space 选项(即CJK 环境模式) 下, 可使⽤命令CJKnospace 将其后的中⽂按CJK* 环境模式来处理.
- 中文字体的选择
CJK 中TrueType1 字库提供了国标的宋体、仿宋体、楷体、⿊体、⾪书体和幼圆体, 可通过CJK 字体命令CJKfamily{字体属性} 来改变字体的属性. CJK中的字体样例如下:
– 宋体: 命令CJKfamily{song}
– 仿宋体: 命令CJKfamily{fs}
– 楷体: 命令CJKfamily{kai}
– 黑体: 命令CJKfamily{hei}
– 隶书: 命令CJKfamily{li}
– 幼圆: 命令CJKfamily{you}
现在在article ⽂档类下, 使⽤XeTEX 可直接使⽤计算机系统⾥更多的字体, 如雅⿊、魏体、舒体、华⽂琥珀等, 这时字体使⽤unicode/UTF-8 编码的, 并⽤XeLATEX 进⾏编译.
- 中文字号的设置
中⽂书籍与期刊论⽂的字体尺⼨按字号要求的, 基本字号都为五号字, 大小接近于11pt(实际为10.95pt). 中文字体的尺⼨还可通过命令:
ewcommand{字体命令名} {fontsize{字体尺寸} {行距}
selectfont}
重新定义. 例如:
CTEX 宏包提供了CCT 中⽂排版系统中的⼀些命令, 如:
zihao{代码}
ccwd %存放相邻两个汉字中心的距离, 包含字间距
ziju{字宽的倍数} % 修改wordsep
分别为字号、字宽、字距命令, 其中的“代码”共有16 个, 对应的字号如下:
注:上⾯⼆种⽅式下英⽂字体会随同字号命令作出相应的改变, 以使其与中⽂字体的⼤⼩保持⼀致.
样例如下图所示:
2.3 Latex中颜色定义与使用
- 颜色模式
由Uwe Kern 编写的颜⾊宏包xcolor 对早期颜⾊宏包color 功能作了改进与扩充,它⽀持多种颜⾊(编码) 模式(也称为⾊系), 可⽣存任意颜⾊, 从⽽实现对各种⽂本元素的前景(⽂字、线条等) 和背景分别着⾊. 颜⾊的编码模式格式为:
[颜色模式]{颜色谱}
其中颜色模式代表颜⾊的⼀种编码模式, 表⽰⼏种颜⾊的⼀种组合; 颜色谱代表⼀组介于0 和1 之间的数值, ⽤逗号分隔, 数值的个数与颜色模型中的颜⾊数⽬⼀致.
xcolor 宏包提供了最常⽤的三种颜⾊模型:
1. gray—灰度模式, 灰度是由⽩到⿊的⼀系列颜⾊的过渡程度. 例如浅灰⾊
lightgray 的定义为:
[gray]{0.75}.
2. rgb—三基⾊模式, 由红(red)、绿(green)、蓝(blue) 三种基本⾊按不同的⽐例混合⽽成. 例如棕⾊(brown) 的定义为:
[rgb]{0.75,0.5,0.25}
3. cmyk—四分⾊模式, 由青⾊(cyan)、红紫⾊(megenta)、黄⾊(yellow)、⿊⾊(black)四种标准⾊混合⽽成. 例如橄榄⾊(olive) 定义为:
[cmyk]{0,0,1,0.5}.
- 颜色的表示
xcolor 宏包为LATEX 提供了下⾯的颜⾊表⽰⽅式:
1. 基本的颜⾊名称: xcolor 使⽤上述三种颜⾊模式定义了17 种颜⾊及其名称:black(⿊), white(⽩), red(红), green(绿), blue(蓝), cyan(青), magenta(品红), yellow(黄); orange(橘), violet(紫罗兰), purple(紫), brown(棕), gray(灰), darkgray(深灰), lightgray(浅灰), olive(橄榄), pink(粉红). 原有的color 宏包仅提供前⾯的八种颜色.
2. 68 种由cmyk 模式定义的颜⾊和名称, 使⽤xcolor 宏包的选项dvipsnames就可调⽤其颜⾊定义⽂件dvipsnam.df.
甥敳慰ckage[dvips,dvipsnames]{xcolor}
3. 151 种由rgb 模式定义的颜⾊和名称, 使⽤xcolor 宏包的选项svgnames就可调⽤其颜⾊定义⽂件svgnam.df.
甥敳慰ckage[dvips,svgnames]{xcolor}
4. 317 种由rgb 模式定义的颜⾊和名称, 使用xcolor 宏包的选项xllnames就可调用其颜⾊定义⽂件x11nam.df.1
甥敳慰ckage[dvips,xllnames]{xcolor}
5. ⾃定义颜⾊. 由xcolor 提供的颜⾊定义命令定义, 格式如下:
definecolor{颜色名称}{模式}{颜色定义}
例如:
definecolor{mygray}{gray}{0.66}
definecolor{myblue}{rgb}{0,0,0.63}
definecolor{myred}{cmyk}{0,1,0.13,0}
6. 使⽤颜⾊表达式直接定义颜⾊. 最典型的颜⾊表达式为:
颜色!百分数1!颜色1!百分数2!颜色2...百分数n!颜色n
其中颜色为xcolor 中已经定义的颜⾊名称或⾃定义的颜⾊名称, !为分隔符, 百分数为[0,100] 区间上的实数, 表⽰颜⾊的混合⽐例. 颜⾊表达式的最后⼀项不是颜⾊名称, 其默认值就是white. 例如:
red!75!green
red!75!green!50!blue!25!gray
- 有关颜色的命令
根据需要, xcolor 提供了多种颜⾊命令.
1. 声明形式的颜⾊命令, 其作⽤对象是命令后⾯的⽂本元素(⽂本, 表格, 公式等),直到声明结束. 它有两种形式:
color{颜色}
color[模式]{定义}
其中模式为上⾯提到的gray, rgb, cmyk 中的⼀种, 颜色为上⾯提到6 种表示中的任何⼀种. 例如:
color[rgb]{1,0,1}ule{6cm}{1pt}
color{blue} 文本颜色为蓝色
color[rgb]{1,0,1}ule{6cm}{1pt}
⽂本颜⾊为蓝⾊
命令:
ormalcolor
将前景颜⾊切换到正常颜⾊(导⾔区结束时被激活的前景颜⾊, ⼀般为⿊⾊)
2. 参数形式的颜⾊命令, 其作⽤对象为命令后⾯指定的“对象”, 它也有两种形式
extcolor{颜色}{对象}
extcolor[模式]{定义}{对象}
这种命令等效于
{color{颜色} 对象}
{color[模式]{定义} {对象}
例如:
extcolor{green!15!blue!95}{LaTeX}
extcolor{orange}{%
begin{tabular}{|c|c|}hline
123 & 456
654 & 321 hline
end{tabular}}
3. 页⾯颜⾊命令, 命令
pagecolor{ 颜色}
pagecolor[ 模式]{ 定义}
将当前及后续页⾯的背景由默认的⽩⾊改为指定的颜⾊. 由于它是⼀个声明命令, 它的作⽤范围为下⼀个pagecolor 为⽌.
4. 彩⾊盒⼦命令, 有两种形式
colorbox{颜色}{对象}
colorbox[模式]{定义}{对象}
它将对象装⼊盒⼦中, 并将对象设置背景颜⾊. 彩⾊盒⼦的边沿与对象之间的距离由fboxsep 给出, 默认值为3pt. 例如:
colorbox{green!35!blue!75}{LaTeX}
colorbox{orange}{%
begin{tabular}{|c|c|}hline
123 & 456
654 & 321 hline
5. 彩⾊边框盒⼦命令
fcolorbox{边框颜色}{背景颜色}{对象}
fcolorbox[模式]{边框颜色定义}{背景颜色定义}{对象}
3.4 颜色谱
可以⽤下⾯的命令打印出xcolor 定义的三个定义⽂件中的颜⾊(⾊谱), 例如由:
enewcommand*{DefineNamedColor}[4]{%
extcolor[named]{#2}{ule{7mm}{7mm}}quad
exttt{#2}strut}
begin{center}Large Named colors in exttt{dvipsnam.def}
end{center}
begin{multicols}{3}
oindent
input{dvipsnam.def}
end{multicols}
就输出dvipsnam.def 中的68 种颜⾊.
最后补充一下数学公式中的字体与颜色(如下图所示):
本文参考文献:
【1】(美) Barbara Gastel Barbara Gastel Barbara Gastel Barbara Gastel,Robert A. Day Robert A. Day Robert A. Day ,任治刚(译)《科技论文写 作与发表教程 》(第八版,2018 )
【2】《LaTeX科技论文写作简明教程》(2015第一版,2019年第二次印刷)清华大学出版社