LaTeX 列表,图片与表格
整理一下关于LaTeX关于列表,图片和表格的内容。
列表
直接提供例子即可,包括三种列表:
- 无序列表
itemize
- 有序列表
enumerate
- 描述列表
description
,通常用于对一组关键词加粗并解释。
1 | \begin{enumerate} |
注意在定制enumerate的各种细节时,通常有两个宏包:enumerate和enumitem,建议使用后者:
\usepackage{enumitem}
图片
插入图片需要graphicx宏包支持(或者还有与之类似的graphics宏包),并且不同的编译器支持的图片格式不同:
- pdflatex支持pdf,jpg和png。如果需要支持eps格式,需要导入epstopdf宏包,不支持bmp格式。
- xelatex支持pdf,eps,jpg,png和bmp格式
graphicx宏包提供的基本命令如下(graphicx宏包支持键值对形式来设置选项)
1
2
3\includegraphics{<filename>}
\includegraphics[width=,height=,scale=,angle=]{<filename>}
其中的可选参数包括指定宽度,高度,缩放倍数,旋转角度。通常需求为指定宽度即可,例如width=0.8\textwidth
。
可以在导言区预先指定图片查找的路径,此时文件名就不需要包含路径部分了,否则可能需要指定图片文件的绝对或相对路径
1
2
3
4
5
6
7
8\graphicspath{{image/}{figure/}{fig/}{img/}}
\graphicspath{
{./figure/}{./figures/}{./fig/}
{./image/}{./images/}{./img/}
{./graphics/}{./graphic/}
{./pictures/}{./picture/}
}
图片(以及表格)通常会放置在浮动体中,分别对应两种预设环境:figure和table。例如
1
2
3\begin{figure}[htbp]
...
\end{figure}
浮动体的核心在如下的浮动规则参数:
- h(here),优先放置在当前上下文位置
- t(top),优先放置在当前页或后续页面的顶部
- b(bottom),优先放置在当前页或后续页面的底部
- p(page),优先放置在一个独立页面中
这几种规则的优先级是锁定为htbp的,但是我们可以选择开启其中的部分规则,例如[hbp]
就指定可以基于三种规则来放置,选项的具体顺序没有意义,不会影响规则的优先级。还可以在选项中任意位置加上!
来忽略LaTeX对浮动体的默认排版限制,默认限制包括:
浮动体个数(除单独成页外,默认每页不超过 3 个浮动体,其中顶部不超过 2
个,底部不超过 1 个)以及浮动体空间占页面的百分比(默认顶部不超过
70%,底部不超过 30%)。
通常图片的浮动体会加上一个命令来居中放置图片,例如 1
2
3
4\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{demo.png}
\end{figure}
图片可以使用\caption
加上标题,在\caption
之后可以紧跟\label
命令添加引用
1
2
3
4
5
6\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{demo.png}
\caption{Results}
\label{fig:result1}
\end{figure}
常见的需求还有插入子图,有很多种具体方式都可以实现。
有两个不依赖其它宏包的直接方案如下:
第一种方案如下,直接指定间距
1
2
3
4
5
6
7\begin{figure}
\centering
\includegraphics[scale=0.5]{a.jpg}
\hspace{1in} % or \qquad
\includegraphics[scale=0.5]{b.jpg}
\caption{Demo}
\end{figure}第二种方案如下,创建两个minipage
1
2
3
4
5
6
7
8
9
10
11
12
13
14\begin{figure}
\begin{minipage}[t]{0.5\linewidth}
\centering
\includegraphics[scale=0.5]{a.jpg}
\caption{Demo 1}
\label{fig:a}
\end{minipage}
\begin{minipage}[t]{0.5\linewidth}
\centering
\includegraphics[scale=0.5]{b.jpg}
\caption{Demo 2}
\label{fig:b}
\end{minipage}
\end{figure}
除此之外,还可以依赖其它宏包来实现,常见的相同功能的宏包至少有subfigure(版本过旧,被弃用),subfig(提供\subfloat
命令)和subcaption。
这些宏包相互之间是冲突的,有的版本过旧已经被舍弃,建议使用subcaption。
1
\usepackage{subcaption} % 加载 subcaption 宏包
使用示例如下 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.47\textwidth}
\centering
\includegraphics[width=\textwidth]{a.png}
\caption{Demo a}
\label{fig:subfig-a}
\end{subfigure}
\begin{subfigure}[b]{0.47\textwidth}
\centering
\includegraphics[width=\textwidth]{b.png}
\caption{Demo b}
\label{fig:subfig-b}
\end{subfigure}
\caption{Demo}
\label{fig:example}
\end{figure}
虽然subfigure宏包已经被弃用了,但是鉴于我之前一直在使用,还是记录一下常用示例,导入宏包
1
\usepackage{subfigure}
插入两个并列图片 1
2
3
4
5
6
7
8
9
10
11\begin{figure}[htbp]
\centering
\subfigure[Demo a]{
\includegraphics[width=7.25cm]{a.png}
}
\subfigure[Demo b]{
\includegraphics[width=7.25cm]{b.png}
}
\caption{Demo}
\label{fig:1}
\end{figure}
插入多行多列图片 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27\begin{figure}[htbp]
\centering
\subfigure[第一个]{
\includegraphics[width=.45\linewidth]{img/1.png}
}
\quad
\subfigure[第二个]{
\includegraphics[width=.45\linewidth]{img/2.png}
}
\quad
\subfigure[第三个]{
\includegraphics[width=.45\linewidth]{img/3.png}
}
\quad
\subfigure[第四个]{
\includegraphics[width=.45\linewidth]{img/4.png}
}
\quad
\subfigure[第五个]{
\includegraphics[width=.45\linewidth]{img/5.png}
}
\quad
\subfigure[第六个]{
\includegraphics[width=.45\linewidth]{img/6.png}
}
\caption{Demo}\label{p1}
\end{figure}
表格 TODO
常用代码片段
图片
插入单个图片 1
2
3
4
5
6\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{img/demo.png}
\caption{Results}
\label{fig:result1}
\end{figure}
插入两个并列的图片(基于subcaption宏包,推荐) 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.4\textwidth}
\centering
\includegraphics[width=\textwidth]{a.png}
\caption{Demo a}
\label{fig:subfig-a}
\end{subfigure}
\hfill % 插入弹性的水平间距,比固定的\qquad更合适
\begin{subfigure}[b]{0.4\textwidth}
\centering
\includegraphics[width=\textwidth]{b.png}
\caption{Demo b}
\label{fig:subfig-b}
\end{subfigure}
\caption{Demo}
\label{fig:example}
\end{figure}
插入两个并列的图片(基于subfigure宏包) 1
2
3
4
5
6
7
8
9
10
11\begin{figure}[htbp]
\centering
\subfigure[Demo a]{
\includegraphics[width=7.25cm]{a.png}
}
\subfigure[Demo b]{
\includegraphics[width=7.25cm]{b.png}
}
\caption{Demo}
\label{fig:1}
\end{figure}
表格
1 | \begin{table}[ht] |