Latex 环境下“中文字体”的使用

 

Latex 环境下“中文字体”的使用

      使用CTex自带编辑器WinEdt,在该环境下如何使用中文字体呢?作为一个菜鸟,折腾了好几天,最终基本解决了这个问题。现在整理下,分享给后来者。

       对于使用中文字体,网上的很多教程是CCT、CJK和TY,不过,CCT已经不建议使用,而CJK、TY这些都已经过时了。而且这些方案中使用的中文字体就那么几种,想使用更多的字体,要单独去安装字体,无法直接调用系统安装的字体,这样无疑会很麻烦。最终网上找到的成熟方案是:XeLaTeX。

 

一、首先,从头讲起,基于LaTeX2对于字体的调用方式:

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. {\字体名称 正文内容}  
       使用CTex宏包调用的实例:

 

1.新建文件,键入下面代码

 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. \documentclass{article}  
  2. \usepackage{ctex}  
  3.   
  4. \begin{document}  
  5.   
  6. 中文宏包测试               \par % "\par"表示回车换号  
  7. {\songti   这是宋体的样式} \par  
  8. {\heiti    这是黑体的样式} \par  
  9. {\fangsong 这是仿宋的样式} \par  
  10. {\kaishu   这是楷书的样式} \par  
  11. %{\lishu   这是隶书的样式} \par %CTeX的手册中是支持隶书和幼圆的,  
  12. %{\youyuan 这是幼圆的样式} \par %但是不知是何原因编译有问题  
  13.   
  14. \end{document}  
2.点击保存,这里这里保存类型建议以后一直选择“UTF-8”

 

注意;保存类型建议以后一直选择“UTF-8”,因为一方面xeCJK格式的汉字字体将无法显示,另一方面, GBK 编码是 ctex 宏包的缺省模式,使用 XeTEX 引擎的情况下总是内部使用 UTF-8 编码,所以不必使用这个选项,但这并不妨碍编写 GBK 编码的文档。

3.选择XeLaTeX编译方式,点击查看

4.效果如下图:

二、基于XeLaTeX的中文字体的使用

       XeLaTeX可以直接调用系统中安装的字体,但是字体的名称并不是我们通常见到的那样,比如:华文隶书 在系统中是“STLiti”。而如何找到这种对于关系呢?

      开始->运行->输入“CMD”,弹出命令窗口:输入:"fc-list",回车,就可以看到系统中所有安装字体的这种对于关系。当然,显示的原因,可能看不全,所有不如把它保存下来,方法是命令窗口中输入:“fc-list>>c:font.txt”(这里假设存入到D盘的font.txt文件下)。

      注意笔者按照网上的两种方法:“fc-list:lang=zh-cn”(查看所有安装的中文字体)或者“fc-list:lang=en”(查看所有安装的英文字体),一直无法查看,在这点上折腾了很长时间。所以,如果你的电脑上可以按这两种方法查看那样最好,如果不能,不妨就用我的方法。当然,如果你搞清楚了其中的原因也欢迎留言。

     现在有了这种对应关系,那么就可以继续了。在导言区对全局的字体进行设置:

        然后便是对于其它字体的设置和使用,需要注意的是指令的名称是可以自己定义的,但是系统字体名称却一定要按照上面查出来了的字体名称

下面是一个完整的例子:

 

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. \documentclass{article}  
  2. \usepackage{ctex}  
  3.   
  4. \setmainfont{Times New Roman}%设置Times New Roman为默认的英文字体  
  5. \setCJKmainfont{SimSun}      %设置宋体为默认的中文字体  
  6.   
  7. %设置要使用的英文字体  
  8. %\newfontinstance{\courier}   {Courier}   %使用Courier字体  
  9. \newfontinstance{\gramond}   {Garamond}   %使用Garamond字体  
  10.   
  11.   
  12. %设置要使用的中文字体  
  13. \setCJKfamilyfont{mhwxk}{STXingkai} %华文行楷  
  14. \newcommand{\stxk}{\CJKfamily{mhwxk}}  
  15.   
  16. \setCJKfamilyfont{hwlsh}{STLiti} %华文隶书  
  17. \newcommand{\sthwls}{\CJKfamily{hwlsh}}  
  18.   
  19.   
  20. \begin{document}  
  21. %{\courier This a Courier Style} \par  
  22. {\gramond This a Garamond font style} \par  
  23. {\stxk   这是华文行楷字体的式样} \par  
  24. {\sthwls 这是华文隶书字体的式样} \par  
  25. \end{document}  

       注意

        1.以上面的程序代码为例,注释掉的部分是使用Courier字体,如果去掉注释,由于我的电脑上没有这样的字体,于是就出来了这样的情况:编译的时候没有错误,却无法生成PDF文件,进而也就无法查看,所以,出现编译没有错误,但是生成不了PDF文件时要考虑是不是本机没有这种字体。这一点一定一定要引起足够的重视!!!

       2.对于系统中查到的字体名称,可能考虑到转义字符原因,有些是不能直接使用的,要把“\”去掉才能正确使用。

例如:系统中查到一种字体:“ FZXiaoBiaoSong\-B05S,方正小标宋简体”如果这样使用就是错误的:

 

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. \setCJKfamilyfont{MyCJKfzxbs}{FZXiaoBiaoSong\-B05S} %方正小标宋简体  
  2. \newcommand{\fzxbs}{\CJKfamily{MyCJKfzxbs}}  
正确的使用方法是要去掉“\”的,下面是正确的示例,注意对比:

 

 

[plain] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. \setCJKfamilyfont{MyCJKfzxbs}{FZXiaoBiaoSong-B05S} %方正小标宋简体  
  2. \newcommand{\fzxbs}{\CJKfamily{MyCJKfzxbs}}  


 

 

参考资料:

[1].在xeLaTeX和CTeX中使用本地系统字体的方法

[2].《CTeX宏包说明》

posted @ 2017-02-21 00:47  Tsingke  阅读(8640)  评论(0编辑  收藏  举报