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