1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
%%%
% R\'eponses \`a relier
%%%
\setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm,Couleur=black}%
\defKV[ClesRelie]{Graine=\PfCGraineAlea{#1}}%
\NewDocumentCommand\Relie{som}{%
\useKVdefault[ClesRelie]%
\setKV[ClesRelie]{#2}%
\colorlet{PfCRelieCouleurTrace}{\useKV[ClesRelie]{Couleur}}%
\setsepchar[*]{,*/}\reademptyitems%
\readlist*\ListeRelie{#3}%
\ignoreemptyitems%
\IfBooleanTF{#1}{%
\buildtabrelieauto%
%\par
\ifboolKV[ClesRelie]{Solution}{%
\xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{%
\itemtomacro\PfCListeReponsesMelangees[##1]\PfCNumReponses%
\itemtomacro\ListeRelie[\PfCNumReponses,1]\untest%
% Le test est \untest\\
\ifx\bla\untest\bla%
\else
\tikz[remember picture,overlay]{\draw[PfCRelieCouleurTrace] (RelieG-\PfCNumReponses) -- (RelieD-##1);}%
\fi
}%
}{%
}%
}{%
\buildtabrelie%
\ifboolKV[ClesRelie]{Solution}{%
\xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{%
\itemtomacro\ListeRelie[##1,1]\untest%
\ifx\bla\untest\bla%
\else%
\tikz[remember picture,overlay]{\draw[PfCRelieCouleurTrace] (RelieG-##1) -- (RelieD-\ListeRelie[##1,3]);}%
\fi
}%
}{%
}%
}%
}%
\newcommand\Relieold[2][]{%
\useKVdefault[ClesRelie]%
\setKV[ClesRelie]{#1}%
\setsepchar[*]{,*/}\reademptyitems%
\readlist*\ListeRelie{#2}%
\ignoreemptyitems
\buildtabrelie%
\ifboolKV[ClesRelie]{Solution}{%
\colorlet{PfCRelieCouleurTrace}{\useKV[ClesRelie]{Couleur}}%
\xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{%
\itemtomacro\ListeRelie[##1,1]\untest
\ifx\bla\untest\bla%
\else
\tikz[remember picture,overlay]{\draw[PfCRelieCouleurTrace] (RelieG-##1) -- (RelieD-\ListeRelie[##1,3]);}%
\fi
}%
}{%
}%
}%
\newcounter{NbRelie}%
\def\buildtabrelie{%
\setcounter{NbRelie}{0}%
\renewcommand{\arraystretch}{\useKV[ClesRelie]{Stretch}}%
\begin{tabular}{p{\useKV[ClesRelie]{LargeurG}}cp{\useKV[ClesRelie]{Ecart}}>{\tikz[remember
picture]{\node[name=RelieD-\theNbRelie,inner
sep=0pt]{};\fill[] (RelieD-\theNbRelie) circle[radius=1.5pt]}}cp{\useKV[ClesRelie]{LargeurD}}}%
\xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{\ListeRelie[##1,1]\itemtomacro\ListeRelie[##1,1]\untest%
\ifx\bla\untest\bla%
\uppercase{&}\stepcounter{NbRelie}%
\else
\uppercase{&}\stepcounter{NbRelie}\tikz[remember
picture,overlay]{\node[name=RelieG-\theNbRelie,inner
sep=0pt]{};\fill[]
(RelieG-\theNbRelie) circle[radius=1.5pt];}
\fi&&&\ListeRelie[##1,2]\\}%
\end{tabular}%
\setcounter{NbRelie}{0}%
}%
\def\buildtabrelieauto{%
\setcounter{NbRelie}{0}%
\xdef\PfCFooListeNbQ{1}%
\xintFor* ##1 in{\xintSeq{2}{\ListeRelielen}}\do{%
\xdef\PfCFooListeNbQ{\PfCFooListeNbQ,##1}%
}%
\setsepchar{,}\ignoreemptyitems%
\MelangeListe{\PfCFooListeNbQ}{\ListeRelielen}%
\setsepchar{,}\ignoreemptyitems%
\readlist*\PfCListeReponsesMelangees{\faa}%
\renewcommand{\arraystretch}{\useKV[ClesRelie]{Stretch}}%
\begin{tabular}{p{\useKV[ClesRelie]{LargeurG}}cp{\useKV[ClesRelie]{Ecart}}>{\tikz[remember
picture]{\node[name=RelieD-\theNbRelie,inner
sep=0pt]{};\fill[] (RelieD-\theNbRelie) circle[radius=1.5pt]}}cp{\useKV[ClesRelie]{LargeurD}}}%
\xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{
\ListeRelie[##1,1]\itemtomacro\ListeRelie[##1,1]\untest%
\ifx\bla\untest\bla%
\uppercase{&}\stepcounter{NbRelie}\tikz[remember
picture,overlay]{\node[name=RelieG-\theNbRelie,inner
sep=0pt]{};}
\else
\uppercase{&}\stepcounter{NbRelie}\tikz[remember
picture,overlay]{\node[name=RelieG-\theNbRelie,inner
sep=0pt]{};\fill[]
(RelieG-\theNbRelie) circle[radius=1.5pt];}
\fi&&&\itemtomacro\PfCListeReponsesMelangees[##1]\PfCNumReponses\ListeRelie[\PfCNumReponses,2]\\}%
\end{tabular}%
\setcounter{NbRelie}{0}%
}%
|