Latex學習筆記(二)


(二)文檔元素

一個結構化的文檔所依賴的各種元素——章節、目錄、列表、圖表、交叉引用、腳注……

2.1章節和目錄

2.1.1 章節標題

三個標准文檔類article,report和book提供了划分章節的命令:

\section{<title>}      \chapter{<title>}    \subsection{<title>} 
\subsubsection{<title>}   \paragraph{<title>}  
\subparagraph{<title>}
  1. 其中\chapter只在book和report文檔類有定義。
  2. 這些命令生成章節標題,並能夠自動編號。
  3. \part命令,用來將整個文檔分割為大的分塊,但不影響\chapter或\section等的編號。
  4. 上述命令除了生成帶編號的標題外,還向目錄中添加條目,並影響頁眉頁腳的內容。
  5. 每個命令有兩種變體:
    •   帶星號的變體:\section*{<title>}
      •   標題不帶編號,也不生成目錄項和頁眉頁腳;
    •   可帶參數的變體:\section[<short title>]{<title>}
      • 標題使用<title>參數,<在目錄和頁眉頁腳中使用<short title>參數。

2.1.2 目錄

  1. 在合適的地方使用命令:\tableofcontents 即可完成目錄的生成。
  2. 正確生成目錄項,往往要編譯兩次源代碼。
  3. 有時我們使用了帶星號的變體又想手動生成該章節的目錄項,可以在標題命令后面使用:\addcontentsline{toc}{<level>}{<title>};其中,<level>為章節層次chaptersection等,<title>為出現於目錄項的章節標題。

2.1.3 文檔結構划分

book文檔類還提供了前言、正文、后記、附錄結構的划分命令:

  1. \frontmatter 前言部分,頁碼為小寫羅馬字母格式;其后的\chapter不編號。
  2. \mainmatter 正文部分,頁碼為阿拉伯數字格式,從1開始計數;其后的章節編號正常。
  3. \backmatter 后記部分,頁碼格式不變,繼續正常計數;其后的\chapter不編號。
  4. \appendix適用於所有標准文檔類)將正文和附錄分開,其后最高一級章節改為使用拉丁字母編號,從A開始

book文檔類的文檔結構示例

 

2.2 標題頁

latex支持生成簡單的標題頁。首先需要給定標題和作者等信息:

\title{<title>} \author{<author>} \date{<date>}
  1. 在信息給定后,就可以使用\maketitle命令生成一個簡單的標題頁。
  2. article文檔類的標題頁默認不單獨成頁,而report和book默認單獨成頁。
  3. 可在\documentclass命令調用文檔類時指定titlepage/notitlepage選項以修改默認的行為。
  4. 在titlepage環境下,可以生成不帶頁眉頁腳的一頁,可以使用各種排版元素自由發揮,生成自定義的標題頁以代替\maketitle命令。
  5. 可以用titlepage環境重新定義\maketitle(生成的標題頁就是一個titlepage環境)
    •  \renewcommand{\maketitle}{ \begin{titlepage} ……%用戶自定義命令 \end{titlepage} } 
  6. 在\title、\author等命令內可以使用\thanks命令生成標題頁的腳注,用\and隔開多個人名。
\documentclass{book}
\title{Test title}
\author{ BlackBoss\thanks{E-mail:*****@***.com}
         \and Chu\thanks{Corresponding author}
         \and shou
         }
\date{\today}
\begin{document}
\maketitle % 標題頁
\end{document}

  標題頁效果示例

2.3 交叉引用

  • 強大的自動排版功能的體現之一。
  • 在要被交叉引用的地方,如章節、公式、圖標、定理等位置使用 \label命令:\label{<label-name>} 之后可以在別處使用\ref或\pageref命令,分別交叉應用的編號和頁碼:\ref{<label-name>} \pageref{<label-name>}
  • 為了生成正確的交叉引用,一般也需要多次編譯源代碼。
  • \label命令可用於記錄各種類型的交叉引用,使用位置分別為:
  1. 章節標題 在章節標題命令\section 等之后緊接使用。
  2. 行間公式 單行公式在公式內任意位置使用;多行公式在每一行公式的任意位置使用。
  3. 有序列表 在enumerate 環境的每個\item 命令之后、下一個\item 命令之前任意位置使用。
  4. 圖表標題 在圖表標題命令 \caption 之后緊接着使用。
  5. 定理環境 在定理環境內部任意位置使用。

