CommunityImagegithub.com

D3 Poster (Conférence / Recherche)

Créez des posters de conférence professionnels au format A0 portrait, avec la marque D3 (Data Driven Decisions) et l'identité visuelle de l'Université de Würzburg, en utilisant la grille baposter.

Qu'est-ce que Recherche) ?

Cette compétence permet de générer des posters de conférence ou de recherche au format A0, respectant la charte graphique du groupe D3 (Data Driven Decisions) et de l'Université de Würzburg (design 2026). Elle s'appuie sur la classe LaTeX `baposter` pour la disposition en grille, et intègre un fichier de style (`d3-poster.sty`) qui redessine l'en-tête, les barres de section et le pied de page avec les couleurs institutionnelles (bleu marine, orange D3) et les polices de caractères (Inclusive Sans UW). La compétence est conçue pour être utilisée avec Claude Code (ou un agent similaire) et offre un flux de travail complet : analyse d'un article existant pour en extraire le résumé, les sections, les figures et la bibliographie ; configuration du projet avec une structure de dossiers claire (brouillons et version finale) ; placement précis des blocs de contenu ; et compilation via XeLaTeX/LuaLaTeX (avec pdfLaTeX en alternative). Elle inclut également des références pour l'extraction de contenu, la création de figures TikZ, la gestion des erreurs de compilation et un processus de révision en deux niveaux. La compétence gère automatiquement le lien avec un sous-module d'article, un dossier d'article existant, ou utilise un dossier `poster/` par défaut, garantissant que le projet est prêt à être téléchargé sur Overleaf.

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

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Recherche) ?

<skill-dir> dans cette compétence désigne le répertoire de base de la compétence elle-même, que Claude Code affiche lorsque la compétence est chargée (installée en tant que plugin : ${CLAUDE_PLUGIN_ROOT}/skills/d3-poster ; copiée manuellement : ~/.claude/skills/d3-poster). Remplacez le chemin réel dans chaque commande. <wording-dir> signifie <skill-dir>/../d3-scientific-wording, la compétence de formulation partagée fournie avec chaque plugin D3.

Créez des affiches de recherche professionnelles au format A0 portrait avec la marque D3 (Data Driven Decisions) et l'Université de Würzburg selon le design corporate 2026 de l'université. S'appuie sur la classe baposter pour une disposition en grille, avec une reprise fine de D3 (d3-poster.sty) qui dessine le cadre du modèle d'affiche universitaire (un bloc d'en-tête bleu marine avec le logo blanc de l'université, un titre et des auteurs en blanc, et le sceau bleu ; des barres de section grises avec du texte bleu marine ; un pied de page avec un trait bleu marine, une rangée de logos avec le logo D3 en premier, et un emplacement pour les références), définit la palette D3 (bleu marine universitaire, accent orange D3), et porte les macros \highlight / \keypoint / infobox / card de d3-abstract. Se compile avec XeLaTeX ou LuaLaTeX pour la police maison Inclusive Sans UW ; utilise pdfLaTeX avec un clone d'Helvetica comme solution de repli.

Le sceau dans l'en-tête est un choix temporaire : le livret CD de l'université le remplace par un ornement de faculté dans les communications des facultés et des chaires, et ce package de faculté n'est pas encore publié. Remplacez uw-seal-blue.pdf une fois qu'il le sera.

Fichiers de référence (chargés à la demande)

Le corps de la compétence ci-dessous est le flux de travail ; le matériel de référence long se trouve dans references/. Chargez un fichier de référence lorsque son sujet est abordé :

FichierCharger quand
references/extraction.mdSur le point d'extraire le contenu d'un article (n'importe quel niveau). Contient les commandes d'extraction par niveau, l'extraction de figures PDF (vecteurs d'abord), le protocole raster basse résolution, la priorité du format sur disque, l'entretien sur la figure d'architecture.
references/tikz-recipes.mdSur le point de dessiner une figure à partir de zéro en TikZ. Contient 4 recettes vérifiées qui se compilent (schéma fonctionnel, pipeline, architecture en couches, comparaison) ainsi que les règles générales TikZ.
references/error-handling.mdErreurs de compilation ou bugs de rendu visibles. Contient les 8 problèmes connus (classe manquante, polices manquantes, conflit siunitx \d, dégradé d'en-tête au lieu d'un remplissage uni, erreur Calibri, découpage silencieux, lettres grecques ou symboles disparus, taille du bloc de titre réduite).
references/dual-agent-review.mdLa profondeur de révision est standard ou full (voir Révision). Contient les invites de relecture, la boucle d'itération pour full (limitée à 4 tours), le protocole score-README.
references/macros-and-styling.mdEn train de rédiger le corps de l'affiche et besoin de confirmer les noms de macros, les valeurs de couleurs, les tailles de police, les conventions de tableau.

