发布

$\LaTeX{}$之图片使用

WAP站长网 2025-9-10 10:30
0 2

本文介绍了在 \(\LaTeX{}\) 中插入图片的基本语法和一些常用的技巧,并且给出了一些在排版中常用的模板样例。


基本语法

\(\LaTeX{}\) 本身不支持插图功能,需要由 graphicx 宏包辅助支持。

使用 \(\textrm{latex + dvipdfmx}\) 编译命令时,调用 graphicx 宏包时要指定 \(\textrm{dvipdfmx}\) 选项;而使用 \(\textrm{pdflatex}\) 或 \(\textrm{xelatex}\) 命令编译时不需要。

不同编译命令支持的图片格式种类各异,见下表。这个表格也能解答诸如“为什么 \(\textrm{.eps}\) 格式图片在 \(\textrm{pdflatex}\) 编译命令下出错”之类的问题。本表格也再一次说明,使用 \(\textrm{xelatex}\) 命令是最推荐的方式。

$\LaTeX{}$之图片使用

在调用了 graphicx 宏包以后,就可以使用 \includegraphics 命令加载图片了:

\includegraphics[⟨options⟩]{⟨filename⟩} 

其中 <filename> 为图片文件名,文件名可能需要用相对路径或绝对路径表示。图片文件的扩展名一般可不写。另外一定要注意,

文件名里既不要有空格也不要有多余的英文点号

,否则宏包在解析文件名的过程中会出错。

另外

graphicx 宏包还提供了 graphicspath 命令,用于声明一个或多个图片文件存放的目录

,使用这些目录里的图片时可不用写路径:

% 假设主要的图片放在 figures 子目录下,标志放在 logo 子目录下 \graphicspath{{figures/}{logo/}} 

\includegraphics 命令的可选参数 <options>中可以使用 <key> = <value> 的形式,常用的参数如下:

$\LaTeX{}$之图片使用

graphicx 宏包也支持 \(\textrm{draft}\)/\(\textrm{final}\) 选项。当 graphicx 宏包或文档类指定 \(\textrm{draft}\) 选项时,图片将不会被实际插入,取而代之的是一个包含文件名的与原图片等大的方框。(

加快编译过程

)


并排和子图表

时常有在一个浮动体里面放置多张图的用法。最简单的用法就是直接并排放置,也可以通过分段或者换行命令 \\ 排版多行多列的图片。以下为示意代码,效果大致如图所示。

\begin{figure}[htbp] \centering \includegraphics[width=...]{...} \qquad \includegraphics[width=...]{...} \\[...pt] \includegraphics[width=...]{...} \caption{...} \end{figure} 
$\LaTeX{}$之图片使用

由于标题是横跨一行的,用 \caption 命令为每个图片单独生成标题就需要借助前文提到的 parbox 或者 \(\textrm{minipage}\) 环境,将标题限制在盒子内。效果见图所示。

\begin{figure}[htbp] \centering \begin{minipage}{...} \centering \includegraphics[width=...]{...} \caption{...} \end{minipage} \qquad \begin{minipage}{...} \centering \includegraphics[width=...]{...} \caption{...} \end{minipage} \end{figure} 
$\LaTeX{}$之图片使用

当需要更进一步,给每个图片定义小标题时,就要用到 subcaption 宏包的功能了。这里仅举一例,效果见图。更详细的用法请参考 subcaption 宏包的帮助文档。

\begin{figure}[htbp] \centering \begin{subfigure}{...} \centering \includegraphics[width=...]{...} \caption{...} \end{subfigure} \qquad \begin{subfigure}{...} \centering \includegraphics[width=...]{...} \caption{...} \end{subfigure} \end{figure} 
$\LaTeX{}$之图片使用

subcaption 依赖上文提到过的 caption 宏包,因此也支持子图表标题样式的定制。并排子图表的功能也可通过 subfig 宏包的 subfloat 命令实现,具体请参考宏包文档。


示例模板

并排子图

% \usepackage{graphicx} % \usepackage{subcaption} % \usepackage{float} \begin{figure}[H] \centering % 第一行:2个子图 \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\linewidth]{tree} \caption{子图1} \end{subfigure} \hfill % 填充水平间距 \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\linewidth]{tree} \caption{子图2} \end{subfigure} % 第二行:2个子图 \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\linewidth]{tree} \caption{子图3} \end{subfigure} \hfill \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\linewidth]{tree} \caption{子图4} \end{subfigure} % 第三行:单独居中的子图 % \vspace{0.5cm} % 调整垂直间距 \centering \begin{subfigure}[c]{0.48\textwidth} \includegraphics[width=\linewidth]{tree} \caption{子图5} \end{subfigure} \caption{整体标题} \label{fig:my_figure} \end{figure} 
$\LaTeX{}$之图片使用

上一下二

% \usepackage{graphicx} % \usepackage{subcaption} % \usepackage{float} \begin{figure}[H] \centering \begin{subfigure}[b]{0.8\textwidth} \includegraphics[width=\linewidth]{tree} \caption{Diagram.}\label{fig:1a} \end{subfigure} %\vspace{0.5cm} % 调整垂直间距 \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\linewidth]{tree} \caption{Grid.}\label{fig:1b} \end{subfigure} \hfill \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\linewidth]{tree} \caption{Arrangement.}\label{fig:1c} \end{subfigure} \caption{Structural.} \label{fig:1} \end{figure} 
$\LaTeX{}$之图片使用

边注旋转加图片

% \usepackage{graphicx} % \usepackage{subcaption} % \usepackage{float} \begin{figure}[H] \centering % 三行四列子图布局 \begin{tabular}{rcccc} % 第一行 \rotatebox{90}{10dB} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} % 替换为你的图片 %\caption{子图1} \label{fig:sub1} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} %\caption{子图2} \label{fig:sub2} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} %\caption{子图3} \label{fig:sub3} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} %\caption{子图4} \label{fig:sub4} \end{subfigure} \\ % 第二行 \rotatebox{90}{10dB} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} %\caption{子图5} \label{fig:sub5} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} %\caption{子图6} \label{fig:sub6} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} %\caption{子图7} \label{fig:sub7} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} %\caption{子图8} \label{fig:sub8} \end{subfigure} \\ % 第三行 \rotatebox{90}{10dB} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} \caption{a} \label{fig:sub9} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} \caption{b} \label{fig:sub10} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} \caption{c} \label{fig:sub11} \end{subfigure} & \begin{subfigure}[c]{0.23\textwidth} \centering \includegraphics[width=\linewidth]{tree} \caption{d} \label{fig:sub12} \end{subfigure} \end{tabular} \caption{边注旋转加图片} \label{fig:grid} \end{figure} 
$\LaTeX{}$之图片使用