在线试用 (Overleaf 等)

想试试 LaTeX,用不着安装。在浏览器里打开一个在线编辑器,注册个账号,粘进十来行稿子,按下「Recompile」——五分钟就够了。而按下去那一刻跑起来的,是一套装着数千个宏包的完整 TeX 环境。本页只谈这最初的五分钟:浏览器那一头究竟发生了什么、第一次上手实际是怎么走的,以及人人都会立刻撞上的三件事——编译时限可用宏包的范围,还有稿子究竟存在哪里。各家服务的比较,以及该留在云端还是搬回自己机器上,留给另一页。

按下「Recompile」时,浏览器到底在做什么

几乎什么都没做。排版是在服务器上跑的。 浏览器送上去的只是一串源码,那一头有台装着整套 TeX Live 的机器,在那儿执行 pdflatexlualatex,做好的 PDF 传回来,占满屏幕右半边——机制就这么点。所以在线编辑器并不是「TeX 的简化版」:它用的是同一个引擎、同一批宏包、同样的输出。因此学到的东西可以原样搬到本地,反过来,本地能跑的稿子多半在那边也照样通过。

这一步该开哪家服务,其实没那么要紧。用得最多的是 Overleaf,日语不用配置就能出的是 Cloud LaTeX,有「公开项目不限量」免费层的是 Papeeria。此外还有把编辑器并进科学计算工作区的 CoCalc,以及 TeXpageAuthorea 等等。但不管挑哪一个,「写源码、按一下、出 PDF」这个体验都一样。先随便开一个,花五分钟摸一摸。 比较的事,之后再说也不迟。

latex
% paste this in, press Recompile, and you have used LaTeX
\documentclass{article}
\begin{document}
Hello from the browser. Here is an equation:
\[ \int_0^1 x^2 \, dx = \frac{1}{3} \]
\end{document}

第一次上手实际是怎么走的

别从空白页搭一套复杂的配置——这是头半小时里最管用的习惯。打开一个模板或上面那个最小例子,把正文换掉一段成自己的话,编译一次,把这个能跑的状态存下来。然后按标题、公式、插图、参考文献的顺序,一次只加一样。这样做的好处是:一旦出问题,凶手已经锁定。撤掉刚加的那一步必定能复原,用不着推理。反过来,一上来就堆十行 \usepackage,第一条报错根本说不清是哪一行惹的祸。

第一条报错通常是这两种之一。命令拼错会得到 ! Undefined control sequence.;在正文里写 _^ 会得到 ! Missing $ inserted.——后者是 TeX 在坚持「下标属于数学」,写成 \_ 或者进入公式如 $x_1$ 即可解决。在线编辑器会把这些错误列在 PDF 本该出现的位置,但永远先修最上面那条。TeX 的报错会连锁:底下那些多半是第一条的余波,头一条修好,它们会跟着消失。如果 PDF 仍旧是旧的,就去找相当于「Recompile from scratch」的菜单项,它会丢掉缓存的辅助文件重新构建。

第一堵墙——编译时限

服务器不可能为一个人的稿子无限拨时间,所以免费层设有编译时限。据 Overleaf 官方文档,截至 2026 年,免费方案是 10 秒,付费方案是 240 秒。十来行的练习绝对够不着,但用 TikZ 画的复杂图、几十张高分辨率图片、pgfplots 打上几万个点的曲线,以及一篇长学位论文,是真的会超。一旦超时就没有 PDF,只显示一条超时提示。

对策是现成的。首先把图片缩小——把几十张 300 dpi 的投稿级插图原样塞进去,是超时的头号原因。其次用 \documentclass[draft]{article} 或各家服务自带的 draft/fast 模式 跳过图片渲染。如果图本身就重,那就把每张 TikZ 图单独编译一次导出成 PDF,之后改用 \includegraphics 读进来(external 库正是把这件事自动化了)。还不够的话,就按章拆成多个文件,用 \includeonly 只编译正在写的那一章。而当你开始认真撞上这堵墙时,通常也就到了该在本地装一套的时候了。

宏包能用到什么程度

几乎全都能用。 主流服务装的是整套 TeX Live,所以 CTAN 上有的东西,写上 \usepackage 基本就能跑。本地安装里常见的「宏包没装」这种卡壳,在线上基本不会出现。真正会绊人的是另外三处。其一是要调用外部程序的宏包minted 为了语法高亮会启动 Python 的 Pygments,因而需要开启 -shell-escape,能不能开、怎么开则各家不同。其二是自备字体:OTF 或 TTF 得自己上传并用 fontspec 载入,当然编译器也要换成 XeLaTeX 或 LuaLaTeX。其三是 TeX Live 的年份:服务端若是旧版,新宏包的新功能就用不上。

如今也有完全不用服务器的路子:用 WebAssembly 把编译器搬进浏览器,代表就是 SwiftLaTeX。它把 pdfTeX 与 XeTeX 移植到 WebAssembly,在你自己的机器上跑,只从 CTAN 镜像抓取所需的宏包。没有服务器往返,也就没有时限这回事,而且稿子始终不出本机。不过它的宏包覆盖面与积累还比不上完整的 TeX Live,所以在只是先试试的阶段,老老实实选服务器型的更快。

你写的稿子究竟放在哪里

不在你的电脑上,而在服务商的服务器上。 话虽显而易见,头五分钟里却很容易忽略,而它有三层实际含义。其一,未发表的研究或含机密的稿子 该放在哪里,是要对照所属机构的规定来判断的问题。其二,尽早确认怎么把源码取出来:下载 PDF 到处都有,但能不能把 .tex 连同图片打包成 ZIP、经 Git 或 Dropbox 拿走,各家不同。本来当作试用而开的稿子变成正式产出,是常有的事,到那时没有出口就麻烦了。其三,账号一旦丢失稿子也就没了,所以每到一个节点就往本地存一份才稳妥。

还有一件事,若打算写日语,头五分钟内就该确认的设置。多数服务的默认编译器是 pdfLaTeX,而它根本排不了日语;不做任何设置就打日语,要么报错,要么出一份字都不见了的 PDF。在菜单里把编译器切换成 LuaLaTeX,再用 ltjsarticlejlreq,就能通过。也有像 Cloud LaTeX 这样开箱即支持日语的服务,若日语是主力,这可以作为挑选的依据。若要走日本期刊常用的 pLaTeX 路线,就得往项目里放一个依次调用 platexdvipdfmxlatexmkrc,这可不是五分钟的活儿(步骤见 Overleaf 那一页)。无论如何,动笔写正文之前,先让一句短短的日语通过编译

latex
% first set the compiler to LuaLaTeX in the service menu
\documentclass{ltjsarticle}
\begin{document}
こんにちは、\LaTeX。数式も書けます: $e^{i\pi}+1=0$
\end{document}
  • 若投稿去处已定,先在服务的模板库里找到官方模板再动笔——IEEE、ACM(acmart 类)与 Springer Nature 的 LNCS 都有官方版本,肯定比从白纸开始快。若主办方给了 .sty,直接上传到 .tex 旁边即可。
  • 要写日语的话,动手写正文之前先让一句短句通过编译;默认的 pdfLaTeX 排不了。
  • 尽早确认能否把整套东西——.tex 连同图片,而不只是 PDF——经 ZIP、Git 或 Dropbox 导出。
  • 报错从最上面往下修。TeX 的错误会连锁,靠下的那些往往在第一条修好后就消失了。
  • 练习用的文件绝不会碰到时限,但一旦开始大量贴图,先怀疑图片的分辨率和尺寸。