diff --git a/data/templates/chemistry/base/style_extra.tex b/data/templates/chemistry/base/style_extra.tex
index 5fb0088..6e0c00d 100644
--- a/data/templates/chemistry/base/style_extra.tex
+++ b/data/templates/chemistry/base/style_extra.tex
@@ -1,1513 +1,1573 @@
%%Package for tabular in openquestion
\usepackage{array}
%% Default values for open questions:
\AMCopenOpts{lines=10,lineheight=2ex,framerulecol=black,dots=false}
\newcommand{\letter}{A}
\makeatletter
\renewcommand{\theenumi}{\alph{enumi}}
\renewcommand{\labelenumi}{(\theenumi)}
\makeatother
%% OpenBox commands ============================
\newcommand{\OpenBox}[1]{
\noindent
\fbox{
\centering
\begin{minipage}{.97\textwidth}
~
\vspace{#1}
~
\end{minipage}
}
}
\newcommand{\FullPageOpenBox}{
\clearpage
\OpenBox{24.5cm}
% \vspace{-5mm}
}
\newcommand{\FullPageOpenBoxForever}{
\loop \ifnum \thepage < \totalPages \FullPageOpenBox \repeat
}
%% OpenGrid commands ============================
\newcommand{\OpenGrid}[1]{
\noindent
\begin{tikzpicture}
\draw[step=.5cm,lightgray]
(0cm,0cm) grid (16.5cm,#1);
\end{tikzpicture}
}
\newcommand{\FullPageOpenGrid}{
\clearpage
\OpenGrid{24.5cm}
%\vspace{-5mm}
}
\newcommand{\FullPageOpenGridForever}{
\loop \ifnum \thepage < \totalPages \FullPageOpenGrid \repeat
}
%% Extra sheets message
\newcommand{\ExtraSheet}{\mbox{}\hfil\smash{\fbox{\scriptsize\quad Si vous avez besoin de place suppl\'ementaire, demandez une feuille quadrill\'ee \`a un des surveillants\quad}}}%
%% 5 boxes correctors (0,1/4,1/2,3/4 and 1 * openquestionmax) ====================
\newcommand{\openquestionmax}{1}
\newcommand{\correctorPointsPerGroup}[1]{
\renewcommand{\openquestionmax}{#1}
}
\newcommand{\correctorChoices}{\correctchoice[0]{}\scoring{b=0}\correctchoice[Y]{}\scoring{b=\openquestionmax/4}\correctchoice[X]{}\scoring{b=\openquestionmax/2}\correctchoice[W]{}\scoring{b=\openquestionmax*3/4}\correctchoice[V]{\qquad}\scoring{b=\openquestionmax}}
\newcommand{\correctorOneFive}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\makebox[301pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorTwoFive}[3][0]{
\par
\noindent\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\correctorChoices\makebox[192.2pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorThreeFive}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\correctorChoices\correctorChoices\makebox[1pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
%% 3 boxes correctors (0,1/2,and 1 * openquestionmax) ====================
\newcommand{\correctorChoicesSimple}{\correctchoice[0]{}\scoring{b=0}\correctchoice[Y]{}\scoring{b=\openquestionmax/2}\correctchoice[X]{}{\qquad}\scoring{b=\openquestionmax}}
\newcommand{\correctorOneThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\makebox[340pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorTwoThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\makebox[260pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorThreeThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\makebox[180pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorFourThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\makebox[100pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
% Standard points correctors boxes ===================================
\newcommand{\correctorChoicesOne}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\correctchoice[Y]{\tiny{1}\qquad}\scoring{1}}
\newcommand{\correctorOne}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=1}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesOne}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwo}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\correctchoice[X]{\tiny{2}\qquad}\scoring{2}}
\newcommand{\correctorTwo}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwo}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThree}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\correctchoice[W]{\tiny{3}\qquad}\scoring{3}}
\newcommand{\correctorThree}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThree}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFour}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\correctchoice[V]{\tiny{4}\qquad}\scoring{4}}
\newcommand{\correctorFour}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFour}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFive}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\correctchoice[U]{\tiny{5}\qquad}\scoring{5}}
\newcommand{\correctorFive}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=5}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFive}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSix}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\wrongchoice[U]{\tiny{5}}\scoring{5}
\correctchoice[T]{\tiny{6}\qquad}\scoring{6}}
\newcommand{\correctorSix}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=6}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSix}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSeven}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\wrongchoice[U]{\tiny{5}}\scoring{5}
\wrongchoice[T]{\tiny{6}}\scoring{6}
\correctchoice[S]{\tiny{7}\qquad}\scoring{7}}
\newcommand{\correctorSeven}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=7}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSeven}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEight}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\correctchoice[R]{\tiny{8}\qquad}\scoring{8}}
\newcommand{\correctorEight}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=8}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
%{\makebox[100ex][l]{\correctorChoicesEight}}
{\makebox[0.9\linewidth][l]{\correctorChoicesEight}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNine}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\correctchoice[Q]{\tiny{9}\qquad}\scoring{9}}
\newcommand{\correctorNine}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=9}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesNine}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTen}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\correctchoice[P]{\tiny{10}\qquad}\scoring{10}}
\newcommand{\correctorTen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=10}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTen}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEleven}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\wrongchoice[P]{\tiny{10}}\scoring{10}\hspace{-0.5ex}
\correctchoice[O]{\tiny{11}}\scoring{11}}
\newcommand{\correctorEleven}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=11}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesEleven}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwelve}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\wrongchoice[P]{\tiny{10}}\scoring{10}\hspace{-0.5ex}
\wrongchoice[O]{\tiny{11}}\scoring{11}\hspace{-0.5ex}
\correctchoice[N]{\tiny{12}\qquad}\scoring{12}}
\newcommand{\correctorTwelve}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=12}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwelve}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirteen}{
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6}
\\
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\correctchoice[M]{\tiny{13}}\scoring{13}
\\
\end{tabular}}}
\newcommand{\correctorThirteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=13}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7}
\\
&
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\correctchoice[L]{\tiny{14}}\scoring{14}
\\
\end{tabular}}}
\newcommand{\correctorFourteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=14}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesFourteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFifteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7}
\\
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\correctchoice[K]{\tiny{15}}\scoring{15}
\\
\end{tabular}}}
\newcommand{\correctorFifteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=15}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesFifteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8}
\\
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\correctchoice[J]{\tiny{16}}\scoring{16}
\end{tabular}}}
\newcommand{\correctorSixteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=16}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesSixteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEightteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9}
\\
\wrongchoice[P]{\tiny{10}}\scoring{10}&
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[I]{\tiny{16}}\scoring{16} &
\wrongchoice[H]{\tiny{17}}\scoring{17} &
\correctchoice[G]{\tiny{18}}\scoring{18}
\\
\end{tabular}}}
\newcommand{\correctorEightteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=18}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesEightteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNineteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9}
\\
\wrongchoice[P]{\tiny{10}}\scoring{10}&
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15}&
\wrongchoice[I]{\tiny{16}}\scoring{16} &
\wrongchoice[H]{\tiny{17}}\scoring{17} &
\wrongchoice[G]{\tiny{18}}\scoring{18} &
\correctchoice[F]{\tiny{19}}\scoring{19}
\\
\end{tabular}}}
\newcommand{\correctorNineteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=19}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesNineteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwenty}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\correctchoice[F]{\tiny{20}}\scoring{20}
\\
\end{tabular}}}
\newcommand{\correctorTwenty}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=20}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwenty\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyOne}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\correctchoice[F]{\tiny{21}}\scoring{21}
\\
\end{tabular}}}
\newcommand{\correctorTwentyOne}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=21}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyOne\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyTwo}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11}
\\ &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[G]{\tiny{18}}\scoring{18} &
\wrongchoice[F]{\tiny{19}}\scoring{19} &
\wrongchoice[E]{\tiny{20}}\scoring{20} &
\wrongchoice[D]{\tiny{21}}\scoring{21} &
\correctchoice[C]{\tiny{22}}\scoring{22}
\\
\end{tabular}}}
\newcommand{\correctorTwentyTwo}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=22}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyTwo\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyFour}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12}
\\
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\correctchoice[B]{\tiny{24}}\scoring{24}
\\
\end{tabular}}}
\newcommand{\correctorTwentyFour}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=24}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyFour\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyFive}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12}
\\
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\wrongchoice[B]{\tiny{24}}\scoring{24} &
\correctchoice[A]{\tiny{25}}\scoring{25}
\\
\end{tabular}}}
\newcommand{\correctorTwentyFive}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=25}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyFive\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirty}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\ &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20}
\\ &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\wrongchoice[B]{\tiny{24}}\scoring{24} &
\wrongchoice[A]{\tiny{25}}\scoring{25} &
\wrongchoice[AY]{\tiny{26}}\scoring{26} &
\wrongchoice[AX]{\tiny{27}}\scoring{27} &
\wrongchoice[AW]{\tiny{28}}\scoring{28} &
\wrongchoice[AV]{\tiny{29}}\scoring{29} &
\correctchoice[AU]{\tiny{30}}\scoring{30}
\\
\end{tabular}}}
\newcommand{\correctorThirty}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=30}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirty\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
+\newcommand{\correctorChoicesThirtySix}{
+ %\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
+ \setlength{\tabcolsep}{0.08em} % for the horizontal padding
+ {\renewcommand{\arraystretch}{1.2}% for the vertical padding
+ \hspace{.2cm}\begin{tabular}{lllllllllll}
+ \wrongchoice[0]{\tiny{0}}\scoring{0} &
+ \wrongchoice[Y]{\tiny{1}}\scoring{1} &
+ \wrongchoice[X]{\tiny{2}}\scoring{2} &
+ \wrongchoice[W]{\tiny{3}}\scoring{3} &
+ \wrongchoice[V]{\tiny{4}}\scoring{4} &
+ \wrongchoice[U]{\tiny{5}}\scoring{5} &
+ \wrongchoice[T]{\tiny{6}}\scoring{6} &
+ \wrongchoice[S]{\tiny{7}}\scoring{7} &
+ \wrongchoice[R]{\tiny{8}}\scoring{8} &
+ \wrongchoice[Q]{\tiny{9}}\scoring{9} &
+ \wrongchoice[P]{\tiny{10}}\scoring{10}
+ \\
+ \wrongchoice[O]{\tiny{11}}\scoring{11} &
+ \wrongchoice[N]{\tiny{12}}\scoring{12} &
+ \wrongchoice[M]{\tiny{13}}\scoring{13} &
+ \wrongchoice[L]{\tiny{14}}\scoring{14} &
+ \wrongchoice[K]{\tiny{15}}\scoring{15} &
+ \wrongchoice[J]{\tiny{16}}\scoring{16} &
+ \wrongchoice[I]{\tiny{17}}\scoring{17} &
+ \wrongchoice[H]{\tiny{18}}\scoring{18} &
+ \wrongchoice[G]{\tiny{19}}\scoring{19} &
+ \wrongchoice[F]{\tiny{20}}\scoring{20}
+ \\
+ \wrongchoice[E]{\tiny{21}}\scoring{21} &
+ \wrongchoice[D]{\tiny{22}}\scoring{22} &
+ \wrongchoice[C]{\tiny{23}}\scoring{23} &
+ \wrongchoice[B]{\tiny{24}}\scoring{24} &
+ \wrongchoice[A]{\tiny{25}}\scoring{25} &
+ \wrongchoice[AA]{\tiny{26}}\scoring{26} &
+ \wrongchoice[AB]{\tiny{27}}\scoring{27} &
+ \wrongchoice[AC]{\tiny{28}}\scoring{28} &
+ \wrongchoice[AD]{\tiny{29}}\scoring{29} &
+ \wrongchoice[AE]{\tiny{30}}\scoring{30}
+ \\
+ \wrongchoice[AF]{\tiny{31}}\scoring{31} &
+ \wrongchoice[AG]{\tiny{32}}\scoring{32} &
+ \wrongchoice[AH]{\tiny{33}}\scoring{33} &
+ \wrongchoice[AI]{\tiny{34}}\scoring{34} &
+ \wrongchoice[AL]{\tiny{35}}\scoring{35} &
+ \correctchoice[AM]{\tiny{36}}\scoring{36} &
+
+\end{tabular}}}
+\newcommand{\correctorThirtySix}[3][0]{%
+ \par
+ \noindent
+ \begin{question}{#2}\bareme{MAX=36}
+ #3~\\
+ \noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
+ \parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirtySix\makebox[0pt][c]{}}
+ \hspace*{5ex}}
+ \end{question}
+ \vspace{-55pt}~
+ \par
+}
+
%% half points correctors boxes ===================================
\newcommand{\correctorChoicesTwoHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\correctchoice[V]{\tiny{2}}\scoring{2}
\\
\end{tabular}}}
\newcommand{\correctorTwoHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwoHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThreeHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\correctchoice[T]{\tiny{3}}\scoring{3}
\\
\end{tabular}}}
\newcommand{\correctorThreeHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThreeHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\correctchoice[R]{\tiny{4}}\scoring{4}
\\
\end{tabular}}}
\newcommand{\correctorFourHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFourHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFiveHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\correctchoice[P]{\tiny{5}}\scoring{5}
\\
\end{tabular}}}
\newcommand{\correctorFiveHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=5}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFiveHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\correctchoice[N]{\tiny{6}}\scoring{6}
\\
\end{tabular}}}
\newcommand{\correctorSixHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=6}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSixHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSevenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5}
\\
&
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\correctchoice[L]{\tiny{7}}\scoring{7}
\\
\end{tabular}}}
\newcommand{\correctorSevenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=7}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSevenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEightHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4}
\\
&
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\correctchoice[J]{\tiny{8}}\scoring{8}
\\
\end{tabular}}}
\newcommand{\correctorEightHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=8}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesEightHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNineHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5}
\\
&
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\correctchoice[H]{\tiny{9}}\scoring{9}
\\
\end{tabular}}}
\newcommand{\correctorNineHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=9}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesNineHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5}
\\
&
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\correctchoice[F]{\tiny{10}}\scoring{10}
\\
\end{tabular}}}
\newcommand{\correctorTenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=10}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesElevenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5}
\\
&
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\correctchoice[D]{\tiny{11}}\scoring{11}
\\
\end{tabular}}}
\newcommand{\correctorElevenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=11}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesElevenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwelveHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6}
\\
&
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\correctchoice[B]{\tiny{12}}\scoring{12}
\\
\end{tabular}}}
\newcommand{\correctorTwelveHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=12}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwelveHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5}
\\
&
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\correctchoice[AY]{\tiny{13}}\scoring{13}
\\
\end{tabular}}}
\newcommand{\correctorThirteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=13}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThirteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7}
\\
&
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\correctchoice[AW]{\tiny{14}}\scoring{14}
\\
\end{tabular}}}
\newcommand{\correctorFourteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=14}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFourteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFifteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5}
\\
&
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\wrongchoice[AW]{\tiny{14}}\scoring{14} &
\wrongchoice[AV]{\tiny{.5}}\scoring{14.5} &
\correctchoice[AU]{\tiny{15}}\scoring{15}
\\
\end{tabular}}}
\newcommand{\correctorFifteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=15}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFifteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5}
\\
&
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5}
\\
&
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\wrongchoice[AW]{\tiny{14}}\scoring{14} &
\wrongchoice[AV]{\tiny{.5}}\scoring{14.5} &
\wrongchoice[AU]{\tiny{15}}\scoring{15} &
\wrongchoice[AV]{\tiny{.5}}\scoring{15.5} &
\correctchoice[AU]{\tiny{16}}\scoring{16}
\\
\end{tabular}}}
\newcommand{\correctorSixteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=16}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSixteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorStop}{
\bigskip
\noindent
}
diff --git a/data/templates/chemistry/config/options.xml b/data/templates/chemistry/config/options.xml
index 55e2a56..e610679 100644
--- a/data/templates/chemistry/config/options.xml
+++ b/data/templates/chemistry/config/options.xml
@@ -1,61 +1,61 @@
<_modifie>
<_modifie_ok>1
marges
<preassoc>
0
cr
data
EXAM-catalog.pdf
EXAM-sujet.pdf
EXAM-calage.xy
EXAM-corrige.pdf
EMAIL
Linear Algebra: test result
Please find enclosed your annotated completed answer sheet.
Best Regards.
UTF-8
UTF-8
- ID,SCIPER,NAME,SECTION,EMAIL,ROOM
+ ID,SCIPER,NAME,SECTION,EMAIL
;
2
student.copy,student.key,student.name
1
a4
n
latex
EXAM-filtered.tex
CSV
SCIPER
%PROJET/students.csv
1
pdflatex
0
normal
0.5
6
1
1
notes-common.xml
0
0
ALL
STUDENTS
0.007
%PROJET/exam.tex
%(ID)
Score: %S/%M
"%s/%m"
diff --git a/data/templates/linear-algebra/base/style_extra.tex b/data/templates/linear-algebra/base/style_extra.tex
index 5fb0088..6e0c00d 100644
--- a/data/templates/linear-algebra/base/style_extra.tex
+++ b/data/templates/linear-algebra/base/style_extra.tex
@@ -1,1513 +1,1573 @@
%%Package for tabular in openquestion
\usepackage{array}
%% Default values for open questions:
\AMCopenOpts{lines=10,lineheight=2ex,framerulecol=black,dots=false}
\newcommand{\letter}{A}
\makeatletter
\renewcommand{\theenumi}{\alph{enumi}}
\renewcommand{\labelenumi}{(\theenumi)}
\makeatother
%% OpenBox commands ============================
\newcommand{\OpenBox}[1]{
\noindent
\fbox{
\centering
\begin{minipage}{.97\textwidth}
~
\vspace{#1}
~
\end{minipage}
}
}
\newcommand{\FullPageOpenBox}{
\clearpage
\OpenBox{24.5cm}
% \vspace{-5mm}
}
\newcommand{\FullPageOpenBoxForever}{
\loop \ifnum \thepage < \totalPages \FullPageOpenBox \repeat
}
%% OpenGrid commands ============================
\newcommand{\OpenGrid}[1]{
\noindent
\begin{tikzpicture}
\draw[step=.5cm,lightgray]
(0cm,0cm) grid (16.5cm,#1);
\end{tikzpicture}
}
\newcommand{\FullPageOpenGrid}{
\clearpage
\OpenGrid{24.5cm}
%\vspace{-5mm}
}
\newcommand{\FullPageOpenGridForever}{
\loop \ifnum \thepage < \totalPages \FullPageOpenGrid \repeat
}
%% Extra sheets message
\newcommand{\ExtraSheet}{\mbox{}\hfil\smash{\fbox{\scriptsize\quad Si vous avez besoin de place suppl\'ementaire, demandez une feuille quadrill\'ee \`a un des surveillants\quad}}}%
%% 5 boxes correctors (0,1/4,1/2,3/4 and 1 * openquestionmax) ====================
\newcommand{\openquestionmax}{1}
\newcommand{\correctorPointsPerGroup}[1]{
\renewcommand{\openquestionmax}{#1}
}
\newcommand{\correctorChoices}{\correctchoice[0]{}\scoring{b=0}\correctchoice[Y]{}\scoring{b=\openquestionmax/4}\correctchoice[X]{}\scoring{b=\openquestionmax/2}\correctchoice[W]{}\scoring{b=\openquestionmax*3/4}\correctchoice[V]{\qquad}\scoring{b=\openquestionmax}}
\newcommand{\correctorOneFive}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\makebox[301pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorTwoFive}[3][0]{
\par
\noindent\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\correctorChoices\makebox[192.2pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorThreeFive}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\correctorChoices\correctorChoices\makebox[1pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
%% 3 boxes correctors (0,1/2,and 1 * openquestionmax) ====================
\newcommand{\correctorChoicesSimple}{\correctchoice[0]{}\scoring{b=0}\correctchoice[Y]{}\scoring{b=\openquestionmax/2}\correctchoice[X]{}{\qquad}\scoring{b=\openquestionmax}}
\newcommand{\correctorOneThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\makebox[340pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorTwoThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\makebox[260pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorThreeThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\makebox[180pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorFourThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\makebox[100pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
% Standard points correctors boxes ===================================
\newcommand{\correctorChoicesOne}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\correctchoice[Y]{\tiny{1}\qquad}\scoring{1}}
\newcommand{\correctorOne}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=1}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesOne}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwo}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\correctchoice[X]{\tiny{2}\qquad}\scoring{2}}
\newcommand{\correctorTwo}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwo}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThree}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\correctchoice[W]{\tiny{3}\qquad}\scoring{3}}
\newcommand{\correctorThree}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThree}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFour}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\correctchoice[V]{\tiny{4}\qquad}\scoring{4}}
\newcommand{\correctorFour}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFour}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFive}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\correctchoice[U]{\tiny{5}\qquad}\scoring{5}}
\newcommand{\correctorFive}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=5}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFive}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSix}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\wrongchoice[U]{\tiny{5}}\scoring{5}
\correctchoice[T]{\tiny{6}\qquad}\scoring{6}}
\newcommand{\correctorSix}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=6}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSix}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSeven}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\wrongchoice[U]{\tiny{5}}\scoring{5}
\wrongchoice[T]{\tiny{6}}\scoring{6}
\correctchoice[S]{\tiny{7}\qquad}\scoring{7}}
\newcommand{\correctorSeven}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=7}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSeven}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEight}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\correctchoice[R]{\tiny{8}\qquad}\scoring{8}}
\newcommand{\correctorEight}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=8}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
%{\makebox[100ex][l]{\correctorChoicesEight}}
{\makebox[0.9\linewidth][l]{\correctorChoicesEight}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNine}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\correctchoice[Q]{\tiny{9}\qquad}\scoring{9}}
\newcommand{\correctorNine}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=9}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesNine}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTen}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\correctchoice[P]{\tiny{10}\qquad}\scoring{10}}
\newcommand{\correctorTen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=10}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTen}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEleven}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\wrongchoice[P]{\tiny{10}}\scoring{10}\hspace{-0.5ex}
\correctchoice[O]{\tiny{11}}\scoring{11}}
\newcommand{\correctorEleven}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=11}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesEleven}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwelve}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\wrongchoice[P]{\tiny{10}}\scoring{10}\hspace{-0.5ex}
\wrongchoice[O]{\tiny{11}}\scoring{11}\hspace{-0.5ex}
\correctchoice[N]{\tiny{12}\qquad}\scoring{12}}
\newcommand{\correctorTwelve}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=12}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwelve}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirteen}{
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6}
\\
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\correctchoice[M]{\tiny{13}}\scoring{13}
\\
\end{tabular}}}
\newcommand{\correctorThirteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=13}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7}
\\
&
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\correctchoice[L]{\tiny{14}}\scoring{14}
\\
\end{tabular}}}
\newcommand{\correctorFourteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=14}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesFourteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFifteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7}
\\
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\correctchoice[K]{\tiny{15}}\scoring{15}
\\
\end{tabular}}}
\newcommand{\correctorFifteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=15}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesFifteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8}
\\
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\correctchoice[J]{\tiny{16}}\scoring{16}
\end{tabular}}}
\newcommand{\correctorSixteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=16}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesSixteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEightteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9}
\\
\wrongchoice[P]{\tiny{10}}\scoring{10}&
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[I]{\tiny{16}}\scoring{16} &
\wrongchoice[H]{\tiny{17}}\scoring{17} &
\correctchoice[G]{\tiny{18}}\scoring{18}
\\
\end{tabular}}}
\newcommand{\correctorEightteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=18}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesEightteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNineteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9}
\\
\wrongchoice[P]{\tiny{10}}\scoring{10}&
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15}&
\wrongchoice[I]{\tiny{16}}\scoring{16} &
\wrongchoice[H]{\tiny{17}}\scoring{17} &
\wrongchoice[G]{\tiny{18}}\scoring{18} &
\correctchoice[F]{\tiny{19}}\scoring{19}
\\
\end{tabular}}}
\newcommand{\correctorNineteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=19}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesNineteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwenty}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\correctchoice[F]{\tiny{20}}\scoring{20}
\\
\end{tabular}}}
\newcommand{\correctorTwenty}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=20}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwenty\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyOne}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\correctchoice[F]{\tiny{21}}\scoring{21}
\\
\end{tabular}}}
\newcommand{\correctorTwentyOne}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=21}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyOne\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyTwo}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11}
\\ &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[G]{\tiny{18}}\scoring{18} &
\wrongchoice[F]{\tiny{19}}\scoring{19} &
\wrongchoice[E]{\tiny{20}}\scoring{20} &
\wrongchoice[D]{\tiny{21}}\scoring{21} &
\correctchoice[C]{\tiny{22}}\scoring{22}
\\
\end{tabular}}}
\newcommand{\correctorTwentyTwo}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=22}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyTwo\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyFour}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12}
\\
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\correctchoice[B]{\tiny{24}}\scoring{24}
\\
\end{tabular}}}
\newcommand{\correctorTwentyFour}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=24}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyFour\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyFive}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12}
\\
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\wrongchoice[B]{\tiny{24}}\scoring{24} &
\correctchoice[A]{\tiny{25}}\scoring{25}
\\
\end{tabular}}}
\newcommand{\correctorTwentyFive}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=25}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyFive\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirty}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\ &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20}
\\ &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\wrongchoice[B]{\tiny{24}}\scoring{24} &
\wrongchoice[A]{\tiny{25}}\scoring{25} &
\wrongchoice[AY]{\tiny{26}}\scoring{26} &
\wrongchoice[AX]{\tiny{27}}\scoring{27} &
\wrongchoice[AW]{\tiny{28}}\scoring{28} &
\wrongchoice[AV]{\tiny{29}}\scoring{29} &
\correctchoice[AU]{\tiny{30}}\scoring{30}
\\
\end{tabular}}}
\newcommand{\correctorThirty}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=30}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirty\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
+\newcommand{\correctorChoicesThirtySix}{
+ %\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
+ \setlength{\tabcolsep}{0.08em} % for the horizontal padding
+ {\renewcommand{\arraystretch}{1.2}% for the vertical padding
+ \hspace{.2cm}\begin{tabular}{lllllllllll}
+ \wrongchoice[0]{\tiny{0}}\scoring{0} &
+ \wrongchoice[Y]{\tiny{1}}\scoring{1} &
+ \wrongchoice[X]{\tiny{2}}\scoring{2} &
+ \wrongchoice[W]{\tiny{3}}\scoring{3} &
+ \wrongchoice[V]{\tiny{4}}\scoring{4} &
+ \wrongchoice[U]{\tiny{5}}\scoring{5} &
+ \wrongchoice[T]{\tiny{6}}\scoring{6} &
+ \wrongchoice[S]{\tiny{7}}\scoring{7} &
+ \wrongchoice[R]{\tiny{8}}\scoring{8} &
+ \wrongchoice[Q]{\tiny{9}}\scoring{9} &
+ \wrongchoice[P]{\tiny{10}}\scoring{10}
+ \\
+ \wrongchoice[O]{\tiny{11}}\scoring{11} &
+ \wrongchoice[N]{\tiny{12}}\scoring{12} &
+ \wrongchoice[M]{\tiny{13}}\scoring{13} &
+ \wrongchoice[L]{\tiny{14}}\scoring{14} &
+ \wrongchoice[K]{\tiny{15}}\scoring{15} &
+ \wrongchoice[J]{\tiny{16}}\scoring{16} &
+ \wrongchoice[I]{\tiny{17}}\scoring{17} &
+ \wrongchoice[H]{\tiny{18}}\scoring{18} &
+ \wrongchoice[G]{\tiny{19}}\scoring{19} &
+ \wrongchoice[F]{\tiny{20}}\scoring{20}
+ \\
+ \wrongchoice[E]{\tiny{21}}\scoring{21} &
+ \wrongchoice[D]{\tiny{22}}\scoring{22} &
+ \wrongchoice[C]{\tiny{23}}\scoring{23} &
+ \wrongchoice[B]{\tiny{24}}\scoring{24} &
+ \wrongchoice[A]{\tiny{25}}\scoring{25} &
+ \wrongchoice[AA]{\tiny{26}}\scoring{26} &
+ \wrongchoice[AB]{\tiny{27}}\scoring{27} &
+ \wrongchoice[AC]{\tiny{28}}\scoring{28} &
+ \wrongchoice[AD]{\tiny{29}}\scoring{29} &
+ \wrongchoice[AE]{\tiny{30}}\scoring{30}
+ \\
+ \wrongchoice[AF]{\tiny{31}}\scoring{31} &
+ \wrongchoice[AG]{\tiny{32}}\scoring{32} &
+ \wrongchoice[AH]{\tiny{33}}\scoring{33} &
+ \wrongchoice[AI]{\tiny{34}}\scoring{34} &
+ \wrongchoice[AL]{\tiny{35}}\scoring{35} &
+ \correctchoice[AM]{\tiny{36}}\scoring{36} &
+
+\end{tabular}}}
+\newcommand{\correctorThirtySix}[3][0]{%
+ \par
+ \noindent
+ \begin{question}{#2}\bareme{MAX=36}
+ #3~\\
+ \noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
+ \parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirtySix\makebox[0pt][c]{}}
+ \hspace*{5ex}}
+ \end{question}
+ \vspace{-55pt}~
+ \par
+}
+
%% half points correctors boxes ===================================
\newcommand{\correctorChoicesTwoHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\correctchoice[V]{\tiny{2}}\scoring{2}
\\
\end{tabular}}}
\newcommand{\correctorTwoHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwoHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThreeHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\correctchoice[T]{\tiny{3}}\scoring{3}
\\
\end{tabular}}}
\newcommand{\correctorThreeHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThreeHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\correctchoice[R]{\tiny{4}}\scoring{4}
\\
\end{tabular}}}
\newcommand{\correctorFourHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFourHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFiveHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\correctchoice[P]{\tiny{5}}\scoring{5}
\\
\end{tabular}}}
\newcommand{\correctorFiveHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=5}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFiveHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\correctchoice[N]{\tiny{6}}\scoring{6}
\\
\end{tabular}}}
\newcommand{\correctorSixHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=6}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSixHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSevenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5}
\\
&
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\correctchoice[L]{\tiny{7}}\scoring{7}
\\
\end{tabular}}}
\newcommand{\correctorSevenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=7}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSevenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEightHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4}
\\
&
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\correctchoice[J]{\tiny{8}}\scoring{8}
\\
\end{tabular}}}
\newcommand{\correctorEightHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=8}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesEightHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNineHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5}
\\
&
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\correctchoice[H]{\tiny{9}}\scoring{9}
\\
\end{tabular}}}
\newcommand{\correctorNineHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=9}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesNineHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5}
\\
&
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\correctchoice[F]{\tiny{10}}\scoring{10}
\\
\end{tabular}}}
\newcommand{\correctorTenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=10}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesElevenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5}
\\
&
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\correctchoice[D]{\tiny{11}}\scoring{11}
\\
\end{tabular}}}
\newcommand{\correctorElevenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=11}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesElevenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwelveHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6}
\\
&
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\correctchoice[B]{\tiny{12}}\scoring{12}
\\
\end{tabular}}}
\newcommand{\correctorTwelveHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=12}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwelveHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5}
\\
&
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\correctchoice[AY]{\tiny{13}}\scoring{13}
\\
\end{tabular}}}
\newcommand{\correctorThirteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=13}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThirteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7}
\\
&
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\correctchoice[AW]{\tiny{14}}\scoring{14}
\\
\end{tabular}}}
\newcommand{\correctorFourteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=14}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFourteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFifteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5}
\\
&
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\wrongchoice[AW]{\tiny{14}}\scoring{14} &
\wrongchoice[AV]{\tiny{.5}}\scoring{14.5} &
\correctchoice[AU]{\tiny{15}}\scoring{15}
\\
\end{tabular}}}
\newcommand{\correctorFifteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=15}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFifteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5}
\\
&
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5}
\\
&
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\wrongchoice[AW]{\tiny{14}}\scoring{14} &
\wrongchoice[AV]{\tiny{.5}}\scoring{14.5} &
\wrongchoice[AU]{\tiny{15}}\scoring{15} &
\wrongchoice[AV]{\tiny{.5}}\scoring{15.5} &
\correctchoice[AU]{\tiny{16}}\scoring{16}
\\
\end{tabular}}}
\newcommand{\correctorSixteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=16}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSixteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorStop}{
\bigskip
\noindent
}
diff --git a/data/templates/linear-algebra/config/options.xml b/data/templates/linear-algebra/config/options.xml
index 55e2a56..e610679 100644
--- a/data/templates/linear-algebra/config/options.xml
+++ b/data/templates/linear-algebra/config/options.xml
@@ -1,61 +1,61 @@
<_modifie>
<_modifie_ok>1
marges
<preassoc>
0
cr
data
EXAM-catalog.pdf
EXAM-sujet.pdf
EXAM-calage.xy
EXAM-corrige.pdf
EMAIL
Linear Algebra: test result
Please find enclosed your annotated completed answer sheet.
Best Regards.
UTF-8
UTF-8
- ID,SCIPER,NAME,SECTION,EMAIL,ROOM
+ ID,SCIPER,NAME,SECTION,EMAIL
;
2
student.copy,student.key,student.name
1
a4
n
latex
EXAM-filtered.tex
CSV
SCIPER
%PROJET/students.csv
1
pdflatex
0
normal
0.5
6
1
1
notes-common.xml
0
0
ALL
STUDENTS
0.007
%PROJET/exam.tex
%(ID)
Score: %S/%M
"%s/%m"
diff --git a/data/templates/man/config/options.xml b/data/templates/man/config/options.xml
index 55e2a56..e610679 100644
--- a/data/templates/man/config/options.xml
+++ b/data/templates/man/config/options.xml
@@ -1,61 +1,61 @@
<_modifie>
<_modifie_ok>1
marges
<preassoc>
0
cr
data
EXAM-catalog.pdf
EXAM-sujet.pdf
EXAM-calage.xy
EXAM-corrige.pdf
EMAIL
Linear Algebra: test result
Please find enclosed your annotated completed answer sheet.
Best Regards.
UTF-8
UTF-8
- ID,SCIPER,NAME,SECTION,EMAIL,ROOM
+ ID,SCIPER,NAME,SECTION,EMAIL
;
2
student.copy,student.key,student.name
1
a4
n
latex
EXAM-filtered.tex
CSV
SCIPER
%PROJET/students.csv
1
pdflatex
0
normal
0.5
6
1
1
notes-common.xml
0
0
ALL
STUDENTS
0.007
%PROJET/exam.tex
%(ID)
Score: %S/%M
"%s/%m"
diff --git a/data/templates/maths/base/style_extra.tex b/data/templates/maths/base/style_extra.tex
index 5fb0088..6e0c00d 100644
--- a/data/templates/maths/base/style_extra.tex
+++ b/data/templates/maths/base/style_extra.tex
@@ -1,1513 +1,1573 @@
%%Package for tabular in openquestion
\usepackage{array}
%% Default values for open questions:
\AMCopenOpts{lines=10,lineheight=2ex,framerulecol=black,dots=false}
\newcommand{\letter}{A}
\makeatletter
\renewcommand{\theenumi}{\alph{enumi}}
\renewcommand{\labelenumi}{(\theenumi)}
\makeatother
%% OpenBox commands ============================
\newcommand{\OpenBox}[1]{
\noindent
\fbox{
\centering
\begin{minipage}{.97\textwidth}
~
\vspace{#1}
~
\end{minipage}
}
}
\newcommand{\FullPageOpenBox}{
\clearpage
\OpenBox{24.5cm}
% \vspace{-5mm}
}
\newcommand{\FullPageOpenBoxForever}{
\loop \ifnum \thepage < \totalPages \FullPageOpenBox \repeat
}
%% OpenGrid commands ============================
\newcommand{\OpenGrid}[1]{
\noindent
\begin{tikzpicture}
\draw[step=.5cm,lightgray]
(0cm,0cm) grid (16.5cm,#1);
\end{tikzpicture}
}
\newcommand{\FullPageOpenGrid}{
\clearpage
\OpenGrid{24.5cm}
%\vspace{-5mm}
}
\newcommand{\FullPageOpenGridForever}{
\loop \ifnum \thepage < \totalPages \FullPageOpenGrid \repeat
}
%% Extra sheets message
\newcommand{\ExtraSheet}{\mbox{}\hfil\smash{\fbox{\scriptsize\quad Si vous avez besoin de place suppl\'ementaire, demandez une feuille quadrill\'ee \`a un des surveillants\quad}}}%
%% 5 boxes correctors (0,1/4,1/2,3/4 and 1 * openquestionmax) ====================
\newcommand{\openquestionmax}{1}
\newcommand{\correctorPointsPerGroup}[1]{
\renewcommand{\openquestionmax}{#1}
}
\newcommand{\correctorChoices}{\correctchoice[0]{}\scoring{b=0}\correctchoice[Y]{}\scoring{b=\openquestionmax/4}\correctchoice[X]{}\scoring{b=\openquestionmax/2}\correctchoice[W]{}\scoring{b=\openquestionmax*3/4}\correctchoice[V]{\qquad}\scoring{b=\openquestionmax}}
\newcommand{\correctorOneFive}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\makebox[301pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorTwoFive}[3][0]{
\par
\noindent\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\correctorChoices\makebox[192.2pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorThreeFive}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoices\correctorChoices\correctorChoices\makebox[1pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
%% 3 boxes correctors (0,1/2,and 1 * openquestionmax) ====================
\newcommand{\correctorChoicesSimple}{\correctchoice[0]{}\scoring{b=0}\correctchoice[Y]{}\scoring{b=\openquestionmax/2}\correctchoice[X]{}{\qquad}\scoring{b=\openquestionmax}}
\newcommand{\correctorOneThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\makebox[340pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorTwoThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\makebox[260pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorThreeThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\makebox[180pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
\newcommand{\correctorFourThree}[3][0]{
\par
\noindent
\begin{questionmultx}{#2}\bareme{MAX=\openquestionmax*4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\correctorChoicesSimple\makebox[100pt][c]{}}
\end{questionmultx}
\vspace{-55pt}~
\par
}
% Standard points correctors boxes ===================================
\newcommand{\correctorChoicesOne}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\correctchoice[Y]{\tiny{1}\qquad}\scoring{1}}
\newcommand{\correctorOne}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=1}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesOne}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwo}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\correctchoice[X]{\tiny{2}\qquad}\scoring{2}}
\newcommand{\correctorTwo}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwo}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThree}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\correctchoice[W]{\tiny{3}\qquad}\scoring{3}}
\newcommand{\correctorThree}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThree}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFour}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\correctchoice[V]{\tiny{4}\qquad}\scoring{4}}
\newcommand{\correctorFour}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFour}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFive}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\correctchoice[U]{\tiny{5}\qquad}\scoring{5}}
\newcommand{\correctorFive}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=5}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFive}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSix}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\wrongchoice[U]{\tiny{5}}\scoring{5}
\correctchoice[T]{\tiny{6}\qquad}\scoring{6}}
\newcommand{\correctorSix}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=6}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSix}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSeven}{
\wrongchoice[0]{\tiny{0}}\scoring{0}
\wrongchoice[Y]{\tiny{1}}\scoring{1}
\wrongchoice[X]{\tiny{2}}\scoring{2}
\wrongchoice[W]{\tiny{3}}\scoring{3}
\wrongchoice[V]{\tiny{4}}\scoring{4}
\wrongchoice[U]{\tiny{5}}\scoring{5}
\wrongchoice[T]{\tiny{6}}\scoring{6}
\correctchoice[S]{\tiny{7}\qquad}\scoring{7}}
\newcommand{\correctorSeven}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=7}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSeven}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEight}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\correctchoice[R]{\tiny{8}\qquad}\scoring{8}}
\newcommand{\correctorEight}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=8}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
%{\makebox[100ex][l]{\correctorChoicesEight}}
{\makebox[0.9\linewidth][l]{\correctorChoicesEight}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNine}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\correctchoice[Q]{\tiny{9}\qquad}\scoring{9}}
\newcommand{\correctorNine}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=9}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesNine}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTen}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\correctchoice[P]{\tiny{10}\qquad}\scoring{10}}
\newcommand{\correctorTen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=10}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTen}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEleven}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\wrongchoice[P]{\tiny{10}}\scoring{10}\hspace{-0.5ex}
\correctchoice[O]{\tiny{11}}\scoring{11}}
\newcommand{\correctorEleven}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=11}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesEleven}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwelve}{
\wrongchoice[0]{\tiny{0}}\scoring{0}\hspace{-0.5ex}
\wrongchoice[Y]{\tiny{1}}\scoring{1}\hspace{-0.5ex}
\wrongchoice[X]{\tiny{2}}\scoring{2}\hspace{-0.5ex}
\wrongchoice[W]{\tiny{3}}\scoring{3}\hspace{-0.5ex}
\wrongchoice[V]{\tiny{4}}\scoring{4}\hspace{-0.5ex}
\wrongchoice[U]{\tiny{5}}\scoring{5}\hspace{-0.5ex}
\wrongchoice[T]{\tiny{6}}\scoring{6}\hspace{-0.5ex}
\wrongchoice[S]{\tiny{7}}\scoring{7}\hspace{-0.5ex}
\wrongchoice[R]{\tiny{8}}\scoring{8}\hspace{-0.5ex}
\wrongchoice[Q]{\tiny{9}}\scoring{9}\hspace{-0.5ex}
\wrongchoice[P]{\tiny{10}}\scoring{10}\hspace{-0.5ex}
\wrongchoice[O]{\tiny{11}}\scoring{11}\hspace{-0.5ex}
\correctchoice[N]{\tiny{12}\qquad}\scoring{12}}
\newcommand{\correctorTwelve}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=12}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwelve}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirteen}{
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6}
\\
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\correctchoice[M]{\tiny{13}}\scoring{13}
\\
\end{tabular}}}
\newcommand{\correctorThirteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=13}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7}
\\
&
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\correctchoice[L]{\tiny{14}}\scoring{14}
\\
\end{tabular}}}
\newcommand{\correctorFourteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=14}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesFourteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFifteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7}
\\
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\correctchoice[K]{\tiny{15}}\scoring{15}
\\
\end{tabular}}}
\newcommand{\correctorFifteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=15}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesFifteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8}
\\
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\correctchoice[J]{\tiny{16}}\scoring{16}
\end{tabular}}}
\newcommand{\correctorSixteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=16}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesSixteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEightteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9}
\\
\wrongchoice[P]{\tiny{10}}\scoring{10}&
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[I]{\tiny{16}}\scoring{16} &
\wrongchoice[H]{\tiny{17}}\scoring{17} &
\correctchoice[G]{\tiny{18}}\scoring{18}
\\
\end{tabular}}}
\newcommand{\correctorEightteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=18}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesEightteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNineteen}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9}
\\
\wrongchoice[P]{\tiny{10}}\scoring{10}&
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15}&
\wrongchoice[I]{\tiny{16}}\scoring{16} &
\wrongchoice[H]{\tiny{17}}\scoring{17} &
\wrongchoice[G]{\tiny{18}}\scoring{18} &
\correctchoice[F]{\tiny{19}}\scoring{19}
\\
\end{tabular}}}
\newcommand{\correctorNineteen}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=19}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesNineteen\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwenty}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\correctchoice[F]{\tiny{20}}\scoring{20}
\\
\end{tabular}}}
\newcommand{\correctorTwenty}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=20}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwenty\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyOne}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\correctchoice[F]{\tiny{21}}\scoring{21}
\\
\end{tabular}}}
\newcommand{\correctorTwentyOne}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=21}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyOne\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyTwo}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{llllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11}
\\ &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[G]{\tiny{18}}\scoring{18} &
\wrongchoice[F]{\tiny{19}}\scoring{19} &
\wrongchoice[E]{\tiny{20}}\scoring{20} &
\wrongchoice[D]{\tiny{21}}\scoring{21} &
\correctchoice[C]{\tiny{22}}\scoring{22}
\\
\end{tabular}}}
\newcommand{\correctorTwentyTwo}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=22}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyTwo\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyFour}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12}
\\
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\correctchoice[B]{\tiny{24}}\scoring{24}
\\
\end{tabular}}}
\newcommand{\correctorTwentyFour}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=24}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyFour\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwentyFive}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10} &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12}
\\
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20} &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\wrongchoice[B]{\tiny{24}}\scoring{24} &
\correctchoice[A]{\tiny{25}}\scoring{25}
\\
\end{tabular}}}
\newcommand{\correctorTwentyFive}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=25}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesTwentyFive\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirty}{
%\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\setlength{\tabcolsep}{0.08em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\hspace{.2cm}\begin{tabular}{lllllllllll}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{1}}\scoring{1} &
\wrongchoice[X]{\tiny{2}}\scoring{2} &
\wrongchoice[W]{\tiny{3}}\scoring{3} &
\wrongchoice[V]{\tiny{4}}\scoring{4} &
\wrongchoice[U]{\tiny{5}}\scoring{5} &
\wrongchoice[T]{\tiny{6}}\scoring{6} &
\wrongchoice[S]{\tiny{7}}\scoring{7} &
\wrongchoice[R]{\tiny{8}}\scoring{8} &
\wrongchoice[Q]{\tiny{9}}\scoring{9} &
\wrongchoice[P]{\tiny{10}}\scoring{10}
\\ &
\wrongchoice[O]{\tiny{11}}\scoring{11} &
\wrongchoice[N]{\tiny{12}}\scoring{12} &
\wrongchoice[M]{\tiny{13}}\scoring{13} &
\wrongchoice[L]{\tiny{14}}\scoring{14} &
\wrongchoice[K]{\tiny{15}}\scoring{15} &
\wrongchoice[J]{\tiny{16}}\scoring{16} &
\wrongchoice[I]{\tiny{17}}\scoring{17} &
\wrongchoice[H]{\tiny{18}}\scoring{18} &
\wrongchoice[G]{\tiny{19}}\scoring{19} &
\wrongchoice[F]{\tiny{20}}\scoring{20}
\\ &
\wrongchoice[E]{\tiny{21}}\scoring{21} &
\wrongchoice[D]{\tiny{22}}\scoring{22} &
\wrongchoice[C]{\tiny{23}}\scoring{23} &
\wrongchoice[B]{\tiny{24}}\scoring{24} &
\wrongchoice[A]{\tiny{25}}\scoring{25} &
\wrongchoice[AY]{\tiny{26}}\scoring{26} &
\wrongchoice[AX]{\tiny{27}}\scoring{27} &
\wrongchoice[AW]{\tiny{28}}\scoring{28} &
\wrongchoice[AV]{\tiny{29}}\scoring{29} &
\correctchoice[AU]{\tiny{30}}\scoring{30}
\\
\end{tabular}}}
\newcommand{\correctorThirty}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=30}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
\parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirty\makebox[0pt][c]{}}
\hspace*{5ex}}
\end{question}
\vspace{-55pt}~
\par
}
+\newcommand{\correctorChoicesThirtySix}{
+ %\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
+ \setlength{\tabcolsep}{0.08em} % for the horizontal padding
+ {\renewcommand{\arraystretch}{1.2}% for the vertical padding
+ \hspace{.2cm}\begin{tabular}{lllllllllll}
+ \wrongchoice[0]{\tiny{0}}\scoring{0} &
+ \wrongchoice[Y]{\tiny{1}}\scoring{1} &
+ \wrongchoice[X]{\tiny{2}}\scoring{2} &
+ \wrongchoice[W]{\tiny{3}}\scoring{3} &
+ \wrongchoice[V]{\tiny{4}}\scoring{4} &
+ \wrongchoice[U]{\tiny{5}}\scoring{5} &
+ \wrongchoice[T]{\tiny{6}}\scoring{6} &
+ \wrongchoice[S]{\tiny{7}}\scoring{7} &
+ \wrongchoice[R]{\tiny{8}}\scoring{8} &
+ \wrongchoice[Q]{\tiny{9}}\scoring{9} &
+ \wrongchoice[P]{\tiny{10}}\scoring{10}
+ \\
+ \wrongchoice[O]{\tiny{11}}\scoring{11} &
+ \wrongchoice[N]{\tiny{12}}\scoring{12} &
+ \wrongchoice[M]{\tiny{13}}\scoring{13} &
+ \wrongchoice[L]{\tiny{14}}\scoring{14} &
+ \wrongchoice[K]{\tiny{15}}\scoring{15} &
+ \wrongchoice[J]{\tiny{16}}\scoring{16} &
+ \wrongchoice[I]{\tiny{17}}\scoring{17} &
+ \wrongchoice[H]{\tiny{18}}\scoring{18} &
+ \wrongchoice[G]{\tiny{19}}\scoring{19} &
+ \wrongchoice[F]{\tiny{20}}\scoring{20}
+ \\
+ \wrongchoice[E]{\tiny{21}}\scoring{21} &
+ \wrongchoice[D]{\tiny{22}}\scoring{22} &
+ \wrongchoice[C]{\tiny{23}}\scoring{23} &
+ \wrongchoice[B]{\tiny{24}}\scoring{24} &
+ \wrongchoice[A]{\tiny{25}}\scoring{25} &
+ \wrongchoice[AA]{\tiny{26}}\scoring{26} &
+ \wrongchoice[AB]{\tiny{27}}\scoring{27} &
+ \wrongchoice[AC]{\tiny{28}}\scoring{28} &
+ \wrongchoice[AD]{\tiny{29}}\scoring{29} &
+ \wrongchoice[AE]{\tiny{30}}\scoring{30}
+ \\
+ \wrongchoice[AF]{\tiny{31}}\scoring{31} &
+ \wrongchoice[AG]{\tiny{32}}\scoring{32} &
+ \wrongchoice[AH]{\tiny{33}}\scoring{33} &
+ \wrongchoice[AI]{\tiny{34}}\scoring{34} &
+ \wrongchoice[AL]{\tiny{35}}\scoring{35} &
+ \correctchoice[AM]{\tiny{36}}\scoring{36} &
+
+\end{tabular}}}
+\newcommand{\correctorThirtySix}[3][0]{%
+ \par
+ \noindent
+ \begin{question}{#2}\bareme{MAX=36}
+ #3~\\
+ \noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}{
+ \parbox{0.85\linewidth}{\linespread{1.25}\selectfont \correctorChoicesThirtySix\makebox[0pt][c]{}}
+ \hspace*{5ex}}
+ \end{question}
+ \vspace{-55pt}~
+ \par
+}
+
%% half points correctors boxes ===================================
\newcommand{\correctorChoicesTwoHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\correctchoice[V]{\tiny{2}}\scoring{2}
\\
\end{tabular}}}
\newcommand{\correctorTwoHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=2}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwoHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThreeHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\correctchoice[T]{\tiny{3}}\scoring{3}
\\
\end{tabular}}}
\newcommand{\correctorThreeHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=3}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThreeHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\correctchoice[R]{\tiny{4}}\scoring{4}
\\
\end{tabular}}}
\newcommand{\correctorFourHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=4}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFourHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFiveHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\correctchoice[P]{\tiny{5}}\scoring{5}
\\
\end{tabular}}}
\newcommand{\correctorFiveHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=5}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFiveHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\correctchoice[N]{\tiny{6}}\scoring{6}
\\
\end{tabular}}}
\newcommand{\correctorSixHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=6}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSixHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSevenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5}
\\
&
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\correctchoice[L]{\tiny{7}}\scoring{7}
\\
\end{tabular}}}
\newcommand{\correctorSevenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=7}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSevenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesEightHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4}
\\
&
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\correctchoice[J]{\tiny{8}}\scoring{8}
\\
\end{tabular}}}
\newcommand{\correctorEightHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=8}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesEightHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesNineHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5}
\\
&
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\correctchoice[H]{\tiny{9}}\scoring{9}
\\
\end{tabular}}}
\newcommand{\correctorNineHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=9}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesNineHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5}
\\
&
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\correctchoice[F]{\tiny{10}}\scoring{10}
\\
\end{tabular}}}
\newcommand{\correctorTenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=10}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesElevenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5}
\\
&
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\correctchoice[D]{\tiny{11}}\scoring{11}
\\
\end{tabular}}}
\newcommand{\correctorElevenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=11}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesElevenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesTwelveHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6}
\\
&
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\correctchoice[B]{\tiny{12}}\scoring{12}
\\
\end{tabular}}}
\newcommand{\correctorTwelveHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=12}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesTwelveHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesThirteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5}
\\
&
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\correctchoice[AY]{\tiny{13}}\scoring{13}
\\
\end{tabular}}}
\newcommand{\correctorThirteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=13}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesThirteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFourteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7}
\\
&
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\correctchoice[AW]{\tiny{14}}\scoring{14}
\\
\end{tabular}}}
\newcommand{\correctorFourteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=14}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFourteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesFifteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5} &
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5}
\\
&
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5} &
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\wrongchoice[AW]{\tiny{14}}\scoring{14} &
\wrongchoice[AV]{\tiny{.5}}\scoring{14.5} &
\correctchoice[AU]{\tiny{15}}\scoring{15}
\\
\end{tabular}}}
\newcommand{\correctorFifteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=15}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesFifteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorChoicesSixteenHalf}{
\setlength{\tabcolsep}{0em} % for the horizontal padding
{\renewcommand{\arraystretch}{1.2}% for the vertical padding
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2em}}
\hspace{-0.25cm}\begin{tabular}{LLLLLLLLLLLLLL}
\wrongchoice[0]{\tiny{0}}\scoring{0} &
\wrongchoice[Y]{\tiny{.5}}\scoring{0.5} &
\wrongchoice[X]{\tiny{1}}\scoring{1} &
\wrongchoice[W]{\tiny{.5}}\scoring{1.5} &
\wrongchoice[V]{\tiny{2}}\scoring{2} &
\wrongchoice[U]{\tiny{.5}}\scoring{2.5} &
\wrongchoice[T]{\tiny{3}}\scoring{3} &
\wrongchoice[S]{\tiny{.5}}\scoring{3.5} &
\wrongchoice[R]{\tiny{4}}\scoring{4} &
\wrongchoice[Q]{\tiny{.5}}\scoring{4.5} &
\wrongchoice[P]{\tiny{5}}\scoring{5} &
\wrongchoice[O]{\tiny{.5}}\scoring{5.5} &
\wrongchoice[N]{\tiny{6}}\scoring{6} &
\wrongchoice[M]{\tiny{.5}}\scoring{6.5}
\\
&
\wrongchoice[L]{\tiny{7}}\scoring{7} &
\wrongchoice[K]{\tiny{.5}}\scoring{7.5} &
\wrongchoice[J]{\tiny{8}}\scoring{8} &
\wrongchoice[I]{\tiny{.5}}\scoring{8.5} &
\wrongchoice[H]{\tiny{9}}\scoring{9} &
\wrongchoice[G]{\tiny{.5}}\scoring{9.5} &
\wrongchoice[F]{\tiny{10}}\scoring{10} &
\wrongchoice[E]{\tiny{.5}}\scoring{10.5} &
\wrongchoice[D]{\tiny{11}}\scoring{11} &
\wrongchoice[C]{\tiny{.5}}\scoring{11.5} &
\wrongchoice[B]{\tiny{12}}\scoring{12} &
\wrongchoice[A]{\tiny{.5}}\scoring{12.5}
\\
&
\wrongchoice[AY]{\tiny{13}}\scoring{13} &
\wrongchoice[AX]{\tiny{.5}}\scoring{13.5} &
\wrongchoice[AW]{\tiny{14}}\scoring{14} &
\wrongchoice[AV]{\tiny{.5}}\scoring{14.5} &
\wrongchoice[AU]{\tiny{15}}\scoring{15} &
\wrongchoice[AV]{\tiny{.5}}\scoring{15.5} &
\correctchoice[AU]{\tiny{16}}\scoring{16}
\\
\end{tabular}}}
\newcommand{\correctorSixteenHalf}[3][0]{%
\par
\noindent
\begin{question}{#2}\bareme{MAX=16}
#3~\\
\noindent\AMCOpen{lines=#1,boxframerulecol=lightgray,framerulecol=white}%
{\makebox[0.9\linewidth][l]{\correctorChoicesSixteenHalf}}
\end{question}
\vspace{-55pt}~
\par
}
\newcommand{\correctorStop}{
\bigskip
\noindent
}
diff --git a/data/templates/maths/config/options.xml b/data/templates/maths/config/options.xml
index 55e2a56..e610679 100644
--- a/data/templates/maths/config/options.xml
+++ b/data/templates/maths/config/options.xml
@@ -1,61 +1,61 @@
<_modifie>
<_modifie_ok>1
marges
<preassoc>
0
cr
data
EXAM-catalog.pdf
EXAM-sujet.pdf
EXAM-calage.xy
EXAM-corrige.pdf
EMAIL
Linear Algebra: test result
Please find enclosed your annotated completed answer sheet.
Best Regards.
UTF-8
UTF-8
- ID,SCIPER,NAME,SECTION,EMAIL,ROOM
+ ID,SCIPER,NAME,SECTION,EMAIL
;
2
student.copy,student.key,student.name
1
a4
n
latex
EXAM-filtered.tex
CSV
SCIPER
%PROJET/students.csv
1
pdflatex
0
normal
0.5
6
1
1
notes-common.xml
0
0
ALL
STUDENTS
0.007
%PROJET/exam.tex
%(ID)
Score: %S/%M
"%s/%m"
diff --git a/local/stats/amcstats b/local/stats/amcstats
index 0594cec..511492b 100755
--- a/local/stats/amcstats
+++ b/local/stats/amcstats
@@ -1,298 +1,298 @@
#!/usr/bin/env php
Notes:
- Script has be be executable (chmod +x).
- INPUT: total points for the student as first parameter (can be negative if negative marking has been used)
- OUTPUT: non-rounded mark, with '.' as decimal separator
";
exit;
}
if (!empty($options['current-dir'])) {
$total_points = $options['current-dir'];
$filename = array();
foreach(scandir('./') as $f) if (preg_match('/\.csv$/', $f)) $filename[] = $f;
if (count($filename)) {
$csv = "";
$first = true;
foreach($filename as $f) {
if (!$first) $csv .= ',';
$csv .= ucfirst(preg_replace('/\.csv$/', '', $f));
$csv .= "/$f/$total_points";
$first = false;
}
} else {
echo "No AMC stat files found in this directory.\n";
exit;
}
}
$only_questions = null;
if (!empty($options['only-questions'])) {
$filename = $options['only-questions'];
if(!is_file($filename)) {
echo "File not found: $filename\n";
exit;
}
$only_questions = file($filename, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
}
$external = null;
if (!empty($options['external'])) {
$external = $options['external'];
if(!is_file($external)) {
echo "External script/exec not found: $external\n";
exit;
}
}
$inverse_filter = false;
if (array_key_exists('inverse-filter', $options)) {
$inverse_filter = true;
}
if (!empty($options['csv'])) $csv = $options['csv'];
if (!empty($options['sample'])) $samples = explode(',', $options['sample']); else $samples = array( 'global');
if (!empty($options['type'])) $types = explode(',', $options['type']); else $types = array( 'average' );
// Create ExamCalcs object
$Global = new ExamCalcs();
// Load files
$loaded = array();
foreach(explode(',', $csv) as $file_info) {
$details = explode('/', $file_info);
if (count($details) < 3 ) {
echo "CSV file list should look like: tournesol/tournesol.csv/30[,favre@favre.csv@29,...]\n";
exit;
}
$name = $details[0];
$filename = $details[1];
$total = $details[2];
if(!is_file($filename)) {
echo "File not found: $filename\n";
exit;
}
if (in_array($filename, $loaded)) {
echo "Trying to load $filename a second time...\n";
exit;
}
$Global->addFile($name, $filename, $total, $only_questions, $inverse_filter, $external);
$loaded[] = $filename;
}
foreach ($types as $type) {
// Build samples
foreach ($samples as $sample) {
// Print header
$sample_header = strtoupper($sample);
switch ($type) {
case 'average':
printAverage($sample_header);
break;
case 'dist':
case 'dist_percentage':
printDistribution($sample_header);
break;
case 'marks':
break;
}
// Build samples
$Samples = array();
switch ($sample) {
case 'global':
$Samples['global'] = new ExamCalcs($Global->getDataSet());
break;
case 'sections':
foreach ($Global->getSections() as $section) {
$tmpSample = new ExamCalcs($Global->getDataSet());
$tmpSample->filterBySections($section);
$Samples[$section] = $tmpSample;
}
break;
case 'profs':
foreach ($Global->getTeachers() as $teacher) {
$tmpSample = new ExamCalcs($Global->getDataSet());
$tmpSample->filterByTeachers($teacher);
$Samples[$teacher] = $tmpSample;
}
break;
}
// Print stats
$is_first = true;
foreach ($Samples as $name => $S) {
if (!$is_first) echo "\n"; else $is_first = false;
$stats = $S->getStats();
switch ($type) {
case 'average':
printAverage($name, $stats);
break;
case 'dist_percentage':
printDistribution($name, $stats, true);
break;
case 'dist':
printDistribution($name, $stats);
break;
case 'discrimination':
echo "\"STATS ON QUESTIONS: ".strtoupper($name)."\"\n";
try {
$S->printStatsOnCommonItems();
} catch (Exception $e) {
echo "\"Not enough data\"\n";
}
break;
case 'marks':
$marks = $S->getMarks();
foreach ($marks as $student) {
echo implode(',', $student)."\n";
}
break;
case 'questions':
$questions = $S->getQuestions();
foreach ($questions as $student) {
echo implode(',', $student)."\n";
}
break;
case 'latex_histo':
echo "\"LATEX HISTO COMMANDS: ".strtoupper($name)."\"\n";
try {
$S->printLatexHistoCommandsOnCommonItems();
} catch (Exception $e) {
echo "\"Not enough data\"\n";
}
break;
}
}
}
}
exit;
?>
diff --git a/local/stats/lib/lib_amcstats_new.php b/local/stats/lib/lib_amcstats_new.php
new file mode 100755
index 0000000..60f268d
--- /dev/null
+++ b/local/stats/lib/lib_amcstats_new.php
@@ -0,0 +1,980 @@
+filename = $filename;
+
+ $this->teacher = $teacher;
+ $this->exam_points = $exam_points;
+
+ $raw_data = file($this->filename, FILE_IGNORE_NEW_LINES);
+ $this->raw_data = array();
+ foreach($raw_data as $line) {
+ $line = array_map("clean_array", explode(';', $line));
+ $line = array_map("decimal_conversion", $line);
+ $this->raw_data[] = $line;
+ }
+ $this->parseHeader();
+ $this->parseStudents($only_questions, $inverse_filter, $external);
+ }
+
+ public function getStudents() {
+ return $this->students;
+ }
+
+ protected function parseHeader() {
+ if (isset($this->raw_data[0])) //is_array($this->raw_data[0]) || is_object($this->raw_data[0]))
+ {
+ foreach($this->raw_data[0] as $col_id => $value) {
+ // Analyse header from CSV file, based on content
+ $item = array();
+ switch ($value) {
+ case "ID":
+ case "NAME":
+ case "EMAIL":
+ case "SECTION":
+ case "Mark":
+ $item['name'] = $value;
+ $item['type'] = "info";
+ break;
+ case "SCIPER":
+ $item['name'] = $value;
+ $item['type'] = "unique_id";
+ break;
+ default:
+ $item['name'] = $value;
+ if (preg_match('/^TICKED:/', $value)) {
+ $item['name'] = preg_replace('/^TICKED:/', '', $value);
+ $item['type'] = "ticked";
+ } else {
+ $item['type'] = "question";
+ $item['subtype'] = $this->guessSubtype_new($col_id);
+ }
+
+ }
+ // Stats will be computed at a later stage
+ $item['stats'] = null;
+ $this->columns[] = $item;
+ }
+ }
+ }
+
+ protected function guessSubtype($col_id) {
+ $subtype = null;
+ $min_points = 0;
+ $max_points = 0;
+ $decimal = false;
+
+ foreach($this->raw_data as $line) {
+ //echo $line[$col_id];
+ if (preg_match('/\./', $line[$col_id])) $decimal = true;
+ if ($line[$col_id] > $max_points) $max_points = $line[$col_id];
+ }
+
+ //Tmp Global Issues
+ //if ($max_points == 1)return 'mc'; else return 'tf';
+
+ //Tmp Euler
+ //if ($max_points == 1)return 'mc'; else return 'open';
+ //return 'open';
+ // This only works for MATHS exams...
+
+ //Tmp mc 5 points
+ //if ($max_points == 5) return 'mc';
+
+ //K. Mulleners
+ //if ($max_points == 1) return 'mc';
+ //return 'open';
+
+ //Droit archi
+ //return 'mc';
+
+
+ if ($decimal or $max_points > 3) {
+ // Only open questions have decimal points
+ return 'open';
+ }
+
+ //if ($max_points == 2) return 'mc';
+ if ($max_points == 3) return 'mc';
+ if ($max_points == 1) return 'tf';
+
+ return 'open';
+ }
+
+ protected function guessSubtype_new($col_id) {
+ $subtype = null;
+ $min_points = 0;
+ $max_points = 0;
+ $decimal = false;
+
+ //get first line header and question ids
+ $line = $this->raw_data[0];
+
+ //find question tex file
+ $dir = dirname(getcwd())."/*.tex";
+
+ foreach(glob($dir) as $tex_file)
+ {
+
+ if( !empty($line[$col_id]) && strpos(file_get_contents($tex_file),$line[$col_id]) !== false) {
+
+ $tex_lines = file($tex_file);
+
+ $lineNum = 0;
+ foreach ($tex_lines as $tex_line) {
+
+ if (strpos($tex_line, $line[$col_id]) !== false) {
+ if (strpos($tex_line,"{questionmult}") !== false) {
+ return 'mcm';
+ } else if (strpos($tex_line,"\corrector") !== false) {
+ return 'open';
+ } else {
+
+ $tmp_file = fopen($tex_file,"r");
+ $tmp_lineNum = 0;
+
+ while(! feof($tmp_file)) {
+ $tmp_line = fgets($tmp_file);
+ //echo "\n".$line[$col_id].";";
+ if ( $tmp_lineNum >= $lineNum ) {
+ if (strpos($tmp_line, "\FALSE") !== false || strpos($tmp_line, "\TRUE") !== FALSE){
+ return 'tf';
+ }
+ }
+
+ $tmp_lineNum++;
+ }
+
+ fclose($tmp_file);
+ return 'mc';
+ }
+ }
+ $lineNum++;
+ }
+ echo basename($tex_file);
+ }
+ }
+
+ echo "\n";
+
+
+ }
+
+ protected function getColIdByName($name) {
+ foreach ($this->columns as $id => $col) if ($col['name'] == $name) return $id;
+ throw new Exception('Column not found: '.$name);
+ }
+
+ protected function getColIdsByType($type, $name = null) {
+
+ $ids = array();
+ if (is_null($name)) {
+ foreach ($this->columns as $id => $col) if ($col['type'] == $type) $ids[] = $id;
+ } else {
+ foreach ($this->columns as $id => $col) if ($col['type'] == $type and $col['name'] == $name) $ids[] = $id;
+ }
+ if (count($ids) == 0) {
+ if (is_null($name)) throw new Exception('Column type not found: '.$type);
+ throw new Exception('Column type not found: '.$type.'/'.$name);
+ }
+ if (count($ids) == 1) return $ids[0];
+ return $ids;
+ }
+
+ protected function getQuestionNameByColId($id) {
+ if (array_key_exists($id, $this->columns) and $this->columns[$id]['type'] == 'question')
+ return $this->columns[$id]['name'];
+ throw new Exception('Column not found, or is not a question: '.$id);
+ }
+
+ protected function getMaximumPointsByColId($id) {
+ $maximum = 0.0;
+ foreach($this->raw_data as $student) if ((float)$student[$id] > $maximum) $maximum = (float)$student[$id];
+ return $maximum;
+ }
+
+ protected function parseStudents($only_questions, $inverse_filter, $external) {
+ foreach($this->raw_data as $line => $student) {
+ if ($line == 0) continue; // skip header
+
+ $data = array('teacher' => $this->teacher);
+
+ foreach(array('ID', 'SCIPER', 'NAME', 'EMAIL', 'SECTION') as $key) {
+ $data[$key] = $student[$this->getColIdByName($key)];
+ }
+
+ // Get points
+ $points = array();
+ $data['items'] = array();
+ foreach($this->getColIdsByType('question') as $col) {
+ $item = array();
+ $item['name'] = $this->getQuestionNameByColId($col);
+ // Should we filter this question ?
+ if (is_null($only_questions)
+ or (!$inverse_filter and in_array($item['name'], $only_questions))
+ or ($inverse_filter and !in_array($item['name'], $only_questions))
+ ) {
+ // Take this question into account
+ $item['points'] = (float)$student[$col];
+ $item['max_points'] = $this->getMaximumPointsByColId($col);
+ if ($item['max_points'] == 0) {
+ // Cancelled question ? Count it right for everyone
+ $item['right'] = 1;
+ } else {
+ $item['right'] = max((float)($item['points']/$item['max_points']), 0.0);
+ }
+ $points[] = $item['points'];
+ $item['ticked'] = $student[$this->getColIdsByType('ticked', $item['name'])];
+ $item['type'] = $this->columns[$col]['type'];
+ $item['subtype'] = $this->columns[$col]['subtype'];
+ $data['items'][] = $item;
+ }
+ }
+
+ $data['total'] = array_sum($points);
+
+ $data['present'] = (int)(array_sum(array_map("square", $points))>0);
+
+ $data['exam_points'] = $this->exam_points;
+ // Compute marks
+ if ($data['present']) {
+ $data['positive_total'] = (float)max($data['total'], 0.0);
+ if (is_null($external)) {
+ $data['mark6'] = (float)min($data['positive_total']/($this->exam_points)*5.0+1, 6.0);
+ } else {
+ $output = array();
+ exec("./".$external." ".$data['total'], $output);
+ $data['mark6'] = (float)trim($output[0]);
+ }
+ $data['quarter_mark6'] = (float)round($data['mark6']*4.0, 0)/4.0;
+ } else {
+ $data['positive_total'] = 'n/a';
+ $data['mark6'] = 'abs';
+ $data['quarter_mark6'] = 'abs';
+ }
+
+ if (preg_match('/^FAKE/', $data['SCIPER'])) {
+ if ($data['present']) $data['type'] = 'unregistered';
+ else $data['type'] = 'unused';
+ } else $data['type'] = 'student';
+
+ $this->students[] = $data;
+ }
+ }
+}
+
+// Compare students on total (higher to lower)
+function cmp_total($a, $b)
+{
+ if ($a['total'] == $b['total']) {
+ return 0;
+ }
+ return ($a['total'] < $b['total']) ? 1 : -1;
+}
+
+class ExamCalcs {
+ protected $dataset = null;
+ protected $tmp_dataset = null;
+
+ public function __construct($dataset = null) {
+ $this->dataset = array();
+ if (!is_null($dataset)) $this->dataset = $dataset;
+ }
+
+ public function addFile($teacher, $teacher_file, $max_points, $only_questions = null, $inverse_filter = false, $external = null) {
+ #echo "Adding $teacher ($teacher_file) to the dataset ($max_points points).\n";
+ $AR = new AmcReader($teacher_file, $teacher, $max_points, $only_questions, $inverse_filter, $external);
+ $this->addDataSet($AR->getStudents());
+ }
+
+ public function addDataSet($data) {
+ if (is_array($data) || is_object($data))
+ {
+ foreach ($data as $student) $this->dataset[] = $student;
+ }
+ }
+
+ public function filterBySections($sections, $update = true) {
+ $dataset = array();
+ foreach ($this->dataset as $student) {
+ if (is_array($sections)) {
+ if (in_array($student['SECTION'], $sections))
+ $dataset[] = $student;
+ } else {
+ if ($student['SECTION'] == $sections)
+ $dataset[] = $student;
+ }
+ }
+ if ($update) $this->dataset = $dataset;
+ return $dataset;
+ }
+
+ public function filterByTeachers($teachers, $update = true) {
+ $dataset = array();
+ foreach ($this->dataset as $student) {
+ if (is_array($teachers)) {
+ if (in_array($student['teacher'], $teachers))
+ $dataset[] = $student;
+ } else {
+ if ($student['teacher'] == $teachers)
+ $dataset[] = $student;
+ }
+ }
+ if ($update) $this->dataset = $dataset;
+ return $dataset;
+ }
+
+ public function getTeachers() {
+ $teachers = array();
+ foreach ($this->dataset as $student) {
+ if (!in_array($student['teacher'], $teachers)) $teachers[] = $student['teacher'];
+ }
+ return $teachers;
+ }
+
+ public function getSections() {
+ $sections = array();
+
+ foreach ($this->dataset as $student) {
+ $section = $student['SECTION'];
+ if (!in_array($section, $sections) and $section != 'XXX') $sections[] = $section;
+ }
+ return $sections;
+ }
+
+ public function getQuestionsTxt() {
+ $questions = array();
+
+ $items = array();
+ foreach ($this->dataset[0]['items'] as $item){
+ $questions[] = $item['name'];
+ echo $item['name'];
+ }
+ return $questions;
+ }
+
+ public function printStatsOnCommonItems() {
+ // Sort dataset by points
+ $dataset = $this->sortByTotalPoints(false);
+ if (count($dataset) < 3) throw new Exception('Dataset is too small.');
+
+ // Get items from the first student
+ $items = array();
+ foreach ($this->dataset[0]['items'] as $item) $items[] = $item['name'];
+
+ foreach ($dataset as $student) {
+ // Get items for current student
+ $tmp_items = array();
+ foreach ($student['items'] as $item) $tmp_items[] = $item['name'];
+ // Keep only items in both '$items' AND '$tmp_items'
+ $items = array_intersect($items, $tmp_items);
+ }
+
+ // Now, filter items in the dataset
+ $filtered_dataset = array();
+ foreach ($dataset as $student) {
+ if (!$student['present']) continue;
+ $filtered_items = array();
+ foreach ($student['items'] as $item) {
+ if (in_array($item['name'], $items)) $filtered_items[] = $item;
+ }
+ if (count($filtered_items)) {
+ $student['items'] = $filtered_items;
+ $filtered_dataset[] = $student;
+ }
+ }
+ $dataset = $filtered_dataset;
+ if (count($dataset) < 3) throw new Exception('Dataset is too small.');
+
+ // Compute limits
+ $nb_students = count($dataset);
+ $twenty_seven = (int)($nb_students*27.0/100);
+ $upper_stop = $twenty_seven-1;
+ $lower_start = $nb_students-$twenty_seven+1;
+
+ #echo "$nb_students / $twenty_seven / 0 -> $upper_stop / $lower_start -> $nb_students \n";
+
+ $stats = array();
+ foreach ($dataset as $i => $student) {
+ foreach ($student['items'] as $item) {
+ $name = $item['name'];
+ if (!array_key_exists($name, $stats))
+ $stats[$name] = array( '27%' => $twenty_seven,
+ 'upper' => 0,
+ 'lower' => 0,
+ 'valid' => null,
+ 'ticked'=> null,
+ 'ticked_count'=> 0,
+ 'empty_count'=> 0,
+ 'type' => null,
+ 'subtype' => null,
+ 'max_points' => null,
+ );
+ $stats[$name]['max_points'] = $item['max_points'];
+ $stats[$name]['type'] = $item['type'];
+ $stats[$name]['subtype'] = $item['subtype'];
+
+ // Initialise 'ticked' table
+ if (is_null($stats[$name]['ticked'])) {
+ switch ($stats[$name]['subtype']) {
+ case 'mc':
+ $stats[$name]['ticked'] = array( 'A' => 0, 'B' => 0, 'C' => 0, 'D' => 0, 'multiple' => 0);
+ break;
+ case 'mcm':
+ $stats[$name]['ticked'] = array( 'A' => 0, 'B' => 0, 'C' => 0, 'D' => 0, 'E' => 0, 'F' => 0, 'G' => 0 );
+ break;
+ case 'tf':
+ $stats[$name]['ticked'] = array( 'TRUE' => 0, 'FALSE' => 0, 'multiple' => 0);
+ break;
+ default:
+ $stats[$name]['ticked'] = array();
+ break;
+ }
+ }
+
+ // Count right answers
+ if ($item['right'] > 0) {
+ // Save valid answer
+ if (is_null($stats[$name]['valid'])) {
+ switch ($stats[$name]['subtype']) {
+ case 'tf':
+ if ($item['ticked'] == 'A')
+ $stats[$name]['valid'] = 'TRUE';
+ else
+ $stats[$name]['valid'] = 'FALSE';
+ break;
+ case 'mc':
+ $stats[$name]['valid'] = $item['ticked'];
+ break;
+ case 'mcm':
+ $stats[$name]['valid'] = $item['ticked'];
+ break;
+ case 'open':
+ $stats[$name]['valid'] = 'n/a';
+ break;
+ default:
+ $stats[$name]['valid'] = 'n/a';
+ break;
+ }
+ }
+
+ // 'upper 27%' and 'lower 27%' counters
+ switch ($stats[$name]['subtype']) {
+ case 'mc':
+ case 'mcm':
+ if ($i <= $upper_stop) $stats[$name]['upper'] += $item['points'];
+ if ($i >= $lower_start) $stats[$name]['lower'] += $item['points'];
+ break;
+ case 'tf':
+ if ($i <= $upper_stop) $stats[$name]['upper']++;
+ if ($i >= $lower_start) $stats[$name]['lower']++;
+ break;
+ case 'open':
+ if ($i <= $upper_stop) $stats[$name]['upper'] += $item['points'];
+ if ($i >= $lower_start) $stats[$name]['lower'] += $item['points'];
+ break;
+ }
+ }
+
+ // Count empty answers
+ if (empty($item['ticked'])) {
+ $stats[$name]['empty_count']++;
+ } else {
+ // Stats on non-empty answers
+ $stats[$name]['ticked_count']++;
+ if (strlen($item['ticked']) > 1) {
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], 'multiple');
+ } else {
+ switch ($item['subtype']) {
+ case 'tf':
+ if ($item['ticked'] == 'A') $field = 'TRUE';
+ if ($item['ticked'] == 'B') $field = 'FALSE';
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], $field);
+ break;
+ case 'mc':
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], $item['ticked']);
+ break;
+ case 'mcm':
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], $item['ticked']);
+ break;
+ default:
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], $item['ticked']);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Compute more stats
+ $tmp = array();
+ foreach ($stats as $name => $stat) {
+ // Discrimination index
+
+ // NA if stat 27% is zero
+ if ($stat['27%'] == 0){
+ $stat['upper'] = "NA";
+ $stat['lower'] = "NA";
+ $stat['27%'] = "NA";
+ $stat['DI'] = "NA";
+ }else{
+
+ // For open and mcm questions, change the '27%' value.
+ if ($stat['subtype'] == 'open' || $stat['subtype'] == 'mcm'){
+ $stat['upper'] = $stat['upper']/$stat['27%'];
+ $stat['lower'] = $stat['lower']/$stat['27%'];
+ $stat['27%'] = $stat['max_points']; //$stat['27%']*$stat['max_points'];
+ }
+
+ $stat['DI'] = ($stat['upper']-$stat['lower'])/(1.0*$stat['27%']);
+ }
+
+ // Calculate percentages
+ $ticked_percentage = array();
+ foreach ($stat['ticked'] as $t => $n) {
+ $ticked_percentage[$t] = array( 'n' => $n, '%' => (float)(100.0*$n/$stat['ticked_count']), 'valid' => (int)($t == $stat['valid']));
+ }
+ $stat['ticked'] = $ticked_percentage;
+ $tmp[$name] = $stat;
+ }
+ $stats = $tmp;
+
+ // Print CSV
+ $previous_subtype = null;
+ $header = '"question_id","subtype","27 %","upper","lower","DI","count","valid"';
+ $headerOpenMcm = '"question_id","subtype","question pts %","avg pts upper","avg pts lower","DI","count","valid"';
+ foreach ($stats as $name => $stat) {
+ if ($stat['subtype'] != $previous_subtype) {
+ #if (!is_null($previous_subtype)) echo "\n";
+ if ($stat['subtype'] == 'open'){
+ echo "\n".$headerOpenMcm;
+ } else {
+ echo "\n".$header;
+ }
+ if ($stat['subtype'] != 'open' || $stat['subtype'] == 'mcm') {
+ foreach ($stat['ticked'] as $answer => $data) echo ",\"[$answer] count\"";
+ foreach ($stat['ticked'] as $answer => $data) echo ",\"[$answer] %\"";
+ }
+ echo "\n";
+ $previous_subtype = $stat['subtype'];
+ }
+ echo "$name,{$stat['subtype']},{$stat['27%']},{$stat['upper']},{$stat['lower']},{$stat['DI']},{$stat['ticked_count']}";
+ if ($stat['subtype'] == 'open') {
+ echo ",\"n/a\"";
+ } else {
+ foreach ($stat['ticked'] as $answer => $data) if ($data['valid'] == 1) echo ",\"$answer\"";
+ foreach ($stat['ticked'] as $answer => $data) echo ",{$data['n']}";
+ foreach ($stat['ticked'] as $answer => $data) echo ",{$data['%']}";
+ }
+ echo "\n";
+ }
+
+ echo "\n\n";
+
+ }
+
+ public function printLatexHistoCommandsOnCommonItems() {
+ echo "test";
+ // Sort dataset by points
+ $dataset = $this->sortByTotalPoints(false);
+ if (count($dataset) < 3) throw new Exception('Dataset is too small.');
+
+ // Get items from the first student
+ $items = array();
+ foreach ($this->dataset[0]['items'] as $item) $items[] = $item['name'];
+
+ foreach ($dataset as $student) {
+ // Get items for current student
+ $tmp_items = array();
+ foreach ($student['items'] as $item) $tmp_items[] = $item['name'];
+ // Keep only items in both '$items' AND '$tmp_items'
+ $items = array_intersect($items, $tmp_items);
+ }
+
+ // Now, filter items in the dataset
+ $filtered_dataset = array();
+ foreach ($dataset as $student) {
+ if (!$student['present']) continue;
+ $filtered_items = array();
+ foreach ($student['items'] as $item) {
+ if (in_array($item['name'], $items)) $filtered_items[] = $item;
+ }
+ if (count($filtered_items)) {
+ $student['items'] = $filtered_items;
+ $filtered_dataset[] = $student;
+ }
+ }
+ $dataset = $filtered_dataset;
+ if (count($dataset) < 3) throw new Exception('Dataset is too small.');
+
+ // Compute limits
+ $nb_students = count($dataset);
+ $twenty_seven = (int)($nb_students*27.0/100);
+ $upper_stop = $twenty_seven-1;
+ $lower_start = $nb_students-$twenty_seven+1;
+
+ #echo "$nb_students / $twenty_seven / 0 -> $upper_stop / $lower_start -> $nb_students \n";
+
+ $stats = array();
+ foreach ($dataset as $i => $student) {
+ foreach ($student['items'] as $item) {
+ $name = $item['name'];
+ $teacher = $student['teacher'];
+ $name = $name . ";" . $teacher;
+ if (!array_key_exists($name, $stats))
+ $stats[$name] = array(
+ 'teacher' => null,
+ 'valid' => null,
+ 'ticked'=> null,
+ 'ticked_count'=> 0,
+ 'empty_count'=> 0,
+ 'type' => null,
+ 'subtype' => null,
+ );
+ $stats[$name]['type'] = $item['type'];
+ $stats[$name]['subtype'] = $item['subtype'];
+ $stats[$name]['teacher'] = $student['teacher'];
+
+ // Initialise 'ticked' table
+ if (is_null($stats[$name]['ticked'])) {
+ switch ($stats[$name]['subtype']) {
+ case 'mc':
+ $stats[$name]['ticked'] = array( 'A' => 0, 'B' => 0, 'C' => 0, 'D' => 0);
+ break;
+ case 'mcm':
+ $stats[$name]['ticked'] = array( 'A' => 0, 'B' => 0, 'C' => 0, 'D' => 0, 'E' => 0, 'F' => 0, 'G' => 0);
+ break;
+ case 'tf':
+ $stats[$name]['ticked'] = array( 'TRUE' => 0, 'FALSE' => 0);
+ break;
+ default:
+ $stats[$name]['ticked'] = array();
+ break;
+ }
+ }
+
+ // Count right answers
+ if ($item['right'] > 0) {
+ // Save valid answer
+ if (is_null($stats[$name]['valid'])) {
+ switch ($stats[$name]['subtype']) {
+ case 'tf':
+ if ($item['ticked'] == 'A')
+ $stats[$name]['valid'] = 'TRUE';
+ else
+ $stats[$name]['valid'] = 'FALSE';
+ break;
+ case 'mc':
+ $stats[$name]['valid'] = $item['ticked'];
+ break;
+ case 'mcm':
+ $stats[$name]['valid'] = $item['ticked'];
+ break;
+ case 'open':
+ $stats[$name]['valid'] = 'n/a';
+ break;
+ default:
+ $stats[$name]['valid'] = 'n/a';
+ break;
+ }
+ }
+ }
+
+ // Count empty answers
+ if (empty($item['ticked'])) {
+ $stats[$name]['empty_count']++;
+ } else {
+ // Stats on non-empty answers
+ $stats[$name]['ticked_count']++;
+ if (strlen($item['ticked']) == 1) {
+ switch ($item['subtype']) {
+ case 'tf':
+ if ($item['ticked'] == 'A') $field = 'TRUE';
+ if ($item['ticked'] == 'B') $field = 'FALSE';
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], $field);
+ break;
+ case 'mc':
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], $item['ticked']);
+ break;
+ case 'mcm':
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], $item['ticked']);
+ break;
+ default:
+ $stats[$name]['ticked'] = $this->createAndIncrement($stats[$name]['ticked'], $item['ticked']);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ // Compute more stats
+ $tmp = array();
+ foreach ($stats as $name => $stat) {
+ // Calculate percentages
+ $ticked_percentage = array();
+ foreach ($stat['ticked'] as $t => $n) {
+ $ticked_percentage[$t] = array( 'n' => $n, '%' => (float)(100.0*$n/$stat['ticked_count']), 'valid' => (int)($t == $stat['valid']));
+ }
+ $stat['ticked'] = $ticked_percentage;
+ $tmp[$name] = $stat;
+ }
+ $stats = $tmp;
+
+ // Print CSV, by question, then teacher
+
+ //histo colors
+ $i = 0;
+ foreach($this->getTeachers() as $teacher){
+ $i++;
+ switch ($i) {
+ case 1: echo "\\newcommand{\\" . $teacher . "}{\\textbf{" . $teacher . "}} \n"; break;
+ case 2: echo "\\newcommand{\\" . $teacher . "}{{\color{red}\\textbf{" . $teacher . "}}} \n"; break;
+ case 3: echo "\\newcommand{\\" . $teacher . "}{{\color{blue}\\textbf{" . $teacher . "}}} \n"; break;
+ case 4: echo "\\newcommand{\\" . $teacher . "}{{\color{magenta}\\textbf{" . $teacher . "}}} \n"; break;
+ case 5: echo "\\newcommand{\\" . $teacher . "}{{\color{cyan}\\textbf{" . $teacher . "}}} \n"; break;
+ case 6: echo "\\newcommand{\\" . $teacher . "}{{\color{olive}\\textbf{" . $teacher . "}}} \n"; break;
+ case 7: echo "\\newcommand{\\" . $teacher . "}{{\color{orange}\\textbf{" . $teacher . "}}} \n"; break;
+ case 8: echo "\\newcommand{\\" . $teacher . "}{{\color{black}\\textbf{" . $teacher . "}}} \n "; break;
+ }
+ }
+ echo " \n";
+ //histo teachers present students
+ foreach($this->getTeachers() as $teacher){
+
+ echo "\\newcommand{\N" . $teacher . "}{" . $this->getTotStudentsByTeacher($teacher) . "} \n";
+ }
+ echo " \n";
+
+ $items = array();
+ foreach ($this->dataset[0]['items'] as $item){
+
+ if($item['subtype'] != 'open'){
+
+
+ echo "\inputFR{" . $item['name'] . ".tex} \n";
+
+ foreach($this->getTeachers() as $teacher){
+
+ foreach ($stats as $name => $stat) {
+// if($stat['teacher'] == $teacher){
+// echo $name . " - " . $item['name'];
+// }
+ //echo "[" . $stat['teacher'] . " - " . $teacher . " | " . $name . " - " . $item['name'] . "]";
+
+ if($stat['teacher'] == $teacher && explode(';',$name)[0] == $item['name']){
+
+ if (strpos($item['name'], 'TF') !== false) {
+ echo "\histoTF{\\" . $teacher . "}{\N" . $teacher . "}{" . $stat['ticked_count'] . "}";
+ }else{
+ echo "\histoQCM{\\" . $teacher . "}{\N" . $teacher . "}{" . $stat['ticked_count'] . "}";
+ }
+ foreach ($stat['ticked'] as $answer => $data) echo "{{$data['n']}}";
+ }
+ }
+ echo "\n";
+ }
+
+ echo "\n";
+ echo "\n";
+ }
+
+ }
+
+ }
+
+ public function sortByTotalPoints($update = true) {
+ if ($update) {
+ usort($this->dataset, "cmp_total");
+ return $this->dataset;
+ } else {
+ $dataset = $this->dataset;
+ usort($dataset, "cmp_total");
+ return $dataset;
+ }
+ }
+
+ public function getDataSet() {
+ return $this->dataset;
+ }
+
+ protected function createAndIncrement($table, $field, $increment = 1) {
+ if (!array_key_exists($field, $table)) {
+ $table[$field] = 0;
+ }
+ $table[$field] += $increment;
+ return $table;
+ }
+
+ public function getMarks() {
+ $marks = array();
+ foreach($this->dataset as $student) {
+ $tmp = array();
+
+ $tmp['teacher'] = $student['teacher'];
+ $tmp['ID'] = $student['ID'];
+ $tmp['SECTION'] = $student['SECTION'];
+ $tmp['exam_points'] = $student['exam_points'];
+ $tmp['total'] = $student['total'];
+ $tmp['present'] = $student['present'];
+ $tmp['SCIPER'] = $student['SCIPER'];
+ $tmp['quarter_mark6'] = $student['quarter_mark6'];
+ $marks[] = $tmp;
+ }
+ return $marks;
+ }
+
+ public function getTotStudentsByTeacher($teacher){
+ $nb_students = 0;
+ foreach($this->dataset as $student){
+ if($student['teacher'] == $teacher && $student['present']){
+ $nb_students++;
+ }
+ }
+ return $nb_students;
+ }
+
+ public function getQuestions() {
+ $questions = array();
+ foreach($this->dataset as $student) {
+ //print_r($student['items']);
+ $tmp = array();
+
+ $tmp['teacher'] = $student['teacher'];
+ $tmp['ID'] = $student['ID'];
+ $tmp['SECTION'] = $student['SECTION'];
+ $tmp['SCIPER'] = $student['SCIPER'];
+ if (!$student['present']) {
+ $tmp['present'] = "ABS";
+ } else {
+ $tmp['present'] = 1;
+ }
+ $tmp['exam_points'] = $student['exam_points'];
+ $tmp['total'] = $student['total'];
+ # Stats on questions
+ $tmp['nb_questions'] = count($student['items']);
+ $tmp['not_answered'] = 0;
+ $tmp['right'] = 0;
+ $tmp['wrong'] = 0;
+ foreach($student['items'] as $question) {
+ if (empty($question['ticked'])) {
+ // Question was not answered
+ $tmp['not_answered'] += 1;
+ } else {
+ if ($question['right']) $tmp['right'] += 1; else $tmp['wrong'] += 1;
+ }
+ }
+ $questions[] = $tmp;
+ }
+ return $questions;
+ }
+
+
+ public function getStats() {
+ $stats = array();
+
+ # Presence
+ $stats['presence'] = array();
+ $marks = array();
+ $stats['quarter_mark6'] = array( 'n' => 0, 'tot' => 0, 'average' => null, 'stddev' => null, 'median' => null);
+ foreach($this->dataset as $student) {
+
+ // Presence
+ $stats['presence'] = $this->createAndIncrement($stats['presence'], 'total');
+ switch ($student['type']) {
+ case 'student':
+ if ($student['present']) {
+ $stats['presence'] = $this->createAndIncrement($stats['presence'], 'present');
+ } else {
+ $stats['presence'] = $this->createAndIncrement($stats['presence'], 'absent');
+ }
+ break;
+ case 'unused':
+ $stats['presence'] = $this->createAndIncrement($stats['presence'], 'unsused');
+ break;
+ default:
+ $stats['presence'] = $this->createAndIncrement($stats['presence'], 'unknown');
+
+ }
+
+ // Average
+ if ($student['present']) $marks[] = $student['quarter_mark6'];
+ }
+ $stats['quarter_mark6']['n'] = count($marks);
+ if ($stats['quarter_mark6']['n'] > 0) {
+ $stats['quarter_mark6']['tot'] = array_sum($marks);
+ $stats['quarter_mark6']['average'] = $stats['quarter_mark6']['tot']/$stats['quarter_mark6']['n'];
+ $stats['quarter_mark6']['stddev'] = stats_standard_deviation($marks);
+ if (count($marks) >=3) {
+ sort($marks);
+ $stats['quarter_mark6']['median'] = $marks[round(count($marks)/2)];
+ } else {
+ $stats['quarter_mark6']['median'] = 'n/a';
+ }
+ } else {
+ $stats['quarter_mark6']['tot'] = 0;
+ $stats['quarter_mark6']['average'] = 0;
+ $stats['quarter_mark6']['stddev'] = 0;
+ $stats['quarter_mark6']['median'] = 0;
+ }
+
+ // Distribution (of marks)
+ $distribution = array();
+ for ($m = 1.0 ; $m <= 6.0 ; $m += 0.25) $distribution[(string)$m] = 0;
+ $stats['distribution_total'] = 0;
+ foreach ($marks as $mark) {
+ $distribution[(string)$mark]++;
+ $stats['distribution_total']++;
+ }
+ $stats['distribution'] = $distribution;
+ $stats['distribution_percentage'] = array();
+ if ($stats['quarter_mark6']['n']) {
+ foreach ($stats['distribution'] as $mark => $count) $stats['distribution_percentage'][$mark] = $count*100.0/$stats['distribution_total'];
+ } else {
+ $stats['distribution_percentage'] = $stats['distribution'];
+ }
+
+ return($stats);
+ }
+
+}
+
+?>