> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/latex/zh-cn/geng-duo-zhu-ti/28-inserting-images-es.md).

# 插入图像 es

图片是大多数科学文档中的重要元素。LaTeX 提供了多种处理图片并让它们看起来完全符合需求的选项。本文将说明如何以最常见的格式插入图片，如何将图片缩小或放大，以及如何在文档中为图片添加引用。

## 引言

下面是一个在 LaTeX 中导入图片的示例。

```latex
\documentclass{article}
\usepackage{graphicx}
\graphicspath{ {images/} }

\begin{document}
宇宙是浩瀚的，并且似乎是均匀的，
在很大范围内，随处可见。

\includegraphics{universe}

上方有一张银河系的图片
\end{document}
```

![InsertingImagesEx1.png](/files/acc7875bfd8cf1e9b86b3cf2ecf91328ba4cf930)

LaTeX 本身没有处理图片的能力，因此必须导入宏包 **graphicx**. 要使用该宏包，请在文档导言区添加下面一行

```latex
\usepackage{graphicx}
```

命令 `\graphicspath{ {images/} }` 告诉 LaTeX 图片存放在一个名为 *images* 的文件夹中，位于当前目录下。

命令 `\includegraphics{universe}` 负责将图片插入文档。这里， *universe* 是图片文件名，不含扩展名；因此 *universe.PNG* 会被写成 *universe*. 图片文件名不应包含空格或多个标点符号。

