Historique des modifications [retour]
cliquez ici pour masquer/afficher la révision 2

15 Avr '16, 13:06

unbonpetit's gravatar image

unbonpetit
1.8k18

En attendant qu'une meilleure solution soit proposée, en voici une, pas très élégante ni très propre : \documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{marvosym,array} \makeatletter \def\csdef#1#2{\csname #1def\expandafter\endcsname\csname#2\endcsname} \def\defcumul#1{% \csdef{}{cumul#1}{% \csdef g{total@#1}{0}% \csdef g{cumul#1}{% \gdef\Ckbox{\Checkedbox \csdef x{total@#1}{\number\numexpr\csname total@#1\endcsname+1}% }% }% }% \csdef{}{total#1}{\csname total@#1\endcsname}% } \@for\@iter:=i,ii,iii,iv\do{\expandafter\defcumul\expandafter{\@iter}}% \makeatother \begin{document} \pagestyle{empty} \begin{center} \begin{tabular}{|l<\cumuli|c<\cumulii|c<\cumuliii|c<\cumuliv|c|}\hline & Julie & Albertine & Solange & Thérèse\\\hline\hline Villefort & \Ckbox & & \Ckbox & \Ckbox\\\hline Tarare & & \Ckbox & \Ckbox & \Ckbox\\\hline Sommepy-Tahure & \Ckbox & & & \Ckbox \\\hline Quend & \Ckbox & \Ckbox & & \Ckbox\\\hline\hline \textbf{Total} & \totali & \totalii & \totaliii & \totaliv\\\hline \end{tabular} \end{center} \end{document}\end{document} Voici une autre approche qui utilise `spreadtab` (on y revient...) et qui présente l'avantage de fonctionner pour les très grands tableaux sans avoir besoin de modifier la dernière ligne, celle des totaux. Ce n'est pas très adroit ici non plus ni très élégant, et je suis certain qu'un participant proposera une meilleure solution. \documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{marvosym,collcell,spreadtab} \newcolumntype C{>{\collectcell\testcell}c<\endcollectcell} \def\testcell#1{\IfInteger{#1}{\ifnum#1<0 \number-#1 \else\ifnum#1=1 \Checkedbox\fi\fi}{#1}} \begin{document} \spreadtab{{tabular}{|l|*{4}{C|}}}\hline & @Julie & @Albertine & @Solange & @Thérèse\\\hline\hline @Villefort & 1 & & & 1 \\\hline @Tarare & & 1 & 1 & 1 \\\hline @Sommepy-Tahure & 1 & & & 1 \\\hline @Quend & 1 & 1 & & 1 \\\hline\hline @\textbf{Total} & \STcopy>{-sum(b2:[0,-1])} & & & \\\hline \endspreadtab \end{document}
cliquez ici pour masquer/afficher la révision 1

15 Avr '16, 11:29

unbonpetit's gravatar image

unbonpetit
1.8k18

En attendant qu'une meilleure solution soit proposée, en voici une, pas très élégante ni très propre : \documentclass{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{marvosym,array} \makeatletter \def\csdef#1#2{\csname #1def\expandafter\endcsname\csname#2\endcsname} \def\defcumul#1{% \csdef{}{cumul#1}{% \csdef g{total@#1}{0}% \csdef g{cumul#1}{% \gdef\Ckbox{\Checkedbox \csdef x{total@#1}{\number\numexpr\csname total@#1\endcsname+1}% }% }% }% \csdef{}{total#1}{\csname total@#1\endcsname}% } \@for\@iter:=i,ii,iii,iv\do{\expandafter\defcumul\expandafter{\@iter}}% \makeatother \begin{document} \pagestyle{empty} \begin{center} \begin{tabular}{|l<\cumuli|c<\cumulii|c<\cumuliii|c<\cumuliv|c|}\hline & Julie & Albertine & Solange & Thérèse\\\hline\hline Villefort & \Ckbox & & \Ckbox & \Ckbox\\\hline Tarare & & \Ckbox & \Ckbox & \Ckbox\\\hline Sommepy-Tahure & \Ckbox & & & \Ckbox \\\hline Quend & \Ckbox & \Ckbox & & \Ckbox\\\hline\hline \textbf{Total} & \totali & \totalii & \totaliii & \totaliv\\\hline \end{tabular} \end{center} \end{document}

C'est votre première visite ici ? Consultez la FAQ !

×