Install
$ agentstack add skill-openraiser-paperfit-space-util-fixer ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Space Utilization Fixer Skill
概述
本技能专门处理 Category A:空间利用缺陷,包括:
- A1:孤行/寡行(Widow/Orphan Lines)
- A2:末页大面积留白(Excessive Trailing Whitespace)
- A3:页数预算违反(Page Budget Violation)
- A4:双栏末页左右栏高度不齐(Unbalanced Column Heights)
- A5:双栏页内列竖向空洞(栏内中段大块无图无表空白,常与
figure*/[H]/不当断页有关)
该技能由 code-surgeon-agent 或 semantic-polish-agent 调用,通过对段落级排版控制、浮动体调度和最小语义改写的组合运用,优化页面空间分配,使文档达到专业级的视觉均衡。
空间利用问题的修复常常需要多轮迭代,因为局部调整会影响全局分页。因此,每次修改后必须重新编译并审查页图。
适用场景
| 缺陷 ID | 描述 | 优先级 | 是否允许语义修改 | |---------|------|--------|-----------------| | A1 | 孤行/寡行 | High | 是(最后手段) | | A2 | 末页大面积留白 | High | 是(最后手段) | | A3 | 页数预算违反 | Critical | 是(最后手段) | | A4 | 双栏末页左右栏高度不齐 | Medium | 否 | | A5 | 双栏页内列竖向空洞(非末页、栏内大块无正文空白) | High | 视情况 |
输入规范
| 输入项 | 来源 | 说明 | |--------|------|------| | 主 .tex 文件路径 | 项目上下文 | 需修改的源文件 | | 排版侦探报告 | layout-detective-agent 输出 | 包含 A 类缺陷的页码和描述 | | 目标页数(若适用) | 用户约束 | A3 修复必须提供 | | 模板类型 | templates.yaml 或上下文 | 单栏/双栏 |
输出规范
{
"skill": "space-util-fixer",
"status": "success | partial | failed",
"modified_files": ["main.tex"],
"changes": [
{
"defect_id": "A1",
"object": "第4页顶部孤行",
"action": "在段落前添加 \\looseness=-1",
"before_snippet": "The proposed method achieves...",
"after_snippet": "{\\looseness=-1 The proposed method achieves...}"
}
],
"unresolved": []
}
修复策略
通用原则
- 先排版,后语义:优先使用 LaTeX 原生的排版控制命令,仅在无效时才考虑语义级改写。
- 局部修改,全局验证:改动一段可能影响后续多页分页,必须完整编译并检查全文档。
- 避免硬性分页:禁止滥用
\newpage或\clearpage来“凑页数”,这会破坏文档结构的自然性。
A1:孤行/寡行修复
问题特征:
- 段落最后一行单独出现在下一页顶部(孤行)。
- 段落第一行单独留在上一页底部(寡行)。
- 段落末尾仅含 1-3 个单词的短行(段尾小尾巴)。
修复策略(严格按优先级顺序尝试):
策略 1:段落级收紧 (\looseness=-1)
通过在段落前设置 \looseness=-1,指示 TeX 引擎尝试将段落收缩一行,从而消除孤行或小尾巴。
% 修改前
The proposed method achieves state-of-the-art performance on several
benchmarks, demonstrating the effectiveness of our approach.
% 修改后
{\looseness=-1 The proposed method achieves state-of-the-art performance on several
benchmarks, demonstrating the effectiveness of our approach.}
注意:
- 必须将整个段落用花括号
{ }括起,以限制\looseness的作用范围。 - 若段落本身很短,收缩可能导致过紧的行距,需在页图上确认可接受。
策略 2:段落级扩张 (\looseness=1)
若段落太紧,可尝试扩张一行,使段末行变长。
{\looseness=1 This paragraph will be typeset with one more line...}
策略 3:调整段落间胶水 (\emergencystretch)
为特定段落增加紧急拉伸量,允许行间略微拉伸以调整断行。
{\emergencystretch=1em This paragraph content...}
策略 4:微调上下文句长分布(需 semantic-polish-agent)
若排版控制无效,则进行最小语义改写:
- 在段落中增删 3-8 个单词(如将
in order to改为to,或将demonstrate改为show)。 - 调整从句结构,但不改变学术原意。
% 修改前
The proposed method achieves state-of-the-art performance on several
benchmarks, demonstrating the effectiveness of our approach.
% 修改后
The proposed method achieves state-of-the-art results on several
benchmarks, showing the effectiveness of our approach.
语义改写必须由 semantic-polish-agent 执行,本技能仅提出请求。
策略 5:全局调整 widow/orphan 惩罚
在导言区增加以下设置(通常模板已包含,可作为兜底):
\widowpenalty=10000
\clubpenalty=10000
\displaywidowpenalty=10000
注意:此设置影响全局,需谨慎。若模板已设置,则无需重复。
A2:末页大面积留白修复
问题特征:
- 最后一页(参考文献前或后)空白区域超过页面高度的 20%。
修复策略(按优先级):
策略 1:前移浮动体
检查倒数第二、第三页是否有可前移的图表。调整其位置参数 [htbp],使其占据末页空白区域。
% 将原本放在倒数第二页的图强制前移
\begin{figure}[t] → \begin{figure}[ht]
策略 2:调整局部垂直间距
在不影响整体美观的前提下,微调末页前的某些垂直间距(如 \vspace、章节间距)。
% 轻微缩小最后一节前的间距
\vspace{-0.5em}
\section{Conclusion}
注意:不要制造新的视觉不协调。
策略 3:适当扩写结论或讨论部分(需语义润色)
在结论、讨论或分析段落中增加有实质内容的 2-4 行文本(约 30-60 词),以自然填充空白。
此操作必须由 semantic-polish-agent 执行。
策略 4:增加附录或致谢(最后手段)
若用户同意,可将部分非核心内容(如额外消融实验)从正文移至附录,或在末页后增加致谢部分。
A3:页数预算修复
问题特征:
- 实际总页数与目标页数不符(如会议要求 9 页,实际 8 页或 10 页)。
修复策略:
本缺陷修复需要系统性操作,通常结合多种手段。
情况 1:超页(实际页数 > 目标页数)
优先级从高到低:
- 压缩浮动体
- 缩小超大图片(
width=0.95\linewidth代替\linewidth)。 - 将跨页长表格改为
longtable(可跨页,避免独占一页)。 - 调整浮动体位置,使其更紧凑地填充页面。
- 缩减垂直间距
- 使用
\vspace{-0.2cm}微调节标题、图表与正文的间距。 - 检查是否有冗余的
\newline或空行。
- 精炼文字(语义级)
在非核心段落(Related Work、Introduction 末尾)进行精简:
- 删除冗余修饰词。
- 合并短句。
- 将被动语态改为主动语态(通常更短)。
- 压缩参考文献
若参考文献过多,使用 \bibliographystyle{abbrv} 或类似缩写样式,或使用 biblatex 的压缩选项。
- 缩小页边距(谨慎)
若模板允许,使用 \usepackage[margin=...]{geometry} 微调边距。必须在模板允许范围内。
情况 2:缺页(实际页数 < 目标页数)
优先级从高到低:
- 检查浮动体堆积
是否因 \FloatBarrier 或 [H] 导致页面空白?若是,先按 B 类缺陷修复。
- 适当扩写结论、讨论或分析段落
增加 5-10 行有实质内容的分析,例如:
- 深入解释某个实验结果的含义。
- 补充一个简短的局限性讨论。
- 强化与相关工作的对比。
- 增加附录或补充材料
若会议允许附录且不计入页数限制,可将部分内容移至附录,使正文恰好满页。
- 微调图表尺寸
将部分图片略微放大(width=1.0\linewidth 代替 0.95\linewidth),使其占据更多空间但不溢出。
- 增加分页点
在合适位置(如章节末尾)添加 \newpage 迫使内容分页,但必须确保不产生孤页。
A4:双栏末页左右栏高度不齐
问题特征:
- 双栏模板最后一页,左栏和右栏底部高度差超过 2 行。
修复策略:
策略 1:使用 \balance 或 flushend 宏包
在导言区加载 flushend 宏包,自动平衡末页两栏高度。
\usepackage{flushend}
注意:flushend 与某些宏包(如 multicol)可能冲突,需在特定模板下测试。
策略 2:手动平衡
若自动平衡无效,在最后一节结束前插入 \balance 命令(需 balance 宏包)。
\usepackage{balance}
...
\section{Conclusion}
...
\balance
\end{document}
策略 3:微调最后一段的断行
对末页最后一段使用 \looseness=-1 或 \looseness=1,改变其行数,从而影响两栏高度。
策略 4:调整浮动体位置
若末页有浮动体,尝试将其移至前一页或强制放在当前页底部,以改变栏内内容分布。
A5:双栏页内列竖向空洞
问题特征:某一页左栏或右栏在标题/段落后出现大块竖向空白(无图无表),另一栏同期仍有连续正文;常见于 figure* 顶到下一页后在栏内留下“断层”、滥用 \\ / \clearpage、\FloatBarrier、[H] 等。
修复策略(优先浮动体与断页,再动正文):
- 检查本页及前后页的
figure*/table*:尝试将浮动环境在源码中前移/后移,或改为单栏figure/table(若尺寸允许)。 - 搜索并移除不当的
\\(段内强制换行)、\newpage、\vfill;慎用[H]。 - 若使用
\FloatBarrier,评估是否可删除或挪到节末。 - 与 float-optimizer 协同:处理
Float too large日志后再看栏内空洞是否消失。 - 最后手段:对空洞下方段落使用
\looseness或最小语义扩写,使分栏断点上移。
修复验证
每完成一项修复后:
- 重新编译至少两次(确保交叉引用稳定)。
- 渲染页图,对照缺陷逐项检查:
- A1:孤行/寡行是否消失?
- A2:末页空白比例是否降至 20% 以下?
- A3:总页数是否达到目标?
- A4:双栏末页高度差是否 ≤ 2 行?
- A5:该页逐栏检查,栏内中段竖向空洞是否消失?
- 若未通过,回滚并尝试下一策略。
与其它技能的协作
- 浮动体修复 (float-optimizer):A2 和 A3 常需配合浮动体调整。
- 语义润色 (writing-polish):当排版手段用尽时,请求语义改写。
- 一致性检查 (consistency-polisher):修改字号、间距后需确保全局一致。
Space Utilization Fixer Skill 就绪。 等待调用,优化页面空间分配。
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: OpenRaiser
- Source: OpenRaiser/PaperFit
- License: MIT
- Homepage: https://openraiser.github.io/PaperFit/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.