學術寫作利器LaTeX入門,再也不用為word的排版頭痛

2021-02-20 燕園未名生活圈

LaTeX——比Word更適合學術寫作的編纂語言。

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

第一眼看上去,LaTex的語法也許有些嚇人,但是只要你熟悉了基本的編纂模式,就會發現它的強大之處。

第一部分:新手資源


線上編纂

LaTeX可以進行線上編纂,好處是能夠隨時自動保存工作進度和數據,而且可以多人合作編寫文檔。

常用的LaTex online compiler基本就是sharelatex.com和writelatex.com這兩個,需要註冊,基本帳戶免費。

本地編纂

如果希望用LaTeX Compiler在本地電腦工作,則需要以下軟體:

For Windows:

MikTex: http://miktex.org/download和TexMaker: http://www.xm1math.net/texmaker/download.html

For Mac:

MacTeX: http://www.tug.org/mactex/index.html和TexMaker(地址同Windows)

之所以都需要兩個軟體是因為它們各自的作用不同:MikTex是package管理軟體,而TexMaker是用這些package和你自己的文字來生成最終PDF文件的軟體。package的作用會在下面專門解釋。

下面以sharelatex.com的界面為例子演示LaTeX的基本編纂規則和package的作用。

第二部分:文檔編寫基礎


基本界面

打開sharelatex.com註冊帳號之後,點擊右上角的New Project,在下拉菜單中選擇example project,隨便起個名字,出現這個Metro風格的界面。

ShareLaTeX基本界面

從左到右的三豎欄分別是文件相關信息、編碼欄和文件生成欄,暫時叫它們ABC欄,其中B欄是進行文檔編寫的主要工作區。B欄中的改動在點擊C欄的Recompile之後才能看到生成文件的相應改動。

B欄中藍色的字符是function,function後面{}的裡面是argument。LaTeX的function使用「」符號表示開頭,「%」表示comment out即不執行此行代碼。有編程知識的同學都知道這些語句的意義是把特定的argument插入到function表達式中,LaTeX也不例外。

基本function解釋

documentclass{article}的意思是這篇文檔的類型是學術文章,除此之外也有book,booklet等其他出版物類型,這一句限定了排版能夠使用的格式,比如說如果類型是article,那麼排版就可以用APA/Chicago/MLA等版式,而不是專用於booklet的一些版式;

userpackage這一行不用改動,只是定義文檔的編碼方式;

title是整個文檔的標題,會自動居中,可以試著把例子中的42改成其他標題,再點擊Recompile,可以看到生成了帶新標題的文件。

再往下,author和date是文檔的作者和日期信息,如果想讓date自動顯示今天的日期,就把這一行改為date{today}。

下面兩行usepackage規定了文檔使用的文字排版是natbib,圖表排版是graphicx。natbib在理科寫作中比較常用,如果要換成文科生常用格式比如APA的話,把上面一行改成:usepackage{apacite}。

這裡就要講到package的作用了。package類似於一個插件,能夠把各種事先設定好的標準排版方式、圖表排列方式、公式生成方式等等直接插入文檔中,免去了手動調整這些參數的麻煩。很多常用的package都有高人寫好的代碼,我們只要拿過來用就行了,比用word調整頁邊距、頁碼等等要方便得多。apacite就算是一個廣泛使用的package,我們學校也有專門的機構負責編寫論文排版的package,我們只要在usepackage{}中把這些package作為argument插入{}就可以了。

如果需要的話,我們可以在下一行加一個function:tableofcontents,然後點擊recompile,可以看到latex會自動在標題後面插入目錄,而且目錄內容會根據後面的正文小標題改變。還可以在tableofcontents後面加上另一個function:pagebreak,這樣文檔的正文就會另起一頁。pagebreak類似於word裡面的分頁符,在任何需要分頁的地方都可以使用。

begin{document}是正文正式的開始標誌,相應的結束標誌end{document}則在文檔最後。end{document}後面的任何內容都不會在compile裡面顯示出來,所以如果我們需要只把編碼的一部分生成文檔,只要在這部分的結束處輸入end{document}就行了。begin和end的命令也適用於標記文中插入的圖表的起始和結束。

