Retour

Source de letter.tex

Fichier TeX
%% macros \expediteur et \destinataire permettant de faire l'en-tête
%% d'un courrier  3-8-96

\catcode`\@=11

\def \expediteur{%
   \dimen0 = 0pt
   \bgroup
   \setbox0 \box1		%% vide la boîte 1
   \obeylines
   \afterassignment \@expediteur 		%% permet de capturer (ds
   \let \next}					%% \next) le token suivant
\def \@expediteur{%		%% stocke le token suivant dans \next,
   \futurelet \next		%% sans l'extraire de la liste
   \expt@kentest}
\def \expt@kentest{%		%% teste le token \next et oriente
   \ifx \next \endexpediteur	%% vers l'arret ou non de la procedure
      \let \next \relax
   \else
      \let \next \@@expediteur
   \fi
   \next}
{\obeylines
\gdef \@@expediteur#1^^M{%	%% saisit une ligne d'argument, puis la stocke à la fin
   \setbox0=\hbox{\strut #1}%	%% de \box1 qui sera la boîte finale affichée
   \global \setbox1 = \vtop{\box1 \box0}
   \@expediteur}
} % fin de obeylines
\def \endexpediteur{%
   \endgraf
   \egroup				%% affiche la boîte addresse
   \box1
   \par}
\def \destinataire{%
   \dimen0 = 0pt
   \bgroup
   \setbox0 \box1		%% vide la boîte 1
   \obeylines
   \afterassignment \@destinataire 		%% permet de capturer (ds
   \let \next}					%% \next) le token suivant
\def \@destinataire{%		%% stocke le token suivant dans \next,
   \futurelet \next		%% sans l'extraire de la liste
   \destt@kentest}
\def \destt@kentest{%		%% teste le token \next et oriente
   \ifx \next \enddestinataire	%% vers l'arret ou non de la procedure
      \let \next \relax
   \else
      \let \next \@@destinataire
   \fi
   \next}
{\obeylines
\gdef \@@destinataire#1^^M{%	%% saisit une ligne d'argument, puis la stocke à la fin
   \setbox0=\hbox{\strut #1}%	%% de \box1 qui sera la boîte finale affichée
   \global \setbox1 = \vtop{\box1 \box0}
   \@destinataire}
} % fin de obeylines
\def \enddestinataire{%
   \endgraf
   \egroup				%% affiche la boîte addresse
   \hbox to \hsize{%			%% à droite de la page
      \hbox to .5\hsize{\hfill}
      \llap{destinataire~:}
      \hfill 
      \box1}
      \par}


\catcode`\@=12

%% exemple d'utilisation
%%    \destinataire
%%       NSI PARIS Centre
%%       38, rue du chemin vert
%%       75 011 PARIS
%%    \enddestinataire