diff options
Diffstat (limited to 'Master/texmf-dist/source/generic/xypic/xyimport.doc')
-rw-r--r-- | Master/texmf-dist/source/generic/xypic/xyimport.doc | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/xypic/xyimport.doc b/Master/texmf-dist/source/generic/xypic/xyimport.doc new file mode 100644 index 00000000000..a2cff8f9642 --- /dev/null +++ b/Master/texmf-dist/source/generic/xypic/xyimport.doc @@ -0,0 +1,245 @@ +%% $Id: xyimport.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ +%% +%% Xy-pic ``Import feature'' option. +%% Copyright (c) 1993-1997 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-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% +%% 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{import}{Import graphics extension}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross@mpce.mq.edu.au}% + {Mathematics Department, Macquarie University, NSW~2109, Australia} + +\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +This feature provides the ability to easy add labels and annotations to +graphics prepared outside \TeX\ or \LaTeX. An \Xy-pic graphics environment +is established whose coordinates match that within the contents of the +imported graphic, making it easy to specify exactly where a label should be +placed, or arrow drawn to highlight a particular feature. + +\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\paragraph*{Header:}\leavevmode +\DOCHEADER +\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +A command |\xyimport| is defined which is used, in conjunction with +imported graphics, to establish a coordinate system appropriate to the +particular graphics. This enables <pos>itions within the graphic to be easily +located, either for labelling or adding extra embellishing features. +It is used in either of the follow ways: +% +\begin{defs1} +|\xyimport(|{\em width}|,|{\em height}|){|<graphic>|}| \cr +|\xyimport(|{\em width}|,|{\em height}|)(|% + {\em$x$-off}|,|{$y$-off}|){|<graphic>|}| +\end{defs1} + +\begin{code} +\def\ellipA{\resizebox{6cm}{!}{% + \includegraphics{import1.eps}}} +\xy +\xyimport(3.7,3.7)(1.4,1.4){\ellipA}*\frm{-} +,!D+<2pc,-1pc>*+!U\txt{% + framed contents of graphics file}\endxy +\qquad\qquad +\xy\xyimport(3.7,3.7)(1.4,1.4){\ellipA} +,!D+<2pc,-1pc>*+!U\txt{Rational points + on the elliptic curve: $x^3+y^3=7$} +,(1,0)*+!U{1},(-1,0)*+!U{-1} +,(0,1)*+!R{1},(0,-1)*+!R{-1} +,(2,-1)*+!RU{P},(-1,2)*+!RU{-P} +,(1.3333,1.6667)*+!UR{-2P} +,(1.6667,1.3333)*!DL{\;2P} +,(-.5,1.9)*++!DL{3P},(1.9,-.5)*!DL{\;-3P} +,(-1,2.3)*+++!D{\infty}*=0{},{\ar+(-.2,.2)} +,(.5,2.3)*+++!D{\infty}*=0{},{\ar+(-.2,.2)} +,(2.3,-1)*+++!L{\infty}*=0{},{\ar+(.2,-.2)} +\endxy +\end{code} + +\begin{figure*}[t] +% +% example appears early so it will not float too far away. +% +% Special care needed in case there is no graphics available... +\ifx\includegraphics\undefined \def\resizebox#1#2#3{% + \vbox to6cm{\vss\hbox to6cm{\hss(Picture import1.eps omitted)\hss}\vss}}\fi +$$\docode$$ +\caption{importing a graphic for labelling}??=[importing] +\end{figure*} + +\noindent +Normally the <graphics> will be a box containing a graphic imported +using the commands from packages such as |graphics|, |epsf| or +|epsfig|, or using other commands provided by the local \TeX\ +implementation. However the <graphic> could be {\em any} balanced +\TeX\ material whatsoever; provided it occupies non-zero size, both +vertically and horizontally. + +The {\em width} and {\em height} are <number>s given in the coordinate +system for the {\em contents of the <graphics>}. These are not dimensions, +but coordinate-lengths, using the units appropriate to the picture displayed +by <graphic>. + +When provided, |(|{\em$x$-off}|,|{$y$-off}|)| give the distance in +coordinate units from bottom-left corner to where the origin of coordinates +should be located, usually within area covered by the <graphic>. +Usually the negatives of these numbers will give the coordinate location +of the bottom-left corner of the <graphic>. If no offsets are supplied +then the origin is presumed to lie at the bottom-left corner. + +\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\DOCMODE( +\xydef@\xyimport#1#{\xyimport@{#1}} +\xydef@\xyimport@#1#2{\xydelayimport@{#1}{#2}} +\xydef@\xydelayimport@#1#2{\xy@@ix@{#1{#2}}% + \xy@@{\expandafter\xyextern@\the\toks9}} + +\xydef@\xyextern@(#1,#2){\hbox\bgroup\R@c=#1\p@ \U@c=#2\p@\xyextern@i} + +\xydef@\xyextern@i#1#{\DN@{#1}% + \ifx\next@\empty \L@c=\z@ \D@c=\z@ \DN@{\xyextern@x}% + \else \DN@{\xyextern@ii#1}\fi \next@ } + +\xydef@\xyextern@ii(#1,#2){\L@c=#1\p@ \D@c=#2\p@ + \advance\R@c-\L@c \advance\U@c-\D@c \xyextern@x} + +\xydef@\xyimportdefault@{3} +\xydef@\xyexportwarning@#1#2#3{\xywarning@{% + #1 for import has zero #2; using \xyimportdefault@#3 default}} + +\xydef@\xyextern@x#1{\toks@={\egroup\L@c=}\setboxz@h{#1}% + \dimen@ii=\L@c \advance\dimen@ii\R@c \dimen@=\wdz@ + \ifdim\dimen@=\z@ \xyexportwarning@{graphic}{width}{cm}% + \dimen@=\xyimportdefault@ cm\fi + \ifdim\dimen@ii=\z@ \xyexportwarning@{coords}{width}{unit}% + \dimen@ii=\xyimportdefault@\p@\fi + \quotient@\next@\dimen@\dimen@ii \dimen@=\next@\p@ + \edef\tmp@{\expandafter\removePT@\the\L@c}\L@c=\tmp@\dimen@ + \expandafter\addtotoks@\expandafter{\the\L@c\relax\R@c=}% + \edef\tmp@{\expandafter\removePT@\the\R@c}\R@c=\tmp@\dimen@ + \expandafter\addtotoks@\expandafter{\the\R@c\relax\setbase@\z@\z@}% +% + \expandafter\addtotoks@\expandafter{\expandafter{\the\dimen@}\z@\D@c=}% + \dimen@ii=\U@c \advance\dimen@ii\D@c \dimen@=\ht\z@\advance\dimen@\dp\z@ + \ifdim\dimen@=\z@ \xyexportwarning@{graphic}{height}{cm}% + \dimen@=\xyimportdefault@ cm\fi + \ifdim\dimen@ii=\z@ \xyexportwarning@{coords}{height}{unit}% + \dimen@ii=\xyimportdefault@\p@\fi + \quotient@\next@\dimen@\dimen@ii \dimen@=\next@\p@ + \edef\tmp@{\expandafter\removePT@\the\D@c}\D@c=\tmp@\dimen@ + \expandafter\addtotoks@\expandafter{\the\D@c\relax\U@c=}% + \edef\tmp@{\expandafter\removePT@\the\U@c}\U@c=\tmp@\dimen@ + \expandafter\addtotoks@\expandafter{\the\U@c\relax\setbase@@\z@}% + \expandafter\addtotoks@\expandafter{\expandafter{\the\dimen@}}% +% + \setboxz@h{\kern-\L@c\lower\D@c\boxz@\kern\L@c}% + \wd\z@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@ \the\toks@ \X@c=\z@ \Y@c=\z@ + \ifdim\X@min>-\L@c \X@min=-\L@c \fi \ifdim\X@max<\R@c \X@max=\R@c \fi + \ifdim\Y@min>-\D@c \Y@min=-\D@c \fi \ifdim\Y@max<\U@c \Y@max=\U@c \fi + \idfromc@{import}\POS } +\DOCMODE) + +\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Normally the |\xyimport| command is used at the beginning of an |\xy..\endxy| +environment. It is not necessary to give any basis setup, for this is +deduced by measuring the dimensions of the <graphic> and using the supplied +{\em width}, {\em height} and offsets. +The <graphic> itself defines named <pos> called |"import"|, located at the +origin and having appropriate extents to describe the area covered by +the <graphic>. This makes it particularly easy to surround the <graphic> +with a frame, as on the left side of figure~??[importing], +or to draw axes passing through the origin. + +% Special care needed in case there is no graphics available... +\ifx\includegraphics\undefined \def\resizebox#1#2#3{% + \vbox to6cm{\vss\hbox to6cm{\hss(Picture import1.eps omitted)\hss}\vss}}\fi + +Here is the code used to apply the labelling in figure~??[importing]: +\displaycode + +This example uses the \LaTeXe\ standard |graphics| package to import +the graphics file |import1.eps|; other packages could have been used +instead. e.g. |epsfig|, |epsf|, or the \expandafter|\string\picture| +or \expandafter|\string\illustration| commands in \Textures\ on the +Macintosh. + +The only possible problems that can occur are when the graphics package is +loaded after \Xy-pic has been loaded. Generally it is advisable to have +\Xy-pic loading {\em after} all other macro packages. + +\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\paragraph*{The end \& Log}\leavevmode + +\DOCMODE( +\xyendinput + +% $Log: xyimport.doc,v $ +% Revision 3.6 1998/03/06 01:28:05 krisrose +% Releasing (with Y&Y fonts). +% +% Revision 3.4 1997/05/18 01:13:24 ross +% Essential bugfixes. +% +% Revision 3.3 1996/12/18 09:19:22 ross +% no changes +% +% 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.14 1995/07/05 22:10:51 kris +% Buglets... +% +% Revision 2.13 1995/07/04 15:04:51 ross +% Ready for release of v3. +% +% +% NEW for version 3.0 by by Ross Moore. +\DOCMODE) + +\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\endinput +$$ +\xy\xyimport(37,37)(18,18){\ellB} +,!D+<1pc,-1pc>*+!U\txt{Rational points +on the elliptic curve: $x^3+y^3=1729$} +,(10,0)*+!U{10},(-10,0)*+!U{-10} +,(0,10)*+!R{10},(0,-10)*+!R{-10} +,(1,12)*+!DL{P_1} +,(12,1)*+!DL{-P_1=(12\,,1)} +,(10,9)*!LD{\;\;\;P_2=(10\,,9)} +,(9,10)*++!D{\;\;-P_2} +,(-15.5,17.5)*+!DL{-P_1-P_2} +,(17.5,-15.5)*+!DL{P_1+P_2} +,(13,-7)*+!UR{-2P_1-P_2\;\;} +,(18,-3)*+++!L{\infty}*=0{},{\ar+(2,-2)} +,(3,18)*+++!D{\infty}*=0{},{\ar+(-2,2)} +\endxy +$$ + +\end{document} |