LaTeX入門:選擇、安裝和基礎(chǔ)概念。
在使用LaTeX之前:
LaTeX是什么?
LaTeX是一個(gè)建立在TeX上的宏集,Leslie Lamport在Plain TeX上構(gòu)建了它。
最初的TeX是高德納教授(Donald E. Knuth)研發(fā)的,它是一門標(biāo)記語言,以高效精確穩(wěn)定著稱,廣泛地被應(yīng)用于科研排版領(lǐng)域。值得注意的是,它的大多數(shù)發(fā)行版并不支持所見即所得,它是一門需要編譯兩次甚至更多次才能正確輸出的標(biāo)記語言。 ? ? ? ? ? ?
MS Word用戶需要它么?
這要取決于你的需求,如果你在本科期間或是準(zhǔn)備發(fā)表你的論文,無疑,你是需要LaTeX的。而在更專業(yè)的商業(yè)報(bào)告和書籍排版領(lǐng)域,LaTeX的占比比你想象的要高得多。但是在日常的文書工作中,你既不需要它,它也不需要你,PDF文件并沒有docx那末靈活。
我要如何獲得它?
在這里,我們不考慮付費(fèi)的發(fā)行版,也不考慮并非LaTeX的其他版本TeX,僅考慮對于新手來說最為穩(wěn)妥的TeX Live(輕量級(jí)的MiK TeX當(dāng)然也很好,然而用戶太少了)。
對于Windows&Mac&Unix/Linux用戶:https://tug.org/texlive/
在了解LaTeX之后:
tlmgr(TeX Live的包管理機(jī)制)在win上是個(gè)大笨蛋,所以在下載iso文件后選擇全部安裝,不要漏下每一個(gè)包,當(dāng)然你可以選擇不安裝TeXWork的默認(rèn)前端。(這些包為你編譯后的各種效果提供了支持,事實(shí)上,只要你的自創(chuàng)的包夠多,你也可以擁有自己的TeX發(fā)行版)
例外地,win上還有ProTeXt可以選擇,它是MiKTeX的另一個(gè)實(shí)現(xiàn)。
在Mac上:
你們有更合適的MacTeX。
在Linux上:
打開你的terminal,在你的yum/pacman/apt倉庫里找找這三個(gè)包: texlive texlive-langchinese texstudio,然后安裝它們。如果出了問題,在倉庫上的問題可以查找各自的wiki,如果在這之后還有問題請查閱萬能的archwiki。但永遠(yuǎn)記住,你的手冊比單獨(dú)問題的單獨(dú)解決方法更權(quán)威,TUG才是最萬能的。
如果你覺得TeXWork很丑:
是的,它確實(shí)很丑,所幸tex是平臺(tái)無關(guān)的純文本文件,因而你可以使用不同的前端去編輯同一份文件。例如vim、emacs和vscode、sublime。
如果你想試試新版的TeX Live:
LaTeX的引擎已經(jīng)有三十多年沒有大的改動(dòng)了,因而發(fā)行版?zhèn)兏碌某饲岸司褪歉鞣N包,養(yǎng)成習(xí)慣后并沒有更新的必要。如果是需要更新后的某些特性,我這一律建議你卸了重裝,即使對于Unix用戶可以使用腳本升級(jí),但是那玩意實(shí)在落后時(shí)代三十年了,真的不咋好使,不如換個(gè)Linux。
當(dāng)你真的需要所見即所得:
TeXmacs很不錯(cuò),不過我覺得也會(huì)有人喜歡vim+spacevim或者nvim+lunarvim,寫起來真舒服啊。
當(dāng)你接觸LaTeX時(shí):
怎麼用LaTeX是個(gè)既然已經(jīng)提出來便不再有意義的東西,因而我們不提及命令們的使用,而是著重于如何形容你所遇到的常見的問題。
而對于一些基礎(chǔ)的概念,在這里提出,以便于你形容你的問題。
首先,LaTeX文件的格式:
源文件的格式通常是tex,它是純文本的,對于所有平臺(tái)都可以正常地查看以及編譯。
源文件通常分為兩部分,即導(dǎo)言區(qū)與正文區(qū)。
下圖是一份標(biāo)準(zhǔn)的tex文檔的樣貌:

