# Paperfit

> 本技能专门处理 **Category C：排版一致性缺陷**，包括： Use when this capability is needed.

- Skill: `tomevault-io/paperfit` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/paperfit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/paperfit/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/paperfit

---

# Consistency Polisher Skill

## 概述

本技能专门处理 **Category C：排版一致性缺陷**，包括：

- **C1**：表格字号不统一（`\resizebox` 滥用导致字号参差）
- **C2**：图片分辨率/风格不一致
- **C3**：Caption 格式不统一

该技能由 `code-surgeon-agent` 调用，通过对表格字号、图片尺寸策略、标题格式的统一化处理，消除全篇排版风格割裂，使论文呈现出专业、一致的视觉形象。

一致性缺陷通常不致命，但严重影响审稿人对论文专业度的第一印象。本技能的目标是建立并强制执行全篇统一的排版规范。

---

## 适用场景

| 缺陷 ID | 描述 | 优先级 | 是否自动修复 |
|---------|------|--------|-------------|
| C1 | 表格字号不统一 | Medium | 是 |
| C2 | 图片分辨率/风格不一致 | Low | 否（仅诊断并建议） |
| C3 | Caption 格式不统一 | Medium | 是 |

---

## 输入规范

| 输入项 | 来源 | 说明 |
|--------|------|------|
| 主 `.tex` 文件路径 | 项目上下文 | 需修改的源文件 |
| 排版侦探报告 | `layout-detective-agent` 输出 | 包含 C 类缺陷的具体描述 |
| 模板信息 | `templates.yaml` 或上下文 | 会议/期刊模板的字号、栏宽等默认参数 |

---

## 输出规范

```json
{
  "skill": "consistency-polisher",
  "status": "success | partial | failed",
  "modified_files": ["main.tex", "tables/experiments.tex"],
  "changes": [
    {
      "defect_id": "C1",
      "object": "Table 2",
      "action": "移除 \\resizebox，改用 tabularx 并统一使用 \\small",
      "before_snippet": "\\resizebox{\\linewidth}{!}{\\begin{tabular}{...}",
      "after_snippet": "{\\small\\begin{tabularx}{\\linewidth}{...}}"
    }
  ],
  "suggestions": [
    {
      "defect_id": "C2",
      "object": "Figure 5",
      "message": "图片分辨率过低（72 DPI），建议替换为至少 300 DPI 的矢量图或高分辨率位图"
    }
  ],
  "unresolved": []
}
```

---

## 修复策略

### 通用原则

1. **建立风格锚点**：从全篇中自动识别或由用户指定一个“最佳实践”表格/图片/Caption 作为模板，其余向它看齐。
2. **最小破坏**：修改仅限于样式层面，不改变表格内容、图片信息或标题文本。
3. **模板优先**：若会议/期刊模板提供了官方样式文件，优先遵循模板预设，而非自定义样式。

---

### C1：表格字号不统一

**问题特征**：
- 不同表格使用了差异明显的字号（如一个 `\small`，另一个 `\tiny`）。
- 使用 `\resizebox{\linewidth}{!}{...}` 整体缩放表格，导致文字被非线性缩放而变形，且与其他表格字号不一致。

**修复策略（按优先级）**：

#### 策略 1：移除 `\resizebox`，改用 `tabularx` 自适应宽度

`\resizebox` 是表格一致性的头号杀手，必须无条件移除。

```latex
% 修改前
\begin{table}
\centering
\resizebox{\linewidth}{!}{
  \begin{tabular}{|l|c|c|c|}
  \hline
  Method & Metric1 & Metric2 & Metric3 \\
  \hline
  Ours & 95.2 & 87.3 & 78.1 \\
  \hline
  \end{tabular}
}
\caption{Results}
\end{table}

% 修改后
\begin{table}
\centering
\small  % 统一字号
\begin{tabularx}{\linewidth}{|l|X|X|X|}
\hline
Method & Metric1 & Metric2 & Metric3 \\
\hline
Ours & 95.2 & 87.3 & 78.1 \\
\hline
\end{tabularx}
\caption{Results}
\end{table}
```

