# 论文排版 · Word 编辑 · 公式 · 交叉引用(WORD-PLAYBOOK) > 这份文件解决一件事:**把稿子做成能直接交的 Word**。 > > 三条铁律: > 1. **一切编号都来自域,不手打。** 图、表、公式、参考文献的序号,全部由 Word 的 `SEQ` / `REF` 域生成。 > 2. **一切格式都来自样式,不手调。** 字体、字号、行距、缩进、三线表边框,全部挂在样式上。 > 3. **改完必须 F9。** 域不会自动重算,增删图表/公式/文献后 `Ctrl+A` → `F9`。 --- ## 0. 排版前的准备清单 动手排版之前先确认这五件事,否则后面一定返工: - [ ] 学校/期刊的**格式规范文件**(字号、行距、页边距、页眉页脚、参考文献体系)——以它为准,本文只给通用值; - [ ] 参考文献体系是**顺序编码制**还是**著者-出版年制**(国标两套,正文标注方式完全不同); - [ ] 图表是否**按章编号**(图 2-1)还是**全文连号**(图 1); - [ ] 公式编号是 `(1)`、`(2-1)` 还是 `(2.1)`; - [ ] 有没有**学校模板**(有模板一律在模板副本里填,不另起新文档)。 > 关键提醒:域、样式、题注这三套东西,只有在**同一个文档的模板**里才稳定。换模板 = 全部重做,所以先定模板再写。 --- ## 1. 样式体系:先建样式,再写正文 ### 1.1 必须建好的段落样式 | 样式名 | 用途 | 常见设置 | |---|---|---| | 标题 1/2/3 | 章、节、条 | 挂到多级列表,**必须用内置标题样式**,否则题注的"包含章节号"读不到 | | 正文 | 主体文字 | 中文宋体小四、西文 Times New Roman 小四、行距 1.5 或固定值 20 磅、首行缩进 2 字符 | | 图题 | 图下方 | 宋体五号居中、单倍或 1.25 倍行距、段前后 6 磅 | | 表题 | 表上方 | 同上 | | 公式 | 公式段 | 居中 + 右制表位(见第 3 节) | | 参考文献 | 文末条目 | 宋体五号、**悬挂缩进 2 字符** | | 表注 | 表格底线下方 | 宋体小五,不缩进 | ### 1.2 中文字体必须设 `w:eastAsia` 只设 `run.font.name` 只会改西文字体,中文仍是默认宋体。两层都要写: ```python from docx.oxml.ns import qn def set_cjk_font(run, cn='宋体', en='Times New Roman', size_pt=12, bold=False): run.font.name = en # 西文 run.font.size = Pt(size_pt) run.font.bold = bold rPr = run._element.get_or_add_rPr() rFonts = rPr.find(qn('w:rFonts')) if rFonts is None: rFonts = rPr.makeelement(qn('w:rFonts'), {}) rPr.append(rFonts) rFonts.set(qn('w:eastAsia'), cn) # 中文 rFonts.set(qn('w:ascii'), en) rFonts.set(qn('w:hAnsi'), en) ``` ### 1.3 首行缩进的"2 字符"要写成字符单位 `w:ind` 的 `firstLine` 是 twips(缇),2 字符按字号换算容易错位。改用字符单位: ```xml ``` `firstLineChars="200"` 就是 2 字符,Word 会按当前字号自动换算。 ### 1.4 页眉、页脚、页码 - 页眉用 `w:hdr`,页脚用 `w:ftr`,正文从第 1 页或"正文"节重新起编; - **封面、摘要、目录用罗马数字,正文用阿拉伯数字**:靠"分节符"(`w:sectPr` 里 `pgNumType` 的 `fmt="upperRoman"` / `fmt="decimal"`)实现,不是靠手改; - 页码用 `PAGE` 域:`{ PAGE \* MERGEFORMAT }`; - "共 X 页"的总页数是 `NUMPAGES` 域,`PAGE` 与 `NUMPAGES` 要分开放。 --- ## 2. 图表:题注 + 交叉引用(三层域) ### 2.1 原理:三层域各管一件事 | 层 | 域 | 作用 | |---|---|---| | 题注编号 | `SEQ 图` | 生成编号,同一标识符的域按文档流顺序递增 | | 正文引用 | `REF 书签` | 读取题注编号并显示,题注变了引用跟着变 | | 图表目录 | `TOC \c "图"` | 收集所有题注生成目录 | **题注不是普通文字,是一段可重算的域。** 用 `Alt+F9` 可以看到 `{ SEQ 图 \* ARABIC }`。 ### 2.2 插入题注 1. 选中图片/整张表格(表格要点左上角十字手柄); 2. 【引用】→【插入题注】; 3. 标签选"图"/"表",没有就【新建标签】; 4. 需要按章编号 → 点【编号】→ 勾选"包含章节号"→ 选择章节起算样式"标题 1"→ 分隔符选 `-`; 5. 位置:**图题在所选项目下方,表题在所选项目上方**(不可颠倒); 6. 编号后加一个空格,再写图名:"图 2-1 系统架构"。 ### 2.3 正文交叉引用 1. 光标放到"如"后面; 2. 【引用】→【交叉引用】; 3. 引用类型 = 图;**引用内容 = 只有标签和编号**(选"整项题注"会把图名也带进正文); 4. 勾选"插入为超链接"(Ctrl+单击可跳转); 5. 选中目标题注 → 插入。 ### 2.4 增删后的更新 | 场景 | 操作 | |---|---| | 全文刷新 | `Ctrl+A` → `F9` | | 单个编号 | 选中 → 右键【更新域】 | | 图表目录 | 选中目录 → `F9` → 更新整个目录 | | 打印前自动刷 | 文件 → 选项 → 显示 → 勾"打印前更新域" | ### 2.5 报错排查 | 现象 | 原因 | 处理 | |---|---|---| | `错误!未定义书签` | 题注被删或重插覆盖了书签 | 删除失效字段,重新插入交叉引用 | | 正文带出了整个图名 | 引用内容选成了"整项题注" | 改选"只有标签和编号" | | 章节号显示成"图 0-1" | 章标题没套用内置"标题 1"样式 | 套用标题样式并配好多级列表后重新 F9 | | 删了图编号没变 | 域不会自动重算 | `Ctrl+A` → `F9` | | 题注编号是灰底 | 那是域底纹,打印不显示 | 无需处理;嫌碍眼可关闭"域底纹" | --- ## 3. 公式:样式 + 制表位 + SEQ 域 + 书签 ### 3.1 为什么不用"题注"给公式编号 题注是给图表设计的:标签会变成"图/表/公式 1",混进图表目录,格式死板。公式要用**样式 + 制表位 + 域**自己搭。 ### 3.2 标准版式:公式居中、编号右对齐 段落设置为三个制表位: | 制表位 | 位置 | 对齐 | |---|---|---| | 第 1 个 | 版心 1/2 处(如 A4 页宽 21cm、左右边距 3cm → 版心 15cm,中心 7.5cm) | 居中 | | 第 2 个 | 版心右侧(15cm) | 右对齐 | 操作:光标置于公式前 → `Tab` → 输入公式 → `Tab` → 输入编号。 ### 3.3 编号用 SEQ 域 编号处不要手打 `(1)`,写成: - 光标放在括号中间,按 `Ctrl+F9` 插入域括号 `{ }`; - 在括号里输入 `SEQ 式 \* ARABIC`,或直接 `{ SEQ 公式 \* ARABIC }`; - 按 `F9` 生成;需要显示为 `(1)` 就把括号作为普通文字写在域的两侧。 按章编号时,编号写成: ``` ( { STYLEREF 标题 1 \s } - { SEQ 公式 \* ARABIC \s 1 } ) ``` - `STYLEREF 标题 1 \s` 取当前章号; - `SEQ ... \s 1` 让序号在每章重新从 1 开始; - 两个域之间用普通文字 `-` 连接。 > 有章节号时,编号位宽会变,制表位要留够;建议右对齐制表位设在版心右边界,不要用空格对齐。 ### 3.4 正文引用公式 1. 给编号设书签:选中编号(含括号)→【插入】→【书签】→ 命名 `eq_ch2_1`(便于批量维护); 2. 正文"见式"后用【引用】→【交叉引用】→ 类型选"书签"→ 引用书签文字; 3. 或者用 `REF eq_ch2_1 \h` 域直接写。 ### 3.5 插入公式本身 | 场景 | 做法 | |---|---| | 新写 | `Alt+=` 插入 Word 原生公式(OMML),可编辑、可换行 | | 已有 LaTeX | Word 公式编辑器支持粘贴 TeX 后【转换】为专业格式(Word 2016+) | | 公式被误判成图片 | 检查是不是从图片粘贴的;位图公式不能编号到域、也不能改字号 | | 交叉引用公式 | 必须靠书签,不要靠题注 | **python-docx 的限制**:它不能直接造 OMML 公式。程序化生成时两条路——把 LaTeX 源码保留为文本(提示用户转换),或插入公式图片并明确标注"位图公式,需人工替换为原生公式"。 --- ## 4. 三线表 ### 4.1 线宽规范 | 线 | 位置 | 常见磅值 | |---|---|---| | 顶线 | 表头最上端 | 1.5 磅(部分学报 1 磅) | | 栏目线 | 表头与数据行之间 | 0.75 磅(部分 0.5 磅) | | 底线 | 数据最末行下方 | 与顶线一致 | **没有竖线,没有任何其他横线。** 多级表头的辅助线与栏目线同细、只覆盖所辖列宽。 ### 4.2 Word 手动三步法 1. 选中整表 →【表格设计】→【边框】→【无框线】; 2. 保持全选 → 笔画粗细选 1.5 磅 →【上框线】【下框线】; 3. 只选第一行 → 粗细改 0.75 磅 →【下框线】。 ### 4.3 做成样式(推荐) 【表格设计】→ 表格样式库下拉 →【新建表格样式】→ 命名"学术三线表": - "格式应用于 = 整个表格" → 格式 → 边框和底纹 → 先【无】→ 1.5 磅设上、下框线; - "格式应用于 = 标题行" → 0.75 磅设下框线; - 勾选"基于该模板的新文档"。 **顺序不能反**,否则栏目线会被整表设置覆盖。 ### 4.4 表题、单位、表注 - 表题在**表上方**,图题在**图下方**; - 表头写"物理量 / 单位":`热处理温度 / ℃`、`抗拉强度 / MPa`; - 全表单位一致时可只在右上角写"单位:mm"; - 表注在**底线下方**,不缩进,小五号; - 跨页长表:选中表头行 →【布局】→【重复标题行】。 --- ## 5. 参考文献与交叉引用 ### 5.1 国标体系(先确认版本) - **GB/T 7714—2015**:多数学校和期刊的现行模板仍按此版; - **GB/T 7714—2025**:2025-12-02 发布,**2026-07-01 实施**,代替 2015 版(国家标准全文公开系统已可查)。 > 以学校/期刊最新通知为准。两者格式主体一致,2025 版新增了数据集 `[DS]`、预印本 `[PP]` 等类型,并强调永久标识符(DOI/CSTR)。 ### 5.2 顺序编码制:正文怎么标 - 按正文**首次引用顺序**编号,方括号上标:`……已成为研究热点[1]。` - 连续多条:`[1-3]`;不连续:`[1,3,5]`; - 同一处引用多篇按首次出现顺序排列; - 引用处放在**句末标点之前**,不是之后。 ### 5.3 文后条目格式(要点 + 示例) 通用的标点规则:**项目之间用 `. `,年与卷之间用 `, `,卷期与页码之间用 `: `,析出文献用 `//`,起止页码用 `-`(不是 `~`)。** | 类型 | 格式 | 示例 | |---|---|---| | 期刊 `[J]` | 作者. 题名[J]. 刊名, 年, 卷(期): 起止页. | 张三, 李四. 在线学习的有效性研究[J]. 教育研究, 2025, 45(3): 123-145. | | 专著 `[M]` | 作者. 书名[M]. 版本. 出版地: 出版者, 年: 页码. | 王芳. 当代中国教育改革[M]. 北京: 高等教育出版社, 2025: 88. | | 析出文献 `[M]//` | 析出作者. 题名[M]//专著责任者. 书名. 出版地: 出版者, 年: 页码. | 刘明. 在线学习评估[M]//王军. 高等教育数字化转型. 北京: 教育出版社, 2025: 89-112. | | 学位论文 `[D]` | 作者. 题名[D]. 保存地: 保存单位, 年: 页码. | 徐明. 人工智能对学生学习的影响研究[D]. 北京: 北京大学, 2024: 15. | | 会议录 `[C]` | 作者. 题名[C]//论文集责任者. 论文集名. 出版地: 出版者, 年: 页码. | 张军. 在线教学有效性评估[C]//中国教育技术协会. 第十五届年会论文集. 北京: 教育科学出版社, 2025: 145-156. | | 报告 `[R]` | 作者. 题名[R]. 出版地: 出版者, 年: 页码. | 机构. 报告名: 编号[R]. 北京: 发布者, 2023: 25. | | 标准 `[S]` | 标准号 标准名[S]. | GB/T 3792—2021 信息与文献 资源描述[S]. | | 专利 `[P]` | 申请者. 专利名: 专利号[P]. 公告日期. | —— | | 报纸 `[N]` | 作者. 题名[N]. 报纸名, 日期(版次). | 陈明. 教育改革推进学生全面发展[N]. 人民日报, 2026-03-15(04). | | 网页 `[EB/OL]` | 作者. 题名[EB/OL]. (更新日期)[引用日期]. URL. | 李京. 教育改革的新动向[EB/OL]. (2025-03-15)[2026-03-18]. https://example.com/a.html. | | 数据集 `[DS/OL]` | 作者. 数据集名[DS/OL]. 版本. 发布者(发布日期)[引用日期]. URL. | 周壮, 李盛阳, 等. 天宫二号遥感图像自然景物分类科学数据[DS/OL]. V1.0. 国家基础学科公共科学数据中心(2023-09-10)[2025-07-15]. https://… | | 预印本 `[PP/OL]` | 作者. 题名[PP/OL]. 平台(发布日期)[引用日期]. URL. | 肖玲, 张雪, 王永. 数据要素的统计测算方法探究[PP/OL]. PSSXiv(2024-07-02)[2024-09-30]. https://… | | 在线期刊 `[J/OL]` | 作者. 题名[J/OL]. 刊名, 年, 卷: 页. URL. DOI: …. | —— | ### 5.4 责任者规则 - 不超过 3 个全部著录;超过 3 个只著录前 3 个,后加", 等"(西文 `, et al`); - 中文姓名按原文,不加国籍朝代; - 西文姓全著录、字母大写,名取首字母**不加缩写点**:`SMITH J`; - 无责任者时直接从题名开始著录。 ### 5.5 顺序编码制的四大典型错误 1. 年卷之间用了分号、页码范围用了波浪线; 2. 文献类型标识用错(期刊写成 `[M]`); 3. 作者之间用了顿号或分号; 4. 期刊写成"第 45 卷 第 3 期"而不是 `45(3)`。 ### 5.6 交叉引用参考文献(Word 里的正确做法) **要区分两件事**: | 做法 | 效果 | 建议 | |---|---|---| | 手动输入 `[1]` | 增删文献后全文编号全乱 | ✗ 不要 | | 用"交叉引用"→ 引用类型"编号项" | 引用的是列表编号,**通常不随正文首次出现顺序重排** | △ 只在文献表用"自动编号"且顺序固定时可用 | | **用领域工具(Zotero / EndNote / NoteExpress)插入域** | 引用顺序、编号、文后条目、多引用合并 `[1-3]` 全部自动 | ✓ 唯一可靠的方式 | **推荐流程(顺序编码制)**: 1. 装 Zotero + Word 插件,文献从知网导出为 GB/T 7714 的题录(知网导出即可); 2. 正文用插件【Add/Edit Citation】插入,插件自动按首次出现顺序编号; 3. 文后点【Add/Edit Bibliography】生成文献表,样式选国标; 4. 增删文献后点【Refresh】重排,全文编号与文后条目同步; 5. 投稿前再去掉域(【Unlink Citations】),变成纯文本,避免编辑打开时提示更新。 **一定要用 Word 交叉引用时**(没有领域工具): - 给文后每一条参考文献设**书签**,正文用 `REF 书签 \h` 或"交叉引用 → 引用类型 = 书签"; - 好处:条目内容改了正文引用跟着变;坏处:**编号重排仍需人工**,必须自己核对正文首次出现顺序。 --- ## 6. 交付前的排版自检 | 检查项 | 判据 | |---|---| | 样式 | 全文没有手动改字体字号的段落;标题都用内置标题样式 | | 编号 | 图、表、公式全为域;`Ctrl+A` → `F9` 后编号连续 | | 交叉引用 | 全文搜索"错误!未定义书签"= 0 处 | | 图表 | 图题在下、表题在上;表为三线表、无竖线、跨页有重复标题行 | | 公式 | 无位图公式;编号右对齐一致;正文有首次引用 | | 参考文献 | 正文编号与条目一一对应;无孤立条目;格式统一 | | 目录 | 用域生成,页码与正文一致;更新后核对 | | 页码 | 前置部分罗马、正文阿拉伯;共 X 页正确 | | 残留 | 无 `**`、反引号、裸链接、占位符、"待补"标记 | | 字体 | 中文宋体、西文 Times New Roman,无混排跳字 | --- ## 7. Python 程序化排版(python-docx) ### 7.1 能做的 | 能力 | 做法 | |---|---| | 建文档、套内置样式 | `document.add_paragraph(text, style='Heading 1')` | | 中文字体 | `rFonts.set(qn('w:eastAsia'), '宋体')` | | 首行缩进 2 字符 | `w:ind` 加 `w:firstLineChars="200"` | | 三线表 | `tcPr/tcBorders` 或 `tblBorders` 逐边设 `w:sz`(**sz 单位是 1/8 磅**:1.5 磅 = 12,0.75 磅 = 6) | | 表格重复标题行 | `tblHeader` | | 插入域 | 拼 `w:fldSimple`,或 `w:instrText` + `w:fldChar begin/separate/end` | | 页眉页脚页码 | `section.header.paragraphs` + `PAGE` 域 | ### 7.2 不能做的 - **不能造 OMML 公式**(公式要么留 LaTeX 文本,要么贴图并注明); - **不能渲染/分页**,看不到实际版面,所以排版结果必须用 Word 打开复核(或转 PDF 渲染检查); - 不能可靠地"填学校模板"——模板填充要走"复制模板副本 → 只替换文本"的路子,图片/目录/封面仍需人工核对。 ### 7.3 域的 XML 写法 ```python from docx.oxml import OxmlElement from docx.oxml.ns import qn def add_field(paragraph, instr): """插入一个简单域,如 'SEQ 图 \\* ARABIC' 或 'REF _Ref123 \\h'。""" fld = OxmlElement('w:fldSimple') fld.set(qn('w:instr'), instr) run = OxmlElement('w:r') t = OxmlElement('w:t') t.text = '1' # 占位显示值,Word 按 F9 后会重算 run.append(t) fld.append(run) paragraph._p.append(fld) ``` ```python def three_line_table(table, top_sz=12, mid_sz=6): """top_sz/mid_sz 以 1/8 磅为单位:12=1.5磅,6=0.75磅。""" # 先清空全表边框,再补顶线、栏目线、底线 ... ``` --- ## 8. 参考来源 - 国家标准全文公开系统:GB/T 7714—2025《信息与文献 参考文献著录规则》,2025-12-02 发布、2026-07-01 实施。 - GB/T 7714—2015 与 2025 版著录示例(含 `[DS]`、`[PP]`、`[J/OL]` 等新类型)。 - Word 题注 / `SEQ` / `REF` 域的机制与 `Ctrl+A`→`F9` 更新流程(CSDN、InkFount 教程)。 - 三线表线宽规范(顶底线 1.5 磅、栏目线 0.75 磅,无竖线;部分学报为 1 磅/0.5 磅)。 - GitHub `ZyhSechub/chinese-thesis-workbench-skill`:默认论文格式、DOCX 交付模式(M1–M4)、交付前检查清单。 - Microsoft 官方:交叉引用与题注说明。 > 具体磅值、字号、行距以学校/期刊规范为准;本文件给的是通行做法,不是唯一标准。