很多時候我們還需要在文章前面加上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會生成具體的部分數字編號。子分層的命令是subsection。一般來說latex不允許過多子分層,比如說在usepackage{apacite}規則中,只允許兩個子分層也就是subsubsection{}。

了解了以上基礎知識之後,就可以進行最基本的LaTeX文檔編寫了。下面幾部分要講的是如何插入引用和生成參考書目。

第三部分:引用

Google Scholar和LaTeX的協作

打開Google Scholar首頁,點擊右上角設置,將「參考書目管理軟體」設置為「顯示導入BibTex的連結」。然後隨便搜索一篇文章,點擊搜索結果下面的「導入BibTex」,可以看到幾行代碼,這就是LaTeX能夠識別的bibliography。

設置導入BibTeX之後的Google Scholar條目

點擊「導入BibTex」之後的代碼

把這幾行代碼複製粘貼到sharelatex界面A欄的reference.bib中:

將代碼複製到reference.bib裡面

但是如果這時候點recompile,會看到生成的reference裡並沒有新加入的這篇文章,因為我們在正文中還沒有引用它。

於是接下來講一下如何在正文中插入引用。

在正文中插入引用

複製剛才粘貼的代碼的第一行中劃紅線的內容(也就是BibTeX自動生成的引用文章代碼),然後在正文中需要插入引用的部分插入citeA{文章代碼},這樣就能在正文中引用了。

正文中引用,注意只複製文章代碼

這時候再點recompile,才能看到reference中出現了新加的這篇文章。注意:citeA是APA格式的引用function,示例文檔代碼裡面的citep是另一種排版格式的引用function。

在reference中,latex會自動調整文章標題的大小寫為只大寫首單詞的開頭字母。如果需要保留文章原標題的大小寫格式,就在reference.bib裡面相應文章標題title的兩邊再加上一個括號{},比如title={{A bird’s-eye view of learner CORPUS research}},就可以保留原標題的大小寫了。

第四部分:LaTeX維基百科全書

上面也提到了LaTeX的function中有很多不同的package供選擇,那麼到哪裡去找不同類型的package呢?比如說我這篇文章用了apacite,那如果我下一篇文章要用MLA格式,該用什麼package?

LaTeX的維基頁面http://en.wikibooks.org/wiki/LaTeX 就提供了這樣一個百科全書式的資源,也有PDF版可以下載。

頁面中詳細列出了各部分function所能夠使用的package,只要點開目錄連結去找到package名稱就行了。對於本地編纂軟體來說,則需要下載package之後用MikTex來進行管理。

自從寫了LaTeX教程筆記之後,我試著用ShareLatex代替word完成了三個written assignment和兩個presentation,寫作體驗和效果都還不錯。所以像我一樣的文科僧大可不必對寫代碼這件事感到頭疼,比起HTML/CSS,LaTeX還算是對新手比較友好的,畢竟很多常用的格式和排版都有寫好的LaTeX package。

下面就以我自己已經完成的一個assignment和一個presentation作為例子來講LaTeX的具體應用和注意事項。

主要涉及的document type有article和beamer兩種,主要的功能有1)用qtree畫樹形結構,2)用tabular做表格,3)調整行間距/字體字號/頁邊距等,4)beamer(幻燈片)的一些簡單排版。

LaTeX也可以做幻燈片,而且直接保存為PDF格式,不用擔心PPTX在不同的電腦上渲染效果不同了。網上有一個流傳較廣的Beamer Quick Start,我的slide基本上也是照著這個教程做出來的,下文簡稱為BQS。

PREAMBLE

首先在preamble(就是begin{document}前面的那些部分)中定義:

documentclass[xcolor=dvipsnames]{beamer}

其中方括號[]裡的指令是要求beamer使用xcolor來生成dvipsnames指定的色彩效果。LaTeX的很多指令都是這個[]{}的格式,大多數遵循【[ ]定義具體參數 - { }定義上層argument】的規則,所以這一行的意思是「建立一個顏色可由dvip指定的beamer文件」。(beamer自帶的default)

然後下面這幾行:

usecolortheme[named=Maroon]{structure}

