paper-figure 是做什么的?
从独立可编辑的元素绘制论文图表,并按印刷尺寸进行测量。
原则
- 不使用图像生成模型。 您或作者必须绘制每个元素。
- 当 Claude Design 画板工具可用时,必须将图表作为画板交付。 这是强制要求。首先创建或更新画板,以便作者可以移动、重新设置样式和评论每个元素。不得仅以 PNG、PDF 或本地 HTML 文件作为最终交付物。只有当会话中没有画板工具时,才在磁盘上绘制纯 HTML 画板,并在报告中说明(
references/drawing-boards.md)。 - PDF 和 PNG 是导出产物,在作者要求或图表最终定稿时生成:一个用于 LaTeX 的包含可编辑文本的矢量 PDF,以及一个由此生成的 300 dpi PNG,用于 Word 和幻灯片。
- 图中的文字必须与论文正文中的名称完全一致,并使用论文的语言。
- 结构必须保留。 您可以更改形状和布局。未经询问,您不得更改模块、连接或边界(参见“结构分类账”)。
- 在绘制前确定目标会议。 不同会议的要求不同:Nature 要求图表文字最大为 7 pt,AAAI 要求至少 9 pt。如果作者尚未选择,请选择其领域内典型的会议,并在报告中说明。
- 质量标准是顶级会议图表水准。 首先查看参考图表,构建候选方案,并让作者选择。不要仅仅满足于方框和箭头。
- 只有在使用
scripts/figure_audit.py测量并亲自检查渲染结果后,才能说“通过”或“无重叠”。 这会覆盖绘图表面默认的“不验证”设置。 - 视觉检查仅供参考。 它可能会数错元素或遗漏连接。结构问题只能通过分类账和
--compare选项来判断。
工作流程
- 阅读来源:论文草稿、代码以及作者自己的绘图。每次作者说“重做”时,都要重新阅读它们。
- 构建结构分类账。
- 撰写简报并选择会议(
references/venues.md)。 - 打开 2–3 张参考图并编写样式表。
- 在画布上绘制 2–3 个候选方案,它们在布局或形状词汇上有所不同,而不是微小的调整。
- 审计、查看、比较、批判。 不断修正直到错误为零。
- 展示对比表。由作者选择。
- 导出:一旦作者选定,将图表放入手稿,并查看该页。
结构分类账(在任何编辑之前)
图表展示了作者设计的系统。将以下每一项从作者的图表、论文和代码中提取到一个表格中。
| 类别 | 项目 | 来源 |
|---|---|---|
| 模块(方框) | 确切名称 | 原始图表 / 代码路径 / 论文章节 |
| 连接(箭头) | 发送方 → 接收方 : 数据名称 | 产生该数据的代码 |
| 边界 | 每个系统、技能或工具所包含的内容 | 原始图表 / 代码 |
| 状态和资源 | 共享状态、预算、共享模型、语料库、学习参数 | 原始图表 / 代码 |
| 决策和循环 | 决策结果、反馈和递归路径 | 策略函数 / 算法 |
| 输入和输出 | 用户输入、最终输出、输入和输出张量 | 原始图表 / 代码 |
在绘制他人的方法时,需根据原始论文的算法和官方代码构建分类账,并引用它们。
- 分类账中的任何内容都不得消失、重命名或跨越边界。如果必须更改(例如,图表与代码不一致),请在编辑前询问作者。
- 不要发明模块或箭头,也不要为了简化而删除连接。在图注或报告中说明有意省略的部分。
- 布局可以更改。流向和包含关系不可更改。
- 细节图是对概览图的分割。名称、颜色和边界必须与其匹配。
- 对照代码检查每个箭头:它必须从实际产生该数据的模块出发。
- 编辑后,逐行检查分类账,并运行
python3 scripts/figure_audit.py NEW --venue icml --compare ORIGINAL。脚本无法识别无标签的箭头;请手动对照分类账检查这些箭头。 - 以“结构变更:无”或列出变更项及其是否获得作者批准作为报告的开头。
与作者合作
- 作者自己的绘图是基线。 在其基础上移除并对齐元素。不要完全替换其结构或样式。
- 切勿覆盖原始文件。 将每个新版本放在其旁边(例如
Fig2_v2)。由作者确认。 - 如果作者手动编辑了画板,请重新读取最新文件并在此基础上工作。
- 一次只添加一种类型的元素。同时添加阶段面板、药丸和输出框会使图表过于复杂。
- 将相邻阶段保留为带有其真实名称的虚线框。不要删除它们或将它们简化为一个箭头或灰色文本。
- 每个图表只报告更改的内容。如果发现与论文或代码不一致,请在编辑图表前说明。
简报、参考资料、样式表
简报(每个图表一份)
角色: 概览(结构+过程)/ 阶段细节 / 架构块
图表类型: A 系统或智能体流程 / B 模型或架构
会议: 指定放置宽度和文本像素 (px)(参见 references/venues.md)
读者收获: 一句话
保留的事实: 结构分类账
省略内容: 结果数字、属于正文的句子、诸如模型名称之类的设置
参考图(2–3 张)
- 优先级顺序:该方法的原始论文或官方仓库;同一会议近期发表的同类型图表;作者早期的图表。
- 打开每一张,并记录:形状词汇、每种颜色的含义、字体和变量符号、布局骨架、文字数量,以及哪些不值得模仿。
- 只采用惯例。切勿重绘参考图或复制其配色和构图。
样式表(每篇论文一份)
- 一篇论文中的所有图表使用一套视觉词汇:字体、文本像素 (px)、颜色及其含义、形状、线条和边框宽度、圆角半径、箭头。
- 使用
scripts/dc_board.py,STYLE字典就是样式表。在那里更改它,不要逐元素更改。
构图规则
- 一个方框内只放置函数名称。解释性句子放在正文中。
- 箭头携带数据名称标签。不要给数据编号。
- 不要使用占位符名称,如 A/B/C 或 “发送至 B / 来自 A” 。使用真实的模块名称。
- 边界仅包围实际执行该工作的部分。
- 方框内的文本是关键词:不要使用句子,不超过 15 个单词,不要粘贴正文,不要列方程。简短的数据示例例外。
- 阶段上不要有步骤编号徽章。图中不要有标题;标题就是图注。
- 概览图同时展示结构和过程:输入 → 处理 → 输出 在几秒钟内从左到右阅读,反馈循环用虚线表示,输出清晰可见。
- 在所有细节图中运行一个完整的示例,以盒子内部的小芯片形式呈现。
- 考虑将概览图和细节图合并为一个图的 a 和 b 面板(堆叠,或宏观-微观缩放线)。将两种方案都作为候选方案绘制。
- 当规则冲突时,按此顺序决定:关系和方向与代码和论文匹配 → 流程在几秒钟内可读 → 在印刷尺寸下可读 → 对齐 → 美观。
形状词汇、字体、颜色和线条:references/style.md。选择词汇 A(系统流程线:图标卡、芯片、面板)或 B(架构:形状表示类型),并且在一篇论文中不要混合使用。
尺寸
印刷文本(pt)= 文本 px × 放置宽度(pt)÷ 画板宽度(px)。同一个画板在不同会议中印刷尺寸不同,因此每当会议更改时都需重新测量。预设值和 px 尺寸:references/venues.md。
- 保持一个图表中的文本大小基本一致。不要为了适应而缩小某些文本:将文本移至图注,放大方框或画板,换行,或分割图表。
- 文本不得超出其方框,或距离边框 6 px 以内。
- 一行中放置五个或更多方框会导致宽度不足:将标题拆分为 2–3 行,然后改为两行。
- 宽图使用整行文本宽度(
figure*)。在一列中,其文本大小减半。 - 如果有多个面板,请精确对齐各行,或者用 7 px 或更大的间距分隔它们。
审计循环
设置:pip install playwright numpy pillow && python3 -m playwright install chromium
(poppler-utils 启用 PDF 检查)。
python3 scripts/figure_audit.py project/Fig2.dc.html --venue icml --png fig2.png # 测量 + 渲染
python3 scripts/figure_audit.py project/Fig2.dc.html --venue nature --column # 单列图表
python3 scripts/figure_audit.py project/Fig2.dc.html --placed-mm 165 --min-pt 8 # 无预设的会议
python3 scripts/figure_audit.py project/Fig2.dc.html --venue icml --cvd fig2 # 灰度 + 色盲
python3 scripts/figure_audit.py project/Fig2_v2.dc.html --venue icml --compare project/Fig2.dc.html # 标签保留了吗?
- 修复直到错误 (ERROR) 为零:超出限制的文本、方框外的文本、重叠的文本、画布外的文本、原始图中缺失的标签。对于每个警告 (WARN)(文本紧贴边框、文本穿过线条、后备字形、灰色背景上的文本、低于最小值的线条、接近但对齐失败),放大渲染结果并做出判断。
- 以放置尺寸查看渲染结果,并查看三张
--cvd图像。 - 再次对照分类账、代码和论文检查箭头和标签。
- 使用检查表评分,并与参考图进行比较。
- 每轮保留之前的文件,并仅记录更改的内容。
修复顺序(防止返工):画布和边距 → 大区域和堆叠顺序 → 形状尺寸 → 填充和边框 → 连接器端点 → 文本 → 装饰。
完成意味着全部满足:审计通过,您查看了放置尺寸,并且检查结果高于通过线。仅审计通过是不够的。如果在五轮后仍有问题,则布局本身有误:告知作者并共同决定。
候选方案和检查
制作 2–3 个具有相同结构但不同布局或词汇的画板(a/b 面板与缩放线对比,从左到右与从下到上对比,词汇 A 与 B 对比)。将候选方案和参考图堆叠成一幅图像并展示:
from PIL import Image
ims = [Image.open(p).convert("RGB") for p in ["vA.png", "vB.png", "ref.png"]]
W = 1584; ims = [im.resize((W, round(im.size[1] * W / im.size[0]))) for im in ims]
sheet = Image.new("RGB", (W, sum(im.size[1] + 30 for im in ims)), "white"); y = 0
for im in ims: sheet.paste(im, (0, y)); y += im.size[1] + 30
sheet.save("compare_sheet.png")
每个维度评分 0–2.5(总计 10 分)。任何一票否决 (Veto) 都会使该维度得分为 0。
| 维度 | 含义 | 一票否决 |
|---|---|---|
| 忠实度 | 在图注范围内展示方法;合理简化是可以的 | 发明了模块或连接、流向反转、缺少必要的连接、超出范围、文本损坏或公式造假 |
| 简洁性 | 信噪比高的视觉总结 | 方框内有句子(超过 15 个字)、粘贴正文、方程列表 |
| 可读性 | 一目了然的流程,清晰的文本 | 图内有标题或图注、冗余标签、重叠、微小或不均匀的文本、杂乱的流程 |
| 美观度 | 顶级会议水准的处理 | 网格伪影、形状损坏、霓虹色或冲突色、剪贴画、混合字体、未对齐、黑色背景 |
通过线:期刊 8.5,会议 8.0,毕业论文 8.0,海报 7.0,幻灯片 6.5。同时为每个维度写下“优于 / 等于 / 劣于参考图”,并附上一行理由。
导出
python3 scripts/dc_export.py <root> Fig2.dc.html --out paperfigs --venue icml
- 生成
Fig2.pdf(矢量,画板尺寸)和Fig2.png(在放置宽度下为 300 dpi)。 - PDF 检查必须通过:所有字体都已嵌入,无 Type 3 字体,无光栅图像。如果失败,首先修复字体列表(
references/style.md)。 - LaTeX: 在
figure*内部使用\includegraphics[width=\textwidth]{figures/fig2.pdf}。不要使用\resizebox或scale=缩小。单列图表使用figure和\columnwidth。 - Word 和幻灯片:在图表宽度处插入 PNG,然后检查该页是否有重叠和分页符。
- 在替换手稿中的图表之前备份之前的图表,并且仅在作者决定后替换。
- 图注遵循会议模板。在图注中说明示例符号的含义、有意省略的内容,以及示例是说明性的。
禁止事项
- 未经作者确认,添加、删除或重命名模块、连接或边界。
- 使用图像生成模型,交付仅位图的最终图表,或复制参考图。
- 当画布工具可用时,仅交付 PNG、PDF 或本地文件。
- 在方法图中放置结果数字,或在同一篇论文的不同图表之间改变颜色规则、文本大小或词汇。
- 将文本置于灰色背景上,使用分数像素的 CSS 边框,或交付包含 Type 3 字体的 PDF。
- 覆盖作者的原始文件,未经请求交换手稿中的图表,或替作者选择候选方案。
- 未经测量就声称“可读”或“无重叠”。
文件
| 文件 | 用途 |
|---|---|
scripts/dc_board.py | 从简短的 Python 代码构建画板:卡片、图标卡、梯形、操作圆、张量、面板、箭头 |
scripts/figure_audit.py | 以打印尺寸测量图表;支持 --venue, --compare, --cvd |
scripts/dc_export.py | 画板 → 矢量 PDF + 300 dpi PNG,包含 PDF 字体和光栅检查 |
references/venues.md | 会议预设值:宽度、既定规则、最小文本尺寸(px) |
references/style.md | 形状词汇 A 和 B,字体,颜色,线条,密度 |
references/drawing-boards.md | 在 Claude Design 画布或纯 HTML 画板上绘图;dc_board.py 调用;TiKZ 笔记 |
references/credits.md | 借用流程的来源及其许可证 |
examples/ | 可通过审计的可运行图表:react-agent(词汇 A), transformer-block(词汇 B), rag-pipeline(最小化) |