有什麼好的鍛煉自己 LaTeX 能力的方法?
我準備寒假開始系統的自學LaTeX。 之前會一點,但是寫出來的奇醜無比。 於是問題就來了,寒假並沒有作業 更沒有大篇幅的論文之類的, 那麼有沒有什麼比較好的鍛煉自己LaTeX實戰的能力的呢 ---------------------------------------- LaTeX應該不像學C Python啥的書後都有習題吧。。。
- 找一個教程。比如這裡提到的:自學 LaTeX 可以讀什麼書入門?
- 自己沒有大的東西需要做的話,就找一本你喜歡的數學、物理、計算機方面的書(一章就足夠了),把它排版出來。如果自己有任務和計劃,比如成文的筆記集或翻譯,就做自己的。
- 你的練習對象應該包括大段的文字、數學公式、表格、圖形,分章節,有目錄、參考文獻,還可以加上索引表。
- 先練習核心的 LaTeX 功能,把各種內容的填寫弄熟悉,不考慮具體格式,熟習「內容與格式分離」的作業方式。——也就是練習填模板。
- 再考慮排版格式的問題。考慮設置文檔不同結構的字體字型大小、對齊方式,設置版面大小位置,設置編號,調整空格,處理頁眉頁腳……不需要自己考慮這些怎麼設置,打開你前面找的那本書,用眼睛看一看,用尺子量一量,嘗試嚴格按照出版的那個樣子排出來。
- 自己做完了上面的工作,可以找其他人寫得好的代碼讀一下,與自己的東西做對比,看哪裡做得好些,哪裡還要改進。中文的示例可以考慮看李清的:
- 中文書籍模板示例(《線性代數》的文檔類)
- 坑!《數學分析》 LaTeX 重新排版開源計劃(已經完成習題集部分)
- 在空閑的時候,可以翻翻各種文檔和社區的帖子(中文的 CTeX 論壇與英文的 Stack Exchange)。解決其他人的問題可以作為小練習,你可以挑那些自己大練習裡面不會遇到的問題試試。
首先,你要明白,好看的LaTeX文檔是這個:


