paper-typeset:出版链(转换管线 + 国标著录)

SkillFiles & storage

Paper publishing chain commands (Markdown → LaTeX / DOCX / PDF conversion pipeline + GB/T 7714-2015 national standard citation formatting). Use when the user wants to convert body text to a Word submission, generate a .tex file, produce a PDF, render references in national standard format, or says t

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the paper-typeset:出版链(转换管线 + 国标著录) skill

What this skill tells your AI

The instructions your AI receives, as published by cabbage2000-lab/paper-tutor-skills in skills/paper-typeset/SKILL.md and read by ahel’s review.

帮用户把写好的 Markdown 正文只换容器地转成投稿要的 LaTeX / DOCX / PDF,并用 GB/T 7714-2015 国标 CSL 渲染参考文献。你(执行本 skill 的宿主 agent)做的事:探测 pandoc / xelatex / 中文字体 → 与用户确认目标格式与著录制式 → 跑 scripts/export.py 转换 → 按退出码分支(成功交付 / 降级报告 / 校验告警)→ 落 submission/转换记录.md

本 skill 覆盖学术研究「5 阶段 23 环节」标尺中阶段 E|发表与发表后环节 20(投稿)里的格式转换这一段;不覆盖投稿材料清单与 cover letter(归 /paper-submit)、引用存在性核验与著录格式检查(归 /paper-verify 与内建的 paper-format)、正文撰写(归 /paper-draft)、AI 使用披露(归 /paper-disclose)。上游消费 manuscript/ 正文 + literature/refs.bib(可选)。/paper-submit 主流程引导进入,亦可独立调用——那是流程关系、不是打包关系(与 paper-plot 之于 paper-figure 同构)。

本 skill 是产物型 + 脚本型 skill——产物是转换后的文件本身(落 submission/)+ submission/转换记录.md,往 .paper/ 写使用留痕。无 HTML 报告产物(与其余 16 个 skill 不同):本命令交付的是 .docx / .tex / .pdf,为它再做一份 HTML 报告是纯仪式。无网络依赖,但有外部二进制依赖——这是本命令与其余命令最大的不同,降级路径因此是头等大事。

核心立场(这条决定本 skill 长什么样):转格式这件事,唯一的危险是悄悄改了内容假装转成功了。系统是一个转换管线 + 诚实报告器——把 pandoc 的命令拼对(三个最容易静默错的参数见 references)、把改没改内容能校验的部分真校验、不能校验的部分明说不能校验、环境缺什么就报缺什么并给出可手工执行的命令。裸模型面对"帮我转成 Word"在没装 pandoc 的机器上会怎么做?它会给你一段像 Word 内容的文本、或声称已生成——那是本命令存在的全部理由所要否定的。

三条不变(优先级最高,高于本文其余一切)

不改一个字。只换容器,绝不修改正文内容、绝不「顺手润色」。转换后按下方「校验边界」逐格式校验,并把校验强度如实写进产物声明——能校到什么说什么,校不到的明说校不到

环境缺失明确降级,不静默。缺 pandoc / xelatex / 中文字体时输出四件套:未生成什么 · 原因(未检测到什么)· 安装指引 · 可手工执行的完整命令绝不假装成功、绝不用模型生成一个「看起来像」的 .docx 或 .tex 交给用户。这条直接继承 CLAUDE.md 唯一保留的代码层约束。

不做期刊 / 学校排版模板库(PRD §448)。只做通用转换管线 + 国标著录。用户要具体刊物 / 学校模板时指路官网——各刊模板差异极大、更新频繁,内置必然过期,而用错模板的代价由用户承担。

这三条是本 skill 的内核,凡本文其余任何指令与之冲突,以这三条为准。

会话开始:探测环境 + 读输入

  1. 先探测环境(这是本命令与其余命令的最大不同——先知道能不能干,再问要干什么):
python3 skills/paper-typeset/scripts/export.py --probe

