home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fonts 1 / freshfonts1.bin / programs / amiga / mma2ltx / texmma22.pro < prev   
Text File  |  1994-09-01  |  12KB  |  174 lines

  1. %!
  2. /Mathdict 150 dict def Mathdict begin /Mlmarg 0 def /Mrmarg 0 def
  3. /Mbmarg 0 def /Mtmarg 0 def /Mtransform{}bind def /Mfixwid true def
  4. /Mfixdash false def /Mrot 0 def /Mpstart{MathPictureStart}bind def
  5. /Mpend{MathPictureEnd}bind def /Mscale{0 1 0 1 5 -1 roll MathScale}bind
  6. def /ISOLatin1Encoding dup where{pop pop}{[/.notdef /.notdef /.notdef
  7. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  8. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  9. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  10. /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
  11. /numbersign /dollar /percent /ampersand /quoteright /parenleft
  12. /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two
  13. /three /four /five /six /seven /eight /nine /colon /semicolon /less
  14. /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
  15. /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
  16. /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g
  17. /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
  18. /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef
  19. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  20. /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex
  21. /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla
  22. /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling
  23. /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine
  24. /guillemotleft /logicalnot /hyphen /registered /macron /degree
  25. /plusminus /twosuperior /threesuperior /acute /mu /paragraph
  26. /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
  27. /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute
  28. /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute
  29. /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth
  30. /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
  31. /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn
  32. /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae
  33. /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute
  34. /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex
  35. /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex
  36. /udieresis /yacute /thorn /ydieresis]def}ifelse /MFontDict 50 dict def
  37. /MStrCat{exch dup length 2 index length add string dup 3 1 roll copy
  38. length exch dup 4 2 roll exch putinterval}def /MCreateEncoding{1 index
  39. 255 string cvs(-)MStrCat 1 index MStrCat cvn exch(Encoding)MStrCat cvn
  40. dup where{exch get}{pop StandardEncoding}ifelse 3 1 roll dup MFontDict
  41. exch known not{1 index findfont dup length dict begin{1 index /FID ne{
  42. def}{pop pop}ifelse}forall /Encoding 3 index def currentdict end 1 index
  43. exch definefont pop MFontDict 1 index null put}if exch pop exch pop}def
  44. /ISOLatin1{(ISOLatin1)MCreateEncoding}def /ISO8859{(ISOLatin1)
  45. MCreateEncoding}def /Mcopyfont{dup maxlength dict exch{1 index /FID eq{
  46. pop pop}{2 index 3 1 roll put}ifelse}forall}def /Plain /Courier findfont
  47. Mcopyfont definefont pop /Bold /Courier-Bold findfont Mcopyfont
  48. definefont pop /Italic /Courier-Oblique findfont Mcopyfont definefont
  49. pop /MathPictureStart{gsave Mtransform Mlmarg Mbmarg translate Mwidth
  50. Mlmarg Mrmarg add sub /Mwidth exch def Mheight Mbmarg Mtmarg add sub
  51. /Mheight exch def /Mtmatrix matrix currentmatrix def /Mgmatrix matrix
  52. currentmatrix def}bind def /MathPictureEnd{grestore}bind def /MFill{0 0
  53. moveto Mwidth 0 lineto Mwidth Mheight lineto 0 Mheight lineto fill}bind
  54. def /MPlotRegion{3 index Mwidth mul 2 index Mheight mul translate exch
  55. sub Mheight mul /Mheight exch def exch sub Mwidth mul /Mwidth exch def}
  56. bind def /MathSubStart{Momatrix Mgmatrix Mtmatrix Mwidth Mheight 7 -2
  57. roll moveto Mtmatrix setmatrix currentpoint Mgmatrix setmatrix 9 -2 roll
  58. moveto Mtmatrix setmatrix currentpoint 2 copy translate /Mtmatrix matrix
  59. currentmatrix def 3 -1 roll exch sub /Mheight exch def sub /Mwidth exch
  60. def}bind def /MathSubEnd{/Mheight exch def /Mwidth exch def /Mtmatrix
  61. exch def dup setmatrix /Mgmatrix exch def /Momatrix exch def}bind def
  62. /Mdot{moveto 0 0 rlineto stroke}bind def /Mtetra{moveto lineto lineto
  63. lineto fill}bind def /Metetra{moveto lineto lineto lineto closepath
  64. gsave fill grestore 0 setgray stroke}bind def /Mistroke{flattenpath 0 0
  65. 0{4 2 roll pop pop}{4 -1 roll 2 index sub dup mul 4 -1 roll 2 index sub
  66. dup mul add sqrt 4 -1 roll add 3 1 roll}{stop}{stop}pathforall pop pop
  67. currentpoint stroke moveto currentdash 3 -1 roll add setdash}bind def
  68. /Mfstroke{stroke currentdash pop 0 setdash}bind def /Mrotsboxa{gsave dup
  69. /Mrot exch def Mrotcheck Mtmatrix dup setmatrix 7 1 roll 4 index 4 index
  70. translate rotate 3 index -1 mul 3 index -1 mul translate /Mtmatrix
  71. matrix currentmatrix def grestore Msboxa 3 -1 roll /Mtmatrix exch def
  72. /Mrot 0 def}bind def /Msboxa{newpath 5 -1 roll Mvboxa pop Mboxout 6 -1
  73. roll 5 -1 roll 4 -1 roll Msboxa1 5 -3 roll Msboxa1 Mboxrot[7 -2 roll 2
  74. copy[3 1 roll 10 -1 roll 9 -1 roll]6 1 roll 5 -2 roll]}bind def /Msboxa1
  75. {sub 2 div dup 2 index 1 add mul 3 -1 roll -1 add 3 -1 roll mul}bind def
  76. /Mvboxa{Mfixwid{Mvboxa1}{dup Mwidthcal 0 exch{add}forall exch Mvboxa1 4
  77. index 7 -1 roll add 4 -1 roll pop 3 1 roll}ifelse}bind def /Mvboxa1{
  78. gsave newpath[true 3 -1 roll{Mbbox 5 -1 roll{0 5 1 roll}{7 -1 roll exch
  79. sub(m)stringwidth pop .3 mul sub 7 1 roll 6 -1 roll 4 -1 roll Mmin 3 -1
  80. roll 5 index add 5 -1 roll 4 -1 roll Mmax 4 -1 roll}ifelse false}forall{
  81. stop}if counttomark 1 add 4 roll]grestore}bind def /Mbbox{1 dict begin 0
  82. 0 moveto /temp(T)def{gsave currentpoint newpath moveto temp 0 3 -1 roll
  83. put temp false charpath flattenpath currentpoint pathbbox grestore
  84. moveto lineto moveto}forall pathbbox newpath end}bind def /Mmin{2 copy
  85. gt{exch}if pop}bind def /Mmax{2 copy lt{exch}if pop}bind def /Mrotshowa{
  86. dup /Mrot exch def Mrotcheck Mtmatrix dup setmatrix 7 1 roll 4 index 4
  87. index translate rotate 3 index -1 mul 3 index -1 mul translate /Mtmatrix
  88. matrix currentmatrix def Mgmatrix setmatrix Mshowa /Mtmatrix exch def
  89. /Mrot 0 def}bind def /Mshowa{4 -2 roll moveto 2 index Mtmatrix setmatrix
  90. Mvboxa 7 1 roll Mboxout 6 -1 roll 5 -1 roll 4 -1 roll Mshowa1 4 1 roll
  91. Mshowa1 rmoveto currentpoint Mfixwid{Mshowax}{Mshoway}ifelse pop pop pop
  92. pop Mgmatrix setmatrix}bind def /Mshowax{0 1 4 index length -1 add{2
  93. index 4 index 2 index get 3 index add moveto 4 index exch get Mfixdash{
  94. Mfixdashp}if show}for}bind def /Mfixdashp{dup length 1 gt 1 index true
  95. exch{45 eq and}forall and{gsave(--)stringwidth pop(-)stringwidth pop sub
  96. 2 div 0 rmoveto dup length 1 sub{(-)show}repeat grestore}if}bind def
  97. /Mshoway{3 index Mwidthcal 5 1 roll 0 1 4 index length -1 add{2 index 4
  98. index 2 index get 3 index add moveto 4 index exch get[6 index aload
  99. length 2 add -1 roll{pop Strform stringwidth pop neg exch add 0 rmoveto}
  100. exch kshow cleartomark}for pop}bind def /Mwidthcal{[exch{Mwidthcal1}
  101. forall][exch dup Maxlen -1 add 0 1 3 -1 roll{[exch 2 index{1 index Mget
  102. exch}forall pop Maxget exch}for pop]Mreva}bind def /Mreva{[exch aload
  103. length -1 1{1 roll}for]}bind def /Mget{1 index length -1 add 1 index ge{
  104. get}{pop pop 0}ifelse}bind def /Maxlen{[exch{length}forall Maxget}bind
  105. def /Maxget{counttomark -1 add 1 1 3 -1 roll{pop Mmax}for exch pop}bind
  106. def /Mwidthcal1{[exch{Strform stringwidth pop}forall]}bind def /Strform{
  107. /tem(x)def tem 0 3 -1 roll put tem}bind def /Mshowa1{2 copy add 4 1 roll
  108. sub mul sub -2 div}bind def /MathScale{Mwidth Mheight Mlp translate
  109. scale /yscale exch def /ybias exch def /xscale exch def /xbias exch def
  110. /Momatrix xscale yscale matrix scale xbias ybias matrix translate matrix
  111. concatmatrix def /Mgmatrix matrix currentmatrix def}bind def /Mlp{3 copy
  112. Mlpfirst{Mnodistort{Mmin dup}if 4 index 2 index 2 index Mlprun 11 index
  113. 11 -1 roll 10 -4 roll Mlp1 8 index 9 -5 roll Mlp1 4 -1 roll and{exit}if
  114. 3 -1 roll pop pop}loop exch 3 1 roll 7 -3 roll pop pop pop}bind def
  115. /Mlpfirst{3 -1 roll dup length 2 copy -2 add get aload pop pop pop 4 -2
  116. roll -1 add get aload pop pop pop 6 -1 roll 3 -1 roll 5 -1 roll sub div
  117. 4 1 roll exch sub div}bind def /Mlprun{2 copy 4 index 0 get dup 4 1 roll
  118. Mlprun1 3 copy 8 -2 roll 9 -1 roll{3