overflow-repair
Skill338 starsChanged 36 days agoMITView on GitHub
PaperFit overflow repair expertise for LaTeX paper layout.
In this repository10 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- .cursor/rules/paperfit.mdcCursor rule
- consistency-polisherSkill
- float-optimizerSkill
- paperfitSkill
- space-util-fixerSkill
- taxonomy-vtoSkill
- template-migratorSkill
- visual-inspectorSkill
- writing-polishSkill
The file
Files
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 文件 | 用于验证修复后溢出是否消除 |
输出规范
修改完成后,必须返回以下信息:
{
"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": []
}修复策略
策略选择流程
- 根据日志和视觉报告定位溢出位置与类型(段落/表格/公式/URL)。
- 按照下文各类型的修复策略依次尝试,从最不侵入的方案开始。
- 每次修改后,通知
orchestrator-agent触发重新编译以验证效果。 - 若当前策略无效,回退并尝试下一策略。
D1:段落文本溢出
问题特征:
- 日志:
Overfull \hbox (Xpt too wide) in paragraph at lines A--B - 视觉:某行文本伸出右边界
修复策略(按优先级):
- 引入断词点
在溢出单词的合适位置添加\-连字符,使 LaTeX 能在该处断行。% 修改前 This is a verylongwordthatdoesnotbreak. % 修改后 This is a very\-long\-word\-that\-does\-not\-break. - 调整段落级容差
在段落前临时增加\emergencystretch或调整\tolerance。
注意:修改后需恢复默认值,避免影响全局。{\emergencystretch=1em % 允许额外拉伸 1em This is the problematic paragraph content... } - 局部微调措辞(需
semantic-polish-agent介入)
若排版手段无法解决,可替换为稍短的近义词或调整语序。% 修改前 the implementation of the proposed methodology % 修改后 the implementation of our method
D1:表格单元格溢出
问题特征:
- 日志:
Overfull \hbox (Xpt too wide) in alignment at lines A--B - 视觉:表格某单元格内容超出列宽,与相邻列重叠或伸出表格边界
修复策略(按优先级):
- 改用
tabularx环境
将tabular替换为tabularx,并为文本列分配X列类型以允许自动换行。
规则:多个文本列应共同使用% 修改前 \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列,避免单列过宽。 - 手动设置列宽
使用p{宽度}列类型固定文本列宽度。\begin{tabular}{|l|p{4cm}|c|} - 精简表头或内容
若表头过长导致溢出,可缩写表头或使用换行。% 修改前 \textbf{Mean Average Precision at IoU 0.5} % 修改后 \textbf{mAP@0.5} - 调整字号(谨慎使用)
在表格环境内使用\small或\footnotesize,但需确保与全篇表格风格一致。\begin{table} \small \begin{tabular}{...} ... \end{tabular} \end{table} - 旋转表格
对于列数过多的宽表,使用\rotatebox或sidewaystable环境。\usepackage{rotating} ... \begin{sidewaystable} ... \end{sidewaystable}
D2:长公式未断行
问题特征:
- 视觉:公式长度接近或超过栏宽,未在运算符处断行
- 日志:可能伴随
Overfull \hbox在公式环境
修复策略(按优先级):
- 替换为多行公式环境
- 单行公式 →
multline:首行左对齐,末行右对齐,中间行居中。 - 多行对齐公式 →
align或aligned:在等号或运算符处对齐。
% 修改前(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} - 单行公式 →
- 使用
split环境嵌套在equation中
保留单个公式编号,但内部换行。\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} - 引入中间变量简化表达式
若公式过长且无明显断点,可拆分为多个子公式。% 修改前 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在参考文献区域
修复策略(按优先级):
- 使用
\url命令\url命令(由hyperref或url宏包提供)能自动在合适位置断行。% 修改前 https://github.com/very/long/url/that/overflows/the/margin % 修改后 \url{https://github.com/very/long/url/that/overflows/the/margin} - 启用参考文献断行
在导言区添加:
或对于\usepackage{url} \def\UrlBreaks{\do\/\do-} % 允许在 / 和 - 处断行biblatex:\usepackage[backend=biber, url=true]{biblatex} \setcounter{biburlnumpenalty}{100} \setcounter{biburlucpenalty}{100} \setcounter{biburllcpenalty}{100} - 手动添加断行点
在 URL 中允许断行处插入\linebreak[0]或使用\path命令。\path{https://github.com/very/long/url/\linebreak[0]that/overflows}
修复验证
每执行一项修复后,必须:
- 通知
orchestrator-agent重新编译。 - 检查编译日志中对应行的
Overfull \hbox是否消除或溢出量显著减少。 - 若问题持续存在,尝试下一优先级策略。
- 若所有策略均无效,标记为
partial或failed,并在报告中说明原因(如“公式语义复杂,无法自动断行,建议人工调整”)。
注意事项
- 表格修复后需检查视觉一致性:改用
tabularx后,确保全篇表格风格仍统一(参见consistency-polisher技能)。 - 公式断行需保持数学语义正确:不要在括号或函数名中间断行。
- URL 修复需保留超链接功能:使用
\url时自动包含超链接(若加载hyperref)。 - 避免全局字号修改:表格内的字号调整应局部化,并在同一文档中保持一致。
与其它技能的交互
- 若表格溢出修复后仍需调整列宽均衡,可联动
consistency-polisher技能。 - 若段落溢出需语义微调,转交
semantic-polish-agent处理。 - 修复结果最终由
quality-gatekeeper-agent验收。
Overflow Repair Skill 就绪。 等待 code-surgeon-agent 调用,执行溢出类修复任务。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