一般而言,一份正常的文檔的導(dǎo)言區(qū)還會(huì)包括各種包引用命令,自定義的復(fù)合命令、重命名命令,還有一些聲明性質(zhì)的命令(它們定義這些文檔的基礎(chǔ)樣貌,前面的各種命令在這些聲明的基礎(chǔ)上才有顯示的空間)。
但是純粹的.tex無法做到許多事,它并不方便,一些發(fā)行版創(chuàng)立了更方便的格式來組成一份LaTeX文檔(這通常是一個(gè)目錄)。你可以這樣粗略地認(rèn)為,源文件在初次編譯后會(huì)根據(jù)定義引用你所提到的引述、媒體資源,還有外部鏈接,它們共同地在不同文件的組織下形成一份文檔——二次編譯的必要性就在于初次編譯并沒有將引用的資源編纂進(jìn)文檔,而是在源文件的指導(dǎo)下先將這些不同文件編譯了出來。
在這里,指出幾種文件的作用:
.tex文件用于描述文檔內(nèi)容。
.bib是以bibligraphy方式導(dǎo)入?yún)⒖嘉墨I(xiàn)時(shí),描述參考文獻(xiàn)的文檔,它由.bbl編譯。
.sty是包文件,在引言區(qū)使用\usepackage導(dǎo)入,平時(shí)不需要注意。
.cls是類文件,通過文檔最前面的\documentclass命令導(dǎo)入,你可以將其理解為一個(gè)LaTeX使用的“CSS庫的引用”。
以及,box,字寬,字高,字號(hào),行距以及塊。
LISP是一門古老的,在Unix宇宙誕生之前就已經(jīng)存在的,高級(jí)語言。它提出了一個(gè)七十年后的今天還被人們所使用的概念:宏(macro)。
它的具體定義,由于LISP語言的宏的概念在計(jì)算機(jī)世界的擴(kuò)展已經(jīng)失去了一個(gè)具體的意義。你可以這樣認(rèn)為:如果一個(gè)東西,它可以執(zhí)行一個(gè)相對比較復(fù)雜的任務(wù),它就是一坨函數(shù)。如果這坨函數(shù)被定義成一個(gè)宏,那么你就可以在文件中用簡單幾個(gè)關(guān)鍵詞引用它來完成一個(gè)任務(wù)。
而LaTeX是一門標(biāo)記語言,它的包(package)概念就類似于宏,簡單的TeX命令語句被包裝起來定義成一個(gè)包。你又可以在引言區(qū)定義這些包所定義的命令來組成新的命令,在這個(gè)過程中,LaTeX更多地是作為一種shell而非標(biāo)記語言來工作。
shell的輸出,對于terminal來說是文件的變化和不知所謂的字符串,對于一份tex文檔,就是box——人們將文檔的一個(gè)相對獨(dú)立的部分定義為一個(gè)box。一個(gè)公式的左右兩邊分別可以是兩個(gè)box,一個(gè)段落也可以是box,一個(gè)章節(jié)甚至是一系列互有關(guān)聯(lián)的書的某一本也是box。
對于tex,box是一個(gè)非常合適的模型,每一個(gè)box都有與其對應(yīng)的源文件段落,對于命令的沖突,顯現(xiàn)在box上就是badbox(壞箱)。也就是雖然可以輸出但并不美觀的box,tex認(rèn)為你輸入的命令與美觀且正確的命令不同。
而字號(hào)(高)與字寬,LaTeX采用point與ciceros定義,人們多用英美制。pt,磅數(shù),點(diǎn)數(shù);cc,西塞羅。一般來說,pt確定,cc也隨之確定,當(dāng)我們指多少多少字號(hào)時(shí),通常也指代了它的高度。
嚴(yán)正地指明,pt是字號(hào)單位,使用在攝影和排版以及設(shè)計(jì)領(lǐng)域,它是一個(gè)字號(hào)的大小單位,而非什么長度單位!盡管它可以這樣使用,但它不是!
對于ex與em,它們分別是當(dāng)前字體下x的高度(四分之三pt)和M的寬度,px則是四分之三pt的高度。
在這里附一張對照表,圖源見水?。?/p>
還有一個(gè)來自cnblog的表格(@心態(tài)與習(xí)慣)

重要地,還有一些換算規(guī)則,在這指明:
1點(diǎn)=0.376毫米=1.07英美點(diǎn)=0.0148英尺=0.1776英寸,1pt=1/72英尺=0.3527 毫米。
行距上,一般采用你所定義的字號(hào)高度和浮動(dòng)的額外間距之和,常用五號(hào)字體+12pt。
至于塊的概念,我這里籠統(tǒng)地認(rèn)為是圖像以及表格和特殊段落的一個(gè)統(tǒng)稱,它們也使用字號(hào)來衡量幾何尺寸——盡量不要對這些東西使用自定義命令和嵌套!
尤其應(yīng)該注意的是,直接在命令行內(nèi)編譯tex時(shí),不指明輸出將會(huì)輸出dvi文件。

當(dāng)你在引言區(qū)定義一個(gè)命令:
它八成不會(huì)不聽話,事實(shí)上是你的腦子不聽話,tex永遠(yuǎn)是對的——它的錯(cuò)誤很容易就可以發(fā)現(xiàn),一般而言是出現(xiàn)在引言區(qū)。
當(dāng)你覺得花哨的命令很多而且不知道怎么用:
我有一份速查表。
當(dāng)你只是想要個(gè)炫酷的樣式:
vscode的md預(yù)覽可以自定義css樣式,LaTeX.css+md=pdf預(yù)覽。
關(guān)于TeXmacs和lyx:
我不喜歡gnu丑到爆炸的原生風(fēng)格,但我喜歡emacs的順滑體驗(yàn),我永遠(yuǎn)推薦你用emacs作為tex編輯器。至于lyx,很好用,而且預(yù)覽很舒服,但是不那么自由——至少對于大多數(shù)人,emacs比它自由多了。聽說有個(gè)漢語TeXmacs叫做墨干,我并不怎莫看好,主要是因?yàn)樗L得就不太優(yōu)雅。
全文參考:
https://github.com/wklchris/Note-by-LaTeX
http://github.com/z-bingo/Resume-Chinese-English-LaTeX
https://blog.csdn.net/robert_chen1988/article/details/52739825
https://www.zhihu.com/question/62943097
https://github.com/vincentdoerig/latex-css