關(guān)閉

澳際學費在線支付平臺

學術(shù)寫作利器——LaTeX入門教程

2017/04/05 17:03:07 編輯: 英國 瀏覽次數(shù):229 移動端

141031091001_WgEvw.jpg

文/三江小渡

LaTeX比Word更適合學術(shù)寫作的編纂語言。寫學術(shù)相關(guān)的論文、幻燈片、報告之類,其實也可以用來做簡歷,只要找對package和模板。

LaTeX是專為學術(shù)寫作開發(fā)的語言和編纂程序,擁有強大的package資源,這意味著用LaTeX寫作可以避免Word帶來的令人頭疼的排版問題,而且世界上有很多人已經(jīng)寫好了針對各種寫作格式的coding package,我們只需要套用這些package就行了。很多主流學術(shù)期刊都有自己的LaTeX模板,所以要把同一篇文章投給不同期刊的話,只要套用相應(yīng)的package就可以了,比起在word里面一點點調(diào)整頁邊距行距引用格式之類的細節(jié),LaTeX的效率顯然要高得多。

Credit:講座是敝系的幾個技術(shù)宅辦的,作者只負責記錄和整理。后面的更新是個人心得。寫這篇日志的初衷是小圈子分享和個人心得記錄,適合完全不了解tex的入門者閱讀,我的水平有限所以肯定有所疏漏,歡迎提出建議。具體使用什么寫作工具,還要看寫作內(nèi)容和個人習慣,畢竟優(yōu)化工作效率才是最終目標 :) 有興趣的可以翻翻推薦語,有不少高人給出了相關(guān)資源和意見。

第一眼看上去,LaTex的語法也許有些嚇人,但是只要你熟悉了基本的編纂模式,就會發(fā)現(xiàn)它的強大之處。 第一部分:新手資源

線上編纂 LaTeX可以進行線上編纂,好處是能夠隨時自動保存工作進度和數(shù)據(jù),而且可以多人合作編寫文檔。 常用的LaTex online compiler基本就是sharelatex.com和writelatex.com這兩個,需要注冊,基本賬戶免費。 本地編纂 如果希望用LaTeX Compiler在本地電腦工作,則需要以下軟件: For Windows: MikTex: 和TexMaker: For Mac: MacTeX: 和TexMaker,地址同Windows. 之所以都需要兩個軟件是因為它們各自的作用不同:MikTex是package管理軟件,而TexMaker是用這些package和你自己的文字來生成最終PDF文件的軟件。package的作用會在下面專門解釋。 下面以sharelatex.com的界面為例子演示LaTeX的基本編纂規(guī)則和package的作用。 第二部分:文檔編寫基礎(chǔ) 基本界面 打開sharelatex.com注冊賬號之后,點擊右上角的New Project,在下拉菜單中選擇example project,隨便起個名字,出現(xiàn)這個Metro風格的界面。

