CommunityImagemgithub.com

d3group/d3-poster

Crie pôsteres de conferência com a marca D3 (Data Driven Decisions), formato A0 retrato, grade baposter.

O que é d3-poster?

Este skill permite criar pôsteres de pesquisa profissionais no formato A0 retrato com a identidade visual do grupo D3 (Data Driven Decisions) e da Universidade de Würzburg, seguindo o design corporativo de 2026 da universidade. Ele se baseia na classe `baposter` para layout em grade, com uma reestilização fina (`d3-poster.sty`) que adiciona o cabeçalho azul-marinho com logotipo universitário branco, título e autores em branco, selo azul; barras de seção cinza com texto azul-marinho; e um rodapé com linha azul-marinho, linha de logotipos e espaço para referências. O skill suporta XeLaTeX e LuaLaTeX (com a fonte corporativa Inclusive Sans UW) e oferece fallback para pdfLaTeX. Ele gerencia automaticamente a estrutura de pastas, copiando arquivos necessários (`baposter.cls`, `assets/`) para os diretórios `drafts/` e `final/`, garantindo que cada pasta possa ser enviada independentemente para o Overleaf. A detecção inteligente do local de salvamento (submódulo do artigo, pasta do artigo ou diretório raiz) e a integração com o repositório do artigo facilitam a colaboração e o versionamento.

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

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

D3 Poster (Conferência / Pesquisa)

<dir-skill> neste skill significa o diretório base do próprio skill, que o Claude Code mostra quando o skill carrega (instalado como plugin: ${CLAUDE_PLUGIN_ROOT}/skills/d3-poster; copiado manualmente: ~/.claude/skills/d3-poster). Substitua o caminho real em cada comando. <dir-texto> significa <dir-skill>/../d3-scientific-wording, o skill de redação compartilhado que todo plugin D3 inclui.

Crie pôsteres de pesquisa profissionais no formato A0 retrato com a marca D3 (Data Driven Decisions) e da Universidade de Würzburg seguindo o design corporativo de 2026 da universidade. Baseia-se na classe baposter para um layout em grade, com uma reestilização fina (d3-poster.sty) que desenha o molde do modelo de pôster da universidade (caixa de cabeçalho azul-marinho com o logotipo branco da universidade, título e autores em branco e o selo azul; barras de seção cinza com texto azul-marinho; um rodapé com uma linha azul-marinho, uma linha de logotipos com o logotipo D3 primeiro e um espaço para referências), define a paleta D3 (azul-marinho da universidade, laranja D3 de destaque) e incorpora os macros \highlight / \keypoint / infobox / card do d3-abstract. Compila com XeLaTeX ou LuaLaTeX para a fonte corporativa Inclusive Sans UW; tem fallback para pdfLaTeX com um clone Helvetica.

O selo no cabeçalho é uma escolha provisória: o livreto de design corporativo da universidade o substitui por um ornamento da faculdade em comunicação da faculdade e do departamento, e esse pacote da faculdade ainda não foi lançado. Troque uw-seal-blue.pdf quando for lançado.

Arquivos de referência (carregados sob demanda)

O corpo do skill abaixo é o fluxo de trabalho; o material de referência longo está em references/. Carregue um arquivo de referência quando seu tópico surgir:

ArquivoCarregar quando
references/extraction.mdFor extrair conteúdo de um artigo (qualquer nível). Contém os comandos de extração nível por nível, extração de figuras PDF (vetorial primeiro), protocolo de rasterização de baixa resolução, prioridade de formato em disco, entrevista de figura de arquitetura.
references/tikz-recipes.mdFor desenhar uma figura do zero em TikZ. Contém 4 receitas que compilam verificadamente (diagrama de blocos, pipeline, arquitetura em camadas, comparação) mais regras gerais de TikZ.
references/error-handling.mdErros de compilação ou bugs de renderização visíveis. Contém os 8 problemas conhecidos (classe ausente, fontes ausentes, conflito siunitx \d, gradiente de cabeçalho em vez de preenchimento sólido, erro Calibri, corte silencioso, letras gregas ou símbolos desaparecidos, bloco de título definido menor).
references/dual-agent-review.mdA profundidade da revisão é standard ou full (veja Revisão). Contém os prompts do revisor, o loop de iteração para full (limitado a 4 rodadas), protocolo de pontuação para README.
references/macros-and-styling.mdFor escrever o corpo do pôster e precisar confirmar nomes de macros, valores de cores, tamanhos de fonte, convenções de tabela.

