mcpField
F
figure-table-quality

figure-table-quality

github.com/mathews-tom文档处理33744 次安装2 天前更新
代码仓库

关于 figure-table-quality

该技能审查论文编译 PDF 中图表的显示尺寸、可读性与一致性,面向准备提交 LaTeX 手稿的研究者。它结合源文件、绘图脚本和生成图像检查,并区分可自动修复的问题与需人工处理的设计决策。

主要功能

  1. 01计算图表显示缩放比例
  2. 02检查字体、标签与标记可读性
  3. 03审计表格排版及数值格式
  4. 04比较跨图表的样式一致性
  5. 05提供自动修复与人工处理建议

适用场景

  1. 01提交前检查 PDF 中图表的可读性
  2. 02查找缩放后过小的标签或标记
  3. 03核对多个图表的配色和字体

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mathews-tom/armory --skill figure-table-quality

安装后在 Claude Code 中输入/figure-table-quality确认已加载。

附带文件evals/cases.yaml

详细介绍

图表质量审计

**流水线位置:**第 2.5 阶段(位于 Grounding/Polish 与 Submission 之间)。 在 figure-rhetoric(内容)之后、arxiv-preflight(合规性)之前运行。 完整执行顺序请参阅 /manuscript-pipeline。

目的

验证手稿中的每个图表在编译后的 PDF 中是否以可读大小呈现。figure-rhetoric 会检查图表是否传达了正确的信息。此技能会检查读者是否能实际看清图表。

执行

第 1 步 — 构建显示比例映射

对于 .tex 源文件中的每个 \includegraphics:

  1. 提取显示宽度(例如,\textwidth、0.7\textwidth、0.55\textwidth)
  2. 使用文档几何设置计算以英寸为单位的有效显示宽度
  3. 查看图表生成脚本,找出每个图表的 figsize
  4. 计算:scale = display_width / figsize_width

还要从生成脚本或配置中提取:

  • 基础字体大小:标题、标签、刻度、图例、注释
  • 标记大小、线宽
  • 柱宽(用于分组柱状图)
第 2 步 — 逐图审计(全部 9 项检查)

对于每个图表,计算显示比例下的有效值并进行检查:

2a. 渲染时的字体大小
effective_font = script_font × scale
元素最小值警告阈值
坐标轴标题7pt8pt
刻度标签6pt7pt
图例文字6pt7pt
注释6pt7pt
分面标题7pt8pt

失败:如果任何元素低于最小值。 警告:如果任何元素低于警告阈值。

2b. 标签碰撞

检查以下位置是否存在文本重叠:

  • X 轴刻度标签(尤其是旋转角度 < 45° 且标签数 > 3 时)
  • Y 轴刻度标签(长文本字符串)
  • 彼此靠近的数据注释
  • 与数据重叠的图例条目

对于旋转标签:计算水平占用宽度,公式为 len(label) × char_width × cos(rotation)。如果占用宽度 > 刻度间距,则失败。

2c. 标记和线条的可见性
effective_marker = script_marker × scale
effective_linewidth = script_linewidth × scale
  • 有效大小低于 4pt 的标记:警告
  • 有效线宽低于 0.5pt 的线条:警告
2d. 柱状图可读性

对于分组柱状图:

  • 计算以英寸为单位的有效柱宽
  • 检查柱子是否可区分(有效宽度至少为 3pt)
  • 检查填充图案在有效大小下是否可见
  • 检查柱标签是否对齐
2e. 颜色与填充图案的无障碍性
  • 所有系列在灰度下是否都能区分?
  • 填充图案是否提供了与颜色互补的编码方式?
  • 是否使用了 5 种以上颜色且没有填充图案?警告
  • 是否为无关系列使用了相似颜色?
2f. 坐标轴范围效率
  • 计算数据范围与坐标轴范围的比例
  • 如果坐标轴范围中用于显示数据的部分不到 40%:警告(空间浪费)
  • 如果数据触及坐标轴边界:警告(数据被裁切)
2g. 注释可读性
  • 是否有数据注释彼此重叠?
  • 注释的位置是否避免遮挡数据?
  • 注释的格式(字体大小、字重)是否一致?
2h. 图例位置
  • 图例是否与任何数据点或柱子重叠?
  • 类似图表中的图例位置是否一致?
  • 对于多面板图表:图例是否仅显示在第一个面板中(而非重复显示)?
2i. 空白与边距
  • tight_layout() 或同等功能是否正确处理了边距?
  • 分面标题是否被截断?
  • 空白是否过多(图表区域中空白超过 30%)?
第 3 步 — 表格审计

对于每个 \begin{tabular} 或 \begin{table}:

  1. 列对齐 — 数值列是否右对齐?文本是否左对齐?
  2. 线条样式 — 是否使用 booktabs(\toprule、\midrule、\bottomrule)?是否没有垂直线?
  3. 标题位置 — 表格标题是否位于表格上方,图注是否位于图表下方?
  4. 宽度 — 表格是否超出页边距?检查是否使用了 \resizebox 或 \small 等补救方法。
  5. 数字格式 — 小数位数是否一致?小数点是否对齐?
  6. 表头清晰度 — 列标题是否明确无歧义?
步骤 4 — 跨图一致性
  1. 共享元素 — 共用坐标轴的图是否使用相同的刻度?
  2. 配色方案 — 所有图中,同一条件是否使用相同颜色?
  3. 标签词汇 — 所有图中的条件/模型标签是否一致?
  4. 字体系列 — 所有图是否使用相同字体?

输出格式

## Figure & Table Quality Report

### Display Scale Map
| Figure | figsize | display | scale | verdict |
|--------|---------|---------|-------|---------|
| fig1   | 7×4     | 6.27"   | 90%   | OK      |

### Per-Figure Findings
#### Figure 1 (fig1_resolve_rates.pdf)
- [PASS] Font sizes: tick 8.1pt, legend 8.1pt
- [PASS] No label collisions
- [WARN] Bar width 3.2pt — borderline at print size
...

### Table Findings
#### Table 1 (table1_resolve.tex)
- [PASS] Booktabs rules
- [PASS] Caption above tabular
...

### Cross-Figure Consistency
- [PASS] Color scheme consistent
- [FAIL] Label mismatch: fig2 uses "cmd", other figures use "Yuj"

### Summary
- [count] FAIL (must fix)
- [count] WARN (should fix)
- [count] PASS

自动修复规则

自动修复(直接应用):

  • 将重叠的 x 轴标签旋转角度增大(20°/15° → 45°)
  • 缩小 figsize 以适应显示环境(避免缩小幅度超过 25%)
  • 添加缺失的 tight_layout() 调用
  • 统一不同图中的标签文本(与配置/事实来源保持一致)

需要人工处理(提示并等待):

  • 重新设计图表(更改布局、面板排列)
  • 更改坐标轴范围
  • 更改配色方案
  • 增大字体,以致影响布局
  • 重构表格

集成

此技能会读取:

  • .tex 源文件(\includegraphics 指令、\geometry 设置)
  • 图表生成脚本(figsize、字体大小、旋转角度、注释)
  • 图表配置文件(共享设置)
  • 生成的图表文件(若 PDF 可读取,则进行视觉抽查)
  • 表格 .tex 文件

它不会:

  • 评估图表是否传达了正确的信息(这属于 figure-rhetoric)
  • 检查是否符合 arXiv 格式要求(这属于 arxiv-preflight)
  • 审核正文或论断(这属于 manuscript-review)

评论

支持 Markdown