Communitygithub.com

WonJeong0913/paper-figure

繪製與修正研究論文的方法、流程與架構圖,作為可編輯的 Claude Design 看板,無須使用圖像生成模型。保留作者結構,為目標會議(ICML、NeurIPS、ICLR、ACL、AAAI、CVPR、IEEE、ACM、Nature)設定文字大小,比對候選圖與參考圖,以印刷尺寸測量,並匯出向量 PDF 與 300 dpi PNG。

paper-figure 是什麼?

paper-figure 技能專為需要為學術論文製作高品質圖表的開發者與研究人員設計,特別是用於 Claude Code、Cursor 或 Codex 等 AI 代理平台。它取代了傳統的影像生成模型,改以 Claude Design 畫布(若可用)或其他 HTML 看板,讓作者或 AI 代理手動繪製每個元素,確保完全的可編輯性與控制權。技能強調保留論文的原始結構(模組、連線、邊界),並在繪製前選定目標會議(如 NeurIPS、CVPR、Nature),以符合其特定的字體大小與寬度規範。透過結構清單、腳本(如 `figure_audit.py`)進行自動化稽核與比較,確保圖表在印刷尺寸下可讀、無重疊,並最終匯出向量 PDF(適用 LaTeX)與 300 dpi PNG(適用 Word/簡報)。此技能也包含詳盡的評分標準與迭代工作流程(閱讀原始素材 → 建立結構清單 → 繪製多個候選圖 → 稽核 → 比較 → 選擇 → 匯出),幫助使用者產出達到頂級會議水準的圖表。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/WonJeong0913/paper-figure/tree/HEAD

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

paper-figure 是做什麼的?

從分開放置、可編輯的元素繪製論文圖表,然後以印刷尺寸進行測量。

原則

  • 不使用圖像生成模型。 您或作者繪製每個元素。
  • 將圖表作為 Claude Design 畫布上的看板交付(只要該工具可用)。 這是必須的。首先建立或更新看板,以便作者可以移動、重新設定樣式並對每個元素留言。絕對不要只以 PNG、PDF 或本機 HTML 檔案完成。僅在對話階段沒有畫布工具時,才在本機磁碟上繪製純 HTML 看板,並在報告中說明(references/drawing-boards.md)。
  • PDF 和 PNG 是匯出產物,在作者要求或圖表定稿時產生:一個包含可編輯文字的向量 PDF(供 LaTeX 使用),以及由此產生的 300 dpi PNG(供 Word 和簡報使用)。
  • 圖表文字使用論文正文中完全相同的名稱,使用論文的語言。
  • 保留結構。 您可以更改形狀和佈局。未經詢問,不得更改模組、連線或邊界(請參閱「結構清單」)。
  • 在繪製前選定目標會議。 不同會議規範不同:Nature 限制圖表文字為 7 pt,AAAI 要求至少 9 pt。如果作者尚未選擇,請選定其領域典型的會議,並在報告中說明。
  • 品質標準是頂級會議圖表的水準。 首先檢視參考圖表,建立候選方案,並讓作者選擇。不要停留在方塊和箭頭的階段。
  • 只有在使用 scripts/figure_audit.py 測量並親自檢視渲染結果後,才能說「通過」或「無重疊」。 這會覆蓋繪圖表面的任何「不驗證」預設值。
  • 視覺評論僅供參考。 它會誤算元素數量並遺漏連線。僅使用清單和 --compare 來判斷結構。

工作流程

  1. 閱讀原始資料:論文草稿、程式碼以及作者自己的圖表。每當作者說「重做」時,就重新閱讀它們。
  2. 建立結構清單。
  3. 撰寫簡報並選定會議(references/venues.md)。
  4. 開啟 2–3 張參考圖表並撰寫樣式表。
  5. 在畫布上繪製 2–3 個候選方案,這些方案在佈局或形狀詞彙上有所不同,而非細微調整。
  6. 稽核、查看、比較、評論。 持續修正直到錯誤為零。
  7. 顯示比較表。由作者選擇。
  8. 匯出,作者選擇後,將圖表放入手稿中,並檢視該頁面。

結構清單(任何編輯前)

圖表展示了作者設計的系統。從作者的圖表、論文和程式碼中提取以下每個項目,並放入表格中。

類型項目來源
模組(方塊)精確名稱原始圖表 / 程式碼路徑 / 論文章節
連線(箭頭)傳送者 → 接收者 : 資料名稱產生該資料的程式碼
邊界每個系統、技能或工具所包含的範圍原始圖表 / 程式碼
狀態與資源共享狀態、預算、共享模型、語料庫、學習參數原始圖表 / 程式碼
決策與迴圈決策結果、回饋與遞迴路徑策略函式 / 演算法
輸入與輸出使用者輸入、最終輸出、輸入與輸出張量原始圖表 / 程式碼

