Community影像github.com

d3group/d3-poster

建立帶有 D3 (Data Driven Decisions) 品牌標誌的學術會議海報 (A0 直式,baposter 網格)。用於製作研究海報、會議海報或學術海報。

d3-poster 是什麼?

此技能可建立專業的 A0 直式研究海報,採用 D3 (Data Driven Decisions) 及符合同年 2026 年企業設計風格的烏茲堡大學品牌標誌。它基於 `baposter` 類別實現網格佈局,並透過 `d3-poster.sty` 提供了精簡的 D3 重新設計外觀,包含大學海報模板的各個框架元素(如海軍藍標題框、白色標題和作者、灰色章節條、頁尾等),以及設定 D3 調色板和常用的巨集命令。編譯方式支援 XeLaTeX 或 LuaLaTeX,以使用大學專用字型 Inclusive Sans UW,並可回退至 pdfLaTeX 搭配 Helvetica 字型。 此技能的工作流程包含從論文中提取內容、專案設定(優先選擇與論文關聯的儲存位置,如子模組或資料夾)、建立標準化的檔案結構、以及根據預設的 2 欄或罕見的 3 欄網格佈局來撰寫海報主體。它內建了參考文件,用於處理內容提取、TikZ 繪圖、編譯錯誤處理、雙代理審查迴圈以及巨集與樣式確認。此外,設計上考量了 Overleaf 協作,透過複製 `baposter.cls` 和 `assets/` 目錄到 `drafts/` 和 `final/` 資料夾,確保每個資料夾都能獨立上傳至 Overleaf。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/d3group/d3-skills/tree/HEAD/skills/d3-poster

Installed? Explore more 影像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

D3 海報 (會議/研究)

<skill-dir> 在此技能中代表技能本身的基礎目錄,Claude Code 在技能載入時會顯示此路徑 (作為外掛安裝時:${CLAUDE_PLUGIN_ROOT}/skills/d3-poster;手動複製時:~/.claude/skills/d3-poster)。請在每個命令中替換為實際路徑。<wording-dir> 代表 <skill-dir>/../d3-scientific-wording,這是每個 D3 外掛都附帶的共用措辭技能。

建立專業的 A0 直式研究海報,採用 D3 (Data Driven Decisions) 及符合同年 2026 年企業設計風格的烏茲堡大學品牌標誌。基於 baposter 類別實現網格佈局,並透過精簡的 D3 重新設計外觀 (d3-poster.sty) 來繪製大學海報模板的框架 (海軍藍標題框內有白色大學標誌、白色標題和作者以及藍色印章;灰色章節條搭配海軍藍文字;頁尾包含海軍藍分隔線、D3 標誌置首的標誌列和參考文獻欄位),設定 D3 調色板 (大學海軍藍、D3 橘色強調色),並移植 d3-abstract 中的 \highlight / \keypoint / infobox / card 巨集。使用 XeLaTeX 或 LuaLaTeX 編譯以使用大學字型 Inclusive Sans UW;可回退至 pdfLaTeX 搭配 Helvetica 複製品。

標題中的印章是過渡選擇:大學的企業設計手冊在學院和系所的溝通中會用學院裝飾圖案取代它,而該學院套件尚未發布。一旦釋出,請換掉 uw-seal-blue.pdf。

參考檔案 (按需載入)

下方的技能主體是工作流程;較長的參考資料存放在 references/ 中。當相關主題出現時,請載入對應的參考檔案:

檔案載入時機
references/extraction.md即將從論文中提取內容 (任何層級)。包含各層級的提取命令、PDF 圖形提取 (向量優先)、低解析度點陣圖協議、磁碟格式優先順序、架構圖訪談。
references/tikz-recipes.md即將從頭開始使用 TikZ 繪製圖形。包含 4 個經驗證可編譯的食譜 (區塊圖、流程圖、分層架構、比較圖) 以及一般的 TikZ 規則。
references/error-handling.md遇到編譯錯誤或可見的渲染錯誤。包含 8 個已知問題 (缺少類別、缺少字型、siunitx \d 衝突、標題漸層而非實心填充、Calibri 錯誤、無聲裁剪、希臘字母或符號消失、標題區塊設定過小)。
references/dual-agent-review.md審查深度為 standard 或 full (請參閱審查)。包含審查者提示、full 模式的迭代迴圈 (最多 4 輪)、分數寫入 README 的協議。
references/macros-and-styling.md編寫海報主體時需要確認巨集名稱、顏色值、字型大小、表格慣例。