注意： *可以写出文件扩展名，但建议* 省略它。若省略扩展名，LaTeX 会搜索所有受支持的格式。更多细节请参见 [生成高分辨率和低分辨率图像](#generando-imgenes-en-alta-y-baja-resolucin).

&#x20; [在 Overleaf 中打开示例](https://www.sharelatex.com/project/new/template?zipUrl=/project/52f4102815577d644c0017fb/download/zip\&templateName=InsertingImages\&compiler=pdflatex)

## 图片文件夹的路径

在处理包含多张图片的文档时，为了让项目更有条理，一种做法是把它们单独存放在一个文件夹中。

在引言中的示例里，这可以通过命令 `\graphicspath{ {images/} }` 让 LaTeX 在文件夹中查找图片 *images*。该路径是 *相对* 于当前工作目录。

到该文件夹的路径可以是 ***相对*** (推荐)，如果文件夹与主 .tex 文件位于同一目录或某个子目录中；也可以是 ***绝对*** 路径，如果需要精确指定路径。例如：

```latex
%Windows 格式的绝对路径：
\graphicspath{ {c:/user/images/} }

%Unix 风格格式（Linux、OsX）的绝对路径
\graphicspath{ {/home/user/images/} }
```

请注意，此命令要求末尾有一个右斜杠 `/` ，并且路径应放在两对花括号之间。

如果你为了更好的组织把图片保存在多个文件夹中，也可以设置多条路径。例如，如果有两个文件夹，一个叫 *images1* 而另一个叫 *images2*，使用命令

```latex
\graphicspath{ {images1/}{images2/} }</code>
```

如果不指定任何路径，LaTeX 将在当前文件夹中查找图片，也就是 .tex 文件所在的位置。

&#x20; [在 Overleaf 中打开示例](https://www.sharelatex.com/project/new/template?zipUrl=/project/52f4102815577d644c0017fb/download/zip\&templateName=InsertingImages\&compiler=pdflatex)

## 更改图片大小并旋转图片

如果在 LaTeX 中导入图片时还想指定额外参数来修改图片的宽度、高度、位置等，可以使用以下语法：

```latex
Overleaf 是一款很棒的在线专业编辑工具，
可用于分享和备份你的 \LaTeX 项目。它还提供了丰富的
帮助文档。

\includegraphics[scale=1.5]{lion-logo}
```

![InsertingImagesEx2.png](/files/1d8078565835e800ea306f8ac8d03a414a587ccf)

命令 `\includegraphics[scale=1.5]{lion-logo}` 插入图片 *lion-logo* 到文档中，额外参数 `scale=1.5` 将图片缩放到原始大小的 1.5 倍。

也可以将图片重新调整为指定的高度和宽度。

```latex
Overleaf 是一款很棒的在线专业编辑工具，
可用于分享和备份你的 \LaTeX 项目。它还提供了丰富的
帮助文档。

\includegraphics[width=3cm, height=4cm]{lion-logo}
```

![InsertingImagesEx3.png](/files/1cb994a127995114470f0f80ccad99323071b033)

你大概已经猜到了，方括号中的参数 `[width=3cm, height=4cm]` 定义图片的宽度和高度。可以使用 [不同的单位](#gua-de-referencia) 来作为这些参数的度量单位。如果只设置 *width*的值，高度会按比例缩放以保持图片的纵横比。

也可以相对于文档中的其他元素来设置图片长度。例如，如果你希望图片与正文宽度相同：

```latex
Overleaf 是一款很棒的在线专业编辑工具，
可用于分享和备份你的 \LaTeX 项目。它还提供了丰富的
帮助文档。

\includegraphics[width=\textwidth]{universe}
```

![InsertingImagesEx5.png](/files/f998913c2f3b7755496c49a39dbc51479a26460b)

而不是 `\textwidth` 你可以使用 LaTeX 默认包含的其他任何单位： *\columnsep, \linewidth, \textheight, \paperheight, etc*。请参阅 [参考指南](#gua-de-referencia) 以获得对这些单位更详细的说明。

在文档中插入图片时，还有一个非常常见的选项：旋转图片。这在 LaTeX 中非常容易：

```latex
Overleaf 是一款很棒的在线专业编辑工具，
可用于分享和备份你的 \LaTeX 项目。它还提供了丰富的
帮助文档。

\includegraphics[scale=1.2, angle=45]{lion-logo}
```

![InsertingImagesEx4.png](/files/acca5e5fedaff8f8b8d2727c87b082881a42c067)

参数 `angle=45` 会将图片逆时针旋转 45 度。若要按顺时针方向旋转图片，请使用负数。

&#x20; [在 Overleaf 中打开示例](https://www.sharelatex.com/project/new/template?zipUrl=/project/52f4102815577d644c0017fb/download/zip\&templateName=InsertingImages\&compiler=pdflatex)

## 定位图片

上一节介绍了如何在文档中插入图片，但有时文档中的图片和文字组合并不会如你所愿。要改变这一点，需要使用一个新的环境：

```latex
在下面的示例中，图形将被放置在
就在这句话的正下方。

\begin{figure}[h]
\includegraphics[width=8cm]{Plot}
\end{figure}
```

![InsertingImagesEx6.png](/files/480c25400af1b9e988bf031d7694116cfa3778b7)

环境 `figure` 用于在文档中将图片作为浮动元素显示。这意味着只需将图片放入环境 *figure* 中，你就不用担心它会出现在什么位置，LaTeX 会将其放置到与文档流程完美契合的位置。

不过，尽管这听起来很好，有时你会希望对图片出现的位置有更多控制。可以使用额外参数来设置图形的定位。在示例中， `begin{figure}[h]`方括号中的参数指定了图形的位置 *此处* （“here”，英文）。下面是一张列出可能位置值的表。

| 参数 | 位置                                              |
| -- | ----------------------------------------------- |
| h  | 将浮动元素设置为“这里”。也就是大致放在代码中出现的位置（不过定位并不总是完全精确）。     |
| t  | 将图形插入到页面顶部。                                     |
| b  | 将图形插入到页面底部。                                     |
| p  | 将浮动元素放到单独的页面中，该页面只包含图形。                         |
| !  | 覆盖 LaTeX 用于确定图片“合适”位置的参数。                       |
| H  | 将浮动元素精确放在代码中出现的位置，需要导入宏包 `float`. 在某种程度上等同于 h!。 |

在下面的示例中，可以看到一张出现在文档开头的图片，尽管生成它的代码位于文档末尾。

```latex
在这张图中，你可以看到一张条形图，显示
了一项调查的结果，其中涉及一些重要的
数据随着时间推移而被研究。

\begin{figure}[t]
\includegraphics[width=8cm]{Plot}
\centering
\end{figure}
```

![InsertingImagesEx7.png](/files/3d9f3962eee9f705d3ac86408462995103f6a016)

额外的命令 `\centering` 负责将图片居中。默认的对齐方式是左对齐。

也可以让文本环绕图形。当文档包含较小图片时，这会让文字排版更美观。

```latex
\begin{wrapfigure}{r}{0.25\textwidth} %this figure will be at the right
    \centering
    \includegraphics[width=0.25\textwidth]{mesh}
\end{wrapfigure}

绘制二元函数有多种方式，
具体取决于你对哪些信息感兴趣。例如，
如果你想查看函数的网格，这样
更容易看出导数，你可以使用像左边这样的图。
左边的那一张。

\begin{wrapfigure}{l}{0.25\textwidth}
    \centering
    \includegraphics[width=0.25\textwidth]{contour}
\end{wrapfigure}

另一方面，如果你只对
某些数值感兴趣，你可以使用等高线图，你
可以使用等高线图，你
可以使用等高线图，你可以使用等高线
图，你可以使用等高线图，
就像左边那一张。

另一方面，如果你只对
某些数值感兴趣，你可以使用等高线图，你
可以使用等高线图，你
图，你可以使用等高线图，你可以使用
等高线图，你可以使用等高线图，
你可以使用等高线图，
就像左边那一张。
```

![InsertingImagesEx8.png](/files/f1e029081e917d25564bc97fa7e4e2893ec17b57)

要使示例中的命令生效，必须导入宏包 **wrapfig**. 在导言区添加这一行

```latex
\usepackage{wrapfig}
```

导入宏包后即可使用环境 *wrapfigure* 通过命令 `\begin{wrapfigure}{l}{0.25\textwidth} \end{wrapfigure}`. 请注意，该环境在花括号中还有两个额外参数。下面将更详细地解释这段代码。

**{l}**

设置图形的对齐方式。l 表示左对齐，r 表示右对齐。进一步地，如果使用 book 类或类似类，可以用 o 表示页面外侧，用 i 表示页面内侧，而不是 l 和 r。

**{0.25\textwidth}**

这设置的是包含图片的盒子的宽度，而不是图片本身的宽度；图片本身的宽度应在 includegraphics 命令中设置。示例中使用的是相对单位，但也可以使用普通单位（cm、mm、in 等）。请参阅参考指南以查看可用单位列表。

**\centering**

前面已经解释过，在上一个示例中，图片将相对于其容器盒居中，而不是相对于页面居中。

有关图片定位的更完整信息，请参见文章 [图片和表格的定位](/latex/zh-cn/tu-xing-he-biao-ge/02-positioning-images-and-tables.md)

&#x20; [在 Overleaf 中打开示例](https://www.sharelatex.com/project/new/template?zipUrl=/project/52f4102815577d644c0017fb/download/zip\&templateName=InsertingImages\&compiler=pdflatex)

## 添加标签、标题和引用

能够添加带有图片简短说明的标题，以及可随后用于引用图片的标签，在处理很长的文档时非常有用。

### 标题

先来看一个添加标题的示例：

```latex
\begin{figure}[h]
\caption{Example of a parametric plot ($\sin (x), \cos(x), x$)}
\centering
\includegraphics[width=0.5\textwidth]{spiral}
\end{figure}
```

![InsertingImagesEx9.png](/files/5bf13168bb37c895ab7ab902d64ed91d1b70f9b2)

这非常简单，只需添加命令 `\caption{Some caption}` ，并在花括号中写入要显示的文本。标题的打印位置取决于命令插入的位置；如果它在命令 *includegraphics* 之上，则标题会出现在图片上方；如果它在该命令之下，则标题会出现在图形下方。

标题也可以放在图形旁边。宏包 **sidecap** 允许使用与上一个示例非常相似的代码来添加文本。

```latex
\documentclass{article}
\usepackage[rightcaption]{sidecap}

\usepackage{graphicx} %package to manage images
\graphicspath{ {images/} }

\begin{SCfigure}[0.5][h]
\caption{Example of a parametric plot.
         This caption will be on the right}
\includegraphics[width=0.6\textwidth]{spiral}
\end{SCfigure}
```

![InsertingImagesEx10.png](/files/85828ec68389bbb3711e976b18e41e2e5c36b8a4)

这个示例中有两个新命令：

**\usepackage\[rightcaption]{sidecap}**

如你所知，这个命令导入名为 sidecap 的宏包，但还有一个额外参数：rightcaption。这个参数用于设置标题的打印位置。在这种情况下是在图片右侧，也可以使用 leftcaption 将标题移到左侧。在使用书籍类文档时，还可以额外使用 outercaption 和 innercaption 选项，将标题打印在相对于页面边缘的外侧或内侧。

**\begin{SCfigure}\[0.5]\[h] \end{SCfigure}**

定义一个类似 figure 的环境。第一个参数是标题相对于图片大小的宽度。第二个参数 h 的作用与 figure 环境中的 h 相同。更多信息请参见图片定位一节。

如果愿意，还可以实现更高级的标题格式控制。请参阅 [进一步阅读](#lecturas-adicionales) 以查看更多参考资料。

### 标签和交叉引用

图形，就像 LaTeX 文档中的许多其他元素（公式、表格、图表等）一样，都可以在正文中被引用。实现这一点非常简单，只需向环境添加一个标签 *figure* 或 *SCfigure*，然后使用该标签来引用图形。

```latex
\begin{figure}[h]
    \centering
    \includegraphics[width=0.25\textwidth]{mesh}
    \caption{a nice plot}
    \label{fig:mesh1}
\end{figure}

正如你在图 \ref{fig:mesh1} 中看到的那样，
该函数在 0 附近增长。另在页面 \pageref{fig:mesh1}
是同一个示例。
```

![InsertingImagesEx11.png](/files/cb213b6cd2fdc597f9f03fea4fc79a89db1383f5)

这个示例中有三个生成交叉引用的命令。

**\label{fig:mesh1}**

设置图形的标签。由于标签可用于文档中的多种元素，因此最佳做法是使用前缀，例如示例中的 fig:。

**\ref{fig:mesh1}**

该命令打印分配给该图形的编号。编号会自动生成，并且如果后来在所引用图形之前插入了另一张图形，这些编号会更新。

**\pageref{fig:mesh1}**

打印由该标签引用的图片所在页的页码。

命令 `\caption` 用于添加标题，必须先添加标题，才能添加标签并引用图形。

LaTeX 的另一个重要特性是能够自动生成 *图形列表*。这可以很容易地通过以下方式实现：

```latex
\listoffigures
```

![InsertingImagesEx12.png](/files/4bf7da0de92293502e0f152497fa856186de11e9)

该命令只适用于带有标题的图形，因为它会用标题来生成表格。上一个示例列出了本文中使用的图片。

重要提示： *在 LaTeX 中使用交叉引用时，项目必须编译两次，否则引用、页码引用和图形列表都将无法正常工作*.

&#x20; [在 Overleaf 中打开示例](https://www.sharelatex.com/project/new/template?zipUrl=/project/52f4102815577d644c0017fb/download/zip\&templateName=InsertingImages\&compiler=pdflatex)

## 生成高分辨率和低分辨率图像

目前，当我们在命令中输入图片文件名时 *\includegraphics* 我们省略了文件扩展名。不过，这并非必要，实际上还可能非常有用。如果省略扩展名，LaTeX 会在预设的图像目录中查找任何受支持的图像类型，搜索将按照某个顺序进行，而这个顺序可以修改。

这对于将文档从草稿版切换到最终版非常有用。在草稿阶段（编写文章、书籍、报告等时），最好使用低分辨率图片（通常为 .png 格式），这样文档编译会更快。在最终版中，则更倾向于使用高分辨率图片，以获得高质量文档。

这可以通过以下方式实现：

* 在命令中不指定文件扩展名 *\includegraphics*，以及
* 在导言区指定扩展名的顺序

因此，如果有同一图片的两个版本，例如 venndiagram.pdf（高分辨率）和 venndiagram.png（低分辨率）。在撰写和调试文档时，可以在导言区添加以下一行——

```latex
  \DeclareGraphicsExtensions{.png,.pdf}
```

上面的命令确保如果存在两个同名但扩展名不同的图片，则会使用 .png 文件；如果由于某种原因该文件消失，则 pdf 版本将成为下一个选项。

文档编写完成后，如果只想使用高分辨率版本，应将决定扩展名顺序的那一行改为：

```latex
  \DeclareGraphicsExtensions{.pdf,.png}
```

甚至可以改进上述技术：如果 PDF 之前尚未转换为 PNG，我们可以让 LaTeX 在编译文档时生成低分辨率 .png 图片。要做到这一点，需要在导言区中于以下命令之后加入： `\usepackage{graphicx}`.

```latex
  \usepackage{epstopdf}
  \epstopdfDeclareGraphicsRule{.pdf}{png}{.png}{convert #1 \OutputFile}
  \DeclareGraphicsExtensions{.png,.pdf}
```

如果 venndiagram2.pdf 存在但 venndiagram2.png 不存在，则会创建文件 vendiagramm2-pdf-converted-to.png 并改为加载它。命令 *convert #1* 负责转换

如果选择这种方法，有几点需要注意：

* 要使自动转换生效，必须执行 *pdflatex* 并使用选项 `--shell-escape`.
* 在最终版中，别忘了注释掉这一行 `\epstopdfDeclareGraphicsRule`，以便只加载高分辨率图片。还要记得更改优先级顺序。

&#x20; [在 Overleaf 中打开示例](https://www.sharelatex.com/project/new/template?zipUrl=/project/52f4102815577d644c0017fb/download/zip\&templateName=InsertingImages\&compiler=pdflatex)

## 参考指南

**LaTeX 中的单位与度量**

| 缩写             | 定义                       |
| -------------- | ------------------------ |
| pt             | 一个点，是默认的长度单位。约为 0.3515mm |
| mm             | 一毫米                      |
| cm             | 一厘米                      |
| .bib 文件中插入一个 % | 一英寸                      |
| ex             | 一个 **x** 与当前字体           |
| em             | 的宽度 **m** 与当前字体          |
| \columnsep     | 栏间距                      |
| \columnwidth   | 一栏的宽度                    |
| \linewidth     | 当前环境中的行宽                 |
| \paperwidth    | 纸张宽度                     |
| \paperheight   | 纸张高度                     |
| \textwidth     | 文本宽度                     |
| \textheight    | 文本高度                     |
| \unitlength    | 环境中的长度单位 *picture*       |

**关于 LaTeX 中可使用的图像类型**

**latex**

如果使用 latex 命令编译文档，只能使用 EPS 格式的图像，它是一种矢量格式。

**pdflatex**

如果使用 pdflatex 命令编译文档以生成 PDF，那么可以使用多种图像类型——

```
   JPG：插入照片的最佳选择
   PNG：插入图表的最佳选择（如果由于某种原因不能使用矢量图）以及屏幕截图
   PDF：尽管习惯上 PDF 用于文档，但一般来说，一个 PDF 也可以只包含一张后续可被导入的图片。
   EPS：EPS 图片可以通过 epstopdf 宏包引入（该宏包只需安装在电脑上，安装后无需在 .tex 文件中添加任何额外命令）
```

**矢量图还是位图？**

图片可以采用位图或矢量图格式插入。一般来说你不必为此担心，但如果有机会选择格式，就要记住：对于矢量图，最好保存为 PDF 或 EPS 格式；而对于位图，推荐使用 JPG 或 PNG 格式。这是因为位图放在 PDF 或 EPS 格式文件中会占用大量存储空间。

&#x20; [在 Overleaf 中打开示例](https://www.sharelatex.com/project/new/template?zipUrl=/project/52f4102815577d644c0017fb/download/zip\&templateName=InsertingImages\&compiler=pdflatex)

## 延伸阅读

更多信息请参阅：

* [图片和表格的定位](/latex/zh-cn/tu-xing-he-biao-ge/02-positioning-images-and-tables.md)
* [表格和图形列表](/latex/zh-cn/tu-xing-he-biao-ge/03-lists-of-tables-and-figures.md)
* [单面和双面文档](/latex/zh-cn/ge-shi-hua/08-single-sided-and-double-sided-documents.md)
* [LaTeX 中的长度](/latex/zh-cn/ge-shi-hua/01-lengths-in-latex.md)
* [**floatrow** 用于高级管理浮动元素（表格和图形）标题的宏包](http://tug.ctan.org/tex-archive/macros/latex/contrib/floatrow/floatrow.pdf)
* [**sidecap** 侧边图标题的宏包文档](ftp://ctan.tug.org/tex-archive/macros/latex/contrib/sidecap/sidecap.pdf)
* [**epstopdf** 宏包文档（PDF 转 EPS 转换）](https://www.google.com/url?sa=t\&rct=j\&q=\&esrc=s\&source=web\&cd=3\&cad=rja\&ved=0CEEQFjAC\&url=http%3A%2F%2Fmirror.hmc.edu%2Fctan%2Fmacros%2Flatex%2Fcontrib%2Foberdiek%2Fepstopdf.pdf\&ei=N4v2UpK7D4eHqQHz2IDACg\&usg=AFQjCNG9CxIXjrbc22kl-8QweEXeEauFew\&sig2=qamKo3qpid8CEqzsHhpIrQ\&bvm=bv.60983673,d.aWM)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/latex/zh-cn/geng-duo-zhu-ti/28-inserting-images-es.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