*注意*：确保导言区已加载 `tabularx` 宏包。若未加载，需添加 `\usepackage{tabularx}`。

#### 策略 2：统一全篇表格字号

检查全篇表格的字号设置，确定一个“锚点字号”（通常是模板默认的正文字号，或 `\small`），将所有表格统一为该字号。

**识别当前字号**：
- 搜索 `\begin{table}` 后的 `\small`、`\footnotesize`、`\scriptsize`、`\tiny` 等命令。
- 搜索 `\resizebox` 并评估其实际视觉字号。

**统一方法**：
- 若表格无字号声明，且模板默认表格字号与正文相同，则不加字号命令（让模板决定）。
- 若需缩小，优先使用 `\small`；若仍超宽，考虑改为 `tabularx` 而非进一步缩小字号。
- 绝对禁止使用 `\tiny` 或 `\scriptsize`（不可阅读）。

```latex
% 统一风格示例：在每个 table 环境内首行添加 \small
\begin{table}
\small
\centering
\begin{tabularx}{\linewidth}{...}
...
\end{tabularx}
\end{table}
```

#### 策略 3：检测并修复列宽失衡导致的字号误用

有时作者使用超小字号是因为表格列太多、内容太宽。此时应优先重构列格式（如合并相似列、使用缩写表头、改为跨栏表），而非暴力缩小字号。

```latex
% 修改前（滥用 \tiny）
\begin{table}
\tiny
\begin{tabular}{|l|c|c|c|c|c|c|c|c|}
...
\end{tabular}
\end{table}

% 修改后（合并为关键列 + 缩写表头 + 跨栏宽表）
\begin{table*}
\small
\begin{tabularx}{\textwidth}{|l|X|X|X|}
\hline
\textbf{Method} & \textbf{Prec.} & \textbf{Rec.} & \textbf{F1} \\
\hline
...
\end{tabularx}
\end{table*}
```

---

### C2：图片分辨率/风格不一致

**问题特征**：
- 不同图片清晰度差异大（矢量图 vs 低分辨率截图）。
- 图片中的字体、配色、线条风格不统一。
- 同一论文中混用 `.pdf`、`.png`、`.jpg`，且质量参差。

**本技能的定位**：**仅诊断和建议，不自动修改图片内容**。

#### 诊断与建议生成

1. **检查图片文件格式**：
   - 推荐：`.pdf`（矢量图）、`.eps`（矢量图）。
   - 可接受：高分辨率 `.png`（≥300 DPI）。
   - 避免：低分辨率 `.jpg`、屏幕截图。

2. **生成逐图建议**：

```json
{
  "defect_id": "C2",
  "object": "Figure 5 (figures/ablation.png)",
  "issue": "图片分辨率约 72 DPI，放大后锯齿明显",
  "suggestion": "请使用原始矢量图导出为 PDF，或以至少 300 DPI 重新渲染位图"
}
```

3. **风格一致性建议**：
   - 若检测到多张图来自不同工具（如 Matplotlib、Excel、draw.io），提示用户统一绘图工具和导出设置。
   - 建议使用统一的配色方案（如 ColorBrewer）和字体（如 Times New Roman 或 Helvetica）。

#### 输出示例

```json
"suggestions": [
  {
    "defect_id": "C2",
    "object": "Figure 1, Figure 3, Figure 5",
    "message": "三张图使用了三种不同的配色风格，建议统一使用会议模板推荐的配色方案。"
  }
]
```

---

### C3：Caption 格式不统一

**问题特征**：
- 图表标题的字体不一致（有的加粗，有的未加粗）。
- 标题结尾标点不一致（有的有句号，有的无）。
- 表格标题位置不一致（有的在表格上方，有的在下方）。
- 标题与图表主体的间距不一致。

**修复策略**：

#### 策略 1：统一使用 `caption` 宏包配置

在导言区加载 `caption` 宏包并设置全局样式，一次性统一全篇标题格式。

