mcpField
N
nature-paper2word

nature-paper2word

github.com/yuan1z0825文档处理51.2k127 次安装今天更新
代码仓库

关于 nature-paper2word

nature-paper2word 是用于将 Markdown 稿件整理并导出为格式化 Word 文档的技能,面向论文作者。它涵盖稿件校验、格式选择、转换及与指定规范的核对。

主要功能

  1. 01Markdown 稿件契约与预检
  2. 02内置 zh-academic 和 en-nature 预设
  3. 03从 Word 模板生成格式要求
  4. 04引用、公式、图表格式处理
  5. 05带审计的 DOCX 导出及可选 PDF 校验

适用场景

  1. 01按期刊或学校规范排版稿件
  2. 02将结构化 Markdown 稿件转为 Word
  3. 03导出前检查稿件结构
  4. 04应用引用和交叉引用设置

安装

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

$npx skills add https://github.com/yuan1z0825/nature-skills --skill nature-paper2word

安装后在 Claude Code 中输入/nature-paper2word确认已加载。

包含的文件

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

manifest.yaml
README_EN.md
README.md
UPSTREAM-LICENSE.txt
agents/
openai.yaml

详细介绍

Markdown → 合规 Word

此文件是路由器。引擎具有确定性:相同的稿件和相同的格式要求始终会生成字节完全一致的 .docx。不要用手写的 python-docx 脚本替代;请运行已安装的流水线。

首次导出前,请先确认引擎可用:md-to-word --version 必须能输出版本号。此技能仅提供文档;如果找不到该命令,请使用 pip install md-to-word-docx 安装,然后再次运行检查。

完整词汇表位于软件包内的手册中,不在此处。md-to-word --contract 会输出其绝对路径(根据稿件语言提供中文或英文版本)。以下内容均为工作顺序;所有写法都应查阅手册。

1. 先确定场景

场景用户的说法操作
期刊或学校规范“按 Nature/我的大学的要求排版”获取目标 .docx 模板或书面规范,然后编写要求文件。
已有要求“使用我们实验室的规范文件”使用 -r 指定该文件。
基础导出(未明确指定规范)“把这个转换成 Word 文件”按照规范整理稿件,然后使用内置预设导出。该预设是完整有效的格式,而非临时默认值。

用一行说明所选预设或要求文件的路径,然后继续。未使用 -r 时,只会读取稿件旁边名称恰好为 format.txt 的文件;不会猜测其他 .txt 文件(如果存在此文件,运行时会在提醒中注明)。如果没有 format.txt,预设将根据稿件的语言选择:中文稿件使用 zh-academic,其他稿件使用 en-nature。运行时会报告所用预设。

没有任何路径可以接收任意 Markdown 并直接返回完成的文档:预设只提供格式,不会补充缺失的结构。如果稿件不符合规范,预检会指出行号并停止,而不会生成一份看似合格、实际却从未映射其格式的文档。

2. 让稿件符合输入规范

来源可以是粘贴的文本、.txt、.md、旧版 .docx 或 PDF。先将其规范化为 Markdown; 切勿直接修改用户的原始文件。

  • 标题:使用 #、##、###,连续且不跳级;带有自身编号(1.、2.1)的标题,需要根据编号的层级数使用相应数量的 #。
  • 段落样式:以 %% 开头的行会设置该段落的样式 — %% Abstract …、%% Table Caption **Table 1** …、%% Image Caption Figure 1 …。 一行就是一个段落,以空行结束,不需要闭合标记。样式名称须来自封闭列表(手册 §3.4),中英文均可;标题级别只能通过 # 设置。
  • 标题、作者、摘要、关键词应作为正文中的样式行,而不是 YAML — 它们在页面上的位置由作者决定,而 YAML 没有位置。预检会拦截这些键,并给出应改写的准确行。
  • 段落:一行就是一个段落;连续的行永远不会合并,因此由简短的单句段落组成的文件已经符合要求。若要在一个段落内换行(如地址、诗句、长标题),请在行尾加反斜杠或两个空格 — 这会在同一段落内换行。疑似因自动换行产生的问题会以分组警告报告,并附上行号。
  • YAML 仅存放与位置无关的配置:bibliography:、csl:、crossref:、link-citations:。
  • 公式:独占一行,格式为 $$...$$ {#eq-name},引用时写作 @eq-name。中文稿件使用「式/图/表」前缀和(1)编号,英文稿件使用 Equation/Figure/Table 和 (1)。如需按章节编号,请添加 crossref: chapters: true。不允许使用 \tag{}。
  • 引文:括号式引用使用 [@key],叙述式引用使用 @key,并通过 bibliography: + csl: 指定来源。稿件开始引用文献后,必须提供 .bib 文件;不支持手写参考文献列表,且没有 bibliography: 时,[@key] 会按原样打印。
  • 图和表:使用 ![](path/img.png){width=13cm},并将题注单独放在 %% Image Caption / %% 图片题注 段落中;表格题注放在表格上方,注释放在下方。不要给图片添加 {#fig-...} 标签。列宽由分隔行中短横线的长度决定。
  • 块标记(共三个,各自独占一行,前后均须空行):{{< pagebreak >}}、 {{< toc >}}、{{< section page_number=lowerRoman start=1 >}}(中文参数 页码= 起始= 也可使用)。section 标记会关闭其上方的章节;切勿在其旁添加分页符。
  • 不支持的 Markdown 会被拦截并提供替代写法,不会按原样打印:HTML 标签、--- 分隔线、==== 标题、定义列表、- [ ] 复选框、外侧没有竖线的表格、嵌套引用块、 全角 %%、四空格缩进的代码块、列表项中的第二个段落、==highlight==、 [text]{.class}(.underline 除外)、\(...\) 行内公式,以及百分比图片宽度({width=60%} — 请改用绝对长度)。

3. 选择或构建格式要求

  1. 从零开始 — md-to-word init 会写入完整的预设副本,以及一份可直接导出的单页 手稿。
  2. 内置预设 — zh-academic 或 en-nature。用户未提供详细规范时,直接使用。
  3. 复制并编辑预设 — 仅更改用户提到的行。字段顺序固定为:字体、字号、粗体、斜体、 对齐方式、行距、段前间距、段后间距、缩进。每条样式行都必须完整;缺少字段会报错。
  4. 逆向分析目标 .docx — md-to-word-template target.docx -o format.txt,然后 查看草稿末尾的“待确认”列表。

每个属性都只有一种可接受的写法(共两种:规范中文和英文形式);其他写法都会报硬错误并指出行号。完整表格:手册 §3.1。样式名称:§3.4。预设是参考示例 — md-to-word --contract 会打印其路径。

在全文中,format.txt 指格式要求文件 — 可使用任何路径,-r 接收该文件。

引文样式由 csl: 指定,可填写捆绑文件名(手册 §7),也可填写用户自己的 CSL 文件路径。未指定 csl: 时,中文手稿使用 GB/T 7714 数字制,其他手稿使用 APA 第 7 版。导出时会规范化用户提供的 CSL,因此同一份要求文件始终会生成相同版式。

4. 导出

在手稿所在目录运行已安装的命令:

md-to-word manuscript.md -o manuscript.docx
md-to-word manuscript.md -r format.txt -o manuscript.docx
md-to-word --contract          # contract + paths to the manual and presets

整个流程依次执行:预检验证 → 样式模板生成 → 手稿模型构建 → OOXML 写入 → 编号完整性检查 → 根据要求文件逐行审核。

5. 如何理解各道检查关卡

分为两个级别,依据是“错误之后是否会显现”:

  • 阻断错误 — 后续会静默出错:内容丢失、语法被原样打印、格式未映射、标题写在 YAML 中、图注写在图片方括号内。请修复报告指出的行;不要使用 --no-check,它也会关闭阻断检查关卡。
  • 警告 — 错误可见但不符合规范:图片宽于文本区域(会被限制宽度)、图注离对应插图过远、跳过标题级别、章节标记后出现分页符、疑似自动换行。同类警告会合并为一行(最多列出八个行号,之后显示数量)。

如果需要以程序方式读取结果,请添加 --json:stdout 随后会输出一个 JSON 对象 — ok、returncode、input、output、pdf、lang、messages、errors — 进度信息和提醒则输出到 stderr。键名固定;键中的句子会使用手稿的语言,提醒会列在 messages 中。

退出代码:0 表示通过所有检查关卡;1 表示手稿、检查关卡或依赖项存在问题;2 表示用法错误(标志错误或缺少参数);3 表示已写入 .docx,但已跳过可选的 --pdf 校对(非 macOS)。消息会使用手稿的语言。如果格式似乎未生效,请添加 --verbose。

6. 交付前验证

  • 确认 .docx 文件存在,且命令以 0 退出。
  • 报告所应用的预设或要求文件、引文样式,以及运行时发出的任何警告。
  • 明确说明版式仍需在 Word 中手动检查。引擎会验证文本和结构;行高、列宽以及公式和图注的最终位置,只有在实际渲染器中才能看到。
  • 如果文档包含目录、{style-title} 标题或按章节编号的页码,请使用 --pdf 运行一次(需在装有 Word 的 macOS 上)— 这是展开域的唯一方式 — 并抽查首页、最宽的表格、公式密集的页面以及参考文献。

7. 边界

  • 不支持自定义封面、合并单元格、多栏文本、行内文字颜色或文字环绕的图形。先导出正文,再在 Word 中完成这些内容。
  • 仅支持公式交叉引用({#eq-x} + @eq-x);图和表的编号需手动输入到题注中。
  • 编号公式中的求和与积分上下限会显示在符号右侧(Word 仅在独立公式中将上下限置于符号上方和下方)。内容和符号均正确,只是排版不同。
  • 目录页码和章节标题是 Word 域;Word 会询问是否更新一次。 完整说明:手册 §6(上下限)和 §8(症状 → 修复)。

8. 相关技能

此技能用于编译手稿;以下技能涵盖其前后相关步骤。请交由这些技能处理,而不要重新实现:

技能涵盖内容
nature-writing撰写手稿及其章节层面的论证(此技能的输入)
nature-polishing语言润色和学术表达(此技能的输入)
nature-citation搜索和导出参考文献条目(RIS / ENW / Zotero RDF);从参考文献管理器导出 BibTeX,供此技能读取 .bib 文件
nature-ref-verifier投稿前交叉核对参考文献元数据
nature-paper2ppt将同一份手稿转换为演示文稿

上游引擎、通用 pip 软件包和更新日志: md-to-word。

评论

支持 Markdown