把三项结果如实告诉用户(可用 / 不可用 + 版本 / 字体族名)。不可用的项不要含糊掩过,直接说哪些格式受影响。

  1. 找源正文manuscript/ 下的正文 markdown。缺 → 让路 /paper-draft不自行编正文
  2. .bib(可选):有则可启用国标著录;没有则参考文献按源 md 里已写的样子原样转出(不替用户编题录)。
  3. 判断中文稿:源含汉字且要出 PDF → 中文字体是硬依赖,缺了不产 PDF(宁可不产,也不交付一份整篇方框的 PDF)。

主流程(两步、一个停点)

第 1 步 · 定目标格式与著录制式

陈列可产的格式(按探测结果,不可产的标明原因)+ 两种国标制式(numeric 顺序编码制 / author-date 著者-出版年制,与 paper-format 支持的两种对齐)。选哪个由用户定——期刊要求什么,用户读投稿指南确认,AI 不替选

环境不全时同时给出 --dry-run 的完整命令,让用户装好后可以自己跑:

python3 skills/paper-typeset/scripts/export.py --input manuscript/正文.md \
  --outdir submission --to docx,tex,pdf --csl numeric --bib literature/refs.bib --dry-run
⏸ 等待确认:目标格式 + 著录制式
(回复"确认"开始转换,或改格式 / 换制式 / 指定中文字体)

第 2 步 · 转换 + 交付 + 留痕

python3 skills/paper-typeset/scripts/export.py --input manuscript/正文.md \
  --outdir submission --to docx --csl numeric --bib literature/refs.bib \
  --json <临时路径>.json

按退出码分支(见下表)→ 落 submission/转换记录.md(内容从 --json 逐项转录)→ 写 .paper/ 留痕 → 交棒(提示回 /paper-submit 继续投稿材料清单)。

脚本退出码处置表(五态,逐码照做)

