[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [DOC] Poorman's Chinese Type1 font for CJK-latex



On Tue, May 15, 2001 at 05:22:52AM +0800, Edward G.J. Lee wrote:
> [...]
>   2. 轉出的不是 CJK 編碼,無法直接給 cjk-latex + dvips 使用,要在 map 檔
>   中加入適當的 enc 轉碼檔,否則只能給 pdflatex 使用。這個部份還要研究一下
>   ,如果有朋友知道的話,請提供您使用的 enc 檔,謝謝!

無需 enc 檔. 當 ps 顯示一個中文字符時, 它需要兩個數: 該字符所在 subfont 及在
該 subfont 內的 index. 這兩個數都是 cjk-latex 提供的, 與 ttf2xxx 無關. ps 會
在相應 subfont 的 Encoding array 內根據 index 找到相應的 glyph name. 再根據
glyph name 在 CharString dictionary 內找到構造該 glyph 的方法. 可見 glyph name
不過是一個橋樑, 只要內部自恰就沒問題. 重要的是每一個 subfont 包含相同的 glyph
並且順序相同. 這一點 ttf2pfb/chpfb 和 tt2pt1 生成的 pfb 文件的確是相同的, 都
可以直接給 cjk-latex + dvips 使用.

有一點值得注意的就是 foka 兄遇到的問題, 因為 ttf2pt1 不允許用戶控制 Fontname,
它用的名字來自 ttf, 可能出乎您的意料.

>   * big5 的部份,仍然轉不出 plane 24,就是日文的部份。

不僅是 big5 有問題, gb, gbk 都有, 只不過 big5 最多. 附上我為 ttf2pt1 的
chinese maps 作的三個 patch. 其中 big5 和 gbk 根據 glibc 2.2.3 的 charmap,
gb2312 根據 glibc 及我為 XFree86 4.1 寫的補丁. 老兄可以與您的修整對照一下
看有什麼出入.

>   比較起來,轉出的 pfb 的品質以 1. 較佳。兩者目前都還無法用于 TTC。而且

這是中文 ps 字體的老問題了. ttf2pfb/chpfb 和 tt2pt1 的最大區別在于前者轉出
的 pfb 基本沒有 hint 信息, 而後者有. 理論上說 hint 有助于改善顯示的品質, 特
別是在小字體時. 可是對中文字體卻不然, 反而會大大降低顯示的品質, 是否可以改進
hint 使其適用于中文字體我就不知道了. 一個簡單的解決辦法是關掉 autogeneration
of hint:   tt2pt1 -Oh ....

順便說一下, foka 兄提到的 ft2 缺省關掉 bytecode 解釋器應該與此無關. 那是
rasterazation 時才會用到的, ttf2pfb/ttf2pt1 都只用到了 outline.

以下是我的幾點建議/想法,

1. 鑒于 ttf2pfb/chpfb 已經停止發展, 而 ttf2pt1 的開發仍很活躍, 建議使用
ttf2pt1.

2. 關于 pdflatex, 建議直接使用 ttf 字體, 不要經過 pfb. 就是 Adoal 兄多次
提及的方法. 其好處在于避免龐大的 pfb 字庫, 生成的 pdf 文件比由 pfb 生成的
小一半或更多, 品質只好不壞. 缺點在于低版本的 pdflatex 可能不工作.

該方法需要 enc 文件, 附上我為 tt22pt1-3.3.3 寫的一個 patch, 使其在生成 .t1a
和 .afm 的同時也生成一個 .enc 文件.

將 *.tfm copy 到 $TEXMF/fonts/tfm/CJK/
   *.enc copy 到 $TEXMF/dvips/CJK/

在 $TEXFM/dvips/config/ 中增加一個 map file 內容如下:
   %(以 gkai00mp.ttf 為例)

   gkai01 <gkai01.enc <gkai00mp.ttf
   ...
   gkai32 <gkai32.enc <gkai00mp.ttf

在 $TEXFM/pdftex/config/pdftex.cfg 添加
   map +xxx (將 xxx 換成您的 map file 名字).

3. 關于放棄 ttf2pk 而採用 pfb, 我覺得應該慎重. dvips ps font partial download
臭名昭著的 buggy. 轉出來的 pfb 字體可能在某些版本 dvips 下工作, 另一些下不工
作. 這將是非常令人頭疼的問題. 當然可以用 -j0 關掉 partial download, 但是會
導致龐大的 ps 文件. 如果不考慮 ps -> pdf 的轉換 (我們已經有了前述更好的方法
產生 pdf), 僅以 ps 而言, pfb 到底比 pk 字體好多少? 恐怕還需仔細研究.

4. 目前所有的方法, 最終都導致一個內嵌字體的文件. 與使用外部字體相比, 浪費
空間. 現在 gs (after patch) 已經提供中文 CID/ttf 字體的支持. 能夠讓 tex
產生的文件使用外部中文字體嗎? 恐怕沒有可能, 因為 tex 本身是不能改的. 所以
從長遠角度, 我們恐怕應將眼光移向別處, omega?

Regards,
rigel
-- 
| This message was re-posted from debian-chinese-gb@lists.debian.org
| and converted from gb2312 to big5 by an automatic gateway.

Attachment: ttf2pt1-3.3.3-enc.patch.bz2
Description: BZip2 compressed data

Attachment: ttf2pt1-chinese-3.3.2-cubig5.patch.bz2
Description: BZip2 compressed data

Attachment: ttf2pt1-chinese-3.3.2-cugbk.patch.bz2
Description: BZip2 compressed data

Attachment: ttf2pt1-chinese-3.3.2-cugb.patch.bz2
Description: BZip2 compressed data


Reply to: