LaTeX 第四課:目錄與格式定製
本期的主要內容有:
- 目錄的生成與定製
- 章節標題格式的定製
- 版面大小的定製
- 頁面風格的定製
中間還會穿插介紹一些頁面控制的命令。
---
目錄的生成與定製
上期我們提到了如何在 LaTeX 中安排文檔的組織結構,現在我們需要給它們來一個集合,就是製作目錄。製作目錄其實非常簡單,只需要一個命令,就是 ableofcontents 。這個命令放在哪裡,目錄就會出現在哪裡。和交叉引用相同的一個特點是,目錄的排版也需要兩次編譯。一方面是因為其中涉及到頁碼,另一方面是涉及到各個章節的標題。我們繼續用上次的源代碼給大家舉例。
如果我們使用帶星號的章節命令,這個章節將不編號也不編目。這個時候對應的標籤會被打到上一個章節中去,所以如果你用了這樣的章節,就不要用交叉引用啦。效果如下:
還有的時候,章節的標題特別長,可能會超出目錄一行所能裝下的量,這樣直接編目會比較難看,比如這樣:是不是丑哭了!!!所以我們需要短標題,在目錄中顯示短標題而在實際的文檔中顯示正常的標題,示例如下:大家注意第8行。我們在 section 命令和小節標題之間加入了一個用方括弧括起來的參數,這個就是顯示在目錄中的標題。這是 LaTeX 命令的一種用法,方括弧中的內容叫做選項(options)。第2行中使用 hyperref 宏包時,我們就加入了 colorlinks=true 的選項。選項可以讓命令以不同的形式表現出來,給大家多一些發揮的空間。如果涉及多個選項,需要把選項之間用半形逗號隔開。如果目錄的介紹到這裡就結束了,怎麼能體現我的「滿懷誠意」呢?
目錄對於圖表而言也是可以用的。如果你的文檔中有很多圖表,也可以專門為它們建目錄。對應的命令是 listoffigures 和 listoftables。它會收集對應圖表中的標題來產生圖表的目錄。圖表的插入我們將在下一期中介紹。
如果在想讓目錄單獨佔一頁,只需要在 ableofcontents 後面加上
ewpage 命令,就可以在目錄之後強制分頁。這個命令在其他地方也可以使用。
默認情況下,目錄的深度是3級。也就是說,對於 ctexart/article 文類,只對 section,subsection,subsubsection 編目。如果你的文檔結構用到了 paragraph 一級,那麼它將不會被編入目錄中,效果如下(某個小段是 paragraph,未編目):
但是只要你願意,它也是可以被編入目錄的。這就需要你的目錄深度和編號深度都加一級。實現的方式是在導言區加入如下命令:
setcounter{secnumdepth}{4}setcounter{tocdepth}{4}
這樣設置的編號和目錄深度就是4,「某個小段」也會被編號編目,效果如下:
有時候我們還會遇到一個情況,就是一個小節我們想編目但是不想編號,該怎麼辦呢?前面我們提到過 section*{一個不編號也不編目的小節} 可以生成一個不編號也不編目的小節,這裡我們介紹一個讓它也被編入目錄的做法:addcontentsline 命令。為了培養一下大家看文檔的技能,我把這個命令的文檔放在這裡,大家先看一看,能不能理解它的使用方式呢?所以其實它的用法是這樣的:在一個沒有編號編目的小節命令後加上一句 addcontentsline{目錄種類}{編目級別}{目錄內容}
就可以了。舉例如下(第14行):
---
章節標題格式的定製
上一期我們提到過如何正確地生成章節標題,LaTeX 還會自動為它們編號。這裡我們以中文文檔為例(畢竟大家比較常用),介紹一下 ctex 宏包中簡單的章節標題格式定製方法。如果是英文文檔,可以直接調用 ctexheading 宏包或者給 ctex 宏包加上 heading 選項。它被包含在 ctex 宏包中,但可以獨立在非 ctex 文類中使用,功能相同。
定製的基本方法是,用 ctexset 命令來對某個級別的標題的某個屬性進行設置。標題的級別由高到低有以下七種,我們再回顧一下:
- part
- chapter
- section
- subsection
- subsubsection
- paragraph
- subparagraph
其中需要注意,article 沒有前兩個級別的章節,對它們進行設置是沒有作用的。我們可以定製的屬性有如下幾種:
- numbering,控制是否編號。
- name,設置章節的名字。名字可以分為前後兩部分,即章節編號前後的詞語,兩個詞之間用一個半形逗號分開;也可以只有一部分,表示只有章節編號之前的名字。
- number,設置章節編號的數字輸出格式。
- format,控制章節標題的全局格式,作用域為章節名字和隨後的標題內容。可以用於 控制章節標題的對齊方式、整體字體字型大小等格式。
- nameformat,控制章節名字的格式,作用域為章節名字,包括編號。
- numberformat,選項用於控制章節編號的格式,作用域僅為編號數字本身。
- aftername,在控制章節編號與標題內容之間的距離,或者控制標題是否另起一行。
- titleformat,控制標題內容的格式,作用域為章節標題內容。
ctex 宏包還提供如下的一些屬性供大家選擇,這些使用得比較少,需要使用的可以自行查閱 ctex 宏包文檔來了解使用方式。
- aftertitle
- runin
- afterindent
- beforeskip
- afterskip
- indent
- pagestyle
在對章節標題進行定製的時候,使用命令的方式通常是這樣的:
如果僅對某個級別標題的某個屬性進行設置,可以用「章節級別/屬性=...」的方式。如果對某個級別的標題的多個屬性都要修改,則可以用像上面 chapter 那樣進行處理。
說了這麼多,下面給大家舉一些例子吧。首先,在 ctexart/article 中,默認的 section 標題是居中的。那麼如果我們想把這個標題靠左,就可以用 section/titleformat =
aggedright 來設置,示例如下(第3--5行):
---
版面大小的定製
在排版工作中,有一個非常重要的概念叫做版心。如果大家經常使用 MS Word 的話,應該能注意到頁面四個角落裡都有一個直角符號。那四個直角符號的頂點相連構成的區域就是版心。說白了就是我們安放正文的位置。在 LaTeX 中,我們一樣可以定製版心的大小,需要的只是一個 geometry 宏包。
大家在前面的練習當中一定注意到了,LaTeX 默認的版心非常小。在加入了 geometry 宏包後,默認的版心會比原來大一點,看上去會感覺好一些(大家自己試試)。geometry 宏包可以加上若干選項,比如設置各個方向的頁邊距。例如,在導言區使用
usepackage[left=1cm,right=1cm,top=2cm,bottom=3cm]{geometry}
就可以把左、右、上、下的邊距分別調整為1厘米、1厘米、2厘米、3厘米。詳細的使用方法可以看 geometry 宏包的文檔,裡面講述了如何用它定製版面。
---
頁面風格的定製
對於一個頁面,我們可能還需要頁碼等頁眉、頁腳信息。這個時候就需要我們來定製頁面風格了。使用 pagestyle 命令可以調用三種默認的頁面風格:
- plain:只有頁底中央的頁碼;
- empty:啥也沒有;
- headings:把章節的標題寫在頁眉處,同時有頁碼;
其中 headings 是默認的頁面風格,依據文類的不同而有所改變,大家可以自己嘗試一下。例如調用 plain 風格的命令就是 pagestyle{plain},記得要在導言區使用。
如果需要深度定製各種頁眉頁腳,可以使用 fancyhdr 宏包。fancyhdr 宏包可以對頁眉和頁腳的左中右共六個位置顯示的內容進行定義,大家可以查看 fancyhdr 宏包文檔來嘗試自己定製一個頁面風格。
---
本期教程就到這裡啦。為什麼我總是把宏包文檔留給大家看呢?因為宏包裡面提供的內容包羅萬象,在這裡介紹太多的話難免讓大家看了無趣,不如大家自己去探索。我就非常喜歡自己探索新宏包的過程。同時這也鍛煉了大家看宏包文檔的能力,對大家今後的學習一定是有好處的!
下一期我們將講述一個比較重要的主題,之前也有小夥伴留言說期待介紹的,那就是數學公式的排版。數學公式的排版是 LaTeX 的強項,敬請關注!
歡迎關注我們??
http://weixin.qq.com/r/rzlIUCTEL3lQrWAz92y9 (二維碼自動識別)
推薦閱讀:
※LaTeX小寫花體字母?
※TeX,MathJax與其他
※在Android下使用ApTeX
※如何評價「LaTeX 的編輯效率大幅低於 Word」的研究?
TAG:LaTeX |