```latex
\usepackage{caption}
\captionsetup{
  font=small,           % 字号
  labelfont=bf,         % 标签加粗（"Figure 1:" 中的 "Figure 1" 部分）
  textfont=it,          % 标题文本斜体（可选）
  labelsep=period,      % 标签与文本分隔符：period = 句点，colon = 冒号
  justification=raggedright,  % 左对齐（或 justified 两端对齐）
  singlelinecheck=false % 即使单行也应用设置
}
```

*针对表格和图片的差异化设置*：

```latex
% 表格标题默认在上方，图片在下方，无需额外设置，LaTeX 自动处理。
% 若需微调间距：
\captionsetup[table]{position=above, skip=6pt}
\captionsetup[figure]{position=below, skip=6pt}
```

#### 策略 2：检查并修复手动设置的标题样式

搜索 `.tex` 文件中的 `\caption` 命令，移除其前后的手动字体设置（如 `\textbf{\caption{...}}`），因为这些手动设置会覆盖全局配置。

```latex
% 修改前
\caption{\textbf{This is a bold caption.}}

% 修改后（依赖全局 caption 设置）
\caption{This is a caption with unified style.}
```

#### 策略 3：统一结尾标点

检查所有 `\caption{}` 的内容，确保标点风格一致。推荐：
- 学术论文标题通常**不加句号**。
- 若标题包含完整句子，可保留句号，但全篇统一。

```latex
% 统一移除标题末尾的句号
\caption{Results on the validation set.}  →  \caption{Results on the validation set}
```

#### 策略 4：修复表格标题位置错误

LaTeX 中表格标题应放在 `\begin{tabular}` 之前，图片标题应放在 `\includegraphics` 之后。

```latex
% 正确的表格标题位置
\begin{table}
\centering
\caption{Table caption here}  % 在上方
\begin{tabular}{...}
...
\end{tabular}
\end{table}

% 错误的表格标题位置（标题在表格下方）
\begin{table}
\centering
\begin{tabular}{...}
...
\end{tabular}
\caption{This caption is misplaced.}
\end{table}
```

若发现位置错误，将 `\caption` 命令移动到正确位置。

---

## 全局一致性检查清单

在修复 C 类缺陷时，应同时对全篇进行以下检查：

| 检查项 | 目标状态 | 修复方法 |
|--------|----------|----------|
| 所有表格是否使用相同字号？ | 全篇统一（通常 `\small` 或模板默认） | 移除 `\resizebox`，添加统一的字号命令 |
| 所有图片是否使用 `\linewidth`？ | 是（单栏）或 `\textwidth`（跨栏） | 替换固定宽度为相对宽度 |
| 所有 Caption 字体是否一致？ | 是 | 使用 `caption` 宏包全局配置 |
| 表格标题是否都在表格上方？ | 是 | 移动 `\caption` 命令 |
| 图片标题是否都在图片下方？ | 是 | 移动 `\caption` 命令 |
| 标题结尾标点是否统一？ | 全篇统一（推荐无句号） | 移除或添加标点 |
| 是否使用了 `booktabs` 绘制三线表？ | 推荐 | 将 `\hline` 替换为 `\toprule`、`\midrule`、`\bottomrule` |

---

## 与其它技能的协作

- **表格修复 (overflow-repair)**：C1 的 `\resizebox` 移除常与 D1 的表格溢出修复联动，可合并处理。
- **浮动体优化 (float-optimizer)**：B2 的宽度适配与 C1 的表格字号统一通常同时进行。
- **模板迁移 (template-migrator)**：在跨模板迁移后，本技能确保新模板下的样式一致性。

---

## 修复验证

每完成一项修复后：

1. **重新编译**。
2. **渲染页图**，逐页对比修改前后的表格字号、标题格式。
3. 检查是否引入新的不一致（如某个表格因移除 `\resizebox` 而超宽），若有，转交 `overflow-repair` 处理。

---

**Consistency Polisher Skill 就绪。** 等待调用，消除排版风格割裂，交付视觉统一的作品。

---
> Source: [OpenRaiser/PaperFit](https://github.com/OpenRaiser/PaperFit) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-22 -->

