mcpField
A
arxiv-paper-translator

arxiv-paper-translator

github.com/yrom文档处理55462 次安装35 周前更新
代码仓库

关于 arxiv-paper-translator

arxiv-paper-translator 是将 arXiv 论文 LaTeX 源文件译为中文并编译成 PDF 的技能。它涵盖术语整理、译文审查和 XeLaTeX 编译,也可生成技术报告。

主要功能

  1. 01下载并提取 arXiv LaTeX 源文件
  2. 02保留结构翻译叙述性内容
  3. 03翻译前整理术语背景
  4. 04检查译文完整性与 LaTeX 语法
  5. 05配置 CJK 支持并编译 PDF
  6. 06可生成技术报告

适用场景

  1. 01将 arXiv 论文制作为中文 PDF
  2. 02检查译文完整性和 LaTeX 问题
  3. 03随译文生成技术摘要

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yrom/arxiv-paper-translator --skill arxiv-paper-translator

安装后在 Claude Code 中输入/arxiv-paper-translator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
Makefile.template
report_template.md
references/
chinese_support.md
review_checklist.md
summary_prompt.md
translation_guidelines.md
translation_prompt.md

详细介绍

arXiv 论文翻译器

通过下载 LaTeX 源文件、在保留结构的同时翻译内容,并生成附带技术报告的译文 PDF,翻译 arXiv 论文。

工作流概览

  1. 下载并解压 - 从 arXiv 获取 LaTeX 源文件
  2. 翻译 - 按照 LaTeX 专用规则,将英文叙述内容翻译成中文
  3. 审核阶段 - 编译前必须完成
  4. 支持 CJK 并本地化标签 - 添加 xeCJK,本地化标签
  5. 编译 .tex 文件 - 使用 XeLaTeX 生成译文 PDF
  6. 报告 - 创建技术摘要文档

前置条件

检查本地是否安装了 xelatex:

xelatex --version

如果未安装,请确保 Docker 已安装且可用。

docker --version

此技能需要 XeLaTeX 来编译译文 PDF。如果本地未安装,将改用 Docker。

建议使用 xu-cheng/latex-docker Docker 镜像。

例如,Tex Live 完整发行版(仅限 linux/amd64):

# NOTICE: ghcr.1ms.run is a mirror of ghcr.io.
docker pull ghcr.1ms.run/xu-cheng/texlive-debian:20260101 --platform linux/amd64
# => docker pull ghcr.io/xu-cheng/latex-debian:20260101 --platform linux/amd64

如果本地既未安装 XeLaTeX,也未安装 Docker,则停止尝试运行此技能。 并向用户提问:“编译译文 PDF 需要 XeLaTeX 或 Docker。你想使用哪一个?我可以帮你完成设置。”

步骤 1:下载 LaTeX 源文件

从用户输入中提取 ARXIV_ID。

从 arXiv 下载并解压源代码:

# Download LaTeX source (replace ARXIV_ID with user-specified paper ID)
ARXIV_ID="2206.04655"
mkdir -p arXiv_${ARXIV_ID}
wget -q https://arxiv.org/e-print/${ARXIV_ID} -O arXiv_${ARXIV_ID}/paper_source.tar.gz
mkdir -p arXiv_${ARXIV_ID}/paper_source
tar -xzf arXiv_${ARXIV_ID}/paper_source.tar.gz -C arXiv_${ARXIV_ID}/paper_source

验证解压结果:

# List files to understand structure
tree arXiv_${ARXIV_ID}/paper_source

步骤 2:翻译 LaTeX 文件

重要:翻译前,请阅读 references/translation_guidelines.md 了解详细规则。

翻译工作流

步骤 2.1。复制所有文件,从 paper_source/ 复制到 paper_cn/:

选项 1 - 使用 cp(标准方式):

