基于 Overleaf CE 的中文本地化在线 LaTeX 编辑器
内置完整 TeX Live + CJK 字体 · fontconfig 别名兼容 Windows 字体名 · 开箱即用
本项目基于 Overleaf Community Edition 修改,遵循 AGPL-3.0 许可证发布。
直接使用预构建镜像,无需自己编译。镜像地址:Docker Hub → fred1653/sharelatex-full
当前版本 0.2.1。
latesttag 等价于0.2.1。正式部署推荐使用固定版本号 tag。详见 版本策略。
# 使用项目根目录的 docker-compose.yml 启动
docker compose -f docker-compose.yml up -d
# 创建管理员
# 🌐 浏览器访问 http://localhost/launchpad
# 停止
docker compose -f docker-compose.yml down
docker-compose.yml已配置好OVERLEAF_SITE_LANGUAGE: "zh-CN"(中文界面),开箱即用。
- Admin 管理面板:设置
ADMIN_PRIVILEGE_AVAILABLE: "true"启用,支持用户管理、项目管理 - 审计日志:管理面板内置审计日志,记录用户操作和系统事件
- Track Changes 修订跟踪:默认启用,编辑器工具栏可切换修订模式
- 审阅面板:支持评论线程、解决讨论、实时同步
编辑 docker-compose.yml 的 environment 部分,按需取消注释:
OVERLEAF_SITE_URL: http://your-server-ip # 🌍 外网访问时必须设置
ADMIN_PRIVILEGE_AVAILABLE: "true" # 🔧 启用管理面板(/admin)
TZ: "Asia/Shanghai" # 🕐 时区(影响时间显示)
MAX_COMPILE_TIMEOUT_MINUTES: "10" # ⏱️ 编译超时(分钟)邮件功能用于注册确认、密码重置、项目邀请等。在 docker-compose.yml 中取消注释以下变量并填入你的 SMTP 信息:
OVERLEAF_EMAIL_FROM_ADDRESS: "noreply@example.com" # 发件人地址
OVERLEAF_EMAIL_SMTP_HOST: smtp.example.com # SMTP 服务器
OVERLEAF_EMAIL_SMTP_PORT: 587 # 端口(465 或 587)
OVERLEAF_EMAIL_SMTP_SECURE: false # 465→true, 587→false
OVERLEAF_EMAIL_SMTP_USER: user@example.com
OVERLEAF_EMAIL_SMTP_PASS: your-password
⚠️ TLS 证书问题:如果遇到邮件发送失败(尤其是自建邮件服务器),建议将OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH设为false或注释掉。
支持 LDAP 统一认证(OpenLDAP / Active Directory),启用后用户可通过 LDAP 账户登录:
OVERLEAF_LDAP_URL: "ldap://ldap:389"
OVERLEAF_LDAP_SEARCH_BASE: "ou=people,dc=example,dc=com"
OVERLEAF_LDAP_SEARCH_FILTER: "(uid={{username}})"
OVERLEAF_LDAP_BIND_DN: "cn=admin,dc=example,dc=com"
OVERLEAF_LDAP_BIND_CREDENTIALS: "your_ldap_password"📖 完整配置说明见 部署指南。
LaTeX 编译报错 File 'xxx.sty' not found 时:
scripts/tlmgr-in-container.sh search xxx.sty # 🔍 搜索哪个包包含该文件
scripts/tlmgr-in-container.sh install enumitem # 📥 安装
⚠️ 容器重建后安装的包会丢失。详见 构建指南 → 安装宏包。
项目提供两个测试文件,上传到 Overleaf 用 XeLaTeX 编译即可验证中文支持:
| 文件 | 说明 |
|---|---|
| windows字体测试-1.tex | 简单版:宋体 + 仿宋 + 数学公式 |
| windows字体测试-2.tex | 完整版:宋体/仿宋/黑体/楷体 + 加粗/斜体 + 数学混排 |
测试使用
\setCJKmainfont{SimSun}等 Windows 字体名,公开镜像通过 fontconfig 别名映射到开源替代字体,无需安装真实 Windows 字体即可编译。
公开镜像通过 fontconfig 别名兼容 Windows 字体名(SimSun → Noto Serif CJK SC)。如需真实 Windows 字体:
# 临时导入(容器重建后丢失)
docker cp fonts.zip sharelatex:/tmp/fonts.zip
docker exec sharelatex import-private-fonts-zip /tmp/fonts.zip
# 🔒 或构建私有字体镜像(永久)
docker build -f server-ce/Dockerfile-windows-fonts \
--build-arg BASE_IMAGE=fred1653/sharelatex-full:latest \
-t fred1653/sharelatex-full-private:latest .| 功能 | TeXDock | Overleaf CE | Overleaf Server Pro |
|---|---|---|---|
| 中文界面 (zh-CN) | ✅ | ❌ | ❌ |
| 完整 TeX Live | ✅ | ❌ | ❌ |
| Windows 字体兼容 | ✅ | ❌ | ❌ |
| Track Changes 修订跟踪 | ✅ | ❌ | ✅ |
| 审阅面板 | ✅ | ❌ | ✅ |
| 评论线程 | ✅ | ❌ | ✅ |
| 审计日志 | ✅ | ❌ | ✅ |
| Admin 管理面板 | ✅ | ❌ | ✅ |
| LDAP 登录 | ✅ | ❌ | ✅ |
| SMTP 邮件 | ✅ | ✅ | ✅ |
| 沙箱编译 | ❌ | ❌ | ✅ |
| SSO / SAML / OIDC | ❌ | ❌ | ✅ |
镜像分三级逐层构建,给后续维护者参考:
Dockerfile-base → sharelatex-base → sharelatex → sharelatex-full
Ubuntu+Node.js + Overleaf CE代码 + 完整TeX Live+字体
VERSION=$(cat VERSION)
docker build -f server-ce/Dockerfile-base \
--build-arg TEXDOCK_VERSION=$VERSION \
-t fred1653/sharelatex-base:$VERSION -t fred1653/sharelatex-base:latest .
docker build -f server-ce/Dockerfile \
--build-arg TEXDOCK_VERSION=$VERSION \
--build-arg OVERLEAF_BASE_TAG=fred1653/sharelatex-base:$VERSION \
-t fred1653/sharelatex:$VERSION -t fred1653/sharelatex:latest .
docker build -f server-ce/Dockerfile-full \
--build-arg TEXDOCK_VERSION=$VERSION \
--build-arg BASE_IMAGE=fred1653/sharelatex:$VERSION \
-t fred1653/sharelatex-full:$VERSION -t fred1653/sharelatex-full:latest .📖 完整构建说明、字体策略、私有字体镜像见 构建指南。
修改 Web 前端/后端代码时,用 docker-compose.dev.web.yml 挂载本地源码:
docker compose -f docker-compose.yml -f docker-compose.dev.web.yml up -d这会将 ./services/web 和 ./libraries 挂载进容器,修改后重启 web 服务即可验证:
# 🎨 前端修改需重新打包
docker exec sharelatex bash -lc 'cd /overleaf/services/web && npm run webpack:production'
# 🔄 重启 web 服务
docker exec sharelatex bash -lc 'sv restart /etc/service/web-overleaf'功能稳定后通过 Dockerfile-full-web 固化到镜像:
docker build -f server-ce/Dockerfile-full-web -t fred1653/sharelatex-full:latest .
docker compose up -d --force-recreate📖 完整开发流程、调试方法、镜像固化见 Web 开发流程。
| 场景 | 文档 |
|---|---|
| 🚀 部署使用 | 部署指南 — 系统要求、配置详解、启动初始化、常见问题 |
| 🔨 镜像构建 | 构建指南 — 三级构建、字体策略、宏包安装 |
| 💻 Web 开发 | Web 开发流程 — volume overlay、调试、镜像固化 |
| 📌 版本策略 | 版本策略 — 版本号规则、Docker tag 策略 |
docker-compose.yml # 🚀 生产配置
docker-compose.dev.web.yml # 💻 开发 overlay(挂载 web 源码)
scripts/tlmgr-in-container.sh # 📦 在运行中的容器内安装 TeX Live 宏包
server-ce/
Dockerfile-base # 1️⃣ Ubuntu + Node.js + TeX Live basic
Dockerfile # 2️⃣ Overleaf CE 应用代码
Dockerfile-full # 3️⃣ 完整 TeX Live + 字体 + 辅助脚本
Dockerfile-full-web # 3️⃣ web 代码覆盖(日常 rebuild)
Dockerfile-windows-fonts # 🔒 私有字体镜像(本地构建使用)
- 沙箱编译支持(Sandboxed Compiles)
- 管理面板功能增强
- 认证改进(SSO 研究)
- 企业级部署特性
- 更好的可观测性(日志、监控)
- 升级自动化工具
- SAML / OIDC 集成
不承诺具体交付日期。