summaryrefslogtreecommitdiff
path: root/macros/generic/diagrams/xypic/texinputs/xyemtex.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/generic/diagrams/xypic/texinputs/xyemtex.tex')
-rw-r--r--macros/generic/diagrams/xypic/texinputs/xyemtex.tex101
1 files changed, 101 insertions, 0 deletions
diff --git a/macros/generic/diagrams/xypic/texinputs/xyemtex.tex b/macros/generic/diagrams/xypic/texinputs/xyemtex.tex
new file mode 100644
index 0000000000..d1a7e76da0
--- /dev/null
+++ b/macros/generic/diagrams/xypic/texinputs/xyemtex.tex
@@ -0,0 +1,101 @@
+%% xyemtex.tex from $Id: xyemtex.doc,v 3.7 2011/03/14 20:14:00 krisrose Exp $
+%%
+%% Xy-pic ``em-TeX'' back-end extension.
+%% Copyright (c) 1995-1996 Ross Moore <ross.moore@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-2011 Kristoffer H. Rose <krisrose@tug.org>
+%%
+%% 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, see http://www.gnu.org/licenses/.
+%%
+\ifx\xyloaded\undefined \input xy \fi
+\xyprovide{emtex}{em-TeX backend}{\stripRCS$Revision: 3.7 $}%
+ {Ross Moore}{ross.moore@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