Arquivos de modelo e ativos

<dir-skill>/
├── SKILL.md                    # este arquivo
├── baposter.cls                # arquivo de classe (copiado para cada projeto em drafts/)
├── example-poster.tex          # exemplo de referência -- NÃO copie para projetos de usuário
├── references/                 # referências de divulgação progressiva (veja tabela acima)
└── assets/                     # esta pasta INTEIRA é copiada para projetos de usuário
    ├── 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

Duas regras de posicionamento:

  1. baposter.cls fica na RAIZ DO SKILL, não em assets/. \documentclass não aceita prefixos de caminho de forma confiável, então o arquivo de classe deve ser um irmão do arquivo .tex no momento da compilação.
  2. example-poster.tex fica na RAIZ DO SKILL, NÃO dentro de assets/. Nunca o copie para um projeto de usuário. É uma referência que você lê quando precisa lembrar dos padrões. Se você copiar assets/ por completo, não pega example-poster.tex — exatamente certo, porque enviá-lo junto com o poster.tex do usuário confundiria o seletor "Documento principal" do Overleaf e deixaria um example-poster.pdf obsoleto. O projeto do usuário deve conter UM .tex cujo nome base corresponda ao seu .pdf.

Configuração do projeto (local de salvamento + estrutura de pastas)

Prioridade do local de salvamento

Pôsteres geralmente estão vinculados a um artigo. Onde você salva determina se colaboradores podem compilar no Overleaf quando o LaTeX local não está disponível. Decida o local de salvamento ANTES de criar qualquer arquivo:

  1. Submódulo do artigo detectado → <submodulo>/poster/. Se .gitmodules lista um submódulo que contém um artigo (caminho como paper/, manuscript/, overleaf/, ou qualquer submódulo cujo conteúdo inclua um \title{} + \begin{abstract} .tex), salve dentro desse submódulo. Convenção de laboratório: submódulos de artigo ficam no GitHub e o projeto Overleaf correspondente sincroniza via Sincronização GitHub do Overleaf — o repositório remoto será github.com/..., não git.overleaf.com.
  2. Nenhum submódulo, mas existe uma pasta de artigo → <pasta-artigo>/poster/. Ainda coloque sob a pasta do artigo.
  3. Fallback → ./poster/ na raiz do diretório de trabalho atual.

Detecte com:

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

Imprima e confirme com o usuário antes de criar arquivos:

[HH:MM:SS] LOCAL DE SALVAMENTO: <caminho-escolhido>/poster/
  Motivo: [submódulo do artigo em paper/ (hospedado no GitHub, sincronizado com Overleaf) | pasta paper/ existe | fallback da raiz do repositório]
  Acessível no Overleaf? [sim -- envie o submódulo para o GitHub, Overleaf sincronizará | não -- compilação local apenas]

Estrutura de pastas

<alvo-de-salvamento>/poster/
├── progress.md
├── SUMMARY.md
├── drafts/
│   ├── baposter.cls            # copiado do skill (irmão de poster.tex)
│   ├── assets/                 # copiado do skill (d3-poster.sty, logos, fonts)
│   ├── figures/                # opcional: figuras específicas do pôster
│   ├── poster.tex              # o único arquivo de trabalho (versionado via git)
│   ├── poster.pdf              # sempre tem o nome base correspondente
│   └── revision_notes.md
└── final/
    ├── baposter.cls            # duplicado para upload independente ao Overleaf
    ├── assets/                 # duplicado para upload independente ao Overleaf
    ├── poster.tex              # mesmo nome de arquivo que em drafts/ -- nome base invariante
    ├── poster.pdf
    └── README.md               # data, título, evento, pontuações da revisão

Comandos de configuração:

