%% fichier 'misenpge.tex' %% les differentes macros de mise en page % ============ macros de mises a jour ========= \def \today {% $\number \day $ \space \ifcase \month \or Janvier \or Février \or Mars \or Avril \or Mai \or Juin \or Juillet \or Août \or Septembre \or Octobre \or Novembre \or Décembre \fi $\number \year $} % ====================== referencage des documents =========================== %%%%% la date %%%%% \newbox \datebox \def \cleardatebox {% \setbox \datebox = \box \datebox } \cleardatebox \def \date#1{% \setbox \datebox \hbox {\eightpoint \rm #1}} %%%%% la classe %%%%% \newbox \classebox \def \clearclassebox {% \setbox \classebox = \box \classebox } \def \classe#1{% \setbox \classebox \hbox {\sevenrm #1}} %%%%% les references du document %%%%% \newbox \classificationbox \def \clearclassificationbox {% \setbox \classificationbox = \box \classificationbox } \clearclassificationbox \def \classification#1#2{% \setbox \classificationbox = \hbox {\eightpoint \rm {\bf #1} #2 \hfill }} % ============================================================================= %% \def \duree#1{% %% \setbox \dureebox %% \hbox {\sevenrm \underbar {durée}~: #1}}% %% \def \bareme#1{% %% \setbox \baremebox = % %% \hbox {({\sl #1 points\/}) }}% %% =============================================== % la définition suivante est destinée à être supprimée % (mauvaise conception) jp, 15-08-96 %\def \entete{% % \vskip \enteteskip % \line{\unhbox \classificationbox % \unhbox \classebox % \hfil % \quad % \unhbox \datebox} % \vskip \enteteskipafter}% %%%%%%%%% REMARQUE~: du coup, les variables \entete... sont inutiles % ============================ gestion de la headline ========================= \newtoks \lyceeheadline \newtoks \firstheadline \newtoks \oddheadline \newtoks \evenheadline \lyceeheadline = {% \unhcopy \classificationbox \unhcopy \classebox \hfil \quad \unhcopy \datebox } \headline = {% \ifnum \pageno = 1 \the\firstheadline \else \ifodd \pageno \the\oddheadline \else \the\evenheadline \fi \fi} \firstheadline = \lyceeheadline \oddheadline = \lyceeheadline \evenheadline = \lyceeheadline % ============================ gestion de la footline ========================= \newtoks \firstfootline \newtoks \oddfootline \newtoks \evenfootline \newtoks \lyceefootline \footline = {% \ifnum \pageno = 1 \the\firstfootline \else \ifodd \pageno \the\oddfootline \else \the\evenfootline \fi \fi } \lyceefootline = {\hss} \firstfootline = \lyceefootline \oddfootline = \lyceefootline \evenfootline = \lyceefootline % ============================================================================= % ============= la macro \repetita ================== % % syntaxe : \beginrepetita . . . \endrepetita enregistre la boîte % \repetita 3 repète 3 fois la boîte % ATTENTION, il faut finir la page par un \end, de plus, si % on veut profiter de l'en-tête (avec \date, \classification, etc...), % il faut enregistrer cet en-tête avant \beginrepetita \catcode`\@=11 \newbox \repetitabox \newcount \repetit@no \def \beginrepetita {% \hsize = 170truemm \vsize = 300truemm \topskip = 0pt \bottomskip = 0pt \hoffset -5truemm %% decalage vers la gauche \voffset -28truemm %% decalage vers le haut \nopagenumbers \null \setbox \repetitabox = \vbox \bgroup \def \footnote##1{% \edef \@sf {% \spacefactor \the \spacefactor }% ##1\@sf \global \setbox \footins \vbox \bgroup \eightpoint \rm \interlinepenalty = 100 \let \par = \endgraf \leftskip = 0pt \rightskip = 0pt \splittopskip = 10pt plus 1pt minus 1pt \floatingpenalty = 20000 \smallskip \item {##1} \bgroup \strut \aftergroup \@foot \let \next } \vskip 10truemm \makeheadline } \def \endrepetita {% \ifvoid \footins \else % footnote info is present \vskip \skip \footins \footnoterule \unvbox \footins \fi \ifr@ggedbottom \kern -\dimen@ \vfil \fi \makefootline \vfill \egroup \headline = {\hss }} \def \repetita {% \afterassignment \repetit@ \repetit@no =} \def \repetit@{% \null \unvcopy \repetitabox \advance \repetit@no by -1 \ifnum \repetit@no = 0 \else \hrule \repetit@ \fi } %% \newif \ifcompressrepetit@ \compressrepetit@false %% %% \def \compressrepetita{\compressrepetit@true} %% \def \uncompressrepetita{\compressrepetit@false} %% %% \def \beginrepetita{% %% % \voffset = -72pt % valeurs pour avoir une visualisation %% % \vsize = 308.2mm % complete sur ecran avec PCTeX pour Windows. %% \topskip = 0pt %% % \bottomskip = 0pt %% \hrule height 0pt % necessaire (?) pour obtenir la bonne hauteur %% \par % pour la première boîte. OK si \parskip = 3pt. %% % \voffset = -14mm % valeurs pour avoir une page centrée %% % verticalement avec mon Epson Stylus 800+ %% \voffset = -17.5mm % il manque 10mm pour la laser Hp 6MP %% \vsize = 265mm % à l'impression. %% % \advance \voffset by 10pt % correction due a un oubli du topskip %% % lors des premiers essais %% \setbox \repetitabox = \vbox %% \bgroup %% \def \footnote##1{% %% \edef \@sf{% %% \spacefactor \the \spacefactor}% %% ##1\@sf %% \global \setbox \footins \vbox \bgroup %% \eightpoint \rm %% \interlinepenalty = 100 %% \let \par = \endgraf %% \leftskip = 0pt %% \rightskip = 0pt %% \splittopskip = 10pt plus 1pt minus 1pt %% \floatingpenalty = 20000 %% \smallskip %% \item{##1} %% \bgroup %% \strut %% \aftergroup \@foot %% \let \next} %% \vfill %% \makeheadline} %% \def \endrepetita{% %% \ifvoid\footins %% \else % footnote info is present %% \vskip\skip\footins %% \footnoterule %% \unvbox\footins %% \fi %% \ifr@ggedbottom %% \kern-\dimen@ \vfil %% \fi %% \makefootline %% \vfill %% \egroup %% \headline={\hss}} %% \def \repetita{% %% \vbox to \vsize\bgroup %% \afterassignment \repetit@ %% \repetit@no =} %% \def \repetit@{% %% \null %% \unvcopy \repetitabox %% \advance \repetit@no by -1 %% \ifnum \repetit@no = 0 %% \egroup %% \else %% \ifcompressrepetit@ %% \hrule %% \repetit@ %% \else %% \vskip 5mm %% \hrule %% \vskip 20mm %% \repetit@ %% \fi %% \fi}% %% \catcode`\@=12