Help us improve
Share bugs, ideas, or general feedback.
From paperfit
Provides a complete taxonomy of visual typesetting defects for automated PDF page diagnosis, defining defect categories, visual diagnostic methods, severity levels, and reporting format for layout-detective agents.
npx claudepluginhub openraiser/paperfitHow this skill is triggered — by the user, by Claude, or both
Slash command
/paperfit:taxonomy-vtoThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
本技能为 **Visual Typesetting Optimization (VTO)** 任务提供完整的视觉排版缺陷分类知识库。它是 `layout-detective-agent` 进行逐页视觉诊断的核心参考手册,定义了每一类缺陷的**视觉特征、诊断方法、严重等级判定**以及与编译日志信号的对应关系。
Fixes LaTeX layout defects: widows/orphans, excessive trailing whitespace, page budget violations, unbalanced column heights, and vertical holes in two-column pages. Prioritizes typographic control commands over semantic rewrites.
Audits LaTeX academic manuscripts for typographic conventions including booktabs tables, caption placement, dashes/quotes, units/numbers, cross-references, layout, and polish. Useful for paper review phase.
Renders visual output (slides, charts, documents, UI) to PNG, scores with vision AI, and iterates until quality threshold is met. Prevents shipping broken visuals.
Share bugs, ideas, or general feedback.
本技能为 Visual Typesetting Optimization (VTO) 任务提供完整的视觉排版缺陷分类知识库。它是 layout-detective-agent 进行逐页视觉诊断的核心参考手册,定义了每一类缺陷的视觉特征、诊断方法、严重等级判定以及与编译日志信号的对应关系。
使用方式:排版侦探 Agent 在对 PDF 页图进行审查时,应逐项对照本手册中的缺陷定义,识别并记录发现的缺陷,输出结构化诊断报告。
VTO 缺陷分为五大类别,每个类别下包含若干具体缺陷类型:
| 类别 | 名称 | 缺陷数量 | 默认严重等级 |
|---|---|---|---|
| A | 空间利用缺陷 | 4 | Major |
| B | 浮动体缺陷 | 4 | Major |
| C | 排版一致性缺陷 | 3 | Minor |
| D | 溢出与对齐缺陷 | 3 | Major |
| E | 跨模板迁移缺陷 | 3 | Critical |
严重等级说明:
此类缺陷关注页面空间的分配效率与视觉平衡,核心是判断“空白是否合理”、“段落是否完整”。
定义:
视觉诊断方法:
严重等级判定:
与日志信号的关联:无直接日志警告。
常见误判提醒:
诊断记录格式:
- defect_id: A1
- page: 5
- location: "第 5 页顶部第一行"
- description: "段尾小尾巴:仅含单词 'the proposed method',长度不足栏宽 1/5"
- severity: minor/major
定义:论文最后一页(参考文献之前或之后)存在超过页面高度 20% 的连续空白区域。
视觉诊断方法:
阈值参考:
严重等级:Major
与日志信号的关联:无。
常见误判提醒:
诊断记录格式:
- defect_id: A2
- page: 9
- description: "末页空白面积约占页面高度的 35%"
- severity: major
定义:论文总页数超出或不足用户指定的目标页数(通常来自会议/期刊要求)。
视觉诊断方法:
严重等级:Critical
与日志信号的关联:无。
诊断记录格式:
- defect_id: A3
- description: "实际 10 页,目标 9 页,超出 1 页"
- severity: critical
定义:在双栏排版的最后一页,左右两栏的底部高度不一致,高度差超过 2 行。
视觉诊断方法:
严重等级:Minor(若与其他缺陷叠加,可升级)
与日志信号的关联:无。
诊断记录格式:
- defect_id: A4
- page: 12
- description: "左右栏底部高度差约 4 行"
- severity: minor
定义:在双栏排版的任意一页(不限于末页),左栏或右栏在节标题/段落后出现占该栏可排版高度约 30% 以上的连续竖向空白,且空白内无图、无表、无正文;而同一页另一栏在相近纵坐标区间仍有连续正文。典型诱因:本页或邻页的 figure*/table* 顶出造成的栏内“断层”、滥用 \\ / \newpage / \vfill、[H] 固定浮动体、\FloatBarrier 等。
与 A2/A4 的区分:
视觉诊断方法(layout-detective 必做):
compile.log 中 Float too large、Underfull \vbox 等作为佐证。严重等级:默认 Major(若空洞超过半栏可升为 Critical)。
诊断记录格式:
- defect_id: A5
- page: 4
- column: left
- description: "Experiments 标题下方约 55% 栏高无内容,右栏同期为连续正文"
- severity: major
- visual_evidence: "左栏中段整带空白,无 figure/table"
OpenCV 辅助(推荐):对已渲染页图执行 paperfit run scripts/detect_column_void.py data/pages --glob 'page_*.png' -o data/column_void_report.json,读取 JSON 中的 a5_candidates 与上述人工步骤交叉验证。
此类缺陷关注图表的放置位置、尺寸匹配度以及对阅读流的干扰。
定义:图表出现在距离其首次被引用的页面过远的位置(通常页码差 ≥ 2)。
视觉诊断方法:
|图表页码 - 首次引用页码|。严重等级:Major(若差值 ≥ 3,升级为 Critical)
与日志信号的关联:
LaTeX Warning: Float too large for page 或浮动体放置相关的 warning,作为辅助证据。诊断记录格式:
- defect_id: B1
- object: "Figure 3"
- reference_page: 4
- float_page: 6
- distance: 2
- severity: major
定义:图片或表格的宽度未充分利用栏宽,过窄(两侧留白过大)或超宽(溢出或被截断)。
视觉诊断方法:
figure*/table*):对比图表宽度与页宽,标准同上。严重等级:
与日志信号的关联:
Overfull \hbox 警告(参见 D1)。诊断记录格式:
- defect_id: B2
- object: "Figure 2"
- page: 3
- description: "图片宽度仅占栏宽约 60%,两侧留白过大"
- severity: minor
定义:同一页或连续两页出现 3 个或以上的图表,且中间几乎无正文间隔,形成“图表页”。
视觉诊断方法:
严重等级:Minor(但若导致阅读体验严重下降,可标为 Major)
与日志信号的关联:无直接日志,但大量浮动体可能引发 placement warning。
诊断记录格式:
- defect_id: B3
- page: 7
- description: "该页包含 3 个图表,正文仅 2 行"
- severity: minor
定义:一个图表(尤其是长表格)在不适当的位置断开,跨两页显示,且第二页未重复表头。
视觉诊断方法:
longtable 的重复表头功能),判定为缺陷。严重等级:Minor(若为关键数据表,升级为 Major)
与日志信号的关联:无。
诊断记录格式:
- defect_id: B4
- object: "Table 4"
- page: 8-9
- description: "表格跨页分裂,第二页缺少表头"
- severity: minor
此类缺陷关注全篇排版风格的统一性。
定义:不同表格使用了差异明显的字号,通常由 \resizebox 或手动 \tiny/\small 滥用导致。
视觉诊断方法:
\small,另一个用 \footnotesize),记录缺陷。\resizebox 缩放表格导致的字号异常(文字被整体缩放,视觉上变形)。严重等级:Minor
与日志信号的关联:无直接日志,但可在源码中搜索 \resizebox。
诊断记录格式:
- defect_id: C1
- description: "Table 1 使用 \small,Table 3 使用 \resizebox 导致字号偏小,全篇表格字号不统一"
- severity: minor
定义:论文中图片分辨率差异大,或风格(如字体、配色、线条粗细)不统一。
视觉诊断方法:
严重等级:Minor
修复提示:此缺陷系统无法自动修复,需提示用户替换低质量图片或统一绘制风格。
诊断记录格式:
- defect_id: C2
- object: "Figure 5"
- description: "图片分辨率低,锯齿明显,与 Figure 2 的矢量图风格不一致"
- severity: minor
定义:图表标题的字体、间距、编号格式、结尾标点不一致。
视觉诊断方法:
严重等级:Minor
诊断记录格式:
- defect_id: C3
- description: "Figure 1 标题加粗,Figure 2 标题未加粗;Table 1 标题无句号,Table 2 标题以句号结尾"
- severity: minor
此类缺陷涉及内容超出边界或未正确断行,通常有明确的日志信号。
定义:文本行、表格单元格或公式内容超出栏宽,LaTeX 无法自动断行。
视觉诊断方法:
.log 中搜索 Overfull \hbox,获取精确的溢出位置和溢出量(pt)。严重等级:
诊断记录格式:
- defect_id: D1
- page: 4
- object: "段落第 3 行 / Table 2 某单元格"
- log_signal: "Overfull \hbox (12.3pt too wide) in paragraph at lines 245--248"
- visual_evidence: "单词 'implementation' 伸出右边界约 2mm"
- severity: major
定义:过长的数学公式未在多行环境中断行,导致溢出或视觉拥挤。
视觉诊断方法:
equation、\[...\])。align、multline),检查断行位置是否合理(通常在等号或运算符处)。严重等级:Major(若溢出)或 Minor(若未溢出但明显过长且可优化)
与日志信号的关联:常伴随 Overfull \hbox 警告。
诊断记录格式:
- defect_id: D2
- page: 6
- object: "Equation (12)"
- description: "单行公式长度超过栏宽,溢出约 8pt"
- severity: major
定义:参考文献或正文中的 URL、DOI、长标识符超出栏宽。
视觉诊断方法:
严重等级:Minor(但若多处出现,升级为 Major)
与日志信号的关联:常伴随 Overfull \hbox 在参考文献区域。
诊断记录格式:
- defect_id: D3
- page: 10
- object: "参考文献 [23] 的 URL"
- description: "URL 超出栏宽约 15pt"
- severity: minor
此类缺陷仅在用户执行模板切换任务时激活。
定义:模板切换后,原模板的图表尺寸设置不再适用,导致图表在新模板下尺寸不当。
视觉诊断方法:
figure*),图表显得过小。严重等级:Critical
诊断记录格式:
- defect_id: E1
- object: "Figure 1"
- description: "原为单栏全宽图,在新双栏模板中仅占单栏,宽度利用率不足 50%"
- severity: critical
定义:模板切换后总页数与目标模板预期页数相差较大。
视觉诊断方法:
严重等级:Critical
诊断记录格式:
- defect_id: E2
- description: "当前 9 页,目标模板预期 14 页,需扩写 5 页内容"
- severity: critical
定义:新模板中使用了已废弃或冲突的宏包、命令,导致编译失败或内容缺失。
视觉诊断方法:
Undefined control sequence、Option clash for package、Environment XXX undefined。严重等级:Critical
诊断记录格式:
- defect_id: E3
- log_signal: "Undefined control sequence \theoremstyle"
- description: "新模板不支持 amsthm 宏包的 \theoremstyle 命令"
- severity: critical
layout-detective-agent 应遵循以下步骤:
config/vto_taxonomy.yaml 和本技能文档。visual-inspector 技能渲染的页图,按页码顺序检查。.log 文件。defect_id、page、object、description、severity)。defect_id 将直接用于路由到对应的修复 Skill(参见 config/vto_taxonomy.yaml 中的 skill_routing 映射)。本知识库将随着系统迭代不断扩充,涵盖更多边界案例和会议特定的排版规范。