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