Help us improve
Share bugs, ideas, or general feedback.
From paperfit
修复 LaTeX 文档中 Overfull hbox、长公式未断行及 URL/长标识符溢出等 D 类排版缺陷。自动调用并按最小修改原则执行 `.tex` 源码修改。
npx claudepluginhub openraiser/paperfitHow this skill is triggered — by the user, by Claude, or both
Slash command
/paperfit:overflow-repairThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
本技能专门处理 **Category D:溢出与对齐缺陷**,包括:
Fixes LaTeX layout defects: widows/orphans, excessive trailing whitespace, page budget violations, unbalanced column heights, and vertical holes in two-column pages. Prioritizes typographic control commands over semantic rewrites.
Audits LaTeX academic manuscripts for typographic conventions including booktabs tables, caption placement, dashes/quotes, units/numbers, cross-references, layout, and polish. Useful for paper review phase.
Automates conversion of LaTeX academic papers between publisher formats (Springer/IPOL to MDPI/IEEE/Nature) via extraction, content injection, formatting fixes, and PDF compilation.
Share bugs, ideas, or general feedback.
本技能专门处理 Category D:溢出与对齐缺陷,包括:
该技能由 code-surgeon-agent 调用,执行对 .tex 源码的精确修改,以消除或缓解溢出问题。所有修复遵循 最小修改原则,不改变学术内容。
当 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": []
}
orchestrator-agent 触发重新编译以验证效果。问题特征:
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
问题特征:
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}
问题特征:
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}
问题特征:
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 时自动包含超链接(若加载 hyperref)。consistency-polisher 技能。semantic-polish-agent 处理。quality-gatekeeper-agent 验收。Overflow Repair Skill 就绪。 等待 code-surgeon-agent 调用,执行溢出类修复任务。