日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LaTeX 排版(一)——基础应用

發(fā)布時(shí)間:2023/12/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LaTeX 排版(一)——基础应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. LaTeX 基本概念

LaTeX\LaTeXLATE?X 的源代碼為文本文件。這些文本除了文字本身,還包括各種命令,用在排版公式、劃分文檔結(jié)構(gòu)、控制樣式等等不同的地方.

1.1 LaTeX 命令和代碼結(jié)構(gòu)

1.1.1 LaTeX 命令

LaTeX\LaTeXLATE?X 中命令以 \ 開頭,為以下兩種形式之一:

  • 反斜線和后面的一串字母,如 \LaTeX,它們以任意非字母符號(hào)(空格、數(shù)字、標(biāo)點(diǎn)等)為界限
  • 反斜線和后面的單個(gè)非字母符號(hào),如 \$

命令是大小寫敏感的

一些 LaTeX\LaTeXLATE?X 命令可以接收一些參數(shù),參數(shù)的內(nèi)容會(huì)影響命令的效果. LaTeX\LaTeXLATE?X 的參數(shù)分為可選參數(shù)和必選參數(shù). 可選參數(shù)以方括號(hào) [ 和 ] 包裹;必選參數(shù)一般以花括號(hào) { 和 } 包裹. 還有些命令可以帶一個(gè)星號(hào) *,帶星號(hào)和不帶星號(hào)的命令效果有一定差異. 初次接觸這些概念時(shí),可以粗略地把星號(hào)看作一種特殊的可選參數(shù).

1.1.2 LaTeX 環(huán)境

LaTeX\LaTeXLATE?X 中還包括環(huán)境,用以令一些效果在局部生效,或是生成特殊的文檔元素. LaTeX\LaTeXLATE?X 環(huán)境的用法為一對(duì)命令 \begin 和 \end:

\begin{?environment name?}[?optional arguments?]{?mandatory arguments?} … \end{?environment name?}
  • 其中 ?environment name? 為環(huán)境名,\begin 和 \end 中填寫的環(huán)境名應(yīng)當(dāng)一致
  • 類似命令,{?mandatory arguments?} 和 [?optional arguments?] 為環(huán)境所需的必選和可選參數(shù)
  • 部分環(huán)境允許嵌套使用

1.1.3 LaTeX 分組

有些命令(如 \bfseries)會(huì)對(duì)其后所有內(nèi)容產(chǎn)生作用,若要限制其作用范圍,則需要使用分組.

LaTeX\LaTeXLATE?X 使用一對(duì)花括號(hào) { 和 } 作為分組,在分組中使用的命令被限制在分組內(nèi),不會(huì)影響到分組外的內(nèi)容.

上文提到的 LaTeX\LaTeXLATE?X 環(huán)境隱含了一個(gè)分組,在環(huán)境中的命令被包裹在分組內(nèi).

1.1.4 LaTeX 源代碼結(jié)構(gòu)

LaTeX\LaTeXLATE?X 源代碼以一個(gè) \documentclass 命令作為開頭,它指定了文檔使用的文檔類. document 環(huán)境當(dāng)中的內(nèi)容是文檔正文.

在 \documentclass和 \begin{document} 之間的位置稱為導(dǎo)言區(qū),在導(dǎo)言區(qū)中一般會(huì)使用 \usepackage 命令調(diào)用宏包,還會(huì)進(jìn)行文檔的全局設(shè)置.

\documentclass{...} % ... 為某文檔類 % 導(dǎo)言區(qū) \begin{document} % 正文內(nèi)容 \end{document} % 此后內(nèi)容會(huì)被忽略

1.2 LaTeX 宏包和文檔類

1.2.1 文檔類

文檔類規(guī)定了 LaTeX\LaTeXLATE?X 源代碼所要生成的文檔的性質(zhì)——普通文章、書籍、演示文稿、個(gè)人簡(jiǎn)歷等等. LaTeX\LaTeXLATE?X 源代碼的開頭須用 \documentclass 指定文檔類:

\documentclass[?options?]{?class-name?}

其中 ?class-name? 為文檔類的名稱,如 LaTeX\LaTeXLATE?X 提供的 article, report, book,在其基礎(chǔ)上派生的一些文檔類如支持中文排版的 ctexart / ctexrep / ctexbook,或者有其它功能的一些文檔類,如 moderncv / beamer 等, LaTeX\LaTeXLATE?X 提供的基礎(chǔ)文檔類如下所示:

可選參數(shù) ?options? 為文檔類指定選項(xiàng),以全局地規(guī)定一些排版的參數(shù),如字號(hào)、紙張大小、單雙面等等。比如調(diào)用 article 文檔類排版文章,指定紙張為 A4 大小,基本字號(hào)為 11pt,雙面排版:

\documentclass[11pt,twoside,a4paper]{article}

LaTeX\LaTeXLATE?X 的三個(gè)標(biāo)準(zhǔn)文檔類可指定的選項(xiàng)包括:

  • 10pt,11pt,12pt 指定文檔的基本字號(hào),默認(rèn)為 10pt.
  • a4paper, letterpaper 指定紙張大小,默認(rèn)為美式信紙 letterpaper. 可指定選項(xiàng)還包括 a5paper,b5paper,executivepaper 和 legalpaper.
  • twoside,oneside 指定單面/雙面排版. 雙面排版時(shí),奇偶頁的頁眉頁腳、頁邊距不同. article 和 report 默認(rèn)為 oneside,book 默認(rèn)為 twoside.
  • onecolumn,twocolumn 指定單欄/雙欄排版,默認(rèn)為 onecolumn.
  • openright,openany 指定新的一章 \chapter 是在奇數(shù)頁(右側(cè))開始,還是直接緊跟著上一頁開始. report 默認(rèn)為 openany,book 默認(rèn)為 openright,對(duì) article 無效.
  • landscape 指定橫向排版,默認(rèn)為縱向.
  • titlepage, notitlepage 指定標(biāo)題命令 \maketitle 是否生成單獨(dú)的標(biāo)題頁,article 默認(rèn)為 notitlepage,report 和 book 默認(rèn)為 titlepage.
  • fleqn 令行間公式左對(duì)齊,默認(rèn)為居中對(duì)齊.
  • leqno 將公式編號(hào)放在左邊,默認(rèn)為右邊.
  • draft,final 指定草稿/終稿模式。草稿模式下,斷行不良的地方會(huì)在行尾添加一個(gè)黑色方塊,默認(rèn)為 final.

1.2.2 宏包

