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:
| Arquivo | Carregar quando |
|---|---|
references/extraction.md | For 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.md | For 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.md | Erros 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.md | A 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.md | For 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:
baposter.clsfica na RAIZ DO SKILL, não emassets/.\documentclassnã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.example-poster.texfica na RAIZ DO SKILL, NÃO dentro deassets/. Nunca o copie para um projeto de usuário. É uma referência que você lê quando precisa lembrar dos padrões. Se você copiarassets/por completo, não pegaexample-poster.tex— exatamente certo, porque enviá-lo junto com oposter.texdo usuário confundiria o seletor "Documento principal" do Overleaf e deixaria umexample-poster.pdfobsoleto. O projeto do usuário deve conter UM.texcujo 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:
- Submódulo do artigo detectado →
<submodulo>/poster/. Se.gitmoduleslista um submódulo que contém um artigo (caminho comopaper/,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ãogit.overleaf.com. - Nenhum submódulo, mas existe uma pasta de artigo →
<pasta-artigo>/poster/. Ainda coloque sob a pasta do artigo. - 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:
#ECECECcom texto azul-marinho SemiBold. Adicioneemphasisà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
\dthreelogosagora 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
| Chave | Propósito | Exemplo |
|---|---|---|
name=X | Identificador único para referências cruzadas | name=Motivation |
column=N | Índice de coluna baseado em 0 | column=0 |
row=N | Linha baseada em 0 a partir do topo | row=0 |
below=Y | Posiciona diretamente abaixo da caixa Y | below=Motivation |
above=bottom | Estica até o final da página | above=bottom |
height=1 | Preenche a altura total da coluna | raramente necessário em 2 col |
span=2 | Atravessa 2 colunas | span=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:
- Classe ausente: Certifique-se de que
baposter.clsestá no mesmo diretório queposter.tex. - Fonte não encontrada: Instale Inclusive Sans UW (veja Pré-requisitos).
siunitxconflito com\d: Adicione\DeclareUnicodeCharacter{00F0}{\d}.- Gradiente de cabeçalho: Adicione
headershade=plainao bloco de opções. - 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.