home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD1.bin
/
useful
/
text
/
tex
/
pastex
/
macros
/
latex2e
/
inputs
/
textfit.sty
< prev
next >
Wrap
Text File
|
1994-06-09
|
5KB
|
146 lines
%%
%% This is file `textfit.sty', generated
%% on <1994/6/9> with the docstrip utility (1).
%%
%% The original source files were:
%%
%% textfit.dtx (with options: `package')
%% Copyright (C) 1993,94 Sebastian Rahtz and Phil Taylor.
%% All rights reserved. Permission is granted to to
%% customize the declarations in this file to serve the needs of your
%% installation. However, no permission is granted to distribute a
%% modified version of this file under its original name.
%%
\def\fileversion{5}
\def\filedate{1994/04/15}
\def\docdate{1994/04/15}
%% File: textfit.dtx Copyright (C) 1994 Sebastian Rahtz and Phil Taylor
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{textfit}[\filedate]
\newif\ifScalebyMagsteps
\newif\ifNoisyFitting
\NoisyFittingfalse
\ScalebyMagstepsfalse
\DeclareOption{noisy}{\NoisyFittingtrue}
\DeclareOption{magstep}{\ScalebyMagstepstrue}
\ProcessOptions
\newcount \mags@f@r
\newdimen \desired@size
\newcount \r@mainder
\newcount \m@gstepcount
\newcount \m@gsteplimit
\newcount \m@gstepvalue
\newdimen \m@gstepdimen
\def \magsteps {\afterassignment \m@gsteps \m@gsteplimit = }
\def \m@gsteps
{\let \@r = \or
\def \or {\noexpand \or}%
\m@gstepdimen = 0.166667 \maxdimen
\m@gstepvalue = 1000
\m@gstepcount = 0
\def \magstep {}%
\loop
\ifnum \m@gstepcount < \m@gsteplimit
\advance \m@gstepcount by 1
\ifnum \m@gstepvalue > \m@gstepdimen
\advance \m@gstepcount by -1
\message {Sorry --- integer overflow would occur if
I went any further; stopped at
\the \m@gstepcount.}
\m@gsteplimit = \m@gstepcount
\else
\multiply \m@gstepvalue by 12
\multiply \r@mainder by 12
\divide \r@mainder by 10
\advance \m@gstepvalue by \r@mainder
\r@mainder = \m@gstepvalue
\divide \m@gstepvalue by 10
\multiply \m@gstepvalue by 10
\advance \r@mainder by -\m@gstepvalue
\divide \m@gstepvalue by 10
\ifnum \r@mainder < 5
\edef \magstep {\magstep \or \the \m@gstepvalue}%
\else
\advance \m@gstepvalue by 1
\edef \magstep {\magstep \or \the \m@gstepvalue}%
\advance \m@gstepvalue by -1
\fi
\fi
\repeat
\edef \magstep ##1%
{\noexpand \ifcase ##1
1000\magstep
\noexpand \else 0%
\noexpand \message
{Sorry --- \string \magstep \space ##1
is not in range 0 .. \the \m@gsteplimit}%
\noexpand \fi
\noexpand \relax
}%
\let \or = \@r
}
\magsteps 63
\def \Fontname #1{\expandafter \strip@size \fontname #1 }
\def \strip@size #1 #2#{#1\void@@@}
\def \void@@@ #1{}
\gdef\n@d#1.#2:{#1}
\def \@scaletofit[#1]#2#3{%
\def\Hb@x{h}\def\H@rV{#1}%
\ifx\H@rV\Hb@x\def\C@mpare{\wd}\else\def\C@mpare{\ht}\fi
\desired@size #2
\def\curr@fontname{\Fontname \font {} }%
\ifScalebyMagsteps
\mags@f@r \z@
\setbox 0 = \hbox{#3}%
\def\@increment{1}%
\def\@test{<}%
\ifdim \C@mpare 0 > \desired@size
\message{When scaling by Magsteps, you cannot go downwards!}%
\fi
\loop
\font \temp@font = \curr@fontname scaled \magstep \mags@f@r
\setbox 0 = \hbox{{\temp@font #3}}%
\ifNoisyFitting
\message {Trying \noexpand \magstep \the \mags@f@r...}%
\fi
\ifdim \C@mpare 0 \@test \desired@size
\advance \mags@f@r by \@increment
\repeat
\ifnum \mags@f@r=\z@
\mags@f@r1
\fi
\advance \mags@f@r by -\@increment
\else
\font\temp@font=\curr@fontname at1pt
\setbox 0 = \hbox{{\temp@font #3}}%
\@tempdima\C@mpare0
\multiply\@tempdima by 500 %\@m
\def\foo@@{\expandafter\n@d\the\@tempdima:}%
\@tempdimb\desired@size
\divide\@tempdimb by \foo@@
\multiply\@tempdimb by 500 %\@m
\fi
\ifScalebyMagsteps
\ifNoisyFitting
\message {The calculated font is \curr@fontname
scaled \noexpand \magstep \the \mags@f@r}%
\fi
\font \temp@font = \curr@fontname scaled \magstep \mags@f@r
\else
\ifNoisyFitting
\message {The calculated font is \curr@fontname ->\the\@tempdimb}%
\fi
\font\temp@font=\curr@fontname at \the\@tempdimb
\fi
\ifx\H@rV\Hb@x
\hbox to \desired@size {\hss{\temp@font #3}\hss}%
\else
\hbox {{\temp@font #3}}%
\fi
}
\def\scaletowidth{\@scaletofit[h]}
\def\scaletoheight{\@scaletofit[v]}
\endinput
%%
%% End of file `textfit.sty'.