Featured image of post 中文技术报告编写规范(Word 排版实践)

中文技术报告编写规范(Word 排版实践)

中文技术报告从提纲到定稿的完整排版规范:版面参数、三线表、出版级插图、目录识别、字体清理、PDF 自检

   
文章摘要
中文技术报告的排版规范与自检流程,含三线表、插图、目录、字体、孤行页的具体做法与踩坑清单

写技术报告最耗时的不是内容,是排版。字体、三线表、图题位置、目录识别、图片被裁、WPS 报缺字体,每一项都能让人来回改一整晚

这篇是给棒电源机组那份技术报告定稿后写下的规范,把踩过的坑固化成可执行规则。照着做,一次成稿

报告生产流水线

适用:核电、电气专业技术报告、专题学习报告、组内汇报材料 版本:2026-10-30 定稿(棒电源机组报告实践后固化)

一、动笔前的三件事

  1. 先列提纲给委托方确认,再写正文
  2. 明确读者:组内分享 / 科室存档 / 上报,决定深度与篇幅
  3. 参数必须可追溯:电压、电流、容量、时间必须有图纸、规程或实测来源

禁止表述:约为、大幅、相关、正常范围内、按规程操作(一句话带过)

二、结构

封面 → 目录 → 第1章 引言 → 第2章 系统组成与技术原理 → 2 到 4 个专题章 → 结论 → 参考文献

  • 不设摘要、关键词、致谢
  • 章标题格式:第1章 引言(阿拉伯数字,不是"一、“或"第一章”)
  • 篇幅:9 到 11 页 A4(含封面与目录)
  • 图 3 到 5 张,表 2 到 3 张,编号按章:图2-1、表2-1

三、版面参数

项目规定
纸张A4,上下边距 2.5 cm,左 3.0 cm,右 2.5 cm
一级标题黑体 三号 16 pt,居中,另起页
二级标题黑体 四号 14 pt,左对齐
三级标题黑体 小四 12 pt,左对齐
正文宋体 小四 12 pt,行距 1.5,首行缩进 2 字符,西文 Times New Roman
图题宋体 五号 10.5 pt,居中,在图下方
表题宋体 五号 10.5 pt,居中,在表上方
页眉页脚一律不要
封面题名、副题、编制人员、审核人员、编制单位、编制日期

封面信息行用制表位对齐,标签等长(编制人员 / 审核人员 / 编制单位 / 编制日期),冒号才能对齐成一列

四、标题与目录

两个硬要求,做错就出问题

  1. 标题段落不要套 Heading 样式 Word 与 WPS 会给 Heading 样式加段落标记(小黑方块),关了"显示编辑标记"也还在 正确做法:用正文样式,只给段落设置大纲级别 outlineLvl(一级 0,二级 1)
  2. 目录用两遍构建的静态目录 第一遍生成、转 PDF、抓各章真实页码,第二遍回填带点线引导和页码的目录 比 TOC 域可靠,WPS 打开即完整,不用右键更新域

五、表格

三线表,只有三条横线

  • 顶线、底线:1.5 磅
  • 栏目线(表头下):0.75 磅
  • 无竖线,无行间横线
  • 表内五号宋体,表头加粗居中

python-docx 实现要点

# 整表先全部去掉边框
for edge in ('top','bottom','left','right','insideH','insideV'):
    el = OxmlElement(f'w:{edge}'); el.set(qn('w:val'),'none')

# 再逐格加线(sz 单位是 1/8 磅)
表头每格:top=12, bottom=6
末行每格:bottom=12

注意:t.style = 'Table Normal' 会 KeyError,python-docx 里没有这个样式名,不要设 style

六、插图

图的内容规则

  • 图内不放标题,标题由图题负责,否则重复
  • 线色统一墨蓝黑 #1F2933,设备白底深框,功能区用浅色底(四色以内)
  • 连线走正交折线,箭头用实心三角,线名压在线上并加白底
  • 时序与曲线类图用真坐标轴:刻度、单位、网格虚线、阶段标注 ①②③
  • 黑白打印要能分辨,靠线型与填充,不靠颜色
  • 虚线框标注"旋转部分"时,必须把该部分所有部件都框进去

