歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux中文字型的轉換與內嵌

Linux中文字型的轉換與內嵌

日期:2017/2/27 9:41:10   编辑:更多Linux
  ·不論是 Postscript 文件或 PDF 文件,都可以直接內嵌所需的字型,可以只提示所需的字型名稱與每個字在字型文件中的編碼索引等。後者的檔案大小當然比前者來得小,但前提是文件內所使用的字型名與字型規格要有一個通用的標准,如此該份文件才能在各種環境下閱讀與打印。故一般只包含 ASCII 或 ISO8859-1 文字的 Postscript文件是不內嵌字型的,但是一份中文文件在目前常見的情況下是必須內嵌字型的,其原因正是目前還沒有通用的中文字型與規格。·在早期 (也許 PDF 格式尚未問世的時候),用做內嵌的中文字型來源是一種名為 HBF的點陣字型,當時有許多程序可以將 HBF 字型轉換成 Postscript 可以使用的格式,然而這類的點陣字型分辨率有限,故內嵌在 Postscript 文件中往往不夠美觀,特別是當我們要做有限度的文字縮放時更是慘不忍睹。後來,由於 TrueType 字型逐漸普及,同時可以處理 TrueType 字型的引擎 -- freetype 函式庫的問世,許多基於該函式庫的 TrueType 字型轉換程序一一開發出來,使得它成為 Postscript 與 PDF 內嵌字型的最重要來源。內嵌了 TrueType 轉換字型的文件不但比起過去要美觀許多,且由於 TrueType 本身就具有可縮放的特性,故我們可以輕易產生高分辨率的轉換字型,使得文件在有限度的縮放下仍不失真。同時由於文鼎公司對自由軟件世界的支持,捐贈了兩套 TrueType 中文字型供大家自由使用,讓我們在中文文件輸出問題上得以徹底解決。·最佳的解決方案仍然是希望以不需內嵌中文字型的方式,其優點除了可以讓輸出的文件檔變小以外, 同時還可以保證在任何尺度上的縮放而不失真。由於內嵌在文件中的字型在很多情況下是將 TrueType 字型轉成點陣字型之後,才進行內嵌 (例如在 CJK-LaTeX 所編譯的文件中內嵌了由 TrueType 轉成 PK 的點陣字)。僅管由轉換過來的字型有相當高的分辨率,但再高的分辨率也是有限的,故在做大尺度的縮放時仍然會失真。要做到真正不內嵌中文字型於文件中,有許多工作要做,其中包括:1. 要有一套統一的字型名稱與規格: 這可能是最令人頭疼的部分,因為這裡卡到了授權問題。由於 Postscript 與 PDF 文件格式是 Adobe 公司開發的,故其所用的字型名稱都會灌上 Adobe 之名,而這些名稱是否能在自由軟件世界中,以自由軟件的游戲規則來運行,將會是個問題,其中尤以 PDF 最為嚴重。同時,在定這些名稱與規格時,我們不能關起門來自己定,必須同時與許多團體談,可能包括 Adobe 公司、TeX/LaTeX 開發團隊、Ghostscript 開發團隊、甚至其他與排版、字型相關的計劃與 商業公司等。2. 要有一個字型的來源: 這一點在現階段已有初步成果,目前我們已有將 TrueType字型轉換成 Postscript 所需的 Type1 字型的工具程序,例如 ttf2pt1 或 chpfb,ttf2pfb 等。除此之外,另外還有一套稱為 t1lib 的函式庫,可以用來進一步處理 Type1 字型,例如將字縮放、旋轉,或將它轉換成點陣的格式以用於其它的用途 .... 等等。3. 如果我們有了 Type1 的字型,我們還可以進一步地將它合成 Type0 的 CID-Keyed字型,可用於 Postscript 與 PDF 的文件中。4. 我們的文件轉換引擎: Ghostscript 要能處理多字節編碼、並利用這些字型:這一點目前也正積極開發中,例如下一代的 Ghostscript 就有處理多字節編碼的能力,除了迎接未來的中文 Type1 字型以外,它還內含了一個可直接使用TrueType 字型的模塊,可以做到不需要字型的內嵌,就可以使用 TrueType 字型來顯示文件,其原 理是將 TrueType 字型仿真成 Type0 CID-Keyed 字型來用。但這可能會面臨可移植性 的問題,萬一將此文件拿到其它沒有安裝此 TrueType字型的系統下就無法讀了。因此,它目前也同時在開發直接內嵌 TrueType 字型的技術,做為因應此問題的配套措施。中文 Postscript 與 PDF 文件的產生·目前較通用的純文字文件轉 Postscript 格式的程序為由 python 語言所寫成的 bg5ps程序,它所產生的 Postscript 文件采內嵌中文字型的方式,而中文字型的來源即為TrueType 字型。CJK-LaTeX· 是一套功能相當強大的幕後排版系統,它使用類似程序語言的方式,來格式化並編排文件,並配合 Postscript 的輸出,可以輕易達到高品質文件的輸出要求。特別是它容易處理數學符號的特性,使得它特別適於學術文件、書籍、出版的排版工作。要讓 LaTeX 能處理中文,必須在 LaTeX 系統上額外加裝一套 CJK-LaTeX 的宏。顧名思議,此宏可以付與 LaTeX 處理中文、日文、韓文等編碼系統的能力,而它也漸漸成為 LaTeX 的標准之一。而它最後在產生 Postscript 文件時,是采用內嵌中文字型的方式,其字型來源也是 TrueType。它利用 freetype 函式庫的衍生工具 ttf2tfm、ttf2pk 將 TrueType 字型轉換成 TFM 與 PK 點陣字型,前者用於前段的排版工作,後者則用於最後的字型內嵌。LaTeX 的外衣 -- LyXLyX 是一個以 LaTeX 為基底的一個圖形化排版系統,讓我們不必須記一大堆 LaTeX的排版指令,可以直接可視化地在窗口內編排我們的文件,而最後的排版輸出才交由LaTeX 處理。它的中文支持目前正慢慢發展中,包括支持 XIM 協議,使得我們可以用 XIM server 輸入法程序直接在它的窗口內打中文。而它的 CJK-LaTeX 指令的部分在經過少許的修正後也能正確地搭配使用。各應用程序與打印系統的整合·如前所述,由於 Ghostscript 可以正確處理 Postscript 與 PDF 的文件,並且可以將它們轉換成各種格式輸出,包括許多打印機的打印格式。故使用 Ghostscript 正是最標准且一致的打印解決方案。除了上述可以產生 Postscript/PDF 文件的程序以外,事實上還有許多與文書工作相關的應用程序,如辦公室軟件 KOffice/AbiWord 等,或繪圖軟件 gimp、xfig、gnuplot .... 等,它們在做打印輸出時都可以產生 Postscript的格式 (未來也許會有 PDF 格式),故只要經過適當的整合,就能順利 解決打印的問題。




Copyright © Linux教程網 All Rights Reserved