\section{Global Environment Options  \tkzname{alterqcm}}

\subsection{\tkzname{lq} : changing the width of the first column }
\IoptEnv{alterqcm}{lq}

\begin{alterqcm}[long,lq=110mm]
\AQquestion{Of the following proposals, which one allows of
 to assert that the exponential function admits for asymptote 
  the equation line $y = 0$ ?}
{{$\displaystyle\lim_{x \to +\infty} \text{e}^x = + \infty$},
{$\displaystyle\lim_{x \to -\infty} \text{e}^x = 0$},
{$\displaystyle\lim_{x \to +\infty} \dfrac{\text{e}^x}{x} = + \infty$}}

\AQquestion{exp$(\ln x) = x$ for any $x$ belonging to }
{{$\mathbb{R}$},
{$\big]0~;~+ \infty\big[$},
{$\big[0~;~+\infty\big[$}
}
\end{alterqcm}

\medskip
Let's look at the code needed to get this table. We need to place
\tkzcname{usepackage}\{alterqcm\} in the preamble. Note that only the width of the question column is provided |lq=100mm| and that this is optional. The number of propositions is here \textbf{3} but it can vary from one question to another.

\begin{tkzexample}[code only,small]
 \begin{alterqcm}[long,lq=110mm]
  \AQquestion{Of the following proposals, which one allows  of
  to assert that the exponential function admits for asymptote
    the equation line $y = 0$ ?}
  {{$\displaystyle\lim_{x \to +\infty} \text{e}^x = + \infty$},
  {$\displaystyle\lim_{x \to -\infty} \text{e}^x = 0$},
  {$\displaystyle\lim_{x \to +\infty} \dfrac{\text{e}^x}{x} = + \infty$}}
  
  \AQquestion[]{exp$(\ln x) = x$ for any $x$ belonging to }
  {{$\mathbb{R}$},
  {$\big]0~;~+ \infty\big[$},
  {$\big[0~;~+\infty\big[$}
  }
  \end{alterqcm}\end{tkzexample}



\subsection{\tkzname{pq} : global use }
 \IoptEnv{alterqcm}{pq}  

This time, it is necessary to move several questions, I placed a pq=2mm globally, that is to say like this~:

\tkzcname{begin\{alterqcm\}[lq=85mm,pq=2mm]}. 

\textbf{All} questions are affected by this option but some questions were well placed and should remain so, so locally I give them back a |pq=0mm|.

\medskip
\begin{alterqcm}[lq=85mm,pq=2mm]
\AQquestion{A bivariate statistical series. The values of $x$ are 1, 2, 5, 7, 11, 13 and a least squares regression line equation of $y$ to $x$ is $y = 1.35x +22.8$. The coordinates of the mean point are :}
{{$(6,5;30,575)$},
{$(32,575 ; 6,5)$},
{$(6,5 ; 31,575)$}}

\AQquestion{For any real $x$, the number \[\dfrac{\text{e}^x - 1}{\text{e}^x + 2}\hskip12pt \text{equal to :} \] }
{{$-\dfrac{1}{2}$},
{$\dfrac{\text{e}^{-x} - 1}{\text{e}^{-x} + 2}$},
{$\dfrac{1 - \text{e}^{-x}}{1 + 2\text{e}^{-x}}$}
}
\AQquestion{With I $= \displaystyle\int_{\ln 2}^{\ln 3} \dfrac{1}{\text{e}^x - 1}\,\text{d}x$ and J $ = \displaystyle\int_{\ln 2}^{\ln 3} \dfrac{\text{e}^x}{\text{e}^x - 1}\,\text{d}x$ \\ then the number I $-$ J equals}
{{$\ln \dfrac{2}{3}$},
{$\ln \dfrac{3}{2}$},
{$\dfrac{3}{2}$}
}
\end{alterqcm}

\begin{tkzexample}[code only,small]
 \begin{alterqcm}[lq=85mm,pq=2mm]
 \AQquestion{For any real $x$, the number \[\dfrac{\text{e}^x - 1}
 {\text{e}^x + 2}\hskip12pt \text{equal to :} \] }
 {{$-\dfrac{1}{2}$},
 {$\dfrac{\text{e}^{-x} - 1}{\text{e}^{-x} + 2}$},
 {$\dfrac{1 - \text{e}^{-x}}{1 + 2\text{e}^{-x}}$}}
 \end{alterqcm}
\end{tkzexample}


\subsection{\tkzname{TF} : True or False}
\IoptEnv{alterqcm}{TF}
V or F in french vrai ou faux !
There are only two proposals and the candidate must choose between \textbf{True} or \textbf{False} ou bien si vous préférez \textbf{Correct} and \textbf{Wrong}. This time the syntax has been streamlined. It is no longer necessary to write the list of proposals and it is enough to position \tkzname{VF} by placing in the options \tkzname{$VF$}.

 
\begin{minipage}[t][][b]{.45\linewidth}
Let $f$ be a function defined and derivable on the interval $\big[-3~;~+\infty\big[$, increasing over the intervals $\big[-3~;~-1\big]$ et $\big[2~;~+\infty\big[$ and decreasing over the interval $\big[-1~;~2\big]$.

 We note $f'$ its derivative function over the interval $[-3~;~+\infty[$.

The $\Gamma$ curve representative of the $f$ function is plotted below in an orthogonal coordinate system $\big(O,~\vec{\imath},~\vec{\jmath}\big)$.

It passes through point A$(-3~;~0)$ and admits for asymptote the $\Delta$ line of equation $y =  2x -5$.
\end{minipage}
\hfill
\begin{minipage}[t][][b]{.45\linewidth}
\null
\begin{tikzpicture}[scale=0.5,>=latex]
 \draw[very thin,color=gray] (-3,-2) grid (10,8);
 \draw[->] (-3,0) -- (10,0) node[above left] {\small $x$};
 \foreach \x in {-3,-2,-1,1,2,...,9}
    \draw[shift={(\x,0)}] (0pt,1pt) -- (0pt,-1pt)node[below] { $\x$};
 \draw[->] (0,-2) -- (0,8) node[below right] {\small $y$};
 \foreach \y/\ytext in {-2,-1,1,2,...,7}
    \draw[shift={(0,\y)}] (1pt,0pt) -- (-1pt,0pt) node[left] { $\y$};
 \draw (2,-1) -- (6,7);
 \node[above right] at (-3,0) {\textbf{A}};
 \node[above right] at (0,0) {\textbf{O}};
 \node[below right] at (4,3) {$\mathbf{\Delta}$};
 \node[above right] at (4,5) {$\mathbf{\Gamma}$};
 \draw plot[smooth] coordinates{%
 (-3,0)(-2,4.5)(-1,6.5)(0,5.5)(1,3.5)(2,3)(3,3.4)(4,4.5)(5,6)(6,7.75)};
\end{tikzpicture}
\end{minipage}
                     

\begin{alterqcm}[VF,lq=125mm]
 \AQquestion{For all $x \in ]-3~;~2],~f'(x) \geqslant 0$.}
 \AQquestion{The $F$ function has a maximum in $2$}
 \AQquestion{$\displaystyle\int_{0}^2 f'(x)\,\text{d}x = - 2$}
\end{alterqcm}

\begin{tkzexample}[code only, small]
 \begin{minipage}[t][][b]{.45\linewidth}
  Let $f$ be a function defined and derivable on the interval $\big[-3~;~+\infty\big[$,
   increasing over the interval $\big[-3~;~-1\big]$ and $\big[2~;~+\infty\big[$
   and decreasing over the interval $\big[-1~;~2\big]$.
  
   We note $f'$ its derivative function over the interval $[-3~;~+\infty[$.
  
 The $\Gamma$ curve representative of the $f$ function is plotted below
   in an orthogonal system $\big(O,~\with{\imath},~\jmath}\big)$.
  
  It passes through the point A$(-3~;~0)$ and admits for asymptote the line
  $\Delta$ of equation $y = 2x -5$.
 \end{minipage}
 \begin{minipage}[t][][b]{.45\linewidth}
 \null
\begin{tikzpicture}[scale=0.5,>=latex]
  \draw[very thin,color=gray] (-3,-2) grid (10,8);
  \draw[->] (-3,0) -- (10,0) node[above left] {\small $x$};
  \foreach \x in {-3,-2,-1,1,2,...,9}
     \draw[shift={(\x,0)}] (0pt,1pt) -- (0pt,-1pt)node[below] { $\x$};
  \draw[->] (0,-2) -- (0,8) node[below right] {\small $y$};
  \foreach \y/\ytext in {-2,-1,1,2,...,8}
     \draw[shift={(0,\y)}] (1pt,0pt) -- (-1pt,0pt) node[left] { $\y$};
  \draw (-0.5,-2) -- (10,8);
  \node[above right] at (-3,0) {\textbf{A}};
  \node[above right] at (0,0) {\textbf{O}};
  \node[below right] at (4,3) {$\mathbf{\Delta}$};
  \node[above right] at (4,5) {$\mathbf{\Gamma}$};
  \draw plot[smooth] coordinates{%
  (-3,0)(-2,4.5)(-1,6.5)(0,5.5)(1,3.5)(2,3)(3,3.4)(4,4.5)(5,6)(6,7.75)};
 \end{tikzpicture}
 \end{minipage}
 \begin{alterqcm}[VF,lq=125mm]
   \AQquestion{For all $x \in ]-\infty~;~2],~f'(x) \geqslant 0$.}
   \AQquestion{The $F$ function has a maximum in $2$}
   \AQquestion{$\displaystyle\int_{0}^2 f'(x)\:\text{d}x = - 2$}
 \end{alterqcm}
\end{tkzexample}

\subsection{\tkzname{symb} : symbol change } 
\IoptEnv{alterqcm}{symb}

 If your fonts don't have the symbol |$\square$| or |$\blacksquare$| you can use the one provided by the package or create one yourself. \tkzcname{altersquare}, \tkzcname{dingsquare} and \tkzcname{dingchecksquare} are provided by alterqcm.
  Here is how these macros are defined.
  
\begin{tkzexample}[code only,small]
 \newcommand*{\altersquare}{\mbox{\vbox{\hrule\hbox to 6pt{\vrule height 5.2pt \hfil\vrule}\hrule}}}\end{tkzexample}

\medskip you either get \altersquare\ or... :

\begin{tkzexample}[code only,small]
 \newcommand*{\dingsquare}{\ding{114}} \end{tkzexample}

\medskip which results in \dingsquare\ and finally to replace |$\blacksquare$| 

\begin{tkzexample}[code only,small]
 \newcommand*{\dingchecksquare}{\mbox{\ding{114}%
 \hspace{-.7em}\raisebox{.2ex}[1ex]{\ding{51}}}} \end{tkzexample}

\medskip Let it be \dingchecksquare\ as a result. 


\begin{tkzexample}[code only,small] 

 \begin{alterqcm}[lq=90mm,symb=\altersquare]
 ... \end{alterqcm}\end{tkzexample}

\medskip
Full example :

\medskip
\begin{tkzexample}[vbox]
 \begin{alterqcm}[VF,lq=125mm,symb    = \dingsquare]
 \AQquestion{For all $x \in ]-3~;~2],~f'(x) \geqslant 0$.}
 \AQquestion{The $F$ function has a maximum in $2$}
 \AQquestion{$\displaystyle\int_{0}^2 f'(x)\:\text{d}x = - 2$}
 \end{alterqcm}\end{tkzexample}
  

\subsection{\tkzname{pre, bonus, malus} : automatic presentation }
\IoptEnv{alterqcm}{pre}\IoptEnv{alterqcm}{bonus}\IoptEnv{alterqcm}{malus}
As you can see below, a presentation is given of the exercise with the grading.

\bigskip
\begin{minipage}[c][][t]{.45\linewidth}
\begin{tkzexample}[code only,small]
  \begin{alterqcm}[lq=6cm,pre=true,bonus=1,malus={0,5}]
  \AQquestion{Question}
  {{Proposition 1},
   {Proposition 2}}
  \end{alterqcm}\end{tkzexample}
\end{minipage}\hfill
\begin{minipage}[c][][t]{.45\linewidth}
  \begin{alterqcm}[lq=3cm,pre=true,bonus=1,malus={0,5}]
  \AQquestion{Question}
  {{Proposition 1},
   {Proposition 2}}
  \end{alterqcm}
\end{minipage}

\vspace{1cm} 

\subsection{\tkzname{sep} : rule between proposals}
\IoptEnv{alterqcm}{sep}

\tkzname{sep=true} creates a rule between the proposals.

\begin{minipage}[c][][t]{.45\linewidth}
\begin{tkzexample}[code only,small]
  \begin{alterqcm}[lq=3cm,sep=true]
  \AQquestion{Question}
    etc..
\end{alterqcm}\end{tkzexample}
\end{minipage}\hfill
\begin{minipage}[c][][t]{.45\linewidth}
  \begin{alterqcm}[lq=3cm,sep=true]
  \AQquestion{Question}
  {{Proposition 1},
   {Proposition 2}}
  \end{alterqcm}
\end{minipage}

\subsection{\tkzname{num, numstyle} : deletion and style of numbering }
\IoptEnv{alterqcm}{num}\IoptEnv{alterqcm}{numstyle}
\subsubsection{\tkzname{num=false}}
\tkzname{num=false} makes the numbering of the questions disappear.

\begin{minipage}[c][][t]{.45\linewidth}
\begin{tkzexample}[code only, small]
  \begin{alterqcm}[lq=3cm,num=false]
    \AQquestion{Question}
     etc...
  \end{alterqcm}
\end{tkzexample}
\end{minipage}\hfill
\begin{minipage}[c][][t]{.45\linewidth}
  \begin{alterqcm}[lq=3cm,num=false]
  \AQquestion{Question}
  {%
  {Proposition 1},
  {Proposition 2}}
  \end{alterqcm}
\end{minipage}   

\subsubsection{\tkzname{numstyle}}   

\tkzname{numstyle}=\tkzcname{alph} changes the style of question numbering. The usual styles are valid here.

\begin{minipage}[c][][t]{.45\linewidth}
\begin{tkzexample}[code only, small]
 \begin{alterqcm}[lq=3cm,numstyle=\alph]
   \AQquestion{Question}
   etc...
 \end{alterqcm}
\end{tkzexample}  
\end{minipage}
\hfill
\begin{minipage}[c][][t]{.45\linewidth}
  \begin{alterqcm}[lq=3cm,numstyle=\alph]
  \AQquestion{Question}
  {%
  {Proposition 1},
  {Proposition 2}}
  \end{alterqcm}
\end{minipage}       
 
\subsection{\tkzname{title, tone, ttwo} : deletion and modification of the title line }
\IoptEnv{alterqcm}{title}\IoptEnv{alterqcm}{tone}\IoptEnv{alterqcm}{ttwo}

\tkzname{title=false} deletes the column headings.

\begin{minipage}[c][][t]{.45\linewidth}
\begin{tkzexample}[code only,vbox]
  \begin{alterqcm}[lq=3cm,title=false]
  \AQquestion{Question}
  etc...
  \end{alterqcm}\end{tkzexample}
\end{minipage}\hfill
\begin{minipage}[c][][t]{.45\linewidth}
  \begin{alterqcm}[lq=3cm,title=false]
  \AQquestion{Question}
  {%
  {Proposition 1},
  {Proposition 2}%
  }
  \end{alterqcm}
\end{minipage}
                      

\medskip
\tkzname{tone=titre n°1} and \tkzname{ttwo=titre n°2} change the table headers

\begin{minipage}[c][][t]{.45\linewidth}
\begin{tkzexample}[code only]
  \begin{alterqcm}[lq=3cm,tone=titre n°1,ttwo=titre n°2]
  \AQquestion{Question}
  etc...
  \end{alterqcm}\end{tkzexample}
\end{minipage}\hfill
\begin{minipage}[c][][t]{.45\linewidth}
  \begin{alterqcm}[lq = 3cm,tone = titre n°1,ttwo = titre n°2]
  \AQquestion{Question}
  {{Proposition 1},
   {Proposition 2}
  }
  \end{alterqcm}
\end{minipage}

\subsection{\tkzname{noquare} : square suppression }
\IoptEnv{alterqcm}{nosquare}

\tkzname{nosquare=true} fait disparaître le carré ou encore la numérotation des propositions.

\begin{minipage}[c][][t]{.45\linewidth}
\begin{tkzexample}[code only,small]
  \begin{alterqcm}[lq=3cm,nosquare=true]
  \AQquestion{Question}
  etc...
  \end{alterqcm}\end{tkzexample}
\end{minipage}\hfill
\begin{minipage}[c][][t]{.45\linewidth}
  \begin{alterqcm}[lq=3cm,nosquare=true]
  \AQquestion{Question}
  {%
  {Proposition 1},
  {Proposition 2}
  }
  \end{alterqcm}
\end{minipage}

\medskip
\tkzname{numprop=true} number the proposals and \tkzname{propstyle= ...} changes the numbering style.

Default, \tkzname{propstyle=\textbackslash alph}

\begin{minipage}[c][][t]{.45\linewidth}
\begin{tkzexample}[code only,small]
  \begin{alterqcm}[lq=3cm,numprop   = true,propstyle = \Roman]
  \AQquestion{Question}
  etc...
  \end{alterqcm}\end{tkzexample}
\end{minipage}\hfill
\begin{minipage}[c][][t]{.45\linewidth}
  \begin{alterqcm}%
  [lq=3cm,
   numprop   = true,
   propstyle = \Roman]
  \AQquestion{Question}
  {%
  {Proposition 1},
  {Proposition 2}%
  }
  \end{alterqcm}
\end{minipage}

\subsection{\tkzname{alea} : random positioning of proposals }
\IoptEnv{alterqcm}{alea}

It is preferable between two compilations to delete the auxiliary files.

\textcolor{red}{\lefthand} Be careful, in random mode, it is not possible to obtain an answer corresponding to the initial assignment.

\begin{tkzexample}[small]
 \begin{alterqcm}[lq=55mm,alea]
 \AQquestion[pq=1mm]{If the $f$ function is strictly increasing on  $\mathbf{R}$ then the equation $f(x) = $0 admits :}
 {{At least one solution},%
 {At most one solution},%
 {Exactly one solution}}
 \end{alterqcm}
\end{tkzexample}

\subsection{\tkzname{english}, \tkzname{german}, \tkzname{greek}, \tkzname{italian}, \tkzname{russian}, \tkzname{chinese}\ and \tkzname{unknown} : language change }
\IoptEnv{alterqcm}{english}\IoptEnv{alterqcm}{german}\IoptEnv{alterqcm}{french}

The order given above is that of creation.
Thanks to Apostolos Syropoulos and Anastasios Dimou for enabling the use of Greek language.

 \begin{tkzexample}[code only,small]
 \begin{alterqcm}[language=french,lq=55mm,alea] 
 \end{tkzexample}

 \begin{alterqcm}[language=french,lq=55mm,alea]
 \AQquestion[pq=1mm]{If the $f$ function is strictly increasing on $\mathbf{R}$
 then the equation equation $f(x) = $0 admits...}
 {{At least one solution},%
 {At most one solution},%
 {Exactly one solution}}
 \end{alterqcm}

 \begin{tkzexample}[code only,small]
 \begin{alterqcm}[language=german,lq=55mm,alea]  \end{tkzexample}

\begin{alterqcm}[language=german,lq=55mm,alea]
\AQquestion[pq=1mm]{Wenn die Funktion $f$ %
 auf $\mathbf{R}$ streng monoton wächst, dann
hat die Gleichung $f(x) = 0$:}
{{mindestens ein Lösung},%
{höchstens eine Lösung},%
{genau eine Lösung}}
\end{alterqcm}


\begin{alterqcm}[language=chinese,VF,lq=125mm,symb = \dingsquare,pre=true]
\def\aq@pre{对于以下提出的各个问题，仅有一个答案是正确的，请选择你认为正确的答案（不需要提供理由）。}
  \AQquestion{$x \in ]-3~;~2]$的情形下，$f'(x) \geq 0$。}
  \AQquestion{$F$ 函数的最大值为$2$。}
  \AQquestion{$\displaystyle\int_{0}^2 f’(x)\:\text{d}x = - 2$}
  \end{alterqcm}

  \begin{alterqcm}[language=chinese,pre=true]
  \AQquestion{问题}{%
  {选择1},
  {选择2},
  {选择3}}
  \end{alterqcm}


There's a section devoted solely to the "greek" option.


How to use \tkzname{unknown} : You need to call the package with the option "unknown" then yo need to redefine some macros. 

\begin{tkzexample}[code only,small]
\usepackage[unknown]{alterqcm}
% userdefined language: unknown=spanish
\def\aqlabelforquest{Preguntas}%
\def\aqlabelforrep{Respuestas}%
\def\aqtextfortrue{\textbf{V}}
\def\aqtextforfalse{\textbf{F}}
\def\txttv{V}% V(erdadero)
\def\txttf{F}% F(also)
\def\aqfoottext{Continúa en la página siguiente\dots}
\def\aqpretxt{\vspace*{6pt}Para cada una de las preguntas siguientes, sólo una de las respuestas propuestas es verdadera. Debe elegir la respuesta correcta sin justificación.}%
\def\aqpretxtVF{Para cada una de las afirmaciones de abajo, marque la casilla \textbf{V} (la afirmación es verdadera) o la casilla \textbf{F} (la afirmación es falsa).}%

\begin{alterqcm}[language=unknown]
 \AQquestion{Question}{%
 {Proposition 1},
 {Proposition 2},
 {Proposition 3}}
\end{alterqcm}

 \end{tkzexample}
\begingroup
\def\aqlabelforquest{Preguntas}%
\def\aqlabelforrep{Respuestas}%
\def\aqtextfortrue{\textbf{V}}
\def\aqtextforfalse{\textbf{F}}
\def\txttv{V}% V(erdadero)
\def\txttf{F}% F(also)
\def\aqfoottext{Continúa en la página siguiente\dots}
\def\aqpretxt{\vspace*{6pt}Para cada una de las preguntas siguientes, sólo una de las respuestas propuestas es verdadera. Debe elegir la respuesta correcta sin justificación.}%
\def\aqpretxtVF{Para cada una de las afirmaciones de abajo, marque la casilla \textbf{V} (la afirmación es verdadera) o la casilla \textbf{F} (la afirmación es falsa).}%
 
 \begin{alterqcm}[language=unknown]
  \AQquestion{Question}{%
  {Proposition 1},
  {Proposition 2},
  {Proposition 3}}
 \end{alterqcm}
  \endgroup
 
 
\newpage
\subsection{\tkzname{long} : use of longtable}
\IoptEnv{alterqcm}{long}\Ienv{longtable}

A table can arrive at the end of the page and be cut or simply be very long.
This option allows you to use instead of a \tkzname{tabular} an environnement \tkzname{longtable}.


Here is an example from Pascal Bertolino.

\begin{alterqcm}[lq=80mm,long]

%--------------------------------------------------------------
\AQquestion{What was the precursor language of the C language?}
{{Fortran},
 {language B},
 {Basic}}

%--------------------------------------------------------------
\verbdef\argprop|int a = 3 ^ 4 ;|
\AQquestion{\argprop}
{{raises 3 to the power of 4},
 {makes an exclusive OR between 3 and 4},
 {is not a C}}

%--------------------------------------------------------------
\AQquestion{What is the correct syntax to shift the integer 8 bits to the left? \texttt{a} ?}
{{\texttt{b = lshift(a, 8) ;}},
 {\texttt{b = 8 << a ;}},
 {\texttt{b = a << 8 ;}}}

%--------------------------------------------------------------
\verbdef\argprop|{ printf ("hello") ; return 0 ; \}|
\AQquestion{The complete program :  \\
            \texttt{int main() \\
            ~~\argprop}}
{{display \texttt{hello}},
 {gives an error to the compilation},
 {gives an error in execution}}

%--------------------------------------------------------------
\verbdef\arg|float tab[10]|
\verbdef\propa|*tab|\global\let\propa\propa
\verbdef\propb|&tab|\global\let\propb\propb
\verbdef\propc|tab|\global\let\propc\propc
\AQquestion{Let's say the statement \arg ; \\The first real in the table is \ldots}
{{\propa},
 {\propb},
 {\propc}}

%--------------------------------------------------------------
\AQquestion{The line \texttt{printf("\%c", argv[2][0]) ;} of \texttt{main} of  \texttt{monProg} run like this :
\texttt{monProg parametre }}
{{displays \texttt{p}},
 {displays nothing},
 {can cause a crash}}
%--------------------------------------------------------------
\AQquestion{What is the memory size of a \texttt{long int} ?}
{{4 octets},
 {8 octets},
 {it depends \ldots}}
%--------------------------------------------------------------
\AQquestion{Following the declaration \texttt{int * i} ;}
{{\texttt{*i} is an address},
 {\texttt{*i} is an integer},
 {\texttt{*i} is a pointer}}
%--------------------------------------------------------------
\AQquestion{One of the following choices is not a standard library of the C}
{{\texttt{stdlib}},
 {\texttt{stdin}},
 {\texttt{math}}}
 %--------------------------------------------------------------
\end{alterqcm}

The beginning of the code is simply

\begin{tkzltxexample}[small]
  \begin{alterqcm}[lq=80mm,long]
  \AQquestion{What was the precursor language of the C language?}
  {{Fortran},
   {language B},
   {Basic}}
  \end{alterqcm}
\end{tkzltxexample}

\medskip
It is possible to modify the text that is placed at the end of the table. Just modify the command \tkzcname{aqfoottext}.

\begin{tkzltxexample}[small]
 \def\aqfoottext{continued on next page\ldots}
\end{tkzltxexample}

\subsection{\tkzname{numbreak} : split a mcq }
This option allows either to continue the numbering of the previous table.
This option was necessary before the use of the \tkzname{long} option.
 for tables split by a page break. It can now be used
  for a series of tables grouped together to obtain a single MCQ.

\begin{alterqcm}[lq=80mm,title=false,num=false,long]
  \AQquestion{What was the precursor language of the C language?}
  {{Fortran},
   {language B},
   {Basic}}

\verbdef\argprop|int a = 3 ^ 4 ;|
\AQquestion{\argprop}
  {{raises 3 to the power of 4},
   {makes an exclusive OR between 3 and 4},
   {is not a C-instruction}}
\end{alterqcm}

\begin{alterqcm}[lq=80mm,title=false,num=false,numbreak=2,long]
\AQquestion{After the declaration \texttt{int * i} ;}
{{\texttt{*i} is an address},
 {\texttt{*i} is an integer},
 {\texttt{*i} is a pointer}}

\AQquestion{One of the following choices is not a standard C library}
{{\texttt{stdlib}},
 {\texttt{stdin}},
 {\texttt{math}}}
\end{alterqcm}

the code for the beginning is :

\begin{tkzltxexample}[small]
  \begin{alterqcm}[lq=80mm,title=false,num=false,long]
  \AQquestion{What was the precursor language of the C language?}
  {{Fortran},
   {language B},
   {Basic}}

  \verbdef\argprop|int a = 3 ^ 4 ;|
  \AQquestion{\argprop}
  {{raises 3 to the power of 4},
   {makes an exclusive OR between 3 and 4},
   {is not a C-instruction}}
  \end{alterqcm}
\end{tkzltxexample}

For the second part, we set \tkzname{numbreak} to $2$ because the first board had $2$ questions. In a future version, we will not have to count the questions anymore.

\begin{tkzltxexample}[small]
  \begin{alterqcm}[lq=80mm,title=false,num=false,numbreak=2,long]
  \AQquestion{Following the declaration \texttt{int * i} ;}
  {{\texttt{*i} is an address},
   {\texttt{*i} is an integer},
   {\texttt{*i} is a pointer}}

  \AQquestion{One of the following choices is not a standard C library}
  {{\texttt{stdlib}},
   {\texttt{stdin}},
   {\texttt{math}}}
  \end{alterqcm}
\end{tkzltxexample}

\subsection{\tkzname{correction} : Correction of a mcq}
 \IoptEnv{alterqcm}{correction}

 It is possible to create an answer key by using the \tkzname{correction} option and indicating the correct answer(s) using a local parameter \tkzname{br}.
 Here is an example:

 \begin{alterqcm}[VF,lq=125mm,correction,
                  symb    = \dingsquare,
                  corsymb = \dingchecksquare]
 \AQquestion[br=1]{For all $x \in ]-3~;~2],~f'(x) \geqslant 0$.}
 \AQquestion[br=2]{The $F$ function has a maximum in $2$}
 \AQquestion[br=2]{$\displaystyle\int_{0}^2 f'(x)\:\text{d}x = - 2$}
 \end{alterqcm}

 \begin{tkzltxexample}[]
  \begin{alterqcm}[VF,lq=125mm,correction,
                   symb    = \dingsquare,
                   corsymb = \dingchecksquare]
  \AQquestion[br=1]{For all $x \in ]-3~;~2],~f'(x) \geqslant 0$.}
  \AQquestion[br=2]{The $F$ function has a maximum in $2$}
  \AQquestion[br=2]{$\displaystyle\int_{0}^2 f'(x)\:\text{d}x = - 2$}
  \end{alterqcm}
\end{tkzltxexample}

\subsection{Modification du symbole \tkzname{corsymb}}
 \IoptEnv{alterqcm}{corsymb}

\tkzcname{dingchecksquare} is provided by alterqcm.
 Here is how this macro is defined.

\begin{tkzexample}[code only,small]
 \newcommand*{\dingchecksquare}{\mbox{\ding{114}%
 \hspace{-.7em}\raisebox{.2ex}[1ex]{\ding{51}}}} \end{tkzexample}

\medskip Let's consider checksquare as a result.

\begin{tkzexample}[code only,small]
 \begin{alterqcm}[lq=90mm,symb=\altersquare,corsymb=\dingchecksquare]
   ...
 \end{alterqcm}
\end{tkzexample}

\medskip
Full example :

\medskip
 \begin{alterqcm}[VF,lq=125mm,correction,
                  symb    = \dingsquare,
                  corsymb = \dingchecksquare]
 \AQquestion[br=1]{For all $x \in ]-3~;~2],~f'(x) \geqslant 0$.}
 \AQquestion[br=2]{The $F$ function has a maximum in $2$}
 \AQquestion[br=2]{$\displaystyle\int_{0}^2 f'(x)\:\text{d}x = - 2$}
 \end{alterqcm}


\begin{tkzexample}[code only]
 \begin{alterqcm}[VF,lq=125mm,correction,
                  symb    = \dingsquare,
                  corsymb = \dingchecksquare]
 \AQquestion[br=1]{For any $x \in ]-3~;~2],~f'(x) \geqslant 0$.}
 \AQquestion[br=2]{The $F$ function has a maximum in $2$}
 \AQquestion[br=2]{$\displaystyle\int_{0}^2 f'(x)\:\text{d}x = - 2$}
 \end{alterqcm}
\end{tkzexample}

\subsection{\tkzname{br=\{\ldots\}} : corrected with several correct answers}
\Iopt{AQquestion}{br}

A list of correct answers is given
\begin{tkzexample}[vbox,small]
\begin{alterqcm}[correction]
\AQquestion[br={1,3}]{Question}
{%
{Proposition 1},
{Proposition 2},
{Proposition 3}%
}
\end{alterqcm}
\end{tkzexample}

\subsection{\tkzname{transparent} : creation of a transparent slide showing the answers.}
 \IoptEnv{alterqcm}{transparent}

 This macro makes it possible to create a document identical to the original but without the questions and with a circle indicating the good proposals.

 \begin{tkzexample}[vbox,small]
 \begin{alterqcm}[transparent,correction,corsymb=\dingchecksquare,lq=100mm]
 \AQquestion[br=2,pq=3mm]{Which of the following proposals is that
  which allows us to affirm that the exponential function admits for asymptote  the equation line  $y = 0$ ?}
 {{$\displaystyle\lim_{x \to +\infty} \dfrac{\text{e}^x}{x} = + \infty$},
 {$\displaystyle\lim_{x \to +\infty} \text{e}^x = + \infty$},
 {$\displaystyle\lim_{x \to -\infty} \text{e}^x = 0$}
 }

 \AQquestion[br={1,3}]{exp$(\ln x) = x$ for any $x$ belonging to }
 {{$\mathbf{R}$},
 {$\big]0~;~+ \infty\big[$},
 {$\big[0~;~+\infty\big[$}
 }

 \AQquestion[br={1,2}]{exp$(\ln x) = x$ for any $x$ belonging to }
 {{$\mathbf{R}$},
 {$\big]0~;~+ \infty\big[$},
 {$\big[0~;~+\infty\big[$}
 }\AQquestion[br=2,pq=3mm]{Which of the following proposals is that
  which allows us to affirm that the exponential function admits for asymptote
  the equation line $y = 0$ ?}
 {{$\displaystyle\lim_{x \to +\infty} \dfrac{\text{e}^x}{x} = + \infty$},
 {$\displaystyle\lim_{x \to +\infty} \text{e}^x = + \infty$},
 {$\displaystyle\lim_{x \to -\infty} \text{e}^x = 0$}
 }
 \end{alterqcm}
\end{tkzexample}
\endinput