Overleaf + LaTeX 全面实用教程(从零到进阶)
本教程面向:第一次接触 LaTeX 的同学、准备从 Word 迁移到 LaTeX 的研究者、以及想把 Overleaf 用到位(多人协作、Git 同步、模板管理、自动引用、演示文稿、中文排版等)的用户。
目录
- 基本概念与快速上手
- Overleaf 平台功能总览
- 文档结构与常用文档类
- 语言与编译引擎选择(pdfLaTeX / XeLaTeX / LuaLaTeX)
- 章节、段落、列表与文本格式
- 数学公式与
amsmath家族 - 图片、表格与浮动体(含
booktabs、跨行跨列) - 参考文献与引用(BibTeX / BibLaTeX + Biber)
- 交叉引用、超链接与目录图表清单
- 代码高亮、算法伪代码与绘图(Listings/Minted、algorithm2e、TikZ/PGF)
- 演示文稿(Beamer)与简历(moderncv / awesome-cv)
- 多文件项目组织(
\input/\include/subfiles) - 中文与多语言排版(
ctex、babel、polyglossia) - 页面布局、字体与宏命令
- 可重复性:项目模板、
latexmkrc、Overleaf Git 同步 - 常见错误与调试技巧
- 最佳实践清单(论文/报告/作业/幻灯片)
1) 基本概念与快速上手
LaTeX 是排版语言(关注结构与语义),Overleaf 是云端 LaTeX IDE(浏览器编译、协作、版本管理)。
第一份最小示例
% main.tex
\documentclass{article}
\usepackage[utf8]{inputenc} % 若用 XeLaTeX/LuaLaTeX 可省略
\usepackage{lipsum}
\title{Hello, Overleaf}
\author{Your Name}
\date{\today}
\begin{document}
\maketitle
\section{Introduction}
This is my first LaTeX document.\\
New line example. \textbf{Bold}, \emph{italic}.
\section{Math}
Inline: $E=mc^2$. Display:
\[ a^2 + b^2 = c^2. \]
\section{Dummy text}
\lipsum[1]
\end{document}
在 Overleaf: 新建项目 → 空项目 → 新建 main.tex → 选择编译器(默认 pdfLaTeX)→ Recompile。
2) Overleaf 平台功能总览
- 文件面板:上传/新建
.tex、.bib、.png/.pdf图片与子文件。 - 编译设置:选择引擎(pdfLaTeX/XeLaTeX/LuaLaTeX)、Biber、
latexmk选项。 - 协作:Share → 链接/邮箱邀请;Track Changes、Review 评论。
- 版本:History & Revisions → 命名快照、比对差异、回滚。
- 模板库:模板市场(论文、简历、海报、Beamer 等)。
- Git 同步(付费/启用后):项目 ↔ 本地 Git 仓库双向同步。
- Rich Text:可在所见即所得与源码模式切换(建议长期用源码)。
3) 文档结构与常用文档类
常见文档类
article(论文/作业/报告)、report(长文档/章节)、book(书籍)beamer(演示文稿)- 学术类模板:例如
ieeetran、acmart、elsarticle、lncs等。
基本骨架
\documentclass[11pt,a4paper]{article}
% 这里是导言区(preamble):包与全局设置
\usepackage{graphicx}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{booktabs}
\usepackage{hyperref}
\begin{document}
% 正文从这里开始
\end{document}
4) 语言与编译引擎选择
- pdfLaTeX:经典稳定,英文/西文好;中文需
ctex+ 配置,TrueType/OpenType 字体支持有限。 - XeLaTeX:原生 Unicode 与系统字体(
fontspec),中文/多语更友好。 - LuaLaTeX:与 XeLaTeX 类似,带可编程性(
luaotfload)。
建议:中文/多语 & 自定义字体 → XeLaTeX/LuaLaTeX;英文 & 期刊模板要求 → 按模板指定。
Overleaf:Menu → Compiler 选择引擎;Menu → Biber 启用 BibLaTeX 后端。
5) 章节、段落、列表与文本格式
\section{Title} \subsection{Subtitle} \subsubsection{Subsub}
\paragraph{Para} \subparagraph{Subpara}
% 换行:\\ 分段:空一行
\textbf{Bold} \textit{Italic} \underline{Underline} \texttt{Mono}
% 有序/无序列表
\begin{itemize}
\item Bullet 1
\item Bullet 2
\end{itemize}
\begin{enumerate}
\item First
\item Second
\end{enumerate}
% 引用与脚注
He said~\cite{knuth1990}. Word\footnote{A note.} spacing~is~controlled.
6) 数学公式与 amsmath 家族
% 行内:$a+b$ 行间:\[ a^2+b^2=c^2 \]
\usepackage{amsmath,amssymb,mathtools}
% 常用环境
\begin{equation}
E=mc^2
\label{eq:einstein}
\end{equation}
\begin{align}
f(x) &= x^2 + 1 \\
&= (x+1)(x-1) + 2
\end{align}
% 分段、矩阵
\begin{cases}
x+y=1 \\
x-y=0
\end{cases}
\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}
% 常用宏
\DeclareMathOperator{\argmin}{arg\,min}
$\argmin_x f(x)$
编号控制:\numberwithin{equation}{section}(来自 amsmath)。
7) 图片、表格与浮动体
\usepackage{graphicx}
\usepackage{subcaption} % 子图
\usepackage{booktabs} % 好看表格线
\usepackage{multirow} % 跨行
\usepackage{siunitx} % 数值对齐
% 图片
\begin{figure}[htbp]
\centering
\includegraphics[width=.6\linewidth]{figs/example.png}
\caption{An example figure} \label{fig:ex}
\end{figure}
% 子图
\begin{figure}[htbp]
\centering
\begin{subfigure}{.48\linewidth}
\centering
\includegraphics[width=\linewidth]{figs/a.png}
\caption{A}
\end{subfigure}\hfill
\begin{subfigure}{.48\linewidth}
\centering
\includegraphics[width=\linewidth]{figs/b.png}
\caption{B}
\end{subfigure}
\caption{Subfigures} \label{fig:sub}
\end{figure}
% 表格
\begin{table}[htbp]
\centering
\caption{Performance} \label{tab:perf}
\begin{tabular}{l S S}
\toprule
{Model} & {Accuracy(\%)} & {F1} \\
\midrule
CNN & 92.3 & 0.90 \\
LSTM & 93.1 & 0.91 \\
\bottomrule
\end{tabular}
\end{table}
浮动体选项:[h](here)[t](top)[b](bottom)[p](独立页),组合[htbp]常用。
8) 参考文献与引用(BibTeX / BibLaTeX)
BibTeX 基本流程
- 新建
refs.bib:
@article{knuth1990,
author={Donald E. Knuth},
title={The TeXbook},
journal={Addison-Wesley},
year={1990}
}
- 导言区:
\bibliographystyle{IEEEtran}
- 文末:
\bibliography{refs}
- 文中引用:
\cite{knuth1990}。
BibLaTeX + Biber(更现代)
\usepackage[backend=biber,style=authoryear,sorting=nyt]{biblatex}
\addbibresource{refs.bib}
...
As shown by~\textcite{knuth1990}. See also~\parencite{knuth1990}.
...
\printbibliography
Overleaf:Menu → 选 Biber 作为编译后端。
9) 交叉引用、超链接与目录/图表清单
\usepackage[hidelinks]{hyperref}
\usepackage{cleveref} % 自动带前缀: Eq., Fig., Tab.
See \Cref{fig:ex} and \cref{eq:einstein}.
% 目录、图表清单
\tableofcontents
\listoffigures
\listoftables
10) 代码、算法与绘图
代码高亮
listings(无需外部依赖):
\usepackage{listings}
\lstset{basicstyle=\ttfamily\small,breaklines=true}
\begin{lstlisting}[language=Python,caption={Example},label={lst:py}]
import math
print(math.pi)
\end{lstlisting}
minted(效果更佳,需-shell-escape):
\usepackage{minted}
% Overleaf: Menu → Compiler Flags 勾选 shell-escape
\begin{minted}[fontsize=\small,linenos]{python}
import numpy as np
\end{minted}
算法伪代码
\usepackage[ruled,vlined]{algorithm2e}
\begin{algorithm}[H]
\caption{Gradient Descent}
\KwIn{$f, \eta, x_0$}
\For{$t=1$ to $T$}{
$x \leftarrow x - \eta\,\nabla f(x)$
}
\end{algorithm}
绘图(TikZ/PGF)
\usepackage{tikz}
\begin{tikzpicture}
\draw (0,0) rectangle (2,1);
\draw[->] (0,0) -- (2,0) node[right]{x};
\end{tikzpicture}
11) 演示文稿(Beamer)与简历
Beamer 最小示例
\documentclass{beamer}
\usetheme{Madrid}
\title{My Talk} \author{You} \date{\today}
\begin{document}
\frame{\titlepage}
\begin{frame}{Outline}\tableofcontents\end{frame}
\section{Intro}
\begin{frame}{A Slide}
Bullet\footnote{note} and math $a^2$.
\end{frame}
\end{document}
简历模板
moderncv、awesome-cv(Overleaf 模板库搜索,按说明填充*.tex/*.cls)。
12) 多文件项目组织
% main.tex
\documentclass{report}
\begin{document}
\include{chapters/intro}
\include{chapters/method}
\end{document}
% chapters/intro.tex
\chapter{Introduction}
Content...
\input{file}:无强制分页更轻量;\include{file}:按章节分页、可\includeonly选择性编译。- 子项目:
subfiles包可让每章独立编译。
13) 中文与多语言排版
XeLaTeX + ctex
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{amsmath}
\begin{document}
中文测试,公式 $\int_0^1 x\,dx$。
\end{document}
多语言
babel(pdfLaTeX):\usepackage[english,ngerman]{babel};polyglossia(Xe/Lua):\setdefaultlanguage{english}\setotherlanguage{german}。
14) 页面布局、字体与宏命令
\usepackage[a4paper,margin=2.5cm]{geometry}
\usepackage{setspace} % 行距
\onehalfspacing
% Xe/Lua: 字体
\usepackage{fontspec}
\setmainfont{Times New Roman}
\setsansfont{Arial}
\setmonofont{JetBrains Mono}
% 自定义命令与环境
\newcommand{\R}{\mathbb{R}}
\newenvironment{remark}{\par\itshape Remark.}{\par}
% 计数器与编号
\numberwithin{figure}{section}
\setcounter{secnumdepth}{3}
15) 可重复性:模板、latexmkrc、Git 同步
- 模板化:将通用导言区与结构打包成 Overleaf 模板项目。
latexmkrc(自动构建规则):
# latexmkrc (Overleaf 根目录)
$pdf_mode = 1; # pdflatex
$bibtex_use = 2; # biber if biblatex
$pdflatex = 'pdflatex -interaction=nonstopmode -file-line-error %O %S';
$xelatex = 'xelatex -interaction=nonstopmode -file-line-error %O %S';
- Git 同步:Overleaf → Menu → Git;本地
git clone,按普通 Git 流程协作。
16) 常见错误与调试
- Undefined control sequence:宏/命令未定义 → 缺包或拼写错误。
- Package not found:Overleaf TeX Live 缺少包名 → Menu → TeX Live 版本/换包名。
- Citation
xxxundefined:未跑 Biber/BibTeX 或.bib键名不一致。 - File
xxxnot found:路径/文件名大小写错误,或未上传。 - Overfull \hbox:一行过长 → 手动换行、
\sloppy、microtype。 - Font warning:换编译引擎(Xe/Lua)或设置
fontspec。
调试技巧:
- 最小可复现(删除无关内容);
-file-line-error查看报错行;- 多次编译(引用/目录需要多轮)。
17) 最佳实践清单
- 固定项目骨架:
main.tex+sections/+figs/+tables/+refs.bib; - 用
cleveref/hyperref统一引用风格; - 表格用
booktabs,数值对齐用siunitx; - 公式集中用
amsmath/mathtools,定义算子\DeclareMathOperator; - 参考文献优先
biblatex+biber; - 中文优先 XeLaTeX +
ctex; - 长文档分章节 +
subfiles; - Overleaf 历史版本打快照;启用 Git 同步做分支;
- 模板化导言区,避免项目间复制粘贴。
附:常用宏包速查表
- 结构:
geometrytitlesecfancyhdrtocloft - 文字:
microtypexcolorcsquotesenumitem - 数学:
amsmathamsthmamssymbmathtoolssiunitx - 图表:
graphicxsubcaptionbooktabsmultirowcaption - 参考文献:
biblatex(或natbib) - 链接与引用:
hyperrefcleveref - 代码与算法:
listings/minted,algorithm2e - 绘图:
tikz/pgfplots - 多语言/中文:
babel/polyglossia,ctex - 多文件:
subfiles
结束语
从最小示例开始,一步步引入宏包与结构;在 Overleaf 上利用协作与版本功能,配合 Git 同步与模板化管理,你就能将论文/报告/幻灯片/简历等全部工作流迁移到可复用、可审阅、可协作、可追溯的 LaTeX 体系中。祝你排版愉快!