Latex之安装GBK字体
? ? Latex下支持中文的方式有多種,其中之一就是應用CJK宏包。當Tex發行版,如MikTex,安裝CJK后,可以使用中文。但是,發行版中包含的字體較少,例如MikTex,當安裝完CJK-Fonts后,只支持UTF-8編碼的宋字體等。為了使用更多的中文字符集及其字體,需要手動安裝之。本文主要介紹如何在Windows 7中為MikTex2.9安裝GBK字體。
? ? 安裝額外的字體過程與安裝額外的宏包類似,也需要在自建的texmf目錄下安裝字體文件。關于如何安裝額外的宏包可參考以前的博客。只不過安裝字體文件更加復雜。
1. 建立字庫定義文件*.fd
? ? 打開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}
? ? 這些Tex命令中參數,即#1~#7的具體含義如下:
? ? 參考MIKTEXPATH\doc\latex\base下文檔fntguide.dvi,每種文本字庫(text font)都有5個屬性,分別是encoding, family, series, shape, size。以上命令\DelareFontShape就是定義這些屬性。這里的C19表示CJK所使用的GBK字庫的編碼(encoding)。參考經典文檔clatex.pdf(吳凌云和王磊. "中文LaTeX擴展安裝指南" ),七個參數的定義為:
- #1,字族(family),這里每個*.fd文件定義一種字族,分別取song, fs, kai, hei, li, yuan。例如,對應著CJK環境定義:\begin{CJK*}{GBK}{song};
- #2,字系(series),這里可以取:m(medium weight)和bx(bold extended),分別表示正常和加粗字體。其中bx對應著latex文檔中\bf或\textbf命令的使用字體;
- #3,字形(shape),這里可以取:n(normal/upright),sl(slant)和it(italic),分別表示正常,傾斜和斜體。例如,it對應著latex文檔中\it或\textit命令的使用;
- #4,適用的字號(size),一般認為所有字號都適用,設置為“-”;
- #5,這里一般取CJK和CJKb,其中CJKb表示用另外一種字體代替,例如上面的{bx}{n}的字庫文件就用{m}{n}的字庫文件gbksong代替,只是多了一個操作\CJKbold,用來加粗;
- #6,字庫文件名字,CJK會在gbk#6后面再加上字庫的編號,以作為子字庫的名字(subfont name)。它們會對應于MiKTeX的*.tfm文件,例如gbksong05.tfm,gbkkaisl02.tfm等,可以參考后面的目錄texmf\fonts\tfm\chinese下面的各個子目錄文件;
- #7,CJK生成加粗字體的一種預處理方法:通過平移字模后重疊得到。但效果并不太好,特別是放大后可以看到明顯的鋸齒痕跡。如果希望用此功能則設置為\CJKbold,否則空著。
? ? 建立其它字體的fd文件時,只要將示例中紅色“song”的部分換成其它字體的名字即可,如“hei”等。fd文件的作用是給MikTex指出了tfm等文件的名字,建立了兩者的連接。因此,下面要做的工作是將tfm等文件放在指定位置。
2. 安裝字庫文件
? ? 接著需要安裝字庫文件。但安裝之前,需要獲得字庫文件。一般情況下,有兩種方式可以獲得:(a)從指定網站上下載已經編輯好的字庫文件;(b)使用gbkfonts等工具自己制作字庫文件。本文使用了第一種方法,即從網絡上下載字庫文件。
? ? 從ftp.ctex.org下載字庫文件/pub/tex/fonts/type1/font-chs.zip,解壓到font-chs文件夾。然后按照如下方式將解壓的文件復制到texmf的子目錄下:
- 將font-chs/fonts/tfm/chinese/下所有子目錄和*.tfm文件都拷貝到相應的texmf/fonts/tfm/chinese/目錄下。這些是各個字體/字族(song, fs, kai, hei, li, you)的*.tfm文件,分別有gbk#6??.tfm和gbk#6sl??.tfm兩種,對應這*.fd文件中的定義。其中#6對應前面所說的參數 #6,而??是這些子字庫文件的編號,取十進制01~94;
- 將font-chs/fonts/afm/chinese/下所有子目錄和*.afm文件都拷貝到相應的texmf/fonts/afm/chinese/目錄下;
- 將font-chs/fonts/type1/chinese/下所有子目錄和*.pfb文件都拷貝到相應的texmf/fonts/type1/chinese/目錄下。與*.tfm相對應的命名規則;
- 將font-chs/dvips/chinese/map/下的兩個*.map文件拷貝到相應的texmf/fonts/map/dvips/chinese/map/下。這兩個文件為文本文件,實際上規定了前面*.tfm和*.pfb的對應關系。其中可以從文件gbk-t1.map看到,gbk#6??.tfm文件的字體與gbk#6??.pfb定義的相對應;而gbk-t1sl.map規定,gbk#6sl??.tfm文件的字體是由gbk#6??.pfb定義的字體作一個傾斜操作得到的。
3. 配置使用環境
? ? 進入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了, 還是配置不好中文”。
總結
以上是生活随笔為你收集整理的Latex之安装GBK字体的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超级计算机紫金,E级超算,下一张黑洞照片
- 下一篇: F28M35 驱动外部SRAM 调试小结