Skip to content
Back to skills

Overflow Repair

ASecurity

本技能专门处理 **Category D:溢出与对齐缺陷**,包括:

  • 337 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
developmentgogitbackend

Security analysis

A100/100

Scanned October 1, 2026

npx -y skills add OpenRaiser/PaperFit --skill overflow-repair --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Overflow Repair?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Overflow Repair
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/openraiser-overflow-repair/badge)](https://www.skillsdirectory.com/skills/openraiser-overflow-repair)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Overflow Repair Skill

## 概述

本技能专门处理 **Category D:溢出与对齐缺陷**,包括:

- **D1**:Overfull hbox(段落文本、表格单元格、公式溢出栏宽)
- **D2**:长公式未合理断行
- **D3**:URL/长标识符溢出

该技能由 `code-surgeon-agent` 调用,执行对 `.tex` 源码的精确修改,以消除或缓解溢出问题。所有修复遵循 **最小修改原则**,不改变学术内容。

Source-changing 边界:在 PaperFit runtime 中,本技能默认只贡献 repair plan 和风险说明;只有显式 `--apply` 或宿主等价授权存在时才可写回源码。多轮写回必须同时显式启用 `--apply --max-rounds N`,并且每轮通过 approval carry-forward、artifact freshness、candidate approval scope gate 和 gatekeeper `CONTINUE` 后才能继续。

---

## 适用场景

当 `layout-detective-agent` 或 `rule-engine-agent` 报告中出现以下缺陷 ID 时,路由至本技能:

| 缺陷 ID | 描述 | 优先级 |
|---------|------|--------|
| D1 | Overfull hbox(段落/表格/公式) | High |
| D2 | 长公式未断行 | High |
| D3 | URL/长标识符溢出 | Medium |

---

## 输入规范

| 输入项 | 来源 | 说明 |
|--------|------|------|
| 主 `.tex` 文件路径 | 项目上下文 | 需修改的源文件 |
| 规则引擎报告 | `rule-engine-agent` 输出 | 包含溢出位置(行号)、溢出量、对象 |
| 排版侦探报告 | `layout-detective-agent` 输出 | 包含视觉确认的溢出页面和对象 |
| 当前编译日志 | `.log` 文件 | 用于验证修复后溢出是否消除 |

---

## 输出规范

修改完成后,必须返回以下信息:

```json
{
  "skill": "overflow-repair",
  "status": "success | partial | failed",
  "modified_files": ["main.tex", "tables/table1.tex"],
  "changes": [
    {
      "defect_id": "D1",
      "object": "Table 2",
      "action": "替换 tabular 为 tabularx,设置列宽比例",
      "before": "\\begin{tabular}{|l|c|c|}",
      "after": "\\begin{tabularx}{\\linewidth}{|l|X|X|}"
    }
  ],
  "unresolved": []
}
```

---

## 修复策略

### 策略选择流程

1. 根据日志和视觉报告定位溢出位置与类型(段落/表格/公式/URL)。
2. 按照下文各类型的修复策略依次尝试,从最不侵入的方案开始。
3. 每次修改后,通知 `orchestrator-agent` 触发重新编译以验证效果。
4. 若当前策略无效,回退并尝试下一策略。

---

### D1:段落文本溢出

**问题特征**:
- 日志:`Overfull \hbox (Xpt too wide) in paragraph at lines A--B`
- 视觉:某行文本伸出右边界

**修复策略(按优先级)**:

1. **引入断词点**  
   在溢出单词的合适位置添加 `\-` 连字符,使 LaTeX 能在该处断行。
   ```latex
   % 修改前
   This is a verylongwordthatdoesnotbreak.
   % 修改后
   This is a very\-long\-word\-that\-does\-not\-break.
   ```

2. **调整段落级容差**  
   在段落前临时增加 `\emergencystretch` 或调整 `\tolerance`。
   ```latex
   {\emergencystretch=1em  % 允许额外拉伸 1em
    This is the problematic paragraph content...
   }
   ```
   *注意:修改后需恢复默认值,避免影响全局。*

3. **局部微调措辞**(需 `semantic-polish-agent` 介入)  
   若排版手段无法解决,可替换为稍短的近义词或调整语序。
   ```latex
   % 修改前
   the implementation of the proposed methodology
   % 修改后
   the implementation of our method
   ```

---

### D1:表格单元格溢出

**问题特征**:
- 日志:`Overfull \hbox (Xpt too wide) in alignment at lines A--B`
- 视觉:表格某单元格内容超出列宽,与相邻列重叠或伸出表格边界

**修复策略(按优先级)**:

1. **改用 `tabularx` 环境**  
   将 `tabular` 替换为 `tabularx`,并为文本列分配 `X` 列类型以允许自动换行。
   ```latex
   % 修改前
   \begin{tabular}{|l|c|c|}
   \hline
   Method & Description & Score \\
   \hline
   Ours & A very long description that causes overflow & 0.95 \\
   \hline
   \end{tabular}

   % 修改后
   \usepackage{tabularx}  % 确保导言区已引入
   ...
   \begin{tabularx}{\linewidth}{|l|X|X|}
   \hline
   Method & Description & Score \\
   \hline
   Ours & A very long description that causes overflow & 0.95 \\
   \hline
   \end{tabularx}
   ```
   *规则*:多个文本列应共同使用 `X` 列,避免单列过宽。

2. **手动设置列宽**  
   使用 `p{宽度}` 列类型固定文本列宽度。
   ```latex
   \begin{tabular}{|l|p{4cm}|c|}
   ```

3. **精简表头或内容**  
   若表头过长导致溢出,可缩写表头或使用换行。
   ```latex
   % 修改前
   \textbf{Mean Average Precision at IoU 0.5}
   % 修改后
   \textbf{mAP@0.5}
   ```

4. **调整字号(谨慎使用)**  
   在表格环境内使用 `\small` 或 `\footnotesize`,但需确保与全篇表格风格一致。
   ```latex
   \begin{table}
   \small
   \begin{tabular}{...}
   ...
   \end{tabular}
   \end{table}
   ```

5. **旋转表格**  
   对于列数过多的宽表,使用 `\rotatebox` 或 `sidewaystable` 环境。
   ```latex
   \usepackage{rotating}
   ...
   \begin{sidewaystable}
   ...
   \end{sidewaystable}
   ```

---

### D2:长公式未断行

**问题特征**:
- 视觉:公式长度接近或超过栏宽,未在运算符处断行
- 日志:可能伴随 `Overfull \hbox` 在公式环境

**修复策略(按优先级)**:

1. **替换为多行公式环境**  
   - 单行公式 → `multline`:首行左对齐,末行右对齐,中间行居中。
   - 多行对齐公式 → `align` 或 `aligned`:在等号或运算符处对齐。
   ```latex
   % 修改前(equation 环境)
   \begin{equation}
   f(x) = a_1 x^1 + a_2 x^2 + a_3 x^3 + a_4 x^4 + a_5 x^5 + a_6 x^6
   \end{equation}

   % 修改后(multline 环境)
   \begin{multline}
   f(x) = a_1 x^1 + a_2 x^2 + a_3 x^3 \\
   + a_4 x^4 + a_5 x^5 + a_6 x^6
   \end{multline}

   % 或 align 环境(在等号处对齐)
   \begin{align}
   f(x) &= a_1 x^1 + a_2 x^2 + a_3 x^3 \nonumber \\
        &\quad + a_4 x^4 + a_5 x^5 + a_6 x^6
   \end{align}
   ```

2. **使用 `split` 环境嵌套在 `equation` 中**  
   保留单个公式编号,但内部换行。
   ```latex
   \begin{equation}
   \begin{split}
   f(x) &= a_1 x^1 + a_2 x^2 + a_3 x^3 \\
        &\quad + a_4 x^4 + a_5 x^5 + a_6 x^6
   \end{split}
   \end{equation}
   ```

3. **引入中间变量简化表达式**  
   若公式过长且无明显断点,可拆分为多个子公式。
   ```latex
   % 修改前
   P(y|x) = \frac{\exp(\sum_i w_i f_i(x,y))}{\sum_{y'}\exp(\sum_i w_i f_i(x,y'))}

   % 修改后
   Let $S(x,y) = \sum_i w_i f_i(x,y)$, then
   \begin{equation}
   P(y|x) = \frac{\exp(S(x,y))}{\sum_{y'}\exp(S(x,y'))}
   \end{equation}
   ```

---

### D3:URL/长标识符溢出

**问题特征**:
- 视觉:参考文献中的 URL 或 DOI 伸出右边界
- 日志:`Overfull \hbox` 在参考文献区域

**修复策略(按优先级)**:

1. **使用 `\url` 命令**  
   `\url` 命令(由 `hyperref` 或 `url` 宏包提供)能自动在合适位置断行。
   ```latex
   % 修改前
   https://github.com/very/long/url/that/overflows/the/margin
   % 修改后
   \url{https://github.com/very/long/url/that/overflows/the/margin}
   ```

2. **启用参考文献断行**  
   在导言区添加:
   ```latex
   \usepackage{url}
   \def\UrlBreaks{\do\/\do-}  % 允许在 / 和 - 处断行
   ```
   或对于 `biblatex`:
   ```latex
   \usepackage[backend=biber, url=true]{biblatex}
   \setcounter{biburlnumpenalty}{100}
   \setcounter{biburlucpenalty}{100}
   \setcounter{biburllcpenalty}{100}
   ```

3. **手动添加断行点**  
   在 URL 中允许断行处插入 `\linebreak[0]` 或使用 `\path` 命令。
   ```latex
   \path{https://github.com/very/long/url/\linebreak[0]that/overflows}
   ```

---

## 修复验证

每执行一项修复后,必须:

1. 通知 `orchestrator-agent` 重新编译。
2. 检查编译日志中对应行的 `Overfull \hbox` 是否消除或溢出量显著减少。
3. 若问题持续存在,尝试下一优先级策略。
4. 若所有策略均无效,标记为 `partial` 或 `failed`,并在报告中说明原因(如“公式语义复杂,无法自动断行,建议人工调整”)。

---

## 注意事项

- **表格修复后需检查视觉一致性**:改用 `tabularx` 后,确保全篇表格风格仍统一(参见 `consistency-polisher` 技能)。
- **公式断行需保持数学语义正确**:不要在括号或函数名中间断行。
- **URL 修复需保留超链接功能**:使用 `\url` 时自动包含超链接(若加载 `hyperref`)。
- **避免全局字号修改**:表格内的字号调整应局部化,并在同一文档中保持一致。

---

## 与其它技能的交互

- 若表格溢出修复后仍需调整列宽均衡,可联动 `consistency-polisher` 技能。
- 若段落溢出需语义微调,转交 `semantic-polish-agent` 处理。
- 修复结果最终由 `quality-gatekeeper-agent` 验收。

---

**Overflow Repair Skill 就绪。** 等待 `code-surgeon-agent` 调用,执行溢出类修复任务。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.