paper-figure は何をしますか?
論文の図を、個別に配置された編集可能な要素から描画し、実際に印刷されるサイズで測定します。
原則
- 画像生成モデルは使用しません。 あなたまたは著者がすべての要素を描画します。
- そのツールが利用可能な場合は、図をClaude Designキャンバス上のボードとして納品します。 これは必須です。最初にボードを作成または更新し、著者がすべての要素を移動、スタイル変更、コメントできるようにします。PNG、PDF、ローカルHTMLファイルのみで終わらせないでください。セッションにキャンバスツールがない場合にのみ、プレーンなHTMLボードをディスクに描画し、その旨をレポートに記載します(
references/drawing-boards.md)。 - PDFとPNGはエクスポートです。著者からの依頼がある場合、または図が最終版となった場合に作成します。LaTeX用のベクターPDFと、Wordやスライド用にそこから生成された300 dpiのPNGです。
- 図のテキストは、論文本文で使用されている名前を正確に使用し、論文の言語で記述します。
- 構造は保持されます。 形状やレイアウトは変更しても構いません。ただし、モジュール、接続、境界線は、著者に確認せずに変更してはいけません(「構造台帳」を参照)。
- 描画の前にターゲット会議を選択します。 会議によって要件は異なります。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)。著者が確認します。 - 著者が手動でボードを編集した場合は、最新のファイルを再読み込みし、それを作業対象とします。
- 要素は一度に一種類ずつ追加します。ステージパネル、ピル、出力ボックスを一度に追加すると、図が複雑になりすぎます。
- 隣接するステージは実際の名前が入った破線ボックスとして保持します。それらを削除したり、矢印やグレーのテキストに縮小したりしないでください。
- 変更があった点のみを図ごとに報告します。論文やコードとの不一致を見つけた場合は、図を編集する前にその旨を伝えます。
ブリーフ、参考図、スタイルシート
ブリーフ(図ごとに1つ)
役割: 概要(構造+手順) / ステージ詳細 / アーキテクチャブロック
図の種類: A システムまたはエージェントパイプライン / B モデルまたはアーキテクチャ
会議: 配置幅とテキストpxを設定します(references/venues.md)
読者のテイクアウェイ: 一行
保持すべき事実: 構造台帳
省略: 結果数値、本文に属する文章、モデル名などの設定
参考図(2~3)
- 優先順位: 手法の原著論文または公式リポジトリ; 同じ会議の同じ図タイプの最近の論文; 著者の以前の図。
- それぞれを開いて確認する項目: 形状の語彙、各色の意味、フォントと変数の表記、レイアウトの骨格、テキスト量、そして模倣すべきでない点。
- 慣習のみを取り入れます。参考図を再描画したり、そのパレットや構成を再現したりしないでください。
スタイルシート(論文ごとに1つ)
- 論文中のすべての図は、1つの視覚的な語彙を使用します: フォント、テキストpx、色とその意味、形状、線と枠線の太さ、角の丸み、矢印の先端。
scripts/dc_board.pyでは、STYLE辞書がスタイルシートです。そこで変更し、要素ごとに変更しないでください。
構成ルール
- ボックスには関数名のみを入れます。説明文は本文に記載します。
- 矢印にはデータ名のラベルを付けます。データに番号を付けないでください。
- A/B/Cや「To B / From A」のようなプレースホルダ名は使用しません。実際のモジュール名を使用します。
- 境界線は、実際にその作業を行う部分のみを囲みます。
- ボックステキストはキーワードです。文章は不可、15語を超えない、本文の貼り付け不可、方程式のリスト不可。短いデータ例は例外です。
- ステージにステップ番号のバッジを付けないでください。図内にタイトルを入れないでください。タイトルはキャプションです。
- 概要図は構造と手順を一緒に示します。入力 → 処理 → 出力 を左から右へ数秒で読み取れ、フィードバックループは破線で、出力が明確に視認できるようにします。
- 1つの実例を、すべての詳細図を通して、ボックス内の小さなチップとして実行します。
- 概要と詳細を、1つの図のパネルaとbにまとめることを検討します(積み重ね、またはマクロ・ミクロのズーム線)。両方を候補として作成します。
- ルールが競合する場合は、以下の順序で決定します: 関係性と方向がコードと論文に一致 → フローが数秒で読める → 印刷サイズで読める → 整列 → 見た目。
形状の語彙、フォント、色、線: references/style.md。語彙A(システムパイプライン: アイコンカード、チップ、パネル)またはB(アーキテクチャ: 形状がタイプを示す)を選択し、1つの論文内で混在させないでください。
サイズ
印刷テキスト(pt)= テキストpx × 配置幅(pt)÷ ボード幅(px)。同じボードでも会議が異なれば印刷サイズが異なるため、会議が変更されるたびに再測定します。プリセットとpxサイズ: references/venues.md。
- 図内のテキストサイズはほぼ均一に保ちます。一部のテキストを小さくして収めようとしないでください。テキストをキャプションに移動するか、ボックスまたはボードを拡大するか、行を分割するか、図を分割します。
- テキストはボックスからはみ出したり、境界線から6 px以内に配置したりしてはいけません。
- 1行に5つ以上のボックスがあると幅が不足します。タイトルを2~3行に分割し、その後2行にします。
- 幅の広い図はテキスト幅いっぱい(
figure*)で配置します。1カラムではテキストサイズが半分になります。 - 複数のパネルがある場合は、行を正確に揃えるか、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 # 1カラムの図
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(テキストが境界線に接触、テキストが線を横切る、フォールバックグリフ、グレー上のテキスト、最小値を下回る線、僅差の位置ずれ)については、レンダリングを拡大して判断します。
- レンダリングを配置サイズで確認し、3つの
--cvd画像も確認します。 - 矢印とラベルを台帳、コード、論文と再度照合します。
- 批評テーブルでスコアを付け、参考図と比較します。
- 各ラウンドで前のファイルを保持し、変更点のみを記録します。
修正順序(やり直しを防ぎます): キャンバスとマージン → 大きな領域と重ね順 → 形状サイズ → 塗りつぶしと境界線 → コネクタの端点 → テキスト → 装飾。
完了とは、次の3つすべてを満たすことです: 監査に合格し、配置サイズで確認し、批評が合格点をクリアしていること。監査に合格しただけでは不十分です。5ラウンド経っても問題が残る場合、レイアウト自体が間違っています。著者に伝え、一緒に決定します。
候補と批評
同じ構造で、異なるレイアウトまたは語彙(パネルa/b対ズーム線、左から右対下から上、語彙A対B)のボードを2~3つ作成します。候補と参考図を1つの画像に積み重ねて表示します。
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)でスコアリングします。拒否権が発動された場合、その次元は0になります。
| 次元 | 意味 | 拒否権 |
|---|---|---|
| 忠実性 | キャプションの範囲内で手法を示している。合理的な簡略化は可 | でっち上げのモジュールや接続、フローの逆転、必要な接続の欠落、範囲外、壊れたテキストや偽の数式 |
| 簡潔性 | 信号対雑音比の高い視覚的要約 | ボックス内の文章(15語超)、本文の貼り付け、数式のリスト |
| 可読性 | ひと目でわかるフロー、読みやすいテキスト | 図内のタイトルやキャプション、冗長なラベル、重なり、微小または不均一なテキスト、絡まったフロー |
| 美観 | トップ会議レベルの洗練 | グリッドのアーティファクト、壊れた形状、ネオンカラーや衝突する色、クリップアート、混在フォント、位置ずれ、黒背景 |
合格点: ジャーナル8.5、カンファレンス8.0、学位論文8.0、ポスター7.0、スライド6.5。各次元について、1行の理由とともに「参考図より良い/同等/悪い」も記述します。
エクスポート
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:
\includegraphics[width=\textwidth]{figures/fig2.pdf}をfigure*内に記述します。\resizeboxやscale=で縮小しないでください。1カラムの図はfigureと\columnwidthを使用します。 - Wordおよびスライド: 図の幅でPNGを挿入し、そのページで重なりや改ページがないか確認します。
- 原稿内の図を置き換える前に、前の図をバックアップし、著者が決定した後にのみ置き換えます。
- キャプションは会議のテンプレートに従います。キャプションに、記号の例が何を意味するか、何が意図的に省略されたか、例はあくまで説明用であることを明記します。
禁止事項
- 著者の確認なしに、モジュール、接続、境界線を追加、削除、または名称変更すること。
- 画像生成モデルを使用すること、ビットマップのみの最終図を納品すること、または参考図をコピーすること。
- キャンバスツールが利用可能な場合に、PNG、PDF、またはローカルファイルのみで終わらせること。
- 手法図に結果数値を入れること、または1つの論文内で図ごとに色のルール、テキストサイズ、語彙を変えること。
- グレーの背景にテキストを配置すること、CSSの境界線に小数pxを使用すること、または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(最小限) |