码迷,mamicode.com
首页 > 其他好文 > 详细

latex 对中文字体设置的一些解决

时间:2019-12-20 20:17:18      阅读:611      评论:0      收藏:0      [点我收藏+]

标签:通过   license   utf8   win   中文字体   lang   mode   inf   ima   

latex 对中文字体设置的一些解决

直接使用Xelatex编译带中文的文件时,会出现无法识别的错误,这是因为latex默认的环境不支持中文,这时可以使用CTex 宏集ctex 宏包xeCJK 宏包使得latex 支持中文输出。而设置中文字体可通过以下实现:
(英文默认字体为:Computer Modern Roamn [CMR],由Donald Knuth创建,但是不支持中文,需要设置成支持中文的字体 - {来自:Egg‘s Blog})


%在导言区使用以下代码,获得中文支持
\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 是新定义的字体族转换命令,相当于\newcommand* {songti}{\CJKfamily{zhsong}}
zhsong 是新定义的字体族名字,相当于\setCJKfamilyfont {zhsong}{SimSun},将SimSun名字变为zhsong。

不建议使用 \textrm{},\textsf{},\texttt{} 来改变中文的字体,这样会与英文字体设置相混淆。
以下内容建议对latex有一定了解后再看:

\textrm{} 相当于默认字体,即中文宋体,英文罗马
\textit{} 默认中文楷书,若前面定义过下文中文字体,则为定义字体,英文斜体
\textsf{} 中文微软雅黑,英文无衬线体
\texttt{} 中文仿宋,英文等宽字体
技术图片
++ 注意到textsf 会改变中文标点符号

但常规的字体加粗如 \textbf{} 可以互用。


打个比方说的话,ctex包若是一辆车,xeCJK就是个轮子。轮子是车子的重要零件,但我还是建议你开车,把装轮胎的事交给工程师。
----- 来自知乎用户

在这里,对xeCJK宏包的字体设置进行简单说明,引入xeCJK宏包只要在导言区使用:

\usepackage {xeCJK}

\setCJKmainfont {font name}
% 设置正文罗马族的CJK字体,影响\rmfamily和\textrm 的字体
\setCJKsansfont {font name}
% 设置正文无衬线族的CJK字体,影响\sffamily和\textsf 的字体
\setCJKmonofont {font name}
% 设置正文等宽族的CJK字体,影响\sffamily 和 \textsf 的字体

windows下预装的中文字体有:

  • Arial Unicode MS
  • FangSong,仿宋
  • KaiTi,楷体
  • Microsoft YaHei,微软雅黑
  • MingLiU,细明体
  • NSimSun,新宋体
  • PMingLiU,新细明体
  • SimHei,黑体
  • SimSun,宋体

只要将font name改为上述字体名称(中/英)即可

本文采用 BY-NC-SA协议,转载请注明出处。

latex 对中文字体设置的一些解决

标签:通过   license   utf8   win   中文字体   lang   mode   inf   ima   

原文地址:https://www.cnblogs.com/LitBro/p/12074820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!