模板檔案與資源

<skill-dir>/
├── SKILL.md                    # 本檔案
├── baposter.cls                # 類別檔案 (複製到每個專案的 drafts/ 目錄)
├── example-poster.tex          # 參考範例 -- 請勿複製到使用者專案中
├── references/                 # 漸進式揭露參考資料 (請參閱上方表格)
└── assets/                     # 此整個資料夾會被複製到使用者專案中
    ├── d3-poster.sty
    ├── logos/                  # uw-logo-white.pdf, uw-logo-navy.pdf, uw-seal-blue.pdf, logo-d3.pdf, DataDrivenDecisions.png
    └── fonts/                  # InclusiveSansUW-{Regular,Italic,Medium,SemiBold,Bold}.ttf, OFL-InclusiveSansUW.txt

兩個放置規則:

  1. baposter.cls 位於技能根目錄,不在 assets/ 下。\documentclass 無法可靠地接受路徑前綴,因此類別檔案在編譯時必須是 .tex 檔案的兄弟檔案。
  2. example-poster.tex 位於技能根目錄,不在 assets/ 內部。切勿將其複製到使用者專案中。 它是一個參考檔案,當你需要回憶書寫模式時可以查閱。如果你整體複製了 assets/,你並不會拿到 example-poster.tex — 這完全正確,因為將其與使用者的 poster.tex 放在一起會混淆 Overleaf 的「主要文件」選擇器,並遺留一個過時的 example-poster.pdf。使用者的專案應包含一個 .tex 檔案,其主檔名與其 .pdf 相符。

專案設定 (儲存位置 + 資料夾結構)

儲存位置優先順序

海報通常與論文相關。儲存位置決定了當本地端 LaTeX 不可用時,協作者是否可以在 Overleaf 上編譯。在建立任何檔案之前,先決定儲存位置:

  1. 偵測到論文子模組 → <submodule>/poster/。如果 .gitmodules 列出一個包含論文的子模組 (路徑類似 paper/、manuscript/、overleaf/,或任何內容包含 \title{} + \begin{abstract} .tex 檔案的子模組),則儲存在該子模組內。實驗室慣例:論文子模組存在於 GitHub 上,相關的 Overleaf 專案透過 Overleaf 的 GitHub 同步功能同步 — 遠端將會是 github.com/...,而不是 git.overleaf.com。
  2. 沒有子模組但存在論文資料夾 → <paper-folder>/poster/。仍然放置在論文資料夾下。
  3. 回退 → ./poster/ 位於目前工作目錄的根目錄。

使用以下指令偵測:

test -f .gitmodules && git submodule status
for sm in $(git config --file .gitmodules --get-regexp path 2>/dev/null | awk '{print $2}'); do
  find "$sm" -maxdepth 3 -name "*.tex" -exec grep -l "\\\\begin{abstract}" {} \; 2>/dev/null
done

在建立檔案前向使用者列印並確認:

[HH:MM:SS] 儲存位置: <chosen-path>/poster/
  原因: [論文子模組於 paper/ (託管於 GitHub,同步至 Overleaf) | 存在 paper/ 資料夾 | 儲存庫根目錄回退]
  可在 Overleaf 上存取?[是 -- 推送子模組至 GitHub,Overleaf 將同步 | 否 -- 僅限本地編譯]

資料夾結構

<save-target>/poster/
├── progress.md
├── SUMMARY.md
├── drafts/
│   ├── baposter.cls            # 從技能複製 (與 poster.tex 同層)
│   ├── assets/                 # 從技能複製 (d3-poster.sty, logos, fonts)
│   ├── figures/                # 可選:海報專用圖形
│   ├── poster.tex              # 唯一的工作檔案 (透過 git 進行版本管理)
│   ├── poster.pdf              # 始終與主檔名相符
│   └── revision_notes.md
└── final/
    ├── baposter.cls            # 為獨立上傳至 Overleaf 而複製
    ├── assets/                 # 為獨立上傳至 Overleaf 而複製
    ├── poster.tex              # 與 drafts/ 中的檔名相同 -- 主檔名不變
    ├── poster.pdf
    └── README.md               # 日期、標題、會議、審查分數

設定指令:

