Retour

Source de misenpge.tex

Fichier TeX
%% 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