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來判斷結構。
工作流程
- 閱讀原始資料:論文草稿、程式碼以及作者自己的圖表。每當作者說「重做」時,就重新閱讀它們。
- 建立結構清單。
- 撰寫簡報並選定會議(
references/venues.md)。 - 開啟 2–3 張參考圖表並撰寫樣式表。
- 在畫布上繪製 2–3 個候選方案,這些方案在佈局或形狀詞彙上有所不同,而非細微調整。
- 稽核、查看、比較、評論。 持續修正直到錯誤為零。
- 顯示比較表。由作者選擇。
- 匯出,作者選擇後,將圖表放入手稿中,並檢視該頁面。
結構清單(任何編輯前)
圖表展示了作者設計的系統。從作者的圖表、論文和程式碼中提取以下每個項目,並放入表格中。
| 類型 | 項目 | 來源 |
|---|---|---|
| 模組(方塊) | 精確名稱 | 原始圖表 / 程式碼路徑 / 論文章節 |
| 連線(箭頭) | 傳送者 → 接收者 : 資料名稱 | 產生該資料的程式碼 |
| 邊界 | 每個系統、技能或工具所包含的範圍 | 原始圖表 / 程式碼 |
| 狀態與資源 | 共享狀態、預算、共享模型、語料庫、學習參數 | 原始圖表 / 程式碼 |
| 決策與迴圈 | 決策結果、回饋與遞迴路徑 | 策略函式 / 演算法 |
| 輸入與輸出 | 使用者輸入、最終輸出、輸入與輸出張量 | 原始圖表 / 程式碼 |
在繪製他人的方法時,從原始論文的演算法和官方程式碼建立清單,並引用它們。
- 清單中的任何項目都不得消失、重新命名或跨越邊界移動。如果必須更改(例如,圖表與程式碼不一致),在編輯前詢問作者。
- 不要發明模組或箭頭,也不要為了簡化而刪除連線。在圖說或報告中記錄故意的省略。
- 佈局可以改變。流程方向和包含關係則否。
- 細節圖是總覽圖的分割。名稱、顏色和邊界必須與總覽圖一致。
- 根據程式碼檢查每個箭頭:它必須從實際產生該資料的模組出發。
- 編輯後,逐行檢查清單,並執行
python3 scripts/figure_audit.py NEW --venue icml --compare ORIGINAL。腳本無法看到未標籤的箭頭;請手動比對清單進行檢查。 - 以「結構變更:無」或變更清單以及作者是否批准,作為報告的開頭。
與作者合作
- 作者自己的繪圖是基準線。 在其上移除並對齊元素。不要全面取代其結構或樣式。
- 切勿覆蓋原始檔案。 將每個新版本放在旁邊(
Fig2_v2)。由作者確認。 - 如果作者手動編輯了看板,請重新讀取最新檔案並在其上工作。
- 一次只添加一種元素。同時添加階段面板、膠囊和輸出方塊會使圖表過於複雜。
- 將相鄰階段保留為虛線方塊,並使用其實際名稱。不要刪除它們或將其縮減為一個箭頭或灰色文字。
- 僅報告每個圖表的變更項目。如果您發現與論文或程式碼不符,請在編輯圖表前說明。
簡報、參考資料、樣式表
簡報(每個圖表一份)
角色: 總覽(結構 + 程序)/ 階段細節 / 架構方塊
圖表類型: A 系統或代理流程 / B 模型或架構
會議: 設定置放寬度和文字像素(references/venues.md)
讀者重點: 一行
需保留的事實: 結構清單
省略: 結果數字、屬於正文的句子、模型名稱等設定
參考圖表(2–3 張)
- 偏好順序:該方法的原始論文或官方儲存庫;在相同會議上最近發表的相同圖表類型論文;作者先前的圖表。
- 打開每一張並記錄:形狀詞彙、每種顏色的含義、字型和變數標記法、佈局骨架、文字量,以及什麼不該模仿。
- 僅擷取慣例。絕不重新繪製參考圖表或複製其色調和構圖。
樣式表(每篇論文一份)
- 一篇論文中的每個圖表使用一種視覺詞彙:字型、文字像素、顏色及其含義、形狀、線條和邊框寬度、圓角半徑、箭頭。
- 使用
scripts/dc_board.py,STYLEdict 就是樣式表。在那裡更改它,絕不要針對每個元素個別設定。
構圖規則
- 一個方塊僅包含函式名稱。解釋性句子放在正文中。
- 一個箭頭帶有資料名稱標籤。不要為資料編號。
- 不使用預留位置名稱,例如 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 # 標籤是否保留?
- 修正直到錯誤 (ERROR) 為 0:文字低於或高於限制、文字在其方塊外部、文字重疊、文字離開畫布、缺少原始圖表中的標籤。對於每個警告 (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 | 會議預設值:寬度、明確規則、最小文字像素 |
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(最小化) |