summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:57:08 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:57:08 +0000
commit6503c91bd38e667c9173750a5169f069184297b9 (patch)
treef982a43166feaebdee280b9c4af82b8595c3ce89 /Master
parentc8eb7239a1d0c22402ee84cd955078ba062f61cc (diff)
trunk/Master/texmf-dist/source/latex/rotating
git-svn-id: svn://tug.org/texlive/trunk@492 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/source/latex/rotating/examples.ex2
-rw-r--r--Master/texmf-dist/source/latex/rotating/makefile7
-rw-r--r--Master/texmf-dist/source/latex/rotating/manifest6
-rw-r--r--Master/texmf-dist/source/latex/rotating/readme9
-rw-r--r--Master/texmf-dist/source/latex/rotating/rotating.dtx378
-rw-r--r--Master/texmf-dist/source/latex/rotating/rotating.ins52
6 files changed, 454 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/rotating/examples.ex b/Master/texmf-dist/source/latex/rotating/examples.ex
new file mode 100644
index 00000000000..dd0e05d5392
--- /dev/null
+++ b/Master/texmf-dist/source/latex/rotating/examples.ex
@@ -0,0 +1,2 @@
+\epsfig{figure=cat.eps,width=1in,%
+angle=-56}
diff --git a/Master/texmf-dist/source/latex/rotating/makefile b/Master/texmf-dist/source/latex/rotating/makefile
new file mode 100644
index 00000000000..208e1e25332
--- /dev/null
+++ b/Master/texmf-dist/source/latex/rotating/makefile
@@ -0,0 +1,7 @@
+all:
+ tex rotating.ins
+ latex rotating.dtx
+
+clean:
+ -rm *.dvi *.aux *.log *.tmp *.toc *.lof *.lot *.idx *.ex
+ -rm rotating.sty
diff --git a/Master/texmf-dist/source/latex/rotating/manifest b/Master/texmf-dist/source/latex/rotating/manifest
new file mode 100644
index 00000000000..578b50ce7f3
--- /dev/null
+++ b/Master/texmf-dist/source/latex/rotating/manifest
@@ -0,0 +1,6 @@
+cat.eps PostScript file used in examples
+examples.tex long test file
+makefile
+manifest
+rotating.dtx commented source
+rotating.ins TeX script to strip source
diff --git a/Master/texmf-dist/source/latex/rotating/readme b/Master/texmf-dist/source/latex/rotating/readme
new file mode 100644
index 00000000000..c8dcbee38fe
--- /dev/null
+++ b/Master/texmf-dist/source/latex/rotating/readme
@@ -0,0 +1,9 @@
+A package built on the standard \LaTeX\ graphics package, and performs
+all the different sorts of rotation one might like, including complete
+figures and captions. The commented source contains the manual, and
+there is a set of tests in examples.tex.
+
+Install by running \TeX\ on rotating.ins and place `rotating.sty'
+where \LaTeX\ can find it.
+
+
diff --git a/Master/texmf-dist/source/latex/rotating/rotating.dtx b/Master/texmf-dist/source/latex/rotating/rotating.dtx
new file mode 100644
index 00000000000..c008c925b94
--- /dev/null
+++ b/Master/texmf-dist/source/latex/rotating/rotating.dtx
@@ -0,0 +1,378 @@
+\def\RInfo{1997/09/26, v2.13}
+%
+% \iffalse
+%% File: rotating.dtx Copyright (C) 1995--1999
+% Sebastian Rahtz and Leonor Barroca
+% <s.rahtz@elsevier.co.uk>
+%
+% This package may be distributed under the terms of the LaTeX Project Public
+% License, as described in lppl.txt in the base LaTeX distribution.
+% Either version 1.0 or, at your option, any later version.
+%
+% This package is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%
+% A package to provide a rotation environment, and
+% rotating floats and captions
+%
+%<*driver>
+\documentclass{ltxdoc}
+\begin{document}
+ \title{A style option for rotated objects in \LaTeX}
+ \author{Sebastian Rahtz \and Leonor Barroca}
+ \author{Leonor Barroca}
+ \date{printed today}
+ \maketitle
+ \tableofcontents
+ \listoffigures
+ \listoftables
+ \DocInput{rotating.dtx}
+\end{document}
+%</driver>
+% \fi
+% \CheckSum{388}
+% \begin{abstract}
+% This article documents a \LaTeX\ package, `rotating.sty',
+% which perform all the different sorts of
+% rotation one might like, including complete figures.
+% \end{abstract}
+% \section{History}
+%
+% Version 2.0 is a complete re-write, with most of the work now
+% being done by the \LaTeXe\ graphics package.
+%
+% Version 2.1 provides a `clockwise' option to reinstate the behaviour
+% described in the `\LaTeX\ Companion'
+%
+% Version 2.2 just intercepts the standard float macros instead
+% of copying and changing the. The `twoside' option is obeyed.
+%
+% Version 2.5 corrects problems in sideways figures.
+%
+% Version 2.6 is a rewrite of the sideways floats via Frank Mittelbach
+% (to whom many thanks for lookingat the mangy code).
+%
+% Version 2.7 is checked for \LaTeX\ of December 94, and adds the option
+% of twoside behaviour independent of the general twoside.
+%
+% Version 2.8 cleans up some mistakes pointed out by Harald Axel Sommerfeldt.
+% Version 2.9 cleans up some (more) mistakes pointed out by Harald Axel Sommerfeldt.
+% \section{Usage}
+% This style option provides three \LaTeX\ environments:
+% \begin{description}
+% \item[sideways] prints the contents turned through 90 degrees
+% counterclockwise
+% \item[turn] prints the contents turned through an arbitrary angle
+% \item[rotate] prints the contents turned through an arbitrary angle
+% but does \emph{not} leave any space for the result
+% \end{description}
+% A full set of examples are given in the file |examples.tex|
+% Now we present the documented code.
+% \section{Setup}
+% \StopEventually{}
+% \begin{macrocode}
+%<*package>
+\ProvidesPackage{rotating}[\RInfo\space Rotation package]
+\NeedsTeXFormat{LaTeX2e}
+\newif\if@rot@twoside
+\DeclareOption{clockwise}{% this is for compatibility
+ \AtBeginDocument{\setkeys{Grot}{units=360}}%
+}
+\DeclareOption{counterclockwise}{%
+ \AtBeginDocument{\setkeys{Grot}{units=-360}}%
+}
+% \end{macrocode}
+% Sideways figures and tables always take up the whole page. They can be
+% rotated so that the bottom ot the figures is on the left or the right;
+% the default is to always turn to the right. If the `twoside' option
+% has been given to the main document class, this package then starts
+% rotating sideways figures according to the page number (this requires
+% two passes through \LaTeX{} at least). If you want the `twoside'
+% option, but want the figures always in one direction, use the
+% `figuresright' or `riguresleft' options to `rotating'.
+% \begin{macrocode}
+\DeclareOption{figuresleft}{%
+ \@rot@twosidefalse
+ \def\rot@LR{0}%
+}
+\DeclareOption{figuresright}{%
+ \@rot@twosidefalse
+ \def\rot@LR{-1}%
+}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphics}}
+\ExecuteOptions{clockwise}
+\if@twoside
+ \@rot@twosidetrue
+\else
+ \@rot@twosidefalse
+\fi
+\def\rot@LR{-1}
+\ProcessOptions
+\RequirePackage{graphicx}
+\RequirePackage{ifthen}
+\def\rotdriver#1{\makeatletter\input{#1.def}\makeatother}
+\newcounter{r@tfl@t}
+\setcounter{r@tfl@t}{0}
+% \end{macrocode}
+% \section{Turning and rotation environments}
+% \begin{macro}{sideways}
+% Environment to turn the contents through 90 degrees.
+% \begin{macrocode}
+\def\sideways{%
+ \Grot@setangle{90}%
+ \setbox\z@\hbox\bgroup\ignorespaces}
+\def\endsideways{%
+ \unskip\egroup
+ \Grot@x\z@
+ \Grot@y\z@
+ \Grot@box
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{turn}
+% Rotate the contents of the environment, leaving the appropriate space
+% \begin{macrocode}
+\def\turn#1{%
+ \Grot@setangle{#1}%
+ \setbox\z@\hbox\bgroup\ignorespaces}
+\def\endturn{%
+ \unskip\egroup
+ \Grot@x\z@
+ \Grot@y\z@
+ \Grot@box
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{rotate}
+% Rotate the contents of the environment, leaving \emph{no space}.
+% \begin{macrocode}
+\def\rotate#1{%
+ \Grot@setangle{#1}%
+ \setbox\z@\hbox\bgroup\ignorespaces}
+\def\endrotate{%
+ \unskip\egroup
+ \Grot@x\z@
+ \Grot@y\z@
+ \wd0\z@\dp0\z@\ht0\z@
+ \Grot@box
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\turnbox}
+% A macro version of the `rotate' environment.
+% \begin{macrocode}
+\def\turnbox#1#2{%
+ \Grot@setangle{#1}%
+ \setbox\z@\hbox{{#2}}%
+ \Grot@x\z@\Grot@y\z@
+ \wd0\z@\dp0\z@\ht0\z@
+ \Grot@box
+}
+% \end{macrocode}
+% \end{macro}
+% \section{Sideways figures and tables}
+% Now for the macros to provide a complete
+% environment for sideways figures and tables.
+% We define two environments |sidewaysfigure| and
+% |sidewaystable| that
+% fit in with the normal table and figure floats. These are `fixed'
+% environments that just do 90 degree rotation, but it would be easy
+% to parameterize this to do other rotations if needed (the mind
+% boggles\ldots)
+%
+% First a generalised `rotfloat' environment. We need to intercept
+% \LaTeX's float macros, in order to change the assumed width of a
+% float being |\columnwidth|. We want it to work on a width of
+% |\textheight| so that when we rotate the float, it comes out
+% the right height. This is not actually very satisfactory, since what
+% we \emph{really} want is for rotated floats to occupy the space they
+% actually \emph{use}. The captions are a problem --- since they can
+% precede the figure or table, we cannot set them in a box of the
+% right width (ie the \emph{height} of the forthcoming object), because
+% it has not happened yet. The result of these difficulties is that
+% rotated figures always end up as full page figures.
+% \begin{macrocode}
+\newsavebox\rot@float@box
+\def\@rotfloat#1{%
+ \@ifnextchar[%
+ {\@xrotfloat{#1}}%
+ {\edef\@tempa{\noexpand\@xrotfloat{#1}[\csname fps@#1\endcsname]}\@tempa}%
+}
+\def\@xrotfloat#1[#2]{%
+ \@float{#1}[#2]%
+% \end{macrocode}
+% Set the float contents in
+% a box of |\textheight| instead of |\columnwidth|.
+% \begin{macrocode}
+ \begin{lrbox}\rot@float@box
+ \begin{minipage}\textheight
+ }
+% \end{macrocode}
+% We call the |\end@float| macro having previously rotated
+% the box |\@currbox|
+% The rotation is either clockwise or
+% anti-clockwise, depending on whether the page is odd or even;
+% in oneside mode it is always odd.
+% \begin{macrocode}
+\def\end@rotfloat{%
+% \end{macrocode}
+% If we are going to know whether pages are odd or even,
+% we need to use the a variant |\pageref| mechanism, and labels. But
+% Labels won't work \emph{unless} the user has put in a
+% caption. Beware!
+% \begin{macrocode}
+ \end{minipage}\end{lrbox}%
+ \global\addtocounter{r@tfl@t}{1}%
+ \rot@label{RF\ther@tfl@t}%
+ \message{Adding sideways figure on }%
+ \def\R@@page{\pageref{RF\ther@tfl@t}}%
+ \wd\rot@float@box\z@
+ \ht\rot@float@box\z@
+ \dp\rot@float@box\z@
+ \vbox to \textheight{%
+% \end{macrocode}
+% We need to know for sure which direction rotation is going to
+% be in, so locally reset the graphics units.
+% \begin{macrocode}
+ \setkeys{Grot}{units=360}%
+ \if@rot@twoside
+ \def\R@@page{\pageref{RF\ther@tfl@t}}%
+ \else
+ \let\R@@page\rot@LR
+ \fi
+ \ifthenelse{\isodd{\R@@page}}{%
+ \message{right hand page}%
+ \vfill
+ \centerline{\rotatebox{90}{\box\rot@float@box}}%
+ }{%
+ \message{left hand page}%
+ \centerline{\rotatebox{-90}{\box\rot@float@box}}%
+ \vfill
+ }%
+ }%
+ \end@float
+}
+% \end{macrocode}
+% The following definitions set up two environments,
+% \texttt{sidewaystable} and \texttt{sidewaysfigure}, which uses this
+% type of float. Naturally, users may need to change these to suit
+% their local style. Both contribute to the normal lists of figures
+% and tables.
+% \begin{macrocode}
+\def\sidewaysfigure{\@rotfloat{figure}}
+%
+\let\endsidewaysfigure\end@rotfloat
+%
+\def\sidewaystable{\@rotfloat{table}}
+\let\endsidewaystable\end@rotfloat
+% \end{macrocode}
+% Handling double column floats
+% \begin{macrocode}
+\def\@rotdblfloat{%
+ \if@twocolumn\let\reserved@a\@rotdbflt\else\let\reserved@a\@rotfloat\fi
+ \reserved@a}
+\def\@rotdbflt#1{\@ifnextchar[{\@rotxdblfloat{#1}}{\@rotxdblfloat{#1}[tp]}}
+\def\@rotxdblfloat#1[#2]{%
+ \hsize\textwidth\linewidth\textwidth
+ \@float{#1}[#2]%
+ \begin{lrbox}\rot@float@box
+ \begin{minipage}\textheight
+}
+\def\end@rotdblfloat{%
+ \end{minipage}\end{lrbox}%
+ \global\addtocounter{r@tfl@t}{1}%
+ \rot@label{RF\ther@tfl@t}%
+ \message{Adding sideways figure on }%
+ \def\R@@page{\pageref{RF\ther@tfl@t}}%
+ \@tempdima\ht\rot@float@box
+ \advance\@tempdima by \dp\rot@float@box
+\typeout{BOX wd: \the\wd\rot@float@box, ht: \the\ht\rot@float@box, dp: \the\dp\rot@float@box: so shift by .5 of \the\@tempdima}%
+ \wd\rot@float@box\z@
+ \ht\rot@float@box\z@
+ \dp\rot@float@box\z@
+ \vbox to \textheight{%
+ \setkeys{Grot}{units=360}%
+ \if@rot@twoside
+ \def\R@@page{\pageref{RF\ther@tfl@t}}%
+ \else
+ \let\R@@page\rot@LR
+ \fi
+ \ifthenelse{\isodd{\R@@page}}{%
+ \message{right hand page}%
+ \vfill
+ \hbox to\textwidth{\hfill\rotatebox{90}{\box\rot@float@box}\hfill}%
+ }{%
+ \message{left hand page}%
+ \hbox to \textwidth{\hfill\rotatebox{-90}{\box\rot@float@box}\hfill}%
+ \vfill
+ }%
+ }%
+ \end@dblfloat
+}
+\newenvironment{sidewaystable*}
+ {\@rotdblfloat{table}}
+ {\end@rotdblfloat}
+\newenvironment{sidewaysfigure*}
+ {\@rotdblfloat{figure}}
+ {\end@rotdblfloat}
+
+% \end{macrocode}
+% Note that we used |\rot@label|, not |\label|; this
+% variant writes the \emph{true} page number, not the
+% value of |\thepage|. It also involves a variant |\protected@write|
+% for reasons which I do not fully understand. Let it stand.
+% \begin{macrocode}
+\long\def \r@protected@write#1#2#3{%
+ \begingroup
+ \let\therpage\relax
+ #2%
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\write#1{#3}}%
+ \reserved@a
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+}
+\def\therpage{\arabic{page}}
+\def\rot@label#1{\@bsphack
+ \r@protected@write\@auxout{}%
+ {\string\newlabel{#1}{{\@currentlabel}{\therpage}}}%
+ \@esphack}
+% \end{macrocode}
+%\subsection{Rotated captions only}
+% Sometimes you may find that the rotation of complete figures does
+% not give quite the right result, since they always take up the whole
+% page. You may prefer to rotate the caption and the float contents
+% separately within a conventional figure. Here we offer a suggestion
+% for a |\rotcaption| command, which inserts the caption rotated
+% by 90 degrees. It is essentially a copy of the normal captioning
+% code.
+% Styles which define the |\@makecaption| command may also need
+% to define |\@makerotcaption|.
+% \begin{macrocode}
+\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
+ \rotatebox{90}{%
+ \begin{minipage}{.8\textheight}#1: #2\end{minipage}%
+ }\par
+ \else%
+ \rotatebox{90}{\box\@tempboxa}%
+ \fi
+ \hspace{12pt}%
+}
+% \end{macrocode}
+%</package>
+% \Finale
+\endinput
+%
diff --git a/Master/texmf-dist/source/latex/rotating/rotating.ins b/Master/texmf-dist/source/latex/rotating/rotating.ins
new file mode 100644
index 00000000000..bcbcdb5c00a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/rotating/rotating.ins
@@ -0,0 +1,52 @@
+% \iffalse
+% LaTex2e rotating package
+%
+% \fi
+\def\fileversion{1}
+\def\filedate{1994/04/14}
+%
+% \StopEventually{}
+%
+% As always we begin by identifying the latest version of this file
+% on the VDU and in the {\sf log} file.
+% \begin{macrocode}
+\def\batchfile{rotating.ins}
+\input docstrip.tex
+\preamble
+
+Copyright (C) 1994 by Sebastian Rahtz and Leonor Barroca
+All rights reserved.
+
+\endpreamble
+
+\def\batchfile{rotating.dst} % ignored in distribution
+\input docstrip.tex % ignored in distribution
+
+\keepsilent
+
+\preamble
+Copyright (C) 1994 Sebastian Rahtz and Leonor Barroca. 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.
+
+\endpreamble
+
+\Msg{*** Generating style file for using rotating package ***}
+
+\generateFile{rotating.sty}{f}{
+ \from{rotating.dtx}{package}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the }
+\Msg{* rotating.sty file into a directory searched by TeX}
+\Msg{*}
+\Msg{***********************************************************}
+
+
+\endinput
+
+
+