Fichiers modèles et ressources

<skill-dir>/
├── SKILL.md                    # ce fichier
├── baposter.cls                # fichier de classe (copié dans chaque projet dans drafts/)
├── example-poster.tex          # exemple de référence -- NE PAS copier dans les projets utilisateur
├── references/                 # références à divulgation progressive (voir tableau ci-dessus)
└── assets/                     # tout ce dossier EST copié dans les projets utilisateur
    ├── 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

Deux règles de placement :

  1. baposter.cls se trouve à la RACINE de la compétence, pas dans assets/. \documentclass n'accepte pas de manière fiable les préfixes de chemin, donc le fichier de classe doit être un frère du fichier .tex au moment de la compilation.
  2. example-poster.tex se trouve à la RACINE de la compétence, PAS dans assets/. Ne le copiez jamais dans un projet utilisateur. C'est une référence que vous lisez lorsque vous avez besoin de vous souvenir des modèles. Si vous copiez assets/ en bloc, vous ne récupérez pas example-poster.tex — c'est exactement ce qu'il faut, car le livrer avec le poster.tex de l'utilisateur confondrait le sélecteur "Document principal" d'Overleaf et laisserait un example-poster.pdf obsolète. Le projet de l'utilisateur doit contenir UN seul fichier .tex dont le nom correspond à son .pdf.

Configuration du projet (emplacement de sauvegarde + structure de dossiers)

Priorité de l'emplacement de sauvegarde

Les affiches sont généralement liées à un article. L'endroit où vous sauvegardez détermine si les collaborateurs peuvent compiler sur Overleaf lorsque LaTeX local n'est pas disponible. Décidez de l'emplacement de sauvegarde AVANT de créer des fichiers :

  1. Sous-module d'article détecté → <submodule>/poster/. Si .gitmodules répertorie un sous-module qui contient un article (chemin comme paper/, manuscript/, overleaf/, ou tout sous-module dont le contenu inclut un .tex avec \title{} + \begin{abstract}), sauvegardez à l'intérieur de ce sous-module. Convention du laboratoire : les sous-modules d'articles vivent sur GitHub et le projet Overleaf correspondant se synchronise via la synchronisation GitHub d'Overleaf — le dépôt distant sera github.com/..., pas git.overleaf.com.
  2. Pas de sous-module mais un dossier d'article existe → <paper-folder>/poster/. Placez-le toujours sous le dossier de l'article.
  3. Solution de repli → ./poster/ à la racine du répertoire de travail actuel.

Détectez avec :

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

Affichez et confirmez avec l'utilisateur avant de créer des fichiers :

