亚冠在线直播上海上港:LaTeX 技巧 964:高效使用 LaTeX

上海上港高清海报 www.wqytv.com.cn 在不久前,我在微信公眾號上看到一篇關于 使用 Vim 和 LaTeX 做筆記的文章 :

在這篇文章中,作者介紹了使用 Vim 作為 LaTeX 的編輯器,并配合 Snippets 來實現高效輸入 LaTeX 代碼的方式。但 Vim 作為一個無法使用鼠標,完全靠鍵盤來進行輸入的編輯器,學習路線非常陡峭,很多人都是聽過 Vim 的大名但從來不能夠對它的使用融會貫通。

但對于一般人而言,你不需要通過學習 Vim 來達到高效編輯 LaTeX 的方式。而是通過一些比較容易實現的方式,使得你能夠在原來的基礎上更加高效得使用 LaTeX,并達到以思考的速度輸入 LaTeX 的方式。

在第一部分,我會首先介紹高效編輯 LaTeX 文檔的幾種方式,這能夠讓你在短時間內迅速提高你的 LaTeX 輸入速度。

而第二部分,則是將輸入 LaTeX 中遇到的常見問題進行一個總結,例如輸入數學字母、自定義定理類環境、參考文獻的設置等等。盡管網絡上已經有各種各樣的教程教你如何使用這些特殊的環境,但搜索時依然能搜索到很多沒有用的方案。這是因為你用的 TeX 版本可能跟作者不同,或者是作者所說的方案已經過時但網站沒有及時更新等等。我在這里給出我對這些基本環境的一個使用,并會經常進行更新。

我用的 TeX 編譯器主要是 TeXPadTeX,這是一款支持實時編譯的 TeX 編譯器,而不需要手動進行編譯。而在 TeXPadTeX 無法處理的文檔時,我會選擇使用 TeX Live。TeXPadTeX 基本兼容 TeX Live,在使用上沒有太大的區別。而對于 CTeX,我由于沒有安裝 CTeX,所以無法測試。


目錄

  1. 高效編輯 LaTeX 文檔的幾種方式

  2. 數學字母

  3. 自定義定理類環境

  4. 插入圖片

  5. 參考文獻


1 高效編輯 LaTeX 文檔的幾種方式

1.1 實時預覽

用 LaTeX 寫文檔很好,但它也有一個很明顯的缺點,那就是用 LaTeX 寫出來的文檔,并不是所見即所得。不論是正文還是數學公式或者是參考文獻,都需要將其寫入 TeX 文件,并進行編譯以后才能生成 PDF。而在預覽 PDF 文件時,如果你發現有些地方存在書寫錯誤,你就需要更改相應的 TeX 文件,并再次進行編譯才能夠生成新的 PDF 進行預覽。

非所見即所得的 LaTeX 造成了很多困擾,這表示你必須編譯以后才能看到內容上的錯誤,而修改內容又需要重新編譯,這是一個重復性操作。另一方面,你只有在編譯時,才能夠發現 TeX 代碼中的錯誤,這在后期調試時十分不方便。

盡管現在已經有越來越多的編輯器支持「實時預覽」,也就是所見即所得。但不論是在功能上,還是體驗上,都比不上 TeXPad 這款軟件。TeXPad 的一個特色就是左側編輯右側預覽,幾乎無任何延時,并且在報錯上也是十分靈敏,方便你在編寫的過程中找到錯誤。

實時預覽與實時報錯演示
實時預覽與實時報錯演示

TeXPad 對新手十分友好,通過實時預覽和實時報錯,能夠在入門 LaTeX 時節省很多的時間在調整細節和糾錯上。有許多 LaTeX 老手并不喜歡這樣的模式,認為再復雜的式子他也可以快速輸入。我曾一度也如此認為,直至有一次要輸入以下公式:

輸入復雜的公式
輸入復雜的公式

這個公式的復雜,讓我深切體會到 TeXPad 實時編譯實時預覽的好處。向量需要加粗,括號需要變大,上標需要加上小括號等等。如果沒有實時預覽,只要有一處沒有考慮到就需要重新修改重新編譯重新預覽,反復如此。而有了實時預覽之后,就可以一次性將這個公式打出來。

1.2 文本擴展

在 LaTeX 中插入一張圖片或者一個表格并不容易。對于插入圖片而言,要定義 figure 環境,設置圖片位置、圖片的文件名,圖片標題等等。對于插入表格而言,需要定義 table 環境,設置表頭、對齊方式、表格具體內容等等。插入圖片和表格的代碼相對比較復雜,不容易記憶。

好在插入圖片或者插入表格都有固定的規律可循。比如,插入圖片時,我們通常使用類似這樣的代碼:

\begin{figure}[ht]
   \centering
   \includegraphics[width=0.8\textwidth]{x2}
   \\[0mm]
   \caption{$y=x^2$}
   \label{fig:x2}
\end{figure}

這樣,對于每一張圖片,只需這三個大括號中依次填入: 圖片名稱、圖片標題、標簽即可。通過 Keyboard Maestro 或 Text Expander 等等軟件能夠十分方便得通過這三條信息來生成一段插入圖片的 LaTeX 代碼。例如我設置通過輸入 ffig 來插入一張圖片,此時會彈出一個對話框,這個對話框就要求我輸入這三條信息,輸入完成后點擊 OK,即可在當前應用程序中生成一段插入指定圖片的 LaTeX 代碼。

快速插入一張圖片
快速插入一張圖片

這樣的場景在 LaTeX 中十分常見,例如 align 環境、itemize 環境、array 環境、section 環境等等都可以通過這樣的方式來自動插入 LaTeX 代碼。

使用文本擴展不僅僅意味著你可以少輸入很多字母,它更深刻的用處是在你不需要去記憶任何環境的代碼規則。在一臺新的電腦上,我無法在不查找資料的情況下在 LaTeX 中插入一張圖片,但在我自己的電腦上,我很輕松的通過 Keyboard Maestro 來插入一張圖片。

1.3 設置縮寫

在 LaTeX 中,可以給常用的命令設置縮寫。例如在公式中需要對向量 x 進行加粗,但每次都采用 \bm{x} 來進行加粗會比較麻煩。這時我們可以通過 \def 來指定縮寫,例如 \def\bx{\bm{x}},此時 \bx\bm{x} 完全等價。

設置縮寫
設置縮寫

通過設置縮寫,可以將 LaTeX 中較長的代碼直接通過一個小命令來使用,這在編寫 TeX 文檔時可以節省不少時間。

1.4 文本擴展與縮寫的比較

文本擴展是通過設置短語,來實現快速輸入,在內容上與原來完全一致。而縮寫則是通過在導言區定義新的命令,在正文中可以通過這個命令來達到指定的功能。他們的優缺點分別有:

  • 文本擴展的優點

  • 可以設置模板 (例如插入圖片、表格等等)

  • 簡化了打字方式,但在內容呈現上與原來一樣

  • 文本擴展與當前軟件無關,無論是在不同的文件中,甚至在不同的軟件中,文本擴展永遠可以使用

  • 縮寫的優點

  • 復雜公式中,更加容易看清公式的結構

  • 文本擴展的缺點

  • 所有內容都是按照原樣來寫,這樣復雜的公式的代碼會超級長

  • 縮寫的缺點

  • 在每一個文件中,都需要設置縮寫才可以使用

  • 不同的人對于縮寫的設置習慣不同,不利于協作

以上就是文本擴展和縮寫的比較,在實際使用中,我們需要結合起來使用。

1.5 使用 MathPix 識別公式

Mathpix Snip 是一個能夠將圖片中的公式轉成 LaTeX 代碼的工具,它能夠通過截取你想要識別的公式,并輸出 LaTeX 代碼。

圖片轉 LaTeX 的工具很多,但大部分軟件做得不是太好,識別準確率也不高。很多軟件雖然可以識別,但后期的修正 bug 會浪費很多的時間。而 MathPix 在識別準確率上做得很好,可以讓你在截圖以后直接可以放心使用識別出來的 LaTeX 代碼,這非??燜儼⑶醫謔∈奔?。

通過 MathPix 截圖并轉換成 LaTeX 代碼
通過 MathPix 截圖并轉換成 LaTeX 代碼

下面是轉換完成的 LaTeX 代碼,整體來說還是轉換的很不錯的。

$$
\frac{\partial}{\partial \theta} \int \psi_{\theta}(x) d \nu=\int \frac{\partial}{\partial \theta} \psi_{\theta}(x) d \nu
$$

總結

工欲善其事,必先利其器。在學習上我們不應該偷懶,但在寫 LaTeX 代碼上,我們應該用最高效地方式來進行編寫,以達到節省時間節省精力的目的。通過一款支持實時預覽的編輯器,使用文本擴展和縮寫相結合,再配合 MathPix 之類的圖片轉 LaTeX 工具,這將讓你編寫 LaTeX 代碼足夠地高效。


2 數學字母

在數學公式中,你可能需要為公式中的字母設置字體,例如向量或矩陣的加粗、線性變換的花體、數集的字體等等。

幾種常用字體
幾種常用字體

2.1 清除公式中的字母格式

在數學公式中,直接輸入的字母都會變為斜體。例如輸入 sin(x) 會得到一個全是斜體的 sin(x),通過 \sin(x) 進行輸入則其中的 sin 為正體。

左: sin(x),右: \sin(x)
左: sin(x),右: \sin(x)

但公式中,并不是所有的數學符號都在 LaTeX 中有對應的命令。例如矩陣的跡: tr 或者 trace,在 LaTeX 中并沒有特定的命令來輸入。這時,可以通過 \mathrm{} 來進行輸入。

左: tr(A),右: \mathrm{tr}(A)
左: tr(A),右: \mathrm{tr}(A)

通過 \mbox{} 來進行輸入時,也可以達到一樣的效果,但這兩種方法在字體和字母間距上有細微差別。

2.2 字母加粗

對于公式中的向量或者矩陣,常常需要對字母進行加粗。對字母進行加粗有兩種情況,一種是字母為正體并加粗,一種是字母為斜體并加粗。這兩種分別可以通過 \mathbf{}\bm{} 來實現。其中 bm 需要引入一個包: bm。

\bm{u},\bm{v}\in\mathbf{Col}(\mathbf{M})
\bm{u},\bm{v}\in\mathbf{Col}(\mathbf{M})

2.3 使用花體字母

在有些情況下,你可以需要使用到花體字母,例如描述線性空間的線性變換等等?;ㄌ遄幟賦S玫撓辛街?,\mathcal{}\mathscr{} ,其中 mathscr 需要引入包: mathrsfs。

\mathcal{A}\in \mathrm{End}(V)
\mathcal{A}\in \mathrm{End}(V)

2.4 使用空心字母

在描述數集時,常采用空心字母來表示。通過 \mathbb{} 能夠輸入空心字母,需要引入包: amsfonts。

a, b, c\in\mathbb{R}
a, b, c\in\mathbb{R}

2.5 其他數學字母

其他數學字母
其他數學字母

圖片來源: Texdoc Symbols


3 自定義定理類環境

定理類環境是指,文檔中關于定理、引理、命題、推論等等的環境。LaTeX 可以實現自定義定理類環境,包括設置排序單位、設置字體、分隔符等等。在 LaTeX 中,自定義定理類環境不需要另外的包 (網絡上大多的資料都提示需要 amsmath 這個包,但我不用這個包的時候也能夠正常運行),但在調整定理類環境的樣式時需要使用 ntheorem 這個包。

3.1 基本語法

通過在導言區添加 \newtheorem{環境名}{標題}[排序單位] 即可自定義定理環境。其中:

  • 環境名: 必選參數,在你的 TeX 文件中,\begin{}\end{} 中大括號內的內容。

  • 標題: 必選參數,在你的 PDF 文件中,該環境顯示出來的內容。

  • 排序單位: 可選參數,設置你的自定義環境自動標號的內容。

未設置排序單位
未設置排序單位
  • 定理名字: 可選參數,在 \begin{}[]\end{} 中中括號內的內容即為定理的名字,會通過小括號顯示在定理中。

設置定理名字
設置定理名字

3.2 排序單位

  • 取消排序: 若需要取消定理類環境的編號,你只需在定義定理類環境時,加上星號。

取消排序
取消排序
  • 按照 sectionsubsection 等排序: 只需在排序單位中設置即可。

按照 section 排序
按照 section 排序
  • theorem,lemma 等統一編號排序: 此時要將 theorem 用中括號的形式放入環境名和標題之間,不可放至末尾。

theorem, lemma 統一編號
theorem, lemma 統一編號

3.3 設置字體

  • 定理類環境默認的字體為斜體,可以通過 \theorembodyfont 來設置字體,其中 \upshape 為正體,\itshape 為斜體。\theorembodyfont 必須放在 newthorem上方。

將定理類環境中的內容設置為正體
將定理類環境中的內容設置為正體
  • 需要注意的是,這個設置會對接下來所有定義的 newtheorem 都會產生影響。在仍然需要設置斜體時,可以通過 \theorembodyfont{\itshape} 將字體變為斜體。

設置正體和斜體
設置正體和斜體

3.4 設置換行

  • 可以通過設置 \theoremstyle{break} 來使定理和正文中進行換行。\theoremstyle 必須放在 newthorem上方。

設置換行
設置換行
  • 這個命令會對接下來所有定義的 newtheorem 都會產生影響,可以通過 \theoremstyle{plain} 使其恢復為原來的樣式。

3.5 設置分隔符

可以通過 \theoremseparator{} 設置定理和正文的分隔符。

設置分隔符
設置分隔符

4 插入圖片

4.1 插入單張圖片

插入圖片需要引入包: graphicx,通過 \includegraphics 即可插入一張圖片。但一般情況下,你需要將圖片放入到一個 figure 環境中。默認情況下,在一個空白頁中,圖片會插入到頁面中間,但在一個非空白頁中,圖片會插入到頁面頂部。若想要圖片按照你指定的位置來進行插入,那就需要設定 figure 環境的參數。

沒有設置任何參數時,圖片顯示在頂部
沒有設置任何參數時,圖片顯示在頂部

figure 環境包括 4 個參數:

  • h: here,此處

  • t: top,頁頂

  • b: bottom,頁底

  • p: page,獨立一頁

在設置參數時,通常使用 ht。這表示 LaTeX 試圖將圖片放在此位置,如果不行 (此處沒有足夠的空白能夠插入該圖片) 則會將圖片放在新頁面的頂部 (如果頁面為空時,放入頁面中央)。

在設置好圖片放置的位置以后,還需要設置圖片居中,使用 \centering 即可設置圖片居中。

接下來可以插入圖片了,插入圖片的命令是 \includegraphics{},大括號中輸入圖片的文件名即可,在不引起混淆的情況下,可以不輸入文件的擴展名??裳∠釵柚猛計拇笮?,一般情況下,設置圖片寬度占文字寬度的多少即可,例如: width=0.8\textwidth。

之后則是設置圖片與標題的距離、標題、標簽等等。這就得到插入一張圖片時需要的代碼:

\begin{figure}[ht]
   \centering
   \includegraphics[width=0.8\textwidth]{}
   \\[0mm]
   \caption{}
   \label{}
\end{figure}

4.2 插入兩張圖片并水平排列

與插入一張圖片的方式基本相同,只不過需要使用 minipage 包將圖片進行包裹,并分別設置寬度即可。

插入兩張圖片并水平排列
插入兩張圖片并水平排列

代碼如下:

\begin{figure}[ht]
   \centering
   \begin{minipage}[t]{0.48\textwidth}
       \centering
       \includegraphics[width=0.8\textwidth]{x2}
       \caption{$y=x^2$}
   \end{minipage}
   \begin{minipage}[t]{0.48\textwidth}
       \centering
       \includegraphics[width=0.8\textwidth]{x3}
       \caption{$y=x^3$}
   \end{minipage}
\end{figure}

4.3 設置圖片存放路徑

在圖片較多的情況下,將圖片都存放在根目錄會導致根目錄文件較多。但如果將圖片保存在子目錄,那插入圖片時會比較麻煩,每次都需要寫上子目錄的名稱。你可以通過設置圖片存放路徑的方式,使得圖片存放指定的目錄,并在插入圖片時直接使用圖片名稱即可。

通過 \graphicspath{{figures/}} 可以設置圖片的路徑為 figures/,此時即可將圖片存入該文件夾,而在代碼中,可以直接通過文件名進行調用。


5 參考文獻

在寫文章的過程中,參考文獻的引用是一個很重要的部分,但同時這也是一個很復雜的事情,這體現在以下幾個方面

  • 參考文獻對大小寫,正體斜體等的要求極其嚴格,并且有不同的規范。

  • 正文中引用參考文獻時有很多不同的格式,例如通過 [1]、[2] 等等的數字進行引用,或者通過 Erhan et al. (2010) 這樣的作者年份來引用等等。

  • 在文章的參考文獻頁,各參考文獻的排序方式有很多規范,例如通過引用順序進行排序或者通過作者名字進行排序等等。

在 LaTeX 中,自動生成參考文獻也有諸多不同的方式。這里以 natbib 這個包來做示例,正文中顯示的引用為作者加上年份,參考文獻按照作者名字進行排序。對于別的參考文獻樣式,只需進行少許更改,即可達到指定的要求。

5.1 基本結構

首先你要引入包 natbib 并設置參數 authoryearround。這里的 authoryear 表示要顯示的內容,而 round 表示年份用小括號進行包裹 (默認用中括號進行包裹)。

然后你需要在 TeX 文檔的末尾添加參考文獻的文件,即在 \end{document} 之前加上以下兩行:

\bibliographystyle{plainnat}
\bibliography{reference}

這兩行的順序不能夠調換,第一行表示參考文獻的樣式是 plainnat,而第二行表示參考文獻的文件是 reference 這個文件。這時,TexPad 會自動問我們是否需要新建該文件。

創建 reference.bib 文件
創建 reference.bib 文件

此時的 TeX 文件結構如下,并在目錄中多出了一個 reference.bib 文件。

基本結構
基本結構

5.2 bib 文件結構

這個 bib 文件其實是一個文獻數據庫,你可以將你所有閱讀過的文獻都放到這個文件中進行管理。需要注意的是,只有你在正文中引用到的文獻,才會出現在參考文獻的列表中。

bib 文件存放所有需要使用到的參考文獻,對每一個文獻,都有一個固定的格式,例如下述內容就代表一個文獻。

@article{erhan2010does,
 title={Why does unsupervised pre-training help deep learning?},
 author={Erhan, Dumitru and Bengio, Yoshua and Courville, Aaron and Manzagol, Pierre-Antoine and Vincent, Pascal and Bengio, Samy},
 journal={Journal of Machine Learning Research},
 volume={11},
 number={Feb},
 pages={625--660},
 year={2010}
}

這并不需要你手動進行輸入,你可以通過任何文獻管理軟件如 Papers、EndNote 等等將文章引用為 BibTeX 格式,或者在 Google 學術上點擊引用并選擇 BibTeX。

從 Google 學術中獲取 BibTeX 格式的參考文獻
從 Google 學術中獲取 BibTeX 格式的參考文獻

5.3 引用參考文獻

在正文中引用參考文獻的方式非常簡單,只需輸入 \cite{} 即可,此時 TexPad 會自動彈出一個框用于選擇需要引入的參考文獻。

引用參考文獻
引用參考文獻

從上圖中你也可以看到,References 下面的參考文獻列表,會隨著正文中引用的參考文獻的變化而變化。而關于 Reference 與正文在同一頁的問題,這只需在參考文獻前添加 \newpage 即可。


選自:https://www.notion.so/LaTeX-6be09d441a594bed84d59dba2b254034

分享到:
未經允許不得轉載:LaTeX 技巧 964:高效使用 LaTeX
已有 條意見

    最新文章

    加載中...
      本站提供專業LaTeX排版、咨詢、定制服務,請點擊下圖咨詢詳情


      全國首個精品的LaTeX視頻教程,大牛帶著你入門,讓LaTeX學習不再糾結,請點擊下圖咨詢詳情

      熱門評論

        聯系我們

        交流QQ群:91940767
        本站QQ號:343083553
        郵箱聯系[email protected]
        淘寶店鋪https://shop240512713.taobao.com/ 提供排版,模板定制,培訓,圖片處理,視頻教程等LaTeX服務。

        關注我們微信公眾號

        如果您投稿或者希望加入我們團隊,請發送您的簡歷到[email protected]。
        香港五分彩是什么 mmr2赚钱 扑克牌算命 捕鱼达人2內购破解版 看你妹蛮会赚钱啊 老11选5软件下载 玖富彩票苹果 lbkeno规律 极速快3哪里下载迅雷下载 江苏快三是什么 贪玩蓝月页游怎么赚钱 四川快乐12套票玩法表 体彩e球彩进球数规则 俺也赚钱了 五分彩首页 侯耀文赚钱