usetheme{Boadilla}

usepackage{helvet}

usecolortheme就是來指定beamer的顏色是Maroon,{structure}的意義我也不清楚,大概是只在heading和title這些構建structure的文字上菜使用自定義顏色的意思。所以可以看到,生成的slide中只有標題和頁腳等部分才是紅色的。

usetheme是指定beamer的主題,類似PPT中的設計模板。BQS中給出了好幾個常用的theme。需要注意的是有一些不常用的theme是不會直接被sharelatex識別的,必須和開發者設計的其他的指令配合使用。不過類似Boadilla,Warsaw,Singapore和BQS裡面給的這些theme都能被sharelatex識別,而且足夠應付一般的presentation了。

usepackage{helvet}用來指定beamer使用的字體。beamer的默認字體是略帶圓角的某個字體,如果不喜歡的話就在preamble中另外設置,幾個比較常用的helvet (Helvetica),times (Times New Roman),bookman (Bookman Old Style),serif等等都是不錯的選擇。字體對應的名稱見:http://www.uncg.edu/cmp/reu/presentations/Charles%20Batts%20-%20Beamer%20Tutorial.pdf 中的第48頁。

標題和頁眉設置

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。方括號還是頁腳內容。大括號中的用來分行,[1ex]用來減小email的字號。

date[March 2013]{today}

演講日期。估計都已經摸著規律了,beamer中title這幾行,方括號裡都是頁腳的內容。

插入新幻燈片

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

插入Bulletin point

begin{itemize}

item (空一格後輸入每個point的內容)

item (同上)

item

...

end{itemize}

插入數字列表

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中設置。

導入之後,輸入插入圖片的指令includegraphics[scale=X]{X.PNG},如下圖所示,左邊為代碼,右邊為對應的slide:

用includegraphics插入圖片(紅色劃線部分)

scale就是圖片的縮放,X一般是個大於0小於1的數字,比如0.6就是原圖片縮放百分之六十。{ }裡面是圖片文件名。【注意:圖片文件名中不能有空格,否則latex無法識別】

如果需要讓圖片居中,則需要centering這個命令:

...

par

centering

includegraphics[] {}

par

...

經個人實驗得出結論:par這個空行命令在這裡是必不可少的,因為如果不用par把居中的圖片和上下文分隔開的話,上下文靠近圖片的部分也會居中。

插入圖片的方法是把圖片作為Figure插入,比如:(建立一個example file也能看到類似的例子)

begin{figure}[h!]

centering

includegraphics[scale=1.7]{universe.jpg}

caption{The Universe}

label{threadsVsSync}

end{figure}

這樣還能給圖片加上caption,功能更完善一些。

控制內容顯示先後順序

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

用pause控制內容顯示順序(藍色劃線)

加入pause這個命令後,下面新加入的內容會在一張新的slide上顯示,播放的時候,配合講解,可以營造一種「揭曉謎底」「步步推進」的效果。

插入簡單表格

插入簡單表格

圖片中代碼太小看不清楚所以直接複製在這裡:

begin{frame}{Quantifier and Scope}

The scope of quantifier is directly reflected 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}

關鍵就是從begin{center}到end{center}之間的這一段代碼。

{center}是表格居中的命令;

begin{tabular}{|c|c|c|c|} hline這一行建立表格的結構。其中第二個{ }裡面有多少個用「|」 分開的格子,表格就有多少個column。可以把「|」理解為vertical line,很形象。每個格子裡面能出現的字幕只有r/c/l三種,分別代表左對齊、居中、右對齊,所以這個表格所有的單元格都是居中對齊的。hline是加入一個horizontal line也就是分行的命令。

再往下是表格的具體內容:

Spec,TP & A-scrambling & non-recoverable & unambiguous hline

因為設置了表格有四個column,所以對應的每一個row裡面就要用三個「&」把四個column分隔開。「&」相當於「|」的作用。每一個row的結束由「空格 + 」標示。最後的hline用來給這一橫行下面加上邊欄。如果沒有hline,就沒有這一行下面的邊欄。

以此類推,最後以

end{tabular}

end{center}

結束這個表格。

本文轉自寄託天下

