Les posters sous LaTeX

Pour continuer la série « on peut tout faire sous $latex \LaTeX$ », on va voir aujourd’hui comment réaliser des posters scientifiques, à la fois rigoureux et élégants.

Les principales distributions $latex \LaTeX$ fournissent en natif la classe a0poster, qui permet, comme sont nom l’indique, de réaliser des posters scientifique au format A0. Mais on va en fait utiliser une classe tierce, développée par un certain Brian Amberg.

Celle-ci présente en effet l’avantage d’être plus flexible que a0poster, tout en étant beaucoup plus jolie. Vous pouvez télécharger ici l’archive complète contenant :

  • le fichier de classe (baposter.cls)
  • des exemples de code
  • quelques exemples compilés

 

Quelques exemples

Pour les curieux ou sceptiques, cliquez pour télécharger le pdf

brians icvss 2011 poster

cvpr11 poster

cvpr09 poster

 

 

 

Pas mal, non ?
Comme notre ami Brian nous m’a bien mâché le travail, je vais me contenter d’expliquer un peu comment utiliser cette classe, en partant des exemples de code cités plus haut.

Définition de la classe

 \documentclass[landscape,a0paper,fontscale=0.292]{baposter}

Le premier argument peut être landscape ou portrait, pour un poster en format paysage ou portrait. Le second utilise les formats papier standards : a0paper, a1paper, a2paper, a3paper, a4paper et archE.
fontscale donne la taille de la police à utiliser (augmenter cette valeur pour diminuer la taille de la police).

Liste des packages utilisés

Comme d’habitude. Je vais toutefois préciser l’utilité de certains d’entre eux.

algorithm2e : permet de mettre en forme du code (un peu à la manière de listing)
times : on écrit en police Adobe Times Roman. Maintenant obsolète (remplacé par mathptmx)
calc : LaTeX peut faires calculs
url : permet de couper proprement les longues adresses URL
relsize : nous permet de changer « à la volée » la taille de la police dans le document
booktabs : pour écrire des tableaux « professionnels » (voir le Wikibook)
rotating : fournit la commande rotate pour tourner les figures

Définition des commandes personnalisées

A moins que vous ne soyez aussi exigeants que Brian, vous pouvez vous passer de tous les \newcommand et autres \DeclareMathSymbol.

Apparence du poster

On commence (enfin) le poster avec le tant attendu \begin{poster} dans lequel on donne le style et les couleurs des éléments du poster. Vous aurez relevé que l’on peut afficher une grille, pour s’aider au placement des boites (voir ci-après).

Définition et placement des boites

Là on rentre vraiment dans le vif du sujet  : les boites et leur contenu. Comme vous l’avez vu sur les exemples cités plus haut, tout le poster repose sur des boites, qui consistent chacune en :

  1. un titre (dans l’entête de chaque boite)
  2. un contenu
  3. un identifiant

On peut placer les boites de façon absolue : la feuille est découpée en lignes et colonnes. Par défaut le nombre de colonnes est 3 en portrait et 4 en paysage (ce nombre peut être changé avec par exemple columns=4 au \begin{poster}). Il y a autant de lignes que nécessaire.

Le placement peut aussi être fait de façon relative, grâce aux commandes below et above. D’où l’intérêt des identifiants par boite. Si on veux par exemple placer la boite suivante entre les boites results et strategy :

\headerbox{Solution}{name=solution,column=1,row=0,below=results,above=strategy}{
This discrete optimization is solved by Branch and Bound, which is a method to minimize a function over a set. It requires us to
(1) efficiently specify solution subsets,
(2) determine a lower bound on the minimal cost of the solutions within a subset, and
(3) specify a strategy to split a solution subset into two new subsets.
}

L’identifiant bottom est défini par défaut. Son utilité est évidente : placer une boite tout en bas de la page :

\headerbox{Splitting Strategy}{name=strategy,column=1,above=bottom, span=2}{
  Different splitting strategies result in vastly different performance.
  Note that  `split into equal sized problems' is one of the worst strategies for
  branch and bound.
}

L’option span indique sur combien de colonnes étendre la boite.

Ordre des commandes

La difficulté de cette classe, c’est que $latex \LaTeX$ va lire la source de façon linéaire et va s’arrêter si un identifiant non défini est appelé. Du coup, si vous voulez placer une boite A par rapport à la boite B, alors il vous faudra définir B d’abord.

Pour aller plus loin

Le mieux est bien sûr de visiter la page dédiée à BAposter. Vous trouverez ici la documentation complète.