记录一些关于latex字体配置
英文字体
使用fontspec宏包设置字体
\setmainfont{Times New Roman}
\setsansfont{DejaVu Sans}
\setmonofont{Latin Modern Mono}
\setsansfont{[foo.ttf]} % 直接使用当前目录下的字体文件
这里可以用可选参数强制设置每种字体对应的变体,比如如果要Times加粗后用Nimbus Sans L,斜体用Nimbus Roman No9 L则:
\setmainfont[BoldFont=Nimbus Sans L, ItalicFont={Nimbus Roman No9 L}]{Times New Roman}
大多数情况下,这样做是不必要的,因为fontspec宏包会自动选择对应的粗体和斜体。
英文的字体变换比中文方便许多,也有效许多,很多英文下有效的字体变换方法在中文下都没有用。
在英文下,临时改变英文字体可以用
\fongfamily{font}
\setmainfont{font}
配合{}的分组作用,可以临时改变字体。但是在中文下,这两种方法都失效。
字体大小
Command Nominal Point Size Exact Point Size
\tiny 5 5
\scriptsize 7 7
\footnotesize 8 8
\small 9 9
\normalsize 10 10
\large 12 12
\Large 14 14.40
\LARGE 18 17.28
\huge 20 20.74
\Huge 24 24.88
字体颜色
\usepackage{xcolor}
\textcolor{color}{words to be in color}
\color{color}{}
\colorbox[rgb]{r,g,b}{text} %背景颜色
中文字体
\setCJKmainfont{SimSun} % 语义和语法同fontspec
\setCJKsansfont{SimHei}
\setCJKmonofont{SimSun}
\punctstyle{kaiming} % 不使用台湾同胞们标点独占一格的行为
英文环境下改变中文字体的方法几乎都不能用,但是还有其他的方法可用
\CJKfontspec{font}
\setCJKfamilyfont{shortname}{fontname}
\CJKfamily{shortname} %配合\setCJKfamilyfont
英文下改变字体大小的方法,也能在中文下使用,此外,ctex包还提供了\zihao{}方法来改变字号。其中参数为阿拉伯数字,如\zihao{5}表示五号,如果前面加上-号,即\ziaho{-5},则表示小五号。
斜体加粗与下划线
英文下:latex
显示直立文本: \textup{文本}
意大利斜体: \textit{文本}
slanted斜体: \textsl{文本}
显示小体大写文本: \textsc{文本}
中等权重: \textmd{文本}
加粗命令: \textbf{文本}
默认值: \textnormal{文本}
下划线: \underline{文本}
字体族:
罗马 \textrm{}
无衬字 \textsf{}
打字机 \texttt{}
普通字体: \textnormal{}
或者 \normalfont
, 相当于\rmfamily\mdseries\upshape
中文下:
加粗下划线命令可以正常使用
latex中,中文没有斜体,所谓的斜体其实是"伪斜体",可以利用改变字体的方式来实现,例如
\setCJKmainfont[BoldFont = STZhongsong, ItalicFont = STKaiti]{STSong}
扩展
利用宏包ulem可以实现其他的标记
\usepackage{ulem}
\uline{text} 下划线
\uuline{text} 双下划线
\uwave{text} 波浪线
\sout{text} 删除线
\xout{text} 斜删除线
查看系统字体
使用 fc-list 命令可以列出系统中可以使用的字体. 使用参数 fc-list :lang=zh 可以单独列出支持中文的字体.