ShareLaTeX基本界面
ShareLaTeX基本界面
如果圖太小看不清請戳 B欄中藍色的字符是function,function后面{}的里面是argument。LaTeX的function使用“”符號表示開頭,“%”表示comment out即不執(zhí)行此行代碼。有編程知識的同學都知道這些語句的意義是把特定的argument插入到function表達式中,LaTeX也不例外。 基本function解釋 documentclass{article}的意思是這篇文檔的類型是學術(shù)文章,除此之外也有book,booklet等其他出版物類型,這一句限定了排版能夠使用的格式,比如說如果類型是article,那么排版就可以用APA/Chicago/MLA等版式,而不是專用于booklet的一些版式; userpackage這一行不用改動,只是定義文檔的編碼方式; title是整個文檔的標題,會自動居中,可以試著把例子中的42改成其他標題,再點擊Recompile,可以看到生成了帶新標題的文件。 再往下,author和date是文檔的作者和日期信息,如果想讓date自動顯示今天的日期,就把這一行改為date{today}。 下面兩行usepackage規(guī)定了文檔使用的文字排版是natbib,圖表排版是graphicx。natbib在理科寫作中比較常用,如果要換成文科生常用格式比如APA的話,把上面一行改成:usepackage{apacite}。 這里就要講到package的作用了。package類似于一個插件,能夠把各種事先設(shè)定好的標準排版方式、圖表排列方式、公式生成方式等等直接插入文檔中,免去了手動調(diào)整這些參數(shù)的麻煩。很多常用的package都有高人寫好的代碼,我們只要拿過來用就行了,比用word調(diào)整頁邊距、頁碼等等要方便得多。apacite就算是一個廣泛使用的package,我們學校也有專門的機構(gòu)負責編寫論文排版的package,我們只要在usepackage{}中把這些package作為argument插入{}就可以了。 如果需要的話,我們可以在下一行加一個function:tableofcontents,然后點擊recompile,可以看到latex會自動在標題后面插入目錄,而且目錄內(nèi)容會根據(jù)后面的正文小標題改變。還可以在tableofcontents后面加上另一個function:pagebreak,這樣文檔的正文就會另起一頁。pagebreak類似于word里面的分頁符,在任何需要分頁的地方都可以使用。 begin{document}是正文正式的開始標志,相應(yīng)的結(jié)束標志end{document}則在文檔最后。end{document}后面的任何內(nèi)容都不會在compile里面顯示出來,所以如果我們需要只把編碼的一部分生成文檔,只要在這部分的結(jié)束處輸入end{document}就行了。begin和end的命令也適用于標記文中插入的圖表的起始和結(jié)束。 很多時候我們還需要在文章前面加上abstract,方法也很簡單,只要像下面這樣進行編碼: begin{document} maketitle begin{abstract} (這里放置abstract的文字) end{abstract} 就可以了。 注意maketitle這一行一定要在begin{document}的下面,否則LaTeX會判定為語法錯誤。maketitle命令的作用是把標題信息(也就是begin{document}之前的title,author,date等)顯示出來,如果comment out或者刪去maketitle這一行,這些標題信息將不會顯示在C欄的PDF中。當然,如果你正好不需要顯示標題,就可以刪去這個命令。 section{introduction}是對文檔部分的劃分,括號里是這部分的名稱,latex會生成具體的部分數(shù)字編號。子分層的命令是subsection。一般來說latex不允許過多子分層,比如說在usepackage{apacite}規(guī)則中,只允許兩個子分層也就是subsubsection{}。 了解了以上基礎(chǔ)知識之后,就可以進行最基本的LaTeX文檔編寫了。下面幾部分要講的是如何插入引用和生成參考書目。 第三部分:引用 Google Scholar和LaTeX的協(xié)作 打開Google Scholar首頁,點擊右上角設(shè)置,將“參考書目管理軟件”設(shè)置為“顯示導入BibTex的鏈接”。然后隨便搜索一篇文章,點擊搜索結(jié)果下面的“導入BibTex”,可以看到幾行代碼,這就是LaTeX能夠識別的bibliography。
設(shè)置導入BibTeX之后的Google Scholar條目
設(shè)置導入BibTeX之后的Google Scholar條目
點擊“導入BibTex”之后的代碼
點擊“導入BibTex”之后的代碼
把這幾行代碼復制粘貼到sharelatex界面A欄的rerence.bib中:
講代碼復制到rerence.bib里面
將代碼復制到rerence.bib里面
但是如果這時候點recompile,會看到生成的rerence里并沒有新加入的這篇文章,因為我們在正文中還沒有引用它。 于是接下來講一下如何在正文中插入引用。 在正文中插入引用 復制剛才粘貼的代碼的第一行中劃紅線的內(nèi)容(也就是BibTeX自動生成的引用文章代碼),然后在正文中需要插入引用的部分插入citeA{文章代碼},這樣就能在正文中引用了。
正文中引用,注意只復制文章代碼
正文中引用,注意只復制文章代碼
這時候再點recompile,才能看到rerence中出現(xiàn)了新加的這篇文章。注意:citeA是APA格式的引用function,示例文檔代碼里面的citep是另一種排版格式的引用function。 在rerence中,latex會自動調(diào)整文章標題的大小寫為只大寫首單詞的開頭字母。如果需要保留文章原標題的大小寫格式,就在rerence.bib里面相應(yīng)文章標題title的兩邊再加上一個括號{},比如title={{A bird’s-eye view of learner CORPUS research}},就可以保留原標題的大小寫了。 第四部分:LaTeX維基百科全書

