综合介绍
MathTranslate 是一个专门用于翻译 LaTeX 文档的在线工具,特别适用于科学论文的翻译。该工具能够保持 LaTeX 表达式(如数学表达式)不变,并最终将 LaTeX 文档编译成 PDF 文件。MathTranslate 提供了一个接口,可以直接输入 arXiv 论文编号进行翻译,也可以通过 Mathpix 从 PDF 生成 LaTeX 代码后再进行翻译。
功能列表
- 在线翻译 LaTeX 文档
- 支持多语言翻译
- 保持数学表达式不变
- 将 LaTeX 文档编译成 PDF 文件
- 支持 arXiv 论文的直接翻译
- 提供命令行使用方式
- 支持捐赠功能
使用帮助
安装与使用
MathTranslate 提供了两种主要的使用方式:网页服务器和命令行使用。
网页服务器(推荐给初学者)
- 访问 MathTranslate 的在线翻译网站。
- 输入需要翻译的 arXiv 论文编号,或上传包含 LaTeX 代码的文件。
- 点击翻译按钮,等待翻译结果生成。
- 下载生成的 PDF 文件。
命令行使用(适用于高级用户)
- 安装 Python3 和 pip:
sudo apt-get install python3 python3-pip
- 安装 MathTranslate:
pip install --upgrade mathtranslate
- 对于 Windows 用户,可能需要以管理员身份运行 cmd 或 powershell。
准备或生成一个 tex 文件或项目
- 对于大多数 arXiv 论文,LaTeX 源代码是公开的。MathTranslate 提供了一个简单 API,可以从 arXiv number 一键翻译整个项目。
- 使用 Mathpix 把你想翻译的 PDF 转成 LaTeX 代码。Mathpix 可以直接把 PDF 或截图转换成 LaTeX 代码,但在使用超过一定数量之后需要收费。
使用腾讯翻译API
- 注册腾讯翻译API账号,并在腾讯控制台中获取 secret ID 和 secret Key。
- 运行以下命令来存储 API secretID 和 secretKey:
translate_tex --setkey
使用命令行翻译 tex 文件或项目
- 翻译单个文件:
translate_tex input.tex -o output.tex
这会生成翻译后的 tex 文件 output.tex。
- 翻译 arXiv 项目:
translate_arxiv 2205.15510
这会生成翻译后的 tex 项目 2205.15510.zip。
编译您的 tex 文件
- 对于单个文件,可以用 texlive 的命令 xelatex output.tex 编译。中文翻译需要 xeCJK 包。
- 对于 arXiv 项目,建议把得到的 .zip 文件上传到 Overleaf 在线编译(New Project - Upload Project)。注意,需要在 Menu - Compiler 中设置成 XeLatex 编译器。
更改翻译语言和引擎的默认设置
- 可以通过命令行参数 -engine、-from、-to 更改翻译语言和引擎的默认设置。例如:
translate_tex -engine tencent input.tex -o output.tex
- 可以通过以下命令永久更改设置:
translate_tex --setdefault
- 可以通过以下命令查看更多细节:
translate_tex --help
translate_arxiv 也提供完全相同的命令行参数,它们的效果是一样的。
自定义命令
在翻译过程中,可能会遇到一些内容没有被翻译出来,这一般是因为有一些自定义的命令没有被识别到导致的。在命令行模式中提供了自定义命令的功能,您只需创建一个文件(例如 MT_additional_commands.txt),里面定义需要翻译的命令,例如:
# if you need more, just add lines with the same format (don't miss the ","!)
# each line is in the format of (command_name, N, (n1, n2, ...)),
# N is the total number of arguments,
# n1, n2, ... are the index of arguments requiring translation (counting from 0)
additional_commands = [
# latex: \mycommand1{translation needed}
('mycommand1', 1, (0, )),
# latex: \mycommand2{translation not needed}{translation needed}
('mycommand2', 2, (1, )),
# latex: \mycommand3{translation needed}{translation not needed}
('mycommand3', 2, (0, )),
# latex: \mycommand4{translation needed}{translation not needed}{translation needed}{translation not needed}
('mycommand4', 4, (0, 2)),
# practical example: \textcolor{red}{Need translation here}
('textcolor', 2, (1, )),
]
之后加上命令行参数 -commands MT_additional_commands.txt 即可翻译自定义的命令。