docx-formatter-cn
中文 Word 文档智能排版工具 — Markdown 一键转为符合学术规范的 docx
Python Markdown LaTeX Word PySide6
效果预览
由 Markdown 转换生成的 Word 文档示例
功能特性
Markdown → Word
一键将 Markdown 转为符合中文学术规范的 docx,支持标题、段落、列表、表格、图片。
LaTeX 公式
LaTeX 转换为 Word 原生 OMML 公式,可编辑、非图片,支持分数、根号、矩阵等。
三线表
自动生成标准学术三线表,顶线、栏目线、底线粗细可调。
中文字体
SimSun/SimHei + Cambria Math,中英文混排优化,自动首行缩进。
自动编号
标题、图表、公式自动编号,支持目录生成和上标引用 [n]。
模板系统
预设课程论文、毕业论文、数学建模、公文四种模板,支持 JSON/YAML 自定义。
YAML Frontmatter
自动提取 Markdown 文件顶部的 YAML 元数据,渲染为封面页。
GUI + CLI
PySide6 桌面应用支持拖拽文件,CLI 支持批量转换和模板导出。
安装
git clone https://github.com/vajhXajhcv/docx-formatter-cn.git
cd docx-formatter-cn
pip install -e . 快速开始
命令行
# Markdown 转 Word
python -m docx_formatter.cli convert input.md -o output.docx -t 课程论文
# 批量转换
python -m docx_formatter.cli batch input_dir/ -o output_dir/ -t 课程论文
# 修正现有 Word
python -m docx_formatter.cli format input.docx -o output.docx -t 毕业论文 --add-toc Python API
from docx_formatter import convert_markdown_to_docx
with open("论文.md", "r", encoding="utf-8") as f:
md_text = f.read()
convert_markdown_to_docx(md_text, "output.docx", template="课程论文") Markdown 语法支持
- YAML Frontmatter(title / author / date / abstract / keywords)
- 标题、粗体、斜体、下划线、删除线、行内代码
- 行内公式
$...$或\(...\),块级公式$$...$$或\[...\] - 表格(含行内公式)、图片(支持尺寸控制
=WxH) - 上标引用
[n]、超链接[text](url) - 引用块、任务列表、分页符
技术栈
- 公式引擎:自研 MathML → OMML 转换器(基于 lxml)
- Markdown 解析:轻量级手写解析器
- Word 生成:python-docx + lxml 直接操作 XML
- GUI:PySide6
- 测试:pytest + GitHub Actions CI
支持我
如果这个工具帮到了你,欢迎通过爱发电支持我继续创作 👇