# 史上最短的 Latex 教學(希望): ## 先讓我從小故事開始 當 Knuth ( 沒錯,演算法常出現那個 ) 在 1977 年, 正在寫( 到現在都還沒寫完 ) 的超級鉅作 "The Art of Computer Programming" 時, 他發現了一個可怕的事實: 當時所有能用的排版系統,全,都,太,爛,了。 不但沒辦法保留原始字體,還會讓他書中所有美妙的數學式, 全部都變得歪七扭八的。 而做為一名有理想有抱負的大師, 為了搞定自己偉大著作的偉大排版, 他決定在休假的時候,「自己開發」一套, 可以把數學漂漂亮亮地排版的程式語言。 而這套語言就是現在理科相關論文跟履歷排版的標準語法的基礎 -- TeX 大師的生活與假期,就是這麼樸實無華,且枯燥。 LaTeX 則是另一位數學家 Leslie Lamport 所開發的 TeX 引擎。更現代的說法應該是「高階 API」, 旨在讓大家更方便的使用 TeX 的各種功能。 有趣的是,上面兩位都拿到圖靈獎了。 原來拿圖靈獎的前提,就是要精通 LaTeX (大誤) 通常,數學系的人都很喜歡假裝他們很會用 LaTeX, 但實際上也只是在套模板,或是上網查各種指令。 以下是如何正確地假裝成 LaTeX 大師的各項步驟: ## 第一步,挑一個你喜歡的 LaTeX 模板: 我通常都是挑一個自己很崇拜的研討會,假裝用了之後就可以投得上。 Google "<研討會名稱> latex template" 就好。 記得要把 tex 跟 sty/cls 都下載下來 範例: 1. [NIPS 模板](https://nips.cc/Conferences/2018/PaperInformation/StyleFiles) 2. [RecSys 模板](https://www.acm.org/binaries/content/assets/publications/consolidated-tex-template/acmart-master.zip) ## 第二步,用一個你喜歡的 LaTeX 編輯器打開它: 挑一個預覽方便的 LaTeX 編輯器非常重要,這樣你才能知道你都對你的模板惡搞了些什麼。 比較推薦初學者使用的是這個線上的版本: https://www.overleaf.com/ 喜歡單機版的同學, Mac 可以用 TeXShop: https://pages.uoregon.edu/koch/texshop/ 其實像是 VSCode,甚至 Vim 都可以,只是要記得裝支援的套件跟編譯器。 ## 第三步,打開你的模板: 搭配預覽,把那些看起來像是內文的東西,拿起來修改就對了。 如果目前不需要,那你可以先假裝那些指令不存在。 (沒錯,跟我們抄別人的原始碼來用一樣) ## 第四步,編譯文件: 沒錯, LaTeX 既然是程式語言,當然就可以編譯,也需要裝編譯器。 (之後可能還會需要裝字體之類的,為了預防裝到死,請大家慎選編輯器) 就是因為裝各種版本的編譯器很麻煩,才會推薦大家用線上版,或是那些包得比較好的單機版。 目前比較新的版本是 XeLaTeX,在中文支援、各種數學式或奇怪的功能上都做得很好, 大部分的模板也是基於它所撰寫,建議大家設定為預設編譯器。 ## 附錄一: LaTeX 裏面的數學式: 選 LaTeX 的主要理由就是它寫數學很方便,而且連 MarkDown 裏都可以使用! 指令除了常用的那些,通常沒有人認真記得,都是邊寫邊查。 Wiki 還有一個專門的頁面教大家 LaTeX 的數學指令。 只要記得幾個大原則就好: 1. 叫數學系的人做事時記得給錢: 在你要寫數學的地方,前後加 $ 就好 $f(x) = 87x^{2}+978y_{i}+\frac{89\times z}{17}$ $\text{ 要寫字時就加 \text{}}$ 2. 如果字不夠大,那就是錢不夠多: 兩個 $ 可以把裏面的式子放大置中。 $$f(x) = 87x^{2}+978y_{i}+\frac{89\times z}{17}$$ $$\text{錢超過兩個就沒用了}$$ ## 附錄二: 中文 中文曾經是 LaTeX 永遠的痛,以前我甚至因為不會用 LaTeX 寫中文,乾脆作業都交英文版了。 現在可以用 XeCJK 簡單的完成這個任務 ( 記得要用 XeLaTeX 編譯 ): [LaTeX 中文教學](https://www.overleaf.com/learn/latex/chinese#xeCJK_with_XeLaTeX)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up