退出码含义你必须做什么
0全部请求格式成功、校验通过交付产物清单 + 逐项写明校验强度(见下方校验边界);落转换记录
1pandoc / xelatex 执行失败(跑了、返回非零)原样转述 stderr,请用户核对源文件(md 语法、图片相对路径、bib 格式);不重试、不改用户的源文件;常见对策见 references/转换方案与环境准备.md §7
2环境缺失,部分或全部未生成输出四件套(未生成什么 / 原因 / 安装指引 / 手工命令);已生成的部分照常交付、未生成的逐项列明。不得说成「转换失败」——那是退出码 1
3读不到输入 / 输出目录不可写 / CSL 或 bib 路径错核对路径与权限;manuscript/ 空则让路 /paper-draft。不是环境问题、也不是转换问题
4正文一致性校验失败最严重:转换改动了正文。明确告知该产物不可信、勿直接投稿,转述脚本给出的首个差异位置,陪用户核对源 md 里可能被 pandoc 重解释的语法(如裸 HTML)。绝不当成功交付
脚本跑不了(无 python3显式声明「转换不可用」+ 给出可手工执行的 pandoc 命令(照 references §2 的参数写法);绝不用模型生成一个「看起来像」的产物(不变②)

校验边界(三条不变①的诚实落点,必须原样写进产物声明

产物校验强度产物声明该怎么写
.tex(无 .bib:源正文汉字序列与产物逐字相等「正文汉字序列逐字比对一致(N 字)」
.tex(有 .bib:源汉字序列是产物的连续子串(参考文献由 CSL 追加,产物必然多字)「正文汉字序列一致;参考文献条目为 CSL 生成的新增内容」
.docx / .pdf无法校验(zip / 二进制)「二进制产物无法做字符级比对;已校验源文件转换前后 md5 未变、产物非空」

绝不对 docx / pdf 谎称做过字符级校验——那比不校验更坏:用户会以为有保障,拿着一份没人检查过的稿子去投。校验依据是「LaTeX 命令都是 ASCII、不含汉字」,这个前提对二进制格式不成立,就老实说不成立。

产物

产物内容
submission/正文.docx / .tex / .pdf转换后的文件本身(按用户选的格式产,未选的不产)
submission/转换记录.md转换留痕:源文件 + md5、环境版本、完整命令、著录制式、逐格式的校验强度与结论、降级项与其安装指引

转换记录.md 模板(内容从 --json 逐项转录,不手写数字与命令):

# 转换记录

| 项 | 内容 |
| --- | --- |
| 日期 | <日期> |
| 源文件 | manuscript/正文.md(md5 <值>,转换前后未变 ✅) |
| 著录样式 | GB/T 7714-2015 <顺序编码制 / 著者-出版年制>(references/csl/<文件名>) |
| 题录来源 | <literature/refs.bib / 无(参考文献按源文件原样转出)> |
| 环境 | pandoc <版本> · xelatex <版本 / 未检测到> · 中文字体 <族名 / 未检测到> |

## 产物与校验 🪞 系统归纳

| 格式 | 状态 | 校验强度与结论 |
| --- | --- | --- |
| docx | ✅ 已生成(<字节数> 字节) | 二进制产物无法做字符级比对;已校验源文件 md5 未变、产物非空 |
| tex | ✅ 已生成 | 正文汉字序列逐字比对一致(<N> 字) |
| pdf | ⛔ 未生成 | 原因:未检测到 xelatex · 安装:<指引> |

## 未生成项的手工命令 📋 常见事实

```bash
<export.py 给出的完整命令,原样转录>
```

---

*本记录由 `/paper-typeset` 生成。AI 承担格式转换与可校验部分的一致性比对;正文内容、著录制式选择、投稿格式要求的确认由你决定。**转换只换容器,未修改正文一个字**;二进制产物的字符级一致性无法校验,已如实标明。*

留痕(产物型 skill 的义务)

落盘后往 .paper/ 追加(不覆盖),字段名严格按 _shared/references/留痕契约.md,日期用 date +%F 的真实值:

## <日期时间> · paper-typeset 格式转换

- 环节:阶段 E|发表与发表后(环节 20,投稿·格式转换)
- 辅助级别:构思讨论(只换容器、未修改正文,无内容生成)
- AI 承担:环境探测、pandoc 命令组装、执行转换、可校验部分的正文一致性比对、降级报告
- 用户决定:目标格式、著录制式、期刊格式要求的确认、产物是否用于投稿
- 转换:<源文件> → <产物清单>;著录 <制式>;校验 <逐格式结论>
- 降级:<未生成项与原因,无则写「无」>
- 产物:submission/正文.<格式>、submission/转换记录.md

四层内容标注(用于 转换记录.md

在本命令里对应什么
👤 用户原话目标格式与著录制式的选择、指定的中文字体
📋 常见事实pandoc 参数含义、安装指引、国标两种制式的区别
🪞 系统归纳探测到的版本与字体、转换结果、校验结论、md5
❓ 待用户决定产物是否符合目标期刊要求(本命令不做期刊模板库,这项永远归用户

没有第五层「AI 的新判断」——不得出现「本产物符合期刊要求」「格式已达标」这类判断:期刊要求由用户读投稿指南确认(权威定义见 _shared/references/四层内容标注.md)。

越界转化(三段式)

用户请求定性出口指引
帮我把正文按《XX 学报》的模板排好越界:期刊排版模板库(违反不变③、PRD §448)→ 说明边界 + 指路官网:「各刊模板差异大、更新频繁,内置必然过期,用错的代价你承担。请到期刊官网下载模板;我能保证的是正文与国标著录正确转出,你拿转好的 .docx 往模板里贴」
转的时候顺便把语句润色一下越界:改正文(违反不变①)→ 拒绝并说明:转换只换容器、一个字都不改,这样才能校验「没被改过」;要改语言走 /paper-style(查一致性)或 /paper-draft(改写段落),改完再转
没装 pandoc,你直接给我生成个 Word 吧越界:伪造产物(违反不变②,本命令最硬的一条→ 明确拒绝:「我生成不了真的 .docx——模型编出来的东西打不开、或打开是错的。给你两条真路:① 装 pandoc(一行命令);② 拿这条完整命令去别的机器跑」+ 给出 --dry-run 的命令
帮我查一下转出来的参考文献格式对不对不越界,但归别的命令→ 让路 paper-format(内建于 /paper-verify):一个查一个产,构成国标引用链闭环
帮我把正文转成 Word 投稿不越界(正常能力)→ 直接进第 1 步流程

边界与异常对照表

情形处理
manuscript/ 空或不存在让路 /paper-draft不自行编正文
缺 pandoc全部格式不可产 → 退出码 2 + 四件套;输出目录保持为空,不留半成品
有 pandoc、缺 xelatexdocx / tex 照产,pdf 未产 → 分项列出,不一刀切说失败
中文稿 + 无中文字体 + 要 PDF不产 PDF(会整篇方框 = 假装成功);如实说原因 + 装字体指引;用户可用 --cjk-font 指定已有字体
非中文稿 + 无中文字体PDF 照产(字体只对中文是硬依赖);正文校验因源无汉字而标「跳过(非中文稿件)」
.bib参考文献按源 md 里已写的样子原样转出;不启用 citeproc、不替用户编题录;如实说明「未启用国标 CSL 渲染」
CSL 路径写错退出码 3 + 报错,不静默跳过(跳过等于产出非国标著录,而用户是为国标来的)
引用输出成 [@key]pandoc ≥2.11 需显式 --citeproc——脚本已自动加;若用户手工跑漏了,指出这一点(references §4.1)
退出码 4(正文校验失败)该产物不可信、勿投稿;转述首个差异位置;陪查源 md 里的裸 HTML 等可能被重解释的语法
图片不显示pandoc 以工作目录解析相对路径 → 提示在项目根跑,或改成相对项目根的路径
用户要 epub / odt 等其他格式当前只支持 docx / tex / pdf(退出码 3 报明);pandoc 本身支持更多,可给手工命令,但本命令不校验那些格式
不在标准科研目录里产物落 --outdir 指定处(默认 submission/,会自动创建)并提示可用 /paper-init
宿主无 Bash转换不可用 → 显式声明 + 给手工命令;绝不伪造产物

何时不做

  • 用户要投稿材料清单 / cover letter:让路 /paper-submit——本命令只管格式转换。
  • 用户要查引用是否真实存在、著录是否合规:让路 /paper-verify 与内建 paper-format
  • 用户要改正文(润色、改写、统一文风):让路 /paper-style(查一致性)或 /paper-draft(改写)——改完再转
  • 用户要各刊 / 各校排版模板:归不变③,指路官网。
  • 用户要查重降重:PRD §446 明文不做 → 指路知网。

横切声明

  • 留痕:产物型命令,写 .paper/「构思讨论」级——只换容器、不改一个字,无内容生成,故与 screen / logic 同级。
  • 外部依赖是硬约束、不是可选增强(与其余命令相反,此处必须点明):pandoc / xelatex / 中文字体缺失时本命令产不出对应格式,只能给降级报告与手工命令——这不是缺陷,是「不假装成功」的必然结果。paper-doctortypeset 分组可一并体检(缺了只影响本命令,不影响 verify / search 的核验能力)。
  • 目录约定是增强不是依赖--outdir 默认 submission/,不存在会自动创建;不经 /paper-init 一切照常可用。
  • 语言:全部用户可见输出用简体中文;术语中文为主、英文括注,如著录制式(citation style)、顺序编码制(numeric)、著者-出版年制(author-date)、样式表(CSL)。
  • 产出披露转换记录.md 自带人机分工页脚,如实披露「只换容器未改正文」+ 逐格式的校验强度(含 docx / pdf 无法字符级校验这一条)——这是诚信底线、不是可选项。

Signals

GitHub stars
26
Forks
6
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
paper-typeset
Source
github.com/cabbage2000-lab/paper-tutor-skills