读英文论文最烦的不是生词,是那些夹在句子中间的公式。复制一段丢进翻译软件,回来是一串乱码;截图翻译更糟,双栏排版直接串成一行,读三句就得回头找原图。
三万多颗星的 PDFMathTranslate,也就是常说的 pdf2zh,走的是另一条路:不去搬文字,而是把译文按原来的位置填回去。公式、图、表、目录、页边批注,全留在原位,只把英文换成中文。
截图里那篇 Nature 的文章就是它干的活。标题译成了“图谱和社交网络合作演化的简单规则”,下面是双栏正文,中间那个手写的 b/c>k 批注框、底下的网络结构图,一个都没动。第一眼看过去,像有人把原版面重排了一遍。

用法不止一种。装了图形界面的,拖一个 PDF 进去,选翻译服务、选语言、选页数,点 Translate 就行;习惯命令行的,一条 pdf2zh 跟着参数跑,能批量处理整个文件夹;服务器上还能起 Docker,把接口挂出去给别的系统调。不想装东西的,官网的在线版传上去也能出结果,单文件限制 5MB。
翻译服务可以自己挑。DeepLX 免费但慢,Bing、Google 稳定,接 OpenAI 或国内大模型的 key 出来的句子更顺,代价是花钱。我的习惯是先拿前五页试水,术语对得上再整篇跑。

它的本事在版面解析这一层:先把 PDF 拆成文字块、图块、公式块,判断哪块是正文、哪块是图注,翻译完再按原坐标填回去,字号和行距跟着原块缩放。所以译文不会溢出到页脚,也不会把两栏挤成一栏。
版本上有个坑得提一句:2.0 之后主体搬到了新仓库 PDFMathTranslate-next,老仓库停在 1.9.x,但星标和大部分教程还指着这里。想用新的排版内核(BabelDOC)就走新仓库,只求稳定出稿,1.9 这一支也够用。
最近几版还在抠细节:十月上旬加了中英文之间自动补空格,混排的时候不会挤成一团;还有一个 ultrafast 模式,跳过版面模型直接用文本坐标估算,几百页的标书跑起来快得多。
缺点同样清楚。扫描版 PDF 没有文字层,得先走 OCR,这一步目前还是实验性的,表格多的时候偶尔错位;页数太多会跑很久,中途断了要重来;译文是机翻底子,专业术语该核对还得核对。
我现在的用法是:先用它出一份中文版通读,把结构和论证看明白,关键的几段再回原文对一遍。省下的不是查词的时间,是那种读三行就断一次的烦躁。