基本语法
常用选项[htbp]是浮动格式(参考《LaTeX2e插图指南》16.2节和《Ishort》3.9节):
- 『h』当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够,这一参数将不起作用。
- 『t』顶部。将图形放置在页面的顶部。
- 『b』底部。将图形放置在页面的底部。
- 『p』浮动页。将图形放置在一只允许有浮动对象的页面上。
- 『!』 在决定位置时忽视限制
在table或者figure 后加 [!htb] 是系统忽略“美学”标准,把表格和图片插入到你的代码中,是动的,但是不加感叹号,它就是按顺序选择h(此处),t(上方),b(下方),所以为了让图片随着你的代码移动,最好加一个[!htb]
其他网友解释:“LaTeX对每个位置的浮动体的总数和占用大小有一定限制,超出限制的浮动体会被排在较后的页面中,但可以在位置选项中增加一个!符号,来忽略这些参数限制。因此,在LaTeX中最宽松的浮动体位置就是[!htbp]。在位置选项中加上!号将使浮动体相对更靠近文字或靠前出现。”
注1:排版位置的选取与参数里符号的顺序无关,LATEX 总是以h-t-b-p 的优先级顺序决定浮动体位置。
也就是说[!htp] 和[ph!t] 没有区别。
注2:限制包括浮动体个数(除单独成页外,默认每页不超过3 个浮动体,其中顶部不超过2 个,底部不
超过1 个)以及浮动体空间占页面的百分比(默认顶部不超过70%,底部不超过30%)。
\begin{figure}[htb]\centering\includegraphics[width=7.8cm]{figures/aaa.pdf}\caption{aaa}\label{fig:aaa}
\end{figure}
控制图片宽度的不同写法
\includegraphics[width=7.8cm]{figures/aaa.pdf}
\includegraphics[width=.5\textwidth]{figures/aaa.pdf}
多图并排
参考《Ishort》的“3.9.2 并排和子图表”,这次没怎么用到,先不整理了。
我们时常有在一个浮动体里面放置多张图的用法。最简单的用法就是直接并排放置,也可以
通过分段或者换行命令\\ 排版多行多列的图片。以下为示意代码。
\begin{figure}[htbp]
\centering
\includegraphics[width=...]{...}
\qquad
\includegraphics[width=...]{...} \\[..pt] % 这里换行后的[..pt]可以设置换行的宽度
\includegraphics[width=...]{...}
\caption{...}
\end{figure}
由于标题是横跨一行的,用\caption 命令为每个图片单独生成标题就需要借助前文提到的
\parbox 或者minipage 环境,将标题限制在盒子内。
\begin{figure}[htbp]
\centering
\begin{minipage}{...}
\centering
\includegraphics[width=...]{...}
\caption{...}
\end{minipage}
\qquad
\begin{minipage}{...}
\centering
\includegraphics[width=...]{...}
\caption{...}
\end{minipage}
\end{figure}
当我们需要更进一步,给每个图片定义小标题时,就要用到subfig 宏包的功能了。这里仅举
一例。更详细的用法请参考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}
其他问题
1、\centerline和\centering有什么区别?
先说结论,平时插入图片就用 \centering
就可以了。
\centerline是一个命令,可以将图片居中放置,并且在该命令后面的所有内容也会居中对齐。示例如下:
\begin{figure}[htbp]
\centerline{\includegraphics[width=.45\textwidth]{Figures/Curve.pdf}}
\caption{curve}
\label{fig:Curve}
\end{figure}
\center是一个环境,可以将图片居中放置,并且在该环境内所有的内容也会居中对齐。它的语法结构如下:
\begin{center}\includegraphics[参数]{图片文件名}
\end{center}
(以下回答内容来自ChatGPT-3.5,未验证是否准确)
在 LaTeX 中,\begin{center}
、\centerline
和 \centering
都可以用来居中对齐文本或图形,但它们有一些区别。
\begin{center}
和\end{center}
是一个环境,它将环境内的所有内容居中对齐。这意味着你可以在环境中包含多行文本或多个图形,并且它们将被一起居中对齐。当你在这个环境中输入文本或插入图形时,它们都将在页面的中心对齐,而不是默认左对齐。这个环境可以用在 LaTeX 文档中的任何地方,例如在标题、段落或图片等元素周围,以实现居中对齐的效果。\centerline
是一个命令,它只能用于单行文本或图形。它将给定的文本或图形居中对齐,忽略行末的换行符。\centering
是一个命令,它将当前段落中的所有文本居中对齐。它不像 \begin{center} 那样创建一个新的环境,也不像 \centerline 那样只针对单个元素,而是影响当前段落中的所有内容。如果你只想居中对齐一行文本,可以使用 \centering 命令,并在行末使用双反斜杠 \\ 来结束该行。
在《Ishort》的“3.5.2 对齐环境”中有这样一段话
center 等环境会在上下文产生一个额外间距,而\centering 等命令不产生,只是改变对齐方式。比如在浮动体环境table或figure 内实现居中对齐,用\centering 命令即可,没必要再用center 环境。
但是自己在\begin{figure}中套用了\begin{center}似乎也没看出什么区别。