图的尺寸规则

图类型最小宽度
原理图、框图、接线图12 cm
时序图、曲线图11 cm

低于 10 cm 时图内字相当于 6 pt,打印看不清,宁可加内容或减字数,不要压图

出图与自检

按最终印刷尺寸出图:figsize = (w * 0.78, h * 0.78),输出 600 dpi PNG

三类自检必须为 0

  1. 文字溢出:文字包围盒超出方框 94%
  2. 图元越界:图形元素超出 xlim / ylim(越界就是被裁掉,图会缺块)
  3. 贴边:图片四周 3 px 内有暗像素

同时导出 SVG(rcParams['svg.fonttype']='none'),文字保持可编辑,供后续修改

七、字体

只用三种:宋体、黑体、Times New Roman

python-docx 默认模板会残留以下字体声明,正文根本不用,但 WPS 会报"缺失字体"

  • Courier(在 fontTable、styles 里)
  • MS 明朝(日文明朝体,在 theme1.xml 与 fontTable 里)
  • Calibri、Cambria(主题字体)

交付前必须清理:重写 fontTable 只留三种字体,主题 major/minor 字体一并替换,空的 ea / cs 补宋体 清理后自检输出应为"残留非常用字体:无"

八、分页与规避排版缺陷

  • 章标题用段落属性"段前分页",不要插手动分页符(排满时会多出空白页)
  • 二级标题、三级标题、图片段落设"与下段同页",避免标题孤悬在页底
  • 每页文字量自检,低于 180 字的正文页就是缺陷页
  • 消除孤行页的顺序:先查"与下段同页" → 再补写内容把该页填满 → 最后才缩图
  • 补写内容只能写原理层、判据层内容,不编具体数值

九、交付前自检清单

# 转 PDF
libreoffice --headless --convert-to pdf --outdir /tmp 报告.docx

# 页数
python3 -c "import re;print(len(re.findall(rb'/Type\s*/Page[^s]', open('/tmp/报告.pdf','rb').read())))"

# 每页字数(低于 180 的正文页要处理)
for i in $(seq 1 13); do
  echo -n "第${i}页 "; pdftotext -f $i -l $i /tmp/报告.pdf - | tr -d '[:space:]' | wc -m
done

# 渲染抽查
pdftoppm -r 120 -png /tmp/报告.pdf /tmp/pages/p

然后看图确认四件事:图内字是否清楚、有无字压线、箭头是否指空、虚线框范围与说明是否一致

十、常见坑

现象原因处理
标题左侧出现小黑方块套了 Heading 样式改正文样式加大纲级别
WPS 提示缺字体模板残留 Courier、MS 明朝清理 fontTable 与主题字体
目录是空的标题没设大纲级别设 outlineLvl
图片缺一块画布范围设小,图元被裁查越界自检,改 xlim 或改图宽
章节末页只有两三行内容差几行溢出补写内容或收紧措辞,别压图
多出空白页手动分页符遇上排满的页改用段前分页
三线表出现竖线tblBorders 未完全清除六个边全部设 none 再逐格加线

十一、工具

文件作用
report_style.py排版引擎:标题、正文、图题、三线表、封面、目录
gen_figs.py出图脚本,含文字溢出与越界自检,同时输出 PNG 与 SVG
build_report.py正文骨架,正文内容在这个文件里
build_toc.py两遍构建,回填带页码的静态目录
strip_hf.py彻底删除页眉页脚部件
fix_fonts.py清理残留字体声明
fit_layout.py图宽诊断,只在排查孤行页时用,不要直接采信结果

技能包位置:~/.hermes/skills/productivity/cn-technical-report-docx/ 共享副本:~/AI-memory/skills/cn-technical-report-docx/

十二、交付

  • 成品:~/成果/赫梅斯/<核电|电气|其他>/<YYYY-MM>_第N期_<题名>.docx
  • 同时给 PDF(字体已嵌入,移动端看这个)
  • 图源文件单独一个目录:SVG + 出图脚本 + README,便于后续改图
  • 正文要点归档到 Notion「技术学习归档」
晚来天欲雪,能饮一杯无