歡迎關注北大人生活圈,便利自己的燕園生活。

相關焦點

  • LaTeX 搞定學術論文排版王者 (上)
    雖然編輯起來較為麻煩,但是最終成品相對於word排版來說,的確整潔規範太多。  對於致力於「研究學術」的同學,latex是一項必需的技能,尤其對於理工科同學來說。  對於文科同學,進一步學術研究也需要接觸latex,但是也推薦markdown,畢竟更輕量更簡單易學。markdown教程見歷史記錄,或在小菜單自查。  這系列文章整理了我自己學習latex的一些心得,希望幫助大家快速上手latex。
  • 美賽排版利器LaTex
    別擔心,小競用兩次推文為大家系統地梳理一下LaTex入門需要知道的新手知識,手把手領進LaTex之門。TEX是為排版文字和數學公式而開發的軟體,LaTex是一種使用TEX程序作為排版引擎格式的排版系統,可以粗略地將它理解成是對TEX的一層封裝。
  • 學習|Latex排版
    補充之前發的latex排版!💕友情提醒,不用刻意去學習latex,等準備投稿了,再去學一下。
  • LaTeX 相對於 Word 有什麼優勢?
    word是反的,且後期陡峭的點比LaTeX高很多。參見排版(Typeset)社區中的兩個圖。最後引用經典入門教材 lshort 中 玩笑式地 提到的幾個 LaTeX 的缺點(亂翻的大意):作者:punishmenthttps://www.zhihu.com/question/20542113/answer/86815246LaTeX和Word的比較實際上是一個只存在英語學術寫作領域的問題,因為別的領域很少用到
  • LaTeX技巧903:LaTeX 設置的行距與 Word 的行距如何對應?
    我在用LaTeX排版本科學位畢業論文時遇到了行距的問題。學校嚴格要求正文行距是1.2倍(而且是以word為標準的)。
  • 學會LaTeX、讓國際期刊論文排版、學術海報、個人簡歷不再是煩惱!
    別急……給你推薦一個論文排版利器——LaTeX,輕輕鬆鬆就可以搞定以上各種排版問題,在使用體驗和實現效果上,也足以甩Word三條街:迎合期刊要求,使用LaTeX格式,論文再也不怕被退迴轉投只需套用期刊模板對應的Package,輕鬆!
  • 如何優雅的完成論文排版,有LaTeX就夠了
    別急……給你推薦一個論文排版利器——LaTeX,輕輕鬆鬆就可以搞定以上各種排版問題,在使用體驗和實現效果上,也足以甩Word三條街:迎合期刊要求,使用LaTeX格式,論文再也不怕被退迴轉投只需套用期刊模板對應的Package,輕鬆!
  • LaTeX專欄001|入門篇-談安裝與排版心得
    我的故事 17年9月,第一次使用該軟體,主要是為了數學建模;17年12月,用於排版美賽模擬前的優秀論文,但第一年美賽我還的確是用word提交.,所想即所得高級功能不易掌握進階難,但一般用不到處理長文檔需要豐富經驗和短文檔處理基本無異花費大量時間調格式無需擔心格式,專心作者內容公式排版差強人意尤其擅長公式排版二進位格式,兼容性差文本文件,易讀、穩定付費商業許可自由免費使用跨平臺幾乎可以運行於所有的電腦硬體和作業系統平臺;科學性,會根據用戶設定自動排版格式,自動編號與引用.
  • LaTeX極簡入門指南
    保存後你會在文件夾中看到一個以tex為後綴的文件,這就是用編輯器打開的latex代碼文件。然後打開剛才的文件夾,你會發現除了.tex之外,還有幾個.aux.log等後綴的文件,這些是LaTeX編譯產生的中間文件,不用管它,.pdf就是我們寫出的pdf文件,可以打開它看到剛剛寫出來的結果。(但是編譯時不能打開這個pdf,否則編譯器修改不了)       可以說,從0熟悉入門代碼,就是要從讀代碼開始。
  • 【入門教程】使用LaTeX撰寫你的實驗報告
    LaTeX是什麼基於TeX的排版工具,尤其擅長於排版科技論文,由於它在排版數學公式方面的強大。
  • AI基礎:論文寫作工具
    為了寫作,必須要閱讀大量的論文。搭出公式來挺費勁的,在別人論文裡見過類似的,Mathpix可以輕鬆把圖片轉化為latex源碼,略作修改就用到自己文章裡了。在線的latex編輯和編譯工具:overleaf 論文最終展現出來的就是一個PDF格式的文檔。當然可以使用word,但光排版這件事情,就能耗費你一半的精力。
  • 9小時帶你搞定LaTeX,學術論文排版不煩惱!
    相信大家在寫畢業論文、學術論文、期刊投稿時,很容易遇到一次又一次格式調整帶來的全文排版問題。每次都讓我們很頭大,反反覆覆地調整格式真是讓人痛苦不堪!別怕!學長這就為大家奉上一個高效的論文排版神器——LaTeX!讓你徹底告別上述論文排版中遇到的難題!LaTeX是一款專業的高品質的電子排版系統,可以對文檔排版進行精細的排版操作。
  • LaTeX——寫文章排版神器
    今天大年初一,老王先給大家拜個年。
  • 第四顆瓜子:Latex論文排版工具
    Latex相對於word對數學公式更友好,格式更漂亮規範,處處體現了科研人員的嚴謹與認真。開始使用Latex到愛上Latex的過程,形容一下,就像「榴槤寶們」第一次吃到榴槤之後欲罷不能的全過程。我是因為上個學期一門專業課的作業才「不得不」強迫自己學習Latex的,在之前本科時用過Adobe Indesign(一個設計類排版軟體)。
  • 收藏 | 科研工作者不能錯過的3個latex工具
    可是很多科研工作者都有這樣的體驗:寫一篇文章,花在排版時間的比寫論文的時間還長,真是讓人抓狂啊!😣 如何提高工作效率,把時間花在刀刃上?本文總結了3個在線latex工具,讓你在短時間內也能成為latex排版高手。想用latex寫論文,但是第一行都忘記怎麼寫了,怎麼辦?其實你需要的只是一個模板。
  • 海外青椒談社科類英文寫作經驗 (1)
    本文給大家講些寫作投稿過程中很細碎的東西。並不是如何寫作布局謀篇。第一部分先講講word與latex的選擇。直到現在,知了老師還是覺得latex非常好用。看著word下面mathtype排出的公式知了老師總是想哭。
  • LaTeX超入門級介紹(一)
    興許以同是初學者的身份介紹LaTeX給大家介紹這個裝逼利器更能通俗易懂也說不定。首先在20個字以內簡單介紹一下LaTeX是什麼:LaTeX是一個把「代碼」轉換成文檔的工具。換句話說,你在一邊打著代碼,另外一邊文檔就出來了。換行、制表、插圖等等全部通過打代碼來完成。之所以這裡的代碼打了雙引號,是因為這個代碼並不太像計算機程式語言,它的語法全部為實現它文檔編輯的功能服務。
  • 論文排版難?不妨試試LaTeX!
    目前流行的排版軟體有Word,而LaTeX是一種基於TeX的排版系統,雖說沒那麼主流,但它比Word更適合學術寫作的文本編輯。利用它能在短時間內生成很多具有書籍質量的印刷品,尤其是生成複雜表格和數學公式。因此它非常適用於生成高印刷質量的科技和數學類文檔。Tikz是LaTex原生支持的圖包來,可以畫論文中的插圖。
  • 5個方面介紹SCI 論文寫作利器
    下圖總結了幾款好用的論文寫作利器↓↓↓論文排版最常用的Word不必多說,Latex寫作利器Sublime Text我們也做過介紹(推文傳送門:論文編輯神器Sublime Text,讓論文寫作過程事半功倍),今天就給各位安利兩款排版工具——Authorea和Manuscripts。
  • 總結|學術英語寫作
    加州大學爾灣分校的寫作課指出學術英語的寫作需要一個採用、四個避免:採用第三人稱、避免俚語口語、避免縮寫、避免情緒語言、避免 clichés 陳詞濫調。學術寫作需要採用學術詞彙來表達,以下是個人整理的一些詞彙資源。