在使用 LaTeX\LaTeXLATE?X 時(shí),時(shí)常需要依賴一些擴(kuò)展來增強(qiáng)或補(bǔ)充 LaTeX\LaTeXLATE?X 的功能,比如排版復(fù)雜的表格、插入圖片、增加顏色甚至超鏈接等等,這些擴(kuò)展稱為宏包. 調(diào)用宏包的方法非常類似調(diào)用文檔類的方法:

\usepackage[?options?]{?package-name?}

宏包(包括前面所說的文檔類)可能定義了許多命令和環(huán)境,或者修改了 LaTeX\LaTeXLATE?X 已有的命令和環(huán)境。它們的用法說明記在相應(yīng)宏包和文檔類的幫助文檔。在 Windows 命令提示符或者 Linux 終端下輸入命令可查閱相應(yīng)文檔:

texdoc ?pkg-name?

1.3 LaTeX 用到的文件

  • .tex:源碼文件
  • .sty:宏包文件,宏包的名稱與文件名一致
  • .cls:文檔類文件,文檔類名稱與文件名一致
  • .bib:BIBTEX 參考文獻(xiàn)數(shù)據(jù)庫文件
  • .bst:BIBTEX 用到的參考文獻(xiàn)格式模板

LaTeX\LaTeXLATE?X 在編譯過程中除了生成 .dvi 或 .pdf 格式的文檔外,還可能會(huì)生成相當(dāng)多的輔助文件和日志. 一些功能如交叉引用、參考文獻(xiàn)、目錄、索引等,需要先通過編譯生成輔助文件,然后再次編譯時(shí)讀入輔助文件得到正確的結(jié)果,所以復(fù)雜的 LaTeX\LaTeXLATE?X 源代碼可能要編譯多次:

  • .aux:LaTeX\LaTeXLATE?X 生成的主輔助文件,記錄交叉引用、目錄、參考文獻(xiàn)的引用等
  • .toc:LaTeX\LaTeXLATE?X 生成的目錄記錄文件
  • .lof LaTeX\LaTeXLATE?X 生成的圖片目錄記錄文件
  • .lot LaTeX\LaTeXLATE?X 生成的表格目錄記錄文件
  • .bbl BIBTEX 生成的參考文獻(xiàn)記錄文件
  • .idx LaTeX\LaTeXLATE?X 生成的供 makeindex 處理的索引記錄文件
  • .ind makeindex 處理 .idx 生成的用于排版的格式化索引文件
  • .out hyperref 宏包生成的 PDF 書簽記錄文件

1.4 文件的組織方式

當(dāng)編寫長篇文檔時(shí),例如當(dāng)編寫書籍、畢業(yè)論文時(shí),單個(gè)源文件會(huì)使修改、校對(duì)變得十分困難. 將源文件分割成若干個(gè)文件,例如將每章內(nèi)容單獨(dú)寫在一個(gè)文件中,會(huì)大大簡(jiǎn)化修改和校對(duì)的工作.

LaTeX\LaTeXLATE?X 提供了命令 \include 用來在源代碼里插入文件:

\include{?filename?}

?filename? 為文件名(不帶 .tex擴(kuò)展名),如果和要編譯的主文件不在一個(gè)目錄中,則要加上相對(duì)或絕對(duì)路徑

值得注意的是 \include 在讀入 ?filename? 之前會(huì)另起一頁. 有的時(shí)候我們并不需要這樣,而是用 \input 命令,它純粹是把文件里的內(nèi)容插入:

\input{?filename?}

當(dāng)導(dǎo)言區(qū)內(nèi)容較多時(shí),常常將其單獨(dú)放置在一個(gè) .tex 文件中,再用 \input 命令插入,復(fù)雜的圖、表、代碼等也會(huì)用類似的手段處理.

LaTeX\LaTeXLATE?X 還提供了一個(gè) \includeonly 命令來組織文件,用于導(dǎo)言區(qū),指定只載入某些文件. 導(dǎo)言區(qū)使用了 \includeonly 后,正文中不在其列表范圍的 \include 命令不會(huì)起效:

\includeonly{?filename1?,?filename2?,…}

需要注意的是,使用 \include 和 \input 命令載入的文件名最好不要加空格和特殊字符,也盡量避免使用中文名,否則很可能會(huì)出錯(cuò).

最后介紹一個(gè)實(shí)用的工具宏包 syntonly。加載這個(gè)宏包后,在導(dǎo)言區(qū)使用 \syntaxonly 命令,可令 LaTeX\LaTeXLATE?X 編譯后不生成 DVI 或者PDF 文檔,只排查錯(cuò)誤,編譯速度會(huì)快不少:

\usepackage{syntonly} \syntaxonly

2. 用 LaTeX 排版文字

2.1 示例

\documentclass{ctexart} \begin{document}在\LaTeX{}中排版中文。漢字和English單詞混排,通常不需要在中英文之間添加額外的空格。當(dāng)然,為了代碼的可讀性,加上漢字和English 之間的空格也無妨。漢字換行時(shí)不會(huì)引入多余的空格。 \end{document}

輸出結(jié)果為:

2.2 LaTeX 中的字符

2.2.1 空格和分段

LaTeX\LaTeXLATE?X 源代碼中,空格鍵Tab 鍵輸入的空白字符視為“空格”,連續(xù)的若干個(gè)空白字符視為一個(gè)空格.

一行開頭的空格忽略不計(jì).

行末的換行符視為一個(gè)空格;但連續(xù)兩個(gè)換行符,也就是空行,會(huì)將文字分段.

多個(gè)空行被視為一個(gè)空行,也可以在行末使用 \par 命令分段。

2.2.2 注釋

LaTeX\LaTeXLATE?X 用 % 字符作為注釋. 在這個(gè)字符之后直到行末,所有的字符都被忽略,行末的換行符也不引入空格.

2.2.3 特殊字符

\documentclass{ctexart} \begin{document} \# \$ \% \& \{ \} \_ \^{} \~{} \textbackslash \end{document}

2.2.4 連字

西文排版中經(jīng)常會(huì)出現(xiàn)連字(ligatures),常見的有 ff 、 fi 、 fl 、 ffi 、 ffl

\documentclass{ctexart} \begin{document} It's difficult to find \ldots\\ It's dif{}f{}icult to f{}ind \ldots \end{document}

2.2.5 標(biāo)點(diǎn)符號(hào)

