Overleaf和Latex
单文件编辑
Overleaf是一个基于Latex的在线编辑器。其中Latex是一种排版语言,和word不同,是通过写代码的方式来排版语言。Overleaf可以很方便的使用它。
界面介绍
首先我们可以进入Overleaf,官网地址:https://v2.overleaf.com/
首先我们可以创建一个空白项目

工作页面介绍

其中下载的源码可以在上个页面中创建项目是选中upload上传项目源码

当我插入图片较多时,编译时间会很慢,甚至可能触发编译超时限制(免费版20s,付费版2min),可以开启这里的草稿模式,加快编译,简化图片加载。
下面按论文写作常用功能分类,整理了一份标签和对应导入包的笔记,采用"先给标签,再给导入包"的形式,方便快速查找和使用。
📁 一、基础结构
这是每份LaTeX文档最基础的部分,不依赖额外宏包,但必须了解。
| 标签/命令 | 用途 | 说明 |
|---|---|---|
\documentclass{article} |
定义文档类型 | 常用:article(论文/文章)、report(报告)、book(书籍)。中文写作可使用ctexart、ctexrep、ctexbook代替 |
\title{标题} |
设置标题 | 写在导言区 |
\author{作者名} |
设置作者 | 写在导言区 |
\date{\today} |
设置日期 | \today自动显示编译当天日期 |
\maketitle |
生成标题页 | 写在\begin{document}之后 |
\tableofcontents |
生成目录 | 写在标题之后 |
\section{标题} |
一级标题 | 加*可取消编号,如\section*{摘要} |
\subsection{标题} |
二级标题 | |
\subsubsection{标题} |
三级标题 | |
\begin{abstract}...\end{abstract} |
摘要环境 | |
\begin{keyword}...\end{keyword} |
关键词环境 | |
\textbf{文本} |
粗体 | |
\textit{文本} |
斜体 | |
\begin{itemize}...\end{itemize} |
无序列表 | 列表项用\item |
\begin{enumerate}...\end{enumerate} |
有序列表 | 列表项用\item |
🌐 二、中文支持
如果论文中写中文,以下两样缺一不可。
推荐标签:
| 标签 | 用途 | 说明 |
|---|---|---|
ctex |
中文排版 | 标准解决方案 |
XeLaTeX / LuaLaTeX |
编译器选择 | 支持Unicode编码 |
导入包(导言区):
\documentclass{ctexart} % 中文文档类型(推荐)
% 或者在原有文档类基础上:
\usepackage[UTF8]{ctex} % 支持中文排版
⚠️ Overleaf 操作提醒:使用中文时,需将 Overleaf 右上角 Compiler 改为 XeLaTeX 或 LuaLaTeX。
📐 三、页面与版面设置
| 标签 | 导入包 | 用途 |
|---|---|---|
\newgeometry |
geometry |
设置页边距、纸张大小 |
fancyhdr |
fancyhdr |
设置页眉页脚 |
\onehalfspacing |
setspace |
设置1.5倍行距 |
multicol |
multicol |
分栏排版 |
indentfirst |
indentfirst |
首行缩进(中文写作常用) |
导言区导入示例:
\usepackage{geometry}
\geometry{left=2.54cm,right=2.54cm,top=3.09cm,bottom=3.09cm} % 设置页边距
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{页眉左}
\chead{页眉中}
\rhead{页眉右}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt} % 页眉横线宽度
\usepackage{setspace}
\onehalfspacing % 1.5倍行距
\usepackage{indentfirst}
\setlength{\parindent}{2.45em} % 首行缩进两个汉字长度
🧮 四、数学公式
推荐使用美国数学学会(AMS)提供的宏包组合。
| 标签 | 导入包 | 用途 |
|---|---|---|
\begin{equation}...\end{equation} |
amsmath |
带编号的公式环境 |
\begin{align}...\end{align} |
amsmath |
多行公式对齐环境 |
\begin{gather}...\end{gather} |
amsmath |
多行居中公式 |
\label{标签名} + \eqref{标签名} |
amsmath |
公式交叉引用 |
\notag |
amsmath |
阻止某行公式编号 |
\tag{自定义编号} |
amsmath |
手动修改公式编号 |
| 各种额外数学符号 | amssymb |
箭头、关系符号、集合符号等 |
\mathbb{字母} |
amsfonts |
黑板粗体字母(如表示实数集(\mathbb{R})) |
\begin{theorem}...\end{theorem} |
amsthm |
定理环境 |
导言区导入:
\usepackage{amsmath} % 基础数学排版
\usepackage{amssymb} % 额外数学符号(已包含 amsfonts,无需单独加载)
\usepackage{amsthm} % 定理环境(需放在 amsmath 之后)
公式交叉引用示例:
\begin{equation}
a^2 + b^2 = c^2 \label{eq:pythagoras}
\end{equation}
根据公式 \eqref{eq:pythagoras} 可得... % \eqref 自动加括号
🖼️ 五、图表插入
| 标签 | 导入包 | 用途 |
|---|---|---|
\includegraphics[width=0.8\textwidth]{图片文件名} |
graphicx |
插入图片 |
\begin{figure}[htbp]...\end{figure} |
—(基础浮体) | 图片浮体环境 |
\caption{标题} |
caption |
控制图表标题样式,支持多语言编号 |
[H] 位置选项 |
float |
强制图片放在当前位置 |
subfigure 环境 |
subcaption |
多个子图并排,各自有独立标题 |
\begin{table}...\end{table} |
—(基础浮体) | 表格浮体环境 |
导言区导入:
\usepackage{graphicx} % 插入图片
\usepackage{caption} % 图表标题样式控制
\usepackage{subcaption} % 子图功能(不可与 subfig 同时使用)
\usepackage{float} % 允许用 [H] 强制放置
插入单张图片:
\begin{figure}[htbp] % h=here, t=top, b=bottom, p=单独一页
\centering
\includegraphics[width=0.8\textwidth]{figures/example.png}
\caption{图片标题}
\label{fig:example}
\end{figure}
插入并排子图:
\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{figures/left.png}
\caption{左图}
\label{subfig:left}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{figures/right.png}
\caption{右图}
\label{subfig:right}
\end{subfigure}
\caption{并排子图}
\label{fig:sidebyside}
\end{figure}
💡 交叉引用:用
\label{标签名}为图表做标记,用\ref{标签名}引用图号。
📊 六、表格
| 标签 | 导入包 | 用途 |
|---|---|---|
\begin{tabular}{列格式}...\end{tabular} |
—(基础命令) | 基础表格环境 |
\toprule、\midrule、\bottomrule |
booktabs |
三线表专业横线 |
\multirow{行数}{*}{内容} |
multirow |
纵向合并单元格 |
\multicolumn{列数}{列格式}{内容} |
—(基础命令) | 横向合并单元格 |
\makecell[c]{内容} |
makecell |
表格内换行 |
\resizebox{宽度}{高度}{内容} |
graphicx |
调整表格整体宽度 |
\renewcommand{\arraystretch}{比例} |
—(基础命令) | 调整表格行高 |
导言区导入:
\usepackage{booktabs} % 三线表
\usepackage{multirow} % 纵向合并单元格
\usepackage{makecell} % 表格内换行
实用建议:LaTeX 表格手动编辑较繁琐。推荐使用在线生成器 TablesGenerator.com ,在 Excel 中打好表格后复制到该网站,点击 Generate 复制代码即可使用。
另外,我们经常在ref前加~。防止Tabel和编号换行,使其称为不可断空格,绑到一起
📚 七、参考文献
推荐方案对比:
| 方案 | 适用场景 | 推荐包 |
|---|---|---|
| BibTeX + natbib | 初学者入门,格式要求传统 | natbib |
| BibLaTeX + biber | 多语言、高级定制需求 | biblatex |
方案一:BibTeX + natbib(推荐新手)
导言区导入:
\usepackage{natbib}
\bibliographystyle{plainnat} % 参考文献格式
正文引用:
\cite{引用标识} % 普通引用
\citep{引用标识} % 括号式引用
\citet{引用标识} % 作者+年份式引用
文档末尾生成文献列表:
\bibliography{references} % references.bib 文件名
创建 .bib 文件,示例条目:
@article{key2025,
author = {作者名},
title = {文章标题},
journal = {期刊名},
volume = {卷号},
pages = {页码},
year = {2025}
}
💡 Overleaf 操作提醒:在 Overleaf 左侧文件列表中新建一个
.bib文件,将所有 BibTeX 条目粘贴进去;编译顺序为:PDFLaTeX → BibTeX → PDFLaTeX → PDFLaTeX。
🔗 八、交叉引用与超链接
| 标签 | 导入包 | 用途 |
|---|---|---|
\label{标签名} |
—(基础命令) | 给公式、图表、章节做标记 |
\ref{标签名} |
—(基础命令) | 交叉引用(仅显示编号) |
\pageref{标签名} |
—(基础命令) | 引用所在页码 |
\autoref{标签名} |
hyperref |
自动添加类型名(如"Figure 1") |
\href{URL}{显示文字} |
hyperref |
插入超链接 |
导言区导入:
\usepackage{hyperref} % 生成超链接,PDF书签
\usepackage{cleveref} % 增强交叉引用(需放在 hyperref 之后)
⚠️ 重要提醒:
hyperref应放在导言区最后或倒数第二的位置,以免与其他包冲突。
📝 九、其他常用工具包
| 标签 | 导入包 | 用途 |
|---|---|---|
\begin{lstlisting}...\end{lstlisting} |
listings |
代码块高亮显示 |
enumitem |
enumitem |
自定义列表样式(间距、编号格式等) |
url |
url |
URL网址自动换行(hyperref已自带此功能,无需单独加载) |
xcolor |
xcolor |
文本/表格颜色设置 |
microtype |
microtype |
优化微排版,减少溢行 |
📌使用 Overleaf 的要点
-
先编译看效果——每写完一段内容就点一下 Compile(重新编译),养成习惯比什么都强。右侧预览窗口会即时显示排版结果。
-
模板是最快的起点——在 Overleaf 首页点击"New Project"→"Journal Article",选择目标期刊或会议的模板直接套用,比自己从零开始写省很多时间。
-
导言区和正文区要分清——
\begin{document}之前全是导言区(加载包、写命令),之后全是正文区(写实际内容)。混淆会导致编译报错。 -
记住最常用的交叉引用流程——先
\label{fig:example},再\ref{fig:example}。标签名建议有含义,如fig:表示图表、sec:表示章节、eq:表示公式。 -
多用注释——在 Overleaf 中选中多行代码,按
Ctrl+/可以一键添加%注释,暂时屏蔽不用的代码块。 -
出错不要慌——LaTeX 报错信息通常会在出问题的那一行附近标出,大部分初学者报错来自:少写了
}或}、导言区写入了实际内容、或包和包之间有冲突。
补充多文件操作
🧩 分模块写作 · 速查卡片
| 场景 | 用什么命令 | 一句话说明 | 会不会强制换页 |
|---|---|---|---|
| 加载普通子文件(引言、方法等) | \input{文件} |
直接把子文件内容粘贴到这里 | 不会 |
| 加载完整的一章(想单独编译节省时间) | \include{文件} |
自动换页,且可以只编译当前章 | 会(新页开始) |
| 希望子文件能单独编译(推荐) | subfiles 宏包 |
主文件和子文件都能编译,非常灵活 | 由你控制 |
⚡ 优先推荐
subfiles:一开始就采用,后期改一个章节时直接点进子文件按Compile,一秒就看到效果,不用反复编译整篇论文。
📁 一个真实的论文项目结构
my_thesis/ # Overleaf 项目根目录
├── main.tex # 主文件(只有框架)
├── chapters/ # 分章节的文件夹
│ ├── introduction.tex
│ ├── related_work.tex
│ ├── methodology.tex
│ ├── experiments.tex
│ └── conclusion.tex
├── figures/ # 图片文件夹
│ └── example.png
└── references.bib # 参考文献库
🔧 实战 ① 最简单常用:\input (不换页,适合任何部分)
main.tex 内容:
\documentclass[12pt,a4paper]{article}
\usepackage[UTF8]{ctex} % 中文
\usepackage{graphicx}
\title{我的毕业论文}
\author{你的名字}
\begin{document}
\maketitle
\tableofcontents
% 分模块加载 —— 每个子文件只负责自己的内容
\input{chapters/introduction}
\input{chapters/related_work}
\input{chapters/methodology}
\input{chapters/experiments}
\input{chapters/conclusion}
\bibliographystyle{plain}
\bibliography{references}
\end{document}
子文件示例:chapters/introduction.tex
\section{引言}
这是论文的第一部分。分模块写作的好处是:
\begin{itemize}
\item 你和导师可以同时编辑不同章节,互不干扰。
\item 修改一个文件不会意外影响其他部分。
\item 阅读和维护起来更轻松。
\end{itemize}
图 \ref{fig:overview} 展示了系统架构。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.6\textwidth]{figures/example.png}
\caption{系统总览}
\label{fig:overview}
\end{figure}
✅ 复习提示:
\input是最安全、最直观的。除了\includeonly优化编译外,90% 的情况都用\input。
⚙️ 实战 ② 加速编译:\include + \includeonly
当论文已经很长(>20页),每次编译都等很久,可以用这个技巧。
修改 main.tex:
% 告诉 LaTeX:现在只编译 introduction 和 methodology 这两章
\includeonly{chapters/introduction, chapters/methodology}
\begin{document}
% ... 其他不变 ...
\include{chapters/introduction} % 注意这里用 \include
\include{chapters/related_work}
\include{chapters/methodology}
\include{chapters/experiments}
\include{chapters/conclusion}
\end{document}
效果:只生成 introduction 和 methodology 的内容,其他章会被跳过(但页码、引用编号依然连续)。写哪几章就 \includeonly 哪几章。
🚨 注意:
\include会自动 换新页。如果不想换页,不要用它加载小节。
🚀 实战 ③ 最强灵活:subfiles 宏包(子文件也可独立编译)
这样可以实现编辑哪个文件是,编译哪个文件。
当编译主文件是会编译全部文件,此时和input方式没有区别
1️⃣ 主文件 main.tex 改动:
\documentclass[12pt,a4paper]{article}
\usepackage[UTF8]{ctex}
\usepackage{graphicx}
\usepackage{subfiles} % 加载 subfiles 宏包
\begin{document}
\maketitle
\tableofcontents
% 用 \subfile 代替 \input
\subfile{chapters/introduction}
\subfile{chapters/related_work}
\subfile{chapters/methodology}
\subfile{chapters/experiments}
\subfile{chapters/conclusion}
\end{document}
2️⃣ 子文件(例如 chapters/introduction.tex)必须改成这样:
\documentclass[../main.tex]{subfiles} % 指定主文件路径
\begin{document} % 文档开始
\section{引言}
这里是引言内容。你现在可以 **直接点击 Overleaf 左侧这个文件**,
然后点绿色的 “Recompile” 按钮,它就会单独编译这一章,
生成完整的 PDF(带全文导言区样式)。
\subsection{一个子小节}
即使图片在父文件夹的 figures/ 目录下,也能正常引用:
\begin{figure}[htbp]
\centering
\includegraphics[width=0.5\textwidth]{../figures/example.png}
\caption{注意路径要加 `../`}
\label{fig:test}
\end{figure}
\end{document}
✨ 子文件独立编译的最大好处:你写
introduction.tex时,不用每次都编译整个main.tex,节省大量时间。
⚠️ 常见错误:路径中的括号( )会导致subfiles编译失败,所以文件夹名和文件名尽量只用字母

浙公网安备 33010602011771号