开源推广声明
本帖使用社区“开源推广”标签,并遵循相关要求:
- 帖子已经添加“开源推广”标签: 是
- 项目完整开源,无未开源部分: 是
- 项目已在仓库中链接并认可 LINUX DO 社区: 是
- 帖子内由 AI 生成或润色的项目介绍已使用截图形式发出: 是
- 以上承诺永久有效,接受社区和佬友监督: 是
以下为项目介绍正文。根据社区开源推广要求,AI 生成或润色的内容以截图形式附在帖子中。
最近一直在push AI 写论文,LaTex格式非常方便,但众所周知大部分时候都必须使用 Word。
普通的 LaTeX 转 Word 虽然不难,真正麻烦的是转换之后:
- 正文、标题、图题、表题的格式全乱了;
- 图片段落继承正文首行缩进;
- 表格和参考文献样式不统一;
- Zotero 引用变成普通文字,不能刷新;
- 换期刊格式时还要重新处理引文和参考文献;
- 生成的 DOCX 偶尔能解压、能被程序读取,但 Word 打开却提示修复。
前前后后踩了不少坑后,我把目前使用的流程整理成了一个通用 Agent Skill:
从 LaTeX 直接生成排版较完整的 Word,并通过 Better BibTeX 和官方 zotero.lua,把 \cite{citationKey} 转换成 Word 中真正的 Zotero 动态引文字段。
项目不仅适用于 Codex。其他兼容 Agent Skills、能够执行脚本和操作文件的 Agent,也可以读取标准的 SKILL.md 使用。
主要功能
- 将 LaTeX 论文直接转换为可编辑 DOCX;
- 保留公式、图片和表格;
- 通过
reference.docx 统一页面、字体、标题和正文格式;
- 为正文、图片、题注、表格和参考文献分配不同的 Word 样式;
- 支持静态 CSL 引用;
- 支持原生 Zotero 动态引文字段;
- 在 Word 中继续使用 Zotero
Refresh;
- 一键切换 Zotero CSL 引用格式;
- 使用
Add/Edit Bibliography 自动生成参考文献目录;
- 检查 LaTeX、BibTeX 和 Zotero citation key 是否一致;
- 检查 DOCX 内部 relationship,降低 Word 报文件损坏的概率;
- 使用 Microsoft Word 实际验证文件能否无修复打开;
- 自带通用 Word 模板、最小示例和首次配置引导。
最重要的区别:不是静态参考文献!!!!
普通的 Pandoc 转换通常会把引文直接处理成普通文字。
例如 LaTeX 中:
\cite{1234567}
静态转换后,Word 里可能只是:
[1]
看起来没问题,但它不像 Zotero 插件引用。后续不能刷新、不能自动换格式,也不能由 Zotero重新生成参考文献。
这个 skill 的 Zotero 动态模式会生成 Word 原生的:
ADDIN ZOTERO_ITEM CSL_CITATION
因此转换后的 Word 仍然可以:
- 点击 Zotero
Refresh 更新引文;
- 在
Document Preferences 中切换期刊格式;
- 使用
Add/Edit Bibliography 自动生成参考文献;
- 添加、删除或者重新排序引用。
Word 格式怎么控制?
项目内置了一个带可见示例的通用 reference.docx,大家也可以直接把学校或者期刊规定规定的格式直接发给AI。
首次使用时,Agent 会先让用户复制这个模板,然后在 Word 中调整自己需要的样式,例如:
内容 |
Word 样式 |
|---|
论文正文 |
Body Text |
图片段落 |
Figure |
图题和表题 |
Caption |
表格文字 |
Table Body |
参考文献 |
Bibliography |
章节标题 |
Heading 1/2/3 |
图片使用单独的 Figure 样式,因此不会继承正文的首行缩进。
以后重新生成 Word 时,只要继续使用修改好的 reference.docx,页面、字体、标题、正文、题注和表格就会按照该模板生成。
Zotero 的 CSL 文件负责引文和参考文献的内容格式,Word 模板负责页面和段落外观,两者各管一部分。
对小白友好吗?
我在 skill 里加入了首次运行判断。
如果 Agent 发现当前电脑尚未配置完整,它会先完成:
- 检测 Pandoc、Python、LaTeX 和 Microsoft Word;
- 检测 Zotero、Word 插件和 Better BibTeX;
- 下载并检查官方
zotero.lua;
- 复制并让用户确认 Word 模板;
- 从 Zotero 中选择一篇真实文献;
- 使用一个真实 Better BibTeX key 生成单引文测试文件;
- 验证 Word 能无修复打开;
- 验证 Zotero 可以刷新引文和生成参考文献;
- 最小测试通过后,再转换完整论文。
已经配置好的环境则直接进入日常流程:
核对 citation key
→ 编译 LaTeX
→ 生成 DOCX
→ 映射 Word 样式
→ 验证文件
→ 在 Word 中刷新 Zotero 引文
→ 生成参考文献目录
两种引用模式
Zotero 动态模式(强烈推荐)
适合还要在 Word 中继续修改的论文,能自己手动用zotero的插件加论文,还能保持交叉引用。
需要:
- Zotero;
- Zotero Word 插件;
- Better BibTeX;
- 官方
zotero.lua。
静态 CSL 模式
适合预览、固定版本或者没有安装 Zotero 的环境。
引文和参考文献会被转换为普通文字,结果相对确定,但后续无法使用 Zotero 刷新。
安装
GitHub 仓库:
Codex 用户可以克隆仓库后,把里面的 latex-to-word-workflow 子目录复制到 skills 目录:
git clone https://github.com/hajimi-kun/latex-to-word-workflow.git
Copy-Item -Recurse `
.\latex-to-word-workflow\latex-to-word-workflow `
"$env:USERPROFILE\.codex\skills\"
用cc或者opencode的佬友放到对应skill文件夹就行。
典型目录结构如下:
%USERPROFILE%\.codex\skills\latex-to-word-workflow
├── SKILL.md
├── SKILL.zh-CN.md
├── agents
├── assets
├── examples
├── references
└── scripts
复制完成后重启或重新加载 Agent,然后可以直接说:
使用 latex-to-word-workflow,把这篇 LaTeX 论文转换成带 Zotero 动态引用的 Word。
项目结构
latex-to-word-workflow/
├── SKILL.md
├── SKILL.zh-CN.md
├── agents/
│ └── openai.yaml
├── assets/
│ └── reference.docx
├── examples/
│ └── minimal/
├── references/
│ └── first-run-setup.md
└── scripts/
├── check_citation_keys.py
├── create_reference_doc.py
├── format_generated_docx.py
├── test_better_bibtex.py
├── validate_docx.py
└── validate_with_word.ps1
欢迎佬友们试用、提提意见!!!点点star嘻嘻