home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fonts 1 / freshfonts1.bin / programs / amiga / pastex / macros / latex2e / inputs / textfit.sty < prev    next >
Text File  |  1994-06-09  |  5KB  |  146 lines

  1. %% 
  2. %% This is file `textfit.sty', generated 
  3. %% on <1994/6/9> with the docstrip utility (1).
  4. %% 
  5. %% The original source files were:
  6. %% 
  7. %% textfit.dtx  (with options: `package')
  8. %% Copyright (C) 1993,94 Sebastian Rahtz and Phil Taylor. 
  9. %% All rights reserved. Permission is granted to to 
  10. %% customize the declarations in this file to serve the needs of your 
  11. %% installation. However, no permission is granted to distribute a 
  12. %% modified version of this file under its original name. 
  13. %% 
  14. \def\fileversion{5}
  15. \def\filedate{1994/04/15}
  16. \def\docdate{1994/04/15}
  17. %% File: textfit.dtx Copyright (C) 1994 Sebastian Rahtz and Phil Taylor
  18. \NeedsTeXFormat{LaTeX2e}
  19. \ProvidesPackage{textfit}[\filedate]
  20. \newif\ifScalebyMagsteps
  21. \newif\ifNoisyFitting
  22. \NoisyFittingfalse
  23. \ScalebyMagstepsfalse
  24. \DeclareOption{noisy}{\NoisyFittingtrue}
  25. \DeclareOption{magstep}{\ScalebyMagstepstrue}
  26. \ProcessOptions
  27. \newcount \mags@f@r
  28. \newdimen \desired@size
  29. \newcount \r@mainder
  30. \newcount \m@gstepcount
  31. \newcount \m@gsteplimit
  32. \newcount \m@gstepvalue
  33. \newdimen \m@gstepdimen
  34. \def \magsteps {\afterassignment \m@gsteps \m@gsteplimit = }
  35. \def \m@gsteps
  36.     {\let \@r = \or
  37.      \def \or {\noexpand \or}%
  38.      \m@gstepdimen = 0.166667 \maxdimen
  39.      \m@gstepvalue = 1000
  40.      \m@gstepcount = 0
  41.      \def \magstep {}%
  42.      \loop
  43.      \ifnum     \m@gstepcount < \m@gsteplimit
  44.                 \advance \m@gstepcount by 1
  45.                 \ifnum \m@gstepvalue > \m@gstepdimen
  46.                         \advance \m@gstepcount by -1
  47.                         \message {Sorry --- integer overflow would occur if
  48.                                         I went any further; stopped at
  49.                                                 \the \m@gstepcount.}
  50.                         \m@gsteplimit = \m@gstepcount
  51.                 \else
  52.                         \multiply \m@gstepvalue by 12
  53.                         \multiply \r@mainder by 12
  54.                         \divide \r@mainder by 10
  55.                         \advance \m@gstepvalue by \r@mainder
  56.                         \r@mainder = \m@gstepvalue
  57.                         \divide \m@gstepvalue by 10
  58.                         \multiply \m@gstepvalue by 10
  59.                         \advance \r@mainder by -\m@gstepvalue
  60.                         \divide \m@gstepvalue by 10
  61.                         \ifnum \r@mainder < 5
  62.                                \edef \magstep {\magstep \or \the \m@gstepvalue}%
  63.                         \else
  64.                                \advance \m@gstepvalue by 1
  65.                                \edef \magstep {\magstep \or \the \m@gstepvalue}%
  66.                                \advance \m@gstepvalue by -1
  67.                         \fi
  68.                 \fi
  69.      \repeat
  70.      \edef \magstep ##1%
  71.           {\noexpand \ifcase ##1
  72.                         1000\magstep
  73.            \noexpand \else 0%
  74.            \noexpand \message
  75.                 {Sorry --- \string \magstep \space ##1
  76.                                 is not in range 0 .. \the \m@gsteplimit}%
  77.            \noexpand \fi
  78.            \noexpand \relax
  79.           }%
  80.      \let \or = \@r
  81.     }
  82. \magsteps 63
  83. \def \Fontname #1{\expandafter \strip@size \fontname #1 }
  84. \def \strip@size #1 #2#{#1\void@@@}
  85. \def \void@@@ #1{}
  86. \gdef\n@d#1.#2:{#1}
  87. \def \@scaletofit[#1]#2#3{%
  88.      \def\Hb@x{h}\def\H@rV{#1}%
  89.      \ifx\H@rV\Hb@x\def\C@mpare{\wd}\else\def\C@mpare{\ht}\fi
  90.      \desired@size #2
  91.      \def\curr@fontname{\Fontname \font {} }%
  92.      \ifScalebyMagsteps
  93.         \mags@f@r \z@
  94.         \setbox 0 = \hbox{#3}%
  95.         \def\@increment{1}%
  96. \def\@test{<}%
  97.         \ifdim \C@mpare 0 > \desired@size
  98.            \message{When scaling by Magsteps, you cannot go downwards!}%
  99.         \fi
  100.         \loop
  101.         \font \temp@font = \curr@fontname  scaled \magstep \mags@f@r
  102. \setbox 0 = \hbox{{\temp@font #3}}%
  103.         \ifNoisyFitting
  104.           \message {Trying \noexpand \magstep \the \mags@f@r...}%
  105.         \fi
  106.         \ifdim \C@mpare 0 \@test \desired@size
  107.            \advance \mags@f@r by \@increment
  108.         \repeat
  109.         \ifnum \mags@f@r=\z@
  110.            \mags@f@r1
  111.          \fi
  112.          \advance \mags@f@r by -\@increment
  113.      \else
  114.         \font\temp@font=\curr@fontname at1pt
  115.         \setbox 0 = \hbox{{\temp@font #3}}%
  116.         \@tempdima\C@mpare0
  117.         \multiply\@tempdima by 500 %\@m
  118.         \def\foo@@{\expandafter\n@d\the\@tempdima:}%
  119.         \@tempdimb\desired@size
  120.         \divide\@tempdimb by \foo@@
  121.         \multiply\@tempdimb by 500 %\@m
  122.      \fi
  123.      \ifScalebyMagsteps
  124.         \ifNoisyFitting
  125.   \message {The calculated font is \curr@fontname
  126.            scaled \noexpand \magstep \the \mags@f@r}%
  127.         \fi
  128.         \font \temp@font = \curr@fontname scaled \magstep \mags@f@r
  129.      \else
  130.         \ifNoisyFitting
  131.            \message {The calculated font is \curr@fontname ->\the\@tempdimb}%
  132.         \fi
  133.         \font\temp@font=\curr@fontname at \the\@tempdimb
  134.      \fi
  135.      \ifx\H@rV\Hb@x
  136.         \hbox to \desired@size {\hss{\temp@font #3}\hss}%
  137.      \else
  138.         \hbox {{\temp@font #3}}%
  139.      \fi
  140. }
  141. \def\scaletowidth{\@scaletofit[h]}
  142. \def\scaletoheight{\@scaletofit[v]}
  143. \endinput
  144. %% 
  145. %% End of file `textfit.sty'.
  146.