Skip to content
Content
Skill

/taxonomy-vto

本技能为 **Visual Typesetting Optimization (VTO)** 任务提供完整的视觉排版缺陷分类知识库。它是 `layout-detective-agent` 进行逐页视觉诊断的核心参考手册,定义了每一类缺陷的**视觉特征、诊断方法、严重等级判定**以及与编译日志信号的对应关系。

From plugin
paperfit
3348 skills6 agents9 commands
Install
$ npx -y skills add OpenRaiser/PaperFit --skill taxonomy-vto --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/taxonomy-vto

Context preview

The summary Claude sees to decide when to auto-load this skill.

本技能为 **Visual Typesetting Optimization (VTO)** 任务提供完整的视觉排版缺陷分类知识库。它是 `layout-detective-agent` 进行逐页视觉诊断的核心参考手册,定义了每一类缺陷的**视觉特征、诊断方法、严重等级判定**以及与编译日志信号的对应关系。

SKILL.md

taxonomy-vto.SKILL.md

VTO Taxonomy Knowledge Base

概述

本技能为 **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 |

严重等级说明:

  • **Critical**:必须修复,否则论文不符合投稿要求(编译失败、页数严重不符等)
  • **Major**:严重影响视觉专业度,强烈建议修复
  • **Minor**:影响美观但不致命,可在时间充裕时修复

---

Category A:空间利用缺陷

此类缺陷关注页面空间的分配效率与视觉平衡,核心是判断“空白是否合理”、“段落是否完整”。

A1:孤行/寡行 (Widow/Orphan Lines)

**定义**:

  • **孤行 (Widow)**:段落最后一行单独出现在下一页顶部。
  • **寡行 (Orphan)**:段落第一行单独留在上一页底部。
  • **段尾小尾巴**:段落末尾一行仅含 1-3 个单词,长度不足栏宽的 1/4。

**视觉诊断方法**: 1. 逐页检查页面的顶部和底部区域。 2. 若页面顶部第一行为某段落的末行 → **孤行**。 3. 若页面底部最后一行为某段落的首行 → **寡行**。 4. 对于任意段落末行,目测其长度:若远短于同行其他行(明显短于栏宽的 1/4),记为**段尾小尾巴**(与孤行/寡行同等对待)。

**严重等级判定**:

  • 出现任意孤行或寡行 → **Major**
  • 仅出现段尾小尾巴(非跨页)→ **Minor**(但若多处出现,升级为 Major)

**与日志信号的关联**:无直接日志警告。

**常见误判提醒**:

  • 公式环境或列表环境后的短行可能为正常现象,需结合上下文判断。
  • 双栏布局中,左右栏的段落独立判断,不要跨栏比较。

**诊断记录格式**:

- defect_id: A1
- page: 5
- location: "第 5 页顶部第一行"
- description: "段尾小尾巴:仅含单词 'the proposed method',长度不足栏宽 1/5"
- severity: minor/major

---

A2:末页大面积留白 (Excessive Trailing Whitespace)

**定义**:论文最后一页(参考文献之前或之后)存在超过页面高度 20% 的连续空白区域。

**视觉诊断方法**: 1. 定位 PDF 的最后一页(参考文献所在页或其后的附录/致谢页)。 2. 目测或估算空白区域占页面内容区域的比例。

  • 若空白集中在页面下半部分,且面积明显超过 1/5 页面高度,判定为缺陷。

3. 特别注意:若参考文献后仍有内容(如附录),则最后一页为附录末页。

**阈值参考**:

  • 空白比例 < 15%:可接受
  • 空白比例 15%-20%:建议优化
  • 空白比例 > 20%:**缺陷 (Major)**

**严重等级**:**Major**

**与日志信号的关联**:无。

**常见误判提醒**:

  • 若末页是参考文献的开始且参考文献未满一页,此时空白为正常现象(参考文献允许跨页),不视为缺陷。仅当参考文献后仍有大段空白时才判定。

**诊断记录格式**:

- defect_id: A2
- page: 9
- description: "末页空白面积约占页面高度的 35%"
- severity: major

A3:页数预算违反 (Page Budget Violation)

**定义**:论文总页数超出或不足用户指定的目标页数(通常来自会议/期刊要求)。

**视觉诊断方法**: 1. 获取用户输入的目标页数(如未提供,则跳过此项检测)。 2. 检查 PDF 总页数。 3. 若实际页数 ≠ 目标页数,记录偏差。

**严重等级**:**Critical**

**与日志信号的关联**:无。

**诊断记录格式**:

- defect_id: A3
- description: "实际 10 页,目标 9 页,超出 1 页"
- severity: critical

---

A4:双栏末页左右栏高度不齐 (Unbalanced Column Heights)

**定义**:在双栏排版的最后一页,左右两栏的底部高度不一致,高度差超过 2 行。

**视觉诊断方法**: 1. 仅适用于双栏模板(如 IEEE、ACM、ECCV 等)。 2. 定位最后一页,在左右栏底部画一条水平参考线。 3. 若两栏底部高度差超过约 2 行正文的高度,判定为缺陷。

**严重等级**:**Minor**(若与其他缺陷叠加,可升级)

**与日志信号的关联**:无。

**诊断记录格式**:

- defect_id: A4
- page: 12
- description: "左右栏底部高度差约 4 行"
- severity: minor

---

A5:双栏页内列竖向空洞 (Intra-Column Vertical Void)

**定义**:在双栏排版的**任意一页**(不限于末页),左栏或右栏在节标题/段落后出现**占该栏可排版高度约 30% 以上**的连续竖向空白,且空白内无图、无表、无正文;而**同一页另一栏**在相近纵坐标区间仍有连续正文。典型诱因:本页或邻页的 `figure*`/`table*` 顶出造成的栏内“断层”、滥用 `\\` / `\newpage` / `\vfill`、`[H]` 固定浮动体、`\FloatBarrier` 等。

