Re: 請問如何在latex/CJK使用CID字型?

看板FreeBSD作者時間21年前 (2004/08/31 19:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/8 (看更多)
[這個主題應該是在 TeX 版討論比較恰當,但由於和 FreeBSD ports 的 安排的有關,因此就在這裡回應了] 以下是我個人目前使用的狀況及看法,僅供參考。 ※ 引述《monkey.bbs@tropic.med.kmu.edu.tw (大猴子 :))》之銘言: > ※ 引述《Edward.bbs@bbs.sayya.org (L.G.J.)》之銘言: > : 直接使用系統上的 TTF 就可以不必用到 Type1。這樣有個好處,就是 > : X 和 LaTeX 共用字型,應該算是比較經濟的方式。 > : 有什麼特殊情況需要用到 CID-Keyed font 嗎? > 謝謝您的回答 :-) > 我是看到您寫的"我的CJK",裡面說到目前許多軟體可以把TTF字型當成CID-keyed字型使用 > 但是我連CID-keyed都不會用,所以想要先知道要怎麼使用CID-keyed字型 > 其實我也是希望能夠直接使用TrueType字型 是的,這是最經濟的方式,就是 X + gs + print-tools + LaTeX 通通 使用 TTF,然後該模擬成什麼規格的字型再去模擬。 目前兩種版本的 gs 都可以直接使用 TTF。但對 CJK TTF 的支援是由日 本朋友寫出來的 code,GNU 和 AFPL 的版本的 gs 不盡相同。一般使用 的話,個人是會傾向 GNU 版本的 gs,因為相對的工具及一般性的支援 可能會比較多,只是對新一點的東西的支援會比較少。 除非是特殊的品質或軟體本身的需求,一般使用似沒有必要把 CID-Keyed fonts 再弄出來使用,目前我們可以 free 拿得到的 CID-Keyed font, 品質不見得比 free TTF 好,使用、設定上也不很方便,而將來的趨勢應 該是會往 OpenType 這個方向走。 目前 AR5/6 所附的中文字型都是 OpenType 規格的 CID-Keyed font( CID OpenType)。他可以直接丟給 X 使用,但其他的軟體不一定能使用, 例如 OO.o/LaTeX。 Un*x 的 TeX 要使用 [CID]OTF 要安裝另外的工具來產生必要的 metric 檔[1]及改用 cvs version 的 dvipdfmx,總之,工具還不算是很成熟。 另外,最重要的,當然是字型授權的問題,我們目前並無完全 free 的 CID/OTF 字型[2]。 [1] http://www.lcdf.org/type/ [2] 這是發展中的版本:http://cle.linux.org.tw/fonts/wangfonts/devel > 就我目前的理解,是不是: > 1. bg5latex只要有該字型的tfm以及fd檔,就可以轉換tex文件? 是的,在閱覽或轉出 ps/pdf 檔之前不必實體字型。 > 2. 用來轉換dvi格式的工具,例如dvipdfm或者dvips可以直接使用TTF字型? dvipdfm/dvips 無法直接使用 (CJK)TTF。要直接使用 CJK TTF,目前一 定要使用 dvipdfmx 或 pdflatex(無 copy&paste&search 功能)。 雖然有這樣的限制,但 dvipdfmx 製作出來的中文 PDF 檔,有 copy& paste&search 的功能,又可以不必內嵌字型,對於中文使用者而言,光 這些商業級的功能就值回票價了。而且,這個機制可以當成其他場合的 後端,例如 SGML/XML 的格式轉換。 > 3. 您的文章裡面介紹用mkfont.sh來產生字型資料,但他所產生的tfm以及fd檔 > 是不是用在轉換後的Type1字型的? > 如果是這樣的話,要怎麼產生給TTF字型用的tfm與fd呢? 通用,就是這些 tfm/fd 可以給同一字型的 Type1/TTF 共同使用。 > 目前我的 /usr/local/share/texmf/tex/latex/CJK/Bg5/c00kai.fd 的內容 > \def\fileversion{4.5.2} > \def\filedate{2003/03/28} > \ProvidesFile{c00kai.fd}[\filedate\space\fileversion] > \DeclareFontFamily{C00}{kai}{\hyphenchar \font\m@ne} > \DeclareFontShape{C00}{kai}{m}{n}{<-> CJK * arb5kai}{} > \DeclareFontShape{C00}{kai}{bx}{n}{<-> CJKb * arb5kai}{\CJKbold} > \endinput > 我的 /usr/local/share/texmf/fonts/tfm 裡面也有 arb5kai01.tfm到55的檔案 > 可是轉換出來的文章 http://monkey.netclub.kmu.edu.tw/latex/example10.pdf > 放大後依然可以看到鋸齒(印出來還OK) edt1023:~$ pdffonts example10.pdf name type emb sub uni object ID ------------------------------------ ------------ --- --- --- --------- [none] Type 3 no no no 12 0 EHPRXN+CMBX12 Type 1C yes yes no 10 0 NJCSUE+CMR10 Type 1C yes yes no 38 0 很明顯的,是使用了 pk 點陣字所轉成的 Type3 字型,所以放大後會有鋸 齒。這是正統的方式,只是目前 pdf 格式的流行,有點跟不上腳步而已。 因為 pdf 格式的檔案,要使用向量字型,在螢幕低解析度顯示時才會好看, 顯示速度也才會快。 > 請問要怎麼要才能產生如您的範例一樣漂亮的字型出來 > 如果想要使用王教授的TTF字型,要怎麼設定呢? 就以我那個 example10.tex 為例(請對照你所安裝 teTeX 的相對路徑): http://edt1023.sayya.org/tex/latex123/example10.tex http://edt1023.sayya.org/tex/latex123/example10.pdf edt1023:~/cvs-working/latex123$ pdffonts example10.pdf name type emb sub uni object ID ------------------------------------ ------------ --- --- --- --------- MUUSRB+CMBX12 Type 1 yes yes no 10 0 MUUSRB+HanWangMingHeavy CID TrueType yes yes no 16 0 ZYGQID+HanWangMingMedium CID TrueType yes yes no 22 0 OFXAYD+CMR10 Type 1 yes yes no 25 0 他使用了兩種王老師的 TTF 字型(CID TrueType)。他的 fd 定義是: edt1023:~$ cat /usr/share/texmf/tex/CJK/Bg5/c00hwmm.fd % This is c00hwmm.fd for CJK package. % created by Edward G.J. Lee <edt1023@info.sayya.org> % \ProvidesFile{c00hwmm.fd}[\filedate\space\fileversion] \DeclareFontFamily{C00}{hwmm}{\hyphenchar \font\m@ne} \DeclareFontShape{C00}{hwmm}{m}{n}{<-> CJK * wt002}{} \DeclareFontShape{C00}{hwmm}{m}{sl}{<-> CJK * wt002s}{} \DeclareFontShape{C00}{hwmm}{m}{it}{<-> CJKssub * hwmm/m/sl}{} \DeclareFontShape{C00}{hwmm}{bx}{n}{<-> CJKb * wt004}{} \DeclareFontShape{C00}{hwmm}{bx}{sl}{<-> CJKb * wt004s}{} \DeclareFontShape{C00}{hwmm}{bx}{it}{<-> CJKssub * hwmh/bx/sl}{} \endinput 也就是說需要安裝 wt002/wt004 兩種字型。粗體的部份去使用 wt004。 原始 CJK 的方式是使用模擬粗體的方式,因為以往完全 free 的 TTF 不多,就是粗體最後的定義是 {\CJKbold} 而不是 {}。這個看個人, 我個人是覺得實際的粗體比較好看。如果要節省硬碟空間,那就改成: \ProvidesFile{c00hwmm.fd}[\filedate\space\fileversion] \DeclareFontFamily{C00}{hwmm}{\hyphenchar \font\m@ne} \DeclareFontShape{C00}{hwmm}{m}{n}{<-> CJK * wt002}{} \DeclareFontShape{C00}{hwmm}{m}{sl}{<-> CJK * wt002s}{} \DeclareFontShape{C00}{hwmm}{m}{it}{<-> CJKssub * hwmm/m/sl}{} \DeclareFontShape{C00}{hwmm}{bx}{n}{<-> CJKb * wt002}{\CJKbold} \DeclareFontShape{C00}{hwmm}{bx}{sl}{<-> CJKb * wt002s}{\CJKbold} \DeclareFontShape{C00}{hwmm}{bx}{it}{<-> CJKssub * hwmm/bx/sl}{\CJKbold} \endinput 這樣就只要安裝 wt002 的字型就可以了。粗斜體都是由同一個字型模擬 出來。 這些都有製作好的現成 tfm/fd/*.map 檔。下載地點: http://cle.linux.org.tw/fonts/wangfonts/ 或 ftp://ftp.tnc.edu.tw/pub/freefont/wangnew 只要解開將其中的各種檔案置放於相對的目錄,執行 texhash 後即可 使用。那些 tfm/fd/*.map 是包在 Type1 的 tarball 中。其中要將 TTF 字型嵌入的話要修改一下 cid-x.map,把所有 wt002@Big5@ ETen-B5-H :0:!wt002.ttf wt004@Big5@ ETen-B5-H :0:!wt004.ttf 中的驚嘆號 ! 通通拿掉。這種情形下 wt002.ttf/wt004.ttf 可以安裝 給 X/gs/OO.o/TeX 共同使用,然後 TeX 的部份只要 link 過來就可以 了。這樣,只要是使用 dvipdfmx,那麼 Type1 的部份(*.pfb)就可以 通通移除。 我另外寫了一個爛爛的安裝工具,但還沒有在 FreeBSD 上完整測試: http://cle.linux.org.tw/fonts/wangfonts/devel/wangfont-0.3.tar.gz 或許有興趣的朋友可以幫忙試試看(應該有些細節需要修改一下,一些 sh 的特性及 sysv 的工具可能會有所不同)。 -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: info.sayya.org
文章代碼(AID): #11D66r00 (FreeBSD)
討論串 (同標題文章)
文章代碼(AID): #11D66r00 (FreeBSD)