Latex下支持中文的方式有多种,其中之一就是应用CJK宏包。当Tex发行版,如MikTex,安装CJK后,可以使用中文。但是,发行版中包含的字体较少,例如MikTex,当安装完CJK-Fonts后,只支持UTF-8编码的宋字体等。为了使用更多的中文字符集及其字体,需要手动安装之。本文主要介绍如何在Windows 7中为MikTex2.9安装GBK字体。
安装额外的字体过程与安装额外的宏包类似,也需要在自建的texmf目录下安装字体文件。关于如何安装额外的宏包可参考以前的博客。只不过安装字体文件更加复杂。
打开MikTex的安装目录,记为MIKTEXPATH,本文目录为:MIKTEXPATH=E:\Program Files\MikTex2.9\。注意观察MIKTEXPATH下tex\latex和Fonts两个文件夹的目录结构,即MikTex的TDS规则。然后仿照目录MIKTEXPATH\tex\latex\cjk\GB,建目录texmf\tex\latex\cjk\GB(其中texmf是MikTex的本地TDS目录)。仿照MIKTEXPATH\tex\latex\cjk\GB目录下的c19song.fd文件,分别在texmf\tex\latex\cjk\GB目录中建宋体、仿宋、楷体、黑体、隶书、幼圆字体的*.fd文件,分别命名为:c19song.fd, c19fs.fd, c19kai.fd, c19hei.fd, c19li.fd和c19you.fd。以文件c19song.fd为例,其中非注释部分为:
%... \def\fileversion{4.3.0} \def\filedate{1999/06/20} \ProvidesFile{c19song.fd}[\filedate\space\fileversion] %... \DeclareFontFamily{C19}{song}{\hyphenchar \font\m@ne} \DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbksong}{} \DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbksong}{\CJKbold} \DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbksongsl}{} \DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbksongsl}{\CJKbold} \DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{} \DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbksongsl}{\CJKbold} \endinput |
这些命令的含义现解释如下:
文件中命令\DeclareFontFamily和\DeclareFontShape的定义可以总结为:
\DeclareFontFamily{C19}{#1}{\hyphenchar \font\m@ne} \DeclareFontShape{C19}{#1}{#2}{#3}{<#4> #5 * gbk#6}{#7}
参考MIKTEXPATH\doc\latex\base下文档fntguide.dvi,每种文本字库(text font)都有5个属性,分别是encoding, family, series, shape, size。以上命令\DelareFontShape就是定义这些属性。这里的C19表示CJK所使用的GBK字库的编码(encoding)。参考经典文档clatex.pdf(吴凌云和王磊. "中文LaTeX扩展安装指南" ),七个参数的定义为:
建立其它字体的fd文件时,只要将示例中红色“song”的部分换成其它字体的名字即可,如“hei”等。fd文件的作用是给MikTex指出了tfm等文件的名字,建立了两者的连接。因此,下面要做的工作是将tfm等文件放在指定位置。
接着需要安装字库文件。但安装之前,需要获得字库文件。一般情况下,有两种方式可以获得:(a)从指定网站上下载已经编辑好的字库文件;(b)使用gbkfonts等工具自己制作字库文件。本文使用了第一种方法,即从网络上下载字库文件。
从ftp.ctex.org下载字库文件/pub/tex/fonts/type1/font-chs.zip,解压到font-chs文件夹。然后按照如下方式将解压的文件复制到texmf的子目录下:
进入MiKTeX的命令环境,如果使用WinEdt,则直接点击工具栏的“Command Prompt”图标,进入DOS命令框;或者直接启动CMD,记得使用管理员权限打开。然后执行命令:initexmf --edit-config-file updmap,在打开的文件updmap.cfg中添加两行:
Map gbk-t1.map
Map gbk-t1sl.map
保存并关闭这个文件。updmap.cfg文件位于 "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.6\miktex\config"目录下,一般都不直接打开修改,都会通过命令的方式打开修改。
然后在CMD命令框中分别执行命令:
initexmf -u
initexmf --mkmaps
initexmf -u
本文参考了两篇文章:(a)CTEX论坛中的“安装CJK之GBK(MiKTeX 2.6)”;(b)水木社区的“用了半年miktex了, 还是配置不好中文”。