**与 A2/A4 的区分**:

  • **A2**:仅**最后一页**正文结束后的**尾部**大面积留白。
  • **A4**:仅**最后一页**左右栏**底部**不齐。
  • **A5**:**任意页**、**单列内部**的中段竖向空洞,常伴随列间密度严重失衡。

**视觉诊断方法**(layout-detective 必做): 1. 确认模板为双栏;对该页分别只看左栏、只看右栏( mentally 画竖线分割)。 2. 在每一栏内,自上而下追踪**正文墨迹**的纵坐标区间;若两墨迹块之间出现高度 ≥ 约 **8 行正文**且无图无表的间隙,记为候选。 3. 若同一纵坐标带内另一栏为连续段落,候选升级为 **A5**。 4. 对照 `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` 与上述人工步骤交叉验证。

Category B:浮动体缺陷

此类缺陷关注图表的放置位置、尺寸匹配度以及对阅读流的干扰。

B1:浮动体远离首次引用 (Float-Reference Distance)

**定义**:图表出现在距离其首次被引用的页面过远的位置(通常页码差 ≥ 2)。

**视觉诊断方法**: 1. 在 PDF 中搜索图表标签(如 "Figure 1"、"Table 2")的首次出现位置。 2. 找到该图表实际出现的页面。 3. 计算页码差:`|图表页码 - 首次引用页码|`。 4. 若差值 ≥ 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

---

B2:浮动体大小不适配栏宽 (Float Width Mismatch)

**定义**:图片或表格的宽度未充分利用栏宽,过窄(两侧留白过大)或超宽(溢出或被截断)。

**视觉诊断方法**: 1. 对于单栏图表:对比图表宽度与栏宽,目测利用率。

  • 若图表宽度 < 栏宽的 85%,视为**过窄**。
  • 若图表宽度 > 栏宽(内容伸出右边界),视为**超宽**。

2. 对于跨栏图表(`figure*`/`table*`):对比图表宽度与页宽,标准同上。

**严重等级**:

  • 过窄:**Minor**(若多图表均过窄,升级为 Major)
  • 超宽/溢出:**Major**

**与日志信号的关联**:

  • 超宽常伴随 `Overfull \hbox` 警告(参见 D1)。

**诊断记录格式**:

- defect_id: B2
- object: "Figure 2"
- page: 3
- description: "图片宽度仅占栏宽约 60%,两侧留白过大"
- severity: minor

---

B3:浮动体连续堆叠 (Float Clustering)

**定义**:同一页或连续两页出现 3 个或以上的图表,且中间几乎无正文间隔,形成“图表页”。

**视觉诊断方法**: 1. 检查每一页的图表数量。 2. 若某页包含 ≥ 3 个图表,且正文少于 3 行,视为**浮动体堆叠**。 3. 若连续两页累计图表 ≥ 4 且中间正文极少,同样视为缺陷。

**严重等级**:**Minor**(但若导致阅读体验严重下降,可标为 Major)

**与日志信号的关联**:无直接日志,但大量浮动体可能引发 placement warning。

**诊断记录格式**:

- defect_id: B3
- page: 7
- description: "该页包含 3 个图表,正文仅 2 行"
- severity: minor

---

B4:浮动体跨页分裂 (Float Page Orphaning)

**定义**:一个图表(尤其是长表格)在不适当的位置断开,跨两页显示,且第二页未重复表头。

**视觉诊断方法**: 1. 检查跨页的表格或图表。 2. 若表格在分页处被截断,且下一页续表中缺少表头(或未使用 `longtable` 的重复表头功能),判定为缺陷。

**严重等级**:**Minor**(若为关键数据表,升级为 Major)

**与日志信号的关联**:无。

**诊断记录格式**:

- defect_id: B4
- object: "Table 4"
- page: 8-9
- description: "表格跨页分裂,第二页缺少表头"
- severity: minor

---

Category C:排版一致性缺陷

此类缺陷关注全篇排版风格的统一性。

C1:表格字号不统一 (Inconsistent Table Font Sizes)

**定义**:不同表格使用了差异明显的字号,通常由 `\resizebox` 或手动 `\tiny`/`\small` 滥用导致。

**视觉诊断方法**: 1. 对比全篇至少 3 个表格的字号大小。 2. 若发现某些表格的字号明显小于或大于其他表格,且差异超过 1 个等级(如一个用 `\small`,另一个用 `\footnotesize`),记录缺陷。 3. 特别注意使用 `\resizebox` 缩放表格导致的字号异常(文字被整体缩放,视觉上变形)。

**严重等级**:**Minor**

**与日志信号的关联**:无直接日志,但可在源码中搜索 `\resizebox`。

**诊断记录格式**:

- defect_id: C1
- description: "Table 1 使用 \small,Table 3 使用 \resizebox 导致字号偏小,全篇表格字号不统一"
- severity: minor

---

C2:图片分辨率/风格不一致 (Inconsistent Figure Quality/Style)

**定义**:论文中图片分辨率差异大,或风格(如字体、配色、线条粗细)不统一。

**视觉诊断方法**: 1. 检查所有图片的清晰度,

Read more
Ships withpaperfit

Vision-in-the-Loop Academic Typesetting Agent System PaperFit 是面向 Claude Code、Codex、Cursor 的 LaTeX 论文排版 Agent System。你只需要在论文项目根目录描述目标,PaperFit 会自动完成编译、页图渲染、视觉诊断、源码修复与最终验收。 为什么需要 · 核心能力 · 效果展示 · 快速开始 · 安装 · 使用方法 · 工作流 · 架构

Get the whole plugin