%% %% This is file `rotating.sty', generated %% on <1994/2/9> with the docstrip utility (2.2e). %% %% The original source files were: %% %% rotating.doc %% S Rahtz %% spqr@minster.york.ac.uk %% %% 10 July 1993 %% \def\styleoption{rotating.sty} \def\fileversion{v1.9} \def\filedate{93/11/1} \immediate\write\sixt@@n{Style option: \styleoption, \fileversion\space <\filedate> (SPQR / LMB)} \def\rot@start{} \def\rot@end{} \def\rotdriver#1{% \bgroup\edef\next{\def\noexpand\tempa{#1}}% \uppercase\expandafter{\next}% \def\LN{DVITOLN03}% \def\DVItoPS{DVITOPS}% \def\DVIPS{DVIPS}% \def\emTeX{EMTEX}% \def\Textures{TEXTURES}% \def\Pubps{PUBPS}% \global\chardef\rot@driversetup=0 \ifx\tempa\LN \global\chardef\rot@driversetup=0\fi \ifx\tempa\DVItoPS \global\chardef\rot@driversetup=1\fi \ifx\tempa\DVIPS \global\chardef\rot@driversetup=2\fi \ifx\tempa\emTeX \global\chardef\rot@driversetup=3\fi \ifx\tempa\Textures \global\chardef\rot@driversetup=4\fi \ifx\tempa\Pubps \global\chardef\rot@driversetup=5\fi \egroup \ifcase\rot@driversetup \typeout{WARNING! **** no specials for LN03 rotation} \or \rot@count=1 \def\rot@start{\special{dvitops: origin rot\the\rot@count}% \special{dvitops: begin rot\the\rot@count}}% \def\rot@end{\special{dvitops: end}% \special{dvitops: rotate rot\the\rot@count \space \the\rot@angle}% \global\advance\rot@count by1}% \or \def\rot@start{\special{ps:gsave currentpoint currentpoint translate \the\rot@angle\space rotate neg exch neg exch translate}}% \def\rot@end{\special{ps:currentpoint grestore moveto}}% \or % case 3, emTeX \typeout{WARNING! *** emTeX does no rotation at this time} \or \typeout{Textures rotation} \def\rot@start{\special{postscript 0 0 transform % Get current location in device % coordinates. grestore % Undoes TeXtures gsave. matrix currentmatrix % Save current transform on stack for use % by \@unrotate. 3 1 roll % Put transform at back of current location. itransform % Current location in TeXtures coords dup 3 -1 roll % Duplicate the location; x y ==> x y x y dup 4 1 roll exch translate % Translate origin to current location % 1 -1 scale % Flip y coordinate \the\rot@angle\space rotate % Rotate by \@rotation % 1 -1 scale % Unflip y coordinate neg exch neg exch translate % Translate origin back gsave}} % To match grestore \def\rot@end{\special{postscript grestore % Undoes TeXtures gsave setmatrix % Set current transform to value saved on % stack. (Hopefully, it's still there.) gsave}} % To match grestore \typeout{Process .DVI file with Pubps} \def\rot@start{\special{ps:: gsave currentpoint currentpoint translate \the\rot@angle\space neg rotate neg exch neg exch translate}}% \def\rot@end{\special{ps:: currentpoint grestore moveto}}% \else \typeout{WARNING! *** unknown driver - no rotation} \fi } \newsavebox{\rot@box}% \newsavebox{\rot@tempbox}% \newdimen\rot@temp \newdimen\rot@width \newdimen\rot@height \newdimen\rot@depth \newdimen\rot@right \newdimen\rot@left \newcount\rot@angle \newcount\rot@count \newcount\rot@circle \def\sideways{\setbox\rot@box\hbox\bgroup\ignorespaces} \def\endsideways{\unskip\egroup% \rot@angle-90 \rot@width\ht\rot@box \advance\rot@width by\dp\rot@box \rot@height\wd\rot@box \wd\rot@box\z@ \dp\rot@box\z@ \ht\rot@box\z@ \rule{\rot@width}{\z@}% \rlap{\rule{\z@}{\rot@height}}% \rot@start\usebox{\rot@box}\rot@end% } \def\rotate#1{% \global\rot@angle=\rot@direction#1\relax \setbox\rot@box\hbox\bgroup\ignorespaces} \def\endrotate{\unskip\egroup% \rot@start% \dp\rot@box=\z@\wd\rot@box=\z@\ht\rot@box=\z@ \usebox{\rot@box}% \rot@end% }% \def\rotatedirection#1{% \def\@tempa{#1}\def\@tempb{clockwise}% \edef\rot@direction{\ifx\@tempa\@tempb\else-\fi}} \rotatedirection{clockwise} \let\turn=\rotate \def\endturn{% \unskip\egroup% \multiply\rot@angle by-1 \Sine{\rot@angle}% \let\sineA\sine \advance\rot@angle by90% \Sine{\rot@angle}% \let\sineB\sine \def\sineC{-\sine}% \def\cosineA{-\sineC}% \def\cosineB{-\sineA}% \let\cosineC\sineA \advance\rot@angle by-90% \def\rot@Bx{\rot@temp\cosineA\wd\rot@box \advance\rot@temp by -\sineA\ht\rot@box}% \def\rot@By{\rot@temp\sineA\wd\rot@box \advance\rot@temp by \cosineA\ht\rot@box}% \def\rot@Cx{\rot@temp\cosineB\ht\rot@box}% \def\rot@Cy{\rot@temp\sineB\ht\rot@box}% \def\rot@Dx{\rot@temp\cosineC\dp\rot@box}% \def\rot@Dy{\rot@temp\sineC\dp\rot@box}% \def\rot@Ex{\rot@temp\cosineC\dp\rot@box \advance\rot@temp by -\sineC\wd\rot@box}% \def\rot@Ey{\rot@temp\sineC\dp\rot@box \advance\rot@temp by \cosineC\wd\rot@box}% \rot@circle\rot@angle \ifnum\rot@circle<0 \advance\rot@circle by 360 \fi \ifnum\rot@circle<90 \rot@By\rot@height\rot@temp \rot@Ex\rot@right\rot@temp \rot@Cx\rot@left\rot@temp \rot@Dy\rot@depth\rot@temp \else \ifnum\rot@circle<180 \rot@Ey\rot@height\rot@temp \rot@Dx\rot@right\rot@temp \rot@Bx\rot@left\rot@temp \rot@Cy\rot@depth\rot@temp \else \ifnum\rot@circle<270 \rot@Dy\rot@height\rot@temp \rot@Cx\rot@right\rot@temp \rot@Ex\rot@left\rot@temp \rot@By\rot@depth\rot@temp \else \rot@Cy\rot@height\rot@temp \rot@Bx\rot@right\rot@temp \rot@Dx\rot@left\rot@temp \rot@Ey\rot@depth\rot@temp \fi \fi \fi \multiply\rot@angle by-1 \wd\rot@box=\z@\ht\rot@box=\z@\dp\rot@box=\z@ \ifdim\rot@left<\z@ \rule{-\rot@left}{\z@}% \fi \ifdim\rot@height>\z@ \rlap{\rule{\z@}{\rot@height}}% \fi \ifdim\rot@depth<\z@ \rlap{\rule[\rot@depth]{\z@}{-\rot@depth}}% \fi \rot@start\usebox{\rot@box}\rot@end% \ifdim\rot@right>\z@ \rule{\rot@right}{\z@}% \fi }% \def\@rotfloat#1{\@ifnextchar[{\@xrotfloat{#1}}{% \edef\@tempa{\noexpand\@xrotfloat{#1}[\csname fps@#1\endcsname]}\@tempa}} \def\@xrotfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner \@parmoderr\@floatpenalty\z@ \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n \@tfor \@tempa :=#2\do {\if\@tempa h\advance\@tempcnta \@ne\fi \if\@tempa t\advance\@tempcnta \tw@\fi \if\@tempa b\advance\@tempcnta 4\relax\fi \if\@tempa p\advance\@tempcnta 8\relax\fi }\global\count\@currbox\@tempcnta}\@fltovf\fi \global\setbox\@currbox\vbox\bgroup \hsize\textheight \@parboxrestore } \def\page@R{R} \newcommand{\rotfloatpage}{R} \def\end@rotfloat{\par\vskip\z@\egroup% \ifnum\@floatpenalty <\z@ \global\setbox\rot@tempbox\box\@currbox \message{Adding sideways figure on }% \global\setbox\@currbox\vbox to \wd\rot@tempbox{% \ifx\rotfloatpage\page@R \message{right hand page }% \vfill\centerline{% \hbox to \ht\rot@tempbox{\hfill \begin{rotate}{-90}\box\rot@tempbox\end{rotate}% }% }% \else \message{left hand page }% \centerline{% \hbox to \ht\rot@tempbox{% \begin{rotate}{90}\box\rot@tempbox\end{rotate}% \hfill}% }\vfill \fi }% \@cons\@currlist\@currbox \ifdim \ht\@currbox >\textheight \@warning{Float larger than \string\textheight}% \ht\@currbox\textheight \fi \ifnum\@floatpenalty <-\@Mii \penalty -\@Miv \@tempdima\prevdepth \vbox{}% \prevdepth \@tempdima \penalty\@floatpenalty \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@esphack \fi\fi} \def\sidewaysfigure{\let\make@caption\make@rcaption \@rotfloat{figure}} \let\endsidewaysfigure\end@rotfloat \def\sidewaystable{\let\make@caption\make@rcaption \@rotfloat{table}} \let\endsidewaystable\end@rotfloat \long\def\@makercaption#1#2{% \vskip 10\p@ \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa >\vsize #1: #2\par \else \hbox to\vsize{\hfil\box\@tempboxa\hfil}% \fi}% \def\rotcaption{\refstepcounter\@captype\@dblarg{\@rotcaption\@captype}} \long\def\@rotcaption#1[#2]#3{% \addcontentsline{\csname ext@#1\endcsname}{#1}{% \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}% \par \begingroup \@parboxrestore \normalsize \@makerotcaption{\csname fnum@#1\endcsname}{#3}% \endgroup} \long\def\@makerotcaption#1#2{% \setbox\@tempboxa\hbox{#1: #2}% \ifdim \wd\@tempboxa > .8\vsize \begin{rotate}{-90}% \begin{minipage}[b]{.8\textheight}#1 #2\end{minipage}% \end{rotate}\par \else% \mbox{\begin{rotate}{-90}\box\@tempboxa\end{rotate}}% \fi \hspace{12pt}% } \chardef\letter = 11 \chardef\other = 12 \newif\ifdebug \newif\ifc@mpute \c@mputetrue \let\then =\relax \def\r@dian{pt }% \let\r@dians =\r@dian \let\dimensionless@nit =\r@dian \let\dimensionless@nits =\dimensionless@nit \def\internal@nit{sp }% \let\internal@nits =\internal@nit \newif\ifstillc@nverging \def\Mess@ge #1{\ifdebug\then\message {#1}\fi}% {% \catcode `\@ =\letter \gdef\nodimen {\expandafter\n@dimen\the\dimen}% \gdef\term #1 #2 #3% {\edef\t@ {\the #1}% \edef\t@@ {\expandafter\n@dimen\the #2\r@dian}% \t@rm {\t@} {\t@@} {#3}% }% \gdef\t@rm #1 #2 #3% {{% \count 0 = 0 \dimen 0 = 1\dimensionless@nit \dimen 2 = #2\relax \Mess@ge {Calculating term #1 of\nodimen 2}% \loop \ifnum\count 0 < #1 \then\advance\count 0 by 1 \Mess@ge {Iteration\the\count 0\space}% \Multiply\dimen 0 by {\dimen 2}% \Mess@ge {After multiplication, term =\nodimen 0}% \Divide\dimen 0 by {\count 0}% \Mess@ge {After division, term =\nodimen 0}% \repeat \Mess@ge {Final value for term #1 of \nodimen 2\space is\nodimen 0}% \xdef\Term {#3 =\nodimen 0\r@dians}% \aftergroup\Term }}% \catcode `\p =\other \catcode `\t =\other \gdef\n@dimen #1pt{#1}% }% \def\Divide #1by #2{\divide #1 by #2}% \def\Multiply #1by #2% {{% \count 0 = #1\relax \count 2 = #2\relax \count 4 = 65536 \Mess@ge {Before scaling, count 0 =\the\count 0\space and count 2 =\the\count 2}% \ifnum\count 0 > 32767% \then\divide\count 0 by 4 \divide\count 4 by 4 \else\ifnum\count 0 < -32767 \then\divide\count 0 by 4 \divide\count 4 by 4 \else \fi \fi \ifnum\count 2 > 32767% \then\divide\count 2 by 4 \divide\count 4 by 4 \else\ifnum\count 2 < -32767 \then\divide\count 2 by 4 \divide\count 4 by 4 \else \fi \fi \multiply\count 0 by\count 2 \divide\count 0 by\count 4 \xdef\product {#1 =\the\count 0\internal@nits}% \aftergroup\product }}% \def\r@duce{\ifdim\dimen0 > 90\r@dian\then% \multiply\dimen0 by -1 \advance\dimen0 by 180\r@dian \r@duce \else\ifdim\dimen0 < -90\r@dian\then% \advance\dimen0 by 360\r@dian \r@duce \fi \fi}% \def\Sine#1% {{% \dimen 0 = #1\r@dian \r@duce \ifdim\dimen0 = -90\r@dian\then \dimen4 = -1\r@dian \c@mputefalse \fi \ifdim\dimen0 = 90\r@dian\then \dimen4 = 1\r@dian \c@mputefalse \fi \ifdim\dimen0 = 0\r@dian\then \dimen4 = 0\r@dian \c@mputefalse \fi \ifc@mpute\then \divide\dimen0 by 180 \dimen0=3.141592654\dimen0 \dimen 2 = 3.1415926535897963\r@dian% \divide\dimen 2 by 2% \Mess@ge {Sin: calculating Sin of\nodimen 0}% \count 0 = 1% \dimen 2 = 1\r@dian% \dimen 4 = 0\r@dian% \loop \ifnum\dimen 2 = 0% \then\stillc@nvergingfalse \else\stillc@nvergingtrue \fi \ifstillc@nverging% \then\term {\count 0} {\dimen 0} {\dimen 2}% \advance\count 0 by 2 \count 2 =\count 0 \divide\count 2 by 2 \ifodd\count 2% \then\advance\dimen 4 by\dimen 2 \else\advance\dimen 4 by -\dimen 2 \fi \repeat \fi \xdef\sine {\nodimen 4}% }}% \def\Cosine#1{\ifx\sine\UnDefined\edef\Savesine{\relax}\else \edef\Savesine{\sine}\fi {\dimen0=#1\r@dian\advance\dimen0 by 90\r@dian \Sine{\nodimen 0}% \xdef\cosine{\sine}% \xdef\sine{\Savesine}}} \rotdriver{dvips} \endinput %% %% End of file `rotating.sty'.