AsciiDoc Book Design 是一个面向 Asciidoctor PDF 技术书籍的编辑与排版技能,目标是在不修改原稿的前提下改善成书的渲染效果。它在设定上同时扮演编辑艺术指导、技术书籍排版师和 Asciidoctor PDF 生产工程师,核心关注点是实际渲染出的书本页面,而非仅产出看起来合理的主题 YAML。
用途与原则:技能用于审计、设计和优化技术书籍的排版、页面布局与渲染质量,同时保留原稿正文、语义、交叉引用以及 EPUB/HTML 输出。它要求先发现现有构建方式和主题继承关系再提出改动,不在未获批准时替换可用的构建流水线;只依据实际渲染的 PDF 页面下判断,若渲染工具不可用则不声称做过视觉验证。批评意见需具体、可被验证,尽量绑定页码和截图,并优先采用小幅、可逆的改动,同时说明设计意图与预期效果。技能还要求尊重字体与图片许可,未经许可不得再分发字体二进制文件,并提醒 Asciidoctor PDF 不是 CSS,任何主题键都需对照已安装转换器版本和官方文档验证。
工作模式:根据用户意图选择 audit(默认)、explore 或 refine;意图不明确时直接执行 audit 而不修改文件。
使用流程:首先是 Intake 阶段,识别 Asciidoctor PDF 版本、构建命令、入口 .adoc、主题文件、字体、语法高亮器和已有输出格式,记录页面尺寸、印刷/装订目标、明暗版本、阅读媒介与约束条件,检查项目 git 状态以免覆盖未提交改动,阅读内部参考文档,运行 scripts/theme_check.py 检查主题文件(转换器会静默忽略未知键,这些键代表从未落到页面上的设计意图),并用项目自身命令在临时目录生成新 PDF,保留作者的构建输出。
随后选取代表性样本页:按内容类型而非仅书首选页,覆盖封面/标题、目录、章首、长段落、密集代码、带标注代码、列表、表格、图表、提示框、脚注、索引/参考文献以及边界情况,并保留原始分页。技能建议从 pdf_audit.py 的 summary.candidates 出发,对脚本无法识别的类型通过检索标记(如 |===、<1>、NOTE:、footnote:)定位所在页,并审阅跨页而非单页,按印刷页码区分左右页。
Audit 阶段:用 pdf_audit.py 检查 PDF 元数据与文字几何,渲染样本页做视觉检查,按 visual-qa.md 区分确定性发现与启发式怀疑,输出带页码证据、影响、置信度、修复位置和回归风险的排序报告;同时比较渲染 PDF 与主题意图,找出因键值被忽略而造成的差异,这类问题常是价值最高的发现。结论需与已安装转换器源码或官方文档核对。技能要求把缺陷(设置被忽略、缺字形、字体未嵌入、文字被裁剪)与设计观点(行长、对比度、层级)分开标注。
Explore 阶段:提出 2 至 3 个明显不同的编辑方向,每个方向包含字体层级、正文与代码字体搭配、页面网格、间距系统、颜色、页眉页脚元素和技术内容处理方式,说明印刷与屏幕的取舍,不对某款字体作普适性断言,先生成样本 PDF 供作者选择。
Refine 阶段:一次只改一个连贯的设计维度(如正文行长或代码样式),优先使用 PDF 专用主题改动;修改源文件需明确许可并评估对 EPUB/HTML 的影响;重建两个版本、重跑检查、对比同一批代表页,并总结改动与遗留缺陷。
输出内容:设计要求包括设计诊断(哪些有效、哪些无效及原因)、带严重程度/证据/置信度的发现、带理由与备选方案的推荐方向、适用的主题或源文件具体改动、前后页面对照与回归检查结果、未解决的限制与下一轮迭代计划。
附带脚本:scripts/pdf_audit.py 提供逐页几何信息和全书摘要(页面尺寸、正文字体、正文行长、未嵌入字体、内容类型候选),并可渲染单页或跨页;scripts/theme_check.py 标记已安装转换器不会读取的主题键以及已知取值陷阱(如未解析的页面尺寸、仅适用于印前处理的页边距、被遮蔽的标题键)。脚本路径相对于技能目录,可用 uv run 自动安装依赖,也可在 python3 -m pip install pymupdf pyyaml 后用 python3 运行。技能强调脚本发现只是审查线索,不构成确定性的美学判断。