summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-solides3d/doc/format-jpv.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-solides3d/doc/format-jpv.tex')
-rw-r--r--Master/texmf-dist/doc/generic/pst-solides3d/doc/format-jpv.tex1871
1 files changed, 1871 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-solides3d/doc/format-jpv.tex b/Master/texmf-dist/doc/generic/pst-solides3d/doc/format-jpv.tex
new file mode 100644
index 00000000000..6c1930dd53f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/pst-solides3d/doc/format-jpv.tex
@@ -0,0 +1,1871 @@
+%% fichier 'font.tex'
+\message{fonts,}
+
+\catcode `\@ = 11
+\def \ComputerModern {%
+
+ \font \fourtybf = cmbx10 at 40pt
+
+ \font \thirtybf = cmbx10 at 30pt
+
+ \font \twentyfivebf = cmbx10 at 24.88pt
+
+ \font \twentytt = cmtt10 at 20.74pt
+ \font \twentybf = cmbx10 at 20.74pt
+ \font \twentysl = cmsl10 at 20.74pt
+
+ \font \fourteenbf = cmbx10 scaled 1440
+ \font \fourteenrm = cmr10 scaled 1440
+ \font \fourteensc = cmcsc10 at 14.40pt
+ \font \fourteensy = cmsy10 at 14.40pt
+ \font \fourteenmsam = msam10 at 14.40pt
+ \font \fourteenmsbm = msbm10 at 14.40pt
+ \font \fourteenmi = cmmi10 at 14.40pt
+ \font \fourteensl = cmsl10 at 14.40pt
+ \font \fourteenit = cmti10 at 14.40pt
+ \font \fourteentt = cmtt10 at 14.40pt
+
+ \font \twelvemi = cmmi10 at 12pt
+ \font \twelvebf = cmbx12
+ \font \twelveit = cmti12
+ \font \twelverm = cmr12
+ \font \twelvesl = cmsl12
+ \font \twelvett = cmtt12
+ \font \twelvesy = cmsy10 at 12pt
+ \font \twelvemsam = msam10 at 12pt
+ \font \twelvemsbm = msbm10 at 12pt
+ \font \twelvesc = cmcsc10 at 12pt
+
+ \font \tenrm = cmr10
+ \font \tensl = cmsl10
+ \font \tenslbf = cmbxsl10
+ \font \tenit = cmti10
+ %% jp \font \tenli = cmli10
+ \font \tenbf = cmbx10
+ \font \tentt = cmtt10
+ \font \tenmi = cmmi10
+ \font \tenex = cmex10
+ \font \tensy = cmsy10
+ \font \tensc = cmcsc10
+ \font \tenmsam = msam10
+ \font \tenmsbm = msbm10
+ \font \tenbfmi = cmmib10
+ \font \tenssit = cmssi10
+ \font \tenss = cmss10
+ \font \tenwncyr = wncyr10
+
+ \font \ninerm = cmr9
+ \font \ninemi = cmmi9
+ \font \nineex = cmex9
+ \font \ninesy = cmsy9
+ \font \ninebf = cmbx9
+ \font \nineit = cmti9
+ \font \ninesl = cmsl9
+ \font \ninett = cmtt9
+ %% \font \nineli = cmli9
+ \font \ninemsam = msam10 at 9pt
+ \font \ninemsbm = msbm10 at 9pt
+ \font \ninesc = cmcsc9
+
+ \font \eighttt = cmtt8
+ \font \eightrm = cmr8
+ \font \eightmi = cmmi8
+ \font \eightsy = cmsy8
+ \font \eightmsam = msam10 at 8pt
+ \font \eightmsbm = msbm10 at 8pt
+ \font \eightbf = cmbx8
+ \font \eightex = cmex10 at 8pt
+ \font \eightit = cmti8
+ \font \eightsl = cmsl8
+
+ \font \sevenrm = cmr7
+ \font \sevenbf = cmbx7
+ \font \sevenmi = cmmi7
+ \font \sevenex = cmex7
+ \font \sevensy = cmsy7
+ \font \sevenmsam = msam10 at 7pt
+ \font \sevenmsbm = msbm10 at 7pt
+
+ %%\font \truesevenmi = cmmi7 at 7truept
+
+ \font \fiverm = cmr5
+ \font \fivebf = cmbx5
+ \font \fivemi = cmmi5
+ \font \fivesy = cmsy5
+ \font \fivemsam = msam10 at 5pt
+ \font \fivemsbm = msbm10 at 5pt
+ \font \fivesl = cmsl10 at 5pt
+
+ %%\font \truefivemi = cmmi5 at 5truept
+}
+
+
+%%Attention : ne jamais recharger ce fichier, car cela redefinit les numeros des
+%%familles suivantes, et le traitement des symboles de la famille \|\specialchar|
+%%s'en ressent, car ces symboles sont designes comme faisant partie de la famille
+%%8 (et non pas \|\specialchar|, qu'il n'est alors pas possible de designer
+%%formellement, voir le fichier SYMBOL.TEX)
+
+ %% jp \newfam \itfam % \it is family 4
+ %% jp \newfam \slfam % \sl is family 5
+ %% jp \newfam \bffam % \bf is family 6
+ %% jp \newfam \ttfam % \tt is family 7
+\newfam \specialchar % Family for blackboard bold symbols (family 8)
+\newfam \otherspecialchar % Family for others symbols (family 9)
+
+%%% la galere du jmath %%%
+\newbox \jmathbox
+\setbox \jmathbox \hbox {\bgroup \it j\egroup }
+\newdimen \tmpdimen
+\tmpdimen \ht \jmathbox
+\advance \tmpdimen by -2.1pt
+\ht \jmathbox \tmpdimen
+
+\def \putjmath {%
+ {\copy \jmathbox }}
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\def \Times {%
+
+ %%% la galere du jmath %%%
+ \let \jmath \putjmath
+ %%%%%%%%%%%%%%%%%%%%%%%%%
+
+ \font \fourtybf = ptmb at 40pt
+
+ \font \thirtybf = ptmb at 30pt
+
+ \font \twentyfivebf = ptmb at 24.88pt
+ \font \twentymi = zptmcmrm at 24.88pt
+
+ \font \twentytt = pcrb at 20.74pt
+ \font \twentybf = ptmb at 20.74pt
+ \font \twentysl = ptmro at 20.74pt
+
+ \font \fourteenbf = ptmb scaled 1440
+ \font \fourteenrm = ptmr scaled 1440
+ %% \font \fourteensc = cmcsc10 at 14.40pt
+ \font \fourteensy = zpzccmry at 14.40pt
+ \font \fourteenmsam = msam10 at 14.40pt
+ \font \fourteenmsbm = msbm10 at 14.40pt
+ \font \fourteenmi = zptmcmrm at 14.40pt
+ \font \fourteensl = ptmro at 14.40pt
+ \font \fourteenit = ptmri at 14.40pt
+ \font \fourteentt = pcrb at 14.40pt
+
+ \font \twelvemi = zptmcmrm at 12pt
+ \font \twelvebf = ptmb at 12pt
+ \font \twelveit = ptmri at 12pt
+ \font \twelverm = ptmr at 12pt
+ \font \twelvesl = ptmro at 12pt
+ \font \twelvett = pcrb at 12pt
+ \font \twelvesy = zpzccmry at 12pt
+ \font \twelvemsam = msam10 at 12pt
+ \font \twelvemsbm = msbm10 at 12pt
+ %% \font \twelvesc = cmcsc10 at 12pt
+
+ \font \tenrm = ptmr
+ \font \tensl = ptmro
+ \font \tenslbf = cmbxsl10
+ \font \tenit = ptmri
+ %% jp \font \tenli = cmli10
+ \font \tenbf = ptmb
+ \font \tentt = pcrb
+%% \font \tenmi = zptmcm7m at 10pt
+%% \font \tenex = zpsycmrv at 10pt
+%% \font \tensy = zptmcm7y at 10pt
+ \font \tenmi = zptmcmrm at 10pt
+ \font \tenex = zpsycmrv at 10pt
+ \font \tensy = zpzccmry at 10pt
+ \font \tensc = cmcsc10
+ \font \tenmsam = msam10
+ \font \tenmsbm = msbm10
+ \font \tenbfmi = cmmib10
+ \font \tenssit = cmssi10
+ \font \tenss = cmss10
+ \font \tenwncyr = wncyr10
+
+ \font \ninerm = ptmr at 9pt
+ \font \ninemi = zptmcmrm at 9pt
+ \font \nineex = zpsycmrv at 9pt
+ \font \ninesy = zpzccmry at 9pt
+ \font \ninebf = ptmb at 9pt
+ \font \nineit = ptmri at 9pt
+ \font \ninesl = ptmro at 9pt
+ \font \ninett = pcrb at 9pt
+ %% \font \nineli = cmli9
+ \font \ninemsam = msam10 at 9pt
+ \font \ninemsbm = msbm10 at 9pt
+ \font \ninesc = cmcsc9
+
+ \font \eighttt = pcrb at 8pt
+ \font \eightrm = ptmr at 8pt
+ \font \eightmi = zptmcmrm at 8pt
+ \font \eightsy = zpzccmry at 8pt
+ \font \eightmsam = msam10 at 8pt
+ \font \eightmsbm = msbm10 at 8pt
+ \font \eightbf = cmbx8
+ \font \eightex = zpsycmrv at 8pt
+ \font \eightit = ptmri at 8pt
+ \font \eightsl = ptmro at 8pt
+
+ \font \sevenrm = ptmr at 7pt
+ \font \sevenbf = ptmb at 7pt
+ \font \sevenmi = zptmcmrm at 7pt
+ \font \sevenex = zpsycmrv at 7pt
+ \font \sevensy = zpzccmry at 7pt
+ \font \sevenmsam = msam10 at 7pt
+ \font \sevenmsbm = msbm10 at 7pt
+
+ %%\font \truesevenmi = cmmi7 at 7truept
+
+ \font \fiverm = ptmr at 5pt
+ \font \fivebf = ptmb at 5pt
+ \font \fivemi = zptmcmrm at 5pt
+ \font \fivesy = zpzccmry at 5pt
+ \font \fivemsam = msam10 at 5pt
+ \font \fivemsbm = msbm10 at 5pt
+ \font \fivesl = cmsl10 at 5pt
+}
+
+\def \Palatino {%
+
+ %%% la galere du jmath %%%
+ \let \jmath \putjmath
+ %%%%%%%%%%%%%%%%%%%%%%%%%
+
+ \font \fourtybf = pplb at 40pt
+
+ \font \thirtybf = pplb at 30pt
+
+ \font \twentyfivebf = pplb at 24.88pt
+
+ \font \twentytt = pcrb at 20.74pt
+ \font \twentybf = pplb at 20.74pt
+ \font \twentysl = pplro at 20.74pt
+
+ \font \fourteenbf = pplb scaled 1440
+ \font \fourteenrm = pplr scaled 1440
+ %% \font \fourteensc = cmcsc10 at 14.40pt
+ \font \fourteensy = zpzccmry at 14.40pt
+ \font \fourteenmsam = msam10 at 14.40pt
+ \font \fourteenmsbm = msbm10 at 14.40pt
+ \font \fourteenmi = zptmcmrm at 14.40pt
+ \font \fourteensl = pplro at 14.40pt
+ \font \fourteenit = pplri at 14.40pt
+ \font \fourteentt = pcrb at 14.40pt
+
+ \font \twelvemi = zptmcmrm at 12pt
+ \font \twelvebf = pplb at 12pt
+ \font \twelveit = pplri at 12pt
+ \font \twelverm = pplr at 12pt
+ \font \twelvesl = pplro at 12pt
+ \font \twelvett = pcrb at 12pt
+ \font \twelvesy = zpzccmry at 12pt
+ \font \twelvemsam = msam10 at 12pt
+ \font \twelvemsbm = msbm10 at 12pt
+ %% \font \twelvesc = cmcsc10 at 12pt
+
+ \font \tenrm = pplr
+ \font \tensl = pplro
+ \font \tenslbf = cmbxsl10
+ \font \tenit = pplri
+ %% jp \font \tenli = cmli10
+ \font \tenbf = pplb
+ \font \tentt = pcrb
+ \font \tenmi = zptmcmrm at 10pt
+ \font \tenex = zpsycmrv at 10pt
+ \font \tensy = zpzccmry at 10pt
+ \font \tensc = cmcsc10
+ \font \tenmsam = msam10
+ \font \tenmsbm = msbm10
+ \font \tenbfmi = cmmib10
+ \font \tenssit = cmssi10
+ \font \tenss = cmss10
+ \font \tenwncyr = wncyr10
+
+ \font \ninerm = pplr at 9pt
+ \font \ninemi = zptmcmrm at 9pt
+ \font \nineex = zpsycmrv at 9pt
+ \font \ninesy = zpzccmry at 9pt
+ \font \ninebf = pplb at 9pt
+ \font \nineit = pplri at 9pt
+ \font \ninesl = pplro at 9pt
+ \font \ninett = pcrb at 9pt
+ %% \font \nineli = cmli9
+ \font \ninemsam = msam10 at 9pt
+ \font \ninemsbm = msbm10 at 9pt
+ \font \ninesc = cmcsc9
+
+ \font \eighttt = pcrb at 8pt
+ \font \eightrm = pplr at 8pt
+ \font \eightmi = zptmcmrm at 8pt
+ \font \eightsy = zpzccmry at 8pt
+ \font \eightmsam = msam10 at 8pt
+ \font \eightmsbm = msbm10 at 8pt
+ \font \eightbf = cmbx8
+ \font \eightex = zpsycmrv at 8pt
+ \font \eightit = pplri at 8pt
+ \font \eightsl = pplro at 8pt
+
+ \font \sevenrm = pplr at 7pt
+ \font \sevenbf = pplb at 7pt
+ \font \sevenmi = zptmcmrm at 7pt
+ \font \sevenex = zpsycmrv at 7pt
+ \font \sevensy = zpzccmry at 7pt
+ \font \sevenmsam = msam10 at 7pt
+ \font \sevenmsbm = msbm10 at 7pt
+
+ %%\font \truesevenmi = cmmi7 at 7truept
+
+ \font \fiverm = pplr at 5pt
+ \font \fivebf = pplb at 5pt
+ \font \fivemi = pplri at 5pt
+ \font \fivesy = zpzccmry at 5pt
+ \font \fivemsam = msam10 at 5pt
+ \font \fivemsbm = msbm10 at 5pt
+ \font \fivesl = cmsl10 at 5pt
+}
+
+%% fichier 'symbol.tex'
+%%Les definitions suivantes permettent de gerer les symboles speciaux, par
+%%famille. Le premier chiffre hexadecimal designe la classe du symbole, ici
+%%ordinaire, le second la famille (designee en absolu), ici 8, les
+%%deux derniers la position du caractere dans la fonte.
+
+\mathchardef \aset = "0841
+\mathchardef \bset = "0842
+\mathchardef \cset = "0843
+\mathchardef \dset = "0844
+\mathchardef \eset = "0845
+\mathchardef \fset = "0846
+\mathchardef \gset = "0847
+\mathchardef \hset = "0848
+\mathchardef \iset = "0849
+\mathchardef \jset = "084A
+\mathchardef \kset = "084B
+\mathchardef \lset = "084C
+\mathchardef \mset = "084D
+\mathchardef \nset = "084E
+\mathchardef \oset = "084F
+\mathchardef \pset = "0850
+\mathchardef \qset = "0851
+\mathchardef \rset = "0852
+\mathchardef \sset = "0853
+\mathchardef \tset = "0854
+\mathchardef \uset = "0855
+\mathchardef \vset = "0856
+\mathchardef \wset = "0857
+\mathchardef \xset = "0858
+\mathchardef \yset = "0859
+\mathchardef \zset = "085A
+
+\mathchardef \subsetneq = "3820 %% symbole d'inclusion stricte
+
+\def\zseti {\zset [i]}
+\def\qseti {\qset [i]}
+
+% ========= quelques operateurs mathematiques ===========
+\def \pgcd {\mathop {\rm pgcd}}
+\def \arctan {\mathop {\rm Arctan}}
+\def \cotan {\mathop {\rm cotan}}
+\def \ch {\mathop {\rm ch} \nolimits }
+\def \sh {\mathop {\rm sh} \nolimits }
+\def \th {\mathop {\rm th} \nolimits }
+\def \argch {\mathop {\rm Argch} \nolimits }
+\def \argsh {\mathop {\rm Argsh} \nolimits }
+\def \argth {\mathop {\rm Argth} \nolimits }
+\def \arcsin {\mathop {\rm Arcsin}}
+\def \arccos {\mathop {\rm Arccos}}
+\def \arg {\mathop {\rm Arg}}
+\def \Id {\mathop {\rm Id}}
+\def \id {\mathop {\rm Id}}
+\def \im {\mathop {\rm Im}}
+\def \tr {\mathop {\rm Tr} \nolimits }
+\def \card {\mathop {\rm Card} \nolimits }
+\def \true {\mathop {\rm true} \nolimits }
+\def \false {\mathop {\rm false} \nolimits }
+\def \signe {\mathop {\rm signe}}
+\def \cov {\mathop {\rm cov}}
+\def \mod {\mathop {\rm mod}}
+% =========== les dimensions ====================
+\def \rd {\mathop {\rm rd} \nolimits }
+\def \mm {\mathop {\rm mm} \nolimits }
+\def \cm {\mathop {\rm cm} \nolimits }
+\def \dm {\mathop {\rm dm} \nolimits }
+\def \km {\mathop {\rm km} \nolimits }
+\def \m {\mathop {\rm m} \nolimits }
+\def \h {\mathop {\rm h} \nolimits }
+\def \mn {\mathop {\rm mn} \nolimits }
+\def \s {\mathop {\rm s} \nolimits }
+\def \ms {\mathop {\rm ms} \nolimits }
+\def \g {\mathop {\rm g} \nolimits }
+\def \kg {\mathop {\rm kg} \nolimits }
+\def \N {\mathop {\rm N} \nolimits }
+\def \l {\mathop {\rm l} \nolimits }
+\def \daN {\mathop {\rm danN} \nolimits }
+\def \Hz {\mathop {\rm Hz} \nolimits }
+
+\def \rem {\mathop {\rm rem} \nolimits }
+\def \mGy {\mathop {\rm mGy} \nolimits }
+\def \mSv {\mathop {\rm mSv} \nolimits }
+\def \mR {\mathop {\rm mR} \nolimits }
+\def \Ci {\mathop {\rm Ci} \nolimits }
+\def \Bq {\mathop {\rm Bq} \nolimits }
+
+\def \Me {\mathop {\rm Me} \nolimits }
+% ========= caracteres speciaux ====================
+\def \bull{% le carre noir
+ \vrule height .9ex width .8ex depth -.1ex}
+%% la macro suivante pose un probleme~: les guillemets sont
+%% toujours en 10 pts !!!
+\long \def \og#1\fg{% les guillemets francais
+ \bgroup
+ {\tenwncyr \char 60}~%
+ \ignorespaces
+ #1\unskip
+ ~{\tenwncyr \char 62}%
+ \egroup }
+%% on redefinit les signes de comparaisons >= et <= pour avoir les
+%% symboles francais
+\mathchardef\leq="3936 % code hexadecimal 36 de la famille 9, type relation (3)
+\mathchardef\geq="393E
+
+
+%%\def \brem {\mskip -\medmuskip\mkern5mu
+%% \mathbin{\rm rem} \penalty900 \mkern5mu \mskip -\medmuskip}
+%%
+%%\def \bmodulo {\mskip -\medmuskip\mkern5mu
+%% \mathbin{\bf mod} \penalty900 \mkern5mu \mskip -\medmuskip}
+
+
+\def\MyCancel#1#2{\ooalign{$\hfil#1\mkern-3.5mu\hbox{\it/}\hfil$\crcr$#1#2$}}
+\def\notmid{\mathrel{\mathpalette\MyCancel\mid}}
+
+%% fichier 'style.tex'
+\catcode `\@ = 11
+
+\def \eightpoint
+ {\textfont \z@ \eightrm \def \rm {\fam \z@ \eightrm }%
+ \baselineskip 9pt \lineskip 0.833pt \lineskiplimit 0pt
+ \textfont \@ne \eightmi \scriptfont \@ne \fivemi %% modif jp \sevenmi
+ \scriptscriptfont \@ne \fivemi \def \mit {\fam \@ne }%
+ \textfont \tw@ \eightsy
+ \textfont3 \eightex
+ \textfont \specialchar \eightmsbm
+ \textfont \otherspecialchar \eightmsam
+ \textfont \bffam \eightbf \def \bf {\fam \bffam \eightbf }%
+ \textfont \itfam \eightit \def \it {\fam \itfam \eightit }%
+ \textfont \ttfam \eighttt \def \tt {\fam \ttfam \eighttt }%
+ \textfont \slfam \eightsl \def \sl {\fam \slfam \eightsl }%
+ \setbox \strutbox \hbox {\vrule height 7pt depth 2pt width 0pt}%
+ }
+
+\def \ninepoint
+ {\textfont \z@ \ninerm \scriptfont \z@ \sevenrm
+ \scriptscriptfont \z@ \fiverm \def \rm {\fam \z@ \ninerm }%
+ \textfont \@ne \ninemi \scriptfont \@ne \sevenmi
+ \scriptscriptfont \@ne \fivemi \def \mit {\fam \@ne }%
+ \def \oldstyle {\fam \@ne \ninemi }%
+ \textfont \tw@ \ninesy \scriptfont \tw@ \sevensy
+ \scriptscriptfont \tw@ \fivesy \def \cal {\fam \tw@ }%
+ \textfont3 \nineex \scriptfont3 \sevenex
+ \scriptscriptfont3 \sevenex
+ \textfont \bffam \ninebf \scriptfont \bffam \sevenbf
+ \scriptscriptfont \bffam \fivebf \def \bf {\fam \bffam \ninebf }%
+ \textfont \itfam \nineit \def \it {\fam \itfam \nineit }%
+ \textfont \slfam \ninesl \def \sl {\fam \slfam \ninesl }%
+ \textfont \ttfam \ninett \def \tt {\fam \ttfam \ninett }%
+ \let \sc \ninesc
+ \textfont \specialchar \ninemsbm \scriptfont \specialchar \sevenmsbm
+ \textfont \otherspecialchar \ninemsam
+ \scriptfont \otherspecialchar \sevenmsam
+ \normalbaselineskip 10pt
+ \abovedisplayskip 6pt plus 1pt minus 6pt
+ \abovedisplayshortskip 0pt plus 2pt
+ \belowdisplayskip 6pt plus 1pt minus 6pt
+ \belowdisplayshortskip 4pt plus 1pt minus 3pt
+ \setbox \strutbox \hbox {\vrule height 8pt depth 2pt width 0pt}%
+ \normalbaselines
+ }
+
+\def \tenpoint
+ {\textfont \z@ \tenrm \scriptfont \z@ \sevenrm
+ \scriptscriptfont \z@ \fiverm \def \rm {\fam \z@ \tenrm }%
+ \textfont \@ne \tenmi \scriptfont \@ne \sevenmi
+ \scriptscriptfont \@ne \fivemi \def \mit {\fam \@ne }%
+ \def \oldstyle {\fam \@ne \tenmi }%
+ \textfont \tw@ \tensy \scriptfont \tw@ \sevensy
+ \scriptscriptfont \tw@ \fivesy \def \cal {\fam \tw@ }%
+ \textfont3 \tenex \scriptfont3 \sevenex
+ \scriptscriptfont3 \sevenex
+ \textfont \bffam \tenbf \scriptfont \bffam \sevenbf
+ \scriptscriptfont \bffam \fivebf \def \bf {\fam \bffam \tenbf }%
+ \textfont \itfam \tenit \def \it {\fam \itfam \tenit }%
+ \textfont \slfam \tensl \def \sl {\fam \slfam \tensl }%
+ \textfont \ttfam \tentt \def \tt {\fam \ttfam \tentt }%
+ \let \sc \tensc
+ \textfont \specialchar \tenmsbm
+ \scriptfont \specialchar \sevenmsbm
+ \textfont \otherspecialchar \tenmsam
+ \scriptfont \otherspecialchar \sevenmsam
+ \scriptscriptfont \otherspecialchar \fivemsam
+ \abovedisplayskip 9pt plus 2pt minus 6pt
+ \abovedisplayshortskip 0pt plus 2pt
+ \belowdisplayskip 9pt plus 2pt minus 6pt
+ \belowdisplayshortskip 5pt plus 2pt minus 3pt
+%% \baselineskip 11pt \lineskip 1pt
+ \baselineskip 12pt \lineskip 1pt
+ \lineskiplimit 0pt %% change le 20-07-91
+ \setbox \strutbox \hbox {\vrule height 8.5pt depth 3.5pt width 0pt}%
+ }
+
+\def \twelvepoint
+ {\textfont \z@ \twelverm \scriptfont \z@ \tenrm
+ \scriptscriptfont \z@ \sevenrm \def \rm {\fam \z@ \twelverm }%
+ \textfont \@ne \twelvemi \scriptfont \@ne \tenmi
+ \scriptscriptfont \@ne \sevenmi \def \mit {\fam \@ne }%
+ \textfont \tw@ \twelvesy
+ \textfont \specialchar \twelvemsbm
+ \textfont \otherspecialchar \twelvemsam
+ \textfont \bffam \twelvebf \scriptfont \bffam \tenbf
+ \scriptscriptfont \bffam \sevenbf \def \bf {\fam \bffam \twelvebf }%
+ \textfont \ttfam \twelvett \def \tt {\fam \ttfam \twelvett }%
+ \let \sc \twelvesc
+ \def \it {\twelveit }\def \sl {\twelvesl }\def \tt {\twelvett }%
+ \baselineskip 14pt \lineskiplimit 2pt \lineskip 2pt
+ }
+
+\def \fourteenpoint
+ {\textfont \z@ \fourteenrm \scriptfont \z@ \twelverm
+ \scriptscriptfont \z@ \tenrm \def \rm {\fam \z@ \fourteenrm }%
+ \textfont \@ne \fourteenmi \scriptfont \@ne \twelvemi
+ \scriptscriptfont \@ne \ninemi \def \mit {\fam \@ne }%
+ \textfont \tw@ \fourteensy
+ \textfont \specialchar \fourteenmsbm
+ \textfont \otherspecialchar \fourteenmsam
+ \textfont \bffam \fourteenbf \scriptfont \bffam \twelvebf
+ \scriptscriptfont \bffam \tenbf \def \bf {\fam \bffam \fourteenbf }%
+ \def \it {\fourteenit }\def \sl {\fourteensl }\def \tt {\fourteentt }%
+ }
+
+\let \footnotestyle = \eightpoint
+ %% jp \let \remarkstyle = \ninepoint
+ %% jp \let \headlinestyle = \ninepoint
+
+\catcode `\@ = 12
+%% fichier 'newplain.tex'
+% redef de certaines macros du format plain.tex
+
+\catcode`\@=11
+
+\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ #1\@sf\vfootnote{#1}}
+\def\vfootnote#1{\insert\footins\bgroup
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \textindent{#1}\footstrut\futurelet\next\fo@t}
+\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
+ \else\let\next\f@t\fi \next}
+\def\f@@t{\bgroup\aftergroup\@foot\let\next}
+\def\f@t#1{#1\@foot}
+\def\@foot{\strut\egroup}
+\def\footstrut{\vbox to\splittopskip{}}
+\skip\footins=\bigskipamount % space added when footnote is present
+\count\footins=1000 % footnote magnification factor (1 to 1)
+\dimen\footins=8in % maximum footnotes per page
+
+
+
+% redefinition de la macro \footnote (TeXbook p 416)
+\def \footnote#1{%
+ \edef \@sf{%
+ \spacefactor \the \spacefactor}%
+ #1\@sf
+ \insert \footins \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} % elimine l'accolade ouvrante qui suit
+\skip \footins = 12pt plus 2pt minus 4pt % space addes when footnote exists
+\dimen \footins = 30pc % maximum footnote per page
+
+% =================== redef de \do ==================================
+
+\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~\do\|}
+
+% =================== redef de \item =================================
+
+\newskip \itemindent \itemindent = \parindent
+
+\parindent = 0pt
+
+\def\hang{\hangindent\itemindent}
+\def\textindent#1{\hskip\itemindent\llap{#1\enspace}\ignorespaces}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\hskip\itemindent \hangindent2\itemindent \textindent}
+\def\narrower{\advance\leftskip\itemindent
+ \advance\rightskip\itemindent}
+
+\catcode`\@=12
+%% fichier 'fr-kbd.tex'
+% ======== adaptation au clavier accentue ================
+\catcode `\é = \active \def é{\ifmmode \acute e\else \' e\fi }
+\catcode `\è = \active \def è{\ifmmode \grave e\else \` e\fi }
+\catcode `\à = \active \def à{\ifmmode \grave a\else \` a\fi }
+\catcode `\ù = \active \def ù{\ifmmode \grave u\else \` u\fi }
+\catcode `\ç = \active \def ç{\c c}
+\catcode `\â = \active \def â{\^ a}
+\catcode `\ê = \active \def ê{\^ e}
+\catcode `\î = \active \def î{\^ \i }
+\catcode `\ô = \active \def ô{\^ o}
+\catcode `\û = \active \def û{\^ u}
+\catcode `\ä = \active \def ä{\" a}
+\catcode `\ë = \active \def ë{\" e}
+\catcode `\ï = \active \def ï{\" \i }
+\catcode `\ö = \active \def ö{\" o}
+\catcode `\ü = \active \def ü{\" u}
+\catcode `\° = \active \def °{^\circ }
+%% fichier 'sections.tex'
+%% Ce fichier contient toutes les macros concernant les sections
+%% et leur mise en page
+
+\catcode`\@ = 11
+
+% =============================== les parties =================================
+
+\newskip \partieskip \partieskip = 5pt plus 2pt minus 1pt
+\newskip \partieskipafter \partieskipafter = 1pt plus 3pt
+\newskip \paragrapheskip \paragrapheskip = 5pt plus 2pt minus 1pt
+\newskip \paragrapheskipafter \paragrapheskipafter = 1pt plus 3pt
+
+%% encadre dans la marge, en gras
+\def \llappartie#1{%
+ \par \noindent
+ \setbox0 = \hbox {\boxit {2pt}{\hbox {\bf \tvi height8pt depth0pt #1}}}%
+ \llap {\unhbox0\ }%
+ \ignorespaces
+ \initexo }
+
+%% centre sur la ligne, en gras
+\def \simplecenterpartie#1{%
+ \vskip \partieskip
+ \centerline {%
+ \twelvepoint
+ \bf
+ #1
+ \unhbox \baremebox }
+ \vskip \partieskipafter
+ \initexo }
+
+%% idem, + elabore
+\def \centerpartie#1{%
+ \par
+% \vskip 0pt plus 0,3\vsize
+ \penalty -50
+% \vskip 0pt plus -0,3\vsize
+% \bigbreak
+ \vskip \partieskip
+ \centerline{%
+ \twelvepoint
+ \bf
+ -- Partie #1 --
+% \unhbox \baremebox
+}
+ \penalty 10000
+ \vskip \partieskipafter
+ \initexo }
+
+%% idem, avec 2 arguments
+\def \doublecenterpartie#1#2{%
+ \par
+% \vskip 0pt plus 0,3\vsize
+ \penalty -50
+% \vskip 0pt plus -0,3\vsize
+% \bigbreak
+ \vskip \partieskip
+ \centerline{%
+ \twelvepoint
+ \bf
+ -- Partie #1 --
+ \unhbox \baremebox
+ {\sl #2}}
+ \penalty 10000
+ \vskip \partieskipafter
+ \initexo }
+
+%% discret
+\def \discretpartie#1{%
+ \initexo
+ \par
+ {\bf #1.}}
+
+%% la partie par defaut
+\let \partie \discretpartie
+
+% =============================================================================
+
+% =============================== les titres ==================================
+
+%% aussi bizarre que cela puisse paraitre, je laisse la macro '\duree'
+%% associee au titre
+\newbox \dureebox
+\def \cleardureebox {%
+ \setbox \dureebox = \box \dureebox }
+\cleardureebox
+\def \clearduree {%
+ \setbox 100 \hbox {\unhbox \dureebox }}
+
+\def \duree#1{%
+ \setbox \dureebox \hbox {\sevenrm \underbar {durée}~: #1}}
+
+\newskip \titreskip \titreskip = 10pt plus 10pt minus 10pt
+\newskip \titreskipafter \titreskipafter = 10pt plus 10pt minus 10pt
+\newskip \stitreskip \stitreskip = 5pt plus 5pt minus 5pt
+\newskip \stitreskipafter \stitreskipafter = 5pt plus 5pt minus 5pt
+\newtoks \titrestyle \titrestyle = {\fourteenpoint \bf }
+
+\def \titre#1{%
+ \par
+ \ifb@@kstyle
+ \vskip \bookstyleskip
+ \penalty -500
+ \vskip -\bookstyleskip
+ \fi
+ \bgroup % pour limiter la portee de la def de \\
+ \def \\{% % commande qui est utilisee pour passer a la ligne dans un titre
+ \hss
+ \egroup % ferme la \hbox to \hsize en cours
+ \hbox to \hsize \bgroup % et rouvre la suivante
+ \the \titrestyle
+ \hss}
+ \vskip 0pt plus 0,3\vsize
+ \penalty -250
+ \vskip 0pt plus -0,3\vsize
+ \vskip \titreskip
+ \hbox to \hsize \bgroup \hss \the \titrestyle #1 \hss \egroup
+ \egroup
+ \par
+ \writetocentry {chapter}{#1}
+ \nobreak
+ \ifvoid \dureebox
+ \else \line{\hfill \unhcopy \dureebox }
+ \fi
+ \vskip \titreskipafter
+ \nobreak }
+
+\def \titredate#1{%
+ \par
+ \ifb@@kstyle
+ \vskip \bookstyleskip
+ \penalty -500
+ \vskip -\bookstyleskip
+ \fi
+ \bgroup % pour limiter la portee de la def de \\
+ \def \\{% % commande qui est utilisee pour passer a la ligne dans un titre
+ \hss
+ \egroup % ferme la \hbox to \hsize en cours
+ \hbox to \hsize \bgroup % et rouvre la suivante
+ \the \titrestyle
+ \hss}
+ \vskip 0pt plus 0,3\vsize
+ \penalty -250
+ \vskip 0pt plus -0,3\vsize
+ \vskip \titreskip
+ \llap {\box \datebox}
+ \hbox to \hsize \bgroup \hss \the \titrestyle #1 \hss \egroup
+ \egroup
+ \par
+ \writetocentry {chapter}{#1}
+ \nobreak
+ \ifvoid \dureebox
+ \else \line{\hfill \unhcopy \dureebox }
+ \fi
+ \vskip \titreskipafter
+ \nobreak }
+
+\def \stitre#1{%
+ \vskip \stitreskip
+ \centerline {\stitrestyle {#1}}
+ \vskip \stitreskipafter }%
+
+% =============================================================================
+
+% ========================== macros de numerotation ===========================
+
+%%%%% les variables et leurs initialisations %%%%%
+
+\newcount \numno
+\def \clearnumno{%
+ \global\numno = 0}
+\clearnumno
+
+\newcount \alphno
+\def \clearalphno{%
+ \global\alphno = `\a
+ \global\advance \alphno by -1}
+\clearalphno
+
+\newskip \itemnumskip \itemnumskip = 0pt
+\newskip \itemalphskip \itemalphskip = 0pt
+\newskip \itemalphnumskip \itemalphnumskip = 0pt
+
+%%%%% reglage du style d'affichage %%%%%
+
+\def \numstyle#1{%
+ {\bf #1.}}
+\def \alphstyle#1{%
+ {\sl \char #1\/})}
+
+%%%%% les macros de numerotation %%%%%
+%% \def \initalphnum {%
+%% }
+\def \initalph {%
+ }
+\def \initnum {%
+ \clearalphno }
+
+\def \num {%
+ \initnum
+ \global \advance \numno by 1
+ \numstyle {\the \numno }}%
+ %% \alph est en prévision du remaniement, ce n'est qu'une
+ %% copie de \alphnum, mais elle permet de commencer à
+ %% essayer de coder de facon plus cohérente ...
+ %% jp 31-05-96
+\def \alph {%
+ \initalph
+ \global \advance \alphno by 1
+ \alphstyle {\alphno }}
+\def \alphnum {%
+ \num \
+ \alph }
+\def \itemnum {%
+ \vskip \itemnumskip
+ \item {\num }}
+\def \itemitemnum {%
+ \vskip \itemnumskip
+ \itemitem {\num }}
+\def \itemalph {%
+ \vskip \itemalphskip
+ \item {\alph }}
+\def \itemitemalph {%
+ \vskip \itemalphskip
+ \itemitem {\alph }}
+\def \itemalphnum {%
+ \vskip \itemnumskip
+ \item {\num } \alph \ }
+\def \itemitemalphnum {%
+ \vskip \itemnumskip
+ \itemitem {\num \quad \hskip .1 em \alph }}
+% =============================================================================
+
+
+% =============================== les exercices ===============================
+%
+% ========= macros de section ==============
+% ========================= les exemples ======================================
+
+\newcount \exempleno
+\def \clearexempleno{%
+ \global\exempleno = 0}
+\clearexempleno
+
+\def \exemple#1{%
+ \medbreak
+ \advance \exempleno by 1
+ \noindent
+ {\bf Exemple ({\oldstyle \the \exempleno }) . \sl #1}
+ \par
+ \nobreak
+ \smallskip
+ \begingroup
+ \parskip = 4 pt }
+
+\def \finexemple {%
+ \removelastskip
+ \par
+ \removelastskip
+ \hfill
+ \bull
+ \endgroup
+ \smallbreak }
+
+% =============================================================================
+
+% ============================ le bookstyle ===================================
+%
+\newif \ifb@@kstyle % flag indiquant si on accepte les paragraphes
+ % en bas de page
+\b@@kstylefalse % oui par defaut
+\newskip \bookstyleskip % le mini de bas de page autorise pour un
+ % paragraphe
+\bookstyleskip = 0.3\vsize
+\def \bookstyle {%
+ \footline = {\hss \tenrm \folio \hss }
+ \b@@kstyletrue }
+\def \bookstylefalse {%
+ \b@@kstylefalse }
+\def \onepagestyle {\b@@kstylefalse }
+
+% =============================================================================
+
+% ============================== les paragraphes ==============================
+
+%%%%% les variables et leurs initialisations %%%%%
+
+\newcount \parno
+\def \clearparno {%
+ \clearsparno
+ \parno = 0}
+
+\newcount \sparno
+\def \clearsparno {%
+ \clearssparno
+ \sparno = 0}
+
+\newcount \ssparno
+\def \clearssparno{%
+ \ssparno = 0}
+
+%%%%% reglage du style d'affichage %%%%%
+
+\def \paragraphestyle#1#2{%
+ \noindent
+ {\fourteenpoint
+ \bf #1.
+ #2}}%
+\def \sparagraphestyle#1#2#3{%
+ \noindent
+ {\twelvepoint
+ \bf #1.#2 -
+ #3}}%
+\def \ssparagraphestyle#1#2#3#4{%
+ \noindent
+ {\bf #1.#2.#3 -
+ #4}}%
+
+%%%%% les macro de paragraphe %%%%%
+
+\def \paragraphe#1{%
+ \par
+ \ifb@@kstyle
+ \vskip \bookstyleskip
+ \penalty -500
+ \vskip -\bookstyleskip
+ \fi
+ \penalty -50
+ \vskip \paragrapheskip
+ \clearsparno
+ \advance \parno by 1
+ \paragraphestyle {\the \parno }{#1}
+ \par
+ \writetocentry {paragraf}{#1}
+ \nobreak
+ \vskip \paragrapheskipafter }
+
+\def \finparagraphe{%
+ }%
+
+\def \sparagraphe#1{%
+ \par
+ \penalty -50
+ \medskip
+ \clearssparno
+ \advance \sparno by 1
+ \noindent
+ \sparagraphestyle {\the \parno }{\the \sparno }{#1}
+ \par
+ \writetocentry {sparagraf}{#1}
+ \nobreak
+ \medskip }
+\def \finsparagraphe {%
+ }%
+\def \ssparagraphe#1{%
+ \par
+ \penalty -50
+ \smallskip
+ \advance \ssparno by 1
+ \noindent
+ \ssparagraphestyle {\the \parno }{\the \sparno }{\the \ssparno }{#1}
+ \par
+ \writetocentry {ssparagraf}{#1}
+ \nobreak
+ \medskip }
+\def \ssfinparagraphe {%
+ }%
+
+% ============================== les remarques ================================
+
+\def \remarque {%
+ \medskip
+ \item {}
+ \begingroup
+ \narrower
+ \narrower
+ \eightpoint \rm
+ {\bf Remarque}
+ -- }
+\def \finremarque {%
+ \par
+ \endgroup
+ \medskip }
+
+\catcode`\@ = 12
+
+% EPSF.TEX macro file:
+% Written by Tomas Rokicki of Radical Eye Software, 29 Mar 1989.
+% Revised by Don Knuth, 3 Jan 1990.
+% Revised by Tomas Rokicki to accept bounding boxes with no
+% space after the colon, 18 Jul 1990.
+%
+% TeX macros to include an Encapsulated PostScript graphic.
+% Works by finding the bounding box comment,
+% calculating the correct scale values, and inserting a vbox
+% of the appropriate size at the current position in the TeX document.
+%
+% To use with the center environment of LaTeX, preface the \epsffile
+% call with a \leavevmode. (LaTeX should probably supply this itself
+% for the center environment.)
+%
+% To use, simply say
+% \input epsf % somewhere early on in your TeX file
+% \epsfbox{filename.ps} % where you want to insert a vbox for a figure
+%
+% Alternatively, you can type
+%
+% \epsfbox[0 0 30 50]{filename.ps} % to supply your own BB
+%
+% which will not read in the file, and will instead use the bounding
+% box you specify.
+%
+% The effect will be to typeset the figure as a TeX box, at the
+% point of your \epsfbox command. By default, the graphic will have its
+% `natural' width (namely the width of its bounding box, as described
+% in filename.ps). The TeX box will have depth zero.
+%
+% You can enlarge or reduce the figure by saying
+% \epsfxsize=<dimen> \epsfbox{filename.ps}
+% (or
+% \epsfysize=<dimen> \epsfbox{filename.ps})
+% instead. Then the width of the TeX box will be \epsfxsize and its
+% height will be scaled proportionately (or the height will be
+% \epsfysize and its width will be scaled proportiontally). The
+% width (and height) is restored to zero after each use.
+%
+% A more general facility for sizing is available by defining the
+% \epsfsize macro. Normally you can redefine this macro
+% to do almost anything. The first parameter is the natural x size of
+% the PostScript graphic, the second parameter is the natural y size
+% of the PostScript graphic. It must return the xsize to use, or 0 if
+% natural scaling is to be used. Common uses include:
+%
+% \epsfxsize % just leave the old value alone
+% 0pt % use the natural sizes
+% #1 % use the natural sizes
+% \hsize % scale to full width
+% 0.5#1 % scale to 50% of natural size
+% \ifnum#1>\hsize\hsize\else#1\fi % smaller of natural, hsize
+%
+% If you want TeX to report the size of the figure (as a message
+% on your terminal when it processes each figure), say `\epsfverbosetrue'.
+%
+\newread\epsffilein % file to \read
+\newif\ifepsffileok % continue looking for the bounding box?
+\newif\ifepsfbbfound % success?
+\newif\ifepsfverbose % report what you're making?
+\newif\ifepsfdraft % use draft mode?
+\newdimen\epsfxsize % horizontal size after scaling
+\newdimen\epsfysize % vertical size after scaling
+\newdimen\epsftsize % horizontal size before scaling
+\newdimen\epsfrsize % vertical size before scaling
+\newdimen\epsftmp % register for arithmetic manipulation
+\newdimen\pspoints % conversion factor
+%
+\pspoints=1bp % Adobe points are `big'
+\epsfxsize=0pt % Default value, means `use natural size'
+\epsfysize=0pt % ditto
+%
+\def\epsfbox#1{\global\def\epsfllx{72}\global\def\epsflly{72}%
+ \global\def\epsfurx{540}\global\def\epsfury{720}%
+ \def\lbracket{[}\def\testit{#1}\ifx\testit\lbracket
+ \let\next=\epsfgetlitbb\else\let\next=\epsfnormal\fi\next{#1}}%
+%
+\def\epsfgetlitbb#1#2 #3 #4 #5]#6{\epsfgrab #2 #3 #4 #5 .\\%
+ \epsfsetgraph{#6}}%
+%
+\def\epsfnormal#1{\epsfgetbb{#1}\epsfsetgraph{#1}}%
+%
+\def\epsfgetbb#1{%
+%
+% The first thing we need to do is to open the
+% PostScript file, if possible.
+%
+\openin\epsffilein=#1
+\ifeof\epsffilein\errmessage{I couldn't open #1, will ignore it}\else
+%
+% Okay, we got it. Now we'll scan lines until we find one that doesn't
+% start with %. We're looking for the bounding box comment.
+%
+ {\epsffileoktrue \chardef\other=12
+ \def\do##1{\catcode`##1=\other}\dospecials \catcode`\ =10
+ \loop
+ \read\epsffilein to \epsffileline
+ \ifeof\epsffilein\epsffileokfalse\else
+%
+% We check to see if the first character is a % sign;
+% if not, we stop reading (unless the line was entirely blank);
+% if so, we look further and stop only if the line begins with
+% `%%BoundingBox:'.
+%
+ \expandafter\epsfaux\epsffileline:. \\%
+ \fi
+ \ifepsffileok\repeat
+ \ifepsfbbfound\else
+ \ifepsfverbose\message{No bounding box comment in #1; using defaults}\fi\fi
+ }\closein\epsffilein\fi}%
+%
+% Now we have to calculate the scale and offset values to use.
+% First we compute the natural sizes.
+%
+\def\epsfclipon{\def\epsfclipstring{ clip}}%
+\def\epsfclipoff{\def\epsfclipstring{\ifepsfdraft\space clip\fi}}%
+\epsfclipoff
+%
+\def\epsfsetgraph#1{%
+ \epsfrsize=\epsfury\pspoints
+ \advance\epsfrsize by-\epsflly\pspoints
+ \epsftsize=\epsfurx\pspoints
+ \advance\epsftsize by-\epsfllx\pspoints
+%
+% If `epsfxsize' is 0, we default to the natural size of the picture.
+% Otherwise we scale the graph to be \epsfxsize wide.
+%
+ \epsfxsize\epsfsize\epsftsize\epsfrsize
+ \ifnum\epsfxsize=0 \ifnum\epsfysize=0
+ \epsfxsize=\epsftsize \epsfysize=\epsfrsize
+ \epsfrsize=0pt
+%
+% We have a sticky problem here: TeX doesn't do floating point arithmetic!
+% Our goal is to compute y = rx/t. The following loop does this reasonably
+% fast, with an error of at most about 16 sp (about 1/4000 pt).
+%
+ \else\epsftmp=\epsftsize \divide\epsftmp\epsfrsize
+ \epsfxsize=\epsfysize \multiply\epsfxsize\epsftmp
+ \multiply\epsftmp\epsfrsize \advance\epsftsize-\epsftmp
+ \epsftmp=\epsfysize
+ \loop \advance\epsftsize\epsftsize \divide\epsftmp 2
+ \ifnum\epsftmp>0
+ \ifnum\epsftsize<\epsfrsize\else
+ \advance\epsftsize-\epsfrsize \advance\epsfxsize\epsftmp \fi
+ \repeat
+ \epsfrsize=0pt
+ \fi
+ \else \ifnum\epsfysize=0
+ \epsftmp=\epsfrsize \divide\epsftmp\epsftsize
+ \epsfysize=\epsfxsize \multiply\epsfysize\epsftmp
+ \multiply\epsftmp\epsftsize \advance\epsfrsize-\epsftmp
+ \epsftmp=\epsfxsize
+ \loop \advance\epsfrsize\epsfrsize \divide\epsftmp 2
+ \ifnum\epsftmp>0
+ \ifnum\epsfrsize<\epsftsize\else
+ \advance\epsfrsize-\epsftsize \advance\epsfysize\epsftmp \fi
+ \repeat
+ \epsfrsize=0pt
+ \else
+ \epsfrsize=\epsfysize
+ \fi
+ \fi
+%
+% Finally, we make the vbox and stick in a \special that dvips can parse.
+%
+ \ifepsfverbose\message{#1: width=\the\epsfxsize, height=\the\epsfysize}\fi
+ \epsftmp=10\epsfxsize \divide\epsftmp\pspoints
+ \vbox to\epsfysize{\vfil\hbox to\epsfxsize{%
+ \ifnum\epsfrsize=0\relax
+ \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
+ llx=\epsfllx\space lly=\epsflly\space
+ urx=\epsfurx\space ury=\epsfury\space rwi=\number\epsftmp
+ \epsfclipstring}%
+ \else
+ \epsfrsize=10\epsfysize \divide\epsfrsize\pspoints
+ \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
+ llx=\epsfllx\space lly=\epsflly\space
+ urx=\epsfurx\space ury=\epsfury\space rwi=\number\epsftmp\space
+ rhi=\number\epsfrsize \epsfclipstring}%
+ \fi
+ \hfil}}%
+\global\epsfxsize=0pt\global\epsfysize=0pt}%
+%
+% We still need to define the tricky \epsfaux macro. This requires
+% a couple of magic constants for comparison purposes.
+%
+{\catcode`\%=12 \global\let\epsfpercent=%\global\def\epsfbblit{%BoundingBox}}%
+%
+% So we're ready to check for `%BoundingBox:' and to grab the
+% values if they are found.
+%
+\long\def\epsfaux#1#2:#3\\{\ifx#1\epsfpercent
+ \def\testit{#2}\ifx\testit\epsfbblit
+ \epsfgrab #3 . . . \\%
+ \epsffileokfalse
+ \global\epsfbbfoundtrue
+ \fi\else\ifx#1\par\else\epsffileokfalse\fi\fi}%
+%
+% Here we grab the values and stuff them in the appropriate definitions.
+%
+\def\epsfempty{}%
+\def\epsfgrab #1 #2 #3 #4 #5\\{%
+\global\def\epsfllx{#1}\ifx\epsfllx\epsfempty
+ \epsfgrab #2 #3 #4 #5 .\\\else
+ \global\def\epsflly{#2}%
+ \global\def\epsfurx{#3}\global\def\epsfury{#4}\fi}%
+%
+% We default the epsfsize macro.
+%
+\def\epsfsize#1#2{\epsfxsize}
+%
+% Finally, another definition for compatibility with older macros.
+%
+\let\epsffile=\epsfbox
+%% fichier 'illustr.tex'
+%% essais pour la creation d'une macro \illustrate
+%% version 1 (22/12/96)
+
+\catcode`\@ = 11
+
+\newbox \illustrateb@x
+
+\def \bmppath{}
+
+% ============== commandes de base =======================
+% affichage d'une \hbox de la taille desiree, cette hbox
+% contenant un ordre \special pour charger un fichier .bmp
+% ATTENTION : on utilise la macro \bmppath, initialisee au
+% vide pour commencer
+
+% la routine commnue aux suivantes
+\def \bmpillustr@te#1#2#3{% #1 = file, #2 = width, #3 = height
+ \setbox \illustrateb@x = \hbox{%
+ \special{bmp: \bmppath/#1
+ x=#2
+ y=#3}}
+ \dp \illustrateb@x = 0cm
+ \ht \illustrateb@x = #3
+ \wd \illustrateb@x = #2 }
+
+% la commande de base
+\def \bmpillustrate#1#2#3{% #1 = file, #2 = width, #3 = height
+ \bmpillustr@te{#1}{#2}{#3}
+ \box \illustrateb@x }
+
+% ici, on a en plus un \boxit
+\def \boxbmpillustrate#1#2#3{% #1 = file, #2 = width, #3 = height
+ \bmpillustr@te{#1}{#2}{#3}
+ \boxit{0.5pt}{\box \illustrateb@x }}
+
+% ici, on a en plus un \superboxit
+\def \superboxbmpillustrate#1#2#3{% #1 = file, #2 = width, #3 = height
+ \bmpillustr@te{#1}{#2}{#3}
+ \superboxit{0.5pt}{\box \illustrateb@x }}
+
+\newbox \illustrateb@x
+\newdimen \xsizeillustrateb@x
+\newdimen \ysizeillustrateb@x
+
+\def \epspath{}
+
+\newbox \legendb@x
+\def \legende#1{%
+ \setbox \legendb@x = \hbox{#1\tvi }}
+
+% la routine commune aux suivantes
+\def \epsillustr@te#1{% #1 = file
+ \setbox \illustrateb@x = \hbox{\epsfbox{#1}}
+ \xsizeillustrateb@x = \wd \illustrateb@x
+ \ysizeillustrateb@x = \ht \illustrateb@x
+}
+
+% la commande de base
+\def \epsillustrate#1{% #1 = file
+ \epsillustr@te{\epspath #1}
+ \box \illustrateb@x}
+
+% ici, on a en plus un \boxit
+\def \boxepsillustrate#1{% #1 = file
+ \epsillustr@te{\epspath #1}
+ \boxit{0.5pt}{\box \illustrateb@x}}
+
+% ici, on a en plus un \superboxit
+\def \boxepsillustrate#1{% #1 = file
+ \epsillustr@te{\epspath #1}
+ \vbox{%
+ \superboxit{0.5pt}{\box \illustrateb@x}
+ \hbox to \xsizeillustrateb@x {%
+ \hss
+ \box \legendb@x
+ \hss }
+ }}
+
+% ici, on a en plus un \superboxit
+\def \superboxepsillustrate#1{% #1 = file
+ \epsillustr@te{\epspath #1}
+ \vbox{%
+ \superboxit{0.5pt}{\box \illustrateb@x}
+ \hbox to \xsizeillustrateb@x {%
+ \hfil
+ \box \legendb@x
+ \hfil}
+ }}
+
+% ============== affichage en bordure du texte =========================
+
+% la macro modifiée de l'exercice 14.24 du TeXbook
+\let \savepar \par
+\def \hangcarryover{%
+ \edef \next{% %% sauvegarde les valeurs
+ \hangafter \the \hangafter %% courantes (qui sont remises
+ \hangindent \the \hangindent} %% à 0 à la fin du paragraphe)
+ \savepar
+ \next %% restore \hangindent et \hangafter
+ \edef \next{%
+ \prevgraf \the \prevgraf} %% sauvegarde le nb de lignes déjà composées
+%%%%%%%%%%%%%%%% modif 26/11/96 \indent
+ \noindent
+ \next} %% et les restore
+
+% =============================== la figure a droite ===
+
+% ma tentative de \rightillustrate~: la commande de base, qui
+% permet d'afficher du 'vertical material' a droite du texte
+
+\def \rightillustrate#1#2{% % #1 = vertical material, #2 = nb lines
+ \setbox\tmpbox \vbox{\unvbox#1} % on stocke le materiel en box10,
+ \ht\tmpbox = 0pt % dont on annule ht et dp
+ \dp\tmpbox = 0pt
+ \line{% % on affiche dans une ligne de
+ \hfill % hauteur nulle
+ {\copy \tmpbox }}
+ \vskip-\baselineskip % on rectif le saut interligne
+ \hangindent = -1.1 \wd\tmpbox % et on prepare le decalage de droite
+ \hangafter = #2
+ \def \par{% %% on redéfinit le \par
+ \ifnum \prevgraf > -\hangafter %% qui reste actif tant que l'on
+ \let \par \savepar %% a pas composé suffisamment de lignes
+ \par
+ \else
+ \hangcarryover
+ \fi}}
+
+% les commandes annexes
+\def \rightbmpillustrate#1#2#3#4{% #1 = file, #2 = width, #3 = height, #4 = nb lines
+ \setbox \tmpbox \vbox{%
+ \bmpillustrate{#1}{#2}{#3}}
+ \rightillustrate{\tmpbox}{#4}}
+
+\def \rightboxbmpillustrate#1#2#3#4{% #1 = file, #2 = width, #3 = height, #4 = nb lines
+ \setbox \tmpbox \vbox{%
+ \boxbmpillustrate{#1}{#2}{#3}}
+ \rightillustrate{\tmpbox}{#4}}
+
+\def \rightsuperboxbmpillustrate#1#2#3#4{% #1 = file, #2 = width, #3 = height, #4 = nb lines
+ \setbox \tmpbox \vbox{%
+ \superboxbmpillustrate{#1}{#2}{#3}}
+ \rightillustrate{\tmpbox}{#4}}
+
+% les commandes annexes
+\def \rightepsillustrate#1#2{% #1 = file, #2 nb lines
+ \setbox \tmpbox \vbox{%
+ \epsillustrate{#1}}
+ \rightillustrate{\tmpbox}{#2}}
+
+\def \rightboxepsillustrate#1#2{% #1 = file, #2 = nb lines
+ \setbox \tmpbox \vbox{%
+ \boxepsillustrate{#1}}
+ \rightillustrate{\tmpbox}{#2}}
+
+\def \rightsuperboxepsillustrate#1#2{% #1 = file, #2 = nb lines
+ \setbox \tmpbox \vbox{%
+ \superboxepsillustrate{#1}}
+ \rightillustrate{\tmpbox}{#2}}
+
+% === la figure a gauche ===============================
+
+% ma tentative de \leftillustrate~: la commande de base, qui
+% permet d'afficher du 'vertical material' a gauche du texte
+
+\def \leftillustrate#1#2{% % #1 = vertical material, #2 = nb lines
+ \setbox10 \vbox{#1} % on stocke le materiel en box10,
+ \ht 10 = 0pt % dont on annule ht et dp
+ \dp 10 = 0pt
+ \line{% % on affiche dans une ligne de
+ {\copy 10 } % hauteur nulle
+ \hfill}
+ \vskip-\baselineskip % on rectif le saut interligne
+ \hangindent = 1.1 \wd10 % et on prepare le decalage de droite
+ \hangafter = #2
+ \def \par{% %% on redéfinit le \par
+ \ifnum \prevgraf > -\hangafter %% qui reste actif tant que l'on
+ \let \par \savepar %% a pas composé suffisamment de lignes
+ \par
+ \else
+ \hangcarryover
+ \fi}}
+
+% les commandes annexes
+\def \leftbmpillustrate#1#2#3#4{% #1 = vertical material, #2 = width
+ \leftillustrate{% % #3 = height, #4 = nb lines
+ \vbox{\bmpillustrate{#1}{#2}{#3}}}%
+ {#4}}
+
+\def \leftboxbmpillustrate#1#2#3#4{% #1 = vertical material, #2 = width
+ \leftillustrate{% % #3 = height, #4 = nb lines
+ \vbox{\boxbmpillustrate{#1}{#2}{#3}}}%
+ {#4}}
+
+\def \leftsuperboxbmpillustrate#1#2#3#4{% #1 = vertical material, #2 = width
+ \leftillustrate{% % #3 = height, #4 = nb lines
+ \vbox{\superboxbmpillustrate{#1}{#2}{#3}}}%
+ {#4}}
+
+% les commandes annexes
+\def \leftepsillustrate#1#2{% % #1 = vertical material, #2 = nb lines
+ \leftillustrate{%
+ \vbox{\epsillustrate{#1}}}%
+ {#2}}
+
+\def \leftboxepsillustrate#1#2{% #1 = vertical material, #2 = nb lines
+ \leftillustrate{%
+ \vbox{\boxepsillustrate{#1}}}%
+ {#2}}
+
+\def \leftsuperboxepsillustrate#1#2{% #1 = vertical material, #2 = nb lines
+ \leftillustrate{%
+ \vbox{\superboxepsillustrate{#1}}}%
+ {#2}}
+
+\catcode`\@ = 12
+
+%% test des macros \hangafter et \hangindent
+%% Ici, on reprend juste le test3, et on essaye
+%% de faire un peu plus propre
+
+%% fichier 'listing.tex'
+% cinquième etape de construction de la macro "listing"~:
+% la routine de sortie est modifiee (09/09/96), on reecrit totalement
+% le \input, on stocke dans des \vbox, et on donne le choix du
+% type de listing pour les coupures de page.
+% En plus, on reorganise tout ca, de facon a permettre une
+% macro \partiallisting.
+
+
+\catcode`\@ = 11
+
+% ===== numerotation des lignes
+\newif \ifwithlinen@ % avec numerotation des lignes~?
+\withlinen@true % oui par defaut
+
+\def \withlineno{% % selection de l'option de numerotation
+ \withlinen@true} % par des macros "visibles"
+\def \withoutlineno{%
+ \withlinen@false}
+
+\def \n@mline{% % affichage du no de ligne
+ \indent
+ \llap{\sevenrm \the\lineno~: \hskip .5em}}
+
+\newcount \lineno % no de la ligne courante
+\newcount \listingno % no de version de la macro (0 = coupure n'importe ou,
+ % 1 = coupure sur ligne vide)
+\newcount \beginlineno % no de la premiere ligne a afficher
+\newcount \endlineno % no de la derniere ligne a afficher
+
+\def \listingpath{% % le chemin d'acces, vide par defaut
+ }
+
+% ===== affectation des caracteres actifs
+{\obeylines \global \def \temoin{^^M}}
+% la ligne suivante pose probleme : elle rajoute un caractere dans le
+% .dvi (?). A noter que c'est pourtant la solution proposee dans le
+% Lachand-Robert...
+%%{\obeyspaces\global\let =\ }%
+% solution de Knuth : voir le fichier info.tex, ligne 41
+% ===== la boite pour encadrer le listing ligne par ligne
+\newbox \encadrbox
+\def \initencadrbox{%
+ \setbox \encadrbox =\hbox to \hsize{%
+ \vrule height 9pt depth 3pt
+ \hfil
+ \vrule height 9pt depth 3pt}
+ \ht \encadrbox = 0pt
+ \dp \encadrbox = 0pt
+ \wd \encadrbox = 0pt}
+
+\newbox \box@ % le titre du listing
+\newtoks \listingtoks
+\newread \currentfile
+
+% ===== passe en mode verbatim
+\def \verb@tim{%
+ \def \do##1{% % on prepare le verbatim
+ \catcode`##1=12 }%
+ \def°{% % pas tres propre ca, il s'agit
+ \char23} % d'un truc provisoire pour le "degre"
+ \dospecials
+ \obeyspaces
+ \def \par{%
+ \leavevmode
+ \endgraf}%
+ \obeylines
+ \eightpoint \tt} % style de fonte
+
+\def \writelistingline#1{% % #1 contient la ligne a traiter
+ \ifnum \lineno < \beginlineno % qu'on affiche seulement si
+ \else % le no de ligne courante
+ \ifnum \lineno > \endlineno % est dans l'intervalle convenable
+ \else
+ #1
+ \fi
+ \fi}
+
+% ===== traitement d'une ligne du fichier
+\def \traite@ne{%
+ \ifx \temoin \next % si le 1er caractere est RET
+ \writelistingline{\next} % c'est que la ligne est vide => on l'affiche
+ \ifeof \currentfile % si le fichier n'est pas fini
+ \else % alors on sauvegarde le no de ligne
+ \global \edef \rest@renum{\lineno \the \lineno}
+ \vss
+ \egroup % puis on ferme la boite
+ \mark{\the \listingtoks}
+ \immediate \wlog{*************** \the \listingtoks ******** }
+ \vbox\bgroup % on en ouvre une nouvelle
+ \rest@renum % et on restaure le no de ligne
+ \verb@tim
+ \fi
+ \else % la ligne n'est pas vide
+ \writelistingline{\next} % et on l'affiche telle que
+ \fi}
+
+% ===== lecture d'une ligne du fichier
+\def \read@ne{% % lit la ligne suivante et la
+ \read \currentfile to \next % stocke dans \next
+ \global \advance \lineno by 1
+ \ifnum \listingno = 1 % suivant le no de version
+ \traite@ne % on fait un traitement adequat
+ \else
+ \writelistingline{\next} % ou on affiche tel que
+ \fi
+ \ifeof \currentfile % si c'est fini,
+ \closein \currentfile % on ferme le fichier
+ \let \next \relax % et on arrete,
+ \else % sinon
+ \let \next \read@ne % on recommence
+ \fi
+ \next}
+
+\def \listing#1#2#3{% #1 = version number #2 = file name, #3 = title
+ \partiallisting{#1}{#2}{#3}{0}{10000}} % rque~: 10 000 en attendant mieux . . .
+
+\def \partiallisting#1#2#3#4#5{% #1 = version number #2 = file name, #3 = title
+ \bigbreak % #4 = no de la 1ere ligne, #5 = no de la derniere ligne
+ \vskip 2\baselineskip
+ \penalty -200
+ \vskip -2\baselineskip
+ \listingno = #1
+ \beginlineno = #4
+ \endlineno = #5
+ \immediate \wlog{Beginning listing of \listingpath #2}
+ \initencadrbox
+ \begingroup % DEBUT
+ \offinterlineskip
+ \listingtoks = {\tensl #3}
+ \everypar = {%
+ \hskip -\parindent
+ \copy \encadrbox
+ \strut
+ \ifwithlinen@
+ \n@mline
+ \else
+ \indent
+ \fi}
+ \parskip = 0pt
+ \lineno = 0
+ \ifwithlinen@
+ \parindent = 30pt
+ \else
+ \parindent = 20pt
+ \fi
+ \mark{\the\listingtoks}
+ \ifnum \listingno = 1 % si version 1, on met dans des \vbox
+ \vbox
+ \fi
+ \bgroup % debut du groupe listing
+ \setbox\box@ = \hbox{\tensl #3} % recupere le titre pour en calculer la profondeur
+ \line{% % la 1ere ligne du cadre
+ \vrule height 0.4pt depth \dp\box@
+ \hrulefill
+ \quad \the \listingtoks \quad
+ \hrulefill
+ \vrule height 0.4pt depth \dp\box@}
+ \hbox to \hsize{% % la ligne vide qui suit
+ \vrule height 9pt depth 3pt
+ \hfil
+ \vrule height 9pt depth 3pt}
+ \verb@tim
+ \openin \currentfile = \listingpath #2 % ici on change le \input
+ \read@ne % et c'est \read@ne qui va lire le fichier
+ \endgraf
+ \nobreak
+ \hbox to \hsize{% % la ligne vide finale
+ \vrule height 9pt depth 0pt
+ \hfil
+ \vrule height 9pt depth 0pt}
+ \hrule % la \hrule de fin de listing
+ \egroup % fin du groupe listing
+ \endgroup % FIN
+ \mark{} % on restaure la marque
+ \immediate \wlog{End listing of #2}
+ \bigbreak}%
+
+% puis on modifie la routine de sortie
+\output = {%
+ \expandafter \listingchek \botmark \end} % c'est une astuce pour lire
+ % la \botmark en argument
+\def \listingchek#1\end{%
+ \def \next{#1} % % #1 contient la \botmark
+ \ifx \next \empty % % vide => pas de coupure
+ \else % % sinon
+ \setbox255 = \vbox to \vsize{% % on rajoute la ligne
+ \unvbox255 % correspondante a la page
+ \nointerlineskip % deja composee
+ \line{\copy \encadrbox \hfil \strut}
+ \nointerlineskip
+ \hbox to \hsize{%
+ \vsize = 0pt
+ \dotfill}}
+% \advance \dimen0 by -\prevdepth %
+% \kern \dimen0 %
+ \line{%
+ \vrule height 0pt depth 2.5pt
+ \dotfill \quad \sl \next % et la ligne (suite) a la
+ \hskip 1em (suite)\quad \dotfill % page suivante
+ \vrule height 0pt depth 2.5pt}
+ \line{\copy \encadrbox \strut \hfill} % avec une ligne vide
+ \fi
+ \plainoutput} % final~: on appelle la routine
+% % habituelle
+\catcode`\@ = 12
+
+%% 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
+
+% =============================================================================
+
+%% fichier 'info.tex'
+%% macros pour décrire des programmes. ref pp 420--422 du TeXbook
+%%
+
+
+\def \|{\leavevmode \hbox{\tt \char`\|}} % vertical line
+\def \°{\leavevmode \hbox{\tt \char23}} % ???
+
+\newskip \ttglue \ttglue = .5em plus.25em minus .15em
+
+\outer \def \begindisplay{%
+ \obeylines
+ \startdisplay}
+{\obeylines \gdef \startdisplay#1
+ {\catcode`\^^M=5%
+ $$#1 %
+ \halign\bgroup %
+ \indent ## \hfil && \qquad ## \hfil \cr}}
+\outer \def \enddisplay{%
+ \crcr
+ \egroup
+ $$}
+
+\chardef \other = 12
+
+\def \ttverbatim{%
+ \begingroup
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \obeyspaces
+ \obeylines %
+ \tt}
+
+{\obeyspaces \gdef {\ }} % \obeyspaces now gives \ , not \space
+
+\outer \def \begintt{%
+ $$
+ \let \par = \endgraf
+ \ttverbatim %
+ \parskip = 0pt %
+ \catcode`\|=0 %
+ \rightskip = -5pc %
+ \ttfinish}
+
+{\catcode`\| = 0 \catcode`\\=\other % | is temporary escape character
+|obeylines %
+|gdef |ttfinish#1^^M#2\endtt{%
+ #1 %
+ |vbox{#2} %
+ |endgroup %
+ $$}}
+
+% ci-dessous une astuce remarquable pour permettre d'écrire '|something|' et
+% d'avoir la phrase 'something' en ttverbatim.
+
+\catcode`\@ = 11
+
+\def \specialbar{%
+ \ifmmode
+ \def \next{|}
+ \else
+ \let \next = \speci@lbar
+ \fi
+ \next}
+\catcode`\|=\active \let| = \specialbar
+{\obeylines \gdef \speci@lbar{%
+ \ttverbatim %
+ \spaceskip = \ttglue %
+ \let^^M=\ %
+ \let|=\endgroup}}
+
+
+\catcode`\@ = 12
+
+\Times