2007年2月6日星期二

Latex中的字体

参考: http://forum.ubuntu.org.cn/viewtopic.php?t=36769

2.1 中文 Type1 字型

由於 Type1 字型的規格,只能容納 256 個空間,也就是只能放 256 個字,這在英文語系沒有問題,但中文光 Big-5 就有一萬多字,更不用說是其他更大的編碼字集了。很不幸的,TeX 的字型規格也是如此,只能容納 256 個字。

因此就有許許多多的前輩們想辦法使用 subfont 的觀念,把中文字打散,分裝在不同的 Type1 字型中,由數十個中文 Type1 字型組成一個完整的中文字型,經由 NFSS(New Font Selection Scheme) 的選字機制,來組合數十個分散的 Type1 字型成為一整個的中文字集,再透過字型定義檔 *.fd 來取用字型。

2.2 中文 CID-Keyed 字型

由於 Type1 字型實在是不太適合用於中文,於是 Adobe 公司,另外研發了 CID-Keyed font 字型規格,把字型的實體資料集中在一個檔案內,再另外使用索引、對應的方式來取用所需要的字型,這樣就不會受限於 256 個字的限制了。他仍然是和 Type1/TTF 一樣是向量字,因此用來製作 PDF 檔,在顯示上不會如 pk 點陣字型那麼醜。

除了字數不受限的好處外,CID-Keyed font 的精妙處,就在於「索引、對應」,由於用索引的方式取字,因此,我們一般文字處理上要用到的 cut&paste&search 就可以很容易的達成。這在使用 subfont 方式的中文 Type1 及 pk 字型就沒有這個好處。而且,由於可以索引、對應,也代表著,實體字型資料不必一定要放在檔案中,可以放在使用者的系統中就行了,就像現在的 HTML 格式一樣,可以不必帶著字型跑。這對 ps/PDF 格式尤其重要,因為這些格式雖然顯示上很精緻,但如果嵌入字型的話檔案大了些,在網路傳輸上不很方便。

對 TeX/LaTeX 系統而言,這個好處並不會帶來嚴重的缺失,因為視使用場合,也是可以把部份,甚至全部的字型給嵌入檔案中的,不像 HTML 格式,目前要內嵌字型的話,標準還不統一,IE 可以做到,但其他 web browser 就無法閱覽了。像這篇文章的 PDF 格式中,標題的顏楷體就是嵌入王漢宗博士捐贈的 TTF(CID TruType),仍然可以 cut&paste&search。

如果各位對這些字型檔規格有興趣,可以到 Adobe 公司去下載 spec 規格檔來研究,這些規格都是公開的格式。

2.3 中文 TTF 字型

這是目前使用上相當普及的字型規格,也因此,許多 hacker 們的腦筋都會動到 TTF 上,例如 ttf2pt1 可以將 TTF 轉成 Type1 字型來用,而 DVIPDFM$x$2.2 及較新版的 GhostScript 也可利用 TTF 當成是 CID-Keyed font 來使用。甚至以往的 pk 點陣字,也是由 ttf2pk 來由 TTF 轉出來的。

如果想使用 dvips 來產生 ps 檔,那這裡還要製作中文 Type1 字型。當然,一般使用的話,應該是可以不必製作中文 Type1 了,直接由 dvipdfmx 抓取系統上的 TTF 就可以了,但由於有時要和一些處理 eps 的 packages 配合,例如 PSTrick,所以這裡一併把 Type1 字型製作出來。

給 TeX/LaTeX 處理的話,只需要 *.tfm 檔就可以運作,生成 *.dvi 檔。但要由 dvips, dvipdfmx, pdflatex 處理的話,要有實體的字型才行,因為他們的輸出不是 ps 檔,就是 PDF 檔。


* *.tfm (TeX Font Metric, 字型描述檔)
為二位元檔,TeX 有這個字型描述檔就可以產生 *.dvi 檔,但其中是沒有真正的字型實體資料在裡頭,得由其他的輔助工具來完成。任何型式的字型,要給 TeX 使用前,都一定要先產生這個 tfm 檔,而且 TeX 只要有這個 tfm 檔就可以運作。

* *.afm (Ascii Font Metric)
這也是字型描述檔,但是以純文字的格式存在,要給 LaTeX 使用的話,可以由 afm2tfm 來產生 *.tfm 檔。一般的 Type 1 字型會只附 afm 檔,而沒有 tfm 檔。TTF 的話,可以由 ttf2tfm 來產生。

* *.mf
這是 Knuth 教授設計的 Metafont source,他本身是一種 outline font,但由於顯示/成形(render/raster)較複雜,目前不適合像 Type 1/TTF 一樣 on-the-fly 使用,是另產生 bitmap 形式 *.*gf (generic font) 再由 gftopk 產生 pk 字型來使用的。Metafont 的可執行檔就是 mf,mf 在 font-makeing mode 時可以產生 tfm 檔。MetaPost4.1 也是可以用來製作字型,他的延伸檔名通常是 *.mp,可執行檔則是 mp 或 mpost。

* *.pfa (POSTSCRIPT Font Ascii)
這是 POSTSCRIPT Type 1 字型檔,但是以純文字的格式存在,可由 t1asm 來轉成 binary 格式(即 *.pfb)。

* *.pfb (POSTSCRIPT Font Binary)
和 *.pfa 同,但是以 binary 格式存在。兩種格式目前都可以直接使用。

* *.*pk (packed font)
這是給 dvi viewer/printer/dvips 使用的點陣字,以便真正產生字型嵌入 ps 檔中或供 printer 使用。當然,這個 pk 字,可能是由 Metafont、Type 1 或 TTF 轉成的。

請注意這裡的表示方法,pk 字型是由其解析度來成為檔名的一部份的,例如 600 dpi 的 pk 字型,實際上的檔名是 *.600pk(gf 字型的表示法亦同)。

* *.fd (font description)
這是給 LaTeX 找字型用的字型定義檔。

4 条评论:

匿名 说...

gjkzdowba
chan luu オンライン
chan luu チャンルー
アグ
アグ
ugg

lgdsmmcyn
[url=http://www.snowbootsforwinter.com/]アグブーツ[/url]
[url=http://www.ilovetheboots.com/] ugg ムートンブーツ[/url]
[url=http://www.chanluuoutletforjp.com/]chan luu チャンルー[/url]
[url=http://www.allthesnowboots.com/]アグ モカシン[/url]
[url=http://www.chanluuoutletjapan.com/]chan luu ブレスレット[/url]

havacyuud
http://www.snowbootsforwinter.com/ アグブーツ
http://www.chanluuofficialsjp.com/ chan luu ストール
http://www.japanwinterboots.com/ アグ5825
http://www.jpbootsfor2012.com/ uggブーツ
http://www.chanluuoutletjapan.com/ chan luu チャンルー

匿名 说...

http://go-organic.com.au/node/44965

匿名 说...

Hello. And Bye. Thank you very much.

匿名 说...

Hello. And Bye. Thank you very much.