% liv.mac d:\travlivr 4 janvier 96 18h16 version 29 décembre 96 9h34 %\input newvidiani.mac %\input carnot.mac % Fichier VIDIANI.MAC version 5 janvier 96 21h08 %+----------------------------------------------------------------------------+ %| | %| Macros TeX pour VIDIANI | %| | %+----------------------------------------------------------------------------+ %------------------------------------------------------------------ Sécurité % Le code qui suit permet de ne charger les macros que la première fois % en cas d'appels multiples : \ifx\vidianicharge\undefined\let\next\relax\else\let\next\endinput\fi\next \def\vidianicharge{Vidiani chargé} \input carnotps.mac \catcode`\@=12 \def\trait{\vskip 2mm\hrule\vskip 2mm} \def\num#1{\sv\leavevmode\llap{\bf#1) }} % numéro dans la marge \def\cadrerelief{\let\fincadreinterne=\fincadrerelief\cadreinterne} \def\fincadrerelief{{% \setbox0=\hbox{\fincadredouble}% % texte à encadrer \offinterlineskip % empilement exact \setbox1=\vtop to 6pt{% % motif à répéter \vskip-1pt % \ tenu par le bout \hbox to 3pt{\hskip-0.5pt$\backslash$\hss}\vss}% % supérieur \setbox2=\vtop{\vskip-1.3pt\hbox{\hskip-1.7pt$\backslash$}}% % \ de référence \dimen0=\dp2\advance\dimen0-\dp1 % correction de profondeur \setbox0=\vtop{% % assemblage vertical \copy0 % texte \hbox to\wd0{\xleaders\copy1\hfil}% % hachures horizontales \vskip\dimen0 % corrige la profondeur \hbox to\wd0{\hskip\wd2\hrulefill\hskip-\wd2}}% % trait inférieur \dimen1=\ht0\advance\dimen1\dp0\advance\dimen1-\dimen0 % mesure hauteur totale \hbox{% % assemblage horizontal \copy0 % texte et hachures H \raise\ht0\vtop to\dimen1{\null\xleaders\copy1\vfil}% % hachures verticales \hskip-\wd1\hskip\wd2 % corrige la largeur \advance\dimen1\dimen0 % hauteur trait vertical \raise\ht0\vtop to\dimen1{\vskip\dp2\xleaders\vrule\vfil}}}} % trait droit % Cette macro m'a donné du fil à retordre ! Les \vskip et \hskip figurant % dans \box1 et \box2 ont été déterminées expérimentalement de sorte que % les traits obliques,horizontaux et verticaux se raccordent bien. Il est % possible que ça ne marche pas avec une \magnification différente de 1000. %----------------------------------------- tableau d'intégration par parties % % \IPP{u=... &du=... \cr dv=... &v=... \cr} produit le tableau : % % Ú u = ... ³ du = ... % ´ ³ % À dv = ... ³ v = ... % % Se placer en mode mathématique avant d'appeler la macro. \def\IPP#1{ \left\{\, % accolade ouvrante \vcenter{ % centrer ce qui suit \offinterlineskip % lignes collées pour le trait vertical \def\d##1{\ifx##1dd\else\phantom d##1\fi} % macro d'alignement : % si le 1er caractère n'est pas d, insère '\phantom d'. \halign{\strut$\d##$\hfil\quad\vrule\quad&$\d##$\hfil\cr#1}}% alignement \,\right.} % fausse accolade fermante %--------------------------------------------- Liste de termes et opérateurs % \liste a b(c,d,...,z) % a = macro fonction d'un paramètre % b = opérateur % c,d,...,z = paramètres pour la macro a ou \dots % résultat -> a{c} b a{d} b ... b a{z} % délimiteurs : a s'étend jusqu'au prochain espace % b s'étend jusqu'à la parenthèse ouvrante % exemples : \liste x_{#1} + (0,1,\dots,n) -> x_0 + x_1 + \dots + x_n % a \liste (a-#1) (1,\dots,n+1) -> a (a-1) \dots (a-n+1) \def\liste#1 #2(#3){% \def\elementliste##1{#1}% % enregistre la macro a \def\operateurliste{#2}% % enregistre l'opérateur b \suiteliste#3,)} % traite les indices \def\suiteliste#1,#2{% % #1 = indice suivant \ifx#1\dots\dots\else\elementliste{#1}\fi % \dots ou a{#1} \ifx#2)\let\next\relax % fin de liste ? \else\operateurliste % sinon place b \def\next{\suiteliste#2}\fi % et boucle \next} % \relax ou \suiteliste#2 %-------------------------------------------------- Fontes et symboles spéciaux \def\carre{{\tenmsa\char3}} % carré vide \def\Carre{{\tenmsa\char4}} % carré plein \def\perpg{\hbox{\tenmsa\char121}} % Ù \def\perpd{\hbox{\tenmsa\char120}} % À \def\liong{\ps{lion,,18pt,-1 0 0 1}} % petit lion tourné à gauche \def\liond{\ps{lion,,18pt}} % petit lion tourné à droite \def\Liong{\ps{lion,,40pt,-1 0 0 1}} % grand lion tourné à gauche \def\Liond{\ps{lion,,40pt}} % grand lion tourné à droite \def\vache{\ps{vache,,20pt}} % tête de vache \def\idee{\ps{idee,,20pt}} % ampoule électrique \def\danger{\ps{danger,,20pt}} % panneau de danger 20pt--10pt \def\Gliong{\ps{lion,,40pt,-1 0 0 1}} % petit lion tourné à gauche \def\Gliond{\ps{lion,,40pt}} % petit lion tourné à droite \def\GLiong{\ps{lion,,80pt,-1 0 0 1}} % grand lion tourné à gauche \def\GLiond{\ps{lion,,80pt}} % grand lion tourné à droite \def\Gvache{\ps{vache,,60pt}} % tête de vache \def\Gidee{\ps{idee,,40pt}} % ampoule électrique \def\Gdanger{\ps{danger,,40pt}} % panneau de danger %------------------------------ Portrait de Carnot ---------------------------- %\def\carnot#1#2{\leavevmode\hbox{% %\ifx h#1\font\temp=carnot scaled\magstephalf %\else\font\temp=carnot scaled \magstep#1\fi %\temp\char#2}} % ne marche plus : utiliser carnotg et ses confrères \def\carnotg{\ps{carnot,, 80pt}} \def\carnotd{\ps{carnot,, 80pt,-1 0 0 1}} \def\Gcarnotg{\ps{carnot,,160pt}} \def\Gcarnotd{\ps{carnot,,160pt,-1 0 0 1}} \def\carnot#1#2{\leavevmode\hbox{% \dimen0=18mm \ifx h#1\dimen0=1.095\dimen0 \else\ifx1#1\dimen0=1.2\dimen0 \else\ifx2#1\dimen0=1.44\dimen0 \else\ifx3#1\dimen0=1.728\dimen0 \else\ifx4#1\dimen0=2.0736\dimen0 \else\ifx5#1\dimen0=2.48832\dimen0 \fi\fi\fi\fi\fi\fi \ifx1#2\dimen0=2\dimen0\fi \ps{carnot,,\dimen0}}} \def\tvi{\vrule height 12pt depth 5pt width 0pt}\def\tv{\tvi\vrule} %------------------------------- Fin du fichier ------------------------------- \font\gros=cmbx10 scaled \magstep5 \font\Gros=cminch \font \gras=msam10 %{\gras \char'168 et 169 } orthogonaux de dualité \font \Gras=msam10 scaled\magstep5 \hskip -18mm %{\Gras \char'106} Etoile \font \goth=eufm10 scaled \magstep 0 %\font \etoile=zd scaled\magstep0 % 5 ne se voit pas en PS zd et non ZD % dans visite ext \def\para#1{{\tenbf( \S\kern .15em #1)}} % symbole paragraphe %\font \prover=prover at 10mm \def\essai#1#2{\leavevmode\cadrefin{\vbox{\halign{\hfil##\hfil\cr \carnot#1#2\cr\tt$\backslash$carnot #1#2\cr}}}} % initialement dans carnot.tex \def\makeheadline{\rm \ifodd\pageno\titreimpair\else\titrepair\fi \vskip 2mm\hrule\vskip 1mm \hrule \vskip3mm} \def\makefootline{} % enlève le folio du bas \def\trait{\vskip 2mm\hrule\vskip 2mm} \def\traitgras{\vskip 2mm\hrule height 2pt depth 2pt \vskip 2mm} %\def\titreimpair{\line{ {\fiverm d:-emtex-tipe tipelist.tex \hskip 3mm} %{\bf LISTE DES T.I.P.E. 96-97 %\hskip 3mm\Carre \hfil Mr VIDIANI Spé M1 CARNOT \hskip 2mm\liond\ \folio}} } %\def\titrepair{\line{\bf\folio \hfill %{\fiverm \ \ \ } %Underfull hbox si ce { même vide mais avec fonte} pas mis % en fait line demande une ligne complète : il faut hfill %{\bf LISTE DES T.I.P.E %\hskip 3mm\Carre Mr VIDIANI \hskip 2mm\liong}} } \null\vskip -12mm\noindent\leavevmode{\fiverm (version \date\ : \heure )} %XXXXXX DATE ET HEURE %\cadrefin{\vbox to 10mm {\hsize 30mm\leftskip 0mm\noindent\fiverm nom : %\hfill\vfill\noindent spé M1 carnot DIJON}}\hskip 1cm % LETTRINE (Larchand Robert p 378 ,+ Séroul p 83) attention % hangindent ne marche pas Truite.tex en deux colonnes %\font\lettrinefont=cmr10 scaled \magstep 5 % CORPS de la lettrine cmr10,cmbx10 %\font\lettrinefont=cmr10 at 55pt % CORPS de la lettrine cmr10,cmbx10 \font\lettrinefont=cmr10 at 55pt % CORPS de la lettrine cmr10,cmbx10 \font\smallcaps=cmcsc10 % fonte des petites capitales \newdimen\approche \approche=10pt \def\lettrine#1{% #1 est la lettrine+premières lettres \lettrineaux#1\end} \def\lettrineaux#1#2\end{\par\noindent \setbox0\hbox{\bf #1} % Marche avec gros Gros lettrinefont \setbox0\hbox{\lower\baselineskip\vbox{\box0}} \dimen0=\wd0 \advance\dimen0 by\approche \hangafter-2 \hangindent=\dimen0 \kern-\dimen0 \dp0=0pt \box0 {\smallcaps #2}}