上面也提到了LaTeX的function中有很多不同的package供選擇,那么到哪里去找不同類型的package呢?比如說我這篇文章用了apacite,那如果我下一篇文章要用MLA格式,該用什么package? LaTeX的維基頁面 頁面中詳細列出了各部分function所能夠使用的package,只要點開目錄鏈接去找到package名稱就行了。對于本地編纂軟件來說,則需要下載package之后用MikTex來進行管理。 (今天的講座只講到了這里,下周繼續(xù)寫) 2013. 04.05 期末趕論文期間更新 自從寫了LaTeX教程筆記之后,我試著用ShareLatex代替word完成了三個written assignment和兩個presentation,寫作體驗和效果都還不錯。所以像我一樣的文科僧大可不必對寫代碼這件事感到頭疼,比起HTML/CSS,LaTeX還算是對新手比較友好的,畢竟很多常用的格式和排版都有寫好的LaTeX package。 下面就以我自己已經(jīng)完成的一個assignment和一個presentation作為例子來講LaTeX的具體應(yīng)用和注意事項。主要涉及的document type有article和beamer兩種,主要的功能有1)用qtree畫樹形結(jié)構(gòu),2)用tabular做表格,3)調(diào)整行間距/字體字號/頁邊距等,4)beamer(幻燈片)的一些簡單排版。 ********實例一:用Beamer做presentation******* LaTeX也可以做幻燈片,而且直接保存為pdf格式,不用擔心pptx在不同的電腦上渲染效果不同了。網(wǎng)上有一個流傳較廣的Beamer Quick Start: 也比較實用。 【PREAMBLE】

首先在preamble(就是begin{document}前面的那些部分)中定義:documentclass[xcolor=dvipsnames]{beamer} 其中方括號[]里的指令是要求beamer使用xcolor來生成dvipsnames指定的色彩效果。LaTeX的很多指令都是這個[]{}的格式,大多數(shù)遵循【[ ]定義具體參數(shù) - { }定義上層argument】的規(guī)則,所以這一行的意思是“建立一個顏色可由dvip指定的beamer文件”。(beamer自帶的dault) 然后下面這幾行: usecolortheme[named=Maroon]{structure} usetheme{Boadilla} usepackage{helvet} usecolortheme就是來指定beamer的顏色是Maroon,{structure}的意義我也不清楚,大概是只在heading和title這些構(gòu)建structure的文字上菜使用自定義顏色的意思。所以可以看到,生成的slide中只有標題和頁腳等部分才是紅色的。 usetheme是指定beamer的主題,類似ppt中的設(shè)計模板。BQS中給出了好幾個常用的theme。需要注意的是有一些不常用的theme是不會直接被sharelatex識別的,必須和開發(fā)者設(shè)計的其他的指令配合使用。不過類似Boadilla,Warsaw,Singapore和BQS里面給的這些theme都能被sharelatex識別,而且足夠應(yīng)付一般的presentation了。 usepackage{helvet}用來指定beamer使用的字體。beamer的默認字體是略帶圓角的某個字體,如果不喜歡的話就在preamble中另外設(shè)置,幾個比較常用的helvet (Helvetica),times (Times New Roman),bookman (Bookman Old Style),serif等等都是不錯的選擇。字體對應(yīng)的名稱見: 中的第48頁。 【標題和頁眉設(shè)置】

title[Short title of the presentation]{Full title of the presentation} 標題:方括號是縮寫,會顯示在每一張slide的頁腳;大括號里是完整的標題。 subtitle{subtitle here} 副標題。 author[John Smith]{John Smith} 演講者姓名。方括號里的名字會顯示在頁腳中。 institute[XX University]{M.A. in XXX XXX University[1ex] texttt{example@XXX.edu}} 演講者的affiliation。方括號還是頁腳內(nèi)容。大括號中的用來分行,[1ex]用來減小email的字號。 date[March 2013]{today} 演講日期。估計都已經(jīng)摸著規(guī)律了,beamer中title這幾行,方括號里都是頁腳的內(nèi)容。 【插入新幻燈片】

begin{document}之后就是幻燈片正文了。每一張幻燈片的起始和結(jié)束用begin{frame}和end{frame}來標示。這兩個tag之間的代碼就是這張幻燈片上的內(nèi)容。begin{frame}{slide title}則可以把title直接插入頁眉,更符合實際需要;但是相應(yīng)的end{frame}后面不需要加上{slide title}。 【插入Bulletin point】

