skills/do.arxiv-translator/SKILL.md
Automatically downloads LaTeX source from arXiv, translates it to a target language (default Chinese), and compiles it to PDF using xelatex. Uses modern xeCJK for multilingual support. Trigger when the user provides an arXiv URL, paper ID, or natural language query about an arXiv paper and wants it translated/compiled.
npx skillsauth add dull-bird/deeporbit do.arxiv-translatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
Before starting, verify that all required system tools are installed.
Get-Command curl, tar, xelatex, bibtex -ErrorAction SilentlyContinuefor cmd in curl tar xelatex bibtex; do command -v $cmd >/dev/null 2>&1 || echo "Missing: $cmd"; done2508.11825v2) from the URL or find it via search.curl, tar).
https://arxiv.org/abs/xxxx.xxxxxhttps://arxiv.org/src/xxxx.xxxxxhttps://arxiv.org/pdf/xxxx.xxxxx.pdf.pdf file to build a mental map..tex file is large (>500 lines), DO NOT use the replace tool for content translation. It is prone to whitespace/encoding mismatches..tex file into sub-files by \section (e.g., sections/01_intro.tex, sections/02_related.tex)..tex file to use \input{sections/xxx.tex}.replace or directly overwrite the file with write_file.write_file tool to write the fully translated content into the sub-files. This avoids the "string not found" errors common with the replace tool.\usepackage{xeCJK} and \setCJKmainfont{Microsoft YaHei} (or platform equivalent) into the main preamble.xelatex -interaction=nonstopmode.xelatex -> bibtex -> xelatex x2.File 'xxx.sty' not found or LaTeX Error: File 'xxx.cls' not found error, ALWAYS attempt to install the missing package first before modifying any source file:
tlmgr search --file xxx.sty to identify the TeX Live package name.tlmgr install <package-name> (may require sudo on macOS/Linux).tlmgr is not available or fails, try mktexlsr to refresh the package database.sudo tlmgr update --self && sudo tlmgr install <package-name>..log file, identify the error line, and fix the corresponding sub-file using write_file or replace.sections/ are translated.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 with note-summary's structure.write_file over replace for Translation: Overwriting a small, dedicated section file is 100% reliable compared to searching for a literal string in a 20,000-line file.Microsoft YaHei or SimSun.PingFang SC.Noto Sans CJK SC.xeCJK to minimize style interference.deeporbit.json from 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.xelatex (or pdflatex) reports a missing .sty or .cls file, you MUST attempt to install the package using tlmgr before 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.
# 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
texlive-latex-extra, texlive-science, texlive-publishers.bibtex fails with 'I couldn't open style file xxx.bst', first try tlmgr install <bibtex-style-package>. Only if the .bst file is a custom one bundled with the paper (not on CTAN) should you fallback to \bibliographystyle{plainnat} or \bibliographystyle{unsrt}..tex files, as this will destroy previously completed translations. Always inspect differences first..tex files, favor replacing the entire file content using write_file over piece-meal updates with replace to prevent partial translations.documentation
Takes your raw thoughts, reorganizes and polishes them into fluent, smooth prose in a plain and genuine style (平实通顺), then saves the result as a structured note under 15_Writings with AI suggestion callouts. Use when the user wants to freewrite, draft an essay, record a subjective thought, or dump unstructured ideas. Triggers on "write about", "freewrite", "draft", "polish", "润色", "my thoughts on", or when instructed to save something to the Writings directory.
documentation
Translate documents smartly. Accepts a URL or a PDF file as input. Detects if it is an arXiv URL or paper. If yes, runs do.arxiv-translator. If it is a standard PDF, runs do.pdf-to-markdown followed by do.translate-markdown.
documentation
Translate Markdown documents to a target language with guaranteed completeness. Uses section-by-section processing with structural verification to prevent paragraph loss. Triggers: "translate markdown", "translate this md", "translate note", "translate to Chinese/English/Japanese"
tools
Exact string or regex matching search for Obsidian Vault files