中文的標(biāo)點(diǎn)符號(hào)(絕大多數(shù)為非ASCII 字符)使用中文輸入法輸入即可,一般不需要過多留意. 而輸入西文標(biāo)點(diǎn)符號(hào)時(shí),有不少地方需要留意.

  • 引號(hào)

    LaTeX\LaTeXLATE?X 中單引號(hào) ‘ 和 ’ 分別用 ` 和 ’ 輸入;雙引號(hào) “ 和 ” 分別用 `` 和 ‘’ 輸入

    ``Please press the `x' key.''

    中文的引號(hào) ‘ ’ 和 “ ” 與西文的引號(hào)實(shí)際上是同一組符號(hào),但由于中西文通常用不同的字體顯示,它們的具體形狀和寬度可能有所不同。在使用 ctex 宏包或文檔類的情況下,中文引號(hào)可以通過輸入法直接輸入.

  • 連字號(hào)破折號(hào)

    LaTeX\LaTeXLATE?X 中有三種長度的“橫線”可用:連字號(hào)(hyphen)、短破折號(hào)(en-dash)和長破折號(hào)(em-dash).

    它們分別有不同的用途:連字號(hào) - 用來組成復(fù)合詞;短破折號(hào) 用來連接數(shù)字表示范圍;長破折號(hào) 用來連接單詞,語義上類似中文的破折號(hào).

    daughter-in-law, X-rated\\ pages 13--67\\ yes---or no?

  • 省略號(hào)

    LaTeX\LaTeXLATE?X 提供了 \ldots 命令表示省略號(hào),相對(duì)于直接輸入三個(gè)點(diǎn)的方式更為合理.

    \dots 與 \ldots 命令等效.

2.3 斷行和斷頁

LaTeX\LaTeXLATE?X 將文字段落在合適的位置進(jìn)行斷行,盡可能做到每行的疏密程度勻稱,單詞間距不會(huì)過寬或過窄. 文字段落和公式、圖表等內(nèi)容從上到下順序排布,并在合適的位置斷頁,分割成勻稱的頁面. 在絕大多數(shù)時(shí)候,我們無需自己操心斷行和斷頁,但偶爾會(huì)遇到需要手工調(diào)整的地方.

2.3.1 單詞間距

在西文排版實(shí)踐中,斷行的位置優(yōu)先選取在兩個(gè)單詞之間,也就是在源代碼中輸入的“空格”. “空格”本身通常生成一個(gè)間距,它會(huì)根據(jù)行寬和上下文自動(dòng)調(diào)整,文字密一些的地方,單詞間距就略窄,反之略寬.

文字在單詞間的“空格”處斷行時(shí),“空格”生成的間距隨之舍去. 我們可以使用字符 ~ 輸入一個(gè)不會(huì)斷行的空格(高德納稱之為 tie,“帶子”),通常用在英文人名、圖表名稱等上下文環(huán)境:

Fig.~2a \\ Donald~E. Knuth

2.3.2 手動(dòng)斷行和斷頁

如果我們確實(shí)需要手動(dòng)斷行,可使用如下命令:

\\[?length?] \\*[?length?] \newline

它們有兩點(diǎn)區(qū)別:

  • 一是 \\ 可以帶可選參數(shù) ?length?,用于在斷行處向下增加垂直間距,而 \newline 不帶可選參數(shù)
  • 二是 \\ 也在表格、公式等地方用于換行,而 \newline 只用于文本段落中

帶星號(hào)的 \\ 表示禁止在斷行處分頁

斷頁的命令有兩個(gè):

\newpage \clearpage

通常情況下兩個(gè)命令都起到另起一頁的作用,區(qū)別在于:

  • 第一,在雙欄排版模式中 \newpage 起到另起一欄的作用,\clearpage 則能夠另起一頁
  • 第二,在涉及浮動(dòng)體的排版上行為不同

有時(shí)候我們不滿足于 LaTeX\LaTeXLATE?X 默認(rèn)的斷行和斷頁位置,需要進(jìn)行微調(diào),可以用以下命令告訴 LaTeX\LaTeXLATE?X 哪些地方適合斷行或斷頁,哪些地方不適合:

\linebreak[?n?] \nolinebreak[?n?] \pagebreak[?n?] \nopagebreak[?n?]

以上命令都帶一個(gè)可選參數(shù),用數(shù)字 ?n? 代表適合/不適合的程度,取值范圍為 0–4,不帶可選參數(shù)時(shí),缺省為 4. 比如 \linebreak 或者 \linebreak[4] 意味著此處需要強(qiáng)行斷行;`nopagebreak或\nopagebreak[4]` 意味著禁止在此處斷頁.

以上命令適合給出優(yōu)先考慮斷行斷頁/禁止斷行斷頁的位置,但不適合直接拿來斷行或斷頁,使用 \newline 或 \newpage 等命令是更好的選擇. 因?yàn)?\newline 和 \newpage 會(huì)在斷行/斷頁位置填充適當(dāng)?shù)拈g距,但 \linebreak 和 \pagebreak 不能,使用這些命令強(qiáng)行斷行/斷頁可能會(huì)制造出糟糕的排版效果.

使用\verb|\newline| 斷行的效果 \newline 與使用\verb|\linebreak| 斷行的效果 \linebreak 進(jìn)行對(duì)比。

2.3.3 斷詞

如果 LaTeX\LaTeXLATE?X 遇到了很長的英文單詞,僅在單詞之間的“空格”處斷行無法生成疏密程度勻稱的段落時(shí),就會(huì)考慮從單詞中間斷開. 對(duì)于絕大多數(shù)單詞,LaTeX\LaTeXLATE?X 能夠找到合適的斷詞位置,在斷開的行尾加上連字符 -。

如果一些單詞沒能自動(dòng)斷詞,我們可以在單詞內(nèi)手動(dòng)使用 \- 命令指定斷詞的位置:

I think this is: su\-per\-cal\-% i\-frag\-i\-lis\-tic\-ex\-pi\-% al\-i\-do\-cious.

3. 文檔元素

3.1 章節(jié)和目錄

3.1.1 章節(jié)標(biāo)題

一篇結(jié)構(gòu)化的、條理清晰文檔一定是層次分明的,通過不同的命令分割為章、節(jié)、小節(jié). 三個(gè)標(biāo)準(zhǔn)文檔類 article、report 和 book 提供了劃分章節(jié)的命令:

\chapter{?title?} \section{?title?} \subsection{?title?} \subsubsection{?title?} \paragraph{?title?} \subparagraph{?title?}

其中 \chapter 只在 report 和 book 文檔類有定義

這些命令生成章節(jié)標(biāo)題,并能夠自動(dòng)編號(hào).

