> 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/08-choosing-a-latex-compiler.md).

# 選擇 LaTeX 編譯器

LaTeX 文件中的樣式、內容與版面配置是透過 *標籤* 或 *命令* 在一個純 .tex 檔中，這個檔案可用來產生文件的幾種「人類可讀」版本。產生這個最終輸出的最簡單方法是使用 [Overleaf](http://www.overleaf.com)。Overleaf 提供可直接使用的 LaTeX 發行版，只要按一下「重新編譯」按鈕即可產生最終文件；如果你是這種情況，可以跳過本文。否則，如果你需要學習如何在電腦上編譯文件，本文將說明如何從 LaTeX 檔案產生 PS、DVI 和 PDF 輸出。

## 簡介

LaTeX 文件是副檔名為 .tex 的純文字文件（請參閱 [在 LaTeX 中建立文件](/latex/zh-tw/latex-ji-chu/01-learn-latex-in-30-minutes.md) 文章中的範例），這個純文字檔案包含一些標記指令，用來格式化文件，但實際上要如何產生最終輸出呢？這取決於你想產生的文件類型。

假設你已儲存文件並將檔名命名為「mydocument.tex」。若要建立 .PDF 檔，只需在系統終端機中執行此指令。

`pdflatex mydocument.tex`

然後會出現一個名為「mydocument.pdf」的檔案。

## TeX 發行版

使 TeX 與 LaTeX 文件得以編譯的一組程式稱為 TeX 排版系統或 TeX 發行版。不同作業系統都有許多可用的 TeX 發行版：

* **MiKTeX** 適用於 Windows
* **TeX Live** 適用於 Linux 與其他類 UNIX 系統
* **MacTeX** macOS 版 TeX Live 的再發行版
* **teTeX** 適用於 Linux 與其他類 UNIX 系統；目前已不再積極維護。
* **proTeXt** 是以 MiKTeX 為基礎

當然，如果你不想經歷安裝 TeX 發行版的過程，也可以使用像 [Overleaf](http://www.overleaf.com).

## LaTeX 編輯器

有許多專為最常見作業系統上的 LaTeX 設計的進階文字編輯器，其中有些可免費下載，有些則是專有軟體：

* 開放原始碼：AUCTEX、GNU TeXmacs、Gummi、Kile、LaTeXila、MeWa、TeXShop、TeXnicCenter、Texmaker、TeXstudio、TeXworks
* 免費軟體：LEd、WinShell
* 專有軟體／共享軟體：Inlage、Scientific WorkPlace、WinEdt

也有一些通用編輯器可透過外掛加入對 LaTeX 友善的選項。例如，知名的 emacs 和 vim 都有 LaTeX 擴充功能，Atom、VS Code 和 Sublime Text 也是如此。

值得一提的是，Overleaf 中的編輯器 [Overleaf](http://overleaf.com) 可自訂為模擬 emacs 或 vim 的行為。它也具有 *可主題化*，因此你可以選擇與上述某些編輯器相同的語法高亮顯示。你可以在 Overleaf 專案中，點擊檔案清單面板上方的 Overleaf 選單圖示來找到這些設定。

## 輸出格式

所有 TeX 發行版都提供三種輸出格式。若要產生特定輸出，必須在……中執行指令來編譯文件 *終端機* （Linux 與 macOS）或 *命令提示字元* （Windows）。

例如，如果你想編譯一個名為「mydocument.tex」的檔案，可以使用下列其中一個指令：

**latex mydocument.tex**

這會建立「mydocument.dvi」，一個 DVI 文件

**pdflatex mydocument.tex**

這會產生「mydocument.pdf」，一個 PDF 文件

還有一些其他指令可用於在格式之間轉換，也支援 PS 圖像。請參閱 [參考指南](#reference-guide) 以取得指令與輸出格式的示意說明。

以下提供各輸出格式的說明：

* **（DVI）** 裝置無關檔案格式由二進位資料組成，用於描述文件的視覺版面配置，且不依賴任何特定的圖像格式、顯示硬體或印表機。
* **（PS）** PostScript 檔案格式描述頁面上的文字與圖形，並以向量圖形為基礎。至今，PostScript 仍是桌面排版領域的標準。
* **（PDF）** Portable Document Format 是一種以 PostScript 為基礎的檔案格式，用來以不依賴應用程式軟體、硬體與作業系統的方式呈現文件。它現在廣泛用作列印以及在網路上散佈的檔案格式。

注意： *如今大多數編輯器都包含可快速存取的圖示，能編譯成不同輸出格式，因此你不必真的在系統提示字元中執行這些指令。*

在 Overleaf 上，最終編譯輸出一律是 PDF 文件。如果你需要從 Overleaf 專案產生 DVI 檔，可以這樣做：

1. 確保你的專案中只使用 .eps 和 .ps 圖像。
2. 點選 **Overleaf 選單** 圖示，位於檔案清單面板上方，並將 *編譯器* 設定改為「LaTeX」。
3. 重新編譯你的專案。
4. 點擊「重新編譯」按鈕旁的「記錄與輸出檔案」按鈕。
5. 向下捲動到底部，並點擊「其他記錄與輸出檔案」。
6. 接著你就可以下載產生的 .dvi 檔案。

![下載其他輸出檔案](/files/52b0d1ad324a74d5f00bd5eb45bff694f42c48ab)

## 其他編譯器

其他可能的編譯器設定有 pdfLaTeX（預設）、XeLaTeX 和 LuaLaTeX。通常你可以使用 pdfLaTeX，但選擇哪個編譯器取決於每個專案的需求。

* LaTeX 只支援 .eps 與 .ps 圖像格式搭配 `\includegraphics`。如果你的專案中所有圖像都是 .eps 檔，那麼建議使用這個編譯器設定。
* pdfLaTeX 支援 .png、.jpg、.pdf 圖像格式。它會在編譯過程中即時將 .eps 圖像轉換為 .pdf，這可能會延長所需的編譯時間。（pdfLaTeX 可能無法處理 `pstricks` 在 Overleaf 上的處理效果不佳。）
* XeLaTeX 和 LuaLaTeX 都能原生且穩健地支援 UTF-8，也支援 TrueType 和 OpenType。因此，如果你需要在 Overleaf 上排版非拉丁文字，建議搭配 `polyglossia` 套件。它們也支援所有 .png、.jpg、.pdf *和* .eps 圖像格式。
* XeLaTeX 支援 `pstricks`；但 LuaLaTeX 不支援。
* 你可以直接在文件中嵌入 Lua 程式碼，以擴充 LuaLaTeX 的功能。

## 編譯含交叉參照的文件

在某些情況下，當你的文件包含交叉參照時，必須將原始檔編譯兩次。這是為了讓目錄、圖表清單、定理參照編號等能包含正確的數字。

在第一次編譯時，LaTeX 編譯器會寫入 .aux 檔，以儲存關於不同編號的資訊；在第二次編譯時，編譯器會讀取這些資訊，以便正確產生目錄、參考文獻等。

這個過程可以透過指令自動化 `latexmk`。例如，要從「mydocument.tex」檔案產生一個 pdf，請執行

`latexmk -pdf mydocument.tex`

只需執行一次，即使文件有參照圖像與參考文獻也是如此。你可以變更 *-pdf* 改為 *-dvi* 來設定不同的檔案類型。

## 參考指南

**LaTeX 編譯檔案流程**

![Latex 檔案流程](/files/d690b4194c05b24cfa1c498a3f899b56090f54b6)

## 延伸閱讀

* [在 LaTeX 中建立文件](/latex/zh-tw/latex-ji-chu/01-learn-latex-in-30-minutes.md)
* [在 Overleaf 中建立文件](/latex/zh-tw/zhi-shi-ku/031-creating-a-document-in-overleaf.md)
* [除錯編譯逾時錯誤](/latex/zh-tw/zhi-shi-ku/038-fixing-and-preventing-compile-timeouts.md)
* [多檔案 LaTeX 專案](/latex/zh-tw/wen-jian-jie-gou/08-multi-file-latex-projects.md)
* [LaTeX2ε 不那麼簡短的入門介紹](http://www.ctan.org/tex-archive/info/lshort/)


---

# 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/08-choosing-a-latex-compiler.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.
