4. 前進未來

Ipe 和 ucs package,都還在發展狀況中,只能說目前達到堪用而已,如何更流利的使用,需要大家一起努力。這篇小文章只是在介紹到目前為止,一些熱心的開發者的成果,這些成果的確是能用的,也需要大家的使用才能更上一層樓將這些工具流利化。

4.1 Ipe 的可塑性

由文章中的簡單介紹,可以發現 Ipe 的可塑性很強,端視開發人員如何去整合他。除了 Ipe 使用界面本身外,和 TeX/LaTeX 系統的配合也是一個重點,例如:和其他 TeX macro 系統的配合。

Ipe 使用 Qt 的圖形界面,可以打造出漂亮的 GUI,而他內部使用了 Xpdf4.1 的函式庫,這個函式庫用途很廣,PDFLaTeX 也有用到他。雖然 Ipe 是個繪圖軟體,但由於和 PDFLaTeX 的結合,有興趣的朋友,也可以嘗試把他改寫成 pdf 編輯器,將功能擴充到一般的文書、排版的領域,他使用的 license 是 GNU GPL,所以,可以任由大家去修改他。甚至和 $ \Omega$ 排版系統及 DVIPDFM$ x$ 的結合,也是一個不錯的方向。


4.2 ucs 因此就把問題解決了嗎?

LaTeX 的巨集裡頭,很常碰到 moving arguments 的問題,在處理多國語文時更是常會出狀況,這種情況是發生在內容重用的情形,在參數傳遞過程當中沒有保護好原來的內容(這些內容常常會被一些 macro 展開成他的內部形式,但這些形式 TeX 本身並不認得),於是就被 TeX 系統誤解了!由於 TeX 系統本就是 8-bit 的系統,內部無法真正「認得」多位元字元,我們只是很巧妙的避開了這些問題而已。

例如在 LaTeX 系統的標題 \chapter\section 就會碰到內容重用,因為他也會在編目錄時要用到,這時使用 ucs package 將可能會產生問題。這個問題 Ipe 的作者 Otfried 的解決方式是去另外定義他:

\DeclareRobustCommand{\mysectionname}{UTF-8 編碼內容}
\begin{document}
\tableofcontents
\section{\mysectionname}

這就是所謂的 `robust command',是一種 TeX 系統認得的形式。但可以看得出來,如果是長篇文章的時候將會很麻煩,防不勝防。而且,這個問題不應該是放在文稿這個層次去解決的,所以,以上只能當做是一個過渡時期的解決方法。

Omega$ \Omega$)可能是將來要走的方向,因為是 Unicode based 的處理方式,也就是說他內部就已經是 16-bit 的方式在處理了,這有助解決一些和多位元字元相關的問題,例如上面提到的 moving argument 的情形。而且,可以取用不同語系的字型共用,這樣也就無需一個 Unicode 全字集的大字型了。當然,目前 $ \Omega$ 系統的使用並不算普遍,尤其向下相容的問題還很多,但這種發展方向應該是無庸置疑值得肯定的。

另外一個議題就是字集本身大小的問題,Unciode 的字集,說大不大,有些中文字就不包括在其中,說小不小,因為總是比我們的 Big-5 字集要大得多。假如是用於學術用途,而且又是和文史有關的領域,Unicode 將有可能會不敷使用。所以,這只能用於一般用途,至於專門領域我們還是得想其他的方法來解決。這個議題的簡單說明請參考:

http://edt1023.sayya.org/tex/cccii.pdf

4.3 輸入的問題

輸入的問題,其實並不完全是技術的問題,而是如何巧妙整合的問題。像第 3 章所提到多國語文的例子,我們必需要在繁簡中文、日文、韓文之間切換輸入法,才能順利的完成輸入,這對於一般使用者,要去學習四種(甚至更多)的輸入法,恐怕是不切實際的。想想我們光繁體中文的輸入法,大家就學得東倒西歪了,更何況是其他國家的語文呢?這是一般使用者接觸電腦的一個很大的障礙。

在多國語文的環境下,我們實在有必要檢討一下傳統的輸入方式,將輸入方式標準化、規格化,把多國語文的情形考慮進去,這就有待大家的努力構思了!

4.4 本文的原始文稿

本文的原始文稿及編譯好的 pdf 格式檔案可在以下網站下載:

http://edt1023.sayya.org/tex/ipeucs/ipeucs.pdf
http://edt1023.sayya.org/tex/ipeucs/ipeucs-1.0.tar.gz
http://MathNet.math.tku.edu.tw/~edt1023/tex/ipeucs/ipeucs.pdf
http://MathNet.math.tku.edu.tw/~edt1023/tex/ipeucs/ipeucs-1.0.tar.gz

Compiled by Edward G.J. Lee (2004-05-06)