Programs should be written for people to read, and only incidentally for machines to execute.
所以,生成漂亮的pdf文檔只是個順便的事情。那怎麼寫出漂亮的code呢?就要明確,不要用使用word的方式來用LaTeX。這裡沒有一點黑word的意思,有很多人說LaTeX的那些做法,如做section, subsection的標註,引用等這些功能word都能幹。這當然不錯,但一這種所見即所得的編輯方式本身就在暗示你「先擼出個效果看看」;二中國的計算機課是不教如何在word里劃分文檔結構的,而是交你如何把效果做出來:加粗,文字環繞。又是把效果擼出來。
而LaTeX要求是:告訴我你寫的是什麼,我來決定效果。這點挺重要的。舉個例子,你要打個帶單位的數據,如 3km,發現直接在數學模式下輸入,出來的效果是這樣的,你覺得這有問題,(如果你覺得沒問題,你需要這個強迫症玩轉 LaTeX - All about TeXnique - 知乎專欄)似乎應該是這樣的:
這時,你就要去百度怎麼做了,這時候,怎麼提問題就很重要了。如果你搜:LaTeX 數學模式 正體。那麼完了,你得到的答案將是$3mathrm{km}$,如果你在寫實驗報告,通篇的mathrm{}。但實際上你應該搜:LaTeX 單位。這樣得到的答案是,有一個宏包siunitx專門負責單位的輸入的,草草的一看恩,可以這樣寫了:$3si{km}$。似乎不錯了。你告訴了LaTeX km是一個單位。但這夠了嗎?還不夠。這就是下一個問題了:看文檔。
你用texdoc siunitx 打開了siunitx包的文檔,不長,截頭去尾也就幾十頁。發現原來還有一種更好的方式SI{3}{km}。從結果來看,3和km之間多了一點點空格,但從代碼上,你告訴了LaTeX更多的東西:3是km前面的數字。初學的時候看文檔還是非常重要的,你現在遇到了一個輸入3km的問題,但看了siunitx的文檔,你就知道如何輸入度這個符號,如何更好的輸入科學計數。為將來的可能遇到的問題做一些儲備。通過上面那個原則,你也可以判斷出網上給的方法是不是正確的(國內偶爾會遇到些奇奇怪怪的解決方法,外文網站就好的多了。)
關於其他,也就是多用了,無它。裝備個好的編輯器也是挺重要的,比如Vim(提醒:這也是個坑)
能寫出好的代碼,如果沒有其他特別的需求,就可以了,因為投稿只要你最原始的代碼,其他排版的事自然有編輯幫你做的。但這樣總是不爽。喂,說好的高大上的pdf文檔呢?
這倒是蠻容易解決的,去下個模版,一套就有了。不過很多模版不是說套就套的,還是要看模版的文檔,沒有文檔的可能要自己去看源代碼了。在看源代碼的時候,也可以學到很多東西。看著看著,手癢了,想自己寫模版了。It"s another story. 這時候,實際上不一個技術問題,而是一個設計的問題了。雖然是設計,但總還是有點章法可循的,可以看我提的這個問題如何排出精美的中文論文? - 設計的前兩個回答。
再後來,我也不知道了。跟著 @李阿玲寫編譯器?23333333題主提到自己的 LaTeX 奇醜無比,但 LaTeX 的核心思想就是注重內容和結構,然後 LaTeX 來安排的布局和效果。因此就要求你用正確的方式輸入內容,讓 LaTeX 能理解你文章結構。這大概就是 @沈周 所言。這方面不再贅述。
建議題主學習 LaTeX 時找一個需要 LaTeX 的任務,比如用 LaTeX 記筆記,用 LaTeX 寫作業之類。邊用邊學 LaTeX 是很愉快的。而且只需要知道很少的知識,就可以寫出相當美觀實用的文檔。- 從一個簡易的模板(比如找一個作業模板)開始,這樣很多地方可以照貓畫虎,其中的原理可以以後再說。
- 英文文檔 + 簡單數學公式,這已經可以實用了建議英文開始主要是 LaTeX 的中文配置稍稍麻煩,不像英文開箱即用
- 章節、腳註、插圖等核心 LaTeX 功能,建議看 lshort (The Not So Short Introduction to LaTeX)
如果在國外這樣已經可以活命了,後面的技能點相互獨立
- 高階的數學公式
- 繪(矢量)圖
- 幻燈片 (beamer)
- 論文所需 (natbib 等)
- 中文輸入 (建議 XeLaTeX + UTF-8 編碼)中文論文可以用 thuthesis 模板
- 其它高階功能
很多功能,像插圖、目錄、表格、etc 都很容易,學一遍用不了 5 分鐘,用一次就會了。但是題主一定要找合適的學習資料。假如題主的英文一般,那選擇資料的順序應該是
- 靠譜的中文教程,如 lshort 的中文版、「包老師 LaTeX Notes」
- 靠譜的英文教程,如 lshort、或 ctan 提供的大量文檔Windows 下用 CTeX 套裝的話會自帶幾個十分有用的文檔;linux 下用 texdoc 可以調出大量文檔
- 英文論壇,推薦 TeX - LaTeX Stack Exchange
- 不推薦中文論壇
找個東西做,實戰學習最快~
碰見問題就去找答案~這裡推薦幾個找答案的地方吧:TeX - LaTeX Stack ExchangeHelp On LaTeX Commands論壇 - CTEX社區
你可以去照著一本教程(最好是LaTeX排的)把裡面講到的功能(或者至少你覺得有用的功能)挨個實現一遍,然後自己照著排一本把所有功能都用到的「筆記」,這樣一方面練習了自己,另一方面以後用到這些功能的時候要是想不起來了看看自己的代碼就知道了。
easier said than done: try it
這個蠻簡單的,就是老老實實去打就可以了。
我剛開始學習latex是因為旁邊一群高大上的學霸們用這個做筆記,剛開始還跟不上,後來掌握技巧,比如說有些時候教授會畫圖的,拿我就會找張紙用筆畫好,然後標上記號。有時間的話就拍照插入,沒時間就留著。隨後就用這個開始做作業,通常都是數學或者計算機的,同樣需要畫圖的就額外附上一張手寫圖。
後來是給教授打文件去,跟TA比這可是個肥差,拿的錢又多又舒服,連教授的面都不用見就是發發郵件說打了多少就行了。(可惜有在校最多能拿多少錢的限制,要不然我就去貼小廣告了)
而且其中一個教授要求我用latex畫圖,幸好圖不多,要不然整死我了。再後來就是有次在課堂結束後,一位仁兄直接來問我,你的筆記能賣不?
你所學習的技能主要是由運用而生,如果現在沒得用,那你就等到能用的時候使勁去用不就好嗎?
----------------------------------------補充一下,
我學latex主要是因為自己的字奇醜無比,所以就用latex打了,到後面就打上癮了。題主學latex是為了什麼呢,如果latex並沒有提高你的整體體驗,那建議就不要學了。直接用texmacs吧,毫無學習成本。
用lyx搞出來覺得好看的東西,導出tex代碼看。這種東西用的時候學就行,不用提前學。
最好的學習方法就是 直接上手!實戰!實踐出真知!
找份muster, 剩下不會的google。(能夠正確谷歌是能力,不是運氣~)題主試著所有東西都用latex寫,寫兩篇文章格式就基本都掌握了。要是中間再寫個論文啥的,公式也都涵蓋了。順便說句,學寫碼永遠不要找書,書永遠落後於谷歌。書本是為理論提供的,不是為碼碼兒~一個latex要啥個理論,是吧題主~哈哈哈哈哈,你先寫一學期的《矩陣分析》和《組合數學》作業,然後發小論文的時候用latex排一個,畢業的時候用latex寫一篇,基本上就會累孓不愛了
這樣吧我有好多東西要寫,你來幫我寫啊:)
強迫自己使用tex做幾乎所有的排版和寫文檔的工作,比如作業、實驗報告、論文。
try, try, try!!!!
需求和任務是最好的學習方法。如果你需要去做一個東西,但是你不會。於是你就會千方百計地去尋找解決方法。最終獲得一點能力。所以,你想要更好地學習,就去找這方面的東西做。至於有什麼東西可做?多得很吧。論文、書信等等。似乎題主是CS學生,不妨就自己不會的/不熟悉的知識點用LaTeX做筆記吧。LaTeX也有語法高亮的功能,寫程序簡直美輪美奐。
提高審美水平。話說我是高中時候為了不整天看排版低劣的講義試卷而學習LaTeX陶冶情操的。
推薦閱讀:
※如何提高使用 LaTeX 的水平?
※如何定義一個LaTeX行內代碼環境?
※XeLaTeX 編譯時間太長是什麼原因?
※LaTeX 與 TeX 有什麼本質區別?
※LaTeX 中用 listings 為什麼輸出結果和程序編譯器里的有差別(對齊格式)?
TAG:學習 | 練習 | LaTeX | TeX | LaTeX排版與設計 |