POSTER_DIR=<resolved-path>/poster
mkdir -p "$POSTER_DIR/drafts" "$POSTER_DIR/final"
cp    <skill-dir>/baposter.cls "$POSTER_DIR/drafts/baposter.cls"
cp -r <skill-dir>/assets       "$POSTER_DIR/drafts/assets"
# 不要複製 example-poster.tex —— 它保留在技能根目錄。

命名規則 (對 Overleaf 至關重要): 工作檔案始終是 poster.tex,產生 poster.pdf。主檔名必須相符。版本管理使用 git,而不是檔案名前綴 — 不要使用 v1_poster.tex,也不要使用 YYYYMMDD_title.tex。此技能的舊版本曾使用此類前綴;實際上這會混淆 Overleaf 的上傳 (使用者將 v2_poster.tex 設為主要文件,但旁邊快取的 v1_poster.pdf 會讓人搞不清楚哪個才是真正的輸出)。

為什麼要在 drafts/ 和 final/ 中都複製 baposter.cls + assets/? 每個副本約 1 MB,但這確保每個資料夾可以獨立上傳至 Overleaf — 開啟 final/ 資料夾的協作者不需要 drafts/ 中的任何東西。

文件骨架

每張海報都必須以此結構開頭:

%! TEX program = xelatex
\documentclass[a0paper]{baposter}

\usepackage{relsize}
\usepackage{url}
\usepackage{multicol}
\usepackage{amsmath,amssymb}
\usepackage{natbib}
\usepackage{graphicx}

\usepackage{assets/d3-poster}   % D3 重新設計外觀:顏色、字型、巨集

