LaTeX 完整入門:從第一份 PDF 到中文、公式、圖表與參考文獻
部分資料由 AI 生成。
LaTeX 是以純文字撰寫、再編譯成 PDF 的排版系統。它特別適合公式多、章節長、需要交叉引用或管理參考文獻的報告與論文。剛開始會多一道編譯步驟,但文件結構穩定後,目錄、編號、引用與版面都能由系統一致處理。
本文從安裝開始,依序介紹文件結構、繁體中文、數學公式、圖片、表格、交叉引用、參考文獻與除錯。範例以 2026 年的 TeX Live、LuaLaTeX 與 VS Code + LaTeX Workshop 為主,也提供 Overleaf、MiKTeX 與 MacTeX 的選擇方式。
本文最後更新於 2026 年 9 月 14 日。第一次接觸 LaTeX 時,先完成「最快開始的方法」「建立第一份文件」與「加入繁體中文」;需要寫報告時,再讀公式、圖表及參考文獻章節。
目錄
展開目錄
先理解 LaTeX 的工作方式
Word 類編輯器直接顯示接近成品的頁面;LaTeX 則把內容與排版命令寫進 .tex 純文字檔,再交給編譯引擎產生 PDF。原始碼可以使用 Git 管理,也容易搜尋、比較與重複使用。
常見名詞容易混在一起,可以先這樣分:
| 名稱 | 用途 | 例子 |
|---|---|---|
| LaTeX 發行版 | 提供編譯器、套件、字型與管理工具 | TeX Live、MiKTeX、MacTeX |
| 編譯引擎 | 讀取 .tex 並排版 |
pdfLaTeX、XeLaTeX、LuaLaTeX |
| 編輯器 | 編寫原始碼、呼叫編譯器、預覽 PDF | VS Code、TeXworks、TeXShop、Overleaf |
| 建置工具 | 自動判斷要編譯幾次及是否執行文獻工具 | latexmk |
只安裝 VS Code 或 LaTeX Workshop 還不能編譯文件;本機仍需要 TeX Live、MiKTeX 或 MacTeX。Overleaf 在遠端準備好編譯環境,因此瀏覽器開啟專案後即可使用。
最快開始的方法
不想安裝:使用 Overleaf
若只是第一次試用、需要與同學共同編輯,或學校提供 Overleaf 帳號,可以先建立空白專案,把本文範例貼進 main.tex 後按下 Recompile。優點是不用處理本機套件與環境變數;缺點是編譯仰賴網路,免費方案也可能有編譯時間與協作功能限制。
Windows:TeX Live + VS Code
本文建議一般初學者安裝完整的 TeX Live,再搭配 VS Code 的 LaTeX Workshop。完整安裝占用空間較大,但較少在寫到一半時缺套件。
- 從 TeX Live 官方安裝頁下載
install-tl-windows.exe。 - 執行安裝程式。若電腦空間足夠,可保留完整安裝方案;安裝時間會受到 CTAN 鏡像站與網路速度影響。
- 安裝完成後開啟新的 PowerShell,確認指令可用:
latex --version
lualatex --version
latexmk --version
- 在 VS Code 的 Extensions 搜尋並安裝
LaTeX Workshop。 - 完全關閉再重開 VS Code,開啟含有
main.tex的資料夾後執行 Build LaTeX project。
若 Windows 使用者資料夾名稱含非 ASCII 字元,而 TeX Live 安裝或 SyncTeX 遇到異常,可把 TeX Live 與 LaTeX 專案放在英數路徑,例如 C:\texlive 與 C:\latex-projects。不要在路徑問題尚未確認前反覆重裝。
也可以改用 MiKTeX,它能在需要時下載缺少的套件。使用 LaTeX Workshop 的預設 latexmk 配方時,還要確認系統有可用的 Perl;若想減少額外設定,TeX Live 通常較省事。
macOS:MacTeX
從 MacTeX 官方網站安裝完整 MacTeX。它包含 TeX Live、TeXShop 與相關工具,支援 Intel 與 Apple 晶片。安裝後可先在 Terminal 確認:
which lualatex
lualatex --version
latexmk --version
若編輯器找不到 TeX,macOS 上的標準執行檔連結通常是 /Library/TeX/texbin。修改 PATH 後要重開編輯器,讓它讀取新環境。
Ubuntu/Debian
發行版套件庫的版本可能比 TeX Live 官方版舊,但安裝和更新方式最單純。空間足夠時可安裝完整套件:
sudo apt update
sudo apt install texlive-full latexmk
若不想安裝完整集合,可依需求選擇 texlive-latex-extra、texlive-lang-chinese、texlive-luatex、biber 等套件。精簡安裝較省空間,缺點是遇到 File ... not found 時要自行找出對應套件。
建立第一份文件
建立資料夾 latex-first-document,在裡面新增 main.tex:
\documentclass{article}
\title{My First LaTeX Document}
\author{Your Name}
\date{\today}
\begin{document}
\maketitle
\section{Introduction}
Hello, LaTeX!
\end{document}
在該資料夾開啟終端機並執行:
latexmk -pdf main.tex
成功後會得到 main.pdf。使用 VS Code 時,也可按 Ctrl + Alt + B 執行 LaTeX Workshop 的預設建置,再從側邊欄開啟 PDF。快捷鍵可能受作業系統、版本或其他外掛程式影響,以 Command Palette 顯示的命令為準。
文件分成兩部分:
\documentclass{article}到\begin{document}之前是前言區,用來選擇文件類別、載入套件與設定全域格式。\begin{document}與\end{document}之間是本文內容。
常用文件類別如下:
| 類別 | 適合內容 |
|---|---|
article |
作業、短報告、論文文章 |
report |
有章節的長篇報告、學位論文 |
book |
書籍,支援左右頁與更完整的前後文結構 |
beamer |
簡報 |
ctexart、ctexrep |
需要中日韓文字與中文章節名稱的文章、報告 |
加入繁體中文
中文文件建議使用 LuaLaTeX 或 XeLaTeX,兩者能直接使用 Unicode 與系統字型。以下範例使用 ctexart,並要求 LuaLaTeX 編譯:
\documentclass[UTF8]{ctexart}
\usepackage[a4paper,margin=2.5cm]{geometry}
\title{我的第一份中文 LaTeX 文件}
\author{王小明}
\date{\today}
\begin{document}
\maketitle
\section{前言}
這份文件使用 UTF-8 編碼與 LuaLaTeX 編譯。
\section{內容}
中文、English 與數學公式可以放在同一份文件中。
\end{document}
編譯指令:
latexmk -lualatex main.tex
若系統找不到中文字型,可用 fontspec 與 xeCJK/luatexja-fontspec 指定已安裝的字型,但跨電腦分享時要確認對方也有同一套字型。專案需要長期重現時,應在 README 記錄編譯引擎、TeX Live 年份與字型名稱。
不要用 pdfLaTeX 直接編譯上述中文範例。pdfLaTeX 的傳統字型與編碼流程不適合直接處理現代 Unicode 中文;看到亂碼或 Unicode character 錯誤時,先確認實際執行的引擎是否為 LuaLaTeX/XeLaTeX。
文字、章節與清單
LaTeX 以空白行分隔段落。原始碼中的單一換行通常只當成空白,不會強制換行;要開始新段落,留一行空白即可。
\section{研究背景}
這是第一段。原始碼可以依閱讀需要換行,LaTeX 會自行決定版面上的斷行位置。
這是第二段。
\subsection{研究目的}
文字可以使用 \textbf{粗體}、\textit{斜體} 與 \emph{語意強調}。
項目符號與編號清單分別使用 itemize 和 enumerate:
\begin{itemize}
\item 第一項
\item 第二項
\end{itemize}
\begin{enumerate}
\item 安裝 LaTeX 發行版。
\item 建立原始碼。
\item 編譯並檢查 PDF。
\end{enumerate}
以下字元在 LaTeX 有特殊用途,若要顯示字面內容,通常要加反斜線:
| 想顯示 | 寫法 | 原本用途 |
|---|---|---|
% |
\% |
註解 |
$ |
\$ |
數學模式 |
& |
\& |
表格欄位分隔 |
# |
\# |
巨集參數 |
_ |
\_ |
數學下標 |
{、} |
\{、\} |
命令參數與群組 |
\ |
\textbackslash{} |
命令開頭 |
百分比符號 % 之後直到該行結尾都屬於註解:
這段會顯示。 % 這段不會出現在 PDF
數學公式
想從基本符號一路學到矩陣、分段函數、多行推導與公式編號,可接著閱讀LaTeX 數學排版完整教學。新頁的每組範例都先列出原始碼,再用本站的 MathJax 顯示實際結果。
行內公式放在 $...$ 之間,例如 質能關係為 $E=mc^2$。。較長的公式可用 equation 環境,方便編號及引用。
\usepackage{amsmath,amssymb}
% 放在 document 環境內
質能關係為 $E=mc^2$。
\begin{equation}
\int_0^1 x^2\,\mathrm{d}x = \frac{1}{3}
\label{eq:integral}
\end{equation}
由式~\eqref{eq:integral} 可得積分結果。
這個網站上的 MathJax 預覽會把下式顯示成獨立公式:
常用數學寫法:
| 結果 | LaTeX 原始碼 |
|---|---|
| 上標、下標 | x^2、a_i、a_{i+1} |
| 分數 | \frac{a}{b} |
| 根號 | \sqrt{x}、\sqrt[n]{x} |
| 希臘字母 | \alpha、\beta、\theta、\Omega |
| 求和、積分 | \sum_{i=1}^{n}、\int_a^b |
| 自動調整括號 | \left( ... \right) |
| 一般文字 | \text{條件成立},需要 amsmath |
多行推導可使用 align。以 & 指定對齊位置,以 \\ 換到下一行:
\begin{align}
(a+b)^2
&= (a+b)(a+b) \\
&= a^2 + 2ab + b^2
\end{align}
不要用大量空格硬推公式位置;數學模式會忽略一般空格。需要小間距可用 \,,乘號可用 \times,微分符號的直立體可寫成 \mathrm{d}x。
圖片、表格與浮動位置
圖片通常放在專案內的 images 資料夾,並以相對路徑引用:
\usepackage{graphicx}
% 放在 document 環境內
\begin{figure}[htbp]
\centering
\includegraphics[width=0.75\textwidth]{images/experiment.png}
\caption{實驗裝置}
\label{fig:experiment}
\end{figure}
圖~\ref{fig:experiment} 顯示實驗裝置的配置。
figure 和 table 是浮動環境。參數 [htbp] 表示可嘗試放在原始碼附近、頁首、頁尾或獨立浮動頁;它不是絕對命令。圖片跑到下一頁時,先檢查該頁剩餘空間與圖片尺寸,不要一開始就用負間距強拉位置。
基本表格使用 tabular:
\usepackage{booktabs}
\begin{table}[htbp]
\centering
\caption{量測結果}
\label{tab:result}
\begin{tabular}{lrr}
\toprule
樣本 & 電壓(V) & 電流(mA) \\
\midrule
A & 5.02 & 18.4 \\
B & 4.98 & 17.9 \\
\bottomrule
\end{tabular}
\end{table}
{lrr} 代表第一欄靠左、後兩欄靠右;每欄以 & 分隔,每列以 \\ 結束。booktabs 的橫線較適合正式報告,也能避免表格被過多直線切碎。
標籤與交叉引用
圖、表、章節和公式應使用 \label 與 \ref,不要手動寫死「見圖 3」。加入新內容後,LaTeX 會自動更新編號。
\section{實驗方法}
\label{sec:method}
詳細流程見第~\ref{sec:method} 節。
標籤名稱只供原始碼辨識,可依類型加前綴:
| 前綴 | 用途 | 例子 |
|---|---|---|
sec: |
章節 | sec:method |
fig: |
圖片 | fig:circuit |
tab: |
表格 | tab:result |
eq: |
公式 | eq:newton |
第一次編譯時若看到 ??,通常不是程式壞掉。LaTeX 要先把標籤寫進輔助檔,再於下一輪讀回;latexmk 會自動執行需要的輪數。
參考文獻:BibLaTeX + Biber
文獻少時可以用 thebibliography 手動寫,但報告持續增修時,建議把資料集中在 .bib 檔。以下採用 BibLaTeX 與 Biber。
建立 references.bib:
@book{lamport1994,
author = {Leslie Lamport},
title = {LaTeX: A Document Preparation System},
edition = {2},
year = {1994},
publisher = {Addison-Wesley}
}
在 main.tex 載入文獻資料並引用:
\usepackage[backend=biber,style=numeric]{biblatex}
\addbibresource{references.bib}
% 放在 document 環境內
LaTeX 的設計強調以結構描述文件\cite{lamport1994}。
\printbibliography
使用 latexmk -lualatex main.tex 時,latexmk 通常會自動呼叫 Biber。若手動執行,順序是:
lualatex main.tex
biber main
lualatex main.tex
lualatex main.tex
biber main 的參數是主檔檔名,不加 .tex。若出現 Citation ... undefined,先確認引用鍵拼字、.bib 語法與 Biber 是否真的執行,再清理輔助檔重新建置。
拆分長文件
長報告不必全部塞在 main.tex。可把章節分開,讓主檔負責全域設定與組合順序:
my-report/
├─ main.tex
├─ references.bib
├─ chapters/
│ ├─ introduction.tex
│ ├─ method.tex
│ └─ results.tex
└─ images/
└─ experiment.png
main.tex 中使用:
\begin{document}
\maketitle
\tableofcontents
\input{chapters/introduction}
\input{chapters/method}
\input{chapters/results}
\printbibliography
\end{document}
\input 只是把另一個檔案的內容插入目前位置,子檔不需要再次寫 \documentclass 或 \begin{document}。路徑通常以主檔所在資料夾為基準。
若用 Git 管理專案,可以提交 .tex、.bib、圖片與必要設定,忽略可重建的輔助檔:
*.aux
*.bbl
*.bcf
*.blg
*.fdb_latexmk
*.fls
*.log
*.out
*.run.xml
*.synctex.gz
*.toc
是否提交 PDF 取決於用途。原始碼倉庫通常忽略 PDF;作業繳交或 release 則可保留指定成品。
可直接編譯的中文報告範例
以下範例全部寫在 main.tex,會產生標題、目錄、公式與表格,適合用來確認 LuaLaTeX、中文字型、交叉引用與套件是否正常。
\documentclass[UTF8,12pt]{ctexart}
\usepackage[a4paper,margin=2.5cm]{geometry}
\usepackage{amsmath,amssymb}
\usepackage{booktabs}
\usepackage{hyperref}
\title{自由落體實驗報告}
\author{王小明}
\date{\today}
\begin{document}
\maketitle
\tableofcontents
\section{實驗目的}
量測物體落下的時間,並由位移與時間估算重力加速度。
\section{理論}
忽略空氣阻力且初速為零時,位移 $h$ 與時間 $t$ 的關係為
\begin{equation}
h = \frac{1}{2}gt^2,
\label{eq:fall}
\end{equation}
其中 $g$ 為重力加速度。由式~\eqref{eq:fall} 可得
\begin{equation}
g = \frac{2h}{t^2}.
\end{equation}
\section{量測結果}
\begin{table}[htbp]
\centering
\caption{不同高度的落下時間}
\label{tab:fall-time}
\begin{tabular}{ccc}
\toprule
次數 & 高度 $h$(m) & 時間 $t$(s) \\
\midrule
1 & 1.00 & 0.45 \\
2 & 1.00 & 0.46 \\
3 & 1.00 & 0.44 \\
\bottomrule
\end{tabular}
\end{table}
量測值整理於表~\ref{tab:fall-time}。後續可計算各次的 $g$,再比較平均值與標準值的差異。
\section{結論}
本實驗示範如何用公式、表格與交叉引用整理量測結果。
\end{document}
編譯:
latexmk -lualatex main.tex
清除輔助檔但保留 PDF:
latexmk -c
連同 PDF 一併清除:
latexmk -C
常見錯誤與除錯順序
LaTeX 的錯誤常會連鎖出現。先修日誌中的第一個錯誤,再重新編譯;直接追最後一條錯誤,往往只會看到前面問題造成的結果。
command not found 或 VS Code 找不到 latexmk
先在 VS Code 以外的新終端機執行:
latexmk --version
lualatex --version
終端機也找不到時,問題在發行版或 PATH;終端機可以、VS Code 不行時,完全關閉並重開 VS Code。Windows 若剛完成 TeX Live 安裝,也可登出再登入,讓所有程式取得新的環境變數。
File 'xxx.sty' not found
代表套件沒有安裝,或目前使用的發行版不是你以為的那套。TeX Live 可先查檔案屬於哪個套件,再用 tlmgr 安裝;MiKTeX 可透過 MiKTeX Console 安裝或啟用缺少套件時詢問。
kpsewhich xxx.sty
tlmgr search --global --file '/xxx.sty'
在 Linux 使用系統套件庫安裝 TeX Live 時,不要混用需要系統管理員權限的發行版套件與不相容的 tlmgr 更新流程。優先透過該 Linux 發行版的套件管理器補齊套件。
Undefined control sequence
常見原因是命令拼錯、忘了載入提供該命令的套件,或使用了不支援的編譯引擎。查看錯誤訊息附近的命令,回頭檢查套件文件與前言區。
Missing } inserted、Runaway argument
多半是 {} 沒有成對,或環境缺少對應的 \end{...}。從第一個報錯位置往前檢查,不要只看 LaTeX 猜測插入右括號的那一行。
圖片找不到
確認檔名大小寫、附檔名與相對路徑。Windows 對大小寫通常較寬鬆,Linux 和 Overleaf 會區分 Plot.png 與 plot.png。移動主檔或用不同工具建置時,也要確認工作目錄是否改變。
引用顯示 ?? 或文獻沒有出現
交叉引用通常需要再編譯;文獻還需要 Biber/BibTeX。使用 latexmk 可自動處理大多數情況。若問題持續,執行 latexmk -C 清除舊輔助檔,再重新建置。
PDF 有警告但仍產生
Overfull \hbox 代表內容超出可排版寬度,常見於長網址、長公式或不能斷行的文字。Underfull \hbox 則代表排版過鬆。警告不一定阻止 PDF 產生,但交件前仍應檢查對應頁面。
寫報告時的檢查表
- 主檔與所有文字檔使用 UTF-8 編碼。
- 中文專案固定使用 LuaLaTeX 或 XeLaTeX,並讓編輯器配方一致。
- 圖、表、公式與章節透過
\label、\ref或\eqref引用。 - 圖片使用相對路徑,檔名大小寫與實際檔案完全相同。
- 文獻引用鍵存在,Biber/BibTeX 已完成執行。
- 先修第一個編譯錯誤,再處理後續訊息。
- 交件前從頭閱讀 PDF,確認目錄、頁碼、浮動位置、字型與超出版面警告。
- 保留
.tex、.bib、圖片與編譯說明,不只保留最後的 PDF。
官方參考資料
- LaTeX Project:文件與學習資源
- TeX Live 2026 官方指南
- TeX Live 快速安裝
- MacTeX 官方網站
- MiKTeX 安裝說明
- LaTeX Workshop 安裝說明
- Overleaf:Learn LaTeX in 30 minutes
- CTAN 套件搜尋
完成第一份文件後,最有效的練習是把正在寫的作業搬進 LaTeX:先只處理標題、章節與公式,確認能穩定編譯,再逐步加入圖片、表格和文獻。每次只增加一種結構,發生錯誤時就能快速找到剛改動的位置。