Présenter les résultats d'un championnat sportif avec LaTeX est aisé. Il suffit de rédiger un tableau dont lignes et colonnes correspondent chacune à un concurrent : à chacune de leurs intersections se trouvera le résultat de la rencontre ayant opposé le concurrent En revanche, existe-t-il un moyen aisé de présenter les résultats d'une Coupe ? À savoir une compétition avec des seizièmes de finale, des huitièmes, etc. - et un nombre de concurrents diminuant de moitié à chaque tour ? Rédiger un tel graphique à l'aide d'un tableau est assez contraignant, puisque le nombre de cases de celui-ci diminue à chaque tour : dans le cas d'un tournoi commençant aux seizièmes de finale, la première colonne comporte trente-deux rangées et la cinquième seulement deux ! Je prends un exemple déniché sur wikipédia : le tableau final de la Coupe du monde féminine de football 2015. Comme je l'ai indiqué plus haut, le tableau ci-dessus a un nombre de rangées allant diminuant ; il offre aussi la caractéristique d'avoir certaines de ses données qui se répètent d'une colonne à l'autre : en toute logique, les deux finalistes de cette compétition sont présents dans chacune des colonnes. Existerait-il une extension LaTeX gérant automatiquement le nombre de rangées allant diminuendo et proposant des raccourcis permettant de ne pas répéter les mêmes données de colonne en colonne ? |
Voici une solution utilisant les arbres de TikZ. Mais il faut encore fournir toutes les données de chaque match...
Seconde propositionVoici une amélioration du code précédent permettant l'ajout d'un titre et d'un fond coloré pour chaque colonne.
Troisième propositionIci, afin d'aligner les noms des pays à gauche et les scores à droite et pour garantir un alignement globale, on fixe la largeur de la matrice contenant un match en fixant la largeur de chacune des deux colonnes (merci à @touhami pour cette suggestion). On ajoute aussi la petite finale (qui ne fait pas partie de l'arbre des matches), en la positionnant à l'intersection du dernier match des huitièmes de finale (8-8) et de la finale (1-1) d'où l'utilisation de
La réponse est remarquable. Une chose cependant : il faudrait présenter cela en colonnes, de préférence avec un fond coloré alternant d'une colonne à l'autre, chaque colonne possédant un en-tête précisant « quarts de finale », « demi-finale », etc. C'est pour cette raison que j'ai initialement pensé à un tableau. C'est parfait. @Pathe Si la réponse convient, il est préférable de le signifier en « l'acceptant » (en cliquant sur la coche figurant en haut à gauche) plutôt qu'au moyen d'un commentaire. Dans chaque colonne de résultats, j'aimerais aligner à gauche les noms de pays, tandis que les scores eux-mêmes resteraient alignés à droite comme c'est à présent le cas. Je n'ai pas trouvé le paramètre réglant la position du texte dans chaque node. Comment faire ? Par ailleurs, l'ajout du match pour la troisième place, qui si l'on s'en réfère à l'exemple devrait être placé au bas de la colonne de la finale, s'avère problématique. 1
Pour ajouter la petite finale, juste avant Concernant la mini-matrice utilisée pour chaque match, chacun des nœuds est centré (le nom du pays comme celui du score). Il suffit de tester avec un score supérieur à 9 pour s'en rendre compte. Pour choisir l'alignement, il ne faut plus utiliser
@Pathe et @Paul Gaborit On peut redefinir le style
Le code pour l'inclusion de la petite finale fonctionne bien, même si je ne le comprends pas totalement. On utilise un noeud « gain premier », on l'appelle « pf » : jusqu'ici ça va. Mais je ne comprends pas son positionnement : pourquoi est-ce que Quant à inclure la mention « petite finale » au-dessus de ce résultat, et sur fond blanc, j'en suis loin ! @touhami : votre proposition de redéfinition du style « match » fonctionne, mais chose étrange, le quart de finale « France - Allemagne » est décalé à gauche par rapport aux trois autres quarts de finale. Pourquoi ? En fait les noeuds ont chacun une taille différente : tout dépend du texte que chaque noeud contient. Ainsi la chaîne « Canada 1 / Suisse 0 » est-elle plus courte que « France 3 / Corée du Sud 0 », d'où des ruptures d'alignement vertical. Pour bien faire, il faudrait spécifier une taille pour toutes les matrices contenant les résultats, ce qui permettrait d'aligner parfaitement ceux-ci. Et de rendre identiques tous les traits qui relient les résultats (par exemple de deux huitièmes de finale au quart de finale qui en découle). 1
@Pathe c'est ça. On peut par exemple puis remplacer 1
@Pathe Pour le positionnement de la petite finale, j'utilise l'opérateur Ajouter
Je suis navré de revenir à nouveau sur ce fil, mais j'essaye de commenter le code, et je ne réussis pas à trouver le paramètre permettant d'intervenir sur la longueur des fins traits noirs horizontaux qui partent d'un score et vont à la barre verticale située entre deux zones colorées. @Pathe Pour la distance qui sépare deux colonnes, c'est le paramètre Si je comprends bien,
J'ai bon ? Si j'ai bon, je ne comprends pas pourquoi mes traits démarrent au milieu des colonnes et non à l'ouest des parentnodes : cette partie de mon code est identique à celle présente ci-dessus. @Pathe merci de préciser ce que vous voulez par milieu des colonnes? ou un capteur-écran? Je m'explique : j'ai inséré les drapeaux, comme sur la source Wikipédia. Du coup mes colonnes ont besoin d'être plus larges. J'ai donc modifié ces lignes suivantes : Ouvrir dans l'éditeur
... et ça change tout ! Je ne réussis pas à changer la longueur de ces traits. J'essaie de comprendre comment uploader une copie d'écran et je la poste illico. Voici ce que ça donne :
Affichage de 5 parmi 23
Afficher 18 commentaire(s) en plus
|
Voici ce que ça donne : 1
Si j'ai bien compris la raison d'être de cette « capture d'écran », il vaudrait mieux qu'elle apparaisse en mise à jour de la question qu'en réponse. J'ai écrit en commentaire qui ne s'affiche plus : @Pathe pour reproduire ce problème il me fallait écrire 1
@Pathe Le mieux serait de créer une nouvelle question (faisant référence à celle-ci) avec le nouveau code qui pose problème. |
Il est certain que l'utilisation d'un tableau n'est pas la bonne solution pour créer un arbre. Ici, comme point de départ, j'utiliserais les 'tree' de TikZ ou le package 'forest'...