上述命令除了生成帶編號(hào)的標(biāo)題之外,還向目錄中添加條目,并影響頁眉頁腳的內(nèi)容,每個(gè)命令有兩種變體:

  • 帶可選參數(shù)

    \section[?short title?]{?title?}

    標(biāo)題使用 ?title? 參數(shù),在目錄和頁眉頁腳中使用 ?short title? 參數(shù)

  • 帶星號(hào)

    \section*{?title?}

    標(biāo)題不帶編號(hào),也不生成目錄項(xiàng)和頁眉頁腳

  • article 文檔類帶編號(hào)的層級(jí)為 \section , \subsection , \subsubsection 三級(jí)

  • report 和 book 文檔類帶編號(hào)的層級(jí)為 \chapter , \section , \subsection 三級(jí)

LaTeX\LaTeXLATE?X 及標(biāo)準(zhǔn)文檔類并未提供為 \section 等章節(jié)命令定制格式的功能,這一功能由 titlesec 宏包提供

3.1.2 目錄

LaTeX\LaTeXLATE?X 中生成目錄非常容易,只需在合適的地方使用命令:

\tableofcontents

這個(gè)命令會(huì)生成單獨(dú)的一章(report 或 book)或一節(jié)(article),標(biāo)題默認(rèn)為“Contents

\tableofcontents 生成的章節(jié)默認(rèn)不寫入目錄(\section 或 \chapter),可使用 tocbibind 等宏包修改設(shè)置

titletoctocloft 等宏包提供了具體定制目錄項(xiàng)格式的功能

正確生成目錄項(xiàng),一般需要編譯兩次源代碼

3.1.3 文檔結(jié)構(gòu)的劃分

所有標(biāo)準(zhǔn)文檔類都提供了一個(gè) \appendix 命令將正文和附錄分開,使用 \appendix 后,最高一級(jí)章節(jié)改為使用拉丁字母編號(hào),從 A 開始

book 文檔類還提供了前言、正文、后記結(jié)構(gòu)的劃分命令:

  • \frontmatter 前言部分,頁碼使用小寫羅馬數(shù)字;其后的 \chapter 不編號(hào)
  • \mainmatter 正文部分,頁碼使用阿拉伯?dāng)?shù)字,從 111 開始計(jì)數(shù),其后的章節(jié)編號(hào)正常
  • \backmatter 后記部分,頁碼格式不變,繼續(xù)正常計(jì)數(shù);其后的 \chapter 不編號(hào)

以上三個(gè)命令還可和 \appendix 命令結(jié)合,生成有前言、正文、附錄、后記四部分的文檔

\documentclass{book} % 導(dǎo)言區(qū),加載宏包和各項(xiàng)設(shè)置,包括參考文獻(xiàn)、索引等 \usepackage{makeidx} % 調(diào)用makeidx 宏包,用來處理索引 \makeindex % 開啟索引的收集 \bibliographystyle{plain} % 指定參考文獻(xiàn)樣式為plain \begin{document} \frontmatter % 前言部分 \maketitle % 標(biāo)題頁 \include{preface} % 前言章節(jié)preface.tex \tableofcontents \mainmatter % 正文部分 \include{chapter1} % 第一章chapter1.tex \include{chapter2} % 第二章chapter2.tex ... \appendix % 附錄 \include{appendixA} % 附錄A appendixA.tex ... \backmatter % 后記部分 \include{prologue} % 后記prologue.tex \bibliography{books} % 利用BibTeX 工具從數(shù)據(jù)庫文件books.bib 生成參考文獻(xiàn) \printindex % 利用makeindex 工具生成索引 \end{document}

3.2 標(biāo)題頁

LaTeX\LaTeXLATE?X 支持生成簡(jiǎn)單的標(biāo)題頁. 首先需要給定標(biāo)題和作者等信息:

\title{?title?} \author{?author?} \date{?date?}

其中前兩個(gè)命令是必須的(不用 \title 會(huì)報(bào)錯(cuò);不用 \author 會(huì)警告),\date 命令可選

LaTeX\LaTeXLATE?X 還提供了一個(gè) \today 命令自動(dòng)生成當(dāng)前日期,\date 默認(rèn)使用 \today.

在 \title、\author 等命令內(nèi)可以使用 \thanks 命令生成標(biāo)題頁的腳注,用 \and 隔開多個(gè)人名.

在信息給定后,就可以使用 \maketitle 命令生成一個(gè)簡(jiǎn)單的標(biāo)題頁了:

\title{Test title} \author{ Mary\thanks{E-mail:*****@***.com} \and Ted\thanks{Corresponding author} \and Louis} \date{\today}

article 文檔類的標(biāo)題默認(rèn)不單獨(dú)成頁,而 reportbook 默認(rèn)單獨(dú)成頁.

可在 \documentclass 命令調(diào)用文檔類時(shí)指定 titlepage / notitlepage 選項(xiàng)以修改默認(rèn)的行為.

LaTeX\LaTeXLATE?X 標(biāo)準(zhǔn)類還提供了一個(gè)簡(jiǎn)單的 titlepage 環(huán)境,生成不帶頁眉頁腳的一頁. 用戶可以在這個(gè)環(huán)境中使用各種排版元素自由發(fā)揮,生成自定義的標(biāo)題頁以替代 \maketitle 命令. 甚至可以利用 titlepage 環(huán)境重新定義 \maketitle:

\renewcommand{\maketitle}{\begin{titlepage} ... % 用戶自定義命令 \end{titlepage}}

事實(shí)上,為標(biāo)準(zhǔn)文檔類指定了 titlepage 選項(xiàng)以后,使用 \maketitle 命令生成的標(biāo)題頁就是一個(gè) titlepage 環(huán)境.

3.3 交叉引用

交叉引用是 LaTeX\LaTeXLATE?X 強(qiáng)大的自動(dòng)排版功能的體現(xiàn)之一,在能夠被交叉引用的地方,如章節(jié)、公式、圖表、定理等位置使用 \label 命令:

\label{?label-name?}

之后可以在別處使用 \ref 或 \pageref 命令,分別生成交叉引用的編號(hào)和頁碼:

\ref{?label-name?} \pageref{?label-name?}

【Example】

A reference to this subsection \label{sec:this} looks like: ``see section~\ref{sec:this} on page~\pageref{sec:this}.''

為了生成正確的交叉引用,一般也需要多次編譯源代碼

\label 命令可用于記錄各種類型的交叉引用,使用位置分別為:

  • 章節(jié)標(biāo)題:在章節(jié)標(biāo)題命令 \section 等之后緊接著使用
  • 行間公式:單行公式在公式內(nèi)任意位置使用;多行公式在每一行公式的任意位置使用
  • 有序列表:在 enumerate 環(huán)境的每個(gè) \item 命令之后、下一個(gè) \item 命令之前任意位置使用
  • 圖表標(biāo)題:在圖表標(biāo)題命令 \caption 之后緊接著使用
  • 定理環(huán)境:在定理環(huán)境內(nèi)部任意位置使用

3.4 腳注和邊注

3.4.1 腳注

使用 \footnote 命令可以在頁面底部生成一個(gè)腳注:

\footnote{?footnote?}

假如我們輸入以下文字和命令:

“天地玄黃,宇宙洪荒。日月盈昃,辰宿列張。”\footnote{出自《千字文》。}

正文顯示為:

腳注在頁面底部顯示為:

有些情況下(比如在表格環(huán)境、各種盒子內(nèi))使用 \footnote 并不能正確生成腳注. 我們可以分兩步進(jìn)行,先使用 \footnotemark 為腳注計(jì)數(shù),再在合適的位置用\footnotetext 生成腳注。比如:

\begin{tabular}{l} \hline “天地玄黃,宇宙洪荒。日月盈昃,辰宿列張。”\footnotemark \\ \hline \end{tabular} \footnotetext{表格里的名句出自《千字文》。}

效果為:

3.4.2 邊注

使用 \marginpar 命令可在邊欄位置生成邊注:

\marginpar[?left-margin?]{?right-margin?}

如果只給定了 ?right-margin?,那么邊注在奇偶數(shù)頁文字相同;如果同時(shí)給定了 ?left-margin?,則偶數(shù)頁使用 ?left-margin? 的文字,例如以下代碼:

\marginpar{\footnotesize 邊注較窄,不要寫過多文字,最好設(shè)置較小的字號(hào)。}

其效果為:

3.5 特殊環(huán)境

3.5.1 列表

LaTeX\LaTeXLATE?X 提供了基本的有序和無序列表環(huán)境 enumerate 和 itemize,兩者的用法很類似,都用 \item 標(biāo)明每個(gè)列表項(xiàng),enumerate 環(huán)境會(huì)自動(dòng)對(duì)列表項(xiàng)編號(hào).

\begin{enumerate} \item … \end{enumerate}

其中 \item 可帶一個(gè)可選參數(shù),將有序列表的計(jì)數(shù)或者無序列表的符號(hào)替換成自定義的符號(hào),列表可以嵌套使用,最多嵌套四層.

例如有序列表:

\begin{enumerate} \item An item. \begin{enumerate} \item A nested item.\label{itref} \item[*] A starred item. \end{enumerate} \item Reference(\ref{itref}). \end{enumerate}

其效果為:

無序列表:

