diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/xypic/xyemtex.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/xypic/xyemtex.tex | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/xypic/xyemtex.tex b/Master/texmf-dist/tex/generic/xypic/xyemtex.tex new file mode 100644 index 00000000000..5437223ac64 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/xyemtex.tex @@ -0,0 +1,102 @@ +%% xyemtex.tex from $Id: xyemtex.doc,v 3.3 1996/12/18 09:18:00 ross Exp $ +%% +%% Xy-pic ``em-TeX'' back-end extension. +%% 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{emtex}{em-TeX backend}{\stripRCS$Revision: 3.3 $}% + {Ross Moore}{ross@mpce.mq.edu.au}% + {Mathematics Department, Macquarie University, NSW~2109, Australia} +\xynew@{if}\ifEMspecials@ +\xydef@\UseEMspecials{\EMspecials@true} +\xydef@\NoEMspecials{\EMspecials@false} +\xydef@\xyemtex@lineto{\xyEM@special{lineto}} +\xydef@\xyemtex@moveto{\xyEM@special{moveto}} +\xydef@\xyemtex@line#1{\xyEM@special{line #1}} +\xydef@\xyemtex@point#1{\xyEM@special{point #1}} +\xydef@\xyemtex@pen#1{\addtostyletoks@{\xyEM@special{linewidth #1}}} +{\catcode`:=12 \gdef\next#1{\special{em:#1}}} +\xylet@\xyEM@special=\next +{\catcode`:=12 \gdef\next#1{% + \W@{EM:#1 (\the\X@p,\the\Y@p),(\the\X@c,\the\Y@c)}\special{em:#1}}} +\xylet@\xyEM@noisy=\next +\xydef@\NoisyEMTeX{\let\xyEM@special=\xyEM@noisy} +\xydef@\EMalternative@#1#2{% +\expandafter\global\expandafter\let\csname origxy#2@\endcsname=#1% + \xdef#1{\noexpand\ifEMspecials@ + \noexpand\expandafter\expandafter\noexpand\csname xyemtex@#2@\endcsname + \noexpand\else + \noexpand\expandafter\expandafter\noexpand\csname origxy#2@\endcsname + \noexpand\fi}}% +\xydef@\setupxyEMTeX@{\xywarning@{using em-TeX specials}% + \EMalternative@{\solid@}{solid}% + \EMalternative@{\splinesolid@}{splinesolid}% + \let\setupxyEM@=\reloadxyEM@ + \activateEM@ } +\xydef@\xyunloadEM@{\xywarning@{EM specials turned off}% + \xywithoption{line}{\xysetup@@\uninstallEMline@ }% + \EMspecials@false + \let\setupxyEM@=\reloadxyEM@ } +\xydef@\activateEM@{% + \xywithoption{line}{\xysetup@@\installEMline@}% + \EMspecials@true } +\xydef@\reloadxyEM@{\xywarning@{EM specials back on}\activateEM@ } +\xydef@\xyemtex@solid@{% + \ifInvisible@ \let\next@=\no@@ + \else \DN@{\xyEMstraight@}\fi + \next@ } +\xydef@\xyEMstraight@{\setupDirection@ + \edef\Creset@@{\cfromthec@ \pfromthep@ \DirectionfromtheDirection@}% + \DN@##1##2{\def\checkoverlap@@{% + \ifdim##1\X@p>##1\X@c \let\next@=\relax \fi + \ifdim##2\Y@p>##2\Y@c \let\next@=\relax \fi}}% + \edef\nextii@{{\sd@X}{\sd@Y}}\expandafter\next@\nextii@ + \noCshavep@@ \edef\Cshavep@@{\pfromthep@ \noexpand\resetDirection@}% + \noCshavec@@ \edef\Cshavec@@{\cfromthec@ \noexpand\resetDirection@}% + \ifHidden@\else + \ifdim\Y@c>\Y@max \Y@max=\Y@c \fi \ifdim\Y@p>\Y@max \Y@max=\Y@p \fi + \ifdim\Y@c<\Y@min \Y@min=\Y@c \fi \ifdim\Y@p<\Y@min \Y@min=\Y@p \fi + \ifdim\X@c>\X@max \X@max=\X@c \fi \ifdim\X@p>\X@max \X@max=\X@p \fi + \ifdim\X@c<\X@min \X@min=\X@c \fi \ifdim\X@p<\X@min \X@min=\X@p \fi \fi + \ifInvisible@\let\next@=\relax \else + \DN@{% + \setboxz@h{\kern\X@p \raise\Y@p\hbox{\xyemtex@moveto}}% + \ht\z@=\z@ \wd\z@=\z@ \dp\z@=\z@ + \setboxz@h{\boxz@ \kern\X@c \raise\Y@c\hbox{\xyemtex@lineto}}% + \ht\z@=\z@ \wd\z@=\z@ \dp\z@=\z@ {\Drop@@}}% + \fi + \checkoverlap@@ + \ifdim\d@X=\z@ \ifdim\d@Y=\z@ \DN@{\relax}\fi\fi \next@ + \def\Cslidep@@{\noCslidep@@}\def\Cslidec@@{\noCslidec@@}% + \def\Calong@@{\noCalong@@}\Creset@@ } +\xydef@\xyemtex@splinesolid@{\setbox\splinebox@=\copy\voidb@x + \multiply\splinetol@\thr@@ + \gdef\splineextra@@{\xyemtex@moveto\gdef\splineextra@@{\xyemtex@lineto}}% + \def\xycrvdrop@{ }\def\xycrvconn@{}\splineset@@ } +\xydef@\xyEMlinewidth@#1{\dimen@=#1\relax\edef\next@{\the\dimen@}} +\xydef@\installEMline@{% + \let\xylinewidth@@=\xylinewidth@ + \let\xylineSpecial@@=\xyemtex@pen + \let\transxyline@@=\xyEMlinewidth@ } +\xydef@\uninstallEMline@{\UnloadLine@\relax}% +\xydef@\UseEMlinewidth{\installEMline@}% +\xydef@\NoEMlinewidth{\uninstallEMline@}% +\xyendinput |