2.4 腳注和邊注

  1. 使用\footnote命令可以在頁面底部生成一個腳注: \footnote{<footnote>} 
  2. 有些情況下(比如在表格環境、各種盒子內)使用\footnote並不能正確生成腳注。我們可以分兩步進行,先使用\footnotemark 為腳注計數,再在合適的位置用\footnotetext 生成腳注。
  3. 使用\marginpar命令可在邊欄位置生成邊注: \marginpar[<left-margin>]{<right-margin>} (注:如果只給定了<right-margin>,那么邊注在奇偶數頁文字相同;如果同時給定了<left-margin>,則偶數頁使用<left-margin>的文字。)
 1 \documentclass{ctexart}
 2 \title{Test title}
 3 \author{ BlackBoss\thanks{E-mail:*****@***.com}
 4          \and Chu\thanks{Corresponding author}
 5          \and shou
 6          }
 7 \date{\today}
 8 \begin{document}
 9 \maketitle % 標題頁
10 \newpage
11 今天是一個好日子。\footnote{出自 20220121}\\
12 \marginpar{\footnotesize邊注較窄,不要寫過多文字,最好設置較小的字號。}\\
13 \begin{tabular}{l}
14 \hline
15 “今天是一個好日子。”\footnotemark \\
16 \hline
17 \end{tabular}
18 \footnotetext{表格里出自 20220121}
19 
20 \end{document}

 

 

腳注和邊注示例

 

2.5 特殊環境

2.5.1 列表

  1. latex提供了基本的有序和無序列表環境 enumerate 和 itemize 兩者的用法很類似,都用 \item 標明每個列表項。
  2. enumerate 環境會自動對列表項編號:
1 \begin{enumerate}
2 \item ...
3 \end{enumerate}

 

  1. 其中 \item 可帶一個可選參數,將有序列表的奇數或者無序列表的符號替換成自定義的符號。
  2. 列表可以嵌套使用,最多嵌套四層。
 1 \documentclass{ctexart}
 2     \begin{document}
 3         enumerate環境:
 4             \begin{enumerate}
 5                 \item An item.
 6                     \begin{enumerate}
 7                         \item A nested item.\label{itref}
 8                         \item[*] A starred item.
 9                     \end{enumerate}
