root/trunk/doc/format-jpv.tex

Revision 2, 57.4 kB (checked in by jms, 9 months ago)

Version initiale, tombée du CTAN (3.02)

Line 
1 %% fichier 'font.tex'
2 \message{fonts,}
3
4 \catcode `\@ = 11
5 \def \ComputerModern {%
6
7    \font \fourtybf = cmbx10 at 40pt
8    
9    \font \thirtybf = cmbx10 at 30pt
10    
11    \font \twentyfivebf = cmbx10 at 24.88pt
12    
13    \font \twentytt = cmtt10 at 20.74pt
14    \font \twentybf = cmbx10 at 20.74pt
15    \font \twentysl = cmsl10 at 20.74pt
16    
17    \font \fourteenbf = cmbx10 scaled 1440
18    \font \fourteenrm = cmr10 scaled 1440
19    \font \fourteensc = cmcsc10 at 14.40pt
20    \font \fourteensy = cmsy10 at 14.40pt
21    \font \fourteenmsam = msam10 at 14.40pt
22    \font \fourteenmsbm = msbm10 at 14.40pt
23    \font \fourteenmi = cmmi10 at 14.40pt
24    \font \fourteensl = cmsl10 at 14.40pt
25    \font \fourteenit = cmti10 at 14.40pt
26    \font \fourteentt = cmtt10 at 14.40pt
27    
28    \font \twelvemi = cmmi10 at 12pt
29    \font \twelvebf = cmbx12
30    \font \twelveit = cmti12
31    \font \twelverm = cmr12
32    \font \twelvesl = cmsl12
33    \font \twelvett = cmtt12
34    \font \twelvesy = cmsy10 at 12pt
35    \font \twelvemsam = msam10 at 12pt
36    \font \twelvemsbm = msbm10 at 12pt
37    \font \twelvesc = cmcsc10 at 12pt
38    
39    \font \tenrm   = cmr10
40    \font \tensl   = cmsl10
41    \font \tenslbf = cmbxsl10
42    \font \tenit   = cmti10
43            %%  jp \font \tenli   = cmli10
44    \font \tenbf   = cmbx10
45    \font \tentt   = cmtt10
46    \font \tenmi   = cmmi10
47    \font \tenex   = cmex10
48    \font \tensy   = cmsy10
49    \font \tensc   = cmcsc10
50    \font \tenmsam = msam10
51    \font \tenmsbm = msbm10
52    \font \tenbfmi = cmmib10
53    \font \tenssit = cmssi10
54    \font \tenss   = cmss10
55    \font \tenwncyr = wncyr10
56    
57    \font \ninerm = cmr9
58    \font \ninemi = cmmi9
59    \font \nineex = cmex9
60    \font \ninesy = cmsy9
61    \font \ninebf = cmbx9
62    \font \nineit = cmti9
63    \font \ninesl = cmsl9
64    \font \ninett = cmtt9
65            %%   \font \nineli = cmli9
66    \font \ninemsam = msam10 at 9pt
67    \font \ninemsbm = msbm10 at 9pt
68    \font \ninesc = cmcsc9
69    
70    \font \eighttt = cmtt8
71    \font \eightrm = cmr8
72    \font \eightmi = cmmi8
73    \font \eightsy = cmsy8
74    \font \eightmsam = msam10 at 8pt
75    \font \eightmsbm = msbm10 at 8pt
76    \font \eightbf = cmbx8
77    \font \eightex = cmex10 at 8pt
78    \font \eightit = cmti8
79    \font \eightsl = cmsl8
80    
81    \font \sevenrm = cmr7
82    \font \sevenbf = cmbx7
83    \font \sevenmi = cmmi7
84    \font \sevenex = cmex7
85    \font \sevensy = cmsy7
86    \font \sevenmsam = msam10 at 7pt
87    \font \sevenmsbm = msbm10 at 7pt
88    
89    %%\font \truesevenmi = cmmi7 at 7truept
90    
91    \font \fiverm  = cmr5
92    \font \fivebf  = cmbx5
93    \font \fivemi  = cmmi5
94    \font \fivesy  = cmsy5
95    \font \fivemsam = msam10 at 5pt
96    \font \fivemsbm = msbm10 at 5pt
97    \font \fivesl = cmsl10 at 5pt
98    
99    %%\font \truefivemi  = cmmi5 at 5truept
100 }
101
102
103 %%Attention : ne jamais recharger ce fichier, car cela redefinit les numeros des
104 %%familles suivantes, et le traitement des symboles de la famille \|\specialchar|
105 %%s'en ressent, car ces symboles sont designes comme faisant partie de la famille
106 %%8 (et non pas \|\specialchar|, qu'il n'est alors pas possible de designer
107 %%formellement, voir le fichier SYMBOL.TEX)
108
109         %%  jp  \newfam \itfam         % \it is family 4
110         %%  jp  \newfam \slfam         % \sl is family 5
111         %%  jp  \newfam \bffam         % \bf is family 6
112         %%  jp  \newfam \ttfam         % \tt is family 7
113 \newfam \specialchar   % Family for blackboard bold symbols (family 8)
114 \newfam \otherspecialchar % Family for others symbols (family 9)
115
116 %%% la galere du jmath %%%
117 \newbox \jmathbox
118 \setbox \jmathbox \hbox {\bgroup \it j\egroup }
119 \newdimen \tmpdimen
120 \tmpdimen \ht \jmathbox
121 \advance \tmpdimen by -2.1pt
122 \ht \jmathbox \tmpdimen
123
124 \def \putjmath {%
125    {\copy \jmathbox }}
126 %%%%%%%%%%%%%%%%%%%%%%%%%
127
128
129 \def \Times {%
130
131    %%% la galere du jmath %%%
132    \let \jmath \putjmath
133    %%%%%%%%%%%%%%%%%%%%%%%%%
134    
135    \font \fourtybf = ptmb at 40pt
136    
137    \font \thirtybf = ptmb at 30pt
138    
139    \font \twentyfivebf = ptmb at 24.88pt
140    \font \twentymi   = zptmcmrm at 24.88pt
141    
142    \font \twentytt = pcrb at 20.74pt
143    \font \twentybf = ptmb at 20.74pt
144    \font \twentysl = ptmro at 20.74pt
145    
146    \font \fourteenbf = ptmb scaled 1440
147    \font \fourteenrm = ptmr scaled 1440
148    %% \font \fourteensc = cmcsc10 at 14.40pt
149    \font \fourteensy = zpzccmry at 14.40pt
150    \font \fourteenmsam = msam10 at 14.40pt
151    \font \fourteenmsbm = msbm10 at 14.40pt
152    \font \fourteenmi = zptmcmrm at 14.40pt
153    \font \fourteensl = ptmro at 14.40pt
154    \font \fourteenit = ptmri at 14.40pt
155    \font \fourteentt = pcrb at 14.40pt
156    
157    \font \twelvemi = zptmcmrm at 12pt
158    \font \twelvebf = ptmb at 12pt
159    \font \twelveit = ptmri at 12pt
160    \font \twelverm = ptmr at 12pt
161    \font \twelvesl = ptmro at 12pt
162    \font \twelvett = pcrb at 12pt
163    \font \twelvesy = zpzccmry at 12pt
164    \font \twelvemsam = msam10 at 12pt
165    \font \twelvemsbm = msbm10 at 12pt
166    %% \font \twelvesc = cmcsc10 at 12pt
167    
168    \font \tenrm   = ptmr
169    \font \tensl   = ptmro
170    \font \tenslbf = cmbxsl10
171    \font \tenit   = ptmri
172            %%  jp \font \tenli   = cmli10
173    \font \tenbf   = ptmb
174    \font \tentt   = pcrb
175 %%    \font \tenmi   = zptmcm7m at 10pt
176 %%    \font \tenex   = zpsycmrv at 10pt
177 %%    \font \tensy   = zptmcm7y at 10pt
178    \font \tenmi   = zptmcmrm at 10pt
179    \font \tenex   = zpsycmrv at 10pt
180    \font \tensy   = zpzccmry at 10pt
181    \font \tensc   = cmcsc10
182    \font \tenmsam = msam10
183    \font \tenmsbm = msbm10
184    \font \tenbfmi = cmmib10
185    \font \tenssit = cmssi10
186    \font \tenss   = cmss10
187    \font \tenwncyr = wncyr10
188    
189    \font \ninerm = ptmr at 9pt
190    \font \ninemi = zptmcmrm at 9pt
191    \font \nineex = zpsycmrv at 9pt
192    \font \ninesy = zpzccmry at 9pt
193    \font \ninebf = ptmb at 9pt
194    \font \nineit = ptmri at 9pt
195    \font \ninesl = ptmro at 9pt
196    \font \ninett = pcrb at 9pt
197            %%   \font \nineli = cmli9
198    \font \ninemsam = msam10 at 9pt
199    \font \ninemsbm = msbm10 at 9pt
200    \font \ninesc = cmcsc9
201    
202    \font \eighttt = pcrb at 8pt
203    \font \eightrm = ptmr at 8pt
204    \font \eightmi = zptmcmrm at 8pt
205    \font \eightsy = zpzccmry at 8pt
206    \font \eightmsam = msam10 at 8pt
207    \font \eightmsbm = msbm10 at 8pt
208    \font \eightbf = cmbx8
209    \font \eightex = zpsycmrv at 8pt
210    \font \eightit = ptmri at 8pt
211    \font \eightsl = ptmro at 8pt
212    
213    \font \sevenrm = ptmr at 7pt
214    \font \sevenbf = ptmb at 7pt
215    \font \sevenmi = zptmcmrm at 7pt
216    \font \sevenex = zpsycmrv at 7pt
217    \font \sevensy = zpzccmry at 7pt
218    \font \sevenmsam = msam10 at 7pt
219    \font \sevenmsbm = msbm10 at 7pt
220    
221    %%\font \truesevenmi = cmmi7 at 7truept
222    
223    \font \fiverm  = ptmr at 5pt
224    \font \fivebf  = ptmb at 5pt
225    \font \fivemi  = zptmcmrm at 5pt
226    \font \fivesy  = zpzccmry at 5pt
227    \font \fivemsam = msam10 at 5pt
228    \font \fivemsbm = msbm10 at 5pt
229    \font \fivesl = cmsl10 at 5pt
230 }
231
232 \def \Palatino {%
233
234    %%% la galere du jmath %%%
235    \let \jmath \putjmath
236    %%%%%%%%%%%%%%%%%%%%%%%%%
237    
238    \font \fourtybf = pplb at 40pt
239    
240    \font \thirtybf = pplb at 30pt
241    
242    \font \twentyfivebf = pplb at 24.88pt
243    
244    \font \twentytt = pcrb at 20.74pt
245    \font \twentybf = pplb at 20.74pt
246    \font \twentysl = pplro at 20.74pt
247    
248    \font \fourteenbf = pplb scaled 1440
249    \font \fourteenrm = pplr scaled 1440
250    %% \font \fourteensc = cmcsc10 at 14.40pt
251    \font \fourteensy = zpzccmry at 14.40pt
252    \font \fourteenmsam = msam10 at 14.40pt
253    \font \fourteenmsbm = msbm10 at 14.40pt
254    \font \fourteenmi = zptmcmrm at 14.40pt
255    \font \fourteensl = pplro at 14.40pt
256    \font \fourteenit = pplri at 14.40pt
257    \font \fourteentt = pcrb at 14.40pt
258    
259    \font \twelvemi = zptmcmrm at 12pt
260    \font \twelvebf = pplb at 12pt
261    \font \twelveit = pplri at 12pt
262    \font \twelverm = pplr at 12pt
263    \font \twelvesl = pplro at 12pt
264    \font \twelvett = pcrb at 12pt
265    \font \twelvesy = zpzccmry at 12pt
266    \font \twelvemsam = msam10 at 12pt
267    \font \twelvemsbm = msbm10 at 12pt
268    %% \font \twelvesc = cmcsc10 at 12pt
269    
270    \font \tenrm   = pplr
271    \font \tensl   = pplro
272    \font \tenslbf = cmbxsl10
273    \font \tenit   = pplri
274            %%  jp \font \tenli   = cmli10
275    \font \tenbf   = pplb
276    \font \tentt   = pcrb
277    \font \tenmi   = zptmcmrm at 10pt
278    \font \tenex   = zpsycmrv at 10pt
279    \font \tensy   = zpzccmry at 10pt
280    \font \tensc   = cmcsc10
281    \font \tenmsam = msam10
282    \font \tenmsbm = msbm10
283    \font \tenbfmi = cmmib10
284    \font \tenssit = cmssi10
285    \font \tenss   = cmss10
286    \font \tenwncyr = wncyr10
287    
288    \font \ninerm = pplr at 9pt
289    \font \ninemi = zptmcmrm at 9pt
290    \font \nineex = zpsycmrv at 9pt
291    \font \ninesy = zpzccmry at 9pt
292    \font \ninebf = pplb at 9pt
293    \font \nineit = pplri at 9pt
294    \font \ninesl = pplro at 9pt
295    \font \ninett = pcrb at 9pt
296            %%   \font \nineli = cmli9
297    \font \ninemsam = msam10 at 9pt
298    \font \ninemsbm = msbm10 at 9pt
299    \font \ninesc = cmcsc9
300    
301    \font \eighttt = pcrb at 8pt
302    \font \eightrm = pplr at 8pt
303    \font \eightmi = zptmcmrm at 8pt
304    \font \eightsy = zpzccmry at 8pt
305    \font \eightmsam = msam10 at 8pt
306    \font \eightmsbm = msbm10 at 8pt
307    \font \eightbf = cmbx8
308    \font \eightex = zpsycmrv at 8pt
309    \font \eightit = pplri at 8pt
310    \font \eightsl = pplro at 8pt
311    
312    \font \sevenrm = pplr at 7pt
313    \font \sevenbf = pplb at 7pt
314    \font \sevenmi = zptmcmrm at 7pt
315    \font \sevenex = zpsycmrv at 7pt
316    \font \sevensy = zpzccmry at 7pt
317    \font \sevenmsam = msam10 at 7pt
318    \font \sevenmsbm = msbm10 at 7pt
319    
320    %%\font \truesevenmi = cmmi7 at 7truept
321    
322    \font \fiverm  = pplr at 5pt
323    \font \fivebf  = pplb at 5pt
324    \font \fivemi  = pplri at 5pt
325    \font \fivesy  = zpzccmry at 5pt
326    \font \fivemsam = msam10 at 5pt
327    \font \fivemsbm = msbm10 at 5pt
328    \font \fivesl = cmsl10 at 5pt
329 }
330
331 %% fichier 'symbol.tex'
332 %%Les definitions suivantes permettent de gerer les symboles speciaux, par
333 %%famille. Le premier chiffre hexadecimal  designe la classe du symbole, ici
334 %%ordinaire, le second la famille (designee en absolu), ici 8, les
335 %%deux derniers la position du caractere dans la fonte.
336
337 \mathchardef \aset = "0841
338 \mathchardef \bset = "0842
339 \mathchardef \cset = "0843
340 \mathchardef \dset = "0844
341 \mathchardef \eset = "0845
342 \mathchardef \fset = "0846
343 \mathchardef \gset = "0847
344 \mathchardef \hset = "0848
345 \mathchardef \iset = "0849
346 \mathchardef \jset = "084A
347 \mathchardef \kset = "084B
348 \mathchardef \lset = "084C
349 \mathchardef \mset = "084D
350 \mathchardef \nset = "084E
351 \mathchardef \oset = "084F
352 \mathchardef \pset = "0850
353 \mathchardef \qset = "0851
354 \mathchardef \rset = "0852
355 \mathchardef \sset = "0853
356 \mathchardef \tset = "0854
357 \mathchardef \uset = "0855
358 \mathchardef \vset = "0856
359 \mathchardef \wset = "0857
360 \mathchardef \xset = "0858
361 \mathchardef \yset = "0859
362 \mathchardef \zset = "085A
363
364 \mathchardef \subsetneq = "3820 %% symbole d'inclusion stricte
365
366 \def\zseti {\zset [i]}
367 \def\qseti {\qset [i]}
368
369 % ========= quelques operateurs mathematiques ===========
370 \def \pgcd  {\mathop {\rm pgcd}}
371 \def \arctan {\mathop {\rm Arctan}}
372 \def \cotan {\mathop {\rm cotan}}
373 \def \ch {\mathop {\rm ch} \nolimits }
374 \def \sh {\mathop {\rm sh} \nolimits }
375 \def \th {\mathop {\rm th} \nolimits }
376 \def \argch {\mathop {\rm Argch} \nolimits }
377 \def \argsh {\mathop {\rm Argsh} \nolimits }
378 \def \argth {\mathop {\rm Argth} \nolimits }
379 \def \arcsin {\mathop {\rm Arcsin}}
380 \def \arccos {\mathop {\rm Arccos}}
381 \def \arg {\mathop {\rm Arg}}
382 \def \Id {\mathop {\rm Id}}
383 \def \id {\mathop {\rm Id}}
384 \def \im {\mathop {\rm Im}}
385 \def \tr {\mathop {\rm Tr} \nolimits }
386 \def \card {\mathop {\rm Card} \nolimits }
387 \def \true {\mathop {\rm true} \nolimits }
388 \def \false {\mathop {\rm false} \nolimits }
389 \def \signe {\mathop {\rm signe}}
390 \def \cov {\mathop {\rm cov}}
391 \def \mod {\mathop {\rm mod}}
392 % =========== les dimensions ====================
393 \def \rd {\mathop {\rm rd} \nolimits }
394 \def \mm {\mathop {\rm mm} \nolimits }
395 \def \cm {\mathop {\rm cm} \nolimits }
396 \def \dm {\mathop {\rm dm} \nolimits }
397 \def \km {\mathop {\rm km} \nolimits }
398 \def \m {\mathop {\rm m} \nolimits }
399 \def \h {\mathop {\rm h} \nolimits }
400 \def \mn {\mathop {\rm mn} \nolimits }
401 \def \s {\mathop {\rm s} \nolimits }
402 \def \ms {\mathop {\rm ms} \nolimits }
403 \def \g {\mathop {\rm g} \nolimits }
404 \def \kg {\mathop {\rm kg} \nolimits }
405 \def \N {\mathop {\rm N} \nolimits }
406 \def \l {\mathop {\rm l} \nolimits }
407 \def \daN {\mathop {\rm danN} \nolimits }
408 \def \Hz {\mathop {\rm Hz} \nolimits }
409
410 \def \rem {\mathop {\rm rem} \nolimits }
411 \def \mGy {\mathop {\rm mGy} \nolimits }
412 \def \mSv {\mathop {\rm mSv} \nolimits }
413 \def \mR {\mathop {\rm mR} \nolimits }
414 \def \Ci {\mathop {\rm Ci} \nolimits }
415 \def \Bq {\mathop {\rm Bq} \nolimits }
416
417 \def \Me {\mathop {\rm Me} \nolimits }
418 % ========= caracteres speciaux ====================
419 \def \bull{%   le carre noir
420    \vrule height .9ex width .8ex depth -.1ex}
421 %% la macro suivante pose un probleme~: les guillemets sont
422 %% toujours en 10 pts !!!
423 \long \def \og#1\fg{%   les guillemets francais
424    \bgroup
425    {\tenwncyr \char 60}~%
426    \ignorespaces
427    #1\unskip
428    ~{\tenwncyr \char 62}%
429    \egroup }
430 %% on redefinit les signes de comparaisons >= et <= pour avoir les
431 %% symboles francais
432 \mathchardef\leq="3936 % code hexadecimal 36 de la famille 9, type relation (3)
433 \mathchardef\geq="393E
434
435
436 %%\def \brem   {\mskip -\medmuskip\mkern5mu
437 %%            \mathbin{\rm rem} \penalty900 \mkern5mu \mskip -\medmuskip}
438 %%
439 %%\def \bmodulo {\mskip -\medmuskip\mkern5mu
440 %%            \mathbin{\bf mod} \penalty900 \mkern5mu \mskip -\medmuskip}
441
442
443 \def\MyCancel#1#2{\ooalign{$\hfil#1\mkern-3.5mu\hbox{\it/}\hfil$\crcr$#1#2$}}
444 \def\notmid{\mathrel{\mathpalette\MyCancel\mid}}
445
446 %% fichier 'style.tex'
447 \catcode `\@ = 11
448
449 \def \eightpoint
450     {\textfont \z@ \eightrm     \def \rm {\fam \z@ \eightrm }%
451     \baselineskip 9pt \lineskip 0.833pt \lineskiplimit 0pt
452     \textfont \@ne \eightmi        \scriptfont \@ne \fivemi %% modif jp \sevenmi
453     \scriptscriptfont \@ne \fivemi    \def \mit {\fam \@ne }%
454     \textfont \tw@ \eightsy
455     \textfont3 \eightex
456     \textfont \specialchar \eightmsbm
457     \textfont \otherspecialchar \eightmsam
458     \textfont \bffam \eightbf   \def \bf {\fam \bffam \eightbf }%
459     \textfont \itfam \eightit   \def \it {\fam \itfam \eightit }%
460     \textfont \ttfam \eighttt   \def \tt {\fam \ttfam \eighttt }%
461     \textfont \slfam \eightsl   \def \sl {\fam \slfam \eightsl }%
462     \setbox \strutbox \hbox {\vrule height 7pt depth 2pt width 0pt}%
463     }
464
465 \def \ninepoint
466     {\textfont \z@ \ninerm            \scriptfont \z@ \sevenrm
467     \scriptscriptfont \z@ \fiverm     \def \rm {\fam \z@ \ninerm }%
468     \textfont \@ne \ninemi            \scriptfont \@ne \sevenmi
469     \scriptscriptfont \@ne \fivemi    \def \mit {\fam \@ne }%
470     \def \oldstyle {\fam \@ne \ninemi }%
471     \textfont \tw@ \ninesy            \scriptfont \tw@ \sevensy
472     \scriptscriptfont \tw@ \fivesy    \def \cal {\fam \tw@ }%
473     \textfont3 \nineex                 \scriptfont3 \sevenex
474     \scriptscriptfont3 \sevenex
475     \textfont \bffam \ninebf          \scriptfont \bffam \sevenbf
476     \scriptscriptfont \bffam \fivebf  \def \bf {\fam \bffam \ninebf }%
477     \textfont \itfam \nineit          \def \it {\fam \itfam \nineit }%
478     \textfont \slfam \ninesl          \def \sl {\fam \slfam \ninesl }%
479     \textfont \ttfam \ninett          \def \tt {\fam \ttfam \ninett }%
480     \let \sc \ninesc
481     \textfont \specialchar \ninemsbm  \scriptfont \specialchar \sevenmsbm
482     \textfont \otherspecialchar \ninemsam 
483     \scriptfont \otherspecialchar \sevenmsam
484     \normalbaselineskip 10pt
485     \abovedisplayskip 6pt plus 1pt minus 6pt
486     \abovedisplayshortskip 0pt plus 2pt
487     \belowdisplayskip 6pt plus 1pt minus 6pt
488     \belowdisplayshortskip 4pt plus 1pt minus 3pt
489     \setbox \strutbox \hbox {\vrule height 8pt depth 2pt width 0pt}%
490     \normalbaselines
491     }
492
493 \def \tenpoint
494     {\textfont \z@ \tenrm             \scriptfont \z@ \sevenrm
495     \scriptscriptfont \z@ \fiverm     \def \rm {\fam \z@ \tenrm }%
496     \textfont \@ne \tenmi             \scriptfont \@ne \sevenmi
497     \scriptscriptfont \@ne \fivemi    \def \mit {\fam \@ne }%
498     \def \oldstyle {\fam \@ne \tenmi }%
499     \textfont \tw@ \tensy             \scriptfont \tw@ \sevensy
500     \scriptscriptfont \tw@ \fivesy    \def \cal {\fam \tw@ }%
501     \textfont3 \tenex                 \scriptfont3 \sevenex
502     \scriptscriptfont3 \sevenex
503     \textfont \bffam \tenbf           \scriptfont \bffam \sevenbf
504     \scriptscriptfont \bffam \fivebf  \def \bf {\fam \bffam \tenbf }%
505     \textfont \itfam \tenit           \def \it {\fam \itfam \tenit }%
506     \textfont \slfam \tensl           \def \sl {\fam \slfam \tensl }%
507     \textfont \ttfam \tentt           \def \tt {\fam \ttfam \tentt }%
508     \let \sc \tensc
509     \textfont \specialchar \tenmsbm
510     \scriptfont \specialchar \sevenmsbm
511     \textfont \otherspecialchar \tenmsam
512     \scriptfont \otherspecialchar \sevenmsam
513     \scriptscriptfont \otherspecialchar \fivemsam
514     \abovedisplayskip 9pt plus 2pt minus 6pt
515     \abovedisplayshortskip 0pt plus 2pt
516     \belowdisplayskip 9pt plus 2pt minus 6pt
517     \belowdisplayshortskip 5pt plus 2pt minus 3pt
518 %%    \baselineskip 11pt  \lineskip 1pt
519     \baselineskip 12pt  \lineskip 1pt
520     \lineskiplimit 0pt  %% change le 20-07-91
521     \setbox \strutbox \hbox {\vrule height 8.5pt depth 3.5pt width 0pt}%
522     }
523
524 \def \twelvepoint
525        {\textfont \z@ \twelverm          \scriptfont \z@ \tenrm
526        \scriptscriptfont \z@ \sevenrm    \def \rm {\fam \z@ \twelverm }%
527        \textfont \@ne \twelvemi          \scriptfont \@ne \tenmi
528        \scriptscriptfont \@ne \sevenmi   \def \mit {\fam \@ne }%
529        \textfont \tw@ \twelvesy
530        \textfont \specialchar \twelvemsbm
531        \textfont \otherspecialchar \twelvemsam
532        \textfont \bffam \twelvebf        \scriptfont \bffam \tenbf
533        \scriptscriptfont \bffam \sevenbf \def \bf {\fam \bffam \twelvebf }%
534        \textfont \ttfam \twelvett        \def \tt {\fam \ttfam \twelvett }%
535        \let \sc \twelvesc
536        \def \it {\twelveit }\def \sl {\twelvesl }\def \tt {\twelvett }%
537        \baselineskip 14pt \lineskiplimit 2pt \lineskip 2pt
538        }
539
540 \def \fourteenpoint
541      {\textfont \z@ \fourteenrm          \scriptfont \z@ \twelverm
542      \scriptscriptfont \z@ \tenrm    \def \rm {\fam \z@ \fourteenrm }%
543      \textfont \@ne \fourteenmi        \scriptfont \@ne \twelvemi
544      \scriptscriptfont \@ne \ninemi    \def \mit {\fam \@ne }%
545      \textfont \tw@ \fourteensy
546      \textfont \specialchar \fourteenmsbm
547      \textfont \otherspecialchar \fourteenmsam
548      \textfont \bffam \fourteenbf        \scriptfont \bffam \twelvebf
549      \scriptscriptfont \bffam \tenbf \def \bf {\fam \bffam \fourteenbf }%
550      \def \it {\fourteenit }\def \sl {\fourteensl }\def \tt {\fourteentt }%
551       }
552
553 \let \footnotestyle = \eightpoint
554         %%  jp  \let \remarkstyle   = \ninepoint
555         %%  jp  \let \headlinestyle = \ninepoint
556
557 \catcode `\@ = 12
558 %% fichier 'newplain.tex'
559 % redef de certaines macros du format plain.tex
560
561 \catcode`\@=11
562
563 \def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later
564   \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
565   #1\@sf\vfootnote{#1}}
566 \def\vfootnote#1{\insert\footins\bgroup
567   \interlinepenalty\interfootnotelinepenalty
568   \splittopskip\ht\strutbox % top baseline for broken footnotes
569   \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
570   \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
571   \textindent{#1}\footstrut\futurelet\next\fo@t}
572 \def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
573   \else\let\next\f@t\fi \next}
574 \def\f@@t{\bgroup\aftergroup\@foot\let\next}
575 \def\f@t#1{#1\@foot}
576 \def\@foot{\strut\egroup}
577 \def\footstrut{\vbox to\splittopskip{}}
578 \skip\footins=\bigskipamount % space added when footnote is present
579 \count\footins=1000 % footnote magnification factor (1 to 1)
580 \dimen\footins=8in % maximum footnotes per page
581
582
583
584 % redefinition de la macro \footnote (TeXbook p 416)
585 \def \footnote#1{%
586    \edef \@sf{%
587       \spacefactor \the \spacefactor}%
588    #1\@sf
589    \insert \footins \bgroup
590       \eightpoint \rm
591       \interlinepenalty = 100
592       \let \par = \endgraf
593       \leftskip = 0pt
594       \rightskip = 0pt
595       \splittopskip = 10pt plus 1pt minus 1pt
596       \floatingpenalty = 20000
597 %      \smallskip
598       \item{#1}
599       \bgroup
600          \strut
601          \aftergroup \@foot
602          \let \next} % elimine l'accolade ouvrante qui suit
603 \skip \footins = 12pt plus 2pt minus 4pt % space addes when footnote exists
604 \dimen \footins = 30pc % maximum footnote per page
605
606 % =================== redef de \do ==================================
607
608 \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
609   \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~\do\|}
610
611 % =================== redef de \item =================================
612
613 \newskip \itemindent \itemindent = \parindent
614
615 \parindent = 0pt
616
617 \def\hang{\hangindent\itemindent}
618 \def\textindent#1{\hskip\itemindent\llap{#1\enspace}\ignorespaces}
619 \def\item{\par\hang\textindent}
620 \def\itemitem{\par\hskip\itemindent \hangindent2\itemindent \textindent}
621 \def\narrower{\advance\leftskip\itemindent
622   \advance\rightskip\itemindent}
623
624 \catcode`\@=12
625 %% fichier 'fr-kbd.tex'
626 % ======== adaptation au clavier accentue ================
627 \catcode `\é = \active \def é{\ifmmode \acute e\else \' e\fi }
628 \catcode `\è = \active \def è{\ifmmode \grave e\else \` e\fi }
629 \catcode `\à = \active \def à{\ifmmode \grave a\else \` a\fi }
630 \catcode `\ù = \active \def ù{\ifmmode \grave u\else \` u\fi }
631 \catcode `\ç = \active \def ç{\c c}
632 \catcode `\â = \active \def â{\^ a}
633 \catcode `\ê = \active \def ê{\^ e}
634 \catcode `\î = \active \def î{\^ \i }
635 \catcode `\ô = \active \def ô{\^ o}
636 \catcode `\û = \active \def û{\^ u}
637 \catcode `\ä = \active \def ä{\" a}
638 \catcode `\ë = \active \def ë{\" e}
639 \catcode `\ï = \active \def ï{\" \i }
640 \catcode `\ö = \active \def ö{\" o}
641 \catcode `\ü = \active \def ü{\" u}
642 \catcode `\° = \active \def °{^\circ }
643 %% fichier 'sections.tex'
644 %% Ce fichier contient toutes les macros concernant les sections
645 %% et leur mise en page
646
647 \catcode`\@ = 11
648
649 % =============================== les parties =================================
650
651 \newskip \partieskip            \partieskip = 5pt plus 2pt minus 1pt
652 \newskip \partieskipafter       \partieskipafter = 1pt plus 3pt
653 \newskip \paragrapheskip        \paragrapheskip = 5pt plus 2pt minus 1pt
654 \newskip \paragrapheskipafter   \paragrapheskipafter = 1pt plus 3pt
655
656 %% encadre dans la marge, en gras
657 \def \llappartie#1{%
658    \par \noindent
659    \setbox0 = \hbox {\boxit {2pt}{\hbox {\bf \tvi height8pt depth0pt #1}}}%
660    \llap {\unhbox0\ }%
661    \ignorespaces
662    \initexo }
663
664 %% centre sur la ligne, en gras
665 \def \simplecenterpartie#1{%
666    \vskip \partieskip
667    \centerline {%
668       \twelvepoint
669       \bf
670       #1
671       \unhbox \baremebox }
672    \vskip \partieskipafter
673    \initexo }
674
675 %% idem, + elabore
676 \def \centerpartie#1{%
677    \par
678 %   \vskip 0pt plus 0,3\vsize
679    \penalty -50
680 %   \vskip 0pt plus -0,3\vsize
681 %   \bigbreak
682    \vskip \partieskip
683    \centerline{%
684       \twelvepoint
685       \bf
686       -- Partie #1 --
687 %      \unhbox \baremebox
688 }
689    \penalty 10000
690    \vskip \partieskipafter
691    \initexo }
692
693 %% idem, avec 2 arguments
694 \def \doublecenterpartie#1#2{%
695    \par
696 %   \vskip 0pt plus 0,3\vsize
697    \penalty -50
698 %   \vskip 0pt plus -0,3\vsize
699 %   \bigbreak
700    \vskip \partieskip
701    \centerline{%
702       \twelvepoint
703       \bf
704       -- Partie #1 --
705       \unhbox \baremebox
706       {\sl #2}}
707    \penalty 10000
708    \vskip \partieskipafter
709    \initexo }
710
711 %% discret
712 \def \discretpartie#1{%
713    \initexo
714    \par
715    {\bf #1.}}
716
717 %% la partie par defaut
718 \let \partie \discretpartie
719
720 % =============================================================================
721
722 % =============================== les titres ==================================
723
724 %% aussi bizarre que cela puisse paraitre, je laisse la macro '\duree'
725 %% associee au titre
726 \newbox \dureebox               
727 \def \cleardureebox {%
728    \setbox \dureebox = \box \dureebox }
729 \cleardureebox
730 \def \clearduree {%
731    \setbox 100 \hbox {\unhbox \dureebox }}
732
733 \def \duree#1{%
734    \setbox \dureebox \hbox {\sevenrm \underbar {durée}~: #1}}
735
736 \newskip \titreskip             \titreskip = 10pt plus 10pt minus 10pt
737 \newskip \titreskipafter        \titreskipafter = 10pt plus 10pt minus 10pt
738 \newskip \stitreskip            \stitreskip = 5pt plus 5pt minus 5pt
739 \newskip \stitreskipafter       \stitreskipafter = 5pt plus 5pt minus 5pt
740 \newtoks \titrestyle            \titrestyle = {\fourteenpoint \bf }
741
742 \def \titre#1{%
743    \par
744    \ifb@@kstyle
745       \vskip \bookstyleskip
746       \penalty -500
747       \vskip -\bookstyleskip
748    \fi
749    \bgroup                       % pour limiter la portee de la def de \\
750       \def \\{%                  % commande qui est utilisee pour passer a la ligne dans un titre
751          \hss
752          \egroup                 % ferme la \hbox to \hsize en cours
753          \hbox to \hsize \bgroup % et rouvre la suivante
754          \the \titrestyle
755          \hss}
756       \vskip 0pt plus 0,3\vsize
757       \penalty -250
758       \vskip 0pt plus -0,3\vsize
759       \vskip \titreskip
760       \hbox to \hsize \bgroup \hss \the \titrestyle #1 \hss \egroup
761    \egroup         
762    \par
763    \writetocentry {chapter}{#1}
764    \nobreak
765    \ifvoid \dureebox
766       \else \line{\hfill \unhcopy \dureebox }
767    \fi
768    \vskip \titreskipafter
769    \nobreak }
770
771 \def \titredate#1{%
772    \par
773    \ifb@@kstyle
774       \vskip \bookstyleskip
775       \penalty -500
776       \vskip -\bookstyleskip
777    \fi
778    \bgroup                       % pour limiter la portee de la def de \\
779       \def \\{%                  % commande qui est utilisee pour passer a la ligne dans un titre
780          \hss
781          \egroup                 % ferme la \hbox to \hsize en cours
782          \hbox to \hsize \bgroup % et rouvre la suivante
783          \the \titrestyle
784          \hss}
785       \vskip 0pt plus 0,3\vsize
786       \penalty -250
787       \vskip 0pt plus -0,3\vsize
788       \vskip \titreskip
789       \llap {\box \datebox}
790       \hbox to \hsize \bgroup \hss \the \titrestyle #1 \hss \egroup
791    \egroup         
792    \par
793    \writetocentry {chapter}{#1}
794    \nobreak
795    \ifvoid \dureebox
796       \else \line{\hfill \unhcopy \dureebox }
797    \fi
798    \vskip \titreskipafter
799    \nobreak }
800
801 \def \stitre#1{%
802    \vskip \stitreskip
803    \centerline {\stitrestyle {#1}}   
804    \vskip \stitreskipafter }%
805
806 % =============================================================================
807
808 % ========================== macros de numerotation ===========================
809
810 %%%%% les variables et leurs initialisations %%%%%
811
812 \newcount \numno
813 \def \clearnumno{%
814    \global\numno = 0}
815 \clearnumno
816
817 \newcount \alphno       
818 \def \clearalphno{%
819    \global\alphno = `\a
820    \global\advance \alphno by -1}
821 \clearalphno
822
823 \newskip \itemnumskip           \itemnumskip = 0pt
824 \newskip \itemalphskip          \itemalphskip = 0pt
825 \newskip \itemalphnumskip       \itemalphnumskip = 0pt
826
827 %%%%% reglage du style d'affichage %%%%%
828
829 \def \numstyle#1{%
830    {\bf #1.}}
831 \def \alphstyle#1{%
832    {\sl \char #1\/})}
833
834 %%%%%  les macros de numerotation %%%%%
835 %% \def \initalphnum {%
836 %%    }
837 \def \initalph {%
838    }
839 \def \initnum {%
840    \clearalphno }
841
842 \def \num {%
843    \initnum
844    \global \advance \numno by 1
845    \numstyle {\the \numno }}%
846         %% \alph est en prévision du remaniement, ce n'est qu'une
847         %% copie de \alphnum, mais elle permet de commencer à
848         %% essayer de coder de facon plus cohérente ...
849         %%                             jp 31-05-96
850 \def \alph {%
851    \initalph
852    \global \advance \alphno by 1
853    \alphstyle {\alphno }}
854 \def \alphnum {%
855    \num \
856    \alph }
857 \def \itemnum {%
858    \vskip \itemnumskip
859    \item {\num }}
860 \def \itemitemnum {%
861    \vskip \itemnumskip
862    \itemitem {\num }}
863 \def \itemalph {%
864    \vskip \itemalphskip
865    \item {\alph }}
866 \def \itemitemalph {%
867    \vskip \itemalphskip
868    \itemitem {\alph }}
869 \def \itemalphnum {%
870    \vskip \itemnumskip
871    \item {\num } \alph \ }
872 \def \itemitemalphnum {%
873    \vskip \itemnumskip
874    \itemitem {\num \quad \hskip .1 em \alph }}
875 % =============================================================================
876
877
878 % =============================== les exercices ===============================
879 %
880 % ========= macros de section ==============
881 % ========================= les exemples ======================================
882
883 \newcount \exempleno   
884 \def \clearexempleno{%
885    \global\exempleno = 0}
886 \clearexempleno
887
888 \def \exemple#1{%
889    \medbreak
890    \advance \exempleno by 1
891    \noindent
892    {\bf Exemple ({\oldstyle \the \exempleno }) . \sl #1}
893    \par
894    \nobreak
895    \smallskip
896    \begingroup
897    \parskip = 4 pt }
898
899 \def \finexemple {%
900    \removelastskip
901    \par
902    \removelastskip
903    \hfill
904    \bull
905    \endgroup
906    \smallbreak }
907
908 % =============================================================================
909
910 % ============================ le bookstyle ===================================
911 %
912 \newif \ifb@@kstyle     % flag indiquant si on accepte les paragraphes
913                         % en bas de page
914 \b@@kstylefalse         % oui par defaut
915 \newskip \bookstyleskip % le mini de bas de page autorise pour un
916                         % paragraphe
917 \bookstyleskip = 0.3\vsize
918 \def \bookstyle {%
919    \footline = {\hss \tenrm \folio \hss }
920    \b@@kstyletrue }
921 \def \bookstylefalse {%
922    \b@@kstylefalse }
923 \def \onepagestyle {\b@@kstylefalse }
924
925 % =============================================================================
926
927 % ============================== les paragraphes ==============================
928
929 %%%%% les variables et leurs initialisations %%%%%
930
931 \newcount \parno       
932 \def \clearparno {%
933    \clearsparno
934    \parno = 0}
935
936 \newcount \sparno       
937 \def \clearsparno {%
938    \clearssparno
939    \sparno = 0}
940
941 \newcount \ssparno     
942 \def \clearssparno{%
943    \ssparno = 0}
944
945 %%%%% reglage du style d'affichage %%%%%
946
947 \def \paragraphestyle#1#2{%
948    \noindent
949    {\fourteenpoint
950    \bf #1.
951    #2}}%
952 \def \sparagraphestyle#1#2#3{%
953    \noindent
954    {\twelvepoint
955    \bf #1.#2 -
956    #3}}%
957 \def \ssparagraphestyle#1#2#3#4{%
958    \noindent
959    {\bf #1.#2.#3 -
960    #4}}%
961
962 %%%%% les macro de paragraphe %%%%%
963
964 \def \paragraphe#1{%
965    \par
966    \ifb@@kstyle
967       \vskip \bookstyleskip
968       \penalty -500
969       \vskip -\bookstyleskip
970    \fi
971    \penalty -50
972    \vskip \paragrapheskip
973    \clearsparno
974    \advance \parno by 1
975    \paragraphestyle {\the \parno }{#1}
976    \par
977    \writetocentry {paragraf}{#1}
978    \nobreak
979    \vskip \paragrapheskipafter }
980
981 \def \finparagraphe{%
982    }%
983
984 \def \sparagraphe#1{%
985    \par
986    \penalty -50
987    \medskip
988    \clearssparno
989    \advance \sparno by 1
990    \noindent
991    \sparagraphestyle {\the \parno }{\the \sparno }{#1}
992    \par
993    \writetocentry {sparagraf}{#1}
994    \nobreak
995    \medskip }
996 \def \finsparagraphe {%
997    }%
998 \def \ssparagraphe#1{%
999    \par
1000    \penalty -50
1001    \smallskip
1002    \advance \ssparno by 1
1003    \noindent
1004    \ssparagraphestyle {\the \parno }{\the \sparno }{\the \ssparno }{#1}
1005    \par
1006    \writetocentry {ssparagraf}{#1}
1007    \nobreak
1008    \medskip }
1009 \def \ssfinparagraphe {%
1010    }%
1011
1012 % ============================== les remarques ================================
1013
1014 \def \remarque {%
1015    \medskip
1016    \item {}
1017    \begingroup
1018    \narrower
1019    \narrower
1020    \eightpoint \rm
1021    {\bf Remarque}
1022    -- }
1023 \def \finremarque {%
1024    \par
1025    \endgroup
1026    \medskip }
1027
1028 \catcode`\@ = 12
1029
1030 %   EPSF.TEX macro file:
1031 %   Written by Tomas Rokicki of Radical Eye Software, 29 Mar 1989.
1032 %   Revised by Don Knuth, 3 Jan 1990.
1033 %   Revised by Tomas Rokicki to accept bounding boxes with no
1034 %      space after the colon, 18 Jul 1990.
1035 %
1036 %   TeX macros to include an Encapsulated PostScript graphic.
1037 %   Works by finding the bounding box comment,
1038 %   calculating the correct scale values, and inserting a vbox
1039 %   of the appropriate size at the current position in the TeX document.
1040 %
1041 %   To use with the center environment of LaTeX, preface the \epsffile
1042 %   call with a \leavevmode.  (LaTeX should probably supply this itself
1043 %   for the center environment.)
1044 %
1045 %   To use, simply say
1046 %   \input epsf           % somewhere early on in your TeX file
1047 %   \epsfbox{filename.ps} % where you want to insert a vbox for a figure
1048 %
1049 %   Alternatively, you can type
1050 %
1051 %   \epsfbox[0 0 30 50]{filename.ps} % to supply your own BB
1052 %
1053 %   which will not read in the file, and will instead use the bounding
1054 %   box you specify.
1055 %
1056 %   The effect will be to typeset the figure as a TeX box, at the
1057 %   point of your \epsfbox command. By default, the graphic will have its
1058 %   `natural' width (namely the width of its bounding box, as described
1059 %   in filename.ps). The TeX box will have depth zero.
1060 %
1061 %   You can enlarge or reduce the figure by saying
1062 %     \epsfxsize=<dimen> \epsfbox{filename.ps}
1063 %   (or
1064 %     \epsfysize=<dimen> \epsfbox{filename.ps})
1065 %   instead. Then the width of the TeX box will be \epsfxsize and its
1066 %   height will be scaled proportionately (or the height will be
1067 %   \epsfysize and its width will be scaled proportiontally).  The
1068 %   width (and height) is restored to zero after each use.
1069 %
1070 %   A more general facility for sizing is available by defining the
1071 %   \epsfsize macro.    Normally you can redefine this macro
1072 %   to do almost anything.  The first parameter is the natural x size of
1073 %   the PostScript graphic, the second parameter is the natural y size
1074 %   of the PostScript graphic.  It must return the xsize to use, or 0 if
1075 %   natural scaling is to be used.  Common uses include:
1076 %
1077 %      \epsfxsize  % just leave the old value alone
1078 %      0pt         % use the natural sizes
1079 %      #1          % use the natural sizes
1080 %      \hsize      % scale to full width
1081 %      0.5#1       % scale to 50% of natural size
1082 %      \ifnum#1>\hsize\hsize\else#1\fi  % smaller of natural, hsize
1083 %
1084 %   If you want TeX to report the size of the figure (as a message
1085 %   on your terminal when it processes each figure), say `\epsfverbosetrue'.
1086 %
1087 \newread\epsffilein    % file to \read
1088 \newif\ifepsffileok    % continue looking for the bounding box?
1089 \newif\ifepsfbbfound   % success?
1090 \newif\ifepsfverbose   % report what you're making?
1091 \newif\ifepsfdraft     % use draft mode?
1092 \newdimen\epsfxsize    % horizontal size after scaling
1093 \newdimen\epsfysize    % vertical size after scaling
1094 \newdimen\epsftsize    % horizontal size before scaling
1095 \newdimen\epsfrsize    % vertical size before scaling
1096 \newdimen\epsftmp      % register for arithmetic manipulation
1097 \newdimen\pspoints     % conversion factor
1098 %
1099 \pspoints=1bp          % Adobe points are `big'
1100 \epsfxsize=0pt         % Default value, means `use natural size'
1101 \epsfysize=0pt         % ditto
1102 %
1103 \def\epsfbox#1{\global\def\epsfllx{72}\global\def\epsflly{72}%
1104    \global\def\epsfurx{540}\global\def\epsfury{720}%
1105    \def\lbracket{[}\def\testit{#1}\ifx\testit\lbracket
1106    \let\next=\epsfgetlitbb\else\let\next=\epsfnormal\fi\next{#1}}%
1107 %
1108 \def\epsfgetlitbb#1#2 #3 #4 #5]#6{\epsfgrab #2 #3 #4 #5 .\\%
1109    \epsfsetgraph{#6}}%
1110 %
1111 \def\epsfnormal#1{\epsfgetbb{#1}\epsfsetgraph{#1}}%
1112 %
1113 \def\epsfgetbb#1{%
1114 %
1115 %   The first thing we need to do is to open the
1116 %   PostScript file, if possible.
1117 %
1118 \openin\epsffilein=#1
1119 \ifeof\epsffilein\errmessage{I couldn't open #1, will ignore it}\else
1120 %
1121 %   Okay, we got it. Now we'll scan lines until we find one that doesn't
1122 %   start with %. We're looking for the bounding box comment.
1123 %
1124    {\epsffileoktrue \chardef\other=12
1125     \def\do##1{\catcode`##1=\other}\dospecials \catcode`\ =10
1126     \loop
1127        \read\epsffilein to \epsffileline
1128        \ifeof\epsffilein\epsffileokfalse\else
1129 %
1130 %   We check to see if the first character is a % sign;
1131 %   if not, we stop reading (unless the line was entirely blank);
1132 %   if so, we look further and stop only if the line begins with
1133 %   `%%BoundingBox:'.
1134 %
1135           \expandafter\epsfaux\epsffileline:. \\%
1136        \fi
1137    \ifepsffileok\repeat
1138    \ifepsfbbfound\else
1139     \ifepsfverbose\message{No bounding box comment in #1; using defaults}\fi\fi
1140    }\closein\epsffilein\fi}%
1141 %
1142 %   Now we have to calculate the scale and offset values to use.
1143 %   First we compute the natural sizes.
1144 %
1145 \def\epsfclipon{\def\epsfclipstring{ clip}}%
1146 \def\epsfclipoff{\def\epsfclipstring{\ifepsfdraft\space clip\fi}}%
1147 \epsfclipoff
1148 %
1149 \def\epsfsetgraph#1{%
1150    \epsfrsize=\epsfury\pspoints
1151    \advance\epsfrsize by-\epsflly\pspoints
1152    \epsftsize=\epsfurx\pspoints
1153    \advance\epsftsize by-\epsfllx\pspoints
1154 %
1155 %   If `epsfxsize' is 0, we default to the natural size of the picture.
1156 %   Otherwise we scale the graph to be \epsfxsize wide.
1157 %
1158    \epsfxsize\epsfsize\epsftsize\epsfrsize
1159    \ifnum\epsfxsize=0 \ifnum\epsfysize=0
1160       \epsfxsize=\epsftsize \epsfysize=\epsfrsize
1161       \epsfrsize=0pt
1162 %
1163 %   We have a sticky problem here:  TeX doesn't do floating point arithmetic!
1164 %   Our goal is to compute y = rx/t. The following loop does this reasonably
1165 %   fast, with an error of at most about 16 sp (about 1/4000 pt).
1166 %
1167      \else\epsftmp=\epsftsize \divide\epsftmp\epsfrsize
1168        \epsfxsize=\epsfysize \multiply\epsfxsize\epsftmp
1169        \multiply\epsftmp\epsfrsize \advance\epsftsize-\epsftmp
1170        \epsftmp=\epsfysize
1171        \loop \advance\epsftsize\epsftsize \divide\epsftmp 2
1172        \ifnum\epsftmp>0
1173           \ifnum\epsftsize<\epsfrsize\else
1174              \advance\epsftsize-\epsfrsize \advance\epsfxsize\epsftmp \fi
1175        \repeat
1176        \epsfrsize=0pt
1177      \fi
1178    \else \ifnum\epsfysize=0
1179      \epsftmp=\epsfrsize \divide\epsftmp\epsftsize
1180      \epsfysize=\epsfxsize \multiply\epsfysize\epsftmp   
1181      \multiply\epsftmp\epsftsize \advance\epsfrsize-\epsftmp
1182      \epsftmp=\epsfxsize
1183      \loop \advance\epsfrsize\epsfrsize \divide\epsftmp 2
1184      \ifnum\epsftmp>0
1185         \ifnum\epsfrsize<\epsftsize\else
1186            \advance\epsfrsize-\epsftsize \advance\epsfysize\epsftmp \fi
1187      \repeat
1188      \epsfrsize=0pt
1189     \else
1190      \epsfrsize=\epsfysize
1191     \fi
1192    \fi
1193 %
1194 %  Finally, we make the vbox and stick in a \special that dvips can parse.
1195 %
1196    \ifepsfverbose\message{#1: width=\the\epsfxsize, height=\the\epsfysize}\fi
1197    \epsftmp=10\epsfxsize \divide\epsftmp\pspoints
1198    \vbox to\epsfysize{\vfil\hbox to\epsfxsize{%
1199       \ifnum\epsfrsize=0\relax
1200         \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
1201              llx=\epsfllx\space lly=\epsflly\space
1202              urx=\epsfurx\space ury=\epsfury\space rwi=\number\epsftmp
1203              \epsfclipstring}%
1204       \else
1205         \epsfrsize=10\epsfysize \divide\epsfrsize\pspoints
1206         \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
1207              llx=\epsfllx\space lly=\epsflly\space
1208              urx=\epsfurx\space ury=\epsfury\space rwi=\number\epsftmp\space
1209              rhi=\number\epsfrsize \epsfclipstring}%
1210       \fi
1211       \hfil}}%
1212 \global\epsfxsize=0pt\global\epsfysize=0pt}%
1213 %
1214 %   We still need to define the tricky \epsfaux macro. This requires
1215 %   a couple of magic constants for comparison purposes.
1216 %
1217 {\catcode`\%=12 \global\let\epsfpercent=%\global\def\epsfbblit{%BoundingBox}}%
1218 %
1219 %   So we're ready to check for `%BoundingBox:' and to grab the
1220 %   values if they are found.
1221 %
1222 \long\def\epsfaux#1#2:#3\\{\ifx#1\epsfpercent
1223    \def\testit{#2}\ifx\testit\epsfbblit
1224       \epsfgrab #3 . . . \\%
1225       \epsffileokfalse
1226       \global\epsfb