在繪製他人的方法時,從原始論文的演算法和官方程式碼建立清單,並引用它們。

  • 清單中的任何項目都不得消失、重新命名或跨越邊界移動。如果必須更改(例如,圖表與程式碼不一致),在編輯前詢問作者。
  • 不要發明模組或箭頭,也不要為了簡化而刪除連線。在圖說或報告中記錄故意的省略。
  • 佈局可以改變。流程方向和包含關係則否。
  • 細節圖是總覽圖的分割。名稱、顏色和邊界必須與總覽圖一致。
  • 根據程式碼檢查每個箭頭:它必須從實際產生該資料的模組出發。
  • 編輯後,逐行檢查清單,並執行 python3 scripts/figure_audit.py NEW --venue icml --compare ORIGINAL。腳本無法看到未標籤的箭頭;請手動比對清單進行檢查。
  • 以「結構變更:無」或變更清單以及作者是否批准,作為報告的開頭。

與作者合作

  • 作者自己的繪圖是基準線。 在其上移除並對齊元素。不要全面取代其結構或樣式。
  • 切勿覆蓋原始檔案。 將每個新版本放在旁邊(Fig2_v2)。由作者確認。
  • 如果作者手動編輯了看板,請重新讀取最新檔案並在其上工作。
  • 一次只添加一種元素。同時添加階段面板、膠囊和輸出方塊會使圖表過於複雜。
  • 將相鄰階段保留為虛線方塊,並使用其實際名稱。不要刪除它們或將其縮減為一個箭頭或灰色文字。
  • 僅報告每個圖表的變更項目。如果您發現與論文或程式碼不符,請在編輯圖表前說明。

簡報、參考資料、樣式表

簡報(每個圖表一份)

角色:           總覽(結構 + 程序)/ 階段細節 / 架構方塊
圖表類型:       A 系統或代理流程 / B 模型或架構
會議:           設定置放寬度和文字像素(references/venues.md)
讀者重點:       一行
需保留的事實:   結構清單
省略:           結果數字、屬於正文的句子、模型名稱等設定

參考圖表(2–3 張)

  • 偏好順序:該方法的原始論文或官方儲存庫;在相同會議上最近發表的相同圖表類型論文;作者先前的圖表。
  • 打開每一張並記錄:形狀詞彙、每種顏色的含義、字型和變數標記法、佈局骨架、文字量,以及什麼不該模仿。
  • 僅擷取慣例。絕不重新繪製參考圖表或複製其色調和構圖。

樣式表(每篇論文一份)

  • 一篇論文中的每個圖表使用一種視覺詞彙:字型、文字像素、顏色及其含義、形狀、線條和邊框寬度、圓角半徑、箭頭。
  • 使用 scripts/dc_board.py,STYLE dict 就是樣式表。在那裡更改它,絕不要針對每個元素個別設定。

構圖規則

  • 一個方塊僅包含函式名稱。解釋性句子放在正文中。
  • 一個箭頭帶有資料名稱標籤。不要為資料編號。
  • 不使用預留位置名稱,例如 A/B/C 或「到 B / 從 A」。使用實際的模組名稱。
  • 一個邊界僅包含實際執行該工作的部分。
  • 方塊文字是關鍵字:不要有句子,不要超過 15 個字,不要貼上正文,不要有方程式列表。簡短的資料範例是例外。
  • 階段上不要有步驟編號徽章。圖表內部不要有標題;標題就是圖說。
  • 總覽圖同時顯示結構和程序:輸入 → 處理 → 輸出,能在幾秒內從左到右閱讀,回饋迴圈使用虛線,輸出清晰可見。
  • 在所有細節圖中執行一個完整範例,作為方塊內的小晶片。
  • 考慮將總覽和細節合併為一個圖表的 a 和 b 面板(堆疊,或巨觀-微觀縮放線)。將兩者都作為候選方案建立。
  • 當規則衝突時,按以下順序決定:關係和方向與程式碼和論文一致 → 流程可在幾秒內讀懂 → 在印刷尺寸下可讀 → 對齊 → 美觀。

形狀詞彙、字型、顏色和線條:references/style.md。選擇詞彙 A(系統流程:圖示卡片、晶片、面板)或 B(架構:形狀表示類型),不要在一篇論文中混合使用。

尺寸

印刷文字 (pt) = 文字像素 × 置放寬度 (pt) ÷ 看板寬度 (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   # 標籤是否保留?
  1. 修正直到錯誤 (ERROR) 為 0:文字低於或高於限制、文字在其方塊外部、文字重疊、文字離開畫布、缺少原始圖表中的標籤。對於每個警告 (WARN)(文字接觸邊框、文字穿過線條、後備字形、文字在灰色背景上、線條低於最小值、對齊接近失誤),放大渲染結果並做出決定。
  2. 以置放尺寸查看渲染結果,並查看三張 --cvd 影像。
  3. 再次將箭頭和標籤與清單、程式碼和論文進行比對。
  4. 使用評論表進行評分,並與參考圖表進行比較。
  5. 每輪保留先前的檔案,並僅記錄變更的項目。

修正順序(防止重工):畫布和邊界 → 大型區域和堆疊順序 → 形狀尺寸 → 填滿和邊框 → 連接器端點 → 文字 → 裝飾。

完成意味著滿足以下所有條件:稽核通過、您已查看置放尺寸、且評論結果達到及格標準。僅通過稽核是不夠的。如果五輪後仍有問題,則佈局本身有誤:告訴作者並共同決定。

候選方案與評論

製作 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會議預設值:寬度、明確規則、最小文字像素
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(最小化)

相關技能