10                 \item Reference(\ref{itref}).
11             \end{enumerate}
12         itemize環境:
13             \begin{itemize}
14                 \item An item.
15                     \begin{itemize}
16                         \item A nested item.
17                         \item[+] A `plus' item.
18                         \item Another item.
19                     \end{itemize}
20                 \item Go back to upper level.
21             \end{itemize}
22     \end{document}

enumerate和itemize環境

  • 關鍵字環境description的用法與以上兩者類似,不同的是 \item 后的可選參數用來寫關鍵字,以粗體顯示,一般是必填的:
1 %description環境:    
2         \begin{description}
3             \item[Enumerate] Numbered list.
4             \item[Itemize] Non-numbered list.
5         \end{description}

description關鍵字環境

  • 各級無序列表的符號由命令 \labelitemi 到 \labelitemiv 定義,可以簡單地重新定義它們;
  • 各級有序列表的符號由命令 \labelenumi 到 \labelnumiv 定義,重新定義這些命令需要用到計數器(此處暫不做介紹)的相關命令。
 1 \renewcommand{\labelitemi}{\ddag}
 2 \renewcommand{\labelitemii}{\dag}
 3 \begin{itemize}
 4     \item First item
 5         \begin{itemize}
 6             \item Subitem
 7             \item Subitem
 8         \end{itemize}
 9     \item Second item
10 \end{itemize}
11 
12 \renewcommand{\labelenumi}{\Alph{enumi}>}
13 \begin{enumerate}
14     \item First item
15     \item Second item
16 \end{enumerate}

 

 

 

列表符號重定義效果

2.5.2 對齊環境

  • center , flushleft 和 flushright 環境分別用於生成居中、左對齊和右對齊的文本環境。
  • 可以用以下命令直接改變文字的對其方式:
    •   \centering \raggedright \raggedleft 
 1 \documentclass{ctexart}
 2     \begin{document}
 3         \begin{center}
 4             Centered text using a \verb|center| environment.
 5         \end{center}
 6         \begin{flushleft}
 7             Left-aligned text using a \verb|flushleft| environment.
 8         \end{flushleft}
 9         \begin{flushright}
10             Right-aligned text using a \verb|flushright| environment.
11         \end{flushright}
12         
13         \centering
14         Centered text paragraph.\\
15         \raggedright
16         Left-aligned text paragraph.\\
17         \raggedleft
18         Right-aligned text paragraph.
19     \end{document}

 

對齊環境效果

 

 

  1. center 等環境會在上下文產生一個額外間距,而 \centering 等命令不產生,只是改變對齊方式。
  2. 在浮動體環境 table 或 figure 內實現居中對齊,用 \centering 命令即可,沒必要再用 center 環境。

2.5.3 引用環境

兩種引用環境:

  1. quote 用於引用較短的文字,首行不縮進;
  2. quotation 用於引用若干段文字,首行縮進。

引用環境較一般文字有額外的左右縮進。

  • verse 用於排版詩歌,與 quotation 恰好相反,verse 是首行懸掛縮進的。
\documentclass{ctexart}
    \begin{document}
        Francis Bacon says:
            \begin{quote}
                Knowledge is power.
            \end{quote}
            
        《木蘭詩》:
            \begin{quotation}
                萬里赴戎機,關山度若飛。
                
                朔氣傳金柝,寒光照鐵衣。
                
                將軍百戰死,壯士十年歸。
                
                ⋯⋯
            \end{quotation}   
            
        Rabindranath Tagore's short poem:
            \begin{verse}
                Beauty is truth's smile when she beholds her own face in a perfect mirror.
            \end{verse}
    \end{document}

 引用效果

 2.5.4 摘要環境

  1. 摘要環境abstract 默認只在標准文檔類中的 article 和 report 文檔類可用;
  2. 一般用於緊跟 \maketitle 命令之后介紹文檔的摘要;
  3. 如果文檔類制定了 titlepage 選項,則單獨成頁;
  4. 單欄排版時相當於一個居中的小標題加一個 quotation 環境;
  5. 雙欄排版時相當於\section* 定義的一節。

2.5.5 代碼環境

  1. 代碼環境verbatim —— 將代碼原樣轉義輸出;
  2. 等寬字體排版代碼,回車和空格分別起到換行和空位的作用
  3. 帶星號的版本會將空格顯示成占位符
  4. 要排版簡短的代碼或關鍵字,可使用 \verb 命令\verb<delim><code><delim> 。
    •   <delim>標明代碼的分界位置,前后必須一致,除字母、空格或星號外,可任意選擇使得不與代碼本身沖突,習慣上使用 | 符號。
    •   \verb 命令對等號的處理比較復雜,一般不能用在其他命令的參數里,否則多半會出錯。
    •   verbatim 宏包優化了verbatim 環境的內部命令,並提供了 \verbatiminput 命令用來直接讀入文件生成代碼環境。
    •   fancyvrb 宏包提供了可定制格式的Verbatim 環境;
    •   listings 宏包可生成關鍵字高亮的代碼環境,支持各種程序設計語言的語法和關鍵字。
 1 \documentclass{ctexart}
 2     \begin{document}
 3         \begin{verbatim}
 4             #include <iostream>
 5             int main()
 6                 {
 7                     std::cout << "Hello, world!"<< std::endl;
 8                     return 0;
 9                 }
10         \end{verbatim}
11         
12         \begin{verbatim*}
13             for (int i=0; i<4; ++i)
14             printf("Number %d\n",i);
15         \end{verbatim*}
16 
17         \verb|\LaTeX| \\
18         \verb+(a || b)+ \\
19         \verb*+(a || b)+
20     \end{document}

 

代碼環境效果

 

2.6 表格

排版表格最基本的 tabular 環境用法為:

 

1 \begin{tabular}[<align>]{<column-spec>}
2 <item1>&<item2>& ... \\
3 \hline
4 <item1>&<item2>& ... \\
5 \end{tabular}

 

  1. <column-spec>是列格式標記;
  2. &用來分隔單元格;
  3. \\用來換行;
  4. \hline用來在行與行之間繪制橫線。
  5. 直接使用tabular環境,會和周圍的文字混排。
    •   此時可用參數<align>控制垂直對齊t 和 b 分別表示按表格頂部、底部對齊,其他參數或省略不寫(默認)表示居中對齊。【如下例】

 

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

  •  通常情況下 tabular 環境很少與文字直接混排,而是會放在 table 浮動體環境中,並用 \caption 命令加標題。

2.6.1 列格式

tabular 環境使用 <column-spec> 參數指定表格的列數以及每列的格式。基本的列格式見表:

 

  1. 表格中每行的單元格數目不能多於列格式里l/c/r/p的總數(可以少於這個總和),否則出錯。
  2. 格式參數重復的寫法 *{<n>}{<column-spec>} ,以下兩種寫法等效: \begin{tabular}{|c|c|c|c|c|p{4em}|p{4em}|} ↔ \begin{tabular}{|*{5}{c|}*{2}{p{4em}|}} 
  3. @格式可在單元格前后插入任意的文本,但同時它也消除了單元格前后額外添加的間距。
    •   @格式可以適當使用充當“豎線”。
    •   @{}可直接用來消除單元格前后的間距。

2.6.2 列寬

  • tabular*環境排版定寬表格,但不是太方便,需要用@格式插入額外命令,令單元格之間的間距為 \fill:
1 \documentclass{ctexart}
2     \begin{document}
3         \begin{tabular*}{14em}%定寬14em
4             {@{\extracolsep{\fill}}|c|c|c|c|}
5             \hline
6             A & B & C & D \\ \hline
7             a & b & c & d \\ \hline
8         \end{tabular*}
9     \end{document}

tabular*環境排版定寬表格

 

  • tabularx宏包為我們提供了方便的解決方案。
    •   引入X列格式,類似p列格式,根據表格寬度自動計算列寬,多個X列格式平均分配列寬;
    •   X列格式也可以用array里的輔助格式修飾對齊方式。
 1 \documentclass{ctexart}
 2 \usepackage{tabularx}%調用tabularx宏包
 3     \begin{document}
 4         \begin{tabularx}{14em}%
 5             {|*{4}{>{\centering\arraybackslash}X|}}
 6             \hline
 7             A & B & C & D \\ \hline
 8             a & b & c & d \\ \hline
 9         \end{tabularx}
10     \end{document}

tabularx宏包調控列寬格式

 

2.6.3 橫線

  1. 除\hline之外,\cline{<i>-<j>}用來繪制跨越部分單元格的橫線;
  2. booktabs宏包支持三線表的繪制:
    •   \toprule,\midrule和\bottomrule命令用以排版三線表的三條線;
    •   \cline 對應的 \cmidrule .
 1 \documentclass{ctexart}
 2 \usepackage{booktabs}%調用booktabs宏包
 3     \begin{document}
 4         \begin{tabular}{|c|c|c|}
 5             \hline
 6             4 & 9 & 2 \\ \cline{2-3}
 7             3 & 5 & 7 \\ \cline{1-1}
 8             8 & 1 & 6 \\ \hline
 9         \end{tabular}
10 
11         \begin{tabular}{cccc}
12             \toprule
13             & \multicolumn{3}{c}{Numbers} \\
14             \cmidrule{2-4}
15             & 1 & 2 & 3 \\
16             \midrule
17             Alphabet & A & B & C \\
18             Roman & I & II& III \\
19             \bottomrule
20         \end{tabular}
21 
22     \end{document}

表格線寬設置效果

2.6.4 合並單元格

  • 橫向合並單元格較為容易,由\multicolumn 命令實現: \multicolumn{<n>}{<column-spec>}{<item>} 
    •   <n>為要合並的列數
    •   <column-spec>為合並單元格后的列格式,只允許出現一個 l/c/r 或 p 格式。
    •   如果合並前的單元格前后帶表格線 | ,合並后的列表格也要帶 | 以使得表格的豎線一致。
    •    \multicolumn{1}{<column-spec>}{<item>} 可修改某一單元格的列格式。

 

 1 \documentclass{ctexart}
 2 \usepackage{booktabs}%調用booktabs宏包
 3     \begin{document}
 4         \begin{tabular}{|c|c|c|}
 5             \hline
 6             1 & 2 & Center \\ \hline
 7             \multicolumn{2}{|c|}{3} &
 8             \multicolumn{1}{r|}{Right} \\ \hline
 9             4 & \multicolumn{2}{c|}{C} \\ \hline
10         \end{tabular}
11     \end{document}

橫向合並單元格

 

  • 縱向合並單元格需要用到 multirow 宏包提供的 \multirow 命令
    •    \multirow{<n>}{<width>}{<item>} 
    •   <width>為合並后單元格的寬度,可以填 * 以使用自然寬度。
 1 \documentclass{ctexart}
 2 \usepackage{multirow}%調用multirow宏包
 3     \begin{document}
 4         \begin{tabular}{ccc}
 5             \hline
 6             \multirow{2}{*}{Item} &
 7             \multicolumn{2}{c}{Value} \\
 8             \cline{2-3}
 9             & First & Second \\ \hline
10             A & 1 & 2 \\ \hline
11         \end{tabular}
12     \end{document}

表格合並單元格綜合使用效果

 

2.6.5 行距控制

  • 通過修改 \arraystretch 得到行距更加寬松的表格。
  • 通過給換行命令 \\ 添加可選參數,在這一行下面加額外的間距
    •   適合用於在行間不加橫線的表格;
    •   表格首個單元格不能直接使用中括號[](如果要使用,應當放在花括號{}里面,也可以選擇將換行命令寫成\\[0pt].)。
 1 \documentclass{ctexart}
 2     \begin{document}
 3     法一:
 4     
 5         \renewcommand\arraystretch{1.8}
 6         \begin{tabular}{|c|}
 7             \hline
 8             Really loose \\ \hline
 9             tabular rows.\\ \hline
10         \end{tabular}
11     
12     法二:
13     
14         \begin{tabular}{c}
15         \hline
16         Head lines \\[6pt]
17         tabular lines \\
18         tabular lines \\ \hline
19         \end{tabular}
20     \end{document}

 行距控制的兩種方法

 2.7 圖片

  • 在調用了graphicx 宏包以后,就可以使用 \includegraphics 命令加載圖片了:
    •   \includegraphics[<options>]{<filename>} 
      •   可選參數<options>支持<key> = <value>形式賦值。
    •   <filename>為圖片文件名,需要用相對路徑或絕對路徑表示(視情況而定);
      •   文件名里既不要有空格,也不要有多余的英文點號。
    •   graphicx宏包提供了 \graphicspath 命令,用於聲明一個或多個圖片文件存放的目錄,使用這些目錄里的圖片時可不用寫路徑。
      •    \graphicspath{{figures/}{logo/}} (假設主要的照片放在figures子目錄下,標志放在logo子目錄下)  

\includegraphics命令的可選參數

 

 

2.8 盒子

2.8.1 水平盒子

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

1 \mbox{...}
2 \makebox[<width>][<align>]{...}

 

  • \mbox   生成一個基本的水平盒子,內容只有一行,不允許分段。
  • \makebox 可以加上可選參數用於控制盒子的寬度,<width>,以及內容的對齊方式<align>,可選居中 c (默認值)、左對齊 l 、右對齊 r 和分散對齊 s 。
 1 \documentclass{ctexart}
 2     \begin{document}
 3     |\mbox{Test some words.}|
 4     
 5     |\makebox[10em]{Test some words.}|
 6     
 7     |\makebox[10em][l]{Test some words.}|
 8     
 9     |\makebox[10em][r]{Test some words.}|
10     
11     |\makebox[10em][s]{Test some words.}|
12     \end{document}

水平盒子效果

 

2.8.2 帶框的水平盒子

 

  • \fbox\framebox 讓我們可以為水平盒子添加邊框。用法與 \mbox\makebox 一模一樣。
  • 通過 \setlength 命令調節邊框的寬度 \fboxrule內邊框 \fboxsep。
1 \documentclass{article}
2     \begin{document}
3         \framebox[10em][r]{Test box}
4         \setlength{\fboxrule}{1.6pt}
5         \setlength{\fboxsep}{1em}
6         \framebox[10em][r]{Test box}
7     \end{document}

帶框的水平盒子效果示例

 

2.8.3 垂直盒子

  • 排版一個文字可以換行的盒子,latex有兩種方法:
  1. \parbox[<align>][<height>][<inner-align>]{<width>}{…} 

  2.  \begin{minipage}[<align>][<height>][<inner-align>]{<width>} … \end{minipage} 
  • <align>為盒子和周圍文字的對齊情況(類似tabular環境);
  • <height><inner-align>設置盒子的高度和內容的對齊方式,
    •   類似水平盒子\makebox的設置;
    •   <inner-align>接受的參數是頂部t、底部b、居中c和分散對齊s。
  • minipage 環境里使用 \footnote 命令,生成的腳注會出現在盒子底部,編號是獨立的,並且使用小寫字母編號。
  • \parbox 里無法正常使用 \footnote 命令,只能在盒子里使用\footnotemark,在盒子外使用\footnotetext。
 1 \documentclass{ctexart}
 2     \begin{document}
 3         三字經:\parbox[t]{3em}%
 4                 {人之初性本善性相近習相遠}
 5                 \quad
 6                     千字文:
 7                             \begin{minipage}[b][8ex][t]{4em}
 8                                 天地玄黃宇宙洪荒
 9                             \end{minipage}
10         
11         \fbox{
12                 \begin{minipage}{15em}%
13                     這是一個垂直盒子的測試。
14                     \footnote{腳注來自minipage。}
15                 \end{minipage}
16             }
17     \end{document}

垂直盒子效果示例

 

2.8.4 標尺盒子

  • \rule 命令用來畫一個實心的矩形盒子,也可適當調整以用來畫線(標尺): 
      •     \rule[<raise>]{<width>}{<height>} 

 

 

 1 \documentclass{ctexart}
 2     \begin{document}
 3         Black \rule{12pt}{4pt} box.
 4         
 5         Upper \rule[4pt]{6pt}{8pt} and
 6         
 7         lower \rule[-4pt]{6pt}{8pt} box.
 8         
 9         A \rule[-.4pt]{3em}{.4pt} line.
10     \end{document}

標尺盒子

 

 

2.9 浮動體

  • 浮動體機制的引入,令大塊的內容可以脫離上下文,放置在合適的位置。
  • latex預定義了兩種浮動體環境:figure和table。習慣上figure里放圖片,table里放表格,但並沒有嚴格限制。
    •   以table環境的用法舉例,figure同理: \begin{table}[<placement>]...\end{table} 
      •   <placement>參數提供了一些符號用來表示浮動體允許排版的位置(默認設置是tbp)。
        •   排版位置的選取與參數里符號的順序無關,優先級為h-t-b-p;(即[!htp]==[ph!t]) 
        •   限制包括浮動體個數(除單獨成頁外,默認每頁不超過3個浮動體,中頂部不超過2個,底部不超過1個)以及浮動體空間占頁面百分比(默認頂部不超過70%,底部不超過30%)。

浮動體的位置參數含義

 

  • 雙欄排版環境下,Latex提供了table*和figure*環境用來排版可跨欄的浮動體
    •   雙欄的<placement>參數只能用 tp 兩個位置。

 

  • 浮動體的位置選取受到先后順序的限制(某個浮動體在當前頁無法放置,之后的浮動體一並推遲);
    •   \clearpage命令會在另起一頁之前,先將所有推遲處理的浮動體排版成頁,此時htbp等位置限制被完全忽略。
  • float宏包為浮動體提供了 H 位置參數,不與htbp混用。使用H位置參數時,會取消浮動機制,將浮動體視為一般的盒子插入當前位置。

2.9.1 浮動體的標題

  • \caption命令加標題,並且自動給浮動體編號: \caption{...} 
  • 可以用帶星號的命令 \caption* 生成不帶編號的標題,也可以使用帶可選參數的形式 \caption[...]{...},使得在目錄里使用短標題。\caption 命令之后還可以緊跟 \label 命令標記交叉引用。
  • 標題樣式的定制功能由caption宏包提供,可通過修改 \figurename 和 \tablename 的內容來修改標題的前綴。
  • table 和 figure 兩種浮動體分別有各自的生成目錄命令(生成單獨的章節):
    •    \listoftables 
    •    \listoffigures 

2.9.2 並排和子圖表

  • 一個浮動體里面放置多張圖的用法。

    •   直接並排放置

    •   通過分段或者換行命令\\ 排版多行多列的圖片。

 1 \documentclass{ctexart}
 2 \usepackage{graphicx}
 3     \begin{document}
 4         \begin{figure}[htbp]
 5             \centering
 6             \includegraphics[width = 100 pt]{人工智能1.jpg}
 7             \qquad
 8             \includegraphics[width = 100 pt]{人工智能2.jpg} \\[10pt]
 9             \includegraphics[width = 225 pt]{人工智能3.jpg}
10             \caption{人工智能}
11         \end{figure}
12     \end{document}

圖片的並排

  •  由於標題是橫跨一行的,用\caption命令為每個圖片單獨生成標題就需要借助前文提到的\parbox或者minipage環境,將標題限制在盒子內。
 1 \documentclass{ctexart}
 2 \usepackage{graphicx}
 3     \begin{document}
 4         \begin{figure}[htbp]
 5             \centering
 6             \begin{minipage}{100 pt}
 7                 \centering
 8                 \includegraphics[width = 100 pt]{人工智能1.jpg}
 9                 \caption{人工智能1}
10             \end{minipage}
11             \qquad
12                     \begin{minipage}{100 pt}
13                         \centering
14                         \includegraphics[width = 100 pt]{人工智能2.jpg}
15                         \caption{人工智能2}
16                     \end{minipage}\\[20pt]
17             \begin{minipage}{225 pt}
18                 \centering
19                 \includegraphics[width = 225 pt]{人工智能3.jpg}
20                 \caption{人工智能3}
21             \end{minipage}
22         \end{figure}
23     \end{document}

 

  •  給每一個圖片定義小標題時,就要用到subfig宏包\subfloat命令排版子圖。

 1 \documentclass{ctexart}
 2 \usepackage{graphicx}
 3 \usepackage{subfig}
 4     \begin{document}
 5         \begin{figure}[htbp]
 6             \centering
 7             \subfloat[並排子圖1]{
 8                                     \label{並排子圖1}% 為子圖加交叉引用
 9                                     \begin{minipage}{100 pt}
10                                         \centering
11                                         \includegraphics[width = 100 pt]{人工智能1.jpg}
12                                     \end{minipage}
13                                 }
14             \qquad
15             \subfloat[並排子圖2]{
16                                     \label{並排子圖2}
17                                     \begin{minipage}{100 pt}
18                                         \centering
19                                         \includegraphics[width = 100 pt]{人工智能2.jpg}
20                                     \end{minipage}
21                                 }\\[5pt]
22             \subfloat[並排子圖3]{
23                                     \label{並排子圖3}
24                                     \begin{minipage}{225 pt}
25                                         \centering
26                                         \includegraphics[width = 225 pt]{人工智能3.jpg}
27                                     \end{minipage}
28                                 }
29             \caption{人工智能三張圖片}
30         \end{figure}
31     \end{document}

使用subfig宏包的\subfloat命令排版子圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM