% !TeX TXS-program:compile = txs:///pdflatex \documentclass[11pt,a4paper]{ltxdoc} \usepackage{TrivialPursuit} \usepackage{fancyvrb} \usepackage{fancyhdr} \fancyhf{} \renewcommand{\headrulewidth}{0pt} \lfoot{\sffamily\small [TrivialPursuit]} \cfoot{\sffamily\small - \thepage{} -} \rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} \usepackage{hologo} \providecommand\tikzlogo{Ti\textit{k}Z} \providecommand\TeXLive{\TeX{}Live\xspace} \providecommand\PSTricks{\textsf{PSTricks}\xspace} \let\pstricks\PSTricks \let\TikZ\tikzlogo \usepackage{hyperref} \urlstyle{same} \hypersetup{pdfborder=0 0 0} \usepackage[margin=2cm]{geometry} \setlength{\parindent}{0pt} \def\TPversion{0.1.7} \def\TPdate{25 août 2025} \usepackage{tcolorbox} \tcbuselibrary{skins,hooks,listingsutf8} \usepackage{openmoji} \usepackage{soul} \sethlcolor{lightgray!25} \NewDocumentCommand\MontreCode{ m }{% \hl{\vphantom{\texttt{pf}}\texttt{#1}}% } \begin{document} \pagestyle{fancy} \thispagestyle{empty} \begin{center} \begin{minipage}{0.88\linewidth} \begin{tcolorbox}[colframe=yellow,colback=yellow!15] \begin{center} \begin{tabular}{c} {\Huge \texttt{TrivialPursuit [fr]}}\\ \\ {\LARGE Créer un plateau type '\textit{Trivial Pursuit}',} \\ {\LARGE avec personnalisations.} \\ \\ {\small \texttt{Version \TPversion{} -- \TPdate}} \end{tabular} \end{center} \end{tcolorbox} \end{minipage} \end{center} \begin{center} \begin{tabular}{c} \texttt{Cédric Pierquet}\\ {\ttfamily c pierquet -- at -- outlook . fr}\\ \texttt{\url{https://github.com/cpierquet/latex-packages/tree/main/trivialpursuit}} \\ \\ \texttt{Trivial Pursuit\texttrademark, est une marque déposée par Hasbro.} \end{tabular} \end{center} \hrule \vfill \begin{tcolorbox}[colframe=lightgray,colback=lightgray!5] \PlateauTrivialPursuit \end{tcolorbox} \vfill~ \pagebreak \phantomsection \hypertarget{matoc}{} \tableofcontents \vspace*{5mm} \hrule \vspace*{5mm} \section{Introduction} \subsection{Description} L'idée de ce package est de proposer un plateau de jeu de type \textsf{Trivial Pursuit} (marque déposée par Hasbro) avec personnalisations au niveau : \begin{itemize} \item des dimensions (rayon + hauteur bordure) ; \item des couleurs ; \item des logos (sous forme de caractères, comme \MontreCode{fontawesome}). \end{itemize} L'alternance des cases et des couleurs est reprise du plateau \textit{classique}, donc est fixée globalement. \medskip Pour le moment, les \textit{limitations} sont : \begin{itemize} \item le nombre de catégories est (pour le moment) fixé à 6 ; \item les logos sont des caractères, comme ceux du package \MontreCode{fontawesome}. \end{itemize} \subsection{Chargement} Pour charger le package, il suffit d'ajouter, dans le préambule : \begin{quote} \begin{verbatim} \usepackage{TrivialPursuit} %avec fa5, par défaut \usepackage[fa6]{TrivialPursuit} %avec fa6 (test) \usepackage[fa7]{TrivialPursuit} %avec fa7 (test) \usepackage[nonfa]{TrivialPursuit} %sans fa (test), à charger manuellement \end{verbatim} \end{quote} Les packages chargés et utilisés par \MontreCode{TrivialPursuit} sont : \begin{itemize} \item \MontreCode{tikz} avec les librairies \MontreCode{calc,positioning} ; \item \MontreCode{calc} et \MontreCode{fontawesome5} ; \item \MontreCode{simplekv} ; \MontreCode{xintexpr} et \MontreCode{listofitems}. \end{itemize} \pagebreak \section{Historique} \begin{quote} \begin{verbatim} 0.1.7 : Ajout de cartes 0.1.6 : Bugfix + pré-compatibilité avec fa67 0.1.5 : Bugfix (compatibilité avec twemoji) 0.1.4 : Bugfix + pré-compatibilité avec fa6 0.1.2 : Ajout d'une clé [VersionCourte] pour diminuer le nombre de cases 0.1.1 : Ajout de palettes de couleurs prédéfinies 0.1.0 : Version initiale \end{verbatim} \end{quote} \pagebreak \section{La commande pour le plateau} \subsection{Fonctionnement global} Le code se charge de tracer le plateau avec les éventuels \textit{ornements}. Toutes les clés disponibles sont présentées dans le paragraphe suivant, mais concernant les dimensions, des \textit{générales} sont proposées par défaut, mais il est toutefois possible de les modifier : \begin{itemize} \item soit explicitement par les clés \MontreCode{[Rayon=...]} et \MontreCode{[HauteurCases=...]} ; \item soit en spécifiant une unité particulière grâce à la clé \MontreCode{[Unite=...]}, au quel cas la forme générale du plateau sera conservée. \end{itemize} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \PlateauTrivialPursuit[Unite=0.5] % \PlateauTrivialPursuit[Rayon=4,HauteurCases=1.25] %attention au rendu... \PlateauTrivialPursuit[Unite=0.33] % \PlateauTrivialPursuit[Unite=0.33,VersionCourte] \end{tcblisting} \pagebreak \subsection{Clés et options} Les \textsf{clés} disponibles sont : \begin{itemize} \item \MontreCode{Rayon} := rayon du plateau (en unité), et valant \MontreCode{8} par défaut ; \item \MontreCode{HauteurCases} := hauteur des cases extérieures, et valant \MontreCode{1.5} par défaut ; \item \MontreCode{ListeCouleurs} := couleurs des catégories (sens trigo), \hfill{}et valant \MontreCode{yellow,orange,blue,brown,green,pink} par défaut ; \item \MontreCode{ListeIcones} := icônes des catégories (sens trigo), \hfill\MontreCode{A,B,C,D,E,F} par défaut ; %\hfill\MontreCode{\textbackslash faArchway,\textbackslash faTableTennis,\textbackslash faUmbrellaBeach,\textbackslash faGuitar,\textbackslash faTree,\textbackslash faMusic} par défaut ; \item \MontreCode{Icones} := booléen pour afficher les icônes, et valant \MontreCode{true} par défaut ; \item \MontreCode{Centre} := booléen pour colorer l'hexagone centrale, et valant \MontreCode{true} par défaut ; \item \MontreCode{CouleurCentre} := couleur du centre hexagonal, et valant \MontreCode{lightgray!25} par défaut ; \item \MontreCode{Couleurs} := booléen pour afficher les couleurs, et valant \MontreCode{true} par défaut ; \item \MontreCode{Logo} := booléen pour afficher un logo central, et valant \MontreCode{true} par défaut ; \item \MontreCode{Jokers} := booléen pour afficher les jokers, et valant \MontreCode{true} par défaut ; \item \MontreCode{IconeJoker} := icône des jokers, et valant \MontreCode{J} par défaut ;%\MontreCode{\textbackslash faDice} par défaut ; \item \MontreCode{Vide} := booléen pour afficher le plateau vide, et valant \MontreCode{false} par défaut ; \item \MontreCode{Unite} := pour préciser l'unité (et gérer un facteur d'échelle), et valant \MontreCode{1} par défaut ; \item \MontreCode{Epaisseur} := épaisseur des tracés, et valant \MontreCode{0.8pt} par défaut ; \item \MontreCode{Rotation} := rotation éventuelle du plateau, et valant \MontreCode{0} par défaut ; \item \MontreCode{VersionCourte} := utiliser 5 cases au lieu de 6 entre les camemberts, et valant \MontreCode{false} par défaut. \end{itemize} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \PlateauTrivialPursuit[Rotation=35,Unite=0.5] \PlateauTrivialPursuit[Unite=0.5] \end{tcblisting} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \PlateauTrivialPursuit[Unite=0.5,Icones=false] \PlateauTrivialPursuit[Unite=0.5,Couleurs=false] \end{tcblisting} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \PlateauTrivialPursuit[Unite=0.5,Vide] \PlateauTrivialPursuit[Unite=0.5,Logo=false,Centre=false,IconeJoker=\faAward] \end{tcblisting} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \PlateauTrivialPursuit[% Jokers=false,% ListeCouleurs={% blue!25,red!25,teal!25,orange!25,gray!50,violet!25},% ListeIcones={%avec fa5 \faAddressCard,\faAngleDoubleRight,\faAngry[regular],% \faAtom,\faBalanceScaleLeft,\faBell} ] \end{tcblisting} \pagebreak \subsection{Palettes de couleurs prédéfinies, icônes fa prédéfinies} En complément (sur une suggestion de \textsf{quark67}), deux styles de couleurs ont été définies en interne : \begin{quote} \begin{verbatim} \TPColorsA \TPColorsB \end{verbatim} \end{quote} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \PlateauTrivialPursuit[Unite=0.5,ListeCouleurs=\TPColorsA] \PlateauTrivialPursuit[Unite=0.5,ListeCouleurs=\TPColorsB] \end{tcblisting} \begin{quote} \begin{verbatim} \categtrivialpursuit \end{verbatim} \end{quote} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \PlateauTrivialPursuit% [ListeIcones=\categtrivialpursuit,ListeCouleurs=\TPColorsB,IconeJoker=\faDice] \end{tcblisting} \pagebreak \section{La commande pour les cartes} \subsection{Fonctionnement global} Le code se charge de représenter des cartes, recto ou verso, avec : \begin{itemize} \item des dimensions \textit{fixées} (mais une échelle globale peut être appliquée) ; \item des couleurs, catégories, questions/réponses personnalisables ; \item des logos éventuels \end{itemize} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \CardTrivialRecto{Q1}{Q2}{Q3}{Q4}{Q5}{Q6}{10} \CardTrivialVerso{R1}{R2}{R3}{R4}{R5}{R6}{256} \CardTrivialVerso[scale=-0.5,rotate=15]{R1}{R2}{R3}{R4}{R5}{R6}{256} \end{tcblisting} Les textes (labels + numéro) sont adaptés automatiquement aux éléments graphiques, la taille de la police des Q/R peut-être adaptée le cas échéant. \begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only} \CardTrivialRecto% [options tikzpicture]% {Q1}{Q2}{Q3}{Q4}{Q5}{Q6}% {numéro de la carte} \CardTrivialVerso% [options tikzpicture]% {R1}{R2}{R3}{R4}{R5}{R6}% {numéro de la carte} \end{tcblisting} \subsection{Macro(s) de personnalisation} Il existe une macro auxiliaire qui permet de modifier différents paramètres des cartes. \begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only} \SetParamsCardTrivial{% QA font=..., %police des Q/R num font=..., %police du numéro label font=..., %police des catégories categ=..., %labels des catégories border deco color=..., %couleur de bordure alt deco color=..., %couleur secondaire color categ A=..., %couleur catégorie A color categ B=..., %couleur catégorie B color categ C=..., %couleur catégorie C color categ D=..., %couleur catégorie D color categ E=..., %couleur catégorie E color categ F=..., %couleur catégorie F alt deco=TF %booleén pour afficher la bordure } \end{tcblisting} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only} %logo verso \def\intlogocardversotrivial{% \draw[white] (CARD-LOGO) node[rotate=90,text width=3.75cm,font=\Huge\sffamily,align=left] {{\TeX} \\\hfill{\itshape Pursuit}} ; } \end{tcblisting} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only} %logo recto (fond) \def\intlogocardrectotrivial{} \end{tcblisting} \subsection{Exemple personnalisé} \begin{tcblisting}{colframe=lightgray,colback=lightgray!5,listing only} %\usepackage{openmoji} \SetParamsCardTrivial{% border deco color=teal, alt deco color=orange, QA font={\sffamily\fontsize{8pt}{10pt}\selectfont},% label font={\bfseries}, categ={No,H,Ma,Oo,A,G} } \def\intlogocardversotrivial{% \draw (CARD-LOGO) node[rotate=90] {\openmoji[height=2.25cm]{game die}\openmoji[height=2.25cm]{glowing star}} ; } \def\intlogocardrectotrivial{% \draw (CARD-LOGO) node[opacity=0.05] {\openmoji[height=4.25cm]{green apple}} ; } \end{tcblisting} \SetParamsCardTrivial{% border deco color=teal, alt deco color=orange, QA font={\sffamily\fontsize{8pt}{10pt}\selectfont},% label font={\bfseries}, categ={No,H,Ma,Oo,A,G} } \def\intlogocardversotrivial{% \draw (CARD-LOGO) node[rotate=90] {\openmoji[height=2.25cm]{game die}\openmoji[height=2.25cm]{glowing star}} ; } \def\intlogocardrectotrivial{% \draw (CARD-LOGO) node[opacity=0.05] {\openmoji[height=4.25cm]{green apple}} ; } \begin{tcblisting}{colframe=lightgray,colback=lightgray!5} \CardTrivialRecto{Q1}{Q2}{Q3}{Q4}{Q5}{Q6}{12} \CardTrivialVerso[scale=-1]{R1}{R2}{R3}{R4}{R5}{R6}{12} \end{tcblisting} \end{document}