%!TEX root = /Users/ego/Boulot/Alterqcm/doc/doc_aq-main.tex     
\section{Les outils : L' environnement \tkzname{alterqcm} et la macro  \tkzcname{AQquestion}}
\subsection{L' environnement \tkzname{alterqcm}}


\bigskip
\begin{NewEnvBox}{alterqcm} 

\noindent Voici la liste des \tkzname{options} disponibles classées par catégories.

\medskip
\begin{tabular}{@{}Il Il Il@{}} 
	\toprule
	\thead
Options                &Défaut          & Définition                                \\ \midrule
\tbody
\multicolumn{2}{c}{\emph{\texttt{Dimensions}}} \\ \cmidrule(r){1-2}
\TOenvline{lq}        {100mm}  {largeur de la colonne question            }
\TOenvline{pq}        {0pt}    {déplacement vertical de la question       } \cmidrule(r){1-2}
\multicolumn{2}{c}{\emph{\texttt{Nombres}}} \\ \cmidrule(r){1-2}
\TOenvline{bonus}     {{0,5}}  {points attribués à une bonne réponse      }
\TOenvline{malus}     {{0,25}} {points attribués à une mauvaise réponse   }
\TOenvline{numbreak}  {0}    {pour reprendre un tableau scindé          }
\TOenvline{points}  {empty}{ points attribués au qcm dans la marge} \cmidrule(r){1-2}
\multicolumn{2}{c}{\emph{\texttt{Macros}}} \\ \cmidrule(r){1-2}
\TOenvline{symb}      {\$\BS square\$} {symbole devant la proposition     }
\TOenvline{corsymb}{\$\BS blacksquare\$}{symbole devant la proposition    }
\TOenvline{numstyle}  {\BS arabic} {style de la numérotation des questions  }
\TOenvline{propstyle} {\BS alph} {style de la numérotation des propositions }
\TOenvline{size}  {\BS normalsize} {taille de la fonte           }
\TOenvline{afterpreskip}{\BS medskip} {skip après la présentation  }  
\cmidrule(r){1-2}
\multicolumn{2}{c}{\emph{\texttt{Booléens}}} \\ \cmidrule(r){1-2}
\TOenvline{long}      {true}     {longtable à la place de tabular   }
\TOenvline{sep}       {true}  {filet de séparation entre les propositions}
\TOenvline{pre}       {false}  {présentation du QCM          }
\TOenvline{VF}        {false}  {QCM sous la forme Vrai ou Faux }
\TOenvline{numprop}   {false}  {numérotation des propositions    }
\TOenvline{num}       {true}   {style de la numérotation des questions  }
\TOenvline{nosquare}  {false}   {suppression du carré des propositions     }
\TOenvline{title}     {false} {suppression des titres                    }
\TOenvline{correction}{false} {permet de créer un corrigé                }
\TOenvline{alea}      {false}  {placer des propositions aléatoirement     } \cmidrule(r){1-2}
\multicolumn{2}{c}{\emph{\texttt{Textes}}} \\ \cmidrule(r){1-2}
\TOenvline{tone}     {Questions} {titre colonne 1                           }
\TOenvline{ttwo}     {R\'eponses} {titre colonne 2     } 
\TOenvline{language}  {french}  {french, english ou german   }
 \bottomrule
\end{tabular}

\medskip

\emph{Il suffit donc pour créer un \textcolor{red}{\texttt{QCM}} d'utiliser un environnement \textcolor{red}{\texttt{alterqcm}} ainsi que la macro \textcolor{red}{ \addbs{AQquestion}} définie dans la section suivante.}
\end{NewEnvBox} 

\newpage
\subsection{La commande \tkzcname{AQquestion}} 
\Imacro{AQquestion}

\begin{NewMacroBox}{AQquestion}{\oarg{local options}{\var{quest}}\{{\var{$\mathrm{prop}_1$}},\ldots,{\var{$\mathrm{prop}_n$}}\}}
Cette macro utilise deux arguments, le premier définit la question, le second est une liste qui définit les propositions.

\medskip
\begin{tabular}{@{}Il Il Il@{}}  \toprule \thead
arguments                 & défaut           & définition    \\ 
\midrule
\tbody
\TAline{quest}  {}     {définition de la question}          
\TAline{$\mathrm{prop}_i$}  {}     {i\ieme\ proposition}       \bottomrule
\end{tabular}

\medskip
Voici la liste des options liées à cette macro.

\medskip
\begin{tabular}{@{}Il Il Il@{}}  \toprule \thead
options                 & défaut           & définition                    \\ \midrule
\tbody
\TOline{pq}  {0pt}     {ajustement de la position de la question}   
\TOline{br}  {1  }     {liste de rangs des bonnes réponses  }           \bottomrule
\end{tabular}
  
\medskip

\end{NewMacroBox}
 
\subsection{Utilisation : premier exemple}

Il suffit d'utiliser un environnement \tkzname{alterqcm} et la macro \tkzcname{AQquestion}, voici un exemple :


 \noindent
\begin{minipage}[c][][t]{.40\linewidth}  
\begin{tkzexample}[code only,small]
 \documentclass[12pt]{article}
 \usepackage[utf8]{inputenc}
 \usepackage[upright]{fourier}
 %\usepackage[T1]{fontenc}
 %\usepackage{lmodern}
 \usepackage{alterqcm}
 \usepackage{fullpage}
 %\usepackage{longtable} 
 % nécessaire pour l'option "long"
 \usepackage[frenchb]{babel}
 \parindent0pt
 \begin{document}
 \begin{alterqcm} 
  \AQquestion{Question}{% 
  {Proposition 1},
  {Proposition 2},
  {Proposition 3}}
 \end{alterqcm}
 \end{document}\end{tkzexample}
\end{minipage}\hfill \noindent  
\begin{minipage}[c][][b]{.50\linewidth}
\textbf{alterqcm.sty} crée un nouvel environnement \textbf{alterqcm} qui permet l'obtention d'un tableau à deux colonnes. La colonne de gauche pour les questions, l'autre pour les différentes propositions.  Les propositions sont données dans une liste :

\tkzname{\{\{Proposition 1\},\\\{Proposition 2\},\\\{Proposition 3\}\}}.

 Le nombre de propositions est compris entre \tkzname{2} et \tkzname{5}.
\end{minipage}

\medskip
Ce qui donne comme résultat :

\bigskip
  \begin{alterqcm}
  \AQquestion{Question}
  {%
  {Proposition 1},
  {Proposition 2},
  {Proposition 3}%
  }
  \end{alterqcm}

\medskip
 La largeur totale du tableau est égale à \tkzcname{textwidth}. Par défaut la  colonne question a pour largeur \tkzname{100mm} plus quelques millimètres ... introduits par le tableau. La largeur des réponses est égale à \tkzcname{textwidth} diminuée de la largeur de la première colonne. \Imacro{textwidth}

Le point important est que la hauteur des lignes des propositions soit calculée automatiquement afin, d'une part, que le texte des propositions soit placé correctement sans toucher les filets et d'autre part, que le texte de la question correspondante puisse être inclus dans sa case. Un positionnement précis est obtenu avec l'option \tkzname{pq}.  

\subsection{Packages chargés par \tkzname{alterqcm.sty}}
La liste des packages chargés est la suivante :

\begin{tkzexample}[code only]
	\RequirePackage{xkeyval}[2005/11/25]
	\RequirePackage{calc}
	\RequirePackage{ifthen,forloop}
	\RequirePackage{array}
	\RequirePackage{multirow}
	\RequirePackage{pifont}
\end{tkzexample}
\NamePack{xkeyval}\NamePack{calc}\NamePack{ifthen}\NamePack{forloop}\NamePack{array}\NamePack{multirow}
\NamePack{pifont}

Il vous sera nécessaire de charger \tkzname{longtable.sty} si vous souhaitez utiliser l'option \tkzname{long} pour un de vos tableaux. Vous avez besoin aussi de la macro \tkzcname{square}, elle est soit définie dans le package \tkzname{fourier}, soit dans le package \tkzname{amsmath}.\NamePack{amsmath}\NamePack{fourier}.


 \subsection{Utilisation de l'environnement \tkzname{minipage} pour modifier la largeur du tableau}
\Ienv{minipage}

\begin{minipage}[c][][t]{.3\linewidth}
\begin{tkzltxexample}[small]

 \begin{center}
 \begin{minipage}{9cm}
  \begin{alterqcm}[lq=5cm]
    ...
  \end{alterqcm}
 \end{minipage}
 \end{center}
\end{tkzltxexample}
\end{minipage}\hfill 
\begin{minipage}[c][][t]{.6\linewidth}
\begin{alterqcm}[lq=5cm]
\AQquestion{Parmi les propositions suivantes, quelle est celle qui permet%
 d'affirmer que la fonction exponentielle  admet pour asymptote la droite%
  d'équation $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$ pour tout $x$ appartenant à }
{%
{$\mathbf{R}$},%
{$\big]0~;~+ \infty\big[$},%
{$\big[0~;~+\infty\big[$}%
}\end{alterqcm}
\end{minipage} 
% 


\subsection{Modification temporaire de \tkzcname{textwidth}}
\Imacro{textwidth}
 Il est possible d'utiliser des tableaux ainsi que d'autres structures dans le code de la question ou encore des propositions. Voici un exemple :
\newlength{\oldtextwidth}

\begin{tkzltxexample}[small]
	\newlength{\oldtextwidth}
\end{tkzltxexample}

\medskip
	\setlength{\oldtextwidth}{\textwidth}
	\setlength{\textwidth}{14cm}
\begin{alterqcm}[lq=88mm,symb=$\Box$]
 \AQquestion{la matrice%
 \( M=\begin{pmatrix}
        0 & 1 \\
        1 & 1 \\
\end{pmatrix} \)  a pour carré}%
{%
{\(\begin{pmatrix}
        0 & 1 \\
        1 & 4 \\
\end{pmatrix}\)},%
{\(\begin{pmatrix}
        1 & 2 \\
        2 & 5 \\
 \end{pmatrix}\)}
}
\end{alterqcm}
\setlength{\textwidth}{\oldtextwidth}  

\medskip
\begin{tkzltxexample}[small]
  \setlength{\oldtextwidth}{\textwidth}
  \setlength{\textwidth}{14cm}
 \begin{alterqcm}[lq=88mm,symb=$\Box$]
  \AQquestion{la matrice%
  \( M=\begin{pmatrix}
         0 & 1 \\
         1 & 1 \\
 \end{pmatrix} \)  a pour carré}%
 {%
 {\(\begin{pmatrix}
         0 & 1 \\
         1 & 4 \\
 \end{pmatrix}\)},%
 {\(\begin{pmatrix}
         1 & 2 \\
         2 & 5 \\
  \end{pmatrix}\)}
 }
 \end{alterqcm}
 \setlength{\textwidth}{\oldtextwidth}
\end{tkzltxexample}



\endinput