\begin{itemize} \item An item. \begin{itemize} \item A nested item. \item[+] A `plus' item. \item Another item. \end{itemize} \item Go back to upper level. \end{itemize}

其效果為:


關(guān)鍵字環(huán)境 description 的用法與以上兩者類似,不同的是 \item 后的可選參數(shù)用來寫關(guān)鍵字,以粗體顯示,一般是必填的:

\begin{description} \item[?item title?] … \end{description}

例如:

\begin{description} \item[Enumerate] Numbered list. \item[Itemize] Non-numbered list. \end{description}

其效果為:

各級(jí)無序列表的符號(hào)由命令 \labelitemi 到 \labelitemiv 定義,可以簡(jiǎn)單地重新定義它們:

\renewcommand{\labelitemi}{\ddag} \renewcommand{\labelitemii}{\dag} \begin{itemize} \item First item \begin{itemize} \item Subitem \item Subitem \end{itemize} \item Second item \end{itemize}

有序列表的符號(hào)由命令 \labelenumi 到 \labelenumiv 定義,重新定義這些命令需要用到計(jì)數(shù)器相關(guān)命令:

\renewcommand{\labelenumi}% {\Alph{enumi}>} \begin{enumerate} \item First item \item Second item \end{enumerate}

默認(rèn)的列表間距比較寬,LaTeX\LaTeXLATE?X 本身也未提供方便的定制功能,可用 enumitem 宏包定制各種列表間距,enumitem 宏包還提供了對(duì)列表標(biāo)簽、引用等的定制.

3.5.2 文本對(duì)齊環(huán)境

center、flushleft 和 flushright 環(huán)境分別用于生成居中、左對(duì)齊和右對(duì)齊的文本環(huán)境.

\begin{center} … \end{center} \begin{flushleft} … \end{flushleft} \begin{flushright} … \end{flushright}

例如:

\begin{center} Centered text using a \verb|center| environment. \end{center} \begin{flushleft} Left-aligned text using a \verb|flushleft| environment. \end{flushleft} \begin{flushright} Right-aligned text using a \verb|flushright| environment. \end{flushright}

其效果為:

除此之外,還可以用以下命令直接改變文字的對(duì)齊方式:

\centering \raggedright \raggedleft

例如:

\centering Centered text paragraph.\raggedright Left-aligned text paragraph.\raggedleft Right-aligned text paragraph.

效果為:

有一點(diǎn)可以將兩者區(qū)分開來:center 等環(huán)境會(huì)在上下文產(chǎn)生一個(gè)額外間距,而 \centering 等命令不產(chǎn)生,只是改變對(duì)齊方式. 比如在浮動(dòng)體環(huán)境 table 或 figure 內(nèi)實(shí)現(xiàn)居中對(duì)齊,用 \centering 命令即可,沒必要再用 center 環(huán)境.

3.5.3 引用環(huán)境

LaTeX\LaTeXLATE?X 提供了兩種引用的環(huán)境:quote 用于引用較短的文字,首行不縮進(jìn);quotation 用于引用若干段文字,首行縮進(jìn).

引用環(huán)境較一般文字有額外的左右縮進(jìn).

Francis Bacon says: \begin{quote} Knowledge is power. \end{quote}

效果為:

《木蘭詩》: \begin{quotation} 萬里赴戎機(jī),關(guān)山度若飛。 朔氣傳金柝,寒光照鐵衣。 將軍百戰(zhàn)死,壯士十年歸。歸來見天子,天子坐明堂。 策勛十二轉(zhuǎn),賞賜百千強(qiáng)。?? \end{quotation}

verse 用于排版詩歌,與 quotation 恰好相反,verse 是首行懸掛縮進(jìn)的.

Rabindranath Tagore's short poem: \begin{verse} Beauty is truth's smile when she beholds her own face in a perfect mirror. \end{verse}

3.5.4 摘要環(huán)境

摘要環(huán)境 abstract 默認(rèn)只在標(biāo)準(zhǔn)文檔類中的 article 和 report 文檔類可用,一般用于緊跟 \maketitle 命令之后介紹文檔的摘要。如果文檔類指定了 titlepage 選項(xiàng),則單獨(dú)成頁;反之,單欄排版時(shí)相當(dāng)于一個(gè)居中的小標(biāo)題加一個(gè) quotation 環(huán)境,雙欄排版時(shí)相當(dāng)于 \section* 定義的一節(jié).

3.5.5 代碼環(huán)境

有時(shí)我們需要將一段代碼原樣轉(zhuǎn)義輸出,這就要用到代碼環(huán)境 verbatim,它以等寬字體排版代碼,回車和空格也分別起到換行和空位的作用;帶星號(hào)的版本更進(jìn)一步將空格顯示成 “?”.

\begin{verbatim} #include <iostream> int main() {std::cout << "Hello, world!"<< std::endl;return 0; } \end{verbatim}

\begin{verbatim*} for (int i=0; i<4; ++i)printf("Number %d\n",i); \end{verbatim*}

要排版簡(jiǎn)短的代碼或關(guān)鍵字,可使用 \verb 命令:

\verb?delim??code??delim?

?delim? 標(biāo)明代碼的分界位置,前后必須一致,除字母、空格或星號(hào)外,可任意選擇使得不與代碼本身沖突,習(xí)慣上使用 | 符號(hào).

同 verbatim 環(huán)境,\verb 后也可以帶一個(gè)星號(hào),以顯示空格:

\verb|\LaTeX| \\ \verb+(a || b)+ \verb*+(a || b)+

\verb命令對(duì)符號(hào)的處理比較復(fù)雜,一般不能用在其它命令的參數(shù)里,否則多半會(huì)出錯(cuò)

verbatim 宏包優(yōu)化了 verbatim 環(huán)境的內(nèi)部命令,并提供了 \verbatiminput 命令用來直接讀入文件生成代碼環(huán)境. fancyvrb 宏包提供了可定制格式的 Verbatim 環(huán)境;listings 宏包更進(jìn)一步,可生成關(guān)鍵字高亮的代碼環(huán)境,支持各種程序設(shè)計(jì)語言的語法和關(guān)鍵字.

3.6 表格

LaTeX\LaTeXLATE?X 里排版表格不如 Word 等所見即所得的工具簡(jiǎn)便和自由,不過對(duì)于不太復(fù)雜的表格來講,完全能夠勝任.

排版表格最基本的 tabular 環(huán)境用法為:

\begin{tabular}[?align?]{?column-spec?} ?item1? & ?item2? & … \\ \hline ?item1? & ?item2? & … \\ \end{tabular}

其中 ?column-spec? 是列格式標(biāo)記;& 用來分隔單元格;\\ 用來換行;\hline 用來在行與行之間繪制橫線

直接使用 tabular 環(huán)境的話,會(huì)和周圍的文字混排。此時(shí)可用一個(gè)可選參數(shù) ?align? 控制垂直對(duì)齊:t 和 b 分別表示按表格頂部、底部對(duì)齊,其他參數(shù)或省略不寫(默認(rèn))表示居中對(duì)齊.

\begin{tabular}{|c|} center-\\ aligned \\ \end{tabular}, \begin{tabular}[t]{|c|} top-\\ aligned \\ \end{tabular}, \begin{tabular}[b]{|c|} bottom-\\ aligned\\ \end{tabular} tabulars.

但是通常情況下 tabular 環(huán)境很少與文字直接混排,而是會(huì)放在 table 浮動(dòng)體環(huán)境中,并用 \caption 命令加標(biāo)題.

3.6.1 列格式

tabular 環(huán)境使用 ?column-spec? 參數(shù)指定表格的列數(shù)以及每列的格式,基本的列格式見下表:

列格式說明
l/c/r單元格內(nèi)容左對(duì)齊/居中/右對(duì)齊,不折行
p{?width?}單元格寬度固定為 ?width?,可自動(dòng)折行
|繪制豎線
@{?string?}自定義內(nèi)容 ?string?

例如:

\begin{tabular}{lcr|p{6em}} \hline left & center & right & par box with fixed width\\ L & C & R & P \\ \hline \end{tabular}

表格中每行的單元格數(shù)目不能多于列格式里 l/c/r/p 的總數(shù)(可以少于這個(gè)總數(shù)),否則出錯(cuò).

@ 格式可在單元格前后插入任意的文本,但同時(shí)它也消除了單元格前后額外添加的間距. @ 格式可以適當(dāng)使用以充當(dāng)“豎線”,特別地,@{} 可直接用來消除單元格前后的間距:

\begin{tabular}{@{} r@{:}lr @{}} \hline 1 & 1 & one \\ 11 & 3 & eleven \\ \hline \end{tabular}

另外 LaTeX\LaTeXLATE?X 還提供了簡(jiǎn)便的將格式參數(shù)重復(fù)的寫法 *{?n?}{?column-spec?},比如以下兩種寫法是等效的:

\begin{tabular}{|c|c|c|c|c|p{4em}|p{4em}|} \begin{tabular}{|*{5}{c|}*{2}{p{4em}|}}

有時(shí)需要為整列修飾格式,比如整列改變?yōu)榇煮w,如果每個(gè)單元格都加上 \bfseries 命令會(huì)比較麻煩。array 宏包提供了輔助格式 > 和<,用于給列格式前后加上修飾命令

% \usepackage{array} \begin{tabular}{>{\itshape}r<{*}l}\hlineitalic & normal \\column & column \\\hline \end{tabular}

array 宏包還提供了類似 p 格式的 m 格式和 b 格式,三者分別在垂直方向上靠頂端對(duì)齊、居中以及底端對(duì)齊:

% \usepackage{array} \newcommand\txt{a b c d e f g h i} \begin{tabular}{cp{2em}m{2em}b{2em}}\hlinepos & \txt & \txt & \txt \\\hline \end{tabular}

3.6.2 列寬

在控制列寬方面,LaTeX\LaTeXLATE?X 表格有著明顯的不足:l/c/r 格式的列寬是由文字內(nèi)容的自然寬度決定的,而 p 格式給定了列寬卻不好控制對(duì)齊(可用 array 宏包的輔助格式),更何況列與列之間通常還有間距,所以直接生成給定總寬度的表格并不容易.

tabularx 宏包為我們提供了方便的解決方案。它引入了一個(gè) X 列格式,類似 p 列格式,不過會(huì)根據(jù)表格寬度自動(dòng)計(jì)算列寬,多個(gè) X 列格式平均分配列寬. X 列格式也可以用array 里的輔助格式修飾對(duì)齊方式:

% \usepackage{array,tabularx} \begin{tabularx}{14em}%{|*{4}{>{\centering\arraybackslash}X|}}\hlineA & B & C & D \\ \hlinea & b & c & d \\ \hline \end{tabularx}

3.6.3 橫線

我們已經(jīng)在之前的例子見過許多次繪制表格線的 \hline 命令. 另外\cline{?i?-?j?} 用來繪制跨越部分單元格的橫線:

\begin{tabular}{|c|c|c|}\hline4 & 9 & 2 \\ \cline{2-3}3 & 5 & 7 \\ \cline{1-1}8 & 1 & 6 \\ \hline \end{tabular}

在科技論文排版中廣泛應(yīng)用的表格形式是三線表,形式干凈簡(jiǎn)明. 三線表由 booktabs 宏包支持,它提供了\toprule、\midrule 和 \bottomrule 命令用以排版三線表的三條線,以及和 \cline 對(duì)應(yīng)的 \cmidrule. 除此之外,最好不要用其它橫線以及豎線:

% \usepackage{booktabs} \begin{tabular}{cccc}\toprule& \multicolumn{3}{c}{Numbers} \\\cmidrule{2-4}& 1 & 2 & 3 \\\midruleAlphabet & A & B & C \\Roman & I & II& III \\\bottomrule \end{tabular}

3.6.4 合并單元格

LaTeX\LaTeXLATE?X 是一行一行排版表格的,橫向合并單元格較為容易,由 \multicolumn 命令實(shí)現(xiàn):

\multicolumn{?n?}{?column-spec?}{?item?}

其中 ?n? 為要合并的列數(shù),?column-spec? 為合并單元格后的列格式,只允許出現(xiàn)一個(gè) l / c / r 或 p 格式

如果合并前的單元格前后帶表格線 |,合并后的列格式也要帶 | 以使得表格的豎線一致

\begin{tabular}{|c|c|c|}\hline1 & 2 & Center \\ \hline\multicolumn{2}{|c|}{3} &\multicolumn{1}{r|}{Right} \\ \hline4 & \multicolumn{2}{c|}{C} \\ \hline \end{tabular}

上面的例子還體現(xiàn)了,形如 \multicolumn{1}{?column-spec?}{?item?} 的命令可以用來修改某一個(gè)單元格的列格式.

縱向合并單元格需要用到 multirow 宏包提供的 \multirow 命令

\multirow{?n?}{?width?}{?item?}

?width? 為合并后單元格的寬度,可以填 * 以使用自然寬度

我們看一個(gè)結(jié)合 \cline、\multicolumn 和 \multirow 命令的例子:

% \usepackage{multirow} \begin{tabular}{ccc}\hline\multirow{2}{*}{Item} & \multicolumn{2}{c}{Value} \\ \cline{2-3}& First & Second \\ \hlineA & 1 & 2 \\ \hline \end{tabular}

3.6.5 行距控制

LaTeX\LaTeXLATE?X 生成的表格看起來通常比較緊湊,修改參數(shù) \arraystretch 可以得到行距更加寬松的表格:

\renewcommand\arraystretch{1.8} \begin{tabular}{|c|}\hlineReally loose \\ \hlinetabular rows.\\ \hline \end{tabular}

3.7 圖片

LaTeX\LaTeXLATE?X 本身不支持插圖功能,需要由 graphicx 宏包輔助支持. 在調(diào)用了graphicx 宏包以后,就可以使用 \includegraphics 命令加載圖片了:

\includegraphics[?options?]{?filename?}

其中 ?filename? 為圖片文件名,與 \include 命令的用法類似,文件名可能需要用相對(duì)路徑或絕對(duì)路徑表示

圖片文件的擴(kuò)展名一般可不寫,另外一定要注意,文件名里既不要有空格(類似 \include),也不要有多余的英文點(diǎn)號(hào),否則宏包在解析文件名的過程中會(huì)出錯(cuò).

另外 graphicx 宏包還提供了 \graphicspath 命令,用于聲明一個(gè)或多個(gè)圖片文件存放的目錄,使用這些目錄里的圖片時(shí)可不用寫路徑:

% 假設(shè)主要的圖片放在figures 子目錄下,標(biāo)志放在logo 子目錄下 \graphicspath{{figures/}{logo/}}

\includegraphics 命令的可選參數(shù) ?options? 支持 ?key?=?value? 形式賦值,常用的參數(shù)如下:

3.8 盒子

盒子是 LaTeX\LaTeXLATE?X 排版的基礎(chǔ)單元,雖然解釋上去有些抽象:每一行是一個(gè)盒子,里面的文字從左到右依次排列;每一頁也是一個(gè)盒子,各行文字從上到下依次排布??

3.8.1 水平盒子

生成水平盒子的命令如下:

\mbox{…} \makebox[?width?][?align?]{…}

\mbox 生成一個(gè)基本的水平盒子,內(nèi)容只有一行,不允許分段(除非嵌套其它盒子,比如后文的垂直盒子). 外表看上去,\mbox 的內(nèi)容與正常的文本無二,不過斷行時(shí)文字不會(huì)從盒子里斷開.

\makebox 更進(jìn)一步,可以加上可選參數(shù)用于控制盒子的寬度 ?width?,以及內(nèi)容的對(duì)齊方式 ?align?,可選居中 c(默認(rèn)值)、左對(duì)齊 l、右對(duì)齊 r 和分散對(duì)齊 s.

|\mbox{Test some words.}|\\ |\makebox[10em]{Test some words.}|\\ |\makebox[10em][l]{Test some words.}|\\ |\makebox[10em][r]{Test some words.}|\\ |\makebox[10em][s]{Test some words.}|

3.8.2 帶框的水平盒子

\fbox 和 \framebox 讓我們可以為水平盒子添加邊框. 使用的語法與 \mbox 和 \makebox 一模一樣:

\fbox{…} \framebox[?width?][?align?]{…}

可以通過 \setlength 命令調(diào)節(jié)邊框的寬度 \fboxrule 和內(nèi)邊距 \fboxsep:

\framebox[10em][r]{Test box}\\[1ex] \setlength{\fboxrule}{1.6pt} \setlength{\fboxsep}{1em} \framebox[10em][r]{Test box}

3.8.3 垂直盒子

如果需要排版一個(gè)文字可以換行的盒子,LaTeX\LaTeXLATE?X 提供了兩種方式:

\parbox[?align?][?height?][?inner-align?]{?width?}{…} \begin{minipage}[?align?][?height?][?inner-align?]{?width?} … \end{minipage}

其中?align? 為盒子和周圍文字的對(duì)齊情況(類似 tabular 環(huán)境);?height? 和 ?inner-align? 設(shè)置盒子的高度和內(nèi)容的對(duì)齊方式,類似水平盒子\makebox 的設(shè)置,不過?inner-align? 接受的參數(shù)是頂部 t、底部 b、居中 c 和分散對(duì)齊 s.

三字經(jīng):\parbox[t]{3em}% {人之初性本善性相近習(xí)相遠(yuǎn)} \quad 千字文: \begin{minipage}[b][8ex][t]{4em} 天地玄黃宇宙洪荒 \end{minipage}

3.8.4 標(biāo)尺盒子

\rule 命令用來畫一個(gè)實(shí)心的矩形盒子,也可適當(dāng)調(diào)整以用來畫線(標(biāo)尺):

\rule[?raise?]{?width?}{?height?}

例如:

Black \rule{12pt}{4pt} box. \\ \\ Upper \rule[4pt]{6pt}{8pt} and lower \rule[-4pt]{6pt}{8pt} box. \\ \\ A \rule[-.4pt]{3em}{.4pt} line.

3.9 浮動(dòng)體

內(nèi)容豐富的文章或者書籍往往包含許多圖片和表格等內(nèi)容,這些內(nèi)容的尺寸往往太大,導(dǎo)致分頁困難. LaTeX\LaTeXLATE?X 為此引入了浮動(dòng)體的機(jī)制,令大塊的內(nèi)容可以脫離上下文,放置在合適的位置.

LaTeX\LaTeXLATE?X 預(yù)定義了兩類浮動(dòng)體環(huán)境 figure 和 table。習(xí)慣上 figure 里放圖片,table 里放表格,但并沒有嚴(yán)格限制,可以在任何一個(gè)浮動(dòng)體里放置文字、公式、表格、圖片等等任意內(nèi)容.

以 table 環(huán)境的用法舉例,figure 同理:

\begin{table}[?placement?] … \end{table}

?placement? 參數(shù)提供了一些符號(hào)用來表示浮動(dòng)體允許排版的位置,如 hbp 允許浮動(dòng)體排版在當(dāng)前位置、底部或者單獨(dú)成頁. table 和 figure 浮動(dòng)體的默認(rèn)設(shè)置為 tbp.

  • 排版位置的選取與參數(shù)里符號(hào)的順序無關(guān),LaTeX\LaTeXLATE?X 總是以 h-t-b-p 的優(yōu)先級(jí)順序決定浮動(dòng)體位置,也就是說 [!htp] 和 [ph!t] 沒有區(qū)別
  • 限制包括浮動(dòng)體個(gè)數(shù)(除單獨(dú)成頁外,默認(rèn)每頁不超過 3 個(gè)浮動(dòng)體,其中頂部不超過 2 個(gè),底部不超過 1 個(gè))以及浮動(dòng)體空間占頁面的百分比(默認(rèn)頂部不超過 70%,底部不超過 30%)

雙欄排版環(huán)境下,LaTeX\LaTeXLATE?X 提供了 table* 和 figure* 環(huán)境用來排版跨欄的浮動(dòng)體. 它們的用法與 table 和 figure 一樣,不同之處為雙欄的?placement? 參數(shù)只能用 tp 兩個(gè)位置.

浮動(dòng)體的位置選取受到先后順序的限制. 如果某個(gè)浮動(dòng)體由于參數(shù)限制、空間限制等原因在當(dāng)前頁無法放置,就要推遲到之后處理,并使得之后的同類浮動(dòng)體一并推遲. \clearpage 命令會(huì)在另起一頁之前,先將所有推遲處理的浮動(dòng)體排版成頁,此時(shí) htbp 等位置限制被完全忽略.

float 宏包為浮動(dòng)體提供了 H 位置參數(shù),不與 htbp 及 ! 混用. 使用 H 位置參數(shù)時(shí),會(huì)取消浮動(dòng)機(jī)制,將浮動(dòng)體視為一般的盒子插入當(dāng)前位置. 這在一些特殊情況下很有用(如使用 multicol 宏包排版分欄內(nèi)容的時(shí)候),但尺寸過大的浮動(dòng)體可能使得分頁比較困難.

3.9.1 浮動(dòng)體的標(biāo)題

圖表等浮動(dòng)體提供了 \caption 命令加標(biāo)題,并且自動(dòng)給浮動(dòng)體編號(hào):

\caption{…}

\caption 的用法非常類似于 \section 等命令,可以用帶星號(hào)的命令 \caption* 生成不帶編號(hào)的標(biāo)題,也可以使用帶可選參數(shù)的形式 \caption[…]{…},使得在目錄里使用短標(biāo)題. \caption 命令之后還可以緊跟 \label 命令標(biāo)記交叉引用.

\caption 生成的標(biāo)題形如 “Figure 1: …”(figure 環(huán)境)或 “Table 1: …”(table 環(huán)境). 可通過修改 \figurename 和 \tablename 的內(nèi)容來修改標(biāo)題的前綴. 標(biāo)題樣式的
定制功能由 caption 宏包提供.

table 和 figure 兩種浮動(dòng)體分別有各自的生成目錄的命令:

\listoftables \listoffigures

它們類似 \tableofcontents 生成單獨(dú)的章節(jié)

3.9.2 并排和子圖表

我們時(shí)常有在一個(gè)浮動(dòng)體里面放置多張圖的用法. 最簡(jiǎn)單的用法就是直接并排放置,也可以通過分段或者換行命令 \\ 排版多行多列的圖片,以下為示意代碼:

\begin{figure}[htbp]\centering\includegraphics[width=...]{...}\qquad\includegraphics[width=...]{...} \\[..pt]\includegraphics[width=...]{...}\caption{...} \end{figure}

示意圖大致如下:

由于標(biāo)題是橫跨一行的,用 \caption 命令為每個(gè)圖片單獨(dú)生成標(biāo)題就需要借助前文提到的 \parbox 或者 minipage 環(huán)境,將標(biāo)題限制在盒子內(nèi).

\begin{figure}[htbp]\centering\begin{minipage}{...}\centering\includegraphics[width=...]{...}\caption{...}\end{minipage}\qquad\begin{minipage}{...}\centering\includegraphics[width=...]{...}\caption{...}\end{minipage} \end{figure}

示意圖如下:

當(dāng)我們需要更進(jìn)一步,給每個(gè)圖片定義小標(biāo)題時(shí),就要用到 subfig 宏包的功能了. 這里僅舉一例:

\begin{figure}[htbp]\centering\subfloat[...]{\label{sub-fig-1}% 為子圖加交叉引用\begin{minipage}{...}\centering\includegraphics[width=...]{...}\end{minipage}}\qquad\subfloat[...]{%\begin{minipage}{...}\centering\includegraphics[width=...]{...}\end{minipage}}\caption{...} \end{figure}

總結(jié)

以上是生活随笔為你收集整理的LaTeX 排版(一)——基础应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。