# 史上最短的 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.