diff options
author | Karl Berry <karl@freefriends.org> | 2009-04-22 17:11:26 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-04-22 17:11:26 +0000 |
commit | 1f0a6a8adc7ab6c162351d128ce1cd46702a31e1 (patch) | |
tree | 8ec05b54df9033871ceb8ae920da170c69813547 | |
parent | da42a0204f57b55e973f5e1554170f84df8833e2 (diff) |
new latex package alterqcm (21apr09)
git-svn-id: svn://tug.org/texlive/trunk@12794 c570f23f-e606-0410-a88d-b1316a301751
28 files changed, 1108 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/alterqcm/README b/Master/texmf-dist/doc/latex/alterqcm/README new file mode 100644 index 00000000000..cc8e048bcd0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/README @@ -0,0 +1,53 @@ +Contents of the README file + +A. Purpose + +The 'alterqcm' package is a LaTeX2e package, for making Multiple Choices Questionnaires + in a table with two columns. The aim is to provide some useful macros to build + QCM in tables. These macros may be used by only LaTeX TeX users. + The documentation is in French. + +B. Features + -- A special environment allows you to define questions and possible answers; + -- You can specify which answers are correct and which are not. + -- works with utf8 and pdflatex; + -- allows to use 'longtable'; + -- makes automatically adjustment; + -- generates a 'grid' that the students will have to fill in; + -- generates a 'mask' with correct answers to print a slide. + +C. Licence + +You may freely use and distribute this package under the terms of lppl and/or gpl. + +Read file doc_aq.pdf in the doc directory, for the complete documentation + +D. Contents of the folder (encoding utf8) + + -- README (this file) + -- inputs: alterqcm.sty + -- doc: doc-aq.pdf, + example_1.tex, + example_1.pdf, + example_2.tex, + example_2.pdf, + etc... + + +E. Installation + +If you need to install it by yourself, a TDS compliant zip archive is +provided (aq.zip). Just download that file, and unpack it in +your TDS directory (~/texmf for Unix-like systems). If you only need to use + 'alterqcm.sty' then you have to copy 'alterqcm.sty' into '~/texmf/tex/latex'. + + +With MiKTeX, copy folder 'alterqcm.sty' into 'C:\texmf\tex\latex', then +run 'MiKTeX Options'. In the 'File name database' section, click on +'Refresh now'. + +F. The author of the 'alterqcm.sty' package is Alain Matthes. +-- +Alain Matthes, <al.ma@mac.com> +April, 20th, 2009 + diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/AntillesESjuin2006.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/AntillesESjuin2006.pdf Binary files differnew file mode 100644 index 00000000000..2bccf8d4942 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/AntillesESjuin2006.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/AntillesESjuin2006.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/AntillesESjuin2006.tex new file mode 100644 index 00000000000..e3108f02b79 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/AntillesESjuin2006.tex @@ -0,0 +1,80 @@ +\documentclass[11pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{xkeyval,array,multirow,amsmath,amssymb} +\usepackage{fullpage,longtable} +\usepackage[]{alterqcm} +\usepackage[frenchb]{babel} + +\begin{document} +\begin{alterqcm}[lq=90mm,pre=true,long] + +\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{Parmi les propositions suivantes, quelle est celle qui permet d'affirmer que l'inéquation $\ln (2x + 1) \geqslant \ln (x + 3)$ admet l'intervalle $\big[2~;~+\infty\big[$ comme ensemble de solution ? } +{{\begin{minipage}{5cm}la fonction ln est positive sur $\big[1~;~+\infty\big[$\end{minipage}}, +{$\displaystyle\lim_{x \to +\infty} \ln x = + \infty$}, +{\begin{minipage}{5cm}la fonction $\ln$ est croissante sur $\big]0~;~+\infty\big[$\end{minipage}} +} + +\AQquestion{Parmi les propositions suivantes quelle est celle qui permet d'affirmer qu'une primitive de la fonction $f$ définie sur $\mathbb{R}$ par $x \mapsto (x + 1)\text{e}^x$ est la fonction $g~:~x~ \mapsto~ x~ \text{e}^x$~? } +{{pour tout réel $x,~f'(x) = g(x)$}, +{pour tout réel $x,~g'(x) = f(x)$}, +{\begin{minipage}{5.5cm} pour tout réel $x,~g(x) = f'(x) + k$, $k$ réel quelconque \end{minipage}}} + +\AQquestion[pq=2mm]{ L'équation $2\text{e}^{2x} - 3\text{e}^x + 1 = 0$ admet pour ensemble solution} +{{$\left\{\dfrac{1}{2}~;~1\right\}$}, +{$\left\{0~;~\ln \dfrac{1}{2}\right\}$}, +{$\big\{0~;~\ln 2\big\}$} +} + +\AQquestion[pq=2mm]{Pour tout $n \in \mathbb{N}$ } +{{$\displaystyle\lim_{x \to +\infty} \frac{\text{e}^x}{x^n} = 1$}, +{$\displaystyle\lim_{x \to +\infty} \frac{\text{e}^x}{x^n} = +\infty$}, +{$\displaystyle\lim_{x \to +\infty} \frac{\text{e}^x}{x^n} = 0$}} + +\AQquestion[pq=1pt]{Soit $f$ la fonction définie sur $\big]0~;~+\infty\big[$ par $f(x) = 2\ln x - 3x + 4$. Dans un repère, une équation de la tangente à la courbe représentative de $f$ au point d'abscisse 1 est :} +{{$y = - x + 2$}, +{$y = x + 2$}, +{$y = - x - 2$} +} + +\AQquestion[pq=2mm]{La valeur moyenne sur $\big[1 ; 3\big]$ de la fonction $f$ définie par : $f(x) = x^2 + 2x$ est :} +{{$\dfrac{50}{3}$}, +{$\dfrac{25}{3}$}, +{$6$} +} +\AQquestion{ exp$(\ln x) = x$ pour tout $x$ appartenant à } +{{$\mathbb{R}$}, +{$\big]0~;~+ \infty\big[$}, +{$\big[0~;~+\infty\big[$} +} +\AQquestion[pq=1pt]{Soit $f$ la fonction définie sur $\big]0~;~+\infty\big[$ par $f(x) = 2\ln x - 3x + 4$. Dans un repère, une équation de la tangente à la courbe représentative de $f$ au point d'abscisse 1 est :} +{{$y = - x + 2$}, +{$y = x + 2$}, +{$y = - x - 2$} +} + +\AQquestion[pq=2mm]{La valeur moyenne sur $\big[1 ; 3\big]$ de la fonction $f$ définie par : $f(x) = x^2 + 2x$ est :} +{{$\dfrac{50}{3}$}, +{$\dfrac{25}{3}$}, +{$6$} +} +\AQquestion{ exp$(\ln x) = x$ pour tout $x$ appartenant à } +{{$\mathbb{R}$}, +{$\big]0~;~+ \infty\big[$}, +{$\big[0~;~+\infty\big[$} +} +\end{alterqcm} +\end{document} + +% AntillesESjuin2006 + +% encoding : utf8 +% format : pdflatex +% engine : pdfetex +% author : Alain Matthes
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/alea.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/alea.pdf Binary files differnew file mode 100644 index 00000000000..35c705d0df4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/alea.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/alea.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/alea.tex new file mode 100644 index 00000000000..d95b020685c --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/alea.tex @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{fourier} +\usepackage{alterqcm} +\usepackage{fullpage} +\thispagestyle{empty} + +\begin{document} +\begin{minipage}{12cm} + \begin{alterqcm}[lq=55mm,alea,sep] + \AQquestion[pq=1mm]{Si la fonction $f$ est strictement croissante sur $\mathbf{R}$ alors l'équation $f(x) = 0$ admet :} + {{Au moins une solution},% + {Au plus une solution},% + {Exactement une solution}} + \end{alterqcm} + + \vspace{1cm} + \begin{alterqcm}[lq=55mm,alea,sep=false] + \AQquestion[pq=1mm]{Si la fonction $f$ est strictement croissante sur $\mathbf{R}$ alors l'équation $f(x) = 0$ admet :} + {{Au moins une solution},% + {Au plus une solution},% + {Exactement une solution}} + \end{alterqcm} +\end{minipage} + +\end{document} + +% utf8 +% pdflatex +% Alain Matthes
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/annexe.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/annexe.pdf Binary files differnew file mode 100644 index 00000000000..49b847440ec --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/annexe.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/annexe.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/annexe.tex new file mode 100644 index 00000000000..fd5fab6d103 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/annexe.tex @@ -0,0 +1,25 @@ +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{fourier} +\usepackage{alterqcm} +\usepackage{fullpage} +\thispagestyle{empty} + +\begin{document} +{\Large +NOM : + +PRÉNOM : + +\bfseries +\vspace{1cm} +\AQannexe[propstyle=\bfseries\arabic]{1}{10}{4}% + \hspace{2cm} +\AQannexe[propstyle=\bfseries\alph]{11}{20}{3}} +\end{document} + +% encoding : utf8 +% format : pdflatex +% engine : pdfetex +% author : Alain Matthes diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/correct.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/correct.pdf Binary files differnew file mode 100644 index 00000000000..e5d64a93922 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/correct.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/correct.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/correct.tex new file mode 100644 index 00000000000..e017eacb4b5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/correct.tex @@ -0,0 +1,27 @@ +\documentclass[10pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[upright]{fourier} +\usepackage{amsmath,amssymb,stmaryrd} +\usepackage{fullpage} +\usepackage{alterqcm} +\usepackage[frenchb]{babel} +\parindent=0pt +\newlength{\oldtextwidth} +\begin{document} + \setlength{\oldtextwidth}{\textwidth} + \setlength{\textwidth}{14cm} + \begin{alterqcm}[VF, + correction, + lq = 100mm, + symb = \dingsquare, + corsymb = \dingchecksquare] + \AQquestion[br={1}]{Pour tout $x \in ]-3~;~2],~f'(x) \geqslant 0$.} + \AQquestion[br={2}]{La fonction $F$ présente un maximum en $2$} + \AQquestion[br={2}]{$\displaystyle\int_{0}^2 f'(x)\:\text{d}x = - 2$} + \end{alterqcm} +\setlength{\textwidth}{\oldtextwidth} +\end{document} +% encoding : utf8 +% format : pdflatex +% engine : pdfetex +% author : Alain Matthes
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/doc_aq.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/doc_aq.pdf Binary files differnew file mode 100644 index 00000000000..589f0e6360b --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/doc_aq.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/example_1.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/example_1.pdf Binary files differnew file mode 100644 index 00000000000..016f93b001d --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/example_1.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/example_1.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/example_1.tex new file mode 100644 index 00000000000..5a372d15cae --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/example_1.tex @@ -0,0 +1,23 @@ +\documentclass[12pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[upright]{fourier} +%\usepackage[T1]{fontenc} +%\usepackage{lmodern} +\usepackage{alterqcm} +\usepackage{fullpage}% +\usepackage[frenchb]{babel} +\parindent0pt +\begin{document} +\begin{alterqcm} + \AQquestion{Question}{% + {Proposition 1}, + {Proposition 2}, + {Proposition 3}} +\end{alterqcm} + +\end{document} + +% encoding : utf8 +% format : pdflatex +% engine : pdfetex +% author : Alain Matthes
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/example_2.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/example_2.pdf Binary files differnew file mode 100644 index 00000000000..452b4467ed6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/example_2.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/example_2.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/example_2.tex new file mode 100644 index 00000000000..a314cdb7fe5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/example_2.tex @@ -0,0 +1,45 @@ +\documentclass[11pt]{article} +\usepackage[utf8]{inputenc}% sauf si vous avez changé l'encodage +%\usepackage[upright]{fourier}% je la préfère aux autres! +% fourier charge textcomp ainsi que [T1]{fontenc} +% et fournit l'essentiel des symboles de amssymb +% en cas de changement, il ne faut pas oublier +% de placer un \usepackage[T1]{fontenc} qui est fourni +% automatiquement par fourier. +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{amsmath,amssymb,stmaryrd,calc}%}% pour geqslant qui existe ds fourier +\usepackage{xkeyval} +\usepackage{multirow,longtable} +\usepackage[% + a4paper,% + textwidth=16cm, + top=2cm,% + bottom=2cm,% + headheight=25pt,% + headsep=12pt,% + footskip=25pt]{geometry}% + +\usepackage{alterqcm} +% on charge le package +% longtable en cas de débordement du tableau +% amsmath car les exemples sont des annales du bac en mathématiques. +\usepackage[frenchb]{babel} +\parindent=0pt +\begin{document} + + + +\begin{alterqcm}[lq=80mm,long] +\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{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/language.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/language.pdf Binary files differnew file mode 100644 index 00000000000..5e24868efe7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/language.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/language.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/language.tex new file mode 100644 index 00000000000..f844a8a1860 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/language.tex @@ -0,0 +1,39 @@ +\documentclass[12pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[upright]{fourier} +%\usepackage[T1]{fontenc} +%\usepackage{lmodern} +\usepackage[german]{alterqcm} +\usepackage{fullpage}% +\usepackage[frenchb]{babel} +\parindent0pt + +\begin{document} + + \begin{alterqcm} [language=english] + \AQquestion{Question}{% + {Proposition 1}, + {Proposition 2}, + {Proposition 3}} +\end{alterqcm} + +\begin{alterqcm} [language=german] + \AQquestion{Question}{% + {Proposition 1}, + {Proposition 2}, + {Proposition 3}} +\end{alterqcm} + +\begin{alterqcm} + \AQquestion{Question}{% + {Proposition 1}, + {Proposition 2}, + {Proposition 3}} +\end{alterqcm} + +\end{document} + +% encoding : utf8 +% format : pdflatex +% engine : pdfetex +% author : Alain Matthes
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/sep.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/sep.pdf Binary files differnew file mode 100644 index 00000000000..fe188dbad15 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/sep.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/sep.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/sep.tex new file mode 100644 index 00000000000..f4a24b335ba --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/sep.tex @@ -0,0 +1,31 @@ +\documentclass{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{fourier} +\usepackage{alterqcm} +\usepackage{fullpage} +\thispagestyle{empty} + +\begin{document} + + +\begin{alterqcm}[lq=55mm,alea,sep] +\AQquestion[pq=1mm]{Si la fonction $f$ est strictement croissante sur $\mathbf{R}$ alors l'équation $f(x) = 0$ admet :} +{{Au moins une solution},% +{Au plus une solution},% +{Exactement une solution}} +\end{alterqcm} + +\vspace{1cm} +\begin{alterqcm}[lq=55mm,alea,sep=false] +\AQquestion[pq=1mm]{Si la fonction $f$ est strictement croissante sur $\mathbf{R}$ alors l'équation $f(x) = 0$ admet :} +{{Au moins une solution},% +{Au plus une solution},% +{Exactement une solution}} +\end{alterqcm} + +\end{document} + +% utf8 +% pdflatex +% Alain Matthes
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-final.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-final.pdf Binary files differnew file mode 100644 index 00000000000..5c28a132e4e --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-final.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-final.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-final.tex new file mode 100644 index 00000000000..a9822296727 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-final.tex @@ -0,0 +1,40 @@ +\documentclass[11pt]{article} +\usepackage[utf8]{inputenc}% sauf si vous avez changé l'encodage +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{amsmath,amssymb,stmaryrd,calc}%}% pour geqslant qui existe ds fourier +\usepackage{xkeyval} +\usepackage{multirow,longtable} +\usepackage[% + a4paper,% + textwidth=16cm, + top=2cm,% + bottom=2cm,% + headheight=25pt,% + headsep=12pt,% + footskip=25pt]{geometry}% + +\usepackage{alterqcm} +% on charge le package +% longtable en cas de débordement du tableau +% amsmath car les exemples sont des annales du bac en mathématiques. +\usepackage[frenchb]{babel} +\parindent=0pt +\begin{document} + +\begin{alterqcm}[transparent,correction,corsymb=\dingchecksquare,lq=100mm] + \AQquestion[br=3,pq=3mm]{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} \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=2]{exp$(\ln x) = x$ pour tout $x$ appartenant à } + {{$\mathbf{R}$}, + {$\big]0~;~+ \infty\big[$}, + {$\big[0~;~+\infty\big[$} + } +\end{alterqcm} + + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-init.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-init.pdf Binary files differnew file mode 100644 index 00000000000..5b3f6ffd9d3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-init.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-init.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-init.tex new file mode 100644 index 00000000000..f3a6204d63d --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/transparent-init.tex @@ -0,0 +1,41 @@ +\documentclass[11pt]{article} +\usepackage[utf8]{inputenc}% sauf si vous avez changé l'encodage +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{amsmath,amssymb,stmaryrd,calc}%}% pour geqslant qui existe ds fourier +\usepackage{xkeyval} +\usepackage{multirow,longtable} +\usepackage[% + a4paper,% + textwidth=16cm, + top=2cm,% + bottom=2cm,% + headheight=25pt,% + headsep=12pt,% + footskip=25pt]{geometry}% + +\usepackage{alterqcm} +% on charge le package +% longtable en cas de débordement du tableau +% amsmath car les exemples sont des annales du bac en mathématiques. +\usepackage[frenchb]{babel} +\parindent=0pt +\begin{document} + +\begin{alterqcm}[correction,corsymb=\dingchecksquare,lq=100mm] +\AQquestion[br=3,pq=3mm]{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} \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=2]{exp$(\ln x) = x$ pour tout $x$ appartenant à } +{{$\mathbf{R}$}, +{$\big]0~;~+ \infty\big[$}, +{$\big[0~;~+\infty\big[$} +} + +\end{alterqcm} + + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/verb.pdf b/Master/texmf-dist/doc/latex/alterqcm/doc/verb.pdf Binary files differnew file mode 100644 index 00000000000..5aa921d21cf --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/verb.pdf diff --git a/Master/texmf-dist/doc/latex/alterqcm/doc/verb.tex b/Master/texmf-dist/doc/latex/alterqcm/doc/verb.tex new file mode 100644 index 00000000000..207f9ca694f --- /dev/null +++ b/Master/texmf-dist/doc/latex/alterqcm/doc/verb.tex @@ -0,0 +1,150 @@ + +\documentclass[10pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{fourier} +\usepackage{alterqcm} +\usepackage{fullpage} +\usepackage{longtable} +\usepackage{verbdef} +\usepackage[frenchb]{babel} + +\pagestyle{empty} +%-------------------------------------------------------------- +\begin{document} +%-------------------------------------------------------------- +\parindent=0pt +\begin{center} +Contrôle de langage C \\ + +\vspace{5mm} +Nom : \hspace{5cm} +Prénom : \\ + +\vspace{5mm} +{\small Pour chaque question, 3 réponses sont proposées. Une et une seule est correcte. A vous de la trouver et de \textbf{noircir la case correspondante}. +Bonne réponse = +1 point. Pas de réponse = 0 point. Mauvaise réponse = -0.5 point.} +\begin{alterqcm}[lq=90mm,title,num=true,alea,long] +% rajouter ou enlever l'option correction pour voir ou non les corrections :-) +%-------------------------------------------------------------- + +\AQquestion{Quel était le langage précurseur du langage C ?} +{{le Fortran},% + {le langage B},% + {le Basic},% + {X},% + {Y}} +%-------------------------------------------------------------- +\verbdef\arg|int a = 3 ^ 4 ;| +\AQquestion{\arg} +{{élève 3 à la puissance 4}, + {fait un OU exclusif entre 3 et 4}, + {n'est pas une instruction C}} +%-------------------------------------------------------------- +\AQquestion{Quelle est la bonne syntaxe pour décaler de 8 bits à gauche l'entier \texttt{a} ?} +{{\texttt{b = lshift(a, 8) ;}}, + {\texttt{b = 8 << a ;}}, + {\texttt{b = a << 8 ;}}} +%-------------------------------------------------------------- +\AQquestion{Le programme complet : \\ +\texttt{int main() \\ +~~\{ printf ("bonjour") ; return 0 ; \}}} +{{affiche \texttt{bonjour}}, + {donne une erreur à la compilation}, + {donne une erreur à l'exécution}} +%-------------------------------------------------------------- +\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{Soit la déclaration \arg ; \\Le premier réel du tableau est \ldots} +{{\propa}, + {\propb}, + {\propc}} +%-------------------------------------------------------------- +\AQquestion{La ligne \texttt{printf("\%c", argv[2][0]) ;} du \texttt{main} de \texttt{monProg} exécuté ainsi : \texttt{monProg parametre}} +{{affiche \texttt{p}}, + {n'affiche rien}, + {peut provoquer un plantage}} +%-------------------------------------------------------------- +\AQquestion{Quelle est la taille en mémoire d'un \texttt{long int} ?} +{{4 octets}, + {8 octets}, + {ça dépend \ldots}} +%-------------------------------------------------------------- +\AQquestion{Suite à la déclaration \texttt{int * i} ;} +{{\texttt{*i} est une adresse}, + {\texttt{*i} est un entier}, + {\texttt{*i} est un pointeur}} +%-------------------------------------------------------------- +\AQquestion{Suite à la déclaration \texttt{char tab[12]} ;} +{{\texttt{\&tab} est l'adresse du tableau}, + {\texttt{\&tab} est le pointeur sur le tableau}, + {\texttt{\&tab} ne signifie rien}} + +%-------------------------------------------------------------- +\AQquestion{Un des choix suivants n'est pas une bibliothèque standard du C} +{{\texttt{stdlib}}, + {\texttt{stdin}}, + {\texttt{math}}} +%-------------------------------------------------------------- +\AQquestion{La syntaxe complète de la fonction \texttt{main} est \ldots} +{{\texttt{int main(int argc, char* argv)}}, + {\texttt{int main(int argc, char argv*[])}}, + {\texttt{int main(int argc, char* argv[])}}} +%-------------------------------------------------------------- +\AQquestion{Le programme complet : +\texttt{int main()\\ +\{ char a[2]="x" ; char b[2]="y" ; \\ +~~return (a[0] == b[0]) ; \} +}} +{{comporte 0 erreur}, + {comporte 1 erreur}, + {comporte 2 erreurs}} + +%-------------------------------------------------------------- +\AQquestion{Pour libérer une zone mémoire allouée dynamiquement en C, on utilise la fonction \ldots} +{{\texttt{delete}}, + {\texttt{clear}}, + {\texttt{free}}} + +%-------------------------------------------------------------- +\AQquestion{L'expression \texttt{val char[32] ; }} +{{est syntaxiquement incorrecte}, + {déclare une chaîne}, + {déclare un tableau}} + + %-------------------------------------------------------------- +\verbdef\arga|char s[10] ; int i ;| +\verbdef\argb|scanf("%d, %s", \&i, s) ;| +\AQquestion{On compte dans les lignes suivantes :\\ +\arga \\ +\argb} +{{0 erreur de compilation}, + {1 erreur de compilation}, + {2 erreurs de compilation}} +%-------------------------------------------------------------- +\AQquestion{Une variable globale est \ldots} +{{\texttt{static}}, + {stockée dans la pile}, + {initialisée avec des zéros par défaut}} +%-------------------------------------------------------------- +\AQquestion{La portée d'une variable locale est \ldots} +{{la fonction}, + {le module}, + {le bloc}} +%-------------------------------------------------------------- +\AQquestion{La ligne \texttt{int c = argv[1] + argv[2] ;} + du \texttt{main} de \texttt{monProg} exécuté ainsi : +\verb!monProg 123 456!} +{{affecte 579 à \texttt{c}}, + {donne une erreur à la compilation}, + {affecte une valeur indéterminée à \texttt{c}}} +\end{alterqcm} +\end{center} +\end{document} + +% utf8 +% pdflatex +% Pascal Bertolino Alain Matthes +%
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/alterqcm/alterqcm.sty b/Master/texmf-dist/tex/latex/alterqcm/alterqcm.sty new file mode 100644 index 00000000000..44414ec3670 --- /dev/null +++ b/Master/texmf-dist/tex/latex/alterqcm/alterqcm.sty @@ -0,0 +1,518 @@ +% Copyright (C) 2009 Alain Matthes +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License , either version 1.3 +% of this license or (at your option) any later version and/or +% 2. under the GNU Public License. +% See http://www.latex-project.org/lppl.txt for details. +% +% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % % + % alterqcm.sty encodage : utf8 % + % % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % % + % Créé par Alain Matthes le 19-09-2006. % + % % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +%% Objet : Création de qcm +%% Utilisation +%% \AQquestion{question} +%% {{proposition}, +%% {proposition}} +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{alterqcm} + [2009/03/29 v3.1 qcm creation] + \DeclareOption{french}{% + \def\aqlanguage{french} + \def\aqlabelforquest{Questions} + \def\aqlabelforrep{R\'eponses} + \def\aqfoottext{suite sur la page suivante\ldots}} + \DeclareOption{english}{% + \def\aqlanguage{english} + \def\aqlabelforquest{Questions} + \def\aqlabelforrep{Answers} + \def\aqfoottext{Continued on the next page\ldots}} + \DeclareOption{german}{% + \def\aqlanguage{german} + \def\aqlabelforquest{Fragen} + \def\aqlabelforrep{Antworten} + \def\aqfoottext{Fortsetzung nächste Seite\ldots}} +\ExecuteOptions{french} +\ProcessOptions\relax +\RequirePackage{xkeyval}[2005/11/25] +\RequirePackage{calc} +\RequirePackage{ifthen,forloop} +\RequirePackage{array} +\RequirePackage{multirow} +\RequirePackage{pifont}%v v1.00 +%<---------------------------------------------------------------> +% from RANDOM.TEX v.1 (Donald Arseneau) +%<---------------------------------------------------------------> +\newcount\randomi % the random number seed (while executing) +\newcounter{identRow} +\newcounter{identCol} +\newcounter{tmp} + +\global\randomi\catcode`\@ % scratch variable during definitions +\catcode`\@=11 + +\def\nextrandom{\begingroup + \ifnum\randomi<\@ne % then initialize with time + \global\randomi\time + \global\multiply\randomi388 \global\advance\randomi\year + \global\multiply\randomi31 \global\advance\randomi\day + \global\multiply\randomi97 \global\advance\randomi\month + \message{Randomizer initialized to \the\randomi.}% + \nextrandom \nextrandom \nextrandom + \fi + \count@ii\randomi + \divide\count@ii 127773 % modulus = multiplier * 127773 + 2836 + \count@\count@ii + \multiply\count@ii 127773 + \global\advance\randomi-\count@ii % random mod 127773 + \global\multiply\randomi 16807 + \multiply\count@ 2836 + \global\advance\randomi-\count@ + \ifnum\randomi<\z@ \global\advance\randomi 2147483647\relax\fi + \endgroup +} + +\countdef\count@ii=2 % use only in boxes! +\ifx\@tempcnta\undefined \csname newcount\endcsname \@tempcnta \fi +\ifx\@tempcntb\undefined \csname newcount\endcsname \@tempcntb \fi + +\def\setrannum#1#2#3{% count register, minimum, maximum + \@tempcnta#3\advance\@tempcnta-#2\advance\@tempcnta\@ne + \@tempcntb 2147483645 % = m - 2 = 2^{31} - 3 + \divide\@tempcntb\@tempcnta + \getr@nval + \advance\ranval#2\relax + #1\ranval +} + +\def\getr@nval{% The values in \@tempcnta and \@tempcntb are parameters + \nextrandom + \ranval\randomi \advance\ranval\m@ne \divide\ranval\@tempcntb + \ifnum\ranval<\@tempcnta\else \expandafter\getr@nval \fi +} + +\catcode`\@=\randomi +\global\randomi=0 +\newcount\ranval +%<---------------------------------------------------------------> +\newtoks\tdml@a +\newtoks\tdml@b +\newcount\@alea +\newcount\n@arg +\newbox\qcm@tempbox +\newdimen\qcm@hauteurquest +\newdimen\qcm@hauteurprop +\newdimen\qcm@wdquest +\newdimen\qcm@wdprop +\newdimen\qcm@dimtmpa +\newdimen\qcm@dimtmpb +\newdimen\qcm@dimtmp +\newcounter{AQ@numquestion}\setcounter{AQ@numquestion}{0}% +\newcounter{qcm@numb} +\newcounter{AQ@numprop}\setcounter{AQ@numprop}{0}% v0.93 +\newcounter{alea@numfirst} +\newcounter{alea@numlast} +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +% Début Code QCM +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> + +\define@choicekey*[AQ]{global}{language}[\val\nr]{french, + english, + german}{% +\edef\AQ@global@language{\nr} +\ifcase\nr\relax +\def\cmdAQ@global@tone{Questions} +\def\cmdAQ@global@ttwo{R\'eponses} +\def\aqfoottext{suite sur la page suivante\ldots} +\or +\def\cmdAQ@global@tone{Questions} +\def\cmdAQ@global@ttwo{Answers} +\def\aqfoottext{Continued on the next page\ldots} +\or +\def\cmdAQ@global@tone{Fragen} +\def\cmdAQ@global@ttwo{Antworten} +\def\aqfoottext{Fortsetzung nächste Seite\ldots} +\fi% +} +\define@cmdkey [AQ] {global} {lq}{} +\define@cmdkey [AQ] {global} {pq}{} +\define@cmdkey [AQ] {global} {symb}{} +\define@cmdkey [AQ] {global} {corsymb}{} +\define@cmdkey [AQ] {global} {bonus}{} +\define@cmdkey [AQ] {global} {malus}{} +\define@cmdkey [AQ] {global} {numstyle}{} +\define@cmdkey [AQ] {global} {propstyle}{} +\define@cmdkey [AQ] {global} {size}{} +\define@cmdkey [AQ] {global} {tone}{} +\define@cmdkey [AQ] {global} {ttwo}{} +\define@cmdkey [AQ] {global} {numbreak}{} +\define@boolkey [AQ] {global} {transparent}[true]{} +\define@boolkey [AQ] {global} {VF} [true]{} +\define@boolkey [AQ] {global} {sep} [true]{} +\define@boolkey [AQ] {global} {pre} [true]{} +\define@boolkey [AQ] {global} {title} [true]{} +\define@boolkey [AQ] {global} {long} [true]{} +\define@boolkey [AQ] {global} {num} [true]{} +\define@boolkey [AQ] {global} {numprop} [false]{} +\define@boolkey [AQ] {global} {nosquare} [false]{} +\define@boolkey [AQ] {global} {correction} [true]{} +\define@boolkey [AQ] {global} {alea} [true]{} +\presetkeys [AQ] {global} { + lq = 100mm, + pq = 0pt, + sep = false, + pre = false, + bonus = {0,5}, + malus = {0,25}, + VF = false, + long = false, + symb = $\square$, + corsymb = $\blacksquare$, + num = true, + transparent = false, + nosquare = false, + correction = false,%v1.00 + numstyle = \arabic, + propstyle = \alph,% v0.93 + numprop = false,% v0.93 + size = \normalsize, + title = true, + ttwo = \aqlabelforrep, + tone = \aqlabelforquest, + numbreak = 0, + alea = false}{} +\define@cmdkey[AQ]{local}{pq}{} +\define@cmdkey[AQ]{local}{br}{} +\presetkeys[AQ]{local}{br=1,pq= \cmdAQ@global@pq}{}% +\newcommand{\qcm@pre}{Pour chacune des questions ci-dessous, une seule des r\'eponses propos\'ees est exacte. Vous devez cocher la r\'eponse exacte sans justification. +Une bonne r\'eponse rapporte \textbf{\cmdAQ@global@bonus\ point}. Une mauvaise r\'eponse enl\`eve \textbf{\cmdAQ@global@malus\ point}. L'absence de r\'eponse ne rapporte ni n'enl\`eve aucun point. Si le total des points est n\'egatif, la note globale attribu\'ee \`a l'exercice est \textbf{0}.} +\newcommand{\qcm@preVF}{Pour chacune des affirmations ci-dessous, cocher la case V (l'affirmation est vraie) ou la case F (l'affirmation est fausse) sur l'ANNEXE, \`a rendre avec la copie. Les r\'eponses ne seront pas justifi\'ees. +Une bonne r\'eponse rapporte \textbf{\cmdAQ@global@bonus\ point}. Une mauvaise r\'eponse enl\`eve \textbf{\cmdAQ@global@malus\ point}. L'absence de r\'eponse ne rapporte ni n'enl\`eve aucun point. Si le total des points est n\'egatif, la note globale attribu\'ee \`a l'exercice est \textbf{0}.} + +\newcommand*{\AQms}{\aq@ms} +\def\aq@ms(#1,#2){\vrule height #1pt depth #2pt width 0pt} +\newcommand*{\altersquare}{\vbox{\hrule\hbox to 6pt{\vrule height 5.2pt \hfil\vrule}\hrule}} +%v1.00 +\newcommand*{\dingsquare}{\ding{114}} +%v1.00 +\newcommand*{\dingchecksquare}{\mbox{\ding{114}\hspace{-.7em}\raisebox{.2ex}[1ex]{\ding{51}}}} +\newcommand*{\aq@style@title}{\textbf} +\newcommand*{\aq@style@numquest}{\textbf} +\newcommand*{\aq@style@numrep}{\textbf} + + + +\newcommand{\qcm@title}{% +\hline% + \hfil{\aq@style@title{\cmdAQ@global@tone}}\hfil% + & \hfil{\aq@style@title{\cmdAQ@global@ttwo}}\hfil\\ \hline% + \ifAQ@global@long \endfirsthead +\hline + \hfil{\aq@style@title{\cmdAQ@global@tone}}\hfil% + & \hfil{\aq@style@title{\cmdAQ@global@ttwo}}\hfil\\ \hline% +\endhead +& \raisebox{-1em}\hfill{\emph{\aqfoottext}} \\ \hline +\endfoot +\endlastfoot\fi +}% + +\newcommand{\AQmessage}[1]{% +\multicolumn{2}{|l|}{% +\begin{minipage}{\textwidth-\tabcolsep*2-\arrayrulewidth*2}% + +\smallskip #1 \smallskip +\end{minipage}}\\ \hline% +}% + +\newcommand{\melange}{% +\setrannum{\@alea}{1}{\value{qcm@numb}}% + \ifcase\@alea% + \or + \global\let\qcm@tempfirst\qcm@arga + \or + \global\let\qcm@tempfirst\qcm@argb + \or + \global\let\qcm@tempfirst\qcm@argc + \or + \global\let\qcm@tempfirst\qcm@argd + \or + \global\let\qcm@tempfirst\qcm@arge + \fi +\setcounter{alea@numfirst}{\@alea}% +\setrannum{\@alea}{1}{\value{qcm@numb}}% + \ifcase\@alea% + \or + \global\let\qcm@templast\qcm@arga + \or + \global\let\qcm@templast\qcm@argb + \or + \global\let\qcm@templast\qcm@argc + \or + \global\let\qcm@templast\qcm@argd + \or + \global\let\qcm@templast\qcm@arge + \fi +\setcounter{alea@numlast}{\@alea}% +\global\let\qcm@temp\qcm@tempfirst% +\global\let\qcm@tempfirst\qcm@templast% +\global\let\qcm@templast\qcm@temp% +\global\expandafter\let\csname qcm@arg\alph{alea@numfirst}% +\endcsname\qcm@tempfirst% +\global\expandafter\let\csname qcm@arg\alph{alea@numlast}% +\endcsname\qcm@templast% +}% +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +\newcommand{\qcm@hauteurbox}[1]{% +\setbox\qcm@tempbox=% +\vbox{\parbox[t]{\textwidth-\tabcolsep*4-\arrayrulewidth*3-\cmdAQ@global@lq}% +{\cmdAQ@global@symb\quad\mbox{#1}}}% \cmdAQ@global@symb remplace $\square$ +\qcm@dimtmpa\ht\qcm@tempbox\relax% +\qcm@dimtmpb\dp\qcm@tempbox\relax% +\advance\qcm@dimtmpa by\qcm@dimtmpb}% +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +\newcommand{\qcm@adjust}[1]{% +\setbox\qcm@tempbox=% +\vbox{% +\parbox[t]{\cmdAQ@global@lq}{\aq@style@numquest{\number\value{AQ@numquestion}.}\hspace{3pt}#1}}% +\qcm@dimtmpa\ht\qcm@tempbox% +\qcm@dimtmpb\dp\qcm@tempbox% +\qcm@wdquest\wd\qcm@wdquest% +\advance\qcm@dimtmpa by\qcm@dimtmpb\relax% +\qcm@hauteurquest=\qcm@dimtmpa% +\qcm@hauteurbox{\qcm@arga}% +\qcm@hauteurprop=\qcm@dimtmpa% +\qcm@hauteurbox{\qcm@argb}% +\advance\qcm@hauteurprop by\qcm@dimtmpa\relax% +\ifnum\value{qcm@numb}>2\relax% +\qcm@hauteurbox{\qcm@argc}% +\advance\qcm@hauteurprop by\qcm@dimtmpa\relax\fi +\ifnum\value{qcm@numb}>3\relax% +\qcm@hauteurbox{\qcm@argd}% +\advance\qcm@hauteurprop by\qcm@dimtmpa\relax\fi +\ifnum\value{qcm@numb}>4\relax% +\qcm@hauteurbox{\qcm@arge}% +\advance\qcm@hauteurprop by\qcm@dimtmpa\relax\fi +\ifdim\qcm@hauteurquest<\qcm@hauteurprop% +\global\qcm@dimtmp=0pt +\qcm@dimtmpa\ht\qcm@tempbox% +\qcm@dimtmpb\dp\qcm@tempbox% +\advance\qcm@dimtmpa by3pt% +\advance\qcm@dimtmpb by2pt% +\vrule height\qcm@dimtmpa depth\qcm@dimtmpb width0pt% +\else +\advance\qcm@hauteurquest by-\qcm@hauteurprop% +\divide\qcm@hauteurquest by\theqcm@numb\relax% +\divide\qcm@hauteurquest by2\relax% +\global\qcm@dimtmp=\qcm@hauteurquest\fi +}% +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +\newcommand{\qcm@prop}[2]{% +\setbox\qcm@tempbox=\vbox{#1}% +\qcm@wdprop\wd\qcm@tempbox% +\qcm@dimtmpa\ht\qcm@tempbox\advance\qcm@dimtmpa by4pt\advance\qcm@dimtmpa by\qcm@dimtmp\relax% +\qcm@dimtmpb\dp\qcm@tempbox\advance\qcm@dimtmpb by3pt\advance\qcm@dimtmpb by\qcm@dimtmp\relax% +\ifAQ@global@VF\hfil\fi% +\ifAQ@global@transparent\def\cmdAQ@global@corsymb{$\bigcirc$}% +\def\cmdAQ@global@symb{}\fi% +\ifAQ@global@numprop\stepcounter{AQ@numprop}% +{\aq@style@numrep{(\cmdAQ@global@propstyle{AQ@numprop})}}% +\else + \ifAQ@global@nosquare% + \else% + \ifAQ@global@correction% + \def\@stop{1} + \@for\goodrep:=\cmdAQ@local@br\do{% + \ifnum\@stop<6 % + \global\let\mysymb\cmdAQ@global@symb + \ifthenelse{\equal{\goodrep}{#2}}{% + \global\let\mysymb\cmdAQ@global@corsymb \def\@stop{9}}{% + }% + \fi}% + \mysymb\hspace*{6pt}% + \else + \cmdAQ@global@symb\hspace*{6pt}% + \fi + \fi + \fi% + \ifAQ@global@transparent + \vrule height0pt depth0pt width\qcm@wdprop + \else + \ignorespaces#1% + \fi + \vrule height\qcm@dimtmpa depth\qcm@dimtmpb width0pt% + \ifAQ@global@VF\hfil\fi}% +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +\newcommand{\AQquestion}[3][]{% +\setkeys[AQ]{local}{#1}% +\stepcounter{AQ@numquestion}% +\setcounter{AQ@numprop}{0} % v0.93 +\setcounter{qcm@numb}{0}% +\@for\liste:=#3\do{% +\stepcounter{qcm@numb}% +\global\expandafter\let\csname qcm@arg\alph{qcm@numb}\endcsname\liste}% +\ifAQ@global@alea\ifAQ@global@VF\else% +\n@arg=0 % +\loop\ifnum\n@arg<\value{qcm@numb}\melange\advance\n@arg by1\repeat\fi\fi% +\qcm@adjust{#2}% +\multirow{1}{\cmdAQ@global@lq}[\cmdAQ@local@pq]{% +\ifAQ@global@num\aq@style@numquest{\cmdAQ@global@numstyle{AQ@numquestion}.}% +\hspace{3pt}\fi% +\ifAQ@global@transparent% +\hrule height0pt depth0pt width\qcm@wdquest% +\else% +#2\vss% +\fi% + }% +&\setkeys[AQ]{local}{#1}% + \qcm@prop{\qcm@arga}{1}\\% + \ifAQ@global@sep\cline{2-2}\fi% +&\setkeys[AQ]{local}{#1}% + \qcm@prop{\qcm@argb}{2}\\% + \ifAQ@global@sep\cline{2-2}\fi% + \ifnum\value{qcm@numb}=2\hline\else\ifAQ@global@sep\cline{2-2}\fi% +&\setkeys[AQ]{local}{#1}% + \qcm@prop{\qcm@argc}{3}\\% + \ifnum\value{qcm@numb}=3\hline\else\ifAQ@global@sep\cline{2-2}\fi% +&\setkeys[AQ]{local}{#1}% + \qcm@prop{\qcm@argd}{4}\\% + \ifnum\value{qcm@numb}=4\hline\else\ifAQ@global@sep\cline{2-2}\fi% +&\setkeys[AQ]{local}{#1}% + \qcm@prop{\qcm@arge}{5}\\% +\hline\fi\fi\fi}% +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +\newcommand{\qcm@questionVF}[2][]{% +\setkeys[AQ]{local}{#1} +\stepcounter{AQ@numquestion}% +\setcounter{AQ@numprop}{0}% v0.93 +\protected@xdef\qcm@arga{\textbf{V}} +\protected@xdef\qcm@argb{\textbf{F}} +\setcounter{qcm@numb}{2}% +\qcm@adjust{#2}% +\multirow{3}{\cmdAQ@global@lq}[\cmdAQ@local@pq]{% +\ifAQ@global@num\aq@style@numquest{\cmdAQ@global@numstyle{AQ@numquestion}.}\hspace{3pt}\fi% +#2\vss}% + &\setkeys[AQ]{local}{#1}\qcm@prop{\qcm@arga}{1}\\ +\ifAQ@global@sep \cline{2-2}\fi% + &\setkeys[AQ]{local}{#1}\qcm@prop{\qcm@argb}{2}\\ +\hline}% +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +\newenvironment{alterqcm}[1][]{% +\ifAQ@global@numprop \setkeys [AQ] {global} {nosquare = true}{}\fi% % +\setkeys[AQ]{global}{#1}% +\setcounter{AQ@numquestion}{\cmdAQ@global@numbreak}% +\ifAQ@global@VF\let\AQquestion\qcm@questionVF\let\qcm@pre\qcm@preVF\fi% +\ifAQ@global@pre\qcm@pre\par\medskip\fi% +\hfill\break% +\ifAQ@global@long% +\setlength\LTleft{0pt}% +\setlength\LTright\fill% +\setlength{\LTpre}{\intextsep}% +\setlength{\LTpost}{\intextsep}% +\begin{longtable}[l]{% +@{}|>{\cmdAQ@global@size}p{\cmdAQ@global@lq}!{\extracolsep{\fill}}% +|>{\cmdAQ@global@size}p{\textwidth-\tabcolsep*4-\arrayrulewidth*3-\cmdAQ@global@lq}|@{}}% + \else + \begin{tabular}{% + @{}|>{\cmdAQ@global@size}p{\cmdAQ@global@lq}% + |>{\cmdAQ@global@size}p{% + \textwidth-\tabcolsep*4-\arrayrulewidth*3-\cmdAQ@global@lq}% + |@{}}% + \fi + \ifAQ@global@title\qcm@title\else\hline\fi% +}% +{\ifAQ@global@long% + \end{longtable}% + \else + \end{tabular}% + \fi% +}% + +%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> +% #1 chemin & #2 theme & #3 liste de numéros +% code de JC Charpentier +%----------------------------------------------------------% + +\newcommand\InputQuestionList[3]{% + + \tdml@a={}% + \tdml@b={}% + \ifx\relax#3\relax\else % + \tdml@#3,\@nil,% + \expandafter\tdml@clean\the\tdml@a\@nil + \fi + \expandafter\gdef\expandafter\last@val\expandafter{\the\tdml@b} + \AQ@TA{#1}{#2}{\the\tdml@a}% + \AQ@TB{#1}{#2}{\last@val}} +%----------------------------------------------------------% +\long\def\tdml@#1,{% + \ifx\@nil#1\relax + \else + \expandafter\addtotoks\the\tdml@b,\to\tdml@a + \tdml@b={#1}% + \expandafter\tdml@ + \fi +} +%----------------------------------------------------------% +\long\def\addtotoks#1\to#2{% + #2=\expandafter{\the#2#1}% +} +%----------------------------------------------------------% +\long\def\tdml@clean,#1\@nil{% + \ifx\relax#1\relax + \tdml@a{}% + \else + \tdml@@clean#1\@nil + \fi +} +%----------------------------------------------------------% +\long\def\tdml@@clean#1,\@nil{% + \tdml@a{#1}% +} +%----------------------------------------------------------% +%----------------------------------------------------------% +\newcommand\AQ@TA[3]{\@for\nb:=#3\do{% +\input #1#2\nb} +} + +\newcommand\AQ@TB[3]{\input#1#2#3}% +%----------------------------------------------------------% +%----------------------------------------------------------% +\newcount\prop +\def\aq@tvi(#1,#2){\vrule height #1pt depth #2pt width 0pt} +\define@cmdkey [AQ] {ann} {propstyle}[true]{} +\define@boolkey [AQ] {ann} {VF}[true]{} +\presetkeys [AQ] {ann} {propstyle = \arabic, + VF = false}{} + +\newcommand*{\AQannexe}[4][]{% +\setkeys[AQ]{ann}{#1}% +\setcounter{tmp}{#4}% +\stepcounter{tmp}% +\begin{tabular}{*{\number\value{tmp}}{|>{\hfill}c}|}\hline% + \ifAQ@ann@VF% +N&V&F% + \else +N\forLoop{1}{#4}{identCol}% + {& \cmdAQ@ann@propstyle{identCol}}\fi +\tabularnewline\hline% +\forLoop{#2}{#3}{identRow} + {\number\value{identRow}&% + \forLoop{2}{\number\value{tmp}}{identCol}% + {$\ $% + \ifthenelse{\equal{\value{identCol}}{#4}}{}{&}% + }% +\tabularnewline\hline}% +\end{tabular}% +}% + +\endinput diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index f0c62c448db..da59b73535d 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -24,7 +24,8 @@ my @WorkingTLP = qw( acmconf acmtrans acronym active-conf addlines adrconv adrlist ae afthesis aguplus aiaa aichej AkkTeX akletter - algorithm2e algorithmicx algorithms alnumsec altfont ametsoc ams + algorithm2e algorithmicx algorithms alnumsec alterqcm + altfont ametsoc ams amsaddr amslatex-primer amsldoc-it amsmath amsrefs amsthdoc-it animate ANUfinalexam anyfontsize anysize apa apacite appendix apl diff --git a/Master/tlpkg/tlpsrc/alterqcm.tlpsrc b/Master/tlpkg/tlpsrc/alterqcm.tlpsrc new file mode 100644 index 00000000000..7359faad15d --- /dev/null +++ b/Master/tlpkg/tlpsrc/alterqcm.tlpsrc @@ -0,0 +1,2 @@ +name alterqcm +category Package diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index b8e303ec011..f607c35821f 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -15,6 +15,7 @@ depend addlines depend adrconv depend adrlist depend akletter +depend alterqcm depend altfont depend amsaddr depend animate |