\DeclareMathOperator*{\argmin}{arg\,min}
\renewcommand{\vec}[1]{\boldsymbol{#1}}   % 可選:粗體數學向量

\begin{document}

\begin{poster}{
  columns=2,                     % 預設 2 欄。僅在內容確實需要時才使用 3 欄。
  grid=false,
  eyecatcher=false,
  % 大學框架來自 d3-poster.sty:25 mm 邊距,海軍藍標題框,
  % 頁尾包含標誌列和參考文獻。這兩個長度符合模板。
  headerheight=\dthreeheaderheight,
  colspacing=\dthreecolspacing,
  background=plain,
  bgColorOne=white,
  bgColorTwo=white,
  % 章節條:淺灰色 (#ECECEC) 搭配海軍藍 SemiBold 文字。每個方塊的 `emphasis`
  % 鍵會產生矢車菊藍條搭配白色文字。
  borderColor=d3-headergray,
  headerColorOne=d3-headergray,
  headerColorTwo=d3-headergray,
  headerFontColor=d3-navy,
  headerfont=\dthreesectionfont,
  headershape=rectangle,
  headershade=plain,             % 實心填充 headerColorOne;baposter 的預設 `shadeLR` 是
                                 % 漸層。請參閱 references/error-handling.md #4。
  headerborder=none,
  boxColorOne=white,
  boxshade=plain,
  boxpadding=0.6em,
  textborder=none
}
%%% 目光吸引區 (空白;大學標誌佔據此位置) %%%
{}
%%% 標題 -- 純文字;在海軍藍標題框中設定為白色 Bold。預設無副標題。
{您的海報標題}
%%% 作者 -- 一行,白色,位於標題下方。
{作者姓名, Data Driven Decisions 團隊\enspace|\enspace [email protected]}
%%% 頁尾標誌列:D3 標誌橫跨前兩個儲存格
{\dthreelogos}

%%% 動機 (第 0 欄,第 0 行)
\headerbox{動機}{name=Motivation,column=0,row=0}{
  引導段落:為什麼這項工作很重要,有什麼新意,最重要的指標。
  在關鍵術語上謹慎使用 \highlight{}。
}

%%% 問題 (第 0 欄,延伸至底部)
\headerbox{問題}{name=Problem,column=0,below=Motivation,above=bottom}{
  正式的問題設定。領域相關的數學公式。
  \keypoint{一句話的重點結論。}
}

%%% 方法 (第 1 欄,頂部)
\headerbox{方法}{name=Approach,column=1,row=0}{
  方法論。以方法概述圖結尾 (無需圖說 -- 在正文中描述)。
}

%%% 結果 (第 1 欄,延伸至底部)
\headerbox{實驗結果}{name=Results,column=1,below=Approach,above=bottom}{
  包含指標的資訊框 + 使用 booktabs 的比較表格。
}

%%% 文獻 -- 頁尾參考文獻區塊 (3 篇參考文獻,無獨立方塊)
\dthreereferences{
  作者1 (年份, \textit{會議/期刊}); 作者2 (年份, \textit{會議/期刊}); 作者3 (年份, \textit{會議/期刊}).
}

\end{poster}
\end{document}

重要: 使用 \usepackage{assets/d3-poster} (加上 assets/ 前綴) — 包裝器預期從一個專案根目錄載入,該目錄包含 assets/d3-poster.sty 和一個兄弟檔案 baposter.cls。

d3-poster.sty 繪製的內容 (來自大學的 A0 海報模板;幾何尺寸隨紙張縮放,因此 A1 和其他尺寸也能保持比例):

  • 25 mm 邊距。海軍藍標題框橫跨整個寬度,高 119 mm,左上角是白色大學標誌,標題 (白色 Bold,A0 下為 50 pt,與模板一致) 和作者 (白色,34 pt) 位於模板的文字欄位中,藍色印章與標題框的右邊和下邊緣對齊。
  • 章節條約 24 mm 高:淺灰色 (#ECECEC) 搭配海軍藍 SemiBold 文字。在方塊的鍵中加入 emphasis 可使用模板的第二種樣式,矢車菊藍條搭配白色文字。
  • 欄位下方的頁尾:一條海軍藍分隔線;左側是 72 × 39 mm 的標誌列儲存格,由 \begin{poster} 的第 5 個參數 (\dthreelogos = D3 標誌橫跨前兩個儲存格,約 30 mm 高;\dthreelogocell{file.pdf} 可新增合作夥伴標誌,最多三個) 填充;右側是參考文獻區塊 (\dthreereferences{...})。
  • 較舊的海報仍可編譯:其選項區塊保留了條的舊外觀,頁眉和頁尾無論如何都會被繪製,而 \dthreelogos 現在會填充頁尾的標誌列,而不是頁眉。

方塊定位、欄位、標題

欄數 — 預設 2 欄,僅在需要時使用 3 欄

預設使用 columns=2。僅在以下情況使用 columns=3:

  • 論文有 5 個以上真正不同的內容章節,且無法合併 (罕見)
  • 使用者明確要求用於預期使用 3 欄的會議

在每種佈局中,使用 \dthreereferences{...} 將文獻放入頁尾的參考文獻區塊 (一個簡短的列表,例如:「作者1 (年份, 會議); 作者2 (年份, 會議); ...」),而不是放入一個方塊中。大學模板將頁尾的右半部分保留給它,這樣可以避免在 A0 直式下使用 3 欄時容易產生的擁擠文獻方塊。3-5 篇簡短參考文獻可以容納;較長的區塊會設定為較小的字型,並且日誌會記錄此資訊。

預設 2 欄網格

+-----------------------------------------------+
| [大學標誌]  標題, 作者 (白色)         [印章] | 海軍藍標題框
+-----------------------+-----------------------+
| 動機                 | 方法                  |
| (第 0 欄, 頂部)      | (第 1 欄, 頂部)       |
+-----------------------+-----------------------+
| 問題                 | 實驗結果              |
| (第 0 欄, 填滿至     | (第 1 欄, 填滿至      |
|  底部)               |  底部)               |
+-----------------------+-----------------------+
| -------------------- 海軍藍分隔線 ----------- |
| [D3 標誌] [合作夥伴]  | 參考文獻              | 頁尾
+-----------------------+-----------------------+

3 欄變體 (罕見)

+---------------+---------------+---------------+
| 動機          | 方法          | 實驗結果      |
| (第 0 欄)     | (第 1 欄,     | (第 2 欄,     |
+---------------+  完整高度)    |  完整高度)    |
| 問題          |               |               |
| (第 0 欄)     |               |               |
+---------------+---------------+---------------+
| 頁尾:標誌列 (D3 優先)        | 參考文獻      |
+---------------+---------------+---------------+

\headerbox 鍵

鍵用途範例
name=X用於交叉引用的唯一識別碼name=Motivation
column=N基於 0 的欄索引column=0
row=N從頂部算起的基於 0 的行索引row=0
below=Y直接放置在方塊 Y 下方below=Motivation
above=bottom延伸至頁面底部above=bottom
height=1填滿整個欄高度在 2 欄中很少需要

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能