Overleaf + LaTeX 全面实用教程(从零到进阶)

Overleaf + LaTeX 全面实用教程(从零到进阶)
本教程面向:第一次接触 LaTeX 的同学、准备从 Word 迁移到 LaTeX 的研究者、以及想把 Overleaf 用到位(多人协作、Git 同步、模板管理、自动引用、演示文稿、中文排版等)的用户。

目录

  1. 基本概念与快速上手
  2. Overleaf 平台功能总览
  3. 文档结构与常用文档类
  4. 语言与编译引擎选择(pdfLaTeX / XeLaTeX / LuaLaTeX)
  5. 章节、段落、列表与文本格式
  6. 数学公式与 amsmath 家族
  7. 图片、表格与浮动体(含 booktabs、跨行跨列)
  8. 参考文献与引用(BibTeX / BibLaTeX + Biber)
  9. 交叉引用、超链接与目录图表清单
  10. 代码高亮、算法伪代码与绘图(Listings/Minted、algorithm2e、TikZ/PGF)
  11. 演示文稿(Beamer)与简历(moderncv / awesome-cv)
  12. 多文件项目组织(\input/\include/subfiles
  13. 中文与多语言排版(ctexbabelpolyglossia
  14. 页面布局、字体与宏命令
  15. 可重复性:项目模板、latexmkrc、Overleaf Git 同步
  16. 常见错误与调试技巧
  17. 最佳实践清单(论文/报告/作业/幻灯片)

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 ChangesReview 评论。
  • 版本:History & Revisions → 命名快照、比对差异、回滚。
  • 模板库:模板市场(论文、简历、海报、Beamer 等)。
  • Git 同步(付费/启用后):项目 ↔ 本地 Git 仓库双向同步。
  • Rich Text:可在所见即所得与源码模式切换(建议长期用源码)。

3) 文档结构与常用文档类

常见文档类

  • article(论文/作业/报告)、report(长文档/章节)、book(书籍)
  • beamer(演示文稿)
  • 学术类模板:例如 ieeetranacmartelsarticlelncs 等。

基本骨架

\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 基本流程

  1. 新建 refs.bib
@article{knuth1990,
  author={Donald E. Knuth},
  title={The TeXbook},
  journal={Addison-Wesley},
  year={1990}
}
  1. 导言区:
\bibliographystyle{IEEEtran}
  1. 文末:
\bibliography{refs}
  1. 文中引用:\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}

简历模板

  • moderncvawesome-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 xxx undefined:未跑 Biber/BibTeX 或 .bib 键名不一致。
  • File xxx not found:路径/文件名大小写错误,或未上传。
  • Overfull \hbox:一行过长 → 手动换行、\sloppymicrotype
  • 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 同步做分支;
  • 模板化导言区,避免项目间复制粘贴。

附:常用宏包速查表

  • 结构:geometry titlesec fancyhdr tocloft
  • 文字:microtype xcolor csquotes enumitem
  • 数学:amsmath amsthm amssymb mathtools siunitx
  • 图表:graphicx subcaption booktabs multirow caption
  • 参考文献:biblatex(或 natbib
  • 链接与引用:hyperref cleveref
  • 代码与算法:listings/mintedalgorithm2e
  • 绘图:tikz/pgfplots
  • 多语言/中文:babel/polyglossiactex
  • 多文件:subfiles

结束语

从最小示例开始,一步步引入宏包与结构;在 Overleaf 上利用协作与版本功能,配合 Git 同步与模板化管理,你就能将论文/报告/幻灯片/简历等全部工作流迁移到可复用、可审阅、可协作、可追溯的 LaTeX 体系中。祝你排版愉快!