DIR_POSTER=<caminho-resolvido>/poster
mkdir -p "$DIR_POSTER/drafts" "$DIR_POSTER/final"
cp    <dir-skill>/baposter.cls "$DIR_POSTER/drafts/baposter.cls"
cp -r <dir-skill>/assets       "$DIR_POSTER/drafts/assets"
# NÃO copie example-poster.tex -- ele permanece na raiz do skill.

Regra de nomenclatura (crítica para Overleaf): o arquivo de trabalho é sempre poster.tex, produzindo poster.pdf. O nome base corresponde. O versionamento usa git, não prefixos de nome de arquivo — nada de v1_poster.tex, nada de YYYYMMDD_titulo.tex. Uma versão anterior deste skill usava tais prefixos; na prática, confundia uploads do Overleaf (o usuário definia v2_poster.tex como documento principal, mas o v1_poster.pdf em cache ao lado tornava pouco claro qual era a saída real).

Por que duplicar baposter.cls + assets/ tanto em drafts/ quanto em final/? ~1 MB por cópia, mas garante que cada pasta seja enviável independentemente para o Overleaf — um colaborador abrindo final/ não precisa de nada de drafts/.

Esqueleto do documento

TODO pôster DEVE começar com esta estrutura:

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

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

\usepackage{assets/d3-poster}   % Reestilização D3: cores, fontes, macros

