寫這篇東西,是本著好記性不如爛筆頭的原則把自己配置LaTex的過程粗略地記錄下來以備后查。
LaTex 是用了20多年的排版工具。因其專業(yè)的排版質(zhì)量和對大文檔處理能力,流行于學術(shù)界,大多數(shù)研究生博士生都用它寫自己畢業(yè)論文。
自己3年前曾也想用它寫碩士論文,但迫于時間壓力,后來還是改用了WYSWYG的StarOffice(Sun的產(chǎn)品,基于OpenOffice)。
不用Word,因為用它編輯我的90頁論文時,總是無可挽回地讓我的機器崩潰,當時系統(tǒng)還是Windows2000。
下面先離題談一談近期讀程序員修煉之道一書的兩個體會,也想闡述一下我為什么對用LaTex統(tǒng)一創(chuàng)建項目文檔感興趣
1)DRY(Don't Repeat Yourself),這是作者(Andrew Hunt/David Thomas)提到的重要原則,應貫徹到軟件開發(fā)的各個方面。其中一方面暗示開發(fā)流程中應盡可能保持同一級別信息的儲備唯一化,而不應有多處載體包含同級別信息。比如從測試規(guī)范應可以直接導出TestCase,數(shù)據(jù)庫定義規(guī)范直接導出數(shù)據(jù)庫腳本等等。
2)工欲善其事,必先利其器。專業(yè)的程序員除了熟悉自己吃飯用的編程語言外,還需懂得各種輔助工具特別是Perl/Python/Shell一類的腳本語言,因其廣泛存在于各種平臺中,并有很好的正則表達式和純文本操縱能力。例如,用他們可以幫助實現(xiàn)項目文檔的自動生成和發(fā)布等等。比如上面的信息導出就是一個應用目標。
要達到這樣地目的,必須要用純文本作為信息載體。但是,對于習慣于閱讀Word,PDF,HTML等格式化文檔的人們來說,純文本卻不太合適。所以3年前的LaTex又浮現(xiàn)在我的眼前。LaTex 很符合DRY原則,文檔信息和格式化信息都用純文本方式保存,但最終發(fā)布形式可以用LaTex自動生成,或PDF,或HTML,自己選擇。
LaTex難以學習是一大詬病,但是個人認為,軟件開發(fā)文檔有比較統(tǒng)一的格式化規(guī)范,只要有現(xiàn)成的模板,普通程序員可以通過短時間學習掌握基本的編輯能力。
下面言歸正傳:
大家時間都不多,Windows下使用LaTex最方便的辦法是安裝MiCTex套裝,其主要包括MikTex(LaTex的一種實現(xiàn)),SciTE(LaTex文檔編輯器),Tex4ht(LaTex文檔到Html轉(zhuǎn)換器)等,還捆綁了一些入門學習資料。
LaTex內(nèi)核無法識別超越ASCII的編碼,中文處理是以外掛的方式進行的。CJK是目前使用的最多的LaTex的中文化包,MiCTex也包括了,不過中文字體還需配置(也可能因為我的系統(tǒng)是英文的XP所致)。
比較了網(wǎng)上Google到的資料,
Helmer Aslaksen的這篇文章最全面和正確的描述了中文配置過程
Chinese TeX Using the CJK LaTeX Package, Unicode TrueType Fonts and pdfTeX under Windows
http://www.math.nus.edu.sg/aslaksen/cs/cjk.html
MiCTex作者最近也提供了一個中文字體自動配置工具,可以很方便的生成各類字體配置文件,并支持UTF8或GBK編碼,很好用。我用它安裝了系統(tǒng)中的微軟宋體,黑體。結(jié)果比上面Cyberbit字體好。
http://bbs.ctex.org/viewthread.php?tid=44496&extra=page%3D1
下面可以下載到其他免費字體文件
http://www.wazu.jp/gallery/Fonts_ChineseSimplified.html
Tex4ht是MiCTex捆綁的LaTex2Html轉(zhuǎn)換工具,英文很不錯,中文有點問題,還要下功夫看看那里出問題。我自己很憧憬以HTML的形式發(fā)布和更新項目文檔,簡單實用,這個發(fā)布過程可以作為一個步驟加入每晚的Build。