latex 对中文字体设置的一些解决
Posted litbro
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了latex 对中文字体设置的一些解决相关的知识,希望对你有一定的参考价值。
latex 对中文字体设置的一些解决
直接使用Xelatex编译带中文的文件时,会出现无法识别的错误,这是因为latex默认的环境不支持中文,这时可以使用CTex 宏集、ctex 宏包或xeCJK 宏包使得latex 支持中文输出。而设置中文字体可通过以下实现:
(英文默认字体为:Computer Modern Roamn [CMR],由Donald Knuth创建,但是不支持中文,需要设置成支持中文的字体 - {来自:Egg‘s Blog})
使用CTex宏集 ?ctex宏包
此部分内容来自CTex宏集手册
%在导言区使用以下代码,获得中文支持
document[utf8,a4paper,12pt] {ctexart}
%或者
usepackage {ctex}
设置完成后,中文默认字体为 宋体,如需改变,可以使用一下命令对中文字体进行设置,windowsnew 的字库中包括以下字体:
字体 | 命令1 | 命令2 |
---|---|---|
宋体 | songti | CJKfamily{zhsong} |
黑体 | heiti | CJKfamily{zhhei} |
仿宋 | fangsong | CJKfamily{zhfs} |
楷书 | kaishu | CJKfamily{zhkai} |
隶书 | lishu | CJKfamily{zhli} |
圆体 | youyuan | CJKfamily{zhyou} |
微软雅黑 | yahei | CJKfamily{zhyahei} |
注:
songti 是新定义的字体族转换命令,相当于
ewcommand* {songti}{CJKfamily{zhsong}}
zhsong 是新定义的字体族名字,相当于setCJKfamilyfont {zhsong}{SimSun}
,将SimSun名字变为zhsong。
不建议使用 extrm{}, extsf{}, exttt{} 来改变中文的字体,这样会与英文字体设置相混淆。
以下内容建议对latex有一定了解后再看:extrm{} 相当于默认字体,即中文宋体,英文罗马
extit{} 默认中文楷书,若前面定义过下文中文字体,则为定义字体,英文斜体
extsf{} 中文微软雅黑,英文无衬线体
exttt{} 中文仿宋,英文等宽字体
++ 注意到textsf 会改变中文标点符号
但常规的字体加粗如 extbf{} 可以互用。
使用xeCJK宏包
在始终的博客里,一份其实很短的 LaTeX 入门文档中提到,大多数情况下不推荐使用xeCJK宏包
知乎有相关讨论 处理中文时应该用ctex宏包还是应该用xeCJK宏包?
打个比方说的话,ctex包若是一辆车,xeCJK就是个轮子。轮子是车子的重要零件,但我还是建议你开车,把装轮胎的事交给工程师。
----- 来自知乎用户
在这里,对xeCJK宏包的字体设置进行简单说明,引入xeCJK宏包只要在导言区使用:
usepackage {xeCJK}
setCJKmainfont {font name}
% 设置正文罗马族的CJK字体,影响
mfamily和 extrm 的字体
setCJKsansfont {font name}
% 设置正文无衬线族的CJK字体,影响sffamily和 extsf 的字体
setCJKmonofont {font name}
% 设置正文等宽族的CJK字体,影响sffamily 和 extsf 的字体
windows下预装的中文字体有:
- Arial Unicode MS
- FangSong,仿宋
- KaiTi,楷体
- Microsoft YaHei,微软雅黑
- MingLiU,细明体
- NSimSun,新宋体
- PMingLiU,新细明体
- SimHei,黑体
- SimSun,宋体
只要将font name改为上述字体名称(中/英)即可
本文采用 BY-NC-SA协议,转载请注明出处。
以上是关于latex 对中文字体设置的一些解决的主要内容,如果未能解决你的问题,请参考以下文章
刚开始学习 LaTeX,CJK 宏包的设置有点问题,如何解决?
latex插入图片时设置caption的文字小于正文,可是默认的图片编号还是原来大小,该怎么解决?