Linux折騰記(十五):再來說說LaTeX排版引擎

在我的上一篇隨筆中,我提到了Markdown、LaTeX和MathJax。這幾個東西對目前的網(wǎng)絡(luò)技術(shù)文章的寫作、展示都有深遠的影響。在上一篇中,我還給出了一份LaTeX語法的學習資料。在這一篇里,我想再來談?wù)凩aTeX。
在很多人心中,LaTeX是一個很專業(yè)的排版系統(tǒng),同時也是一個很復雜的系統(tǒng)。說到專業(yè),確實很多科技論文都是用LaTeX寫作,而且很多知名的雜志社只接受LaTeX格式的投稿,而且使用LaTeX排版得到的效果那是超級贊,特別是對科技論文中充斥的數(shù)學公式而言。說到復雜,不僅是因為LaTeX排版語言命令繁多,更因為它數(shù)之不盡的宏包,學習成本真的是相當相當相當?shù)母摺?/p>
對于一套LaTeX排版系統(tǒng),它究竟包含哪些東西呢?我認為它主要可以分成這樣幾個部分:
1.一個排版引擎,TeX或pdfTeX或XeTeX;2.一系列的字體;
3.一系列的宏包;
一些工具,比如用來查看各種排版引擎輸出的排版結(jié)果,或者在dvi、ps、pdf等格式之間的轉(zhuǎn)換。
而對于LaTeX排版系統(tǒng)的復雜性,我認為主要是由于歷史原因引起的,理由如下:
1.最早的由Knuth教授寫的TeX引擎不支持UTF-8編碼的輸入文件,所以要讓它支持中文實在是太難了;2.最早的TeX系統(tǒng)自帶一套字體,要擴展它就得擴展相應(yīng)領(lǐng)域的字體,比如LaTeX自帶豐富的數(shù)學字體,要把字體安裝到TeX系統(tǒng)中是一件非常復雜的事情;
3.大量的第三方宏包,安裝和學習都非常困難;
4.都什么年代了,誰還用dvi格式和ps格式啊,用pdf多方便啊。
對于這些歷史原因引起的復雜性,現(xiàn)在早就解決了,只是很多書籍沒有寫清楚而已。我認為現(xiàn)在用LaTeX其實很方便的,理由如下:
1.Knuth教授的Tex引擎用來瞻仰即可,實際工作中使用XeTeX引擎,完美支持Unicode字符集和UTF-8編碼,中文再也不是問題;2.字體神馬的,Knuth教授的METAFONT早過時了,現(xiàn)在誰還不用TrueType?。亢玫淖煮w當然少不了像Microsoft、Adobe、Apple這些既有錢又有品味的公司出品了;
3.XeTeX引擎可以直接使用操作系統(tǒng)中安裝的字體,再也不用考慮把字體安裝到TeX系統(tǒng)中了;
4.XeTeX引擎直接輸出pdf格式的文件;
5.排版也可以有IDE工具,比如TeXWorks;
6.至于宏包太多這個問題,我們可以用現(xiàn)成的發(fā)行版嘛,比如texlive套裝。
下面開始實戰(zhàn)。我是在Ubuntu系統(tǒng)下使用texlive,為了省事,我直接安裝了texlive-full,使用如下命令:
sudo apt-get install texlive-full
然后,再安裝一個TeXWorks,命令如下:
sudo apt-get install texworks
下面是TexWorks的工作界面,排版引擎一定要選擇XeLaTex哦。左邊是文檔編輯,右邊是預(yù)覽效果:
第一次運行是不可能成功的,因為還要像下面這樣設(shè)置一下字體。
如果要想順利地進行中文排版,必須得借用一點中文字體。中文排版所用到的字體一般有6種,分別是:宋體、楷體、黑體、仿宋體、隸書和幼圓。所以我從我的Win7系統(tǒng)下將這幾個字體拷貝到Ubuntu中,把它們?nèi)拥街髂夸浵碌?fonts中即可。(隸書和幼圓要安裝了Office才有。)如下圖:
當然,如果不想完全達到Windows中的效果,也是可以不借用它的字體的。在Linux中,宋體、黑體和楷體是不缺的,其它字體就欠奉了。如果不借用Windows中的字體,則宋體可由AR PL UMing代替,楷體可由AR PL UKai代替,黑體可由Droid Sans Fallback代替,如下圖:
然后,修改/usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
中的字體名稱和上圖中fc-list輸出的字體名稱一一對應(yīng),如下圖:
看到上面的路徑是不是覺得它太長了?太難找了?的確如此,texlive的路徑就是這么復雜。我第一次是根據(jù)錯誤信息找到的這個文件。
texlive-full實在是太大了,我安裝的時候幾乎花了一夜的時間去下載。對于這么復雜的系統(tǒng),它的各種配置文件啊、環(huán)境變量啊,都放在哪里呢?使用tlmgr conf
命令即可查看,如下圖:
對于寫寫中文文檔,使用ctex宏包就足夠了。并不是很復雜。LaTeX還有一些更加復雜的功能,比如制作幻燈片啊、繪圖啊什么的,都有相應(yīng)的宏包可以使用,而且安裝texlive-full的時候,都安裝了非常詳細的幫助文檔,只需要打開/usr/share/texlive/doc.html
這個文件,就可以看到所有宏包和幫助文檔的列表,我之前分享的《一份不太短的LaTeX介紹》里面有,經(jīng)典的《Tex by Topic》里面也有,如下圖:
看到這個一公里長的列表,你有什么感想呢?
相關(guān)文章
Linux折騰記(十四):優(yōu)秀的文本化編輯思想大碰撞(Markdown、LaTeX、
這篇文章主要介紹了Linux折騰記(十四):優(yōu)秀的文本化編輯思想大碰撞(Markdown、LaTeX、MathJax),本文講解了Markdown的特點和工具、配置ReText使用比較漂亮的CSS、開啟2015-04-11- 這篇文章主要介紹了Linux折騰記(十三):我該如何備份系統(tǒng),由于Linux系統(tǒng)本身的優(yōu)越性,系統(tǒng)的備份和還原還是比較容易的,需要的朋友可以參考下2015-04-11
- 這篇文章主要介紹了Linux折騰記(十二):桌面美化那點事兒,各個Linux桌面發(fā)行版剛拿到手的時候,或多或少都有點兒不滿意,對它們進行一些改造是必須的,需要的朋友可以參考2015-04-11
Linux折騰記(十一):發(fā)博客必備的五大圖片處理神器
這篇文章主要介紹了Linux折騰記(十一):發(fā)博客必備的五大圖片處理神器,本文講解了截圖工具gnome-screenshot、位圖處理軟件GIMP、矢量圖繪制軟件Inkscape、一款更適合程序2015-04-11- 這篇文章主要介紹了Linux折騰記(十):Bash腳本編程語言中的美學與哲學,本文講解了一切皆是字符串、引用和元字符、字符串從哪里來、到哪里去、輸入輸出重定向、Bash腳本語2015-04-11
Linux折騰記(九):在Ubuntu 14中使用搜狗拼音輸入法
這篇文章主要介紹了Linux折騰記(九):在Ubuntu 14中使用搜狗拼音輸入法,需要的朋友可以參考下2015-04-11Linux折騰記(八):使用GCC和GNU Binutils編寫能在x86實模式運行的16
這篇文章主要介紹了Linux折騰記(八):使用GCC和GNU Binutils編寫能在x86實模式運行的16位代碼,需要的朋友可以參考下2015-04-11Linux折騰記(七):硬盤GPT分區(qū)和MBR分區(qū)爬坑記
這篇文章主要介紹了Linux折騰記(六):硬盤GPT分區(qū)和MBR分區(qū)爬坑記,本文著重講解了硬盤分區(qū)的一些知識,需要的朋友可以參考下2015-04-11Linux折騰記(六):感悟GNU C及把Vim打造成C/C++的半自動化IDE
這篇文章主要介紹了Linux折騰記(六):感悟GNU C及把Vim打造成C/C++的半自動化IDE,本文講解了感悟一:C語言標準干不過GNU擴展、感悟二:指針和數(shù)組還真是不一樣、感悟三:2015-04-11Linux折騰記(五):在Ubuntu 14.10中使用Windows字體
這篇文章主要介紹了Linux折騰記(五):在Ubuntu 14.10中使用Windows字體,本文講解了設(shè)置系統(tǒng)字體、安裝微軟的英文字體、查看系統(tǒng)的配置文件、借用Windows的字體、編寫配置2015-04-11