LaTeX的学习--字体
打开cmd,输入
texdoc xeCJK
可以查看xeCJK宏包的帮助
英文字体
字族(family)
- 罗马字体(默认):
\rmfamily
或\textrm{}
- 无衬线字体:
\sffamily
或\textsf{}
- 等宽字体:
\ttfamily
或\texttt{}
字系(series)
- 粗体:
\bfseries
或\textbf{}
- 常规字体:
\mdseries
或\textbf{}
字形(shape)
- 斜体:
\itshape
或\textit{}
- 小型大写:
\scshape
或\textsc{}
- 倾斜:
\slshape
或\textsl{}
- 直立:
\upshape
或\textup{}
中文字体
要使用中文字体,需要引入中文的宏包ctex。ctex中预先设置了下列六种字体:
- 宋体:
\songti
- 楷书:
\kaishu
- 黑体:
\heiti
- 隶书:
\lishu
- 幼圆:
\youyuan
- 雅黑:
\yahei
上述六种字体皆可以看成英文的字族系列,同样中文的粗体为\textbf{文字}
、斜体为\textit{文字}
。
使用系统字体
需要的宏包有xeCJK
、fontspec
。但ctex
宏包包含了xeCJK宏包,而xeCJK包含了fontspec宏包。故而只需要引用ctex宏包就行。
对于latex中,系统的中文字体与英文字体是分开设置与使用的。这样方便了文章中中英文使用不同的字体。使用时,可以在导言区中使用命令将其合并。例如:
\newcommand{\myfont}[1]{\heiti\sffamily #1}
上面的命令定义了一条新命令\myfont
,使用中文为黑体
,英文为无衬线
字体。
设置全文字体
\usepackage{ctex}
\setmainfont{字体名称} % 英文正文罗马字体
\setsansfont{字体名称} % 英文正文无衬线字体
\setmonofont{字体名称} % 英文正文等宽字体
\setCJKmainfont{字体名称} % 正文中文字体
\setCJKsansfont{字体名称} % 正文中文无衬线字体
\setCJKmonofont{字体名称} % 中文中文等宽字体
导入系统的中文与英文字体
% 英文
\newfontfamily{\自定义名称}{字体名称}
% 中文
\newCJKfontfamily[CJKfamily名称]\自定义名称{字体名称}[粗体,斜体设置]
例子:
% 导入英文的黑体
\newfontfamily{\enheiti}{SimHei}
% 导入中文的黑体
\newfontfamily[SimHei]\zhheiti{SimHei}[AutoFakeSlant=0.3, AutoFakeBold=3]
字体大小设置
在ctex宏包中,定义了一个字号命令\zihao{}
,括号里面为数字。可以为0、-0、1、-1、...
- 0 -- 初号
- -0 -- 小初
- 1 -- 一号
- -1 -- 小一
以此类推,最多为8.
自定义字体的大小
\fontsize{大小}{行距}\selectfont
其中单位默认为pt,行距一般设置比字体大20%。
字体颜色
其他
中文与英文之间距离调整
- 局部设置:
\CJKsetecglue{}
-- 括号里为距离,如果不填就默认为没有空格。\mbox{}
-- 例如 \mbox{中文}english 就不会产生空格。
- 全局设置:
\xeCJKsetup{ CJKecglue=距离, <key>=<value>, ...}
-- 如果距离不填默认全局中英文之间没有距离。
自定义命令
\newcommand{新命令}[参数数量][默认值]{定义内容}
- 新命令 ----------- 不能以\end开头,否则将报错。
- 参数数量 --------- 可选参数,用于指定该新命令所具有参数的个数,它可以为0~9之中的一个整数,默认值为0即没有参数。