% Fichier EXOS.TEX : Documentation de EXOS.MAC
% Michel Quercia 28/06/95

\input carnot.mac
\let\BYE=\bye
\input exos.mac
\let\bye=\BYE
\footname={EXOS.TEX}

\parindent=0pt
\defverbatimchars[][]

\def\titre#1{{%
\setbox0=\hbox{\tt\char92 #1\ }%
\ifdim\wd0<\leftskip\wd0=\leftskip\fi
\hskip-\leftskip\box0}%
\ignorespaces}

\def\{{\char123}
\def\}{\char125}


\hfil\cadredouble \w=114mm \h=10mm \d=6mm{%
\Gros\bf Documentation de {\tt exos.mac}}\hfil{}%
\SV

Le fichier {\tt exos.mac} est une extension de {\tt carnot.mac} facilitant
la composition de feuilles d'exercices :
\sv
{\marge{\hskip 1cm}
\enmarge{-- } Numérotation automatique à trois niveaux
              (numéro d'exercice, de question et de sous-question).

\enmarge{-- } Les énoncés peuvent être accompagnés de réponses, les énoncés
              et réponses sont composés sur des feuilles distinctes.

\enmarge{-- } Multicolonnage.

\enmarge{-- } Chaque exercice est isolé des autres par une mise en groupe
              implicite, donc les réglages et macros définis dans un exercice
              ne perturbent pas les autres exercices de la feuille.

\enmarge{-- } Possibilité d'extraire certains exercices pour constituer
              une sous-feuille.
\par}
\sv\centerline{\vrule height 0.4pt width 3cm}\SV


{\marge{\hskip 1cm}
\titre{ex}
exercice suivant : le reste de la ligne contenant [\ex] est interprété
comme un titre composé en caractères penchés à la suite du numéro d'exercice.
Le code \TeX\ de l'exercice commence à la ligne suivante et s'étend
jusqu'à la prochaine commande [\ex] ou [\xe] ou [\bye].
Dans la mesure du possible, un exercice n'est pas coupé par un changement
de page.
\sv

\titre{xe}
fin d'exercice : le code \TeX\ qui suit est composé hors exercice. Il peut
comprendre des définitions de macros ou modifications de réglages qui
s'appliqueront à tous les exercices ultérieurs.
Dans la mesure du possible, le texte sera placé sur la même page que
le premier exercice suivant.
\sv

\titre{qq}
question suivante : Les questions sont numérotées {\bf 1)}, {\bf 2)}, \dots\
\TeX\ passe à la ligne à chaque question.
\sv

\titre{sq}
sous-question suivante : Les sous-questions sont numérotées {\bf a)}, {\bf b)},
\dots\ \TeX\ passe à la ligne à chaque sous-question {\it à partir de la
deuxième}. Le {\bf a)} de la première sous-question est donc composé sur
la même ligne que le numéro de question si l'on n'inclut pas explicitement
un [\par] dans le code de l'exercice.
\sv

\titre{multicolonne n}
compose la suite de l'exercice sur $n$ colonnes ($n \ge 1$). La portée de cette
commande s'étend jusqu'à la fin de l'exercice ou jusqu'à la prochaine commande
[\multicolonne] ou jusqu'à la commande [\endmulticolonne].
Le texte composé en multicolonne est isolé du reste de l'exercice par un
groupage implicite {(\petit contrairement au cas de [\ex], ceci ne résulte pas
d'un choix de ma part, mais d'une obligation de \TeX)}.
L'algorithme de découpage fait son possible pour que les $n-1$ premières
colonnes aient même hauteur et que la dernière hauteur soit inférieure ou
égale aux autres. Le résultat n'est pas toujours satisfaisant.
\sv

\titre{reponse\{\dots\}}
enregistre \dots dans un fichier de réponses (de même nom que le fichier source
avec l'extension [.ans]). Le fichier des réponses est automatiquement chargé
et composé lorsque tous les exercices ont été traités. {\it Ceci implique que les
macros définies dans un énoncé n'ont plus cours au moment où \TeX\ compose
la réponse}, il faut les inclure explicitement dans la réponse si besoin.
Par ailleurs, en cas d'erreur dans une réponse, consultez le fichier [.ans] pour
déterminer l'exercice et la question en cause, {\it mais corrigez le source\/} :
le fichier de réponses est automatiquement reconstruit à chaque composition
des énoncés.
\sv

\titre{label\{\dots\}}
enregistre le numéro d'exercice, de question et de sous-question en cours pour
une référence ultérieure.
\sv

\titre{ref\{\dots\}}
compose les références du label \dots\
Le numéro d'exercice n'est composé que s'il est différent de celui en cours.
De même, dans un même exercice, le numéro de question n'est composé que
lorsque cela est nécéssaire. Les références en avant ne sont pas possibles
(pour l'instant).
\sv

\titre{footname=\{\dots\}}
définit le nom à placer au bas de chaque page. Le bas de la première page
contient ce nom et la date de composition, les bas des pages suivantes
contiennent ce nom et le numéro de page. Par défaut, [\footname] est égal au
nom du fichier source suivi de l'extension [.TEX].
\sv

\titre{impairagauche, \char92 impairaucentre, \char 92 impairadroite}
indiquent si les bas des pages impaires doivent être justifiés à gauche,
centrés ou justifiés à droite.
[\pairagauche], [\pairaucentre] et [\pairadroite]
dé\-fi\-nis\-sent la justification des bas des pages paires.
Les réglages par défaut sont [\impairadroite] et
[\pairagauche] en format A4, et l'inverse en format A5.

}

\sv\centerline{\vrule height 0.4pt width 3cm}\SV
fichier [exos.dem]\par
{\catcode91=12 \catcode93=12 \catcode64=11
\let\bye=\relax
\listing{exos.dem}
\sv\centerline{\vrule height 0.4pt width 3cm}\sv
\input exos.dem \xe
\immediate\closeout \@answer
\sv\centerline{\vrule height 0.4pt width 3cm}\sv
\goodbreak
\input exos.ans \xe
\sv\centerline{\vrule height 0.4pt width 3cm}\sv}

{\bf Extraction d'exercices :}\sv
{\marge{\hskip 1cm}
Le programme [extrait.exe] extrait une liste d'exercices dans un fichier pour
constituer une sous-feuille d'ex\-er\-ci\-ces. La syntaxe d'appel est :
\sv
\hskip 1cm
\vbox{\halign{%
[extrait]\
\it fichier-source num$_1$ num$_2$ \dots num$_k$ #fichier-destination\cr
[>]\cr [>][>]\cr}}%
\sv


La première forme écrase {\it fichier-destination}, le seconde concatène le
résultat de l'extraction à {\it fichier-destination} supposé exister.
{\it num$_1$ num$_2$ \dots num$_k$} sont les numéros des exercices à extraire.
La liste des numéros peut être dans le désordre, mais ne doit pas comporter de
répétition.
Les exercices sont reconnus par le programme [extrait.exe] à condition que
les commandes [\ex], [\xe] et [\bye] dans {\it fichier-source} soient en début
de ligne.
Le fichier extrait est presque prêt à être traité par \TeX\ : il suffit de
lui ajouter les lignes :
\sv
\hskip 1cm
\vbox{\halign{&#\quad\hfil\cr
[\input exos.mac] &au début\cr
[\bye]            &à la fin.\cr}}%
\par}


\sv\centerline{\vrule height 0.4pt width 3cm}\sv

\bye
