> For the complete documentation index, see [llms.txt](https://overleaf-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://overleaf-pro.ayaka.space/latex/zh-tw/geng-duo-zhu-ti/27-inserting-images.md).

# 插入圖片

## 在 Overleaf 中插入圖片（建立 LaTeX 圖形）的四種方式

可用的選項如下：

1. 使用 [**插入圖形** 按鈕](https://learn.overleaf.com/learn/Kb/How_to_insert_figures_in_Overleaf#Using_Insert_Figure_to_add_a_figure_to_your_project)(![The Insert Figure button on the editor toolbar](/files/806f9266d789b09f529dbbb2345b82abf69a37a5)），位於編輯器工具列上，可將圖形插入到 **視覺編輯器** 或 **程式碼編輯器**.
2. [複製並貼上一個圖片](/latex/zh-tw/zhi-shi-ku/075-how-to-paste-formatted-content-into-overleaf.md#pasting-images-into-your-overleaf-project) 到 **視覺編輯器** 或 **程式碼編輯器**.
3. 你可以使用拖放來建立圖形。從本機檔案系統選取一個檔案，或從已上傳到 Overleaf 專案的檔案中選一個，然後將它拖放到 **視覺編輯器** 或 **程式碼編輯器**。Overleaf 會顯示一個視窗，提供自訂圖形設定的選項。
4. 使用 **程式碼編輯器** 以撰寫 LaTeX 程式碼來插入圖像，並將其置於 figure 環境中。

選項 1、2 和 3 會自動產生建立圖形所需的 LaTeX 程式碼，但這裡我們要探討選項 4，它提供了最大的彈性。

## 簡介

在這篇文章中，我們將說明如何加入最常見格式的圖片、如何縮小、放大與旋轉它們，以及如何在文件中參照它們。我們會先從一個範例開始，示範如何匯入一張圖片。

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

\begin{document}
宇宙無比浩瀚，且似乎是均勻的，
在大尺度上，我們所見之處皆然。

\includegraphics{universe}

上面有一張星系的圖片
\end{document}
```

![插入圖片範例](/files/e1a28fd1846ffbb35cb84d22ff8f131f6fff61c5)

LaTeX 無法自行管理圖片，因此我們需要使用 `graphicx` 套件。若要使用它，請在前言區加入以下一行： `\usepackage{graphicx}`.

指令 `\graphicspath{ {./images/} }` 告訴 LaTeX 圖片儲存在名為 `images` 的資料夾中，位於主文件的目錄下。

該 `\includegraphics{universe}` 指令才是真正將圖片加入文件中的那個指令。此時 `universe` 是包含圖片的檔名，不含副檔名，然後 `universe.PNG` 就會變成 `universe`。圖片檔名不應包含空白，也不應包含多個句點。

注意：副檔名可以包含在內，但最好省略它。若省略副檔名，LaTeX 會提示搜尋所有支援的格式。更多詳情請參閱關於 [產生高解析度與低解析度圖片](#generating-high-res-and-low-res-images).

&#x20;[在 Overleaf 中開啟圖片範例](https://www.overleaf.com/project/new/template/19397?id=65443742\&templateName=Inserting+Images\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## 圖片的資料夾路徑

當文件中包含多張圖片時，可以將這些圖片放在一個或多個分開的資料夾中，這樣專案會更有條理。

指令 `\graphicspath{ {images/} }` 告訴 LaTeX 去 `images` 資料夾中尋找。該路徑是 ***相對的*** 於目前工作目錄——因此，編譯器會在插入圖片的程式碼所在的同一個資料夾中尋找檔案。若未指定起始目錄，資料夾路徑預設就是相對路徑，例如

```latex
%相對於包含 \includegraphics 指令的 .tex 檔案之路徑
\graphicspath{ {images/} }
```

這通常是前往檔案樹中圖形資料夾的一種直接方式，但當 `.tex` 資料夾內的檔案被加入到主要 `.tex` 檔案時，可能會導致複雜情況。這時， **最佳做法是將圖形路徑指定為相對於主要 `.tex` 檔案**，並將主要 `.tex` 檔案目錄指定為 `./` ，例如：

```latex
%相對於主要 .tex 檔案的路徑
\graphicspath{ {./images/} }
```

如同前言所述。

路徑也可以是 ***絕對***&#x7684;，如果指定了檔案在系統中的確切位置。例如，如果你是在自己的電腦上使用本機 LaTeX 安裝：

```latex
%Windows 格式路徑：
\graphicspath{ {c:/user/images/} }

%類 Unix（Linux、Mac OS）格式的路徑
\graphicspath{ {/home/user/images/} }
```

請注意，這個指令需要結尾的斜線 `/` ，而且路徑要放在雙大括號之間。

如果圖片儲存在不只一個資料夾中，你也可以設定多個路徑。例如，如果有兩個名為 `images1` 以及 `images2`的資料夾，請使用指令

```latex
\graphicspath{ {./images1/}{./images2/} }
```

&#x20;[在 Overleaf 中開啟圖片範例](https://www.overleaf.com/project/new/template/19397?id=65443742\&templateName=Inserting+Images\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## 變更圖片大小與旋轉圖片

如果我們想進一步指定 LaTeX 應如何在文件中包含圖片（長度、高度等等），可以用以下格式傳入這些設定：

```latex
\begin{document}

Overleaf 是一個很棒的專業工具，可用來編輯線上文件，
分享並備份你的 \LaTeX{} 專案。它也提供了
相當龐大的說明文件。

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

![變更圖片大小範例](/files/ca522c568c418127ea08d5cd9b1a038031eb73a3)

指令 `\includegraphics[scale=1.5]{overleaf-logo}` 會將圖片 `overleaf-logo` 加入文件中，額外參數 `scale=1.5` 正好會將圖片縮放為實際大小的 1.5 倍。

你也可以將圖片縮放到特定的寬度與高度。

```latex
\begin{document}

Overleaf 是一個很棒的專業工具，可用來編輯線上文件，
分享並備份你的 \LaTeX{} 專案。它也提供了
相當龐大的說明文件。

\includegraphics[width=5cm, height=4cm]{overleaf-logo}
```

![設定圖片高度與寬度範例](/files/0d85ec157fd5d1d5b12a6d5d941bf7e5af454e56)

你大概已經猜到了，方括號中的參數 `[width=3cm, height=4cm]` 定義了圖片的寬度與高度。你可以為這些參數使用 [不同的單位](#reference-guide) 。如果只傳入 *寬度* 參數，高度就會按比例縮放以維持長寬比。

長度單位也可以相對於文件中的某些元素。例如，如果你想讓一張圖片與文字同寬：

```latex
\begin{document}

宇宙無比浩瀚，且似乎是均勻的，
在大尺度上，我們所見之處皆然。

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

![圖片設為文字寬度範例](/files/2a745dc4a490a1d5995f178b8efb670112b5e494)

而不是 `\textwidth` 你可以使用任何其他預設的 LaTeX 長度： `\columnsep`, `\linewidth`, `\textheight`, `\paperheight`等等。請參閱 [參考指南](#reference-guide) 以進一步了解這些單位。

在文件中插入圖片時，還有另一個常見選項：旋轉圖片。在 LaTeX 中這很容易完成：

```latex
\begin{document}

Overleaf 是一個很棒的專業工具，可用來線上編輯，
分享並備份你的 \LaTeX{} 專案。它也提供了
擁有相當龐大的說明文件基礎。

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

![旋轉圖片範例](/files/be4dc81ca77f4e7a098eec5b22525ff0a1d52500)

參數 `angle=45` 會將圖片逆時針旋轉 45 度。若要順時針旋轉，請使用負數。

## 定位

在前一節中已說明如何將圖片加入文件中，但文字與圖片的組合可能不會如我們預期般呈現。要改變這一點，我們需要引入一個新的 *環境*.

```latex
在下一個範例中，圖形會被放置在
就在這句話的下方。

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

![圖形定位範例](/files/a4bd5de837c92d0efe83b4bef56faec41c21d6ea)

該 `圖形` 環境用來將圖片顯示為文件中的浮動元素。這表示你可以把圖片放在 `圖形` 環境中，而不必擔心它的位置，LaTeX 會以適合文件流程的方式將其排版。

不過，有時我們需要更精細地控制圖形的顯示方式。可以傳入額外參數來決定圖形位置。以下範例中， `\begin{figure}[h]`，方括號中的參數將圖形位置設為 ***這裡***。下表列出可能的位置值。

| 參數 | 位置                                                        |
| -- | --------------------------------------------------------- |
| h  | 將浮動體放置在 *這裡*，亦即， *大致上* 在原始文字中出現的相同位置（但不是 *精確地* 就在該處）      |
| t  | 放置在 *頂端* 的頁面。                                             |
| b  | 放置在 *底端* 的頁面。                                             |
| p  | 放在專用的 *頁面上看到的最後一個標記* 只供浮動體使用。                             |
| !  | 覆寫 LaTeX 用來判定「良好」浮動體位置的內部參數。                              |
| H  | 將浮動體精確放在 LaTeX 程式碼中的位置。需要 `float` 套件，但偶爾可能造成問題。這有點類似於 h!。 |

在下一個範例中，你可以看到一張圖片位於文件的 `t`頂端，儘管它是在文字下方宣告的。

```latex
在這張圖片中，你可以看到一個長條圖，顯示
一項調查的結果，該調查涉及一些重要的
資料，並隨時間加以研究。

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

![長條圖範例](/files/08a2c0f303f04d11b617d2cfbea8faacefeac5b3)

額外的指令 `\centering` 會將圖片置中。預設對齊方式是 *的目前值*.

### 讓文字環繞圖形

也可以 **環繞** 文字環繞圖形。當文件包含小圖片時，這樣看起來會更美觀。

```latex
\begin{wrapfigure}{r}{0.25\textwidth} %這個圖形會在右側
    \centering
    \includegraphics[width=0.25\textwidth]{mesh}
\end{wrapfigure}

有幾種方式可以繪製二變數函數，
取決於你感興趣的資訊。例
如，如果你想看某個函數的網格，以便更
容易看出導數，你可以使用像
左邊那樣的圖。

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

另一方面，如果你只對
某些值感興趣，你可以使用等高線圖，
你可以使用等高線圖，你可以使用等高線
圖，你可以使用等高線圖，你可以使用
等高線圖，你可以使用等高線圖，
你可以使用等高線圖，就像左邊那個。

另一方面，如果你只對
某些值感興趣，你可以使用等高線圖，
你可以使用等高線圖，你可以使用等高線
圖，你可以使用等高線圖，你可以使用
等高線圖，你可以使用等高線圖，
你可以使用等高線圖，
就像左邊那個。
```

![圖形範例](/files/5c405784f217aefc782d8e5a0c38c2db72ec6b7c)

要讓範例中的指令運作，你必須匯入 [`wrapfig` 套件](https://ctan.org/pkg/wrapfig?lang=en)。若要使用 `wrapfig`，請在文件前言區加入以下一行：

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

這會使 `wrapfigure` 環境可用，而我們可以放入一個 `\includegraphics` 指令在其中建立一個可讓文字環繞的圖形。以下是我們如何指定一個 *wrapfigure* 環境：

```latex
\begin{wrapfigure}[lineheight]{position}{width}
  ...
\end{wrapfigure}
```

該 `位置` 參數有八種可能值：

|   |   |                              |
| - | - | ---------------------------- |
| r | R | 文字右側                         |
| l | L | 文字左側                         |
| i | I | 內側邊緣——靠近裝訂處（在 *twoside* 文件中） |
| o | O | 外側邊緣——遠離裝訂處                  |

大寫版本允許圖形浮動。小寫版本表示 *就在這裡*.

現在你可以定義 `wrapfigure` 該環境，使用以下指令 `\begin{wrapfigure}{l}{0.25\textwidth} \end{wrapfigure}`。請注意，該環境還有兩個以大括號括住的額外參數。以下將更詳細說明程式碼：

**{l}**

這定義了圖形的對齊方式。左側設為 l，右側設為 r。此外，如果你使用的是書籍或類似格式，則改用 o 表示頁面的外側邊緣，i 表示內側邊緣。

**{0.25\textwidth}**

這是圖形框的寬度。它不是圖片本身的寬度，圖片本身的寬度必須在 \includegraphics 指令中設定。請注意，這個長度是相對於文字寬度的，但也可以使用一般單位（cm、in、mm 等）。請參閱參考指南以取得單位清單。

**\centering**

這一點前面已經說明過了，但在這個範例中，圖片會以其容器作為參照來置中，而不是以整段文字為基準。

關於圖片定位的更完整文章請見 [圖片與表格的定位](/latex/zh-tw/tu-biao-yu-biao-ge/02-positioning-images-and-tables.md)

&#x20;[在 Overleaf 中開啟圖片範例](https://www.overleaf.com/project/new/template/19397?id=65443742\&templateName=Inserting+Images\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## 加上標題、標籤與參照

替圖片加上標題以提供簡短說明，並為它們加上標籤以便進一步參照，這是在處理長篇文字時兩個重要的工具。

### 標題

讓我們從一個標題範例開始：

```latex
\begin{figure}[h]
\caption{一個參數圖範例（$\sin (x), \cos(x), x$）}
\centering
\includegraphics[width=0.5\textwidth]{spiral}
\end{figure}
```

![參數圖範例](/files/8e899a63822e24495db3d308add27ec7226cfc35)

其實很簡單，只要加上 `\caption{一些標題}` 並在大括號內寫入要顯示的文字。標題的位置取決於你放置指令的位置；如果它在 `\includegraphics` 上方，則標題會出現在它上面；如果在下方，則標題也會設在圖形下方。

標題也可以直接放在圖形後面。 `sidecap` 套件使用與前一個範例類似的程式碼來達成此效果。

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

\usepackage{graphicx} %管理圖片的套件
\graphicspath{ {images/} }

\begin{SCfigure}[0.5][h]
\caption{再次使用宇宙的圖片。
這個標題會在右側}
\includegraphics[width=0.6\textwidth]{universe}
\end{SCfigure}
```

![含標題的參數圖範例](/files/0613122e10bd76598f0498ef1dc6203ad720c358)

有兩個新指令

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

如你所料，這一行會匯入名為 sidecap 的套件，但還有一個額外參數：rightcaption。此參數會將標題放在圖片右側，你也可以使用 leftcaption。在類似書籍的文件中，outercaption 和 innercaption 也可使用。這些名稱顧名思義。

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

定義一個類似 figure 的環境。第一個參數是標題相對於圖片大小的寬度，如同在 \includegraphics 中所宣告。第二個參數 h 的作用與 figure 環境完全相同。更多資訊請見定位章節。

你可以更進階地管理標題格式。請參閱 [延伸閱讀](#further-reading) 章節中的參考資料。

### 標籤與交叉參照

圖形和 LaTeX 文件中的許多其他元素（公式、表格、圖表等）一樣，都可以在文字中被參照。這非常簡單，只要加上一個 `\label` 到 `圖形` 或 `SCfigure` 環境，之後再使用該標籤來指涉這張圖片。

```latex
\begin{figure}[h]
    \centering
    \includegraphics[width=0.25\textwidth]{mesh}
    \caption{一個不錯的圖}
    \label{fig:mesh1}
\end{figure}

如你在圖形 \ref{fig:mesh1} 中所見，
函數在 0 附近會增長。此外，在頁面 \pageref{fig:mesh1}
也是同一個範例。
```

![含標籤的圖形範例](/files/c1e4d40cc4b84fa712854c614511eac3729bbe87)

這個範例中有三個會產生交叉參照的指令。

**\label{fig:mesh1}**

這會為這個圖形設定標籤。由於標籤可用於文件中的多種類型元素，建議使用前綴，例如範例中的 fig:。

**\ref{fig:mesh1}**

此指令會插入指派給該圖形的編號。它會自動產生，若在被參照的圖形之前插入其他圖形，則會更新。

**\pageref{fig:mesh1}**

這會印出被參照圖片出現的頁碼。

該 `\caption` 是參照圖形所必需的。

LaTeX 文件的另一個重要特性是能自動產生 *圖形清單*。這很簡單。

```latex
\listoffigures
```

![圖形清單範例](/files/2eec474d2f2f85f5adb69ada69693d85d3a9221e)

此指令只對有標題的圖形有效，因為它會使用表格中的標題。上面的範例列出了本文中的圖片。

重要提示：使用交叉參照時，你的 LaTeX 專案必須編譯兩次，否則參照、頁碼參照以及圖形清單都無法運作——Overleaf 會替你處理這件事。

## 產生高解析度與低解析度圖片

到目前為止，在 `\includegraphics` 指令中指定圖片檔名時，我們都省略了副檔名。不過這並非必要，雖然這常常很有用。若省略副檔名，LaTeX 會在該目錄中搜尋任何受支援的圖片格式，並依預設順序搜尋各種副檔名（此順序可修改）。

這在切換開發與正式環境時很有用。在開發環境中（當文章／報告／書籍仍在進行中時），最好使用低解析度版本的圖片（通常是 .png 格式）以便快速編譯預覽。在正式環境中（當文章／報告／書籍的最終版本產出時），則最好包含高解析度版本的圖片。

這可以透過以下方式達成：

* 在 *\includegraphics* 指令中不指定副檔名，並且
* 在前言區指定所需的副檔名。

因此，如果我們有某個圖片的兩個版本，venndiagram.pdf（高解析度）和 venndiagram.png（低解析度），那麼可以在前言區加入以下一行，以便在撰寫報告時使用 .png 版本——

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

上面的指令可確保若遇到兩個具有相同基本檔名但不同副檔名的檔案（例如 venndiagram.pdf 和 venndiagram.png），則會先使用 .png 版本；若沒有 .png，則使用 .pdf 版本。若某些低解析度版本不可用，這也是個好做法。

一旦報告完成後，若要使用高解析度的 .pdf 版本，我們可以將前言區中指定副檔名搜尋順序的那一行改為

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

在前述技巧的基礎上，我們也可以指示 LaTeX 在編譯文件時，即時產生圖片的低解析度 .png 版本，前提是有尚未轉換成 PNG 的 PDF。為了達成這點，我們可以在前言區於以下內容之後加入： `\usepackage{graphicx}`

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

如果 venndiagram2.pdf 存在但 venndiagram2.png 不存在，系統會建立 venndiagram2-pdf-converted-to.png 並以它取代載入。指令 *convert #1* 負責轉換，而其他參數可以傳遞到 *convert* 以及 *#1*之間。例如—— *convert -density 100 #1*.

不過有幾件重要事項要注意：

* 要讓自動轉換運作，我們需要呼叫 *pdflatex* 與它儲存在記憶體中的 `--shell-escape` 選項。
* 對於最終的 *正式* 版本，我們必須將 `\epstopdfDeclareGraphicsRule`註解掉，這樣就只會載入高解析度的 PDF 檔案。我們也需要更改優先順序。

&#x20;[在 Overleaf 中開啟圖片範例](https://www.overleaf.com/project/new/template/19397?id=65443742\&templateName=Inserting+Images\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## 參考指南

**LaTeX 單位與長度**

| 縮寫           | 定義                        |
| ------------ | ------------------------- |
| pt           | point 是預設長度單位。約 0.3515 mm |
| mm           | 一毫米                       |
| cm           | 一公分                       |
| 在            | 一英吋                       |
| ex           | 某個的高度 **x** 在目前字型中        |
| em           | 某個的寬度 **m** 在目前字型中        |
| \columnsep   | 欄與欄之間的距離                  |
| \columnwidth | 欄寬                        |
| \linewidth   | 目前環境中行的寬度                 |
| \paperwidth  | 頁面寬度                      |
| \paperheight | 頁面高度                      |
| \textwidth   | 文字寬度                      |
| \textheight  | 文字高度                      |
| \unitlength  | 中的長度單位 *圖片* 環境來繪製圖形。      |

**關於 LaTeX 中的圖片類型**

**latex**

使用 latex 編譯時，我們只能使用 EPS 圖片，這是一種向量格式。

**pdflatex**

如果我們使用 "pdflatex" 編譯以產生 PDF，則可以使用多種圖片格式——

```
   JPG：若要插入照片，這是最佳選擇
   PNG：若要插入圖示（如果無法產生向量版本）與螢幕截圖，這是最佳選擇
   PDF：雖然我們習慣把 PDF 當成文件，但 PDF 也可以儲存圖片
   EPS：可使用 epstopdf 套件來包含 EPS 圖片（我們只需要安裝該套件，
        不需要在文件中使用 \usepackage{} 來載入它。）
```

**向量格式還是點陣格式？**

圖片可以是向量格式或點陣格式。一般來說我們不必為此煩惱，但如果我們剛好知道圖片的格式，就可以利用這項資訊來選擇適合納入 LaTeX 文件的圖片格式。若圖片是向量格式，應選擇 PDF 或 EPS。若是點陣格式，則應選擇 JPG 或 PNG，因為將點陣圖片儲存在 PDF 或 EPS 中會佔用大量磁碟空間。

&#x20;[在 Overleaf 中開啟圖片範例](https://www.overleaf.com/project/new/template/19397?id=65443742\&templateName=Inserting+Images\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## 延伸閱讀

更多資訊請參見

* [圖片與表格的定位](/latex/zh-tw/tu-biao-yu-biao-ge/02-positioning-images-and-tables.md)
* [表格與圖形清單](/latex/zh-tw/tu-biao-yu-biao-ge/03-lists-of-tables-and-figures.md)
* [單面與雙面文件](/latex/zh-tw/ge-shi-hua/08-single-sided-and-double-sided-documents.md)
* [LaTeX 中的長度](/latex/zh-tw/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** 套件文件（EPS 轉 PDF 轉換）](https://ctan.org/pkg/epstopdf?lang=en)


---

# 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://overleaf-pro.ayaka.space/latex/zh-tw/geng-duo-zhu-ti/27-inserting-images.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.
