%% fichier 'sections.tex' %% Ce fichier contient toutes les macros concernant les sections %% et leur mise en page \catcode`\@ = 11 % =============================== les parties ================================= \newskip \partieskip \partieskip = 5pt plus 2pt minus 1pt \newskip \partieskipafter \partieskipafter = 1pt plus 3pt \newskip \paragrapheskip \paragrapheskip = 5pt plus 2pt minus 1pt \newskip \paragrapheskipafter \paragrapheskipafter = 1pt plus 3pt %% encadre dans la marge, en gras \def \llappartie#1{% \par \noindent \setbox0 = \hbox {\boxit {2pt}{\hbox {\bf \tvi height8pt depth0pt #1}}}% \llap {\unhbox0\ }% \ignorespaces \initexo } %% centre sur la ligne, en gras \def \simplecenterpartie#1{% \vskip \partieskip \centerline {% \twelvepoint \bf #1 \unhbox \baremebox } \vskip \partieskipafter \initexo } %% idem, + elabore \def \centerpartie#1{% \par % \vskip 0pt plus 0,3\vsize \penalty -50 % \vskip 0pt plus -0,3\vsize % \bigbreak \vskip \partieskip \centerline{% \twelvepoint \bf -- Partie #1 -- \unhbox \baremebox } \penalty 10000 \vskip \partieskipafter \initexo } %% idem, avec 2 arguments \def \doublecenterpartie#1#2{% \par % \vskip 0pt plus 0,3\vsize \penalty -50 % \vskip 0pt plus -0,3\vsize % \bigbreak \vskip \partieskip \centerline{% \twelvepoint \bf -- Partie #1 -- \unhbox \baremebox {\sl #2}} \penalty 10000 \vskip \partieskipafter \initexo } %% discret \def \discretpartie#1{% \initexo \par {\bf #1.}} %% la partie par defaut \let \partie \discretpartie % ============================================================================= % =============================== les titres ================================== %% aussi bizarre que cela puisse paraitre, je laisse la macro '\duree' %% associee au titre \newbox \dureebox \def \cleardureebox {% \setbox \dureebox = \box \dureebox } \cleardureebox \def \duree#1{% \setbox \dureebox \hbox {\sevenrm \underbar {durée}~: #1}} \newskip \titreskip \titreskip = 10pt plus 10pt minus 10pt \newskip \titreskipafter \titreskipafter = 10pt plus 10pt minus 10pt \newskip \stitreskip \stitreskip = 5pt plus 5pt minus 5pt \newskip \stitreskipafter \stitreskipafter = 5pt plus 5pt minus 5pt \newtoks \titrestyle \titrestyle = {\fourteenpoint \bf } \def \titre#1{% \par \ifb@@kstyle \vskip \bookstyleskip \penalty -500 \vskip -\bookstyleskip \fi \bgroup % pour limiter la portee de la def de \\ \def \\{% % commande qui est utilisee pour passer a la ligne dans un titre \hss \egroup % ferme la \hbox to \hsize en cours \hbox to \hsize \bgroup % et rouvre la suivante \the \titrestyle \hss} \vskip 0pt plus 0,3\vsize \penalty -250 \vskip 0pt plus -0,3\vsize \vskip \titreskip \hbox to \hsize \bgroup \hss \the \titrestyle #1 \hss \egroup \egroup \par \nobreak \ifvoid \dureebox \else \line{\hfill \unhcopy \dureebox } \fi \vskip \titreskipafter \nobreak } \def \stitre#1{% \vskip \stitreskip \centerline {\stitrestyle {#1}} \vskip \stitreskipafter }% % ============================================================================= % ========================== macros de numerotation =========================== %%%%% les variables et leurs initialisations %%%%% \newcount \numno \def \clearnumno{% \global\numno = 0} \clearnumno \newcount \alphno \def \clearalphno{% \global\alphno = `\a \global\advance \alphno by -1} \clearalphno \newskip \itemnumskip \itemnumskip = 0pt \newskip \itemalphskip \itemalphskip = 0pt \newskip \itemalphnumskip \itemalphnumskip = 0pt %%%%% reglage du style d'affichage %%%%% \def \numstyle#1{% {\bf #1.}} \def \alphstyle#1{% {\sl \char #1\/})} %%%%% les macros de numerotation %%%%% %% \def \initalphnum {% %% } \def \initalph {% } \def \initnum {% \clearalphno } \def \num {% \initnum \global \advance \numno by 1 \numstyle {\the \numno }}% %% \alph est en prévision du remaniement, ce n'est qu'une %% copie de \alphnum, mais elle permet de commencer à %% essayer de coder de facon plus cohérente ... %% jp 31-05-96 \def \alph {% \initalph \global \advance \alphno by 1 \alphstyle {\alphno }} \def \alphnum {% \num \ \alph } \def \itemnum {% \vskip \itemnumskip \item {\num }} \def \itemitemnum {% \vskip \itemnumskip \itemitem {\num }} \def \itemalph {% \vskip \itemalphskip \item {\alph }} \def \itemitemalph {% \vskip \itemalphskip \itemitem {\alph }} \def \itemalphnum {% \vskip \itemnumskip \item {\num } \alph \ } \def \itemitemalphnum {% \vskip \itemnumskip \itemitem {\num \quad \alph }} % ============================================================================= % =============================== les exercices =============================== % % ========= macros de section ============== %% % =============== exo =============== %% %% \exoskipafter=\medskipamount \newskip \exoskip \exoskip = 5pt plus 5pt minus 5pt \newskip \exoskipafter \exoskipafter = \medskipamount \newbox \exobox \newbox \titleexobox \def \exotitle#1{% \setbox \titleexobox \hbox{#1}} \newbox \baremebox \def \clearbaremebox {% \setbox \baremebox = \box \baremebox } \clearbaremebox \def \bareme#1{% \setbox \baremebox = \hbox {({\sl #1 points\/ }) }} \newcount \exono \def \clearexono {% \global \exono = 0} \clearexono \def \initexo {% \clearnumno \clearalphno } \newif \ifwithexon@ % numérotation des exercices~? \withexon@true % oui, par défaut \def \withexono {\withexon@true } \def \withoutexono {\withexon@false } % \newif \ifwithexohe@d % en-tete pour l'exercice~? \withexohe@dtrue % oui, par défaut \def \withexohead {\withexohe@dtrue } \def \withoutexohead {\withexohe@dfalse } % \newif \ifwithexob@dy % corps de l'exercice~? \withexob@dytrue % oui, par défaut \def \withexobody {\withexob@dytrue } \def \withoutexobody {\withexob@dyfalse } \def \exo#1{% \initexo \ifwithexon@ \advance \exono by 1 \fi \penalty -250 \vskip \exoskip \noindent \ifwithexohe@d {\bf Exercice% \ifwithexon@ \ \the\exono \fi ~: } \ifvoid \baremebox \else \box \baremebox \fi \ifvoid \titleexobox {\bf #1} \else {\bf \box \titleexobox} \fi \penalty 10000 \vskip \exoskipafter \fi \setbox \exobox \vbox\bgroup}% \def \finexo{% \par \egroup \ifwithexob@dy \unvbox \exobox \fi \penalty -250} \def \Exo#1{% \initexo \ifwithexon@ \advance \exono by 1 \fi \penalty -250 \vskip \exoskip \noindent \ifwithexohe@d \boxit {3pt}{{\bf Exercice% \ifwithexon@ \ \the\exono \fi ~: } \ifvoid \baremebox \else \box \baremebox \fi \ifvoid \titleexobox {\bf #1} \else {\bf \box \titleexobox} \fi } \penalty 10000 \vskip \exoskipafter \fi \setbox \exobox \vbox\bgroup}% % ============================================================================= % ============================= corrige des exos ============================== %% \catcode`\@ = 11 \newif \ifwithcorrigb@dy % corps de l'exercice~? \withcorrigb@dytrue % oui, par défaut \def \withcorrigbody {\withcorrigb@dytrue } \def \withoutcorrigbody {\withcorrigb@dyfalse } %% ===== modif (30/11/98) ======== %% \def \withoutcorrigbody {\let \corrige \endinput } \newskip \corrigskipafter \corrigskipafter = 3pt plus 3pt minus 1pt \def \corrige{% \initexo \ifwithcorrigb@dy \ifwithexob@dy \centerline{\hbox to 50mm{\hrulefill}} \vskip \corrigskipafter \fi \else \setbox0=\vbox \fi \bgroup} \def \fincorrige{% \centerline{\hbox to 50mm{\hrulefill}} \egroup} % ============================================================================= % ========================= les exemples ====================================== \newcount \exempleno \def \clearexempleno{% \global\exempleno = 0} \clearexempleno \def \exemple#1{% \medbreak \advance \exempleno by 1 \noindent {\bf Exemple ({\oldstyle \the \exempleno }) . \sl #1} \par \nobreak \smallskip \begingroup \parskip = 4 pt } \def \finexemple {% \removelastskip \par \removelastskip \hfill \bull \endgroup \smallbreak } % ============================================================================= % ============================ le bookstyle =================================== % \newif \ifb@@kstyle % flag indiquant si on accepte les paragraphes % en bas de page \b@@kstylefalse % oui par defaut \newskip \bookstyleskip % le mini de bas de page autorise pour un % paragraphe \bookstyleskip = 0.3\vsize \def \bookstyle {% \footline = {\hss \tenrm \folio \hss } \b@@kstyletrue } \def \onepagestyle {\b@@kstylefalse } % ============================================================================= % ============================== les paragraphes ============================== %%%%% les variables et leurs initialisations %%%%% \newcount \parno \def \clearparno {% \clearsparno \parno = 0} \newcount \sparno \def \clearsparno {% \clearssparno \sparno = 0} \newcount \ssparno \def \clearssparno{% \ssparno = 0} %%%%% reglage du style d'affichage %%%%% \def \paragraphestyle#1#2{% \noindent {\fourteenpoint \bf #1. #2}}% \def \sparagraphestyle#1#2#3{% \noindent {\twelvepoint \bf #1.#2 - #3}}% \def \ssparagraphestyle#1#2#3#4{% \noindent {\bf #1.#2.#3 - #4}}% %%%%% les macro de paragraphe %%%%% \def \paragraphe#1{% \par \ifb@@kstyle \vskip \bookstyleskip \penalty -500 \vskip -\bookstyleskip \fi \vskip \paragrapheskip \clearsparno \advance \parno by 1 \paragraphestyle {\the \parno }{#1} \par \nobreak \vskip \paragrapheskipafter } \def \finparagraphe{% }% \def \sparagraphe#1{% \par \penalty -50 \medskip \clearssparno \advance \sparno by 1 \noindent \sparagraphestyle {\the \parno }{\the \sparno }{#1} \par \nobreak \medskip } \def \finsparagraphe {% }% \def \ssparagraphe#1{% \par \penalty -50 \smallskip \advance \ssparno by 1 \noindent \ssparagraphestyle {\the \parno }{\the \sparno }{\the \ssparno }{#1} \par \nobreak \medskip } \def \ssfinparagraphe {% }% % =============== les styles ================= %% \def \numstyle#1{% %% {\bf #1.}}% %% \def \alphstyle#1{% %% {\sl \char #1\/})}% %% \newtoks \titrestyle \titrestyle = {\fourteenpoint \bf} %% \def \paragraphestyle#1#2{% %% \noindent %% {\fourteenpoint %% \bf #1. %% #2}}% %% \def \sparagraphestyle#1#2#3{% %% \noindent %% {\twelvepoint %% \bf #1.#2 - %% #3}}% %% \def \ssparagraphestyle#1#2#3#4{% %% \noindent %% {\bf #1.#2.#3 - %% #4}}% % % ============================================================================= % ============================== les remarques ================================ \def \remarque {% \medskip \item {} \begingroup \narrower \narrower \eightpoint \rm {\bf Remarque} -- } \def \finremarque {% \par \endgroup \medskip } \catcode`\@ = 12