cd arXiv_${ARXIV_ID}
mkdir -p paper_cn
cp -r paper_source/* paper_cn/

选项 2 - 使用 rsync(更适合增量同步):

cd arXiv_${ARXIV_ID}
mkdir -p paper_cn
rsync -av paper_source/ paper_cn/

之后将在 paper_cn/ 中原地翻译所有 .tex 文件。

步骤 2.2. 收集上下文(必须执行):

进行任何翻译之前,必须提取:

  1. 论文标题:从主文件中的 \title{...} 提取
  2. 摘要:从主文件中的 \begin{abstract}...\end{abstract} 或 \abstract{...} 提取
  3. 论文结构:列出所有章节以及各章节所在的 .tex 文件
  4. 关键术语:根据论文内容建立术语表

对于不确定如何翻译的词汇表或术语,可以向用户询问其定义。

翻译任务必须包含这些信息。

请阅读 references/translation_prompt.md 获取提示词模板。

步骤 2.3. 分派翻译任务

确定要翻译的文件:

  • 找到主文件(包含 \documentclass{...},通常为 main.tex、paper.tex、template.tex 等)
  • 筛选出需要翻译的 .tex 文件(跳过仅包含宏的文件(如有)或用户指定的文件)
  • 创建待翻译文件列表

翻译策略:

  1. 先翻译主文件(按顺序执行)

    • 建立共享术语上下文
    • 确保其他文件保持一致
  2. 翻译其他文件:

    • 文件数为 3 个或以上:并行分派
    • 文件数为 1 至 2 个:按顺序翻译

每项翻译任务:

  • 任务类型:通用子 Agent
  • 输入:paper_cn/ 目录中的文件路径
  • 操作:读取文件 → 翻译 → 编辑文件(用译文更新文件内容)
  • 必须遵循 references/translation_prompt.md
  • 必须使用已收集的上下文(标题、摘要、结构、术语)

查找主 .tex 文件的示例命令:

find paper_cn/ -name "*.tex" -exec grep -l '\\documentclass' {} \; | head -1

步骤 3:审校翻译

完成所有翻译任务后,必须按照 references/review_checklist.md 审校译文,以确认:

  1. 文件完整性检查
  2. LaTeX 命令拼写检查
  3. CJK Catcode 问题检查
  4. 翻译质量检查
  5. 内容抽查

根据审校结果酌情修正。

重要:开始步骤 4 之前,必须确认:

  • 已完成所有审校检查
  • 已识别并修复所有问题
  • 已确认翻译质量

步骤 4:添加中文支持

重要:按照 references/chinese_support.md 配置 CJK 字体并本地化标签。

修改主 .tex 文件,加入 xeCJK 宏包并设置 CJK 字体。

例如,使用 Fandol 字体(TexLive Docker 镜像中包含该字体):

\usepackage{xeCJK}
\setCJKmainfont{FandolSong}[ItalicFont=FandolKai]  % 宋体 - 正文,\emph 用楷体
\setCJKsansfont{FandolHei}    % 黑体 - 标题、\textsf
\setCJKmonofont{FandolFang}   % 仿宋 - 代码、\texttt

如果在本地运行,请先询问用户的字体偏好,再进行配置。使用 fc-list :lang=zh family 检查可用字体。

步骤 5:编译译文 PDF

选项 1:本地 XeLaTeX
# Basic compilation
xelatex main.tex

# If paper has bibliography (recommended approach)
xelatex main.tex
bibtex main
xelatex main.tex
xelatex main.tex

也可以使用 latexmk 自动编译:

latexmk -xelatex main.tex
选项 2:使用 TeX Live 的 Docker
# change working directory to arXiv_${ARXIV_ID}
cd /path/to/arXiv_${ARXIV_ID}
docker run --rm \
  -v "$(pwd)/paper_cn":/workspace \
  -w /workspace \
  ghcr.1ms.run/xu-cheng/texlive-debian:20260101 \
  latexmk -xelatex main.tex

步骤 6:生成技术报告

如果用户需要技术摘要,请按照 references/summary_prompt.md 调用子 Agent,使用 assets/report_template.md 创建技术摘要。

保存报告:arXiv_${ARXIV_ID}/technical_report.md

最终交付物

  1. 译文 PDF:paper_cn/<main-file>.pdf
  2. 技术报告:arXiv_${ARXIV_ID}/technical_report.md
  3. TeX 源文件:包含所有已翻译 LaTeX 文件的 paper_cn/ 目录

常见问题与解决方案

问题解决方案
下载的文件是单个 .tex 文件,而非 .tar.gz执行 mv paper_source.tar.gz paper_source.tex 并创建目录
主文件不叫 main.tex执行 find . -name "*.tex" -exec grep -l "\\documentclass" {} \;
编译因编码错误而失败使用 file *.tex 检查,并使用 iconv -f ISO-8859-1 -t UTF-8 转换
命令拼写错误(例如 \footnotext)参见审校清单步骤 2:对比命令集合以查找拼写错误
未定义的控制序列 - \xmax概率xeCJK catcode 问题:插入 {},将自定义宏与 CJK 文本分隔开 → \xmax{}概率
未定义的控制序列 - \chinese{弋}原文使用 CJK 宏包的 \chinese 宏;在 xeCJK 配置之后添加 \newcommand{\chinese}[1]{#1},以避免 catcode 问题
自定义 .sty/.cls 文件复制到 paper_cn/,并检查是否包含硬编码的英文文本
翻译后的表格中出现 Missing $ insertedCJK 字符与拉丁字符混排可能导致 xeCJK 字体切换错误(例如将 (xyz) 视为数学模式);恢复表格单元格中的原始内容
未定义的引用(例如 \ref{fig:joint-train})确保 paper_cn/ 中包含所有被引用的文件,即使这些文件没有翻译。

参考资料

评论

支持 Markdown