搭建本地版 Latex 编辑器
摘要:无论是本科、硕士、还是博士,论文撰写是每个学生在不同的学习阶段都会遇到的任务。本文记录我使用 Latex 撰写博士论文遇到的困难和解决方案,同时也会展开聊聊我为什么做出这样的选择,希望给还在观望 Latex 和使用 Latex 遇到困难的同学们一点启发。
📌 目录
- [为什么选择 Latex 作为毕业论文工具](#为什么选择 Latex 作为毕业论文工具)
- [在线 Latex 工具无法满足编辑需求](#在线 Latex 工具无法满足编辑需求)
- [自建 Overleaf 本地版本](#自建 Overleaf 本地版本)
- [安装 Docker 环境](#安装 Docker 环境)
- [部署 Overleaf 容器](#部署 Overleaf 容器)
- [创建 Overleaf 实例账号](#创建 Overleaf 实例账号)
- [增强 Overleaf 实例编译环境](#增强 Overleaf 实例编译环境)
为什么选择 Latex 作为毕业论文工具
在撰写毕业论文的时候,作者只有毕业生一个人,因此协同编辑文档的需求其实已经不复存在了。但是对于为什么仍然使用 Latex 作为排版工具,除了专业背景是最老生常谈的理由,还有两个重要的原因使我更坚定地选择 Latex 作为毕业论文的排版工具。
1️⃣ 沉没成本
在很多理工科的领域,毕业论文 ≈ 文献综述 + 一系列的现有论文 已成为一个事实标准。因此,原有论文的排版工具是什么,就成为了你转用其他排版工具的负担,也就是这里说的沉没成本。
对我而言,由于前期大量地和导师一起用 Latex 合写文章,基本上我也不得不继续使用 Latex。
2️⃣ 格式统一
不同的论文由于投稿的会议和期刊不同,他们排版的图表和段落格式都不一样。但是对于一份合格的毕业论文来说,在一份论文里至少要做到内部格式一致才会被学校图书馆接收,学生才能顺利毕业。
对于一个编译型的语言,能够做到一份源代码 + 库文件生成一致的程序输出。对于 Latex 这个编译型语言来说,就是:
一份论文源码 + 模版文件 → 一份格式一致的 PDF 输出
因此,对我而言,使用 Latex 能减少大量的编辑成本。
📖 关联阅读:《万字解析 | 感性与理性认识 LaTeX,学术论文排版的「行业标准」》
在线 Latex 工具无法满足编辑需求
Overleaf 已经成为了在线 Latex 编辑器的事实标准。它提供了大量的国内外出版商的模版供用户直接使用甚至一键投稿;它允许免费用户邀请其他人一起在线协同编辑同一份文档;它的编辑器提供了自动补全、格式化、实时编辑、实时预览等一系列方便的功能。
⚠️ 免费版限制
由于编译这个步骤需要花费相对多的计算资源,因此对于免费版的 Overleaf 来说,它限制了单次编译的最长时间。尽管官方没有明确说明超时时间为多少,但从我的经验来看,大约编译一份 ACM 或 IEEE 的标准会议模板(约 12 页)就比较接近超时的上限了。
对于我们想要编译的博士论文来说,其一般为几十页至上百页不等,远远超过 Overleaf 免费账户的限制。
💡 解决方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| 选择性编译部分章节 | 免费 | 打破回顾需求,不便查阅上下文 |
| 购买 Premium 版本 | 功能完整 | 21 美刀/月,成本较高 |
| 使用本地 Latex 工具 | 一次投入,长期使用 | 集成性略逊于 Overleaf |
如果选项二不满足于你,那么使用本地 Latex 工具编译就变成了唯一选项。
自建 Overleaf 本地版本
好消息是,Overleaf 开源了自家的编辑器供用户私有部署,因此上述的问题似乎可以有效解决。
⚠️ 注意:Overleaf 团队仅开源了其编辑器的部分,其集成性环境 overleaf.com 版本并非是开源的。本章节主要向大家介绍如何尽量复刻 overleaf.com 这个版本以满足我们理想的编辑体验。
安装 Docker 环境
Docker 是目前部署工作中最方便的工具之一。Overleaf 提供的部署工具也是基于 docker 环境的。以下以 Ubuntu 环境为例:
第一步:添加 Docker 仓库
bash
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
第二步:安装 Docker 和 Docker Compose
bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
第三步:配置非管理员权限用户
bash
sudo groupadd docker
sudo usermod -aG docker $USER
💡 提示:退出你的终端或 SSH 链接,再重新打开终端或重连 SSH。这一步是为了让上述的权限配置在新的会话中生效。
第四步:测试 Docker 环境
bash
docker run hello-world
⚠️ 注意:该步骤需要必要且顺畅的网络连接,如无法成功下载镜像,则需要先解决网络问题再行尝试。
部署 Overleaf 容器
Overleaf 的编辑器在 Github 开源,主体代码在主仓库中,Overleaf 官方贴心地把脚本制作成一个工具包给用户快捷安装。
1. 下载工具包
bash
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
2. 初始化配置文件
bash
cd ./overleaf-toolkit
./bin/init
ls config
会生成三份配置文件:overleaf.rc、variables.env 和 version
3. 关键配置项说明
| 配置文件 | 配置项 | 说明 |
|---|---|---|
| overleaf.rc | SHARELATEX_PORT | 默认 80 端口,建议修改为 1024~65535 之间的数值 |
| variables.env | SHARELATEX_APP_NAME | 可自定义,无特别影响 |
| variables.env | SHARELATEX_SITE_URL | 影响用户激活链接的域名地址,需能解析到服务器 |
| variables.env | SHARELATEX_NAV_TITLE | 标签页标题,可自定义 |
| variables.env | SHARELATEX_HEADER_IMAGE_URL | 建议指向学校 logo 以区分 overleaf.com |
| variables.env | SHARELATEX_LEFT_FOOTER | 注册界面提示信息,显示管理员联系方式 |
| version | - | 不需要更改 |
4. 启动容器
bash
# 下载和启动容器(输出 log 方便诊断)
./bin/up
# 后台运行
./bin/start
创建 Overleaf 实例账号
由于是自建 Overleaf,该实例下的账号与 overleaf.com 里的账号不互通,需要创建该实例自己的账号。
注册管理员账号
假设环境变量配置如下:
SHARELATEX_SITE_URL=overleaf.abbr.edu.cnSHARELATEX_PORT=8001
访问以下地址注册:
http://overleaf.abbr.edu.cn:8001/launchpad
⚠️ 重要 :第一个在这个实例下注册的账号将会被设定为唯一的管理员账号,因此请不要随便设置测试账号。
登录使用
http://overleaf.abbr.edu.cn:8001/login
创建普通用户账号
登录管理员账号后,在右上角找到 Admin 相关功能:
- 输入一个邮箱地址
- 系统生成激活链接
- 将该激活链接发给别人完成激活
- 用户便可登入到系统中
增强 Overleaf 实例编译环境
如果把很多期刊和会议的 Latex 模板扔到这个自建的 Overleaf 实例中编译,你会发现大部分情况下都是无法编译成功的。两者之间的差别主要在于以下几个部分:
- Latex 宏包
- 系统字体
- TikZ & Syntax highlighter 的依赖
- TexLive 版本
1. 安装 Latex 宏包
bash
cd ./overleaf-toolkit
./bin/shell
tlmgr install scheme-full
💡 说明 :
scheme-full指代了 CTAN 中所有的 Latex 宏包,大约需要至少 2G 的存储空间,整个下载过程非常漫长,建议耐心等待。
2. 安装系统字体
bash
cd ./overleaf-toolkit
./bin/shell
apt install ttf-mscorefonts-installer
对于小众字体,手动复制并刷新字体索引:
bash
docker cp /path/to/your/font sharelatex:/usr/local/share/fonts/
cd ./overleaf-toolkit
./bin/shell
fc-cache -f -v
3. 安装 TikZ & Syntax highlighter 依赖
bash
cd ./overleaf-toolkit
./bin/shell
apt install inkscape python3-pygments
4. 升级 TexLive 版本(可选)
bash
cd ./overleaf-toolkit
./bin/upgrade
📝 总结
通过以上步骤,你就可以在本地搭建一个功能完整的 Overleaf 编辑器,享受与 overleaf.com 相似的编辑体验,同时摆脱免费版编译时长的限制。
核心优势:
- ✅ 无编译时长限制
- ✅ 数据本地存储,更安全
- ✅ 可自定义配置,适配学校要求
- ✅ 一次性部署,长期使用
希望这篇教程能给还在观望 Latex 和使用 Latex 遇到困难的同学们一点启发!
如果觉得本文对你有帮助,欢迎点赞、收藏、关注三连支持!👍
标签 :LaTeX Overleaf Docker 论文写作 学术工具 本地部署