summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/xypic/xyoztex.doc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/generic/xypic/xyoztex.doc')
-rw-r--r--Master/texmf-dist/source/generic/xypic/xyoztex.doc316
1 files changed, 316 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/xypic/xyoztex.doc b/Master/texmf-dist/source/generic/xypic/xyoztex.doc
new file mode 100644
index 00000000000..4a5e34df9be
--- /dev/null
+++ b/Master/texmf-dist/source/generic/xypic/xyoztex.doc
@@ -0,0 +1,316 @@
+%% $Id: xyoztex.doc,v 3.3 1996/12/18 09:26:26 ross Exp $
+%%
+%% Xy-pic ``OzTeX'' driver interface option.
+%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au>
+%%
+%% This file is part of the Xy-pic package for graphs and diagrams in TeX.
+%% See the companion README and INSTALL files for further information.
+%% Copyright (c) 1991-1996 Kristoffer H. Rose <krisrose@brics.dk>
+%%
+%% The Xy-pic package is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by the
+%% Free Software Foundation; either version 2 of the License, or (at your
+%% option) any later version.
+%%
+%% The Xy-pic 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. See the GNU General Public License
+%% for more details.
+%%
+%% You should have received a copy of the GNU General Public License along
+%% with this package; if not, write to the Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge, MA 02139, USA.
+%%
+\ifx\xyloaded\undefined \input xy \fi
+
+\xyprovide{oztex}{OzTeX driver}{\stripRCS$Revision: 3.3 $}%
+ {Ross Moore}{ross@mpce.mq.edu.au}%
+ {Mathematics Department, Macquarie University, NSW~2109, Australia}
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+This driver provides the necessary interface to support the \PS\ back-end and
+other \PS\ effects when using the DVI driver of versions 1.8+ of \OzTeX\ by
+Andrew Trevorrow,\footnote{\OzTeX\ is a shareware implementation of \TeX\ for
+Macintosh available from many bulletin boards and ftp sites; v1.5 and earlier
+versions were freeware. Email contact: <akt@kagi.com>.} "Earlier versions
+of \OzTeX\ should instead use the driver option |\xyoption{17oztex}|."
+
+Effects such as colour, line-thickness and rotated or scaled diagrams are
+only partially supported in that the effects cannot be applied to any text or
+symbols placed using fonts. This is due to the nature of \OzTeX\ <driver>,
+whose optimization of the placement of font-characters precludes the
+applicability of such effects. Furthermore the \PS\ dictionary must be
+available in a file called |global.ps| or appended to the
+|OzTeXdict.pro|. However with version 1.8 and later of \OzTeX, there is the
+alternative of using the |dvips| <driver>, which does support all the \PS\
+effects available in \Xy-pic.
+
+\NOTE: To use \Xy-pic effectively with \OzTeX\ requires changing several
+memory parameters. In particular a `Big-\TeX' is needed, along with an
+increase in the |pool_size| parameter. Explicit instructions are contained
+in the file |INSTALL.|\-|OzTeX| of the \Xy-pic distribution.
+
+\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\paragraph*{Header:}\leavevmode
+\DOCHEADER
+
+\DOCMODE(
+\xydef@\OzTeX@@#1{\dvimessage@{OzTeX}{#1}}
+
+\newdriver{%
+ \xyaddsupport{color}\oztexColor@@
+ \xyaddsupport{crayon}\oztexCrayon@@
+ \xyaddsupport{ps}\oztexPS@@
+ \xyaddsupport{rotate}\oztexRotate@@
+ \xyaddsupport{line}\oztexLine@@
+ \xyaddsupport{frame}\oztexFrames@@
+ \xyaddsupport{tile}\oztexTiles@@
+ \xyaddsupport{cmtip}\relax
+}
+\DOCMODE)
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Supported |\special| effects are...
+%
+\begin{itemize}
+
+\item colour, using \PS, but not of font-characters.
+
+\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\DOCMODE(
+\xydef@\oztexColor@@{\OzTeXColours@}
+
+\xydef@\OzTeXColours@{\OzTeXPStypes@
+ \let\xylocalColor@=\xyNoColor@@ \def\xycolor@{\xycolor@@}%
+ \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{%\XYpredict@
+ \xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}%
+ \installPScolor@ }\else\DN@{}\fi \next@
+ \ifx\xycrayolaloaded\empty \DN@{\xystandardcolors@\OzTeXCrayon@@{}}%
+ \else\let\next@=\xystandardcolors@\fi \next@
+ \let\xycolorwarning@=\relax
+ \let\oztexColor@@=\relax
+ \let\UnloadColor@@=\NoOzTeXColor@
+}
+
+\xydef@\NoOzTeXColor@{%
+ \let\xylocalColor@=\xyNoColor@@
+ \let\xycolor@=\xyNoColor@
+ \let\xycolorwarning@=\xycolorwarning@@
+ \let\oztexColor@@=\OzTeXColours@
+ \let\UnloadColor@@=\UnloadColor@
+ }
+\DOCMODE)
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\item crayon colours, similarly restricted.
+
+\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The 68 colours are those that |dvips| recognizes by name,
+thanks to Tomas Rokicki.
+
+\DOCMODE(
+\xydef@\OzTeXCrayon@@{\installCrayolaColors@}
+\DOCMODE)
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\item \PS\ back-end.
+
+\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\DOCMODE(
+\xydef@\oztexPS@@{\oztexPS@}
+
+\xydef@\oztexPSunload@{\UnloadPS@
+ \def\xyPSdictname{}\UsePSdict@@false
+ \let\installxyps@@=\relax
+ \let\UnloadPS@@=\UnloadPS@
+ \xyPSshapes@true
+ \let\oztexPS@@=\oztexPS@ }
+\DOCMODE)
+
+\DOCMODE(
+\xydef@\OzTeXSpecial@#1{\special{empty.ps {#1}xy}}
+\xydef@\OzTeXMacro@#1{\special{empty.ps {#1}xy}}
+\xydef@\OzTeXDict@#1{\special{empty.ps @bxy{#1}stopped pop @exy}}
+\xydef@\OzTeXinclude@#1{\special{#1}}
+\xydef@\OzTeXraw@#1{\special{empty.ps @bxy #1 @exy}}%
+
+\xydef@\OzTeXPStypes@{%
+ \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%
+ \ifx\PSspecial@@\OzTeXSpecial@\else
+ \let\PSspecial@@=\OzTeXSpecial@
+ \let\PSmacro@@=\OzTeXMacro@
+ \let\PSdict@@=\OzTeXDict@
+ \let\PSraw@@=\OzTeXraw@
+ \let\PSinclude@@=\OzTeXinclude@
+ \let\xyPSobeylines@@=\obeyOzTeXlines@
+ \let\PSspecialdict@@=\OzTeXDict@
+ \OzTeX@@{PostScript}%
+ \fi
+% \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%
+ \OzTeXCurrpt@ }
+
+{\catcode`\^^M=\active %
+ \gdef\next{\catcode`\^^M=\active \let^^M=\space \obeyspaces}}
+\xylet@\obeyOzTeXlines@=\next
+\DOCMODE)
+
+The \PS\ operators |@bxy| and |@exy| are defined in |xyps-ps| for bypassing
+the mechanism used in \OzTeX\ to isolate code passed in |\special| commands.
+Although it is possible (albeit difficult) to devise \PS\ to deduce the
+current location for use with the ``raw'' specials, this information cannot
+be used to do rotations and scaling as with other <driver>s.
+Hence the value of |\xyPScurrpt@@| is taken to be empty.
+
+\DOCMODE(
+\xydef@\OzTeXCurrpt@{\let\xyPScurrpt@@=\OzTeXCurrpt@@}%
+\xydef@\OzTeXCurrpt@@{\PSraw@@{xyp}}
+\DOCMODE)
+
+\medskip
+
+This avoids dumping the dictionary into the dvi-file, making sure
+that instead it goes into a file, specified by |\xyPSdictname|,
+which defaults to |global.ps|.
+
+\DOCMODE(
+\xydef@\oztexPS@{\OzTeXPStypes@
+ \let\oztexPS@@=\relax
+ \let\UnloadPS@@=\oztexPSunload@
+ \let\installxyps@@=\@OzTeX@PS@
+ \installxyps@ }
+
+\xydef@\@OzTeX@PS@{\UsePSdict@@true
+ \let\includePSmessage@=\xyOzTeXheader
+ \ifx\undefined\xyPSdictname\def\xyPSdictname{global.ps}\fi}
+
+\xydef@\xyOzTeXheader#1#2#3{\UsePSdict@@true}
+\DOCMODE)
+
+The parameters |#1#2#3| of |\xyOzTeXheader| gobble tokens
+that are unnecessary with \OzTeX.
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\item variable line-widths and poly-lines, using \PS.
+\DOCMODE(
+\xydef@\oztexLine@@{\oztexLine@}
+
+\xydef@\oztexLine@{\OzTeXPStypes@
+ \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{%\XYpredict@
+ \xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@ }%
+ \else\DN@{\xydriverfail@{line-styles are}\UnloadLine@\relax}\fi
+ \next@ }
+\DOCMODE)
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\item extra frames and fills, using \PS.
+\DOCMODE(
+\xydef@\oztexFrames@@{\OzTeXFrames@}
+
+\xydef@\OzTeXFrames@{\OzTeXPStypes@
+ \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{%
+ \xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@ }%
+ \else\DN@{\xydriverfail@{frames are}\UnloadPSFrames@\relax}\fi
+ \next@ }
+\DOCMODE)
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\item patterns and tiles, using \PS.
+\DOCMODE(
+\xydef@\oztexTiles@@{\OzTeXTiles@}
+
+\xydef@\OzTeXTiles@{\OzTeXPStypes@
+ \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{%
+ \xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@
+ \xystandardpatterns@ }%
+ \else\DN@{\xydriverfail@{Patterns are}\UnloadPSpatterns@\relax}\fi
+ \next@ }
+\DOCMODE)
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\item rotated/scaled diagrams and text, recognised but not supported.
+
+\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+In fact \OzTeX\ cannot support rotations and scaling.
+Instead we go through all the motions of providing \PS\ support,
+then set a flag that causes a limited number of warning messages to be
+generated as requests are made for these effects.
+
+\DOCMODE(
+\xydef@\oztexRotate@@{\OzTeXRotate@}
+
+\xydef@\OzTeXRotate@{\OzTeXPStypes@
+ \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{%
+ \xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}%
+ \OzTeXRotScale@ \installPSrotscale@ \xyPSshapes@false }%
+ \else\DN@{\xydriverfail@{rotations are}\UnloadRotate@\relax}\fi
+ \next@ }
+\DOCMODE)
+
+This never worked properly. It requires too much hacking at Trevorrow's
+code for little gain, since text-rotation can never work anyway.
+Use the \dvips\ option instead!
+
+\DOCMODE(
+\xydef@\OzTeXRotScale@{%
+ \def\xyrot@start(##1){%
+ {xyp xyt ##1\space xyr}{OzXy begin gsave}}%
+ \def\xyscale@start(##1,##2){%
+ {xyp xyt ##1\space##2\space xys}{OzXy begin gsave}}%
+ \def\xyrot@end{grestore end}\def\xyscale@end{grestore end}}
+\DOCMODE)
+
+The default code will just do nothing as far as the output is concerned...
+
+\DOCMODE(
+\let\OzTeXRotScale@=\xyRotScale@@
+\DOCMODE)
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\end{itemize}
+
+\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\paragraph*{The end \& Log}\leavevmode
+
+\DOCMODE(
+\xyendinput
+
+% $Log: xyoztex.doc,v $
+% Revision 3.3 1996/12/18 09:26:26 ross
+% improvements to file-loading commands
+% fixed missing @ bug
+%
+% Revision 3.2 1995/09/19 18:21:41 ross
+% Bug fix release.
+%
+% Revision 3.1 1995/09/05 20:36:33 ross
+% Release!
+%
+% Revision 3.0 1995/07/07 20:13:19 ross
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:04:51 ross
+% Ready for release of v3.
+%
+% NEW for version 3.
+\DOCMODE)
+
+\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Tell Emacs that this is a LaTeX document and how it is formatted:
+% Local Variables:
+% mode:latex
+% fill-column:77
+% End: