Install
openclaw skills install @sedey999/math-docx-typeset学术文稿公式排版 → docx:把含 LaTeX 公式的论文/推导转成 Word 原生可编辑 OMML 公式 docx(主交付),可选生成图片对照版附件(由使用者自选)。当用户说“生成 docx / 论文转 Word / 公式排版 / 推导转可编辑公式 / 写论文 docx”时启用。
openclaw skills install @sedey999/math-docx-typeset主交付:docx 文档,公式一律为 Word 原生可编辑 OMML 对象(双击可改)。用户本地打开 Word/WPS 核对后另存为 PDF,矢量高清无模糊。 附件模式:--image-variant 生成图片对照版 docx(块公式为 PNG),由使用者自选比对,不替代主文档。 本 skill 所有 reference 文件均为相对路径引用,跨平台安装即用。
输入文稿文本
→ GB/T 15834 引号预处理(仅"含汉字的引号"转弯引号)
→ 识别行内公式 $...$ / 块居中公式 $$...$$
→ LaTeX 语法校验(大括号成对、上下标边界、算子命令拼写)
→ LaTeX → MathML → OMML(含质量校验,拦截未知命令被静默当文本)
→ 将 OMML 原生公式对象写入 docx 文档
实现脚本:scripts/latex2docx.py(沙箱已全链路实测:行内公式、块公式居中、矩阵、数域、cases、align 多行、\tag 编号、降级预案、引号修正、图片对照版附件均通过)。
完整规范:读取 references/formula-rules.md。要点:
\mathbb{R}、复数域 \mathbb{C}、自然数 \mathbb{N}\partial、梯度 \nabla、拉普拉斯 \Delta、无穷 \infty;不等号学术论文标准写法用 \le、\ge,不用 <=、>=\int_{a}^{b}、多重积分 \iint / \iiint;求和 \sum_{i=1}^{n}、乘积 \prod_{i=1}^n\boldsymbol{x}、矩阵大写粗体 \boldsymbol{A};矩阵优先方括号 \begin{bmatrix} ... \end{bmatrix}\begin{align} ... \end{align},& 作对齐标记(脚本会自动拆行逐行居中)\tag{数字}OMML 路线天然免疫大部分"方块"问题(公式由 Cambria Math 渲染)。完整方案:读取 references/font-strategy.md。要点:
\begin{} 环境(矩阵 / cases)——不可用时标注"图片对照不可用"| 输入类型 | 处理 | 详见 |
|---|---|---|
| 已含 LaTeX 的文稿 | 直接进主链路 | references/transcription.md §4 |
| 截图 | OCR + 视觉 read 先转成 LaTeX(符号逐个查 references/symbol-table.md),再进主链路 | references/transcription.md §1 |
| 口述描述 | 自然语言映射为 LaTeX 再进主链路 | references/transcription.md §2 |
| 乱码文本 | 排查编码,无法恢复按截图流程重做 | references/transcription.md §3 |
{} 成对、上下标边界正确、算子命令拼写无误、无语法错误(自检清单见 references/transcription.md)。--image-variant),由使用者自选比对。文件已生成 docx。请本地打开 Word/WPS 核对全部数学公式;确认无误后另存导出 PDF,即可得到矢量高清无模糊的论文 PDF。
# 依赖(首次)
pip install latex2mathml mathml2omml python-docx matplotlib
# 转换(默认:宋体、12pt 小四、1.5 倍行距、块公式居中、GB/T 15834 引号修正)
python scripts/latex2docx.py 输入文稿.md 输出.docx
# 自定义排版参数
python scripts/latex2docx.py 输入文稿.md 输出.docx --font 黑体 --size 10.5 --leading 1.25
# 同时生成图片对照版附件(块公式为 PNG,自选比对)
python scripts/latex2docx.py 输入文稿.md 输出.docx --image-variant
# 产出:输出.docx(主,OMML 原生公式)+ 输出-图片对照版.docx(附件,PNG 公式对照)
脚本自动完成:GB/T 15834 引号修正 → 块公式 / 行内公式识别 → LaTeX→MathML→OMML(含质量校验)→ docx 写入 → 转换报告(成功数 / 降级数 / 降级清单)。
当 LaTeX-OMML 转换链路执行失败(含未知命令被静默当文本的质量校验失败),主文档处理:
图片对照版对应处理:matplotlib 渲染失败(含 CJK 或不支持的 \begin{} 环境)时,标注【图片对照不可用(含中文或暂不支持的命令),请以主文档公式为准】,保留 LaTeX 原文。
\hbar、矩阵(bmatrix)、cases 分段、align 多行(自动拆行)、\tag 编号、\mathbb 数域、\boldsymbol 粗体、\text{中文}\fraz)、裸 & ... \\ 多行语法(必须包在 align 环境内)、physics 等扩展包命令\text{且})和 \begin{bmatrix}/cases 等环境(mathtext 不支持)→ 标注"图片对照不可用"references/font-strategy.md §二做了三类场景对照