[HH:MM:SS] EMPLACEMENT DE SAUVEGARDE : <chemin-choisi>/poster/
  Raison : [sous-module d'article dans paper/ (hébergé sur GitHub, synchronisé avec Overleaf) | dossier paper/ existe | solution de repli racine du dépôt]
  Accessible sur Overleaf ? [oui -- pousser le sous-module sur GitHub, Overleaf se synchronisera | non -- compilation locale uniquement]

Structure de dossiers

<cible-sauvegarde>/poster/
├── progress.md
├── SUMMARY.md
├── drafts/
│   ├── baposter.cls            # copié depuis la compétence (frère de poster.tex)
│   ├── assets/                 # copié depuis la compétence (d3-poster.sty, logos, polices)
│   ├── figures/                # optionnel : figures spécifiques à l'affiche
│   ├── poster.tex              # le seul fichier de travail (versionné via git)
│   ├── poster.pdf              # a toujours le même nom que son .tex
│   └── revision_notes.md
└── final/
    ├── baposter.cls            # dupliqué pour téléchargement autonome Overleaf
    ├── assets/                 # dupliqué pour téléchargement autonome Overleaf
    ├── poster.tex              # même nom de fichier que dans drafts/ -- nom invariant
    ├── poster.pdf
    └── README.md               # date, titre, lieu, scores de révision

Commandes de configuration :

POSTER_DIR=<chemin-resolu>/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"
# NE PAS copier example-poster.tex -- il reste à la racine de la compétence.

Règle de nommage (critique pour Overleaf) : le fichier de travail est toujours poster.tex, produisant poster.pdf. Le nom correspond. Le versionnement utilise git, pas les préfixes de nom de fichier — pas de v1_poster.tex, pas de YYYYMMDD_titre.tex. Une version précédente de cette compétence utilisait de tels préfixes ; en pratique, cela confondait les téléchargements Overleaf (l'utilisateur définissait v2_poster.tex comme document principal, mais le v1_poster.pdf en cache à côté rendait flou le résultat réel).

Pourquoi dupliquer baposter.cls + assets/ à la fois dans drafts/ et final/ ? ~1 Mo par copie, mais cela garantit que chaque dossier est téléchargeable indépendamment sur Overleaf — un collaborateur ouvrant final/ n'a besoin de rien de drafts/.

Squelette du document

TOUTE affiche DOIT commencer par cette structure :

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

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

\usepackage{assets/d3-poster}   % Reprise D3 : couleurs, polices, macros

\DeclareMathOperator*{\argmin}{arg\,min}
\renewcommand{\vec}[1]{\boldsymbol{#1}}   % Optionnel : vecteurs mathématiques en gras

\begin{document}

\begin{poster}{
  columns=2,                     % PAR DÉFAUT 2. Utilisez 3 UNIQUEMENT lorsque le contenu le justifie vraiment.
  grid=false,
  eyecatcher=false,
  % Cadre universitaire depuis d3-poster.sty : marges de 25 mm, bloc d'en-tête bleu marine,
  % pied de page avec rangée de logos et références. Ces deux longueurs correspondent au modèle.
  headerheight=\dthreeheaderheight,
  colspacing=\dthreecolspacing,
  background=plain,
  bgColorOne=white,
  bgColorTwo=white,
  % Barres de section : #ECECEC avec du texte bleu marine en SemiBold. Par boîte, la clé
  % `emphasis` donne la barre bleu bleuet avec du texte blanc.
  borderColor=d3-headergray,
  headerColorOne=d3-headergray,
  headerColorTwo=d3-headergray,
  headerFontColor=d3-navy,
  headerfont=\dthreesectionfont,
  headershape=rectangle,
  headershade=plain,             % remplissage headerColorOne uni ; le `shadeLR` par défaut de baposter est un
                                 % dégradé. Voir references/error-handling.md #4.
  headerborder=none,
  boxColorOne=white,
  boxshade=plain,
  boxpadding=0.6em,
  textborder=none
}
%%% Œil (vide ; le logo de l'université prend cette place) %%%
{}
%%% Titre -- texte brut ; défini en Blanc Gras dans le bloc d'en-tête bleu marine. Pas de sous-titre par défaut.
{Votre Titre d'Affiche}
%%% Auteurs -- une ligne, blanc, en dessous du titre.
{Nom de l'Auteur, Data Driven Decisions Group\enspace|\enspace [email protected]}
%%% Rangée de logos de pied de page : logo D3 sur les deux premières cellules
{\dthreelogos}

%%% Motivation (colonne 0, ligne 0)
\headerbox{Motivation}{name=Motivation,column=0,row=0}{
  Paragraphe d'introduction : pourquoi ce travail est important, ce qui est nouveau, métrique phare.
  Utilisez \highlight{} avec parcimonie sur les termes clés.
}

%%% Problème (colonne 0, remplit jusqu'en bas)
\headerbox{Problème}{name=Problem,column=0,below=Motivation,above=bottom}{
  Définition formelle du problème. Mathématiques adaptées au domaine.
  \keypoint{Phrase clé à retenir.}
}

%%% Approche (colonne 1, en haut)
\headerbox{Approche}{name=Approach,column=1,row=0}{
  Méthodologie. Terminez par la figure de présentation de la méthode (pas de légende nécessaire -- décrivez dans le corps du texte).
}

%%% Résultats (colonne 1, remplit jusqu'en bas)
\headerbox{Résultats Empiriques}{name=Results,column=1,below=Approach,above=bottom}{
  Boîtes d'information avec métriques + un tableau de comparaison booktabs.
}

%%% Littérature -- emplacement de références en pied de page (3 références, pas de boîte séparée)
\dthreereferences{
  Auteur1 (Année, \textit{Lieu}) ; Auteur2 (Année, \textit{Lieu}) ; Auteur3 (Année, \textit{Lieu}).
}

\end{poster}
\end{document}

CRITIQUE : Utilisez \usepackage{assets/d3-poster} (avec le préfixe assets/) — le wrapper s'attend à être chargé depuis une racine de projet qui a assets/d3-poster.sty et un frère baposter.cls.

Ce que d3-poster.sty dessine (à partir du modèle d'affiche A0 de l'université ; la géométrie s'adapte au format du papier, donc A1 et autres tailles conservent les proportions) :

  • Marges de 25 mm. Bloc d'en-tête bleu marine sur toute la largeur, 119 mm de haut, avec le logo blanc de l'université en haut à gauche, le titre (Blanc Gras, 50 pt sur A0, comme dans le modèle) et les auteurs (blanc, 34 pt) dans le champ de texte du modèle, et le sceau bleu aligné avec les bords droit et inférieur du bloc.
  • Barres de section d'environ 24 mm de haut : #ECECEC avec du texte bleu marine en SemiBold. Ajoutez emphasis aux clés d'une boîte pour le deuxième style du modèle, une barre bleu bleuet avec du texte blanc.
  • Pied de page sous les colonnes : un trait bleu marine ; à gauche une rangée de logos de cellules 72 × 39 mm remplies à partir du 5ème argument de \begin{poster} (\dthreelogos = le logo D3 sur les deux premières cellules, environ 30 mm de haut ; \dthreelogocell{file.pdf} ajoute un logo partenaire, au maximum trois de plus) ; à droite l'emplacement Références (\dthreereferences{...}).
  • Les affiches plus anciennes compilent toujours : leur bloc d'options conserve l'ancien aspect des barres, l'en-tête et le pied de page sont de toute façon dessinés, et \dthreelogos remplit désormais la rangée de logos du pied de page au lieu de l'en-tête.

Positionnement des boîtes, colonnes, titre

Nombre de colonnes — 2 par défaut, 3 uniquement si nécessaire

Utilisez columns=2 par défaut. Utilisez columns=3 UNIQUEMENT lorsque :

  • L'article a 5 sections de contenu véritablement distinctes ou plus qui ne peuvent pas être combinées (rare)
  • L'utilisateur le demande explicitement pour un lieu qui l'exige

Dans chaque mise en page, mettez la Littérature dans l'emplacement Références du pied de page avec \dthreereferences{...} (une courte liste, par ex., "Auteur1 (Année, Lieu) ; Auteur2 (Année, Lieu) ; ..."), pas dans une boîte. Le modèle universitaire réserve la moitié droite du pied de page pour cela, et cela évite la boîte de Littérature à l'étroit que 3 colonnes a tendance à produire au format A0 portrait. 3 à 5 courtes références tiennent ; un bloc plus long est composé plus petit et le journal le signale.

Grille par défaut à 2 colonnes

+-----------------------------------------------+
| [logo uni] Titre, auteurs (blanc)     [sceau] |  bloc d'en-tête bleu marine
+-----------------------+-----------------------+
| Motivation            | Approche              |
| (col 0, en haut)      | (col 1, en haut)      |
+-----------------------+-----------------------+
| Problème              | Résultats Empiriques  |
| (col 0, remplit       | (col 1, remplit       |
|  jusqu'en bas)        |  jusqu'en bas)         |
+-----------------------+-----------------------+
| -------------------- trait bleu marine ------
| [logo D3] [partenaire]| Références            |  pied de page
+-----------------------+-----------------------+

Variante à 3 colonnes (rare)

+---------------+---------------+---------------+
| Motivation    | Approche      | Résultats     |
| (col 0)       | (col 1,       | Empiriques    |
+---------------+  pleine       | (col 2,       |
| Problème      |  hauteur)     |  pleine       |
| (col 0)       |               |  hauteur)     |
+---------------+---------------+---------------+
| pied de page : rangée de logos (D3 en premier)| Références    |
+---------------+---------------+---------------+

Clés de \headerbox

CléObjectifExemple
name=XIdentifiant unique pour les références croiséesname=Motivation
column=NIndex de colonne basé sur 0column=0
row=NIndex de ligne basé sur 0 depuis le hautrow=0
below=YPositionner directement en dessous de la boîte Ybelow=Motivation
above=bottomÉtirer jusqu'au bas de la pageabove=bottom
height=1Remplir toute la hauteur de la colonnerarement nécessaire en 2 colonnes
span

…

[Le reste du contenu a été tronqué pour la traduction]

Individual skills in this repo

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

Skills associés