arXiv LaTeX Translator & Compiler (Modern Solution)
This skill handles the end-to-end workflow of converting an arXiv paper's LaTeX source into a translated PDF on Windows, macOS, and Linux using modern xeCJK and fontspec.
Workflow
0. Pre-flight Dependency Check
Before starting, verify that all required system tools are installed.
- Windows (PowerShell):
Get-Command curl, tar, xelatex, bibtex -ErrorAction SilentlyContinue - macOS / Linux (Bash):
for cmd in curl tar xelatex bibtex; do command -v $cmd >/dev/null 2>&1 || echo "Missing: $cmd"; done
1. Identify & Download
- Extract the ID (e.g.,
2508.11825v2) from the URL or find it via search. - Create a target directory and download/extract the source and the paper pdf (for final check) using native tools (
curl,tar).- Abstract:
https://arxiv.org/abs/xxxx.xxxxx - Source:
https://arxiv.org/src/xxxx.xxxxx - PDF:
https://arxiv.org/pdf/xxxx.xxxxx.pdf
- Abstract:
2. Analyze & Modularize (For Large Papers)
- Read the original
.pdffile to build a mental map. - Modularization Strategy (Crucial for Reliability):
- If the main
.texfile is large (>500 lines), DO NOT use thereplacetool for content translation. It is prone to whitespace/encoding mismatches. - Instead, run the bundled splitter to split the monolithic
.texfile into sub-files by\section(e.g.sections/01_intro.tex,sections/02_related.tex) and rewrite the main file to use\input{sections/xxx.tex}:
Pick the platform CJK font first (Windows:python3 <skill-dir>/scripts/split_tex.py main.tex --cjk-font "Noto Sans CJK SC"Microsoft YaHei; macOS:PingFang SC; Linux:Noto Sans CJK SC). The script is idempotent, never overwrites existing section files, and prints a JSON report — verifysectionsbefore translating. Use--dry-runto preview. - For small files, you may still use
replaceor directly overwrite the file withwrite_file.
- If the main
- Terminology Glossary: Create a local mental glossary of 5-10 core technical terms to ensure consistency.
3. Atomic Translation (Write-File Overwrite)
- Work on Chunks: Translate one sub-file (or one section) at a time.
- Overwrite Mode: Use the
write_filetool to write the fully translated content into the sub-files. This avoids the "string not found" errors common with thereplacetool. - Content Preservation: Rigorously preserve LaTeX commands, math environments, citations, and references.
- Modern Chinese Support (xeCJK):
- Inject
\usepackage{xeCJK}and\setCJKmainfont{Microsoft YaHei}(or platform equivalent) into the main preamble.
- Inject
4. Compile & Auto-Fix
- Use
xelatex -interaction=nonstopmode. - Standard compilation loop:
xelatex->bibtex->xelatexx2. - Missing Package Installation (First Priority): If compilation fails with a
File 'xxx.sty' not foundorLaTeX Error: File 'xxx.cls' not founderror, ALWAYS attempt to install the missing package first before modifying any source file:- Run
tlmgr search --file xxx.styto identify the TeX Live package name. - Run
tlmgr install <package-name>(may requiresudoon macOS/Linux). - If
tlmgris not available or fails, trymktexlsrto refresh the package database. - On macOS with MacTeX, you can also use
sudo tlmgr update --self && sudo tlmgr install <package-name>. - Only after exhausting all installation options should you consider workarounds in source code.
- Run
- Other Error Auto-Fixing: For non-package errors (e.g., undefined commands, syntax errors), read the
.logfile, identify the error line, and fix the corresponding sub-file usingwrite_fileorreplace.
5. Integrity Verification & Archive
- Completeness Check: Verify all sub-files in
sections/are translated. - Visual Check: Compare the translated PDF with the original.
- Standardized Archiving: Move the final compiled PDF to the Obsidian vault at
60_Notes/papers/<Paper_Title>/<Paper_Title>_<LANG>.pdf(e.g.,60_Notes/papers/Attention Is All You Need/Attention Is All You Need_CN.pdf), aligning withnote-summary's structure. - Clean up intermediate files in the working directory.
Guidelines
- Prefer
write_fileoverreplacefor Translation: Overwriting a small, dedicated section file is 100% reliable compared to searching for a literal string in a 20,000-line file. - Font Selection:
- Windows:
Microsoft YaHeiorSimSun. - macOS:
PingFang SC. - Linux:
Noto Sans CJK SC.
- Windows:
- Preserve Template: Use
xeCJKto minimize style interference. - Heredocs: Use single-quoted heredocs in shells to handle backslashes correctly.
Rules
- Read
deeporbit.jsonfrom the workspace root to determine the interaction language. Use this language for all your responses and generated note contents (e.g.zh-CN). The Obsidian folder paths themselves will ALWAYS remain in English. - Set
author: aiin frontmatter for every note you create; switch toauthor: mixedwhen substantially rewriting a human-authored note. Authorship lives in frontmatter only — never add visible badges. - Missing Package — Install First, Never Remove: If
xelatex(orpdflatex) reports a missing.styor.clsfile, you MUST attempt to install the package usingtlmgrbefore considering any source-code modification. The goal is to preserve the original paper's formatting as faithfully as possible. Only if installation is truly impossible (e.g., proprietary journal class not on CTAN) may you apply minimal source-level workarounds, and you must document the reason.- Install workflow:
# 1. Find the package name tlmgr search --file <missing-file.sty> # 2. Install it sudo tlmgr install <package-name> # 3. Refresh the filename database sudo mktexlsr - Common shorthand packages to try first:
texlive-latex-extra,texlive-science,texlive-publishers.
- Install workflow:
- Missing Bibliography Style Fallback: If
bibtexfails with 'I couldn't open style file xxx.bst', first trytlmgr install <bibtex-style-package>. Only if the.bstfile is a custom one bundled with the paper (not on CTAN) should you fallback to\bibliographystyle{plainnat}or\bibliographystyle{unsrt}. - Anti-Destruction Principle: When fixing compilation errors or missing translations, NEVER extract files directly from the original tarball to overwrite existing
.texfiles, as this will destroy previously completed translations. Always inspect differences first. - Large File Handling Strategy: For translating
.texfiles, favor replacing the entire file content usingwrite_fileover piece-meal updates withreplaceto prevent partial translations. - Integrity Verification: Before declaring the task complete, explicitly check the translated document sections to ensure no section or subsection was accidentally reverted or skipped.