10. 後記

Image cchess 或許有人會認為,幹嘛不使用 Office 類的軟體就好了,不是更方便嗎?但這就是長久以來的一個誤解,把文書處理的領域和專業排版的領域混淆了,其實這是兩種不同的領域,雖然數位電子的軟體一直在進步,使得這兩個領域看起來很像,但在專業的立場而言,這仍然是不相同的領域,著重的重點並不一樣。請試試右邊的這盤棋,以一般的 Office 類軟體,要怎麼下呢?當頭炮,將軍死棋!這不是開玩笑的,TeX/LaTeX 真的可以排版出來,其他難得一見的領域也是可以經由 TeXMetafontMetaPost 來從無到有的製作出來,就像這些棋子、棋盤一樣。

底下這個樂譜呢?

Image music

還有,數學式子呢?能排出 AMS(American Mathematical Society, 美國數學協會)所能接受的標準嗎?這可是 TeX/LaTeX 的拿手把戲。當初 Knuth 教授就是不滿意書商把他心愛的著作裡頭的數學式子排得很難看,他才發奮開發出 TeX 排版系統出來的。


$\displaystyle {\cal B}(t,\omega)$ $\textstyle \approx$ $\displaystyle {1 \over 4\pi}
{\cal D}_t^2 W_{\bf S}(t, \omega)
{{{\scriptstyle ...
...t \!
}}\atop {\scriptstyle -\infty}}
t_1^2
\phi(t_1,\omega_1) \, dt_1 d\omega_1$  
    $\displaystyle +
{1 \over 4\pi}
{\cal D}_\omega^2 W_{\bf S}(t, \omega)
{{{\scrip...
...top {\scriptstyle -\infty}}
\omega_1^2
\phi(t_1,\omega_1) \, dt_1 \, d\omega_1.$ (10.1)

好吧,換個化學結構式好了!

Image chem-struc

曾有許多朋友問過引入程式碼的問題,以下是由 C++2LaTeX 所轉成的 TeX 文稿,\input 進來的。這是居士先生寫的一個測試系統地區環境支援的小工具。

$/\ast$ gcc -o localetest localetest.c -L/usr/X11R6/lib -lX11 $\ast/$

#define USE_XOPEN_SOURCE

#include $<$stdio.h$>$
#include $<$locale.h$>$
#ifdef USE_XOPEN_SOURCE
# include $<$langinfo.h$>$
#endif
#include $<$X11/Xlib.h$>$
#include $<$X11/Xlocale.h$>$

main()
{
printf("LC_CTYPE $=$ %s$\backslash$n", setlocale(LC_CTYPE, ));
#ifdef USE_XOPEN_SOURCE
printf("encoding $=$ %s$\backslash$n", nl_langinfo(CODESET));
#endif
if (XSupportsLocale() == True)
printf("X Locale $=$ OK$\backslash$n");
}

Image go 有人喜歡圍棋,那也成!運用之道,存乎一心。現在大概可以猜得到我選擇 TeX/LaTeX 這個幕後排版系統自討苦吃的原因是什麼了吧?:-) 最重要的原因就是他具有很低階的 TeX 排版程式語言,他可以給我彈性、精確與品質,這才是我真正想要的東西。而且,這會產生一個「副作用」,那就是他的操作方式變動並不會很大,雖然剛開始接觸時可能會多花一些時間,但想到學到的東西能夠用一輩子,不必去擔心改版又得從頭學習,這個學習成本還算是滿值得的。

當然,TeX/LaTeX 並不是沒有缺點的,例如學習曲線會比較陡,屬於幕後排版系統,記指令、查指令是免不了的,甚至特殊的需求得自行寫 macro,而這些 macro 並不會太直覺;MetafontMetaPost 的製作字型及繪圖雖功能強大,但也是需要一段時間的學習才能真正拿來用;中文直行的排版會比較麻煩;各 macro 間有時會衝突,無法同時使用,像排圍棋譜的 go macro,和 CJK 就會衝突,只能另外製作圖檔引入,排版化學式的 macro 也常會和 LaTeX 的數學模式衝突,要另外做調整。所以如果沒有特殊的需求,一般 GUI 的 Office 類軟體也不必去排斥,有些人製作文書,可能一輩子沒幾回,那站在學習成本的立場,你得盤算一下自己的時間成本,或者,就像我一樣,把玩電動的時間省下來改玩 TeX 。:-)

本文的 PDF 格式,所使用的字型是王漢宗博士所捐贈的 GNU GPL TTF 字型,可以使用 acroreadxpdfgv 來閱覽。要送印表機的話,可使用 acroread/pdf2ps/pdftops 將他轉成 POSTSCRIPT 的格式,或直接送印表機。欲轉換成純文字檔,可使用 Xpdf 所附的 pdftotext 這個工具:

pdftotext mycjk.pdf

就可以了,會產生 mycjk.txt 檔。當然,文章的編排,由於格式差異很大,可能會有參差不齊的情形,請調整一下 pdftotext 所能使用的參數(pdftotext -h)。

10.1 本文的 PDF 格式檔及原始 LaTeX 文稿

本文 PDF 格式檔及原始 LaTeX 文稿,可在此下載,或線上閱覽:

http://edt1023.sayya.org/tex/mycjk/mycjk.pdf
http://edt1023.sayya.org/tex/mycjk/mycjk-v1.1.tar.gz
http://MathNet.math.tku.edu.tw/~edt1023/tex/mycjk/mycjk.pdf
http://MathNet.math.tku.edu.tw/~edt1023/tex/mycjk/mycjk-v1.1.tar.gz

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