\DeclareMathOperator*{\argmin}{arg\,min}
\renewcommand{\vec}[1]{\boldsymbol{#1}}   % Opcional: vetores matemáticos em negrito

\begin{document}

\begin{poster}{
  columns=2,                     % PADRÃO 2. Use 3 SOMENTE quando o conteúdo realmente justificar.
  grid=false,
  eyecatcher=false,
  % Moldura da universidade de d3-poster.sty: margens de 25 mm, caixa de cabeçalho azul-marinho,
  % rodapé com linha de logotipos e referências. Esses dois comprimentos se encaixam no modelo.
  headerheight=\dthreeheaderheight,
  colspacing=\dthreecolspacing,
  background=plain,
  bgColorOne=white,
  bgColorTwo=white,
  % Barras de seção: #ECECEC com texto azul-marinho SemiBold. Por caixa, a chave
  % `emphasis` dá a barra azul centáurea com texto branco.
  borderColor=d3-headergray,
  headerColorOne=d3-headergray,
  headerColorTwo=d3-headergray,
  headerFontColor=d3-navy,
  headerfont=\dthreesectionfont,
  headershape=rectangle,
  headershade=plain,             % preenchimento sólido headerColorOne; o padrão `shadeLR` do baposter é um
                                 % gradiente. Veja references/error-handling.md #4.
  headerborder=none,
  boxColorOne=white,
  boxshade=plain,
  boxpadding=0.6em,
  textborder=none
}
%%% Eye Catcher (vazio; o logotipo da universidade ocupa este lugar) %%%
{}
%%% Título -- texto simples; definido como Branco Negrito na caixa de cabeçalho azul-marinho. Sem subtítulo por padrão.
{Título do Seu Pôster}
%%% Autores -- uma linha, branco, abaixo do título.
{Nome do Autor, Data Driven Decisions Group\enspace|\enspace [email protected]}
%%% Linha de logotipos do rodapé: logotipo D3 nas duas primeiras células
{\dthreelogos}

%%% Motivação (coluna 0, linha 0)
\headerbox{Motivação}{name=Motivation,column=0,row=0}{
  Parágrafo inicial: por que este trabalho é importante, o que há de novo, métrica de destaque.
  Use \highlight{} com moderação em termos-chave.
}

%%% Problema (coluna 0, preenche até o final)
\headerbox{Problema}{name=Problem,column=0,below=Motivation,above=bottom}{
  Configuração formal do problema. Matemática apropriada ao domínio.
  \keypoint{Conclusão principal em uma frase.}
}

%%% Abordagem (coluna 1, topo)
\headerbox{Abordagem}{name=Approach,column=1,row=0}{
  Metodologia. Termine com a figura de visão geral do método (sem legenda necessária -- descreva no texto do corpo).
}

%%% Resultados (coluna 1, preenche até o final)
\headerbox{Resultados Empíricos}{name=Results,column=1,below=Approach,above=bottom}{
  Infoboxes com métricas + uma tabela de comparação booktabs.
}

%%% Literatura -- espaço de referências no rodapé (3 referências, sem caixa separada)
\dthreereferences{
  Autor1 (Ano, \textit{Evento}); Autor2 (Ano, \textit{Evento}); Autor3 (Ano, \textit{Evento}).
}

\end{poster}
\end{document}

CRÍTICO: Use \usepackage{assets/d3-poster} (com prefixo assets/) — o wrapper espera ser carregado de uma raiz de projeto que tenha assets/d3-poster.sty e um baposter.cls irmão.

O que d3-poster.sty desenha (do modelo de pôster A0 da universidade; a geometria escala com o papel, então A1 e outros tamanhos mantêm as proporções):

  • Margens de 25 mm. Caixa de cabeçalho azul-marinho em toda a largura, 119 mm de altura, com o logotipo branco da universidade no canto superior esquerdo, o título (Branco Negrito, 50 pt em A0, como no modelo) e os autores (branco, 34 pt) no campo de texto do modelo, e o selo azul alinhado à direita e à borda inferior da caixa.
  • Barras de seção com cerca de 24 mm de altura: #ECECEC com texto azul-marinho SemiBold. Adicione emphasis às chaves de uma caixa para o segundo estilo do modelo, uma barra azul centáurea com texto branco.
  • Rodapé abaixo das colunas: uma linha azul-marinho; à esquerda, uma linha de logotipos de células de 72 × 39 mm preenchidas a partir do 5º argumento de \begin{poster} (\dthreelogos = o logotipo D3 nas duas primeiras células, cerca de 30 mm de altura; \dthreelogocell{file.pdf} adiciona um logotipo de parceiro, no máximo mais três); à direita, o espaço de Referências (\dthreereferences{...}).
  • Pôsteres anteriores ainda compilam: seu bloco de opções mantém a aparência antiga das barras, o cabeçalho e o rodapé são desenhados de qualquer forma, e \dthreelogos agora preenche a linha de logotipos do rodapé em vez do cabeçalho.

Posicionamento de caixas, colunas, título

Número de colunas — padrão 2, 3 apenas se necessário

Use columns=2 por padrão. Use columns=3 SOMENTE quando:

  • O artigo tem 5+ seções de conteúdo verdadeiramente distintas que não podem ser combinadas (raro)
  • O usuário solicita explicitamente para um evento que espera isso

Em TODO layout, coloque a Literatura no espaço de Referências do rodapé com \dthreereferences{...} (uma lista curta, por exemplo, "Autor1 (Ano, Evento); Autor2 (Ano, Evento); ..."), não em uma caixa. O modelo da universidade reserva a metade direita do rodapé para isso, e evita a caixa de Literatura apertada que 3 colunas tendem a produzir em A0 retrato. 3-5 referências curtas cabem; um bloco mais longo é definido menor e o log informa isso.

Grade padrão de 2 colunas

+-----------------------------------------------+
| [logo uni]  Título, autores (branco) [selo]   |  caixa de cabeçalho azul-marinho
+-----------------------+-----------------------+
| Motivação            | Abordagem              |
| (col 0, topo)        | (col 1, topo)          |
+-----------------------+-----------------------+
| Problema               | Resultados Empíricos     |
| (col 0, preenche até | (col 1, preenche até      |
|  o final)              |  o final)              |
+-----------------------+-----------------------+
| -------------------- linha azul-marinho ------ |
| [logo D3] [parceiro] | Referências            |  rodapé
+-----------------------+-----------------------+

Variante de 3 colunas (rara)

+---------------+---------------+---------------+
| Motivação    | Abordagem      | Resultados     |
| (col 0)       | (col 1,       | Empíricos      |
+---------------+  altura total) | (col 2,       |
| Problema       |               |  altura total) |
| (col 0)       |               |               |
+---------------+---------------+---------------+
| rodapé: linha de logotipos (D3 primeiro)   | Referências    |
+---------------+---------------+---------------+

Chaves de \headerbox

ChavePropósitoExemplo
name=XIdentificador único para referências cruzadasname=Motivation
column=NÍndice de coluna baseado em 0column=0
row=NLinha baseada em 0 a partir do toporow=0
below=YPosiciona diretamente abaixo da caixa Ybelow=Motivation
above=bottomEstica até o final da páginaabove=bottom
height=1Preenche a altura total da colunararamente necessário em 2 col
span=2Atravessa 2 colunasspan=2 em name=Motivation

Título

\dthreepostertitle{Seu Título Aqui} é um auxiliar para o texto do título quando você quer negrito branco no modelo azul-marinho. Use-o no lugar de um comando LaTeX \textbf{} diretamente, pois mantém a cor consistente.

IMPORTANTE: O título é o ÚNICO lugar onde \dthreepostertitle{} deve ser usado. Não o use em texto de corpo.

Fluxo de trabalho de compilação

Antes de compilar, certifique-se de que os pacotes LaTeX necessários estejam instalados.

Pré-requisitos

# Verificar instalação de fontes
fc-list | grep -i "InclusiveSansUW"

# Verificar programa LaTeX
which xelatex || which lualatex || which pdflatex

# Instalar fontes se necessário (Linux)
sudo cp -r <dir-skill>/assets/fonts/* /usr/local/share/fonts/
fc-cache -fv

Compilar

cd <dir-poster>/drafts
xelatex -shell-escape poster.tex
# Executar novamente se houver referências cruzadas
xelatex poster.tex

Nota: O Overleaf requer upload de baposter.cls e assets/ como acima.

Fluxo de trabalho capturado

flowchart TD
    A[Início] --> B{Detectar local de salvamento}
    B --> C[Submódulo | pasta do artigo | raiz]
    C --> D[Criar estrutura de pastas]
    D --> E[Extrair conteúdo do artigo]
    E --> F[Escrever esboço do pôster]
    F --> G[Compilar + revisar]
    G --> H{Qualidade aceitável?}
    H -->|Não| I[Iterar: ajustar conteúdo/design]
    I --> F
    H -->|Sim| J[Copiar para final/]
    J --> K[Anexar README.md]
    K --> L[Enviar (Git/Overleaf)]

Extração de conteúdo

Extrair automaticamente do artigo

Use o conteúdo em references/extraction.md para extrair seções, figuras, tabelas e referências de um artigo.

Extrair figuras

Para extrair figuras de um PDF:

# Extrair como vetor (recomendado)
pdftops -f <n> -l <n> -eps artigo.pdf figura.eps
epstopdf figura.eps figura.pdf

# Fallback raster (baixa resolução, ~150 dpi)
pdftoppm -f <n> -r 150 artigo.pdf figura.png

Uso de referências

Use \dthreereferences{...} para formatar referências no rodapé. Exemplo:

\dthreereferences{
  Smith et al. (2023, \textit{NeurIPS}); \\
  Johnson (2022, \textit{ICML}); \\
  Lee \& Kim (2021, \textit{JMLR})
}

Macros de texto

Use estes macros para destacar conteúdo:

  • \highlight{texto} — destaca em laranja D3
  • \keypoint{texto} — caixa de destaque com fundo azul-marinho claro
  • \infobox{texto} — caixa de informação com borda
  • \card{texto} — cartão de conteúdo

Guia de resolução de problemas

Problemas comuns e suas soluções estão em references/error-handling.md. Problemas frequentes:

  1. Classe ausente: Certifique-se de que baposter.cls está no mesmo diretório que poster.tex.
  2. Fonte não encontrada: Instale Inclusive Sans UW (veja Pré-requisitos).
  3. siunitx conflito com \d: Adicione \DeclareUnicodeCharacter{00F0}{\d}.
  4. Gradiente de cabeçalho: Adicione headershade=plain ao bloco de opções.
  5. Erro Calibri: Substitua Calibri pela fonte do sistema.

Histórico de versões

  • v2.0 (2025-01-15): Migrado para d3-poster.sty; suporte a XeLaTeX/LuaLaTeX com Inclusive Sans UW; separação de drafts/final; local de salvamento baseado em submódulo.
  • v1.0 (2023-05-20): Lançamento inicial com suporte a pdfLaTeX e grade 2 colunas.

Individual skills in this repo

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

Habilidades Relacionadas