begin{itemize} item (空一格后輸入每個point的內(nèi)容) item (同上) item ... end{itemize} 【插入數(shù)字列表】

begin{enumerate} item item item ... end{enumerate} (學過HTML的同學可以把itemize和enumerate理解為ordered list和unordered list) 【分行】 在兩行文字中間插入par。也可以用一行空白來代替。 需要較大行間距,則可在兩行之間插入: par bigskip 【插入圖片】

先把要插入的圖片用A欄的upload file導入。如果compiler是pdfLaTeX的話,常用圖片格式比如JPG/PNG/BMP都兼容,如果compiler是LaTeX則只有EPS才能插入。compiler可在setting中設(shè)置。 導入之后,輸入插入圖片的指令includegraphics[scale=X]{X.PNG},如下圖所示,左邊為代碼,右邊為對應(yīng)的slide:

用includegraphics插入圖片(紅色劃線部分)
用includegraphics插入圖片(紅色劃線部分)
scale就是圖片的縮放,X一般是個大于0小于1的數(shù)字,比如0.6就是原圖片縮放百分之六十。{ }里面是圖片文件名。【注意:圖片文件名中不能有空格,否則latex無法識別】 如果需要讓圖片居中,則需要centering這個命令: ... par centering includegraphics[] {} par ... 經(jīng)個人實驗得出結(jié)論:par這個空行命令在這里是必不可少的,因為如果不用par把居中的圖片和上下文分隔開的話,上下文靠近圖片的部分也會居中。 插入圖片的方法是把圖片作為Figure插入,比如:(建立一個example file也能看到類似的例子) begin{figure}[h!] centering includegraphics[scale=1.7]{universe.jpg} caption{The Universe} label{threadsVsSync} end{figure} 這樣還能給圖片加上caption,功能更完善一些。 【控制內(nèi)容顯示先后順序】

LaTeX也可以實現(xiàn)powerpoint那種逐一顯示每一項的效果。還是剛才那張圖:

用pause控制內(nèi)容顯示順序(藍色劃線)
用pause控制內(nèi)容顯示順序(藍色劃線)
加入pause這個命令后,下面新加入的內(nèi)容會在一張新的slide上顯示,播放的時候,配合講解,可以營造一種“揭曉謎底”“步步推進”的效果。 【插入簡單表格】
插入簡單表格
插入簡單表格
圖片中代碼太小看不清楚所以直接復制在這里:

begin{frame}{Quantifier and Scope} The scope of quantifier is directly rlected by the surface structure; par bigskip begin{center} begin{tabular}{|c|c|c|c|} hline textsc{Obj} position & Scrambling & Trace & Ambiguity hline Spec,TP & A-scrambling & non-recoverable & unambiguous hline Spec,HP & A'-scrambling & recoverable & ambiguous hline end{tabular} end{center} (cf.23 and 24) par bigskip Disambiguation can be reached by inserting a higher adverb such as 'fortunately'. end{frame} 關(guān)鍵就是從begin{center}到end{center}之間的這一段代碼。 {center}是表格居中的命令; begin{tabular}{|c|c|c|c|} hline這一行建立表格的結(jié)構(gòu)。其中第二個{ }里面有多少個用“|” 分開的格子,表格就有多少個column??梢园选皘”理解為vertical line,很形象。每個格子里面能出現(xiàn)的字幕只有r/c/l三種,分別代表左對齊、居中、右對齊,所以這個表格所有的單元格都是居中對齊的。hline是加入一個horizontal line也就是分行的命令。 再往下是表格的具體內(nèi)容: Spec,TP & A-scrambling & non-recoverable & unambiguous hline 因為設(shè)置了表格有四個column,所以對應(yīng)的每一個row里面就要用三個“&”把四個column分隔開?!?”相當于“|”的作用。每一個row的結(jié)束由“空格 + ”標示。最后的hline用來給這一橫行下面加上邊欄。如果沒有hline,就沒有這一行下面的邊欄。 以此類推,最后以 end{tabular} end{center} 結(jié)束這個表格。

? 版權(quán)屬于原作者三江小渡 商業(yè)轉(zhuǎn)載請聯(lián)系原作者

立即咨詢
  • 澳際QQ群:610247479
  • 澳際QQ群:445186879
  • 澳際QQ群:414525537