Skip to main content

Translate math-heavy papers

Project description

MathTranslate

English | 简体中文

This is a project to provide translation of scientific papers with heavy math symbols from any language to any language while keeping the math symbols unchanged. In most translation softwares you wouldn't be able to keep equations and it would annoy you.

The main work of this project is to translate LaTex files based on Google Translate in plain text, and finally realize the translation of pdf.

Here's an example of what you get finally.

Releases

May 14, 2023

We add the ability to directly translate the whole arxiv project with just one click.

Mar 24, 2023

We add the ability to directly translate arxiv papers.

Mar 21, 2023

We add tencent translation option for users with IP in China mainland.

Mar 16, 2023

We are now supporting all operating systems! Now you can install simply by pip install --upgrade mathtranslate.

Requirements

  1. Python3 and pip. Anaconda is recommended.
  2. (For users with IP in Mainland China): Tencent Translation API account. After registration, you can get the secret ID (not the APP ID!) and secret Key in Tencent Console. Tencent Translate is the translation API with the highest free quota to our knowledge besides Google Translate, with a free quota of 5 million characters per month, and no fee will be deducted if there is no manual recharge (that is, there is no need to worry about misuse).

Installation & Update

pip install --upgrade mathtranslate

Usage

  1. Prepare or generate a tex file or project. You can obtain a tex file or project in the following ways:
    • For most arxiv papers, the latex source code is public, and we provide a simple API to translate the entire project with just one click using an arxiv number.
    • Use mathpix to convert the pdf you want to translate into latex code. Mathpix can directly convert pdf to latex code or convert a screenshot into code. Unfortunately, mathpix requires a fee after exceeding a certain amount of usage. Here is the price list.
  2. (For Tencent Translation API users) Run translate_tex --setkey to store the API secretID and secretKey.
  3. Translate the tex file or project in command line.
    • To translate a single file: translate_tex input.tex -o output.tex will generate a translated tex file output.tex.
    • To translate an arxiv project: translate_arxiv 2205.15510 will generate a translated tex project 2205.15510.zip.
  4. Compile your tex file. For a single file, you can use the command xelatex output.tex from texlive. Chinese translation requires the xeCJK package. For arxiv projects, we recommend uploading the obtained .zip file to overleaf for online compilation (New Project - Upload Project). Note that you need to set the compiler to XeLatex in Menu - Compiler.
  5. You can change the default settings of translation language and engine through command line arguments -engine, -from, -to. For example, translate_tex -engine tencent input.tex -o output.tex. You can also permanently change the settings through translate_tex --setdefault. You can view more details through translate_tex --help. translate_arxiv also provides exactly the same command line arguments, which have the same effect.

Examples

In the example directory, you can see main.txt which is the mathpix output of a part of paper.pdf. Run translate_tex main.txt and you will get the main.tex and main.pdf. translated.png is what you should expect to see in the main.pdf.

Known Issues

  1. If \begin{env} \end{env} is reset with \newcommand in latex, it will not be translated correctly.
  2. There is a small probability to get something like "XMATHX_1_2" or wrong formula during translation. The accuracy rate of Tencent translation is slightly lower than that of Google translation.

Further developments

  1. Fix bugs in the latex translations.
  2. A more user-friendly interface.

If you have any questions or have interests in making contributions, please contact me by susyustc@gmail.com or joining QQ group 288646946.

Donation

If you think this project is helping you a lot, you can support us by the Wechat QR code below

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mathtranslate-2.3.0.tar.gz (44.9 kB view details)

Uploaded Source

Built Distribution

mathtranslate-2.3.0-py3-none-any.whl (55.5 kB view details)

Uploaded Python 3

File details

Details for the file mathtranslate-2.3.0.tar.gz.

File metadata

  • Download URL: mathtranslate-2.3.0.tar.gz
  • Upload date:
  • Size: 44.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for mathtranslate-2.3.0.tar.gz
Algorithm Hash digest
SHA256 02996b45be93defc857035c50a75c02fc0a5140c887a861c278a553f36e4b602
MD5 0a8ca7d1dacdd7e2fe3496eeb4fd7710
BLAKE2b-256 0043b4bfb818da96bcdd99c9c4fbcefdcaea4833c5d5329c36a73696fca2b0aa

See more details on using hashes here.

File details

Details for the file mathtranslate-2.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mathtranslate-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 122112ab01107e57ab25265bfdc1cce04809533676306dcd871aec58eb799c61
MD5 2dba60792bd62434b0179647c64bc4c6
BLAKE2b-256 f117b51b9f0a14b02d4dee99e7bae18d42eba8c596a1b1944649200422e32f50

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page