From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 systems/mac/textures/graphics/rotate.sty | 55 ++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
 create mode 100644 systems/mac/textures/graphics/rotate.sty

(limited to 'systems/mac/textures/graphics/rotate.sty')

diff --git a/systems/mac/textures/graphics/rotate.sty b/systems/mac/textures/graphics/rotate.sty
new file mode 100644
index 0000000000..1540fda759
--- /dev/null
+++ b/systems/mac/textures/graphics/rotate.sty
@@ -0,0 +1,55 @@
+%
+%   These macros allow you to rotate or flip a \TeX\ box.  Very useful for
+%   sideways tables or upsidedown answers.
+%
+%   To use, create a box containing the information you want to rotate.
+%   (An hbox or vbox will do.)  Now call \@rotr\boxnum to rotate the
+%   material and create a new box with the appropriate (flipped) dimensions.
+%   \@rotr rotates right, \@rotl rotates left, \@rotu turns upside down, and
+%   \@rotf flips.  These boxes may contain other rotated boxes.
+%
+%   Originally written by Tomas Rokicki, and distributed with dvips.
+%   Modified for Textures by Barry Smith, Blue Sky Research, 08Jul94
+
+\newdimen\@rotdimen
+\newbox\@rotbox
+
+\def\@rotstart#1{\special{postscript 0 0 transform}% get current point
+  \special{rawpostscript gsave itransform 2 copy translate
+   #1 neg exch neg exch translate}}% #1 can be any origin-fixing transformation
+\def\@rotfinish{\special{rawpostscript currentfont grestore setfont}}% gets back in synch
+%
+%   First, the rotation right. The reference point of the rotated box
+%   is the lower right corner of the original box.
+%
+\def\@rotr#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+   \hbox to\@rotdimen{\hskip\ht#1\vbox to\wd#1{\@rotstart{90 rotate}%
+   \box#1\vss}\hss}\@rotfinish}
+%
+%   Next, the rotation left. The reference point of the rotated box
+%   is the upper left corner of the original box.
+%
+\def\@rotl#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+   \hbox to\@rotdimen{\vbox to\wd#1{\vskip\wd#1\@rotstart{270 rotate}%
+   \box#1\vss}\hss}\@rotfinish}%
+%
+%   Upside down is simple. The reference point of the rotated box
+%   is the upper right corner of the original box. (The box's height
+%   should be the current font's xheight, \fontdimen5\font,
+%   if you want that xheight to be at the baseline after rotation.)
+%
+\def\@rotu#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+   \hbox to\wd#1{\hskip\wd#1\vbox to\@rotdimen{\vskip\@rotdimen
+   \@rotstart{-1 dup scale}\box#1\vss}\hss}\@rotfinish}%
+%
+%   And flipped end for end is pretty ysae too. We retain the baseline.
+%
+\def\@rotf#1{\hbox to\wd#1{\hskip\wd#1\@rotstart{-1 1 scale}%
+   \box#1\hss}\@rotfinish}%
+%
+%   Now the user interface for LaTeX:  \rotate[type]{text} where
+%   ``type'' is `l' for left, `r' for right, `u' for upside-down, or
+%   `f' for flip.  `l' is the default.
+%
+\def\rotate{\@ifnextchar[{\@rotate}{\@rotate[l]}}
+\def\@rotate[#1]#2{\setbox\@rotbox=\hbox{#2}\@nameuse{@rot#1}\@rotbox}
-- 
cgit v1.2.3

