paper-translatorlisted
Install: claude install-skill obenic/paper-translator
# 文献翻译
把学术论文 PDF 译成中文,**图文完整**,同时产出 Markdown 与 PDF。
流程图见 [`docs/pipeline.drawio`](D:/skills/paper-translator/docs/pipeline.drawio),预览/可编辑导出见 [`docs/pipeline.drawio.png`](D:/skills/paper-translator/docs/pipeline.drawio.png)。2026-09-11 已将流程图改为“阶段语义 + 用户决策”视图,并完成第二轮几何优化:框内不再列具体 Python 脚本名,重点展示 Word 满意度、图片交叉验证选择、整图/面板分支和最终 Markdown + PDF 交付;节点尺寸、边框和颜色已统一。
## 铁律:论文 = 正文 + 图
只提取文本层,你会交付一份**看起来完整、实际残缺**的译文——图注翻译得再好,读者也看不到图。
这不是假设,是本 skill 的成因:一篇 24 页论文,正文 20 页有文本层,图 1–4 单独占第 21–24 页。文本提取一切正常、零报错、零缺页,图却一张都没进译文。
PDF 里的图有三种形态,文本提取全都拿不到:
| 形态 | 为什么会漏 |
|------|-----------|
| 独立整页图 | 该页文字量≈0,但整篇不是扫描件,"扫描件检测"放行 |
| 正文页内嵌图 | 该页文字量正常,看不出异常 |
| 矢量绘制图表 | `get_images()` 返回 0 张,栅格图检测完全失效 |
`extract_paper.py` 三种都检测,并做**图数量交叉校验**:正文引用了 Fig.1–4,就必须产出 4 张图。**对不上时脚本 exit 3 并告警——不要在告警未解决前开始翻译。** 面板切分与图片交叉验证是另一件事:它只在用户同意后执行;用户跳过时保留整张图,仍要把整张图放回译文对应位置。
## 流程
**先把 `$SK` 指对,否则后面每条命令都会 `No such file`。** `$SK` 是本 skill 的**真实目录**——放着 `*.py` 的那个:
```bash
SK=~/.claude/skills/paper-translator # 常见位置(全局安装)
ls "$SK"/*.py >/dev/null 2>&1 || echo "SK 不对:该目录没有脚本"
```
那一行检查不能跳。有些安装方式下 `~/.claude/skills/<name>/` 里**只有 `SKILL.md`**,是一个指向别处的注册桩;此时把 `$SK` 换成桩正文里写明的真实路径(例如本体放在别的盘)。PowerShell 用 `$env:USERPROFILE` 代替 `~`。
**再把 `$PY` 指对,否则依赖装了也会报一串 MISSING。** `$PY` 是**装了本 skill 依赖的那个解释器**,未必是裸 `python`:
```bash
PY=python # 多数情况够用
echo "${VIRTUAL_ENV:-<none>}" # 有值 = 当前在 venv 里,裸 python 就是 venv 那个
```
`$VIRTUAL_ENV` 有值时**先别信裸 `python`**:venv 默认 `i