diff options
author | Karl Berry <karl@freefriends.org> | 2010-06-12 00:48:49 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-06-12 00:48:49 +0000 |
commit | b7d09128d54f9b6bb737e80e906499037529904e (patch) | |
tree | 68ea16ac010aeee726f77bcec9162525feb14a7e /Master/texmf-dist | |
parent | 457703ea12a711958a619ba5f9e665242c1dcfe7 (diff) |
xypic 3.8.1 (11jun10)
git-svn-id: svn://tug.org/texlive/trunk@18907 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
315 files changed, 8760 insertions, 56610 deletions
diff --git a/Master/texmf-dist/doc/generic/xypic/CATALOG b/Master/texmf-dist/doc/generic/xypic/CATALOG index 25479360239..8e7db21bcc4 100644 --- a/Master/texmf-dist/doc/generic/xypic/CATALOG +++ b/Master/texmf-dist/doc/generic/xypic/CATALOG @@ -1,5 +1,5 @@ Name: xypic -Version: 3.7 <1999/02/16> +Version: 3.8.1 <2010/06/10> Description: Xy-pic is a package for typesetting graphs and diagrams. It is structured as several modules, each defining a custom notation for @@ -11,10 +11,11 @@ Description: Xy-pic is a package for typesetting graphs and diagrams. complicated diagrams from many application areas including category theory, automata theory, algebra, neural networks, and database theory. -Keywords: diagram, picture, graph, arrow, curve, commutative diagram. +Keywords: diagram, picture, graph, arrow, curve, commutative diagram, + knot, braid, two-cell, cartesian coordinates, tree. Author: Kristoffer H. Rose -Problems-To: Kristoffer.Rose@ens-lyon.fr -Address: LIP/ENS-Lyon; 46, Allee d'Italie; 69364 Lyon 7; FRANCE +Problems-To: xy-pic@tug.org +Address: IBM T.J.Watson Research Center, PO Box 704, Yorktown Heights, NY 10598, USA -<URL: http://www.ens-lyon.fr/~krisrose/> +<URL: http://xy-pic.sourceforge.net> diff --git a/Master/texmf-dist/doc/generic/xypic/COPYING b/Master/texmf-dist/doc/generic/xypic/COPYING index a43ea2126fb..339f620993f 100644 --- a/Master/texmf-dist/doc/generic/xypic/COPYING +++ b/Master/texmf-dist/doc/generic/xypic/COPYING @@ -304,8 +304,7 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, see http://www.gnu.org/licenses/. Also add information on how to contact you by electronic and paper mail. diff --git a/Master/texmf-dist/doc/generic/xypic/FONTCOPYING b/Master/texmf-dist/doc/generic/xypic/FONTCOPYING new file mode 100644 index 00000000000..a868741bb6e --- /dev/null +++ b/Master/texmf-dist/doc/generic/xypic/FONTCOPYING @@ -0,0 +1,94 @@ + FONT GENERAL PUBLIC LICENSE EXCEPTIONS + Version 1, October 1998 + + Copyright (C) 1998 Kristoffer H. Rose <krisrose@tug.org> + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + Software for typesetting frequently includes fonts of characters. +If this software is covered by the GNU General Public License, then a +document, created as a result of running the software, which also +contains the fonts (for example for presentation purposes), is a +"derived" work. This license grants specific rights to separately +distribute fonts in order to make it clear that documents containing +the fonts (with the purpose of printing and viewing the characters and +images depicted in the document) are permitted. + + Exception Terms and Conditions + + 0. This License applies to any font or other work which contains a +notice placed by the copyright holder saying it may be distributed +under the terms of the GNU General Public License, either version 2 or +a later version, below the "License", with the explicit mention that +the exceptions of this Font General Public License Exceptions, below +the "Exceptions", apply. + +The "Font", below, refers to just the single file that has the +explicit mention that these Exceptions apply. + +All other terms used are those of the License. + + 1. You may distribute any unmodified version of the Font without the +requirement that the full remaining source of the Program is enclosed. + +An intact copy of the Font file with the same name, insofar as the +environment where the file is stored permits this, is considered as an +unmodified version. + + 2. You may distribute files with the Font translated to another +format provided that the following two conditions are met: + + a) The name of the Font, if it appears, must remain the same or be + as close to the original name as the format permits. + + b) You accompany the file by a prominent notice about the lack of + warranty for the Font as detailed in the GPL. + + 3. You may include fragments of the Font, or of the Font translated +to another format, in documents or other work with the purpose of +making it possible to view or print the document, provided that you +accompany the document with a prominent notice about the lack of +warranty of any kind for the Font, as detailed in the GPL. + + End of Exception Terms and Conditions + + Appendix: How to Apply These Terms to Your New Fonts + + If you develop a new font or an icon as part of a program, and you +want it to be of the greatest possible use to the public, the best way +to achieve this is to make it free software which everyone can +redistribute and change under these terms. However, in order to avoid +encumbering the use of your font in printable and viewable formats, +you may want to include this exception notice with it. + + To do so, attach the following notices to the font source file. It +is safest to attach them to the start of the source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + <one line to give the font's name and a brief idea of what it does.> + Copyright (C) yyyy <name of author> + + This program 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. + + This program 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 program; if not, see http://www.gnu.org/licenses/. + + Special permission is granted to distribute this font separately + under the terms of the Font General License Exceptions enclosed + with this program. + +Otherwise follow the instructions in the appendix of the GNU General Public +License. diff --git a/Master/texmf-dist/doc/generic/xypic/INSTALL b/Master/texmf-dist/doc/generic/xypic/INSTALL index f91c83dc335..43efe48d86d 100644 --- a/Master/texmf-dist/doc/generic/xypic/INSTALL +++ b/Master/texmf-dist/doc/generic/xypic/INSTALL @@ -1,4 +1,4 @@ --*-text-*- $Id: INSTALL,v 3.6 1998/03/06 01:28:05 krisrose Exp $ +-*-text-*- $Id: INSTALL,v 3.20 2010/06/10 18:50:56 krisrose Exp $ ================================================ @@ -6,27 +6,24 @@ ================================================ -This file explains how you install the files in the `run' distribution of -Xy-pic. See `README' for general information. +This file explains how you install the runtime files in the +distribution of Xy-pic. See `README' for general information. Contents: -1- Copyleft -2- Overview of files and where they should be installed --3- Information for specific systems --4- Updating from version 2.6 (and earlier) --5- Bugs & comments +-3- Bugs & comments & where to get help --------------------------------------------------------------------------- -1- COPYLEFT --------------------------------------------------------------------------- - Note that the entire Xy-pic package is distributed with copyleft: - Copyright (c) 1991-1998 Kristoffer H. Rose <krisrose@ens-lyon.fr> - Copyright (c) 1994-1998 Ross Moore <ross@mpce.mq.edu.au> + Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> + Copyright (c) 1994-2010 Ross Moore <ross.moore@mq.edu.au> 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 @@ -39,94 +36,39 @@ Note that the entire Xy-pic package is distributed with copyleft: 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. + along with this package; if not, see http://www.gnu.org/licenses/. What this means is that if you install Xy-pic then you should (1) make sure that the file `COPYING' is accessible to the users, and (2) be -prepared to provide Xy-pic (including sources) to any of your users -that request it (you may charge a fee for this if you are so -inclined). +prepared to provide Xy-pic (including sources including of your +modifications) to any of your users that request it (you may charge a +fee for this if you are so inclined). -Note: Some option files may be copyrighted by other people but the -conditions remain the same for any file distributed as part of Xy-pic. +Note: Some option files may be copyrighted by other people and use a +different (more relaxed) license but the conditions remain the same +for the entirety of Xy-pic. --------------------------------------------------------------------------- -2- OVERVIEW OF FILES AND WHERE THEY SHOULD BE INSTALLED --------------------------------------------------------------------------- - -In this section we explain in 11 steps where the different groups of +In this section we explain in 10 steps where the different groups of Xy-pic files in the `run' and `doc' distribution should be installed. For each file category we indicate the location recommended by TDS, the TeX Directory Standard (as formed by a TUG working group of that name). + IMPORTANT --------- -If you have users currently using version 2.6 then make sure you read -section 4! Please also check the next section for any system specific -considerations. - -SPACE REQUIREMENTS ------------------- -Installing the Xy-pic package requires almost 1MB with the macros -macros taking up most of the space. Installing everything, including -sources, documentation in both DVI, DVIPS, and PS, form, as well as -bitmap fonts for several printers and in PostScript Type1 form, -requires more than 12MB. - - -Step 1. Eliminating Obsolete Files ----------------------------------- -The new PostScript Type1 fonts contributed by Y&Y Inc. require that -you REMOVE ALL COPIES of the following files BEFORE installing: - -Old font map files should be removed: - - xy.map - xypic.map - -TDS directory: texmf/dvips/xypic - -Also be aware that some installations, for example the TeX Live 2 -CD-ROM, insert the contents of map files in `psfonts.map' (with TDS -directory texmf/dvips/base); then you must EDIT it to remove all lines -that start with `xy'. - -Remove old PostScript Type1 font files: - - xyatip10.pfa - xybsql10.pfa - xybtip10.pfa - xycirc10.pfa - xycmat10.pfa - xycmbt10.pfa - xydash10.pfa - xyeuat10.pfa - xyeubt10.pfa - - xyatip10.pfb - xybsql10.pfb - xybtip10.pfb - xycirc10.pfb - xycmat10.pfb - xycmbt10.pfb - xydash10.pfb - xyeuat10.pfb - xyeubt10.pfb - -TDS directory: texmf/fonts/type1/public/xypic - -Remove old `xy.sty' and `xypic.sty' files that you might have stored -earlier in the TDS directory `texmf/tex/latex/misc'. - - -[FILES IN xy*run.tar.gz:] +If you have an older system (more than 10 years) then these +instructions may not be suitable. Go to the source directory +http://xy-pic.cvs.sourceforge.net/viewvc/xy-pic/src/Historic/ +where we keep some older instructions, or ask on the mailing list. -Step 2. Availability & License +Step 1. Availability & License ------------------------------ These eight files contain general information and should be installed in a publicly readable place: @@ -138,22 +80,23 @@ in a publicly readable place: MANIFEST list of all files VERSIONS the RCS version ids of all source files COPYING GNU General Public License + FONTCOPYING Special license for fonts + Xy-pic.html HTML source of Xy-pic home page + Xy-logo.png Xy-pic logo (gotta have one of those) TDS directory: texmf/doc/generic/xypic -Step 3. Macros +Step 2. Macros -------------- Files `texinputs/*' are TeX and LaTeX macro files that must be installed in a place which TeX and LaTeX will search (e.g., with un*x TeX, a directory users include in the TEXINPUTS environment variable). -The files `texinputs/*.ini' - TDS directory: texmf/tex/generic/xypic -Step 4. TeX Font Metric +Step 3. TeX Font Metric ----------------------- Files `texfonts/*.tfm' should be installed in a directory that TeX will search for fonts (e.g., with un*x TeX, a directory users include @@ -162,7 +105,7 @@ in the TEXFONTS environment variable). TDS directory: texmf/fonts/tfm/public/xypic -Step 5. METAFONT Sources +Step 4. METAFONT Sources ------------------------ Files `mfinputs/*.mf' should be installed in some directory where the METAFONT program will search for them (e.g., with un*x TeX, a @@ -178,25 +121,7 @@ printer (provided evrything is correctly set up, of course). TDS directory: texmf/fonts/source/public/xypic -Step 6. Bitmap Fonts [Optional] -------------------------------- -Files matching the patterns `pkfonts/cx<N>/*.<N>pk' and -`pkfonts/ljfour<N>/*.<N>pk', where <N> is some number, contain bitmap -font files and should be installed where DVI previewers and printer -drivers will find them (e.g., with un*x, the `xdvi' program should see -them through the XDVIFONTS environment variable). (`cx' is a 300 dpi -(dots per inch) mode and `ljfour' a 600 dpi mode.) - -NOTE: This step is optional because the bitmaps are only needed (and -only recommended) for installations that can't use the METAFONT -sources directly but do have a 300 or 600 dpi laserprinter driver that -accepts PK bitmap font files. - -TDS directory: texmf/fonts/pk/cx/public/xypic/dpi<N> - and: texmf/fonts/pk/ljfour/public/xypic<N> - - -Step 7. PostScript Type1 Fonts +Step 5. PostScript Type1 Fonts ------------------------------ Files `type1/*.pfb' contain versions of the Xy-pic fonts in special PostScript form that may be useful on some installations. They should @@ -218,188 +143,85 @@ appear skewed or too thin. TDS directory: texmf/fonts/type1/public/xypic -Step 8. Adobe Font Metric Files -------------------------------- -Files `afm/*.afm' are special files for the Adobe Type Manager and -some other software. Install them if you need them. - -TDS directory (usually): texmf/fonts/afm/public/xypic - - -Step 9. PostScript Font Metric Files +Step 6. PostScript Font Metric Files ------------------------------------ -Files `pfm/*.pfm' are special files for the Windows version of the -Adobe Type Manager and some other software. Install them if you need -them. - -TDS directory (usually): texmf/fonts/pfm/public/xypic - - -Step 10. PostScript Header Files --------------------------------- -Files `ps/*' contain PostScript header files. If you plan to use the -PostScript extension option then you should copy these files to a -place where your PostScript DVI driver will find them. - -NOTE: For older versions of DVIPS (at least for 5.58f) you should -replace the occurrences of `<<' with `<' in `xypic.map'. - -TDS directory (usually): texmf/dvips/xypic - - -[FILES IN xy*doc.tar.gz:] +Files `pfm/*.pfm' are special files for some font handling software. +Install them if you need them. -Step 11. Manuals ----------------- -The typeset User's Guide is distributed as a DVI file which you should -be able to print (or preview) once you have installed the fonts (as -source or bitmaps as applicable for your system): +TDS directory (usually): texmf/fonts/type1/public/xypic - doc/xyguide.dvi User's Guide, typeset using the kernel Xy-pic fonts - doc/xyguide.dvips --- using DVIPS specific `specials' - doc/xyguide.ps --- in PostScript (with 600dpi bitmap fonts) -Similarly, the reference manual for the kernel and the distributed -options is included in the same format: - - doc/xyrefer.dvi Reference Manual, using Xy-pic fonts - doc/xyrefer.dvips --- using DVIPS specific `specials' - doc/xyrefer.ps --- in PostScript (with 600dpi bitmap fonts) - -Notice that only the .dvi documents are portable among all TeX -installations. - -TDS directory: texmf/doc/generic/xypic - - -That's all. If you want to install the Xy-pic sources (to experiment -with development, for example), you need to get the separate -distribution `xy*src.tar.gz'. - - ---------------------------------------------------------------------------- --3- INFORMATION FOR SPECIFIC SYSTEMS ---------------------------------------------------------------------------- - - -UN*X ----- -The above installation procedure (using the TDS recommended places) is -encoded in the script `support/install-tds': the command - - ./support/install-tds <texmf> - -where <texmf> is the full path name of the `texmf' directory (the root -of the TDS tree), will install all the Xy-pic runtime files (or more -precisely: it will perform steps 2-5 and 7-10 above). - -NOTE: You must MANUALLY remove obsolete files (do step 1 above)! - -If you get the source distribution as described in `TRAILER' and -change the configuration section of the provided `src/Makefile' to -reflect your local file system conventions as described in -`src/MAKE', then the command - - make TEXMF=<texmf> install - -will also do this (but with the generated files, of course). - - -VMS ---- -(Mon, 20 Mar 1995; thanks to Austin Benson <austin@shapel.ug.eds.com> -and Ralf Gaertner <gaertner@cthulhu.rhein-main.de>): +Step 7. Adobe Font Metric Files +------------------------------- +Files `afm/*.afm' are special files for the Adobe Type Manager. +Install them if you need them. -(1) VMS tfm and pk files are in a funny file format, which means they - EITHER should be generated from the mf source on a VMS machine, OR - be converted by a conversion program such as BILF (part of the - DECUS TeX distribution and the ZOO distribution although the - latter is reported to only work on VAXen). +TDS directory (usually): texmf/fonts/afm/public/xypic - FIX: Install .mf sources and pregenerate .tfm and .pk files - manually OR convert with BILF or a similar program. -(2) At least some (OLD) versions of TeX for VMS had a `buglet' to do - with searching for input files: if you go \input <filename> on VMS - then TeX prepends the filename with a chained logical - "tex_inputs:" - equivalent to a Unix path. Unfortunately \openin - does _not_ do this - although on Unix systems \openin will search - the TEXINPUTS path just as \input does. +Step 8. PostScript Header Files +------------------------------- +Files `ps/*' contain PostScript header files. If you plan to use +the PostScript extension option then you should copy these files to a +place where your PostScript DVI driver will find them. - FIX: Change the following line in xy.tex +TDS directory (usually): texmf/dvips/xypic -\xydef@\xyinputorelse@@#1#2{\openin\xyread@=#1 - TO +Step 9. PostScript Font Map Files +--------------------------------- +Files `map/*' contain PostScript and PDF font mappings that link each +font to the used encoding. -\xydef@\xyinputorelse@@#1#2{\openin\xyread@=tex_inputs:#1 +TDS directory (usually): texmf/map/dvips/xypic -PC WITH PCTEX -------------- -On PCTeX fonts should be stored in files `C:\PIXEL\DPI<dpi>\<font>.pk' -where <dpi> and <font> are replaced by appropriate values, e.g., `600' -and `xyatip' (thanks to Alain Amiouni <alain_amiouni@msn.com>). +Step 10. PDF Font Encoding Files +------------------------------- +Files `enc/*' contain PDF encoding files (that name each character in +the special Xy-pic fonts). If you plan to use the PDF backend then +you should copy these files to a place where PDFTeX will find them. +TDS directory: texmf/fonts/enc/xypic -MAC WITH Textures or OzTeX --------------------------- -See the special files `INSTALL.Textures' and `INSTALL.OzTeX'. +Step 11. Documentation +---------------------- +The documentation is provided in Adobe PDF files. ---------------------------------------------------------------------------- --4- UPDATING FROM VERSION 2.6 (AND EARLIER) ---------------------------------------------------------------------------- + doc/xyguide.pdf User's Guide for everyone. + doc/xyrefer.pdf Reference Manual for experienced users +The source code documentation is also included. -IMPORTANT: If you have installed release 3.* or 2.7-2.12 then you can -skip this section. If you have not, and use version 2.6, then READ IT! + doc/xysource.pdf TeXnical documentation for TeXsperts + doc/xypdf.pdf TeXnical details about PDF generation + doc/xy*src.tar.gz the actual source files -Xy-pic release 2.7 was almost a complete rewrite of Xy-pic; later -releases are updates to this version. If you are using version 2.6 (or -some earlier version) then note the following: - -* All the fonts have been redone AND renamed (except two that have not - changed). Thus installing version 3 will not break any DVI files - you already have that were typeset using the old fonts. - - NOTE: In fact the distribution still contains the old fonts but only - as METAFONT sources, TFM font metrics, and PK bitmaps. +TDS directory: texmf/doc/generic/xypic -* The distribution contains new versions of the files `xypic.tex' and - `xypic.sty' that load Xy-pic in a special compatibility mode. Thus - retypesetting your documents will create DVI files using the new - fonts. If you wish to keep the old `xypic.tex' and `xypic.sty' then - you should rename them before installation; we suggest naming them - `xypic-2.tex' and `xypic-2.sty' and REMEMBER to change the line - `\input xypic' in `xypic-2.sty' to `\input xypic-2' ! -* There are a few points where the backwards compatibility is not - perfect -- these are noted in the documentation. +That's all. --------------------------------------------------------------------------- --5- BUGS & COMMENTS +-3- BUGS & COMMENTS & WHERE TO GET HELP --------------------------------------------------------------------------- - We will appreciate reports on any problems you may encounter and opinions you have on how the usefulness of Xy-pic can be improved. Please report using either - Electronic mail (Internet): krisrose@ens-lyon.fr [preferred] + Electronic mail (Internet): xy-pic@tug.org [preferred] Paper mail: Kristoffer H. Rose - Laboratoire de l'Informatique du Parallélisme - Ecole Normale Supérieure de Lyon - 46, Allée d'Italie - F-69364 Lyon cedex 07 - FRANCE + IBM T.J.Watson Research Center + P.O.Box 704 + Yorktown Heights, NY 10598 + USA - Fax: +33 4 7272 8080 - - W3 <URL: http://www.ens-lyon.fr/~krisrose/Xy-pic.html> + W3 <URL: http://sourceforge.net/projects/xy-pic/> --------------------------------------------------------------------------- @@ -409,9 +231,3 @@ This is the end of INSTALL. We hope you'll enjoy Xy-pic! --------------------------------------------------------------------------- -Kristoffer Høgsbro Rose, Ph.D., prof.associé <Kristoffer.Rose@ENS-Lyon.FR> -Laboratoire de l'Informatique du Parallélisme équipe PLUME, bureau LR5-026 -Ecole Normale Supérieure de Lyon; 46, Allée d'Italie; F-69364 Lyon 07 cedex -phone: +33(0)4 7272 8642; fax:...8080 <http://www.ens-lyon.fr/~krisrose> - ---------------------------------------------------------------------------- diff --git a/Master/texmf-dist/doc/generic/xypic/INSTALL.OzTeX b/Master/texmf-dist/doc/generic/xypic/INSTALL.OzTeX deleted file mode 100644 index 23d838de562..00000000000 --- a/Master/texmf-dist/doc/generic/xypic/INSTALL.OzTeX +++ /dev/null @@ -1,600 +0,0 @@ --*-text-*- $Id: INSTALL.OzTeX,v 3.4 1997/05/18 01:13:24 ross Exp $ - - ================================================ - INSTALLING THE Xy-pic DIAGRAM TYPESETTING MACROS - ON OzTeX INSTALLATIONS - ================================================ - -This file explains step by step how to install Xy-pic for use with -OzTeX by Andrew Trevorrow. Please refer to the generic `INSTALL' file -for details on the individual files. - -Contents: - - -0- Comments regarding OzTeX versions - -1- Adding Xy-pic to the TeX search paths - -2- Memory requirements - -3- OzTeX and PostScript features - -4- Bugs & comments - -5- Config files - ----------------------------------------------------------------------- - -0- COMMENTS REGARDING OzTeX VERSIONS ----------------------------------------------------------------------- - -Xy-pic works fine with versions of OzTeX, from 1.7 to 2.0 and later. -With version 2.0+ of OzTeX, it is advisable to use the OzDVIPS driver. -Similarly with versions 1.8 and 1.9, it is possible to use the DVIPS -driver, implemented by Thomas Kiffe. These WILL handle all the effects -such as colour, rotated text, scaled text, patterns, fills and others, -however the OzTeX viewer cannot show these effects---you will need a -PostScript printer or previewer such as GhostScript -(e.g. `Mac GS Viewer', by Aladdin Enterprises). - -Thus to handle special effects with OzTeX 1.8+ your TeX source should -specify \xyoption{dvips} and the `Use DVIPS' menu option should be -selected for processing the dvi-file. - -The \xyoption{oztex} command should ONLY be used with OzTeX 1.8+ when -you do not wish to use DVIPS or OzDVIPS but still want the improved -performance of the PostScript backend (see note 3 below). -Similarly \xyoption{17oztex} is provided for use with version 1.7. - - ----------------------------------------------------------------------- - -1- ADDING Xy-pic TO THE TeX SEARCH PATHS ----------------------------------------------------------------------- - -Follow these steps to make Xy-pic `visible' to OzTeX: - -INSTALLING MACROS: - -1. Create a subfolder `:TeX-inputs:Xy-pic:'. - - This folder will contain the Xy-pic input files. It is NOT - sufficient to create an alias to an existing folder which already - contains these files. - -2. Append this directory name to the line - - TeX input folder(s) = .... - - in the `:Configs:Default' file. - -3. Within the folder `:Configs:' - - EITHER create the files - - :Configs:Default+Xypic - :Configs:Big TeX+Xypic - :Configs:Big Xy-TeX - - which are included below (in section -5-). - These are modifications of Config files from OzTeX version 1.8. - Adaptations for version 2.0+ will be made sometime soon. - OR - read the memory requirement notes below (in section -2-) - and reconfigure your own config files accordingly. - -4. Within the folder `:TeX-inputs:Xy-pic:' place copies of all of - the files from `texinputs'. - -INSTALLING FONTS: - -5. Create a subfolder `:TeX-fonts:Xy-pic:' - - This folder will contain the Xy-pic font metrics files. It is NOT - sufficient to create an alias to an existing folder which already - contains these files. - -6. Within the folder `:TeX-fonts:Xy-pic:' place copies of all of - the files from `texfonts'. - -7. For each of the subdirectories in `pkfonts': `cx300', `cx329', and - `cx360' copy all files to the corresponding folder - - :PK-files:300: - :PK-files:329: - :PK-files:360: - -INSTALLING THE PostScript BACKEND: - -8. Within the folder `:PS-files:' place a copy of the file - `ps/xy34dict.pro'. This is placed here for safe-keeping only. - -If you DO NOT use DVIPS then ... - -8A. Within each directory in which you work, you will need a copy - of this file, renamed to be called `global.ps'; - - ...but if you DO use DVIPS then it is sufficient to... - -8B. Place a copy of `ps/xy34dict.pro' into the subfolder - `:Dvips:ps' where it can be found by DVIPS. - - Read section -3- below, to understand what is required here. - ----------------------------------------------------------------------- - -2- MEMORY REQUIREMENTS ----------------------------------------------------------------------- - -Xy-pic is a big package, requiring quite a lot of memory if a large -number of diagrams, or a small number of large diagrams, are to be -typeset. - -Using the `Default' configuration and `Plain' format, then Xy-pic will -load, but expect trouble unless you need it only for small diagrams. -With `LaTeX' then Xy-pic will NOT EVEN LOAD all of its standard -options. - -Thus using `Big-TeX' should be regarded as ABSOLUTELY ESSENTIAL, to do -any serious typesetting --- though read the rest of this section -before doing this. Of course this will mean rebuilding the `Plain' -and `LaTeX' formats using `INITEX' and increasing the Finder -memory-partition from the OzTeX application's `Get Info' dialog box. - -Since `Big-TeX' inherits and overrides settings from `Default' it is -not necessary to make any alterations for Xy-pic --- at least not for -use with the `Plain' format. - -However even `Big-TeX' is too small, in some of its parameters, for -`LaTeX' and Xy-pic to coexist peacefully. If you try this then the -first type of memory to run out is the `pool size': - - ! TeX capacity exceeded, sorry [pool_size=60000]. - -To fix this requires increasing the "pool_size" parameter, to say -160,000. Existing format files for Plain and LaTeX, compiled under -Big-TeX with the smaller pool size WILL STILL WORK --- there is no -need to recompile to accommodate this change. - -The config file `:Configs:Big TeX+Xypic' has these values. - - -This should be sufficient unless the document contains large -diagrams or diagrams such that many curves appear on the same or -adjacent pages, and the Xy-pic PostScript back-end is NOT in use. -Expect to encounter... - - ! TeX capacity exceeded, sorry [mem_max=200000]. - -In order to typeset such documents other memory parameters may have to -be increased also, including "mem_top", "hash_size", "hash_prime" and -"hyph_size". These latter changes mean that the format files have to -be rebuilt. - -For example, in order to typeset the Xy-pic guide, reference manual, -and technical documentation (700+ pages), using the Xy-pic fonts, an -OzTeX with a finder memory partition of 8+ MBytes -- it has the -parameter `mem_max=600000' -- was used. - -Please experiment with the memory parameters until you find settings -comfortable for your requirements. The author would be happy to -include, with future releases of Xy-pic, a listing of typical settings -which users have found to meet their needs. - ----------------------------------------------------------------------- - -3- IMPORTANT: OzTeX AND PostScript FEATURES ----------------------------------------------------------------------- - -Xy-pic provides improved graphics capabilities using PostScript code -inserted into the .dvi-file using \special commands. Indeed if the -PostScript ``backend'' is loaded, then almost all parts of diagrams -constructed with Xy-pic can be rendered using PostScript. These extra -features become available to Xy-pic, when `options' are requested, -using e.g. \xyoption{ps} , \xyoption{color} , \xyoption{line} , ... -see the User Guide and Reference manual for details. - -HOWEVER, one MUST also specify ONE of the following commands: - - \xyoption{dvips} if ``Use DVIPS'' is checked - \xyoption{oztex} with versions 1.8+ of OzTeX - \xyoption{17oztex} with version 1.7 of OzTeX -(these latter two are for when DVIPS will NOT process the .dvi file.) - -AND, if not using LaTeX, specify \XyReloadDrivers after all other -Xy-pic options have been requested. - - - -IMPORTANT: (when OzDVIPS or DVIPS is NOT being used) -If Xy-pic PostScript features are to be used with OzTeX, -then two files are used frequently, namely `:PS-files:empty.ps' and -`global.ps'. The latter must be resident in the current folder. - -Make sure that `empty.ps' indeed has empty contents, for the Xy-pic -\specials depend upon this. Also, if global.ps has non-empty contents, -then take a copy for safe-keeping, for Xy-pic will need to overwrite -it at some point, as will now be explained. - -For the Xy-pic \specials to work correctly a dictionary of PostScript -definitions must be included with every document before printing. -These definitions are typically required on every page, so OzTeX's -`global.ps' mechanism is used to achieve this. - -NOTE: It is NOT sufficient to input this dictionary as if it were -a graphics file, residing in `:PS-files'. The `global.ps' mechanism -is the ONLY way provided by OzTeX for this to work. - -Indeed Xy-pic checks that this file is available. If it does not find it, -or finds that it is empty, then the required dictionary is written -afresh and named `global.ps', so that OzTeX will recognize its purpose. - -You can force a fresh copy of the dictionary by placing the command - \dumpPSdict{global.ps} in the preamble section of any document. -If your `global.ps' already has contents that you wish to continue to -use, then copy it to somewhere safe and append its contents to the file -created as above by Xy-pic. - -The dictionary is included in the package as `ps/xy34dict.pro'. - -LIMITATIONS: (when OzDVIPS or DVIPS is NOT being used) -Not all of the PostScript effects that can be requested from the `line', -`rotate' and `color' extension options are actually implementable by OzTeX. -The limitation is due to the way in which OzTeX handles the \special -commands, collecting them all at the beginning of the PostScript file that -it creates, followed by the rules and characters from fonts. - -This means that the \special to initiate a special effect is followed -soon after by the one necessary to revert to normal; this happens -before any font characters are typeset. Correct sequencing is -maintained so that diagrams constructed purely from Xy-pic objects -such as lines, circles, curves and arrow-tips can have expanded widths -and be coloured correctly. However rotations and scalings cannot work -for other technical reasons. Any font characters in the diagram will -not be expanded or coloured; this includes Xy-pic fonts. - -This situation is unfortunate, but nothing further can be done from -within Xy-pic. To enjoy this aspect of working with Xy-pic, update -to version 1.8 or later and use DVIPS or OzDVIPS. - ----------------------------------------------------------------------- - -4- BUGS & COMMENTS ----------------------------------------------------------------------- - -Bugs and questions concerning the OzTeX implementation of Xy-pic -should be directed to - - Electronic mail (Internet): ross@mpce.mq.edu.au - - Paper mail: Ross Moore - Mathematics Department - Macquarie University - North Ryde, Sydney - AUSTRALIA 2109 - - Fax: +61 2 9850 8114 - -Generic bugs should be reported to Kristoffer Rose as described in the -generic INSTALL file. - ----------------------------------------------------------------------- - -This is the end of the `INSTALL.OzTeX' description; below is a section -with the files discussed above. We hope you'll enjoy Xy-pic! - ----------------------------------------------------------------------- - -5- Config FILES. ----------------------------------------------------------------------- - -Below is the contents of each of the files discussed in point 3 of -section -1- above. Lines with only --s (dashes) are used to delimit -the files. - ----------------------------------------------------------------------- - :Configs:Default+Xypic ----------------------------------------------------------------------- -% This is the default configuration file read by OzTeX 1.8. -% Before making any changes, read the section on configuration files -% in the OzTeX User Guide. -% -config files = "Big TeX" "Big TeX+Xypic" "Big Xy-TeX" | - -- StyleWriter ImageWriter Linotronic -- | - "A5 Portrait" "A4 Landscape" "US Letter" -- | - "View at 144 dpi" "View CM using PS" -- | - "Add CM/PS Fonts" "Add Lucida Fonts" "Add MathTime Fonts" -format files = LaTeX Plain -help files = "Questions and Answers" "Handy Hints" Problems "TeX Users Group" | - "Related Software" -- "Changes to OzTeX 1.42" "Changes to OzTeX 1.5" | - "Changes to OzTeX 1.6" "Changes to OzTeX 1.7" -- "Shareware Fee" Thanks -printer res & mode = 300 laserwriter -viewing res & mode = 300 laserwriter -units = in (in/cm/mm/pc/pt/bp/px) -paper width = 210mm (A4 width; use 8.5in for US Letter) -paper height = 297mm (A4 height; use 11in for US Letter) -horizontal offset = 0mm (shift pages right if +ve, left if -ve) -vertical offset = 0mm (shift pages down if +ve, up if -ve) -show statistics = false -reverse page order = false (use true if pages are stacked face up) -conserve VM = false (only for PostScript printing) -manual feed = false (ditto) -reserved = ignored -% -% Important folders and files: -% -Help folder = :Help-files: -FMT folder = :TeX-formats: -TeX input folder(s) = :TeX-inputs:* -TFM folder(s) = :TeX-fonts:* -PK folder(s) = :PK-files: -PS folder(s) = :PS-files: :PS-files:Encodings: -Text-to-PS prolog = :PS-files:TEXTtoPS.pro -DVI-to-PS prolog = :PS-files:DVItoPS.pro -VF folder(s) = :VF-files: -global PS file = global.ps -"Save OzTeX" output = Oz.text -missing fonts file = :PK-files:missfont.log (for use by MakeTeXPK) -pool file = :TeX-formats:TeX.pool (only used by INITEX) -dummy TFM file = :TeX-fonts:CM:cmr10.tfm -dummy screen font = Geneva -% -% Previewing colours (use "white" to make something invisible): -% -paper edges = blue -\special markers = green -missing fonts = red -% -% TeX parameters (the values in brackets show the possible ranges): -% -mem_max = 60000 (mem_top..100000000) -font_max = 120 (1..256) -font_mem_size = 30000 (8..100000000) -max_strings = 5000 (1300..16382) -string_vacancies = 20000 (0..pool_size-23500) -pool_size = 60000 (string_vacancies+23500..100000000) -buf_size = 1000 (120..32760) -stack_size = 200 (1..1600) -max_in_open = 6 (1..20) -param_size = 60 (1..8190) -nest_size = 40 (1..1000) -save_size = 600 (1..4094) -trie_size = 8000 (1..32760) -trie_op_size = 500 (1..16382) -% -% If you change any of the next four parameters then you'll need -% to run INITEX and rebuild all your format files. -% Some people will probably want to increase the hash_size value, -% so here are some suitable hash_prime values: -% hash_size = 3000 4000 5000 6000 10000 20000 31000 -% hash_prime = 2551 3407 4253 5101 8501 16993 26347 -% -mem_top = 60000 (mem_min+1100..mem_max) -hash_size = 4000 (325..31000) -hash_prime = 3407 (prime about 85% of hash_size) -hyph_size = 307 (prime from 1..16382) -% -% Only change the next few parameters when carrying out TeX's TRIP test: -% -mem_min = 0 (0..mem_top-1100) -error_line = 72 (45..32760) -half_error_line = 42 (30..error_line-15) -max_print_line = 79 (60..32760) -% -% -% PostScript fonts (or more accurately, non-PK fonts): -% -== TFM Printer font Download Screen font Encoding Style -% -= ptmr0 Times-Roman Times Mac.enc -= ptmri0 Times-Italic Times Mac.enc i -= ptmb0 Times-Bold Times Mac.enc b -= ptmbi0 Times-BoldItalic Times Mac.enc bi -= ptmro0 Slanted-Times-Roman Times Mac.enc i -= ptmbo0 Slanted-Times-Bold Times Mac.enc bi -= pagk0 AvantGarde-Book "Avant Garde" Mac.enc -= pagko0 AvantGarde-BookOblique "Avant Garde" Mac.enc i -= pagd0 AvantGarde-Demi "Avant Garde" Mac.enc b -= pagdo0 AvantGarde-DemiOblique "Avant Garde" Mac.enc bi -= pbkl0 Bookman-Light Bookman Mac.enc -= pbkli0 Bookman-LightItalic Bookman Mac.enc i -= pbkd0 Bookman-Demi Bookman Mac.enc b -= pbkdi0 Bookman-DemiItalic Bookman Mac.enc bi -= pcrr0 Courier Courier Mac.enc -= pcrro0 Courier-Oblique Courier Mac.enc i -= pcrb0 Courier-Bold Courier Mac.enc b -= pcrbo0 Courier-BoldOblique Courier Mac.enc bi -= phvr0 Helvetica Helvetica Mac.enc -= phvro0 Helvetica-Oblique Helvetica Mac.enc i -= phvb0 Helvetica-Bold Helvetica Mac.enc b -= phvbo0 Helvetica-BoldOblique Helvetica Mac.enc bi -= pncr0 NewCenturySchlbk-Roman "New Century Schlbk" Mac.enc -= pncri0 NewCenturySchlbk-Italic "New Century Schlbk" Mac.enc i -= pncb0 NewCenturySchlbk-Bold "New Century Schlbk" Mac.enc b -= pncbi0 NewCenturySchlbk-BoldItalic "New Century Schlbk" Mac.enc bi -= pplr0 Palatino-Roman Palatino Mac.enc -= pplri0 Palatino-Italic Palatino Mac.enc i -= pplb0 Palatino-Bold Palatino Mac.enc b -= pplbi0 Palatino-BoldItalic Palatino Mac.enc bi -= pzcmi0 ZapfChancery-MediumItalic "Zapf Chancery" Mac.enc -% -% The next three TFMs do not require virtual fonts; note that their names -% do not end with a zero: -% -= pzdr ZapfDingbats "Zapf Dingbats" nil -= psyr Symbol Symbol nil -= psyro Slanted-Symbol Symbol nil i -% -% The following lines use "<file" to download non-resident fonts: -% -= putr0 Utopia-Regular <putr.pfa Utopia Mac.enc -= putri0 Utopia-Italic <putri.pfa Utopia Mac.enc i -= putb0 Utopia-Bold <putb.pfa Utopia Mac.enc b -= putbi0 Utopia-BoldItalic <putbi.pfa Utopia Mac.enc bi -== - -OzTeX doesn't bother reading any stuff after the final "==", so you can -put additional comments here without having to start each line with "%". - ----------------------------------------------------------------------- - :Configs:Big TeX+Xypic ----------------------------------------------------------------------- -% This config file sets most TeX parameters to very large values. -% OzTeX's preferred memory size will need to be at least 3100K. -% If you don't have enough memory then reduce the values of mem_max -% and mem_top. Each unit reduction saves 8 bytes, so if mem_max and -% mem_top are reduced by 100,000 then the required memory size drops -% to about 2300K. -% -% If you decide to change other parameters then you'll need to adjust -% OzTeX's memory size according to the total number of bytes saved or -% added. To determine this number: -% - Use "Get Info" in the Finder's File menu to see OzTeX's current -% memory size (probably 1400K unless you changed it). -% - Start OzTeX, run INITEX and hit Cmd-Dot when you get the "**" prompt. -% OzTeX shows the amount of memory allocated, so note down the number. -% - Quit OzTeX and use "Get Info" to set OzTeX's memory size as high as -% you can. -% - Start OzTeX again and select "Big TeX" (containing your changes) -% from the Config menu. -% - Run INITEX and hit Cmd-Dot. The amount of memory allocated -% should have changed; the difference should be rounded up to the -% nearest multiple of 10K or more (depending on how paranoid you are) -% and used to adjust OzTeX's ORIGINAL memory size. -% -% You'll need to run INITEX and build the big formats listed below -% before you can use TeX with this configuration file. -% The OzTeX User Guide describes how to build such format files. -% If you want to change the given list of format files, make sure -% the new names do not contain any spaces. -% -config files = ignored -format files = Big-LaTeX Big-Plain -help files = ? -printer resolution = ? -viewing resolution = ? -units = ? -paper width = ? -paper height = ? -horizontal offset = ? -vertical offset = ? -show statistics = ? -reverse page order = ? -conserve VM = ? -manual feed = ? -reserved = ? -Help folder = ? -FMT folder = ? -TeX input folder(s) = ? -TFM folder(s) = ? -PK folder(s) = ? -PS folder(s) = ? -Text-to-PS prologue = ? -DVI-to-PS prologue = ? -VF folder(s) = ? -global PS file = ? -Save OzTeX output = ? -reserved = ? -pool file = ? -dummy TFM file = ? -dummy screen font = ? -paper edges = ? -\special markers = ? -missing fonts = ? -% -% TeX parameters: -% -mem_max = 200000 (mem_top..100000000) -font_max = 256 (1..256) -font_mem_size = 60000 (8..100000000) -max_strings = 10000 (1300..16382) -string_vacancies = 30000 (0..pool_size-23500) -pool_size = 160000 (string_vacancies+23500..100000000) -buf_size = 3000 (120..32760) -stack_size = 600 (1..1600) -max_in_open = 20 (1..20) -param_size = 200 (1..8190) -nest_size = 150 (1..1000) -save_size = 2000 (1..4094) -trie_size = 16000 (1..32760) -trie_op_size = 1000 (1..16382) -mem_top = 200000 (mem_min+1100..mem_max) -hash_size = 10000 (325..31000) -hash_prime = 8501 (prime about 85% of hash_size) -hyph_size = 2551 (prime from 1..16382) -mem_min = 0 (0..mem_top-1100) -error_line = 72 (45..32760) -half_error_line = 42 (30..error_line-15) -max_print_line = 79 (60..32760) -% -% Keep the current set of PostScript fonts: -% -=! - ----------------------------------------------------------------------- - :Configs:Big Xy-TeX ----------------------------------------------------------------------- -% Sets most TeX parameters to very large values. -% The OzTeX application memory size will need to be about 5500K. -% (If you don't have enough memory then reduce the values of mem_max -% and mem_top. Each unit reduction saves 8 bytes, so if mem_max and -% mem_top are reduced by 100000 then the application memory required -% drops to about 2300K.) -% -% You'll need to run INITEX and build the format files listed below -% (with ".fmt" appended) before using TeX with this configuration file. -% Note that format file names must not contain any spaces. -% -config files = ignored -format files = Big-Xy-Plain Bigger-LaTeX Big-Xy-LaTeX -help files = ? -printer resolution = ? -viewing resolution = ? -units = ? -paper width = ? -paper height = ? -horizontal offset = ? -vertical offset = ? -show statistics = ? -reverse page order = ? -conserve VM = ? -manual feed = ? -reserved = ? -Help folder = ? -FMT folder = ? -TeX input folder(s) = ? -TFM folder(s) = ? -PK folder(s) = ? -PS folder(s) = ? -Text-to-PS prologue = ? -DVI-to-PS prologue = ? -VF folder(s) = ? -global PS file = ? -Save OzTeX output = ? -reserved = ? -pool file = ? -dummy TFM file = ? -dummy screen font = ? -paper edges = ? -\special markers = ? -missing fonts = ? -% -% TeX parameters: -% -mem_max = 600000 (mem_top..100000000) -font_max = 255 (1..255) -font_mem_size = 60000 (8..100000000) -max_strings = 10000 (1300..16382) -string_vacancies = 30000 (0..pool_size-23500) -pool_size = 160000 (string_vacancies+23500..100000000) -buf_size = 3000 (120..32760) -stack_size = 1600 (1..1600) -max_in_open = 20 (1..20) -param_size = 200 (1..8190) -nest_size = 150 (1..1000) -save_size = 2000 (1..4094) -trie_size = 16000 (1..32760) -trie_op_size = 1000 (1..16382) -mem_top = 600000 (mem_min+1100..mem_max) -hash_size = 10000 (325..31000) -hash_prime = 8501 (prime about 85% of hash_size) -hyph_size = 2551 (prime from 1..16382) -mem_min = 0 (0..mem_top-1100) -error_line = 72 (45..32760) -half_error_line = 42 (30..error_line-15) -max_print_line = 79 (60..32760) -% -% Keep current PostScript fonts: -% -=! - ----------------------------------------------------------------------- diff --git a/Master/texmf-dist/doc/generic/xypic/INSTALL.Textures b/Master/texmf-dist/doc/generic/xypic/INSTALL.Textures deleted file mode 100644 index 132fad86189..00000000000 --- a/Master/texmf-dist/doc/generic/xypic/INSTALL.Textures +++ /dev/null @@ -1,393 +0,0 @@ --*-text-*- $Id: INSTALL.Textures,v 3.4 1997/05/18 01:13:24 ross Exp $ - - =============================================================== - INSTALLING THE Xy-pic DIAGRAM TYPESETTING MACROS ON A MACINTOSH - =============================================================== - -This file assumes that you have downloaded the `xy34mac.sea.hqx' -file and have decoded this and have expanded and extracted all files -and folders from the resulting compressed archive. - -It also assumes that you have the TeX application called Textures(tm), -from Blue Sky Research, Portland, Oregon (version 1.6 or later). - -Finally it assumes that you have read the file INSTALL. - - -The main difference between Textures(tm) and other TeX implementations -is the way in which fonts are handled. Here we deal with Macintosh -font suitcases containing bitmap versions of the special fonts that -Xy-pic uses, as well as a suitcase containing the font metrics. - -For users of OzTeX a folder called `for OzTeX only' contains .pk fonts, -.tfm files and some configuration files. The file `INSTALL.OzTeX' -explains how to install these. - -For any other implementations of TeX on the Macintosh, there may be -sufficient files here to install Xy-pic. If not then obtain the full -Xy-pic distribution from one of the usual ftp sites: - ftp.mpce.mq.edu.au in the /pub/maths/TeX directory; - ftp.brics.dk in the /Staff/krisrose/TeX directory; - CTAN in the tex-archive/macros/generic/diagrams/xypic directory; - e.g. at ftp.shsu.edu, ftp.tex.ac.uk and ftp.dante.de. - -(If this is still insufficient, then the author would like to know -what other resources are required and why. -Contact him by email at the address given below.) - - -From version 2.10, the source files are NOT included with the -Macintosh Distribution, as doing this would add almost 1 MByte -to its overall size. Obtain them from the sites listed above. - - -I'll also assume that you use a 300 dots per inch laser printer -(like the Apple laserwriter or HP laserjet). - -Contents: - - -0- Simple Installation, for experienced users - -1- Copyleft - -2- Updating from version 2.6 (and earlier) or 2.7--2.12, 3.0--3.2 - -3- Overview of files and where they should be installed - -4- Manuals and Sources - -5- Memory Requirements - -6- Bugs & comments - ----------------------------------------------------------------------- - -0- SIMPLE INSTALLATION, for EXPERIENCED USERS ----------------------------------------------------------------------- - -If you have never used Xy-pic before and are experienced as a user -of Textures(tm), then the following instructions should be sufficient -to get Xy-pic installed. - -You should have extracted two folders called `for TeX inputs folder' -and `for TeX fonts folder' from the Stuffit archive. - -Simply copy the contents of these folders to the places indicated by -their names; namely the font suitcases go into the `TeX Fonts` folder, -while the `xy*.tex` source code files go into the `TeX inputs` folder. - - -If these instructions do not make sense to you, or you get any warning -messages when you try to carry out these steps, then... - - STOP immediately! - -... read the rest of this file, to learn more about Xy-pic, what all -the files contain and how they should be installed on your Macintosh. - -If you had no trouble with this installation, then... enjoy Xy-pic! -Please do us the courtesy of reading the rest of this file anyway. -In particular please respect the following Copyright message, making -sure that any copies that you may distribute are complete, so that -others can equally enjoy Xy-pic (... and so that we do not get irate -messages about missing features). - ----------------------------------------------------------------------- - -1- COPYLEFT ----------------------------------------------------------------------- - -This distribution of the Xy-pic package is distributed with copyleft: - - Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> - Copyright (c) 1994-1997 Ross Moore <ross@mpce.mq.edu.au> - - 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. - -What this means is that if you install Xy-pic then you should (1) make -sure that the file COPYING is accessible to the users, and (2) be -prepared to provide Xy-pic (including sources) to any of your users -that request it (you may charge a fee for this if you are so inclined). - ----------------------------------------------------------------------- - -2- UPDATING FROM VERSION 2.6 (AND EARLIER) OR 2.7--2.12, 3.0--3.2 ----------------------------------------------------------------------- - -Xy-pic version 2.7 was almost a complete rewrite of Xy-pic. The update -to version 2.8 fixed numerous small bugs and added PostScript \special -commands that could be used instead of the Xy-pic fonts. -In version 2.9 the PostScript functionality was extended to include -effects such as rotation and scaling of diagrams and text, variable -line thickness and colour support. There were also improvements in many -other aspects of the way Xy-pic works. - -A Macintosh version of 2.9 was never released, as some of the claimed -effects did not actually work. These bugs were fixed for version 2.10. - -Version 2.11 included the `Graph Combinator' feature which provides -a simplified interface for many common classes of diagrams. -Also some minor bugs were fixed, both in code and documentation. - -Version 2.12 is necessary to accommodate a change to AMS-LaTeX which -otherwise seriously conflicts with internal structure of Xy-pic. -A new `Polygon' feature has been added and many subtle bugs fixed. -Also much of the `curve' code has been improved, especially for -`curved arrows'. - -Also, versions 2.12+ provide for a new font for arrow-tips, in the style -of those arrowheads that appear in the Computer Modern fonts. -Fonts xycmat10 and xycmbt10 have always been included in the font -suitcases (since version 2.6) but not used due to errors in the metrics. -This has now been rectified --- this means that the font metric file -`Xy-pic metrics' MUST BE REPLACED with the latest version --- having -modification date: 20 August 1994 --- but the fonts are unchanged. - -Xy-pic version 3.0 was released in July 1995. New features included -one for typesetting `crossing strings', in particular elegant -representations of `knots', and one for `webs' or `lattices' of objects -regularly spaced. There was no separate Macintosh distribution, but the -macros would work with the earlier versions. -With version 3.0 an improved option-loading mechanism was established -for alternate dvi-drivers allowing extra effects using \special commands. - -To use such features place one of the following declarations in the -document preamble: - - \xyoption{textures} % with version 1.7 or later - \xyoption{16textures} % with version 1.6 of Textures - -If LaTeX is NOT being used then it is also necessary to specify - - \xyReloadDrivers - -after all Xy-pic options have been specified. -With LaTeX, this command occurs automatically at the \begin{document}. - -This version 3.4 contains just a few fixes found to necessary after -the extensive changes of the 3.3 release. Some PostScript effects -were broken, but now patterned tilings work again and frames are -better than ever, even for non-PostScript effects. The old v2 macros -which stopped working are now properly enabled. - -The version 3.3 was very stable for most purposes. A few bugs from -previous versions were fixed and some new features were -added. In particular `breaks' in connections, whether straight or -curved, now work correctly. There is a greater variety of arrow-tips. -Intersections between a curved connection and a straight one can -now be located, or the point of closest approach can be located. - -The previous Version 3.2, followed closely after Version 3.1, fixing -several bugs found there. Some diagrams in the documentation were -found to not print correctly on some PostScript printers due to -internal errors in the PostScript interpreter; these diagrams have -been altered slightly to avoid that problem. (A future release of -Xy-pic will attempt to sidestep such problems completely.) - -Indeed the Version 3.1 release fixes bugs in earlier releases, -improves the range of available `frames' and offers a wider range -of curved objects. -The number of different dvi-drivers has been extended, though this -has little bearing for Macintosh-users. - - - -If you already have version 2.7 (or later) installed then: - -* Copy the file: `Xy-pic metrics' , to be found in the folder called - `for TeX fonts folder', into your `TeX Fonts' folder. - -+ The file `Xy-pic fonts' contains no new fonts, so need not be updated. - -+ With version 7.1+ of the Macintosh operating system, you can place - font suitcases in the Fonts subfolder of the system folder. - However the `Xy-pic metrics' suitcase MUST be in the `TeX Fonts' folder. - -+ Extra font sizes are available in a separate archive called `xymacxf.sit', - see below for more details. These can be installed locally, if desired. - Alternatively the extra sizes may be installed on a file-server; - then place an `alias' (requires system 7.0+) to them within the `TeX Fonts' - folder --- the server will mount when Textures is launched. - - -* Copy the contents of the `for TeX inputs folder' into the - obvious place, i.e. the `TeX Inputs' folder, allowing these files to - replace the existing ones of the same name. - -+ With the system-7 operating system, you can place the files/folders - elsewhere, and place aliases to them within the `TeX Inputs' folder. - - - -If you already have version 2.6 (or some earlier version) installed then -note the following: - -* All the fonts have been redone AND renamed. Thus installing the new - version will not break any typeset files you already have that use - the old fonts. However if you intend to keep the old version on your - system then you should rename the font and metrics suitcases to - `Xy-pic fonts.old' and `Xy-pic metrics.old'. - -* The distribution contains new versions of the files `xypic.tex' and - `xypic.sty' that load Xy-pic 2.12 in a special compatibility mode. - Thus re-TeX'ing your source documents will create typeset versions - using the new fonts. If you wish to keep the old `xypic.tex' and - `xypic.sty' then you should rename them before installation. - -* There are a few points where the backwards compatibility is not - perfect -- these are noted in the documentation. - - ----------------------------------------------------------------------- - -3- OVERVIEW OF FILES AND WHERE THEY SHOULD BE INSTALLED ----------------------------------------------------------------------- - -The installation instructions of INSTALL apply except that - -MACRO FILES: are placed in the `for TeX inputs folder' and should -normally be duplicated to the `TeX Inputs' folder (after having -appropriately dealt with any previous version, as described above). - -PostScript HEADER FILES: It is not necessary to use this header file; -furthermore the reference manual describes how it can be generated if -needed from `xyps.tex'. - -Xy-pic FONTs and METRICs: the two font suitcase files, called `Xy-pic -fonts' and `Xy-pic metrics', are found in the folder called `for TeX -fonts folder'. Simply move these into the Textures(tm) `TeX Fonts' -folder (after having appropriately dealt with any previous version, as -described above). - -When you next launch the Textures(tm) application the following fonts will -then be available for use in typesetting with the Xy-pic macros. - - xydash10 straight line segments at 128 different angles - xyatip10 top half of an arrow head at 128 different angles - xybtip10 bottom half of arrow head at 128 different angles - xybsql10 small quarter turns, for hooks, turns and wavy lines - xycirc10 eighth-turns at 16 different radii, 8 per radius - - xycmat10 Computer Modern Tips --- upper barbs - xycmbt10 Computer Modern Tips --- lower barbs - xyeuat10 Euler Tips --- upper barbs - xyeubt10 Euler Tips --- lower barbs - -These fonts are each provided in four screen sizes: 100% 120% 200% 240% -and in one size for laser-printing at 300dpi: 417%. - -If more sizes are required then either: - - a) get the file `xymacxf.sit.hqx' from ftp.mpce.mq.edu.au. - These expand to give suitcases containing the above sizes plus extra - laserwriter sizes, corresponding to magsteps 0.5, 1, 2, 3, 4, 5. - (The xycirc10 is separate since these fonts occupy more space than - any of the others --- 2.2 MByte!! ) - -or... - - b) generate extra sizes using Metafont. - The appropriate xy*.mf source files are included in the sub-directory - `mfinputs'. This can be obtained from the ftp sites listed above. - - xydash10.mf kernel font sources - xyatip10.mf - xybsql10.mf - xybtip10.mf - xycirc10.mf - -With the xy*.tex and xy*.sty input files installed in the `TeX Inputs' -folder, and the font suitcases installed in the `TeX Fonts' folder, -you should be ready to use Xy-pic to typeset some diagrams. - -DOCUMENTATION: The dvi-files are provided primarily for non-Textures -users. Using the `DVI-Tool' application, they can be converted into -the usual form for documents typeset using Textures(tm). However this is -not necessary as it has been done already: the `Xy-pic User's Guide' -and `Xy-pic Reference Manual' described below. - - ----------------------------------------------------------------------- - -4- MANUALS and SOURCES ----------------------------------------------------------------------- - -The `Xy-pic User's Guide' and `Xy-pic Reference Manual' are provided -with this distribution. They are in the form of pre-typeset Textures(tm) -documents. These files are Finder-locked and should NOT be re-typeset. -(Indeed it should not be possible to typeset this file without first -removing the safe-guards which have been put in place.) - -It is a good idea to test your installation of Xy-pic by typesetting -portions from the manuals. Of course you will first have to obtain -these sources from one of the ftp sites listed above, or elsewhere. - -Alternatively you can try to typeset the complete manuals, using LaTeX, -from the documents `xyguide.man' and `xyrefer.man' in the directory `src` -where they are located along with all the input and non-standard style -files that they need. -You will need to obtain ALL the files in this directory. -(There is a file named `xy*.doc' for each macro file `xy*.tex' -placed in the `TeX Inputs' folder.) -For this to be successful your Textures application will need a -memory partition of at least 4.5 MBytes. - -The normal sequence should be followed: LaTeX, BibTeX, LaTeX, LaTeX -to get all the references and the bibliography typesetting correctly. -These manuals have been checked to work correctly with LaTeX 2.09 and -LaTeX2e. - -An alternative way to get the manuals is to download the files called -`xyguide.ps.Z' and `xyrefer.ps.Z' from one of the ftp-sites. -These files were created using the `xyps' PostScript option, so should -produce a higher quality printed output on a PostScript printer of -resolution 300dpi (due to use of bitmapped Computer Modern fonts). - - ----------------------------------------------------------------------- - -5- MEMORY REQUIREMENTS ----------------------------------------------------------------------- - -Although many efforts have been made to make Xy-pic work quickly and -efficiently, the nature of the diagrams for which it is designed are -sometimes necessarily quite large and consume a significant amount of -TeX's available memory. Do not be surprised if it takes a long time -to typeset a diagram having several rows and columns of entries. - -Usually I work with a memory partition set at 4 MBytes, on a Mac IIci -or Macintosh PowerBook. For instance, when typesetting the User's Guide, -using LaTeX-2e and Xy-pic, nearly all of this 4 MBytes is required. -The Reference Guide requires even more than this: allowing 8 MByte was -a luxury that I could afford, but I suspect that 4.5 MByte would have -been sufficient. Mind you, although shorter the Users' Guide actually -takes significantly longer to typeset than does the Reference Manual. - - ----------------------------------------------------------------------- - -6- BUGS & COMMENTS ----------------------------------------------------------------------- - -Comments or reports related to the Macintosh distribution should be -sent to Ross Moore at - - Electronic mail (Internet): ross@mpce.mq.edu.au [preferred] - - Paper mail: Ross Moore - Mathematics Department, - Macquarie University - North Ryde, NSW 2109 - AUSTRALIA - - Fax +61 2 9850 8114 attn: R.Moore - ----------------------------------------------------------------------- - -This is the end of `INSTALL.Textures'. We hope you'll enjoy Xy-pic ! - --- -Ross MOORE Internet: ross@mpce.mq.edu.au -Mathematics Dept, Macquarie University, Nth Ryde, NSW 2109, AUSTRALIA -phone: +61 2 9850 8955 fax: +61 2 9850 8114 -WWW: http://www-math.mpce.mq.edu.au/~ross/ --- diff --git a/Master/texmf-dist/doc/generic/xypic/MANIFEST b/Master/texmf-dist/doc/generic/xypic/MANIFEST index e7bdeeb2c61..5812c2d7ba3 100644 --- a/Master/texmf-dist/doc/generic/xypic/MANIFEST +++ b/Master/texmf-dist/doc/generic/xypic/MANIFEST @@ -1,410 +1,230 @@ -CATALOG -COPYING -INSTALL -INSTALL.OzTeX -INSTALL.Textures -README -TRAILER -VERSIONS -afm/xyatip10.afm -afm/xybsql10.afm -afm/xybtip10.afm -afm/xycirc10.afm -afm/xycmat10.afm -afm/xycmbt10.afm -afm/xydash10.afm -afm/xyeuat10.afm -afm/xyeubt10.afm -doc/import1.eps -doc/kris.eps -doc/ross.eps -doc/xyguide.dvi -doc/xyguide.dvips -doc/xyguide.pdf -doc/xyguide.ps -doc/xyrefer.dvi -doc/xyrefer.dvips -doc/xyrefer.pdf -doc/xyrefer.ps -doc/xysource.dvi -doc/xysource.dvips -doc/xysource.ps -mfinputs/xyatip.mf -mfinputs/xyatip10.mf -mfinputs/xybsql10.mf -mfinputs/xybtip.mf -mfinputs/xybtip10.mf -mfinputs/xycirc10.mf -mfinputs/xycm.mf -mfinputs/xycmat10.mf -mfinputs/xycmat11.mf -mfinputs/xycmat12.mf -mfinputs/xycmbt10.mf -mfinputs/xycmbt11.mf -mfinputs/xycmbt12.mf -mfinputs/xyd.mf -mfinputs/xyd2.mf -mfinputs/xydash10.mf -mfinputs/xyeuat10.mf -mfinputs/xyeuat11.mf -mfinputs/xyeuat12.mf -mfinputs/xyeubt10.mf -mfinputs/xyeubt11.mf -mfinputs/xyeubt12.mf -mfinputs/xyeuler.mf -mfinputs/xyline10.mf -mfinputs/xymisc10.mf -mfinputs/xyqc10.mf -mfinputs/xytech.mf -pfm/xyatip10.pfm -pfm/xybsql10.pfm -pfm/xybtip10.pfm -pfm/xycirc10.pfm -pfm/xycmat10.pfm -pfm/xycmbt10.pfm -pfm/xydash10.pfm -pfm/xyeuat10.pfm -pfm/xyeubt10.pfm -pkfonts/cx300/xyatip10.300pk -pkfonts/cx300/xybsql10.300pk -pkfonts/cx300/xybtip10.300pk -pkfonts/cx300/xycirc10.300pk -pkfonts/cx300/xycmat10.300pk -pkfonts/cx300/xycmat11.300pk -pkfonts/cx300/xycmat12.300pk -pkfonts/cx300/xycmbt10.300pk -pkfonts/cx300/xycmbt11.300pk -pkfonts/cx300/xycmbt12.300pk -pkfonts/cx300/xydash10.300pk -pkfonts/cx300/xyeuat10.300pk -pkfonts/cx300/xyeuat11.300pk -pkfonts/cx300/xyeuat12.300pk -pkfonts/cx300/xyeubt10.300pk -pkfonts/cx300/xyeubt11.300pk -pkfonts/cx300/xyeubt12.300pk -pkfonts/cx329/xyatip10.329pk -pkfonts/cx329/xybsql10.329pk -pkfonts/cx329/xybtip10.329pk -pkfonts/cx329/xycirc10.329pk -pkfonts/cx329/xycmat10.329pk -pkfonts/cx329/xycmat11.329pk -pkfonts/cx329/xycmat12.329pk -pkfonts/cx329/xycmbt10.329pk -pkfonts/cx329/xycmbt11.329pk -pkfonts/cx329/xycmbt12.329pk -pkfonts/cx329/xydash10.329pk -pkfonts/cx329/xyeuat10.329pk -pkfonts/cx329/xyeuat11.329pk -pkfonts/cx329/xyeuat12.329pk -pkfonts/cx329/xyeubt10.329pk -pkfonts/cx329/xyeubt11.329pk -pkfonts/cx329/xyeubt12.329pk -pkfonts/cx360/xyatip10.360pk -pkfonts/cx360/xybsql10.360pk -pkfonts/cx360/xybtip10.360pk -pkfonts/cx360/xycirc10.360pk -pkfonts/cx360/xycmat10.360pk -pkfonts/cx360/xycmat11.360pk -pkfonts/cx360/xycmat12.360pk -pkfonts/cx360/xycmbt10.360pk -pkfonts/cx360/xycmbt11.360pk -pkfonts/cx360/xycmbt12.360pk -pkfonts/cx360/xydash10.360pk -pkfonts/cx360/xyeuat10.360pk -pkfonts/cx360/xyeuat11.360pk -pkfonts/cx360/xyeuat12.360pk -pkfonts/cx360/xyeubt10.360pk -pkfonts/cx360/xyeubt11.360pk -pkfonts/cx360/xyeubt12.360pk -pkfonts/cx432/xyatip10.432pk -pkfonts/cx432/xybsql10.432pk -pkfonts/cx432/xybtip10.432pk -pkfonts/cx432/xycirc10.432pk -pkfonts/cx432/xycmat10.432pk -pkfonts/cx432/xycmat11.432pk -pkfonts/cx432/xycmat12.432pk -pkfonts/cx432/xycmbt10.432pk -pkfonts/cx432/xycmbt11.432pk -pkfonts/cx432/xycmbt12.432pk -pkfonts/cx432/xydash10.432pk -pkfonts/cx432/xyeuat10.432pk -pkfonts/cx432/xyeuat11.432pk -pkfonts/cx432/xyeuat12.432pk -pkfonts/cx432/xyeubt10.432pk -pkfonts/cx432/xyeubt11.432pk -pkfonts/cx432/xyeubt12.432pk -pkfonts/ljfour600/xyatip10.600pk -pkfonts/ljfour600/xybsql10.600pk -pkfonts/ljfour600/xybtip10.600pk -pkfonts/ljfour600/xycirc10.600pk -pkfonts/ljfour600/xycmat10.600pk -pkfonts/ljfour600/xycmat11.600pk -pkfonts/ljfour600/xycmat12.600pk -pkfonts/ljfour600/xycmbt10.600pk -pkfonts/ljfour600/xycmbt11.600pk -pkfonts/ljfour600/xycmbt12.600pk -pkfonts/ljfour600/xydash10.600pk -pkfonts/ljfour600/xyeuat10.600pk -pkfonts/ljfour600/xyeuat11.600pk -pkfonts/ljfour600/xyeuat12.600pk -pkfonts/ljfour600/xyeubt10.600pk -pkfonts/ljfour600/xyeubt11.600pk -pkfonts/ljfour600/xyeubt12.600pk -pkfonts/ljfour657/xyatip10.657pk -pkfonts/ljfour657/xybsql10.657pk -pkfonts/ljfour657/xybtip10.657pk -pkfonts/ljfour657/xycirc10.657pk -pkfonts/ljfour657/xycmat10.657pk -pkfonts/ljfour657/xycmat11.657pk -pkfonts/ljfour657/xycmat12.657pk -pkfonts/ljfour657/xycmbt10.657pk -pkfonts/ljfour657/xycmbt11.657pk -pkfonts/ljfour657/xycmbt12.657pk -pkfonts/ljfour657/xydash10.657pk -pkfonts/ljfour657/xyeuat10.657pk -pkfonts/ljfour657/xyeuat11.657pk -pkfonts/ljfour657/xyeuat12.657pk -pkfonts/ljfour657/xyeubt10.657pk -pkfonts/ljfour657/xyeubt11.657pk -pkfonts/ljfour657/xyeubt12.657pk -pkfonts/ljfour720/xyatip10.720pk -pkfonts/ljfour720/xybsql10.720pk -pkfonts/ljfour720/xybtip10.720pk -pkfonts/ljfour720/xycirc10.720pk -pkfonts/ljfour720/xycmat10.720pk -pkfonts/ljfour720/xycmat11.720pk -pkfonts/ljfour720/xycmat12.720pk -pkfonts/ljfour720/xycmbt10.720pk -pkfonts/ljfour720/xycmbt11.720pk -pkfonts/ljfour720/xycmbt12.720pk -pkfonts/ljfour720/xydash10.720pk -pkfonts/ljfour720/xyeuat10.720pk -pkfonts/ljfour720/xyeuat11.720pk -pkfonts/ljfour720/xyeuat12.720pk -pkfonts/ljfour720/xyeubt10.720pk -pkfonts/ljfour720/xyeubt11.720pk -pkfonts/ljfour720/xyeubt12.720pk -pkfonts/ljfour864/xyatip10.864pk -pkfonts/ljfour864/xybsql10.864pk -pkfonts/ljfour864/xybtip10.864pk -pkfonts/ljfour864/xycirc10.864pk -pkfonts/ljfour864/xycmat10.864pk -pkfonts/ljfour864/xycmat11.864pk -pkfonts/ljfour864/xycmat12.864pk -pkfonts/ljfour864/xycmbt10.864pk -pkfonts/ljfour864/xycmbt11.864pk -pkfonts/ljfour864/xycmbt12.864pk -pkfonts/ljfour864/xydash10.864pk -pkfonts/ljfour864/xyeuat10.864pk -pkfonts/ljfour864/xyeuat11.864pk -pkfonts/ljfour864/xyeuat12.864pk -pkfonts/ljfour864/xyeubt10.864pk -pkfonts/ljfour864/xyeubt11.864pk -pkfonts/ljfour864/xyeubt12.864pk -ps/xy37dict.pro -ps/xypic.map -src/CATALOG.doc -src/COPYING -src/ChangeLog -src/INSTALL -src/INSTALL.OzTeX -src/INSTALL.Textures -src/MAKE -src/MANIFEST -src/Makefile -src/README -src/TRAILER -src/VERSIONS -src/YandY_xy_fonts.zip -src/doc2tex.com -src/dvitogif89a -src/import1.eps -src/install-tds -src/kris.eps -src/latin1.sty -src/movie.cls -src/pnmrawtopcropwhite.c -src/ross.eps -src/xy.doc -src/xy.sty -src/xy16textures.doc -src/xy17oztex.doc -src/xy2cell.doc -src/xyall.doc -src/xyarc.doc -src/xyarrow.doc -src/xyatip.mf -src/xyatip10.mf -src/xybsql10.mf -src/xybtip.mf -src/xybtip10.mf -src/xycirc10.mf -src/xycm.mf -src/xycmactex.doc -src/xycmat10.mf -src/xycmat11.mf -src/xycmat12.mf -src/xycmbt10.mf -src/xycmbt11.mf -src/xycmbt12.mf -src/xycmtip.doc -src/xycolor.doc -src/xycrayon.doc -src/xycurve.doc -src/xyd.mf -src/xyd2.mf -src/xydash10.mf -src/xydoc.back -src/xydoc.bib -src/xydoc.sty -src/xydocps.doc -src/xydummy.doc -src/xydvidrv.doc -src/xydvips.doc -src/xydvitops.doc -src/xyemtex.doc -src/xyeuat10.mf -src/xyeuat11.mf -src/xyeuat12.mf -src/xyeubt10.mf -src/xyeubt11.mf -src/xyeubt12.mf -src/xyeuler.mf -src/xyframe.doc -src/xygraph.doc -src/xyguide.man -src/xyidioms.doc -src/xyimport.doc -src/xyknot.doc -src/xylatex.ini -src/xyline.doc -src/xyline10.mf -src/xymacpat.xyp -src/xymatrix.doc -src/xymisc10.mf -src/xymovie.doc -src/xynecula.doc -src/xyoztex.doc -src/xypic.doc -src/xypic.map -src/xypic.sty -src/xypoly.doc -src/xyps-c.doc -src/xyps-col.doc -src/xyps-f.doc -src/xyps-l.doc -src/xyps-pro.doc -src/xyps-ps.doc -src/xyps-r.doc -src/xyps-s.doc -src/xyps-t.doc -src/xyps.doc -src/xypsdict.doc -src/xypspatt.doc -src/xyqc10.mf -src/xyrecat.doc -src/xyrefer.man -src/xyrotate.doc -src/xysmart.doc -src/xytech.mf -src/xytest.mf -src/xytex.ini -src/xytextures.doc -src/xytile.doc -src/xytips.doc -src/xytp-f.doc -src/xytpic.doc -src/xyv2.doc -src/xyweb.doc -src/xyxdvi.doc -support/doc2tex.com -support/dvitogif89a -support/install-tds -support/pnmrawtopcropwhite.c -texfonts/xyatip10.tfm -texfonts/xybsql10.tfm -texfonts/xybtip10.tfm -texfonts/xycirc10.tfm -texfonts/xycmat10.tfm -texfonts/xycmat11.tfm -texfonts/xycmat12.tfm -texfonts/xycmbt10.tfm -texfonts/xycmbt11.tfm -texfonts/xycmbt12.tfm -texfonts/xydash10.tfm -texfonts/xyeuat10.tfm -texfonts/xyeuat11.tfm -texfonts/xyeuat12.tfm -texfonts/xyeubt10.tfm -texfonts/xyeubt11.tfm -texfonts/xyeubt12.tfm -texfonts/xyline10.tfm -texfonts/xymisc10.tfm -texfonts/xyqc10.tfm -texinputs/movie.cls -texinputs/xy.sty -texinputs/xy.tex -texinputs/xy16textures.tex -texinputs/xy17oztex.tex -texinputs/xy2cell.tex -texinputs/xyall.tex -texinputs/xyarc.tex -texinputs/xyarrow.tex -texinputs/xycmactex.tex -texinputs/xycmtip.tex -texinputs/xycolor.tex -texinputs/xycrayon.tex -texinputs/xycurve.tex -texinputs/xydummy.tex -texinputs/xydvidrv.tex -texinputs/xydvips.tex -texinputs/xydvitops.tex -texinputs/xyemtex.tex -texinputs/xyframe.tex -texinputs/xygraph.tex -texinputs/xyidioms.tex -texinputs/xyimport.tex -texinputs/xyknot.tex -texinputs/xylatex.ini -texinputs/xyline.tex -texinputs/xymacpat.xyp -texinputs/xymatrix.tex -texinputs/xymovie.tex -texinputs/xynecula.tex -texinputs/xyoztex.tex -texinputs/xypic.sty -texinputs/xypic.tex -texinputs/xypoly.tex -texinputs/xyps-c.tex -texinputs/xyps-col.tex -texinputs/xyps-f.tex -texinputs/xyps-l.tex -texinputs/xyps-pro.tex -texinputs/xyps-ps.tex -texinputs/xyps-r.tex -texinputs/xyps-s.tex -texinputs/xyps-t.tex -texinputs/xyps.tex -texinputs/xypsdict.tex -texinputs/xypspatt.tex -texinputs/xyrecat.tex -texinputs/xyrotate.tex -texinputs/xysmart.tex -texinputs/xytex.ini -texinputs/xytextures.tex -texinputs/xytile.tex -texinputs/xytips.tex -texinputs/xytp-f.tex -texinputs/xytpic.tex -texinputs/xyv2.tex -texinputs/xyweb.tex -texinputs/xyxdvi.tex -type1/xyatip10.pfb -type1/xybsql10.pfb -type1/xybtip10.pfb -type1/xycirc10.pfb -type1/xycmat10.pfb -type1/xycmbt10.pfb -type1/xydash10.pfb -type1/xyeuat10.pfb -type1/xyeubt10.pfb +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +809d2c97a45ef32ec16281ab9dd1ea24 xy381/TRAILER +3ea0c09f75df8a0eddf67188f3125d97 xy381/FONTCOPYING +d3d24b4d31697c42a857bd962a88f769 xy381/Xy-logo.png +ddf30d2208f1f6476e3babdecd1efa31 xy381/INSTALL +d76abb4db084ce7809ec626b2636bd00 xy381/README +db2fe1989f176ea9e3e2ef39d65c83b6 xy381/afm/xylubt12.afm +e7f204b583e97e5a3c6259c3c8c441d8 xy381/afm/xyluat10.afm +e5addcd41abad1e67f240abdb6284751 xy381/afm/xyeuat11.afm +d8af5bc1a34d7708c7c6a20fc6f36b80 xy381/afm/xycirc10.afm +1499db9cccfa0e53fa20a9f868a5173d xy381/afm/xyeubt11.afm +94d54908fa369d96b26a319e690adcfc xy381/afm/xyeubt10.afm +8895e2a94406d2a140dc44f2f91157d8 xy381/afm/xyluat11.afm +a20b93cba987bc9725d9b206fbae0b29 xy381/afm/xydash10.afm +13416ae3e005d26ebb3cfd4d5eaca094 xy381/afm/xyeubt12.afm +64828690b923804f9c8796b3aa6da051 xy381/afm/xycmat12.afm +bafc28b5d989b3bb27e8e6173eb51f2f xy381/afm/xyluat12.afm +90fb83102331530c268fdc9a5a0ea713 xy381/afm/xyeuat12.afm +97f684e67b14445af4212d86763e64e5 xy381/afm/xylubt11.afm +624f947f2126d958922c6d457efdc90d xy381/afm/xyeuat10.afm +55283b413c0b2ece4a68659c7bea62eb xy381/afm/xycmbt10.afm +ab51d921dd61c6ae8a18e1f51158e589 xy381/afm/xycmbt12.afm +035d5ab941b656a31be8dedc6fd38a0f xy381/afm/xybsql10.afm +af1667f2bcb4d7f52f68bdd35b19c4cd xy381/afm/xycmat10.afm +5c96f78aea9893fd8e7a64ecbf8d39b3 xy381/afm/xyatip10.afm +24a76a39693a1c69adbd81f6a0a88ac2 xy381/afm/xybtip10.afm +ff0632dce26f4522956d037d37c4ee56 xy381/afm/xycmat11.afm +fcbf4926a5cbee4a5fea58fcf50225eb xy381/afm/xylubt10.afm +5358961d0566909d8c04a4ec64d75c9b xy381/afm/xycmbt11.afm +a0c9a881a151e12a25d5f4e55790a3e2 xy381/support/install-tds +957cf9a9e83ca1faa44912352bcd131f xy381/support/pnmrawtopcropwhite.c +add1bea360c72eb54981cec26ce33107 xy381/support/dvitogif89a +81499e8f6fc4029878adc87117df6452 xy381/enc/xycirc.enc +5ad4d52a4bd04bae23ca548c793c5c3f xy381/enc/xyd2.enc +49cd4c2d54e7a7fccf078e946f586f8b xy381/enc/xyd.enc +ec03ab69079721b9fdf8100b33a71f48 xy381/mfinputs/xylu.mf +572f3ac95b7612e6117929dff3953290 xy381/mfinputs/xyd2.mf +750c660b6d0ee05a98a43ab75882118f xy381/mfinputs/xycmat12.mf +b67a1a09c063cfa92a1d0a222a5e0ee1 xy381/mfinputs/xycmbt11.mf +ba5170411a2f04f6ac34b9c526fc7cb2 xy381/mfinputs/xylubt10.mf +9b38600264beb943d9a5f8e1038a0800 xy381/mfinputs/xyeuler.mf +abbc88e9b3957c038cb42812f0f68fae xy381/mfinputs/xylubt11.mf +097a4b3c290b19bf5c09cab26fd81752 xy381/mfinputs/xycmbt12.mf +2c6dc4f84512f8af8254d533c5b74eb6 xy381/mfinputs/xymisc10.mf +491bb8749dbfbbdfaa4ea8ed7f12f570 xy381/mfinputs/xylubt12.mf +c5094f25e9ef643693e3cb39169b70dd xy381/mfinputs/xyatip10.mf +322e1fb199fccd0c9a7321c202b91bdc xy381/mfinputs/xyluat10.mf +a720ddab53c52aed1d9d184b789fcc50 xy381/mfinputs/xyeubt10.mf +140a1348f18ec86ec1d8963fc76337c3 xy381/mfinputs/xycirc10.mf +5a2ed4dd03a4dedc29bc344c58e0d3a4 xy381/mfinputs/xydash10.mf +df1f6d78735463cd024f124181bd2442 xy381/mfinputs/xybtip.mf +e1ca9c39718c95d435564b07506ec0c0 xy381/mfinputs/xyeuat10.mf +1c48bb2080f4fc76a338d46f303caea4 xy381/mfinputs/xytech.mf +8a38747b2cebaae3a51ade8259d2842e xy381/mfinputs/xycm.mf +e35c0a9891979b7a3acd1629575d8e05 xy381/mfinputs/xyluat12.mf +13cb4b0558fd30e72372aae3e548492f xy381/mfinputs/xyqc10.mf +6e23c28e708557bd25ba219b41b53331 xy381/mfinputs/xycmbt10.mf +c72ee4a8c80bbd94a3f106f867898e70 xy381/mfinputs/xyeubt12.mf +81b94c8c7a5edfcfe2e8efa8390d1fad xy381/mfinputs/xyeuat12.mf +85f74cb0e6f4d7e06d7346f0dd0a4bbe xy381/mfinputs/xycmat10.mf +168ff060ac2ff811c572684a442cba30 xy381/mfinputs/xyatip.mf +e5b7039affcba01d09fd1ba8670c29e7 xy381/mfinputs/xyeuat11.mf +2cea56f52a6e1a4e6d2a5716e1cbc75c xy381/mfinputs/xybsql10.mf +d500feb421bbb8828b1f65c27738eaed xy381/mfinputs/xyline10.mf +ec9c5c57cbe11ad2f8a65e0fee40f07d xy381/mfinputs/xycmat11.mf +afc144c5753846ea087b99d6b0ca90ea xy381/mfinputs/xybtri.mf +47b1e0699a22fbc602fb5ed90109d68d xy381/mfinputs/xybtip10.mf +c945f74979c37754db4091b0a6337f88 xy381/mfinputs/xyluat11.mf +0a7a98cc4fadc26e4a15dca851484366 xy381/mfinputs/xyatri.mf +f3b0803a58bc0bc2ff4871278c722cf2 xy381/mfinputs/xyeubt11.mf +6f0a09e5168ce9933a13549a306db3c3 xy381/mfinputs/xyd.mf +1af9d3d10e5cd3b5439e5fb1b9beef20 xy381/type1/xyeubt10.pfb +1af8445ea0279ffd28b2e88717a5f9d3 xy381/type1/xyluat10.pfb +e05325968ce66efc638073a917320c4c xy381/type1/xycirc10.pfb +259a094d64c0329a9ade4a69b28bec73 xy381/type1/xyluat11.pfb +63ddf9602ec8d7126075d6ad7570226b xy381/type1/xybsql10.pfb +f0946d5b19b9b62a0728d2c51fedb3f7 xy381/type1/xyluat12.pfb +dcc2b82fc1d21ebbc22c33bdc6fc59e0 xy381/type1/xylubt10.pfb +4e1bf4d61578bba93df21a8381cbc8ac xy381/type1/xyeuat12.pfb +ab3ad74745a9b10bf8fba87682db3d6f xy381/type1/xycmat10.pfb +0813bc6b9de47e4327d8768874cd7005 xy381/type1/xycmat11.pfb +17cbf299e45d1b1e146d62ac1cad3989 xy381/type1/xycmbt10.pfb +4e60bc2fa24b54170fdd6cdd16ab8d38 xy381/type1/xyeuat11.pfb +4ed09859a18cf2442bd1bab4c66e213f xy381/type1/xylubt11.pfb +fefef5d9902c36e646e94e10503d1b87 xy381/type1/xyeubt11.pfb +206b0c80de9f8f6d9412837f806f6106 xy381/type1/xyatip10.pfb +238f59366a33ee0ae64d80cd978edc21 xy381/type1/xylubt12.pfb +4004fcc7180ec2e8120da55234b2129d xy381/type1/xybtip10.pfb +5bf642ce6bc46fc55450649d7144967e xy381/type1/xycmbt12.pfb +dc1d79c0a84b7c26c2b41aa7621d133f xy381/type1/xyeubt12.pfb +1541f10835c4aadab0457acf3e73c3c5 xy381/type1/xycmat12.pfb +ded22f2a80f472074c1780d92f3758ef xy381/type1/xydash10.pfb +900454a0de99e08bc7f828934bee9d64 xy381/type1/xycmbt11.pfb +ad5feb1cdb40995623fe73ececba3a18 xy381/type1/xyeuat10.pfb +30dbb332f7ad9f285393fa367f64bbad xy381/VERSIONS +f44f6eaecedf1a317ca5eaeadeb3eebd xy381/Xy-pic.html +8df4aef44b4c7635e8d084a882910e1c xy381/ps/xy381dict.pro +48ad6f9dda54df274f5ec4840becc5f2 xy381/doc/xy381src.tar.gz +a03da1bea3554e99a3e15c30ea71bec8 xy381/doc/xysource.pdf +7f746e6a6849561bf04d0b2a9117dfc5 xy381/doc/xypdf.pdf +739073b21e855f34219d0e45bbe10a3d xy381/doc/xyguide.pdf +12061573a4f7a0df4a44939880b9e2e5 xy381/doc/xyrefer.pdf +dc6289e5bd4f60b77882a0bad6ea04dc xy381/map/xypic.map +30f1aa652cb82cca53356128ef52f636 xy381/pfm/xyluat12.pfm +c027fee190d09a3a24c8abd2c5c3f484 xy381/pfm/xyeubt10.pfm +78678e28abe843e23f405ae53b55f7e9 xy381/pfm/xyatip10.pfm +ab79f27a625051ee27e4293ebd5a4701 xy381/pfm/xyeuat11.pfm +ddd8d5b3a6b9350fee5d7756b5b443eb xy381/pfm/xycmbt11.pfm +992df60f84d9796a6e15bd0717fee4d9 xy381/pfm/xycmbt12.pfm +61197a1308d4c48328e07808632efca5 xy381/pfm/xyluat11.pfm +17c39fcb46b1935d7e01e4b3a6e13640 xy381/pfm/xyluat10.pfm +19d611636ccc300f7eb5999a2ef433f1 xy381/pfm/xylubt12.pfm +4631f1a804c6bb868cf094ed71f06137 xy381/pfm/xydash10.pfm +13c269431e054e9760b0ee475788b8e9 xy381/pfm/xyeubt12.pfm +a7844c609c361f19ebc534872758db7b xy381/pfm/xybsql10.pfm +83c1b50ef2e086340991f631cddf4515 xy381/pfm/xycmat11.pfm +de9cb90c145751f9637c99c59596ebd6 xy381/pfm/xycmat10.pfm +fcbcdc0697df2bae1c256fbebbb3eccc xy381/pfm/xyeubt11.pfm +b0a26dfc4b78f3ea28fa177422e0085d xy381/pfm/xylubt11.pfm +c7ff5a414f6a8fde8853e2850dc80779 xy381/pfm/xycmbt10.pfm +3c46edfc1c0ba0e3d014e66f2854d46c xy381/pfm/xyeuat12.pfm +bbab51ae70b00801dcdf831bacc029c4 xy381/pfm/xycirc10.pfm +e7bfd9f4cf7237b9f1f2ebeceba24aa7 xy381/pfm/xylubt10.pfm +a85b4a283c19209f421a8c68413eb2ff xy381/pfm/xycmat12.pfm +192b54ff05e66c372330929759331a1d xy381/pfm/xyeuat10.pfm +0a6551cba1799becd836704d93489cc7 xy381/pfm/xybtip10.pfm +482d53e4fbec787a07337038439b720f xy381/texinputs/xytile.tex +cf501b015f3df21ae4cba300c82c0f76 xy381/texinputs/xytips.tex +25940530b49fe273507c43bcfea89305 xy381/texinputs/xycurve.tex +145f85055fa475c6e106cfcd133948c3 xy381/texinputs/xyrecat.tex +9a70fec6bd3eaf84caf67528f7b37759 xy381/texinputs/xyoztex.tex +bd339549912d0e6778ca178ecb3be61e xy381/texinputs/xypdf-li.tex +f31d6d461d64d37f300a84513df62e4c xy381/texinputs/xymovie.tex +775ba2a9ee769f12cf66004bde978d87 xy381/texinputs/xypdf.tex +27a99c1b1b4e325542961c0daf1a8def xy381/texinputs/xyps-c.tex +ef1430150a1689e91be81f3a311769ab xy381/texinputs/xy17oztex.tex +386372d809a8fd3b2342b72098ad1a68 xy381/texinputs/xyv2.tex +dad86d87a41431d1d0d1dd2e3dfed77d xy381/texinputs/xy2cell.tex +254817141c22b2c9998f483433de3750 xy381/texinputs/xycmactex.tex +4b59fbe9aa41dc638c5f262a5cb7400a xy381/texinputs/xytp-f.tex +73d977b2083dd23f9afbfb9bcd33c55e xy381/texinputs/xyknot.tex +aff412163de1a57f60e43b0ab318f13c xy381/texinputs/xyps-pro.tex +36a20c63f1a142fe1dd3572948d2a351 xy381/texinputs/xycrayon.tex +c950f58b6d9cc871a265948848fee3f2 xy381/texinputs/xymatrix.tex +e798101b946cd4ed3d182b765e7a24ac xy381/texinputs/xydummy.tex +7bb68190c6017f1e91abd49cd6ba04ec xy381/texinputs/xyps-l.tex +a883b8602e8c6bd090a5700d8683c5b0 xy381/texinputs/xypsdict.tex +e37d1035fa18b4e3a372a6e10d2e7b60 xy381/texinputs/xynecula.tex +dede2ccd5a07cc1b774c3a82c922dd78 xy381/texinputs/xymacpat.xyp +d41fe44df720fd97cabba42668a97136 xy381/texinputs/xyps-r.tex +c46ca39d7e01081425e08e6b68e20394 xy381/texinputs/xyps-t.tex +2c271ac1f0977cb87d194a027af2e709 xy381/texinputs/xyxdvi.tex +b42f278832e0954350f573a384d38815 xy381/texinputs/xypic.tex +a9e6245a167985d0b844330e6b8c2b20 xy381/texinputs/xygraph.tex +9961df2ac21d17b0e4992719dbe756fd xy381/texinputs/xyarrow.tex +2168ee54ffe61535120d69158e6f48a7 xy381/texinputs/xydvitops.tex +196199fe310e5da40b16d0ff248c976a xy381/texinputs/movie.cls +2b0daba9395b5b555dd36371086b3245 xy381/texinputs/xytpic.tex +21fc2653c33ab182c7195bfe89a1b4f3 xy381/texinputs/xypdf-ro.tex +26bdd24b0e06015b1b4917e06225494b xy381/texinputs/xyline.tex +2e910a79b9708482d2cd750dbe68c385 xy381/texinputs/xyweb.tex +d4b212bd316b7436a5ea6d64493c70bb xy381/texinputs/xypicture.tex +7b123ea4010dce7470aa4fad93a45433 xy381/texinputs/xypdf-cu.tex +0eefaa63fcf77cd3d8bc6200f72caebd xy381/texinputs/xyps.tex +70d1020e834f14e5a169e783b2c6b623 xy381/texinputs/xypdf-co.tex +94d77cd031d481bad911c272330c8831 xy381/texinputs/xypoly.tex +f9354596593ecaa909c076d3d1196f84 xy381/texinputs/xypspatt.tex +216d10189339c56f4c280c9e13537d62 xy381/texinputs/xytextures.tex +b301dea15702adae7947017dfc1cfccb xy381/texinputs/xyps-col.tex +1e537cb9971b33417901f4df384912be xy381/texinputs/xydvidrv.tex +ffea99ead1448926bfc40a5df0a2b5ce xy381/texinputs/xy.sty +2fdb0bbc2e8af14dcfbd612dd939f3a3 xy381/texinputs/xyps-ps.tex +01b4c03e66f3e15a22c21223e4eed746 xy381/texinputs/xypdf-fr.tex +9bc1949c233b4637c3bcd649ceb1cf72 xy381/texinputs/xy.tex +6bd202adb2e6d8a952415cdd75d50c64 xy381/texinputs/xyidioms.tex +34384b57d5ec7740027051aafc82d641 xy381/texinputs/xyemtex.tex +cf83bca6b580144c0bf7caea80acce99 xy381/texinputs/xycmtip.tex +6d62d38b36430ed055e27cc058cdf5ce xy381/texinputs/xyrotate.tex +429af27d9b6cee60c4e384133043824f xy381/texinputs/xyps-f.tex +420d24f213436fc501669a04517144ff xy381/texinputs/xypic.sty +c845c042643c87c10df3783378d9cbfa xy381/texinputs/xydvips.tex +0122438cdbee874732bc63804369bf79 xy381/texinputs/xyall.tex +ae8ee3b1dbaa88c947759ce5988907d5 xy381/texinputs/xyps-s.tex +ea2c1d5d8ca6e9658332b64ae872f7a5 xy381/texinputs/xyimport.tex +8ebd5c23d6472544b5f271b0830c2009 xy381/texinputs/xy16textures.tex +d5fb869fae62becaea901376f08f52d2 xy381/texinputs/xysmart.tex +276706970100d42f357db79fb72ea0bb xy381/texinputs/xyarc.tex +6e31f176472deb9c7dfe331d89d25ac5 xy381/texinputs/xycolor.tex +ed5af2019a409736af794a6403073884 xy381/texinputs/xyframe.tex +8387b48342db5cb265c2735578de6625 xy381/CATALOG +83297cd875e85e21075a7a8013a95afb xy381/texfonts/xyline10.tfm +a6bc9e515664aa916f3cec1fcf9cebf5 xy381/texfonts/xydash10.tfm +15185f6daaad57cb8922e79e49cfe7e4 xy381/texfonts/xyluat11.tfm +600091be7de1270bf1e501b0eb2a2e9f xy381/texfonts/xyqc10.tfm +805123b2c18603465059f2c00a3d8397 xy381/texfonts/xycmbt11.tfm +d3ca9fe0ac5cdbf25738aa5cd41a0bb1 xy381/texfonts/xycmat10.tfm +15185f6daaad57cb8922e79e49cfe7e4 xy381/texfonts/xylubt11.tfm +13befcdbbf39cf803bcb61e6f02cdba0 xy381/texfonts/xyluat12.tfm +61710f30f99f279bb1624757f53c9a43 xy381/texfonts/xymisc10.tfm +e90b8121d20c7405b2dfa682af6a9874 xy381/texfonts/xyluat10.tfm +d3ca9fe0ac5cdbf25738aa5cd41a0bb1 xy381/texfonts/xycmbt10.tfm +f0346961d9dbeea90eaa9f9a95a20d67 xy381/texfonts/xyeubt12.tfm +09a651fa91a4b10cc34bb9a6cb42874c xy381/texfonts/xycirc10.tfm +9916480cd250953a5b98487b532fd436 xy381/texfonts/xycmbt12.tfm +febee01666a1608db459ae4ba184c9d9 xy381/texfonts/xyatip10.tfm +febee01666a1608db459ae4ba184c9d9 xy381/texfonts/xybtip10.tfm +e90b8121d20c7405b2dfa682af6a9874 xy381/texfonts/xylubt10.tfm +f0346961d9dbeea90eaa9f9a95a20d67 xy381/texfonts/xyeuat12.tfm +492ebef43b75cf3dab2ee2194f8ef1df xy381/texfonts/xyeuat10.tfm +feca2c47f7f3bee4423e7850d03565f0 xy381/texfonts/xyeubt11.tfm +9916480cd250953a5b98487b532fd436 xy381/texfonts/xycmat12.tfm +feca2c47f7f3bee4423e7850d03565f0 xy381/texfonts/xyeuat11.tfm +8654b3f5486d1310cbd2d2fa0cd5a3f3 xy381/texfonts/xybsql10.tfm +805123b2c18603465059f2c00a3d8397 xy381/texfonts/xycmat11.tfm +13befcdbbf39cf803bcb61e6f02cdba0 xy381/texfonts/xylubt12.tfm +492ebef43b75cf3dab2ee2194f8ef1df xy381/texfonts/xyeubt10.tfm +f76274b95cccf44796d1f11ffaba968d xy381/COPYING +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.9 (GNU/Linux) + +iQEcBAEBCAAGBQJMETVuAAoJEMTQEv/gFjeH7iYH/24IFz9uzBoeRADgP+EbQVOf +sAImtjg543eFzoW74ozTWWEwXRz6wGyHN3KjB8NFrbZp32wBKEKG3W4tqkrwnYCi +s2CQa9qkFqTyOoiS6ytrk3/PHlPTu1AS3WGPiUYXSTppY2hOLzE+45XIz+ND1DxD +JUqrxPwkLa9Wr15Xw482ajaycS/sYfvDjHCqN/FmboSGIY+hqNt7edHg89fBaphK +zm2iCiIFtir1yHL6q26R1eY/wq2oE7Z3riquuGgkxMgYqW1WhXRbN+t5M64dO4DQ +LY0H6YBM9wNli3Ui6nhVo7Tx9h4MRzdqBxS/RNOUPIaQiQKeiwxKBbiDjWUKH7o= +=oHD+ +-----END PGP SIGNATURE----- diff --git a/Master/texmf-dist/doc/generic/xypic/README b/Master/texmf-dist/doc/generic/xypic/README index 9cb813a4cb6..6fcb3f26bdb 100644 --- a/Master/texmf-dist/doc/generic/xypic/README +++ b/Master/texmf-dist/doc/generic/xypic/README @@ -1,4 +1,4 @@ --*-text-*- $Id: README,v 3.6 1998/03/06 01:28:05 krisrose Exp $ +-*-text-*- $Id: README,v 3.11 2010/05/06 17:46:29 krisrose Exp $ ====================================================== THE Xy-pic PACKAGE FOR TYPESETTING GRAPHS AND DIAGRAMS @@ -19,10 +19,9 @@ See below in this file for an overview of the structure and features! See CATALOG for up to date version information! See TRAILER for author and accessibility information! See COPYING for the conditions for redistribution and modification! -See MANIFEST for a complete file list! See VERSIONS for the exact list of the versions of all source files! -See the various INSTALL files for how to install Xy-pic on your system! -See the W3 <URL: http://www.ens-lyon.fr/~krisrose/Xy-pic.html> for news! +See INSTALL for how to install Xy-pic on your system! +Go to <URL: http://xy-pic.sourceforge.net> for source and news! - o - @@ -48,6 +47,9 @@ These (combinable) structures are available: specifying graphs with objects and connections between them in a manner independent of orientation. +* An experimental facility for generating movies where diagrams wiggle + and bend into place... + The following objects may be used: + Positions can be given in variety of formats (extendable) including @@ -88,10 +90,9 @@ The following objects may be used: Xy-pic tries to approximate what is requested such that at least the picture size is stable (and thus page breaks). -+ Output can use PostScript for drawing (several \special formats are - supported: dvips, Textures, and OzTeX -- more are being added - continuously: contact Ross Moore <ross@mpce.mq.edu.au> for the current - list). Notation for inclusion of literal PostScript is available. ++ Output can use PDF or PostScript for drawing (several \special + formats are supported, including pdfTeX, dvips, and Textures). + Notation for inclusion of literal PostScript is available. * Other graphics can be imported and then `decorated' using Xy-pic. @@ -102,5 +103,5 @@ All object forms may be used with all structures. Finally, enjoy Xy-pic! Sincerely, - Kristoffer H. Rose <krisrose@ens-lyon.fr> - Ross Moore <ross@mpce.mq.edu.au> + Kristoffer H. Rose <krisrose@tug.org> + Ross Moore <ross.moore@mq.edu.au> diff --git a/Master/texmf-dist/doc/generic/xypic/TRAILER b/Master/texmf-dist/doc/generic/xypic/TRAILER index 0910c672a83..4f6b2baddf5 100644 --- a/Master/texmf-dist/doc/generic/xypic/TRAILER +++ b/Master/texmf-dist/doc/generic/xypic/TRAILER @@ -1,13 +1,11 @@ --*-text-*- $Id: TRAILER,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +-*-text-*- $Id: TRAILER,v 3.16 2010/06/10 18:45:49 krisrose Exp $ ======================================================================= - ANNOUNCING the Xy-pic version 3.7 DIAGRAM TYPESETTING PACKAGE + ANNOUNCING the Xy-pic version 3.8 DIAGRAM TYPESETTING PACKAGE ======================================================================= -This is to announce a release of my diagram typesetting package Xy-pic. - -With version 3.7 we explicitly grant permission to use the unmodified -Xy-pic fonts and specials in distributed documents. +This is to announce a release of the diagram typesetting package Xy-pic. +It has been more than a decade, so we find that a release is in order. ----------------------------------------------------------------------- GENERAL @@ -15,33 +13,42 @@ Xy-pic fonts and specials in distributed documents. Xy-pic is a package for typesetting a variety of graphs and diagrams with TeX. Xy-pic works with most formats (including LaTeX, AMS-LaTeX, -AMS-TeX, and plain TeX), in particular Xy-pic is provided as a LaTeX2e -`supported package' (following the `CTAN LaTeX2e bundle' standard). +AMS-TeX, and plain TeX). -Further specifics of the package are in the distribution README file. +Further specifics of the package are in the distribution README file +and other documentation. ----------------------------------------------------------------------- NEWS ----------------------------------------------------------------------- -The primary purpose of release 3.7 is the granting of special permission -to copy the Xy-pic fonts and graphic specials inside documents, for -example in DVI, PostScript, and PDF files. This has no practical -significance except making current (reasonable) practice explicitly -legal. - -Release 3.7 furthermore fixes a few bugs in release 3.6 and adds a few -features: a "smart turning path" feature and an extension with macro -expansion in kernel expressions and polygon shapes by George C. Necula, -and the beginnings of an emulation of LaTeX picture mode proposed by -Paul Burchard and Bill Richter. - -Special thanks to George Necula for the bug fixes and impressive -extensions, to Bill Richter for extending Paul Burchard's pb-diagram to -use Xy-pic as a backend and for contributing the `picture' feature, to -Berthold Horn of Y&Y Inc. for releasing the copyright on their -PostScript fonts, and to Pieter Donche and Marcelo Cunha dos Santos for -the bug reports. +Release 3.8.1 includes the missing ".enc" files in the distribution. + +The primary purpose of release 3.8 is to incorporate support for +proper PDF output by including Daniel Müllner's "xypdf" package using +native PDF for drawing. The driver is integrated with most of +Xy-pic's extensions, however, there may still be gray areas where +support is sketchy, so please try your favorite diagrams with pdfTeX +and tell us if it works for you! We're grateful to Daniel for having +contributed such a key piece of infrastructure that Xy-pic has been +lacking for many years. + +This version also marks the first version where xymatrix entries are +aligned by their math axis by default as suggested by Alex Perlis (in +TUGboat 22 (2001), 330-334); thanks to Alex for the thorough analysis. +Please check whether your matrices still work as you expect! + +Also thanks to Jeremy Gibbons for contributing the new "lu" style of +arrow tips suitable for use with Lucida, and to Scott Pakin and the +FontForge team for the great programs used to generate all Type1 fonts +directly from METAFONT sources. + +Release 3.8 furthermore fixes a few bugs in release 3.7; do tell if +you believe that any of the "fixes" are really new bugs. + +Finally, thanks to our loyal users; indeed if you enjoy Xy-pic then +please rate us on http://sourceforge.net/projects/xy-pic where Xy-pic +development is now completely in the open! ----------------------------------------------------------------------- AVAILABILITY @@ -49,24 +56,19 @@ the bug reports. Xy-pic can be retrieved through the World Wide Web Xy-pic `home page': - URL: http://www.ens-lyon.fr/~krisrose/Xy-pic.html - -as well as by anonymous ftp from - - CTAN: macros/generic/diagrams/xypic + http://xy-pic.sourceforge.net -Check the README file in each location for specifics, in particular -check that you have reached a version 3.7 copy (some archives take a -while to mirror the latest files)! +Make sure to check that you have reached a version 3.8 copy (some +archives take a while to mirror the latest files)! ----------------------------------------------------------------------- HISTORY & CREDITS ----------------------------------------------------------------------- The first public release (version 1.40) of Xy-pic was created by -Kristoffer H. Rose, DIKU, U of Copenhagen (now ENS-Lyon, France) and -distributed via Usenet on December 19, 1991. This quickly became -version 2 of which version 2.6 was the stable for sevarl years. +Kristoffer H. Rose, then at DIKU, U of Copenhagen, and distributed via +Usenet on December 19, 1991. This quickly became version 2 of which +version 2.6 was stable for a few years. The thorough rewrite that became version 3 is a continued collaboration with Ross Moore, Macquarie U, Sydney, initiated through @@ -75,14 +77,14 @@ Research Council, Macquarie University, and using donated DEC equipment). However, full backwards compatibility is maintained (except for the unavoidable but fully documented obscure cases). -Xy-pic is Copyright (c) 1991-1998 by Kristoffer H. Rose and 1994-1998 -by Ross Moore under GNU COPYLEFT (GPL) which means that you can use -the package for any purpose but if you provide the macros or any code -derived from them to a third party then you are obliged to include the -entire Xy-pic package (full details in the file COPYING). The -PostScript fonts are additionally Copyright (c) 1997 Y&Y Inc. The -FONTCOPYING file details the special permissions to distribute fonts -without the full requirements of the GPL. +Xy-pic is principally Copyright (c) 1991-2010 by Kristoffer H. Rose +and 1994-2010 by Ross Moore, with contributions by several others, all +under GNU COPYLEFT (GPL) which means that you can use the package for +any purpose but if you provide the macros or any code derived from +them to a third party then you are obliged to include the entire +Xy-pic package (full details in the file COPYING). The FONTCOPYING +file details the special permissions to distribute fonts without the +full requirements of the GPL. ----------------------------------------------------------------------- diff --git a/Master/texmf-dist/doc/generic/xypic/VERSIONS b/Master/texmf-dist/doc/generic/xypic/VERSIONS index 8dd98c1cd2e..6f54adae42f 100644 --- a/Master/texmf-dist/doc/generic/xypic/VERSIONS +++ b/Master/texmf-dist/doc/generic/xypic/VERSIONS @@ -1,103 +1,113 @@ -$Id: CATALOG.doc,v 3.6 1998/03/06 04:29:05 krisrose Exp $ -$Id: INSTALL,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: INSTALL.OzTeX,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: INSTALL.Textures,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: MAKE,v 3.5 1997/05/28 22:40:26 krisrose Exp $ -$Id: Makefile,v 3.7 1999/02/16 15:12:50 krisrose Exp krisrose $ -$Id: README,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: TRAILER,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: dvitogif89a,v 3.5 1997/05/28 13:05:01 krisrose Exp $ -$Id: install-tds,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: latin1.sty,v 3.4 1997/05/18 03:04:44 krisrose Exp $ -$Id: movie.cls,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -$Id: pnmrawtopcropwhite.c,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: pnmrawtopcropwhite.c,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xy.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xy.sty,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xy16textures.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -$Id: xy17oztex.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -$Id: xy2cell.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -$Id: xyall.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xyarc.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: xyarrow.doc,v 3.5 1997/05/28 13:05:01 krisrose Exp $ -$Id: xyatip.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyatip10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xybsql10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xybtip.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xybtip10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycirc10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycm.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmactex.doc,v 3.3 1996/12/18 08:54:25 ross Exp $ -$Id: xycmat10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmat11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmat12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmbt10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmbt11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmbt12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmtip.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xycolor.doc,v 3.3 1996/12/19 03:50:08 ross Exp $ -$Id: xycrayon.doc,v 3.3 1996/12/18 08:58:16 ross Exp $ -$Id: xycurve.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyd.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyd2.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xydash10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xydoc.bib,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xydoc.sty,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xydocps.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xydummy.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xydvidrv.doc,v 3.3 1996/12/18 09:12:40 ross Exp $ -$Id: xydvips.doc,v 3.3 1996/12/18 09:13:14 ross Exp $ -$Id: xydvitops.doc,v 3.3 1996/12/18 09:14:36 ross Exp $ -$Id: xyemtex.doc,v 3.3 1996/12/18 09:18:00 ross Exp $ -$Id: xyeuat10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeuat11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeuat12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeubt10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeubt11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeubt12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeuler.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyframe.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xygraph.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyguide.man,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xyidioms.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -$Id: xyimport.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xyknot.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: xylatex.ini,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xyline.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xyline10.mf,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xymacpat.xyp,v 3.3 1996/12/18 09:25:21 ross Exp $ -$Id: xymatrix.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -$Id: xymisc10.mf,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xymovie.doc,v 3.5 1997/05/28 13:05:01 krisrose Exp $ -$Id: xyoztex.doc,v 3.3 1996/12/18 09:26:26 ross Exp $ -$Id: xypic.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xypic.map,v 3.7 1999/02/16 15:12:50 krisrose Exp krisrose $ -$Id: xypic.sty,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xypoly.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-c.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-col.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-f.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-l.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-pro.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-ps.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-r.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-s.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-t.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xypsdict.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xypspatt.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyqc10.mf,v 3.0 1995/07/07 20:14:21 kris Exp $ -$Id: xyrecat.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xyrefer.man,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyrotate.doc,v 3.3 1996/12/18 09:40:16 ross Exp $ -$Id: xytech.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xytest.mf,v 3.3 1996/12/19 04:33:25 krisrose Exp $ -$Id: xytex.ini,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xytextures.doc,v 3.3 1996/12/18 09:41:45 ross Exp $ -$Id: xytile.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: xytips.doc,v 3.3 1996/12/19 04:12:13 krisrose Exp $ -$Id: xytp-f.doc,v 3.3 1996/12/18 09:49:07 ross Exp $ -$Id: xytpic.doc,v 3.3 1996/12/18 09:50:38 ross Exp $ -$Id: xyv2.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -$Id: xyweb.doc,v 3.3 1996/12/18 09:52:11 ross Exp $ -$Id: xyxdvi.doc,v 3.3 1996/12/18 09:53:22 ross Exp $ +$Id: CATALOG.doc,v 3.11 2010/06/10 18:45:48 krisrose Exp $ +$Id: dvitogif89a,v 3.7 2010/06/10 18:45:49 krisrose Exp $ +$Id: install-tds,v 3.13 2010/06/10 18:45:49 krisrose Exp $ +$Id: INSTALL,v 3.20 2010/06/10 18:50:56 krisrose Exp $ +$Id: latin1.sty,v 3.6 2010/06/10 18:45:49 krisrose Exp $ +$Id: Makefile,v 3.57 2010/06/10 18:45:49 krisrose Exp $ +$Id: MAKE,v 3.11 2010/06/10 18:45:49 krisrose Exp $ +$Id: movie.cls,v 3.6 2010/06/10 18:45:49 krisrose Exp $ +$Id: pnmrawtopcropwhite.c,v 3.9 2010/06/10 18:45:49 krisrose Exp $ +$Id: README,v 3.11 2010/05/06 17:46:29 krisrose Exp $ +$Id: TRAILER,v 3.16 2010/06/10 18:45:49 krisrose Exp $ +$Id: xy16textures.doc,v 3.6 2010/06/10 18:45:49 krisrose Exp $ +$Id: xy17oztex.doc,v 3.7 2010/06/10 18:45:49 krisrose Exp $ +$Id: xy2cell.doc,v 3.6 2010/06/10 18:45:49 krisrose Exp $ +$Id: xyall.doc,v 3.6 2010/06/10 18:45:49 krisrose Exp $ +$Id: xyarc.doc,v 3.7 2010/06/10 18:45:49 krisrose Exp $ +$Id: xyarrow.doc,v 3.7 2010/06/10 18:45:49 krisrose Exp $ +$Id: xyatip10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyatip.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyatri.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xybsql10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ +$Id: xybtip10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ +$Id: xybtip.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xybtri.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycirc10.mf,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycmactex.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycmat10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycmat11.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycmat12.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycmbt10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycmbt11.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycmbt12.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycm.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycmtip.doc,v 3.5 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycolor.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycrayon.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xycurve.doc,v 3.11 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyd2.mf,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xydash10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyd.mf,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xydoc.bib,v 3.16 2010/06/10 18:45:50 krisrose Exp $ +$Id: xydocps.doc,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xydoc.sty,v 3.34 2010/06/10 18:45:50 krisrose Exp $ +$Id: xy.doc,v 3.20 2010/06/10 18:45:49 krisrose Exp $ +$Id: xydummy.doc,v 3.5 2010/06/10 18:45:50 krisrose Exp $ +$Id: xydvidrv.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xydvips.doc,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xydvitops.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyemtex.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyeuat10.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyeuat11.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyeuat12.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyeubt10.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyeubt11.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyeubt12.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyeuler.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyframe.doc,v 3.11 2010/06/10 18:45:50 krisrose Exp $ +$Id: xygraph.doc,v 3.9 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyguide.man,v 3.20 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyidioms.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyimport.doc,v 3.12 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyknot.doc,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyline10.mf,v 3.5 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyline.doc,v 3.9 2010/06/10 18:45:50 krisrose Exp $ +$Id: Xy-logo.doc,v 3.2 2010/06/10 18:45:49 krisrose Exp $ +$Id: Xy-logo.xy,v 3.2 2010/06/10 18:45:49 krisrose Exp $ +$Id: xyluat10.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyluat11.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyluat12.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xylubt10.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xylubt11.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xylubt12.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xylu.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xymacpat.xyp,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xymatrix.doc,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xymisc10.mf,v 3.5 2010/06/10 18:45:50 krisrose Exp $ +$Id: xymovie.doc,v 3.7 2010/06/10 18:45:50 krisrose Exp $ +$Id: xynecula.doc,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyoztex.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xypic.doc,v 3.5 2010/06/10 18:45:50 krisrose Exp $ +$Id: Xy-pic.html,v 3.34 2010/06/10 18:45:49 krisrose Exp $ +$Id: xypic.sty,v 3.4 2010/04/16 06:06:52 krisrose Exp $ +$Id: xypicture.doc,v 3.5 2010/06/10 18:45:50 krisrose Exp $ +$Id: xypoly.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-c.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-col.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xypsdict.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-f.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-l.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xypspatt.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-pro.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-ps.doc,v 3.11 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-r.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-s.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyps-t.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyqc10.mf,v 3.1 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyrecat.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyrefer.man,v 3.31 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyrotate.doc,v 3.7 2010/06/10 18:45:50 krisrose Exp $ +$Id: xysmart.doc,v 3.4 2010/06/10 18:45:50 krisrose Exp $ +$Id: xysource.man,v 3.26 2010/06/10 18:45:50 krisrose Exp $ +$Id: xy.sty,v 3.9 2010/06/10 18:45:49 krisrose Exp $ +$Id: xytech.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ +$Id: xytest.mf,v 3.5 2010/06/10 18:45:50 krisrose Exp $ +$Id: xytextures.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xytile.doc,v 3.7 2010/06/10 18:45:50 krisrose Exp $ +$Id: xytips.doc,v 3.7 2010/06/10 18:45:50 krisrose Exp $ +$Id: xytp-f.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xytpic.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyv2.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyweb.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ +$Id: xyxdvi.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ diff --git a/Master/texmf-dist/doc/generic/xypic/Xy-logo.png b/Master/texmf-dist/doc/generic/xypic/Xy-logo.png Binary files differnew file mode 100644 index 00000000000..0adfdf016f0 --- /dev/null +++ b/Master/texmf-dist/doc/generic/xypic/Xy-logo.png diff --git a/Master/texmf-dist/doc/generic/xypic/Xy-pic.html b/Master/texmf-dist/doc/generic/xypic/Xy-pic.html new file mode 100644 index 00000000000..5b943902f69 --- /dev/null +++ b/Master/texmf-dist/doc/generic/xypic/Xy-pic.html @@ -0,0 +1,365 @@ +<html> <head> +<!--$Id: Xy-pic.html,v 3.34 2010/06/10 18:45:49 krisrose Exp $--> +<title>Xy-pic Home Page</title> +<!--``Xy-pic home page.'' +%% +%% 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-2010 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/. +--> +<meta name="description" + content="Xy-pic diagram drawing (La)TeX package home page."> +<meta name="keywords" + content="xypic, TeX, LaTeX, commutative diagram, planar graph, flow chart"> +</head> + +<body lang="EN" bgcolor="#FFFFFF"> +<center> +<h1> +<img src="Xy-logo.png" alt="Xy" width=95 height=111 align=center alt="Xy">-pic +— +Typesetting Graphs and Diagrams in TeX +</h1> +</center> + +<p> + Xy-pic is a package for typesetting graphs and diagrams using the + principle of <q>logical composition of visual components.</q> It is + structured as several modules, each defining a mnemonic plain text + notation for a particular kind of graphical object or structure. + Example objects are arrows, curves, frames, and colouring/rotation + on drivers that support it; these can be organised in matrix, + directed graph, path, polygon, knot, and 2-cell structure (a more + complete list of the features is given below). +<p> + Xy-pic works with most formats, including all variants of LaTeX, + AMS-TeX, and plain TeX, and has been used to typeset complicated + diagrams from many application areas including category theory, + automata theory, algebra, neural networks, topology (knots and + braids), database theory, and genealogy. +<p> + Xy-pic has been designed with great care to allow the style of + pictures to match well with the exquisite quality of the surrounding + TeX typeset material. +</p> + +<h2><a name="avail">Availability</a></h2> + +<p> + You can get Xy-pic from + <a href="http://ctan.org/tex-archive/macros/generic/diagrams/xypic/">CTAN</a> + or directly from the + <a href="http://sourceforge.net/projects/xy-pic/">SourceForge development project home</a>, + however, chances are that Xy-pic is already included with your TeX installation + (for <a href="http://www.tug.org/texlive/">TeX Live</a>, for example, + Xy-pic is part of the <q>pictures</q> bundle). +<p> + Xy-pic was conceived by + <a href="http://www.krisrose.net">Kristoffer Høgsbro Rose</a>, + the present version is the result of several years of collaboration with + <a href="http://www.maths.mq.edu.au/~ross/">Ross Moore</a> with + essential contributions from George Necula, Jeremy Gibbons, + <a href="http://www.math.uni-bonn.de/people/muellner">Daniel Müllner</a>, + and Alex Perlis<!--, <a href="http://www.tug.org/yandy/">Y&Y Inc.</a>-->, + and with many suggestions from more than two decades of users. +<p> + Xy-pic is © by its authors as + <a href="http://www.fsf.org/">free software</a>. +</p> + +<h2>Features</h2> + +<p> + Xy-pic is structured as a <q>kernel</q> and several orthogonal modules + called <q>options</q>, each defining a custom notation for a particular + kind of graphical object or structure. +<p> + +These (combinable) <q>logical composition</q> structures are available: + +<ul> + <li>A graph combinator mode where diagrams are specified the way they are + composed as graphs. + <li>A matrix-like mode where the dimensions of the drawing are computed by + aligning diagram entries in rows and columns (this is the <q>diagram</q> + mode Xy-pic version 2 users are used to). + <li>A polygon mode where diagrams shaped as regular polygons are entered + in a simple way. + <li>A mode for typesetting beautiful knots and links. + <li>A general object-oriented <q>turtle graphic</q> drawing language for + specifying graphs with objects and connections between them in a + manner independent of orientation. +</ul> + +The following <q>visual component</q> objects can be used: + +<ul> + <li>Positions can be given in variety of formats (extendable) including + user defined coordinates (x,y) and relative to previous positions, + objects, object edges, and points on connections. + <li>Objects may be circular, elliptic, or rectangular (more shapes can be + added) and adjusted in several ways. + <li>Large library of objects with mnemonic names. + <li>Objects that orient themself along a connection when placed relative + to it, e.g., <q><code>@{|-}</code></q> is like <q><code>\vdash</code></q> + but thus oriented; new such objects can be defined in a convenient way. + <li>TeX <q>boxes</q>, i.e., text and mathematical formulae. + <li>Includes circle segments and optionally arbitrary elliptical, + quadratic, and cubic arcs. + <li>Connections are aligned between the reference points of objects but + start and end on the edges. + <li>Any object can be used to build a connection (using <q>diagonal + filling</q>); library objects provide common line types. + <li>Flexible notation for drawing arrows and general paths with + tail, stem, and head built from any object(s). Special support + for arrows that cross each other, arrows that <q>go by</q> other + entries, paired arrows (including support for 2-cells), curved + arrows, and arrows with bends. The style of arrow tips can be + configured to match several styles of symbol arrows. + <li>Library of frames and braces. + <li>Special notation for rotation, scaling, colour, and line thickness. + The correct typesetting of these features requires a backend that + supports it but even when this is not available + Xy-pic tries to approximate what is requested such that at least the + picture size is stable (and thus page breaks). + <li>Output can use PostScript<a href="#PS">*</a> for drawing (several \special formats are + supported: dvips, Textures, and OzTeX - more are being added + continuously: contact Ross Moore <ross.moore@mq.edu.au> for the current + list). Notation for inclusion of literal PostScript<a href="#PS">*</a> is available. + <li>Support for Adobe PDF<a href="#PS">*</a> output is available + from version 3.8 (thanks to support by Daniel Müllner and + font conversion software by Scott Pakin).</a>). +</ul> + +<h2>Documentation</h2> + +The official Xy-pic documentation, updated with each release, consists of the following four documents. + +<ul> + + <li><em>Xy-pic User's Guide</em> + by <a href="http://www.krisrose.net/">Kristoffer H. Rose</a>. + Explains how to use the Xy-pic macro package to typeset + basic <q>matrix-like</q> diagrams with TeX + (<a href="http://ctan.org/tex-archive/macros/generic/diagrams/xypic/xy/doc/xyguide.pdf">pdf</a>).<p> + + <li><em>Xy-pic Reference Manual</em> + by <a href="http://www.krisrose.net/">Kristoffer H. Rose</a> & <a href="http://www.maths.mq.edu.au/~ross/">Ross Moore</a>. + Reference manual for Xy-pic summarising syntax and <q>drawing + semantics</q> of the capabilities in the kernel, all extensions and + features, and the PostScript<a href="#PS">*</a> backend + (<a href="http://ctan.org/tex-archive/macros/generic/diagrams/xypic/xy/doc/xyrefer.pdf">pdf</a>).<p> + + <li><em>Xy-pic Complete Sources with TeXnical Commentary</em> + by <a href="http://www.krisrose.net/">Kristoffer H. Rose</a> & <a href="http://www.maths.mq.edu.au/~ross/">Ross Moore</a>. + Just that (a large document, <a href="http://ctan.org/tex-archive/macros/generic/diagrams/xypic/xy/doc/xysource.pdf">pdf</a>).<p> + + <li><em>The xypdf package</em> + by <a href="http://www.math.uni-bonn.de/people/muellner">Daniel Müllner</a>. + Detailed user and TeXnical documentation of the PDF<a href="#PS">*</a> support for Xy-pic + (<a href="http://ctan.org/tex-archive/macros/generic/diagrams/xypic/xy/doc/xypdf.pdf">pdf</a>).<p> + +</ul> + +In addition there are several tutorials on Xy-pic. + +<ul> + + <li><em>An Introduction to Xy-pic</em> + by Cameron McLeman (<a href="http://math.arizona.edu/~swig/documentation/xypic/Xypic.pdf">pdf slides</a>).<p> + + <li><em>Commutative Diagrams with XY-pic---I.\ Kernel Functions and Arrows</em> + by Paul A. Blaga (<a href="http://tug.org/pracjourn/2006-4/blaga/blaga.pdf">pdf</a>).<p> + + <li><em>LaTeX/Creating Graphics/Xy-pic</em> + is a <a href="http://en.wikibooks.org/wiki/LaTeX/Creating_Graphics#XY-pic">WikiBook chapter</a>.<p> + + <li><em>The LaTeX Graphics Companion</em>, Second Edition + by <a href="http://goossens.web.cern.ch/goossens/">Michel Goossens</a>, <a href="http://users.ox.ac.uk/~rahtz/">Sebastian Rahtz</a>, Frank Mittelbach, Denis Roegel, and Herbert Voß, + <a href="http://aw.com">Addison-Wesley</a>, 2007. + Chapter 7 gives a concise introduction to some advanced uses of Xy-pic + (<a href="http://www.informit.com/store/product.aspx?isbn=0321508920">official page</a>; + in the <a href="http://books.google.com/books?id=hh6rdgZ9m3MC&printsec=frontcover&dq=The+LaTeX+Graphics+Companion&source=bl&ots=1rmNFdwt3O&sig=dQdy79YBDYQBq2r-CHfY3jL63ek&hl=en&ei=FrPXS_SkDpX49AS3tPiXBw&sa=X&oi=book_result&ct=result&resnum=1&ved=0CAsQ6AEwAA#v=onepage&q&f=false">first edition on Google books</a> chapter 5 is dedicated to Xy-pic).<p> + + <li><em>Examples on Typesetting Commutative Diagrams Using Xy-pic</em> + by M. Alsani (<a href="http://north.ecc.edu/alsani/xypicbyexample.ps">ps</a>).<p> + + <li><em>Using Xy-pic in LyX</em> + by H. Peter Gumm (<a href="http://wiki.lyx.org/uploads/Examples/XY-pic/xypic.pdf">pdf</a>).<p> + + <li><em>Drawing knot pictures using LaTeX with Xy-pic – An introduction and tutorial</em> + by Lars Fischer (<a href="http://lf.starlogik.de/drawing_knot_pictures.html">html</a>).<p> + + <li><em>Xy-pic tutorial with an archive of examples</em> + by Aaron Lauda (<a href="http://www.math.columbia.edu/~lauda/xy/">html</a>). + Uses low level Xy-pic directives for everything. + <p> + + <li><em>Tutorial de Xy-pic</em> + by Carlos A. P. Campani (<a href="http://ufpel.edu.br/~campani/xypictutorial.pdf">pdf</a>, in Portuguese).<p> + +</ul> + +Finally, we maintain a collection of +<a href="http://ctan.org/tex-archive/macros/generic/diagrams/xypic/xysamples/">examples</a> and +<a href="http://ctan.org/tex-archive/macros/generic/diagrams/xypic/xypapers/">papers</a> on CTAN. + +<p> + +If you know of other tutorials, interesting papers, or instructive examples, that can be shared, then please drop a note to the <a href="http://www.tug.org/mailman/listinfo/xy-pic">mailing list</a>! + +<h2>Help and Support</h2> + +Help and support on Xy-pic matters, as well as announcement of new versions, etc., is provided by the <a href="http://www.tug.org/mailman/listinfo/xy-pic">Xy-pic mailing list</a>, graciously hosted by <a href="http://tug.org">TUG</a>. + +<hr> +<p> +<a name="PS">*</a> PostScript and PDF are trademarks of <a href="http://www.adobe.com/">Adobe, Inc.</a> +<p> +<hr> +<address> +<a href="http://www.krisrose.net/">Kristoffer Høgsbro Rose</a> +— +$Id: Xy-pic.html,v 3.34 2010/06/10 18:45:49 krisrose Exp $ +— +Hits by +<A HREF="http://www.digits.com/thumbnail/"><IMG + ALT=WebCounter SRC="http://www.digits.com/thumbnail/wc-01.gif" + WIDTH=79 HEIGHT=22 BORDER=1 ALIGN=absmiddle></A>: +<IMG SRC="http://counter.digits.com/wc/-c/13/-d/5/-f/000000/-b/bebebe/Xy-pic" + ALIGN=absmiddle WIDTH=75 HEIGHT=20 BORDER=0 ALT=Count>. +</address> +</body></html> + +<!-- +-- $Log: Xy-pic.html,v $ +-- Revision 3.34 2010/06/10 18:45:49 krisrose +-- Reference to GPL by URL. +-- +-- Revision 3.33 2010/06/04 03:44:06 krisrose +-- More tutorials! +-- +-- Revision 3.32 2010/06/03 22:58:26 krisrose +-- Oops. +-- +-- Revision 3.31 2010/06/03 22:53:58 krisrose +-- Link documents on CTAN. +-- +-- Revision 3.30 2010/06/03 05:51:20 krisrose +-- Link to v3.8 documentation. +-- +-- Revision 3.29 2010/06/02 19:44:21 krisrose +-- Cleanup. +-- +-- Revision 3.28 2010/05/22 23:20:35 dmuellner +-- no message +-- +-- Revision 3.27 2010/05/21 04:36:29 krisrose +-- Experimental version with Alex's xymatrix adjustment modifiers as default. +-- +-- Revision 3.26 2010/05/17 23:29:21 krisrose +-- Experiment: generate all the Type1 fonts with METAPOST. +-- +-- Revision 3.25 2010/05/14 00:50:09 krisrose +-- Daniel's link included. +-- +-- Revision 3.24 2010/05/14 00:37:09 krisrose +-- Update documentation links to PDF and include Daniel's manual. +-- +-- Revision 3.23 2010/05/06 17:46:29 krisrose +-- Ross Moore's e-mail address updated. +-- Many obsolete files degraded to Historic. +-- +-- Revision 3.22 2010/04/28 20:17:28 krisrose +-- Link to (defunct) Y&Y Inc. +-- +-- Revision 3.21 2010/04/28 19:59:28 krisrose +-- Acknowledge properly. +-- +-- Revision 3.20 2010/04/28 19:31:55 krisrose +-- Boast about the style integration. +-- +-- Revision 3.19 2010/04/28 07:17:17 krisrose +-- PDF only in 3.8. +-- +-- Revision 3.18 2010/04/28 07:11:02 krisrose +-- Sic, again... +-- +-- Revision 3.17 2010/04/28 07:09:10 krisrose +-- CTAN samples and papers links... +-- +-- Revision 3.16 2010/04/28 07:05:39 krisrose +-- ß +-- +-- Revision 3.15 2010/04/28 07:01:24 krisrose +-- Users! +-- +-- Revision 3.14 2010/04/28 06:54:55 krisrose +-- Removed Latin1 specific characters. +-- +-- Revision 3.13 2010/04/28 06:50:42 krisrose +-- Removed dangling link. +-- +-- Revision 3.12 2010/04/28 06:43:27 krisrose +-- Sic. +-- +-- Revision 3.11 2010/04/28 05:39:25 krisrose +-- Checked and made version independent. +-- +-- Revision 3.10 2010/04/26 05:56:57 krisrose +-- Link fixes in progress... +-- +-- Revision 3.9 2010/04/21 18:41:02 krisrose +-- Adjustments preparing for xypdf.dtx and friends! +-- +-- Revision 3.8 2010/04/16 06:06:51 krisrose +-- Preparing for a new release... +-- +-- Revision 3.7 1999/02/16 15:01:59 krisrose +-- Updated for the interim 3.7. +-- +-- Revision 3.6 1998/03/06 01:28:05 krisrose +-- Releasing (with Y&Y fonts). +-- +-- Revision 3.5 1997/05/28 13:05:01 krisrose +-- Fixed missing breaks bug. +-- +-- Revision 3.4 1997/05/18 01:14:25 krisrose +-- Essential bugfixes. +-- +-- Revision 3.3 1996/12/19 17:03:13 krisrose +-- Maintenance release. +-- +-- Revision 3.2 1995/09/19 18:22:27 kris +-- Bug fix release. +-- +-- Revision 3.1 1995/09/05 20:31:32 kris +-- Releasing! +-- +-- Revision 3.0 1995/07/07 20:55:47 kris +-- Refers to v3! +-- +-- Revision 2.13 1995/07/04 15:11:17 kris +-- Ready to release v3? +-- +-- Revision 1.2 1994/10/06 16:43:38 kris +-- Cleaned up to be a proper Xy-pic home page. +-- +-- Revision 1.1 1994/08/29 12:24:13 kris +-- Initial revision +-- +-- Xy-pic `home page'. +--> diff --git a/Master/texmf-dist/doc/generic/xypic/import1.eps b/Master/texmf-dist/doc/generic/xypic/import1.eps deleted file mode 100644 index 8f0b61238b3..00000000000 --- a/Master/texmf-dist/doc/generic/xypic/import1.eps +++ /dev/null @@ -1,1550 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 0 0 261 261 -%%Creator: Macintosh Mathematica Notebook Front End Version 2.2 -%%Title: Clipboard -%%CreationDate: Thursday, 29 June 1995 7:24:17 PM -%%EndComments -150 dict begin -/Mfixwid true def -/Mrot 0 def -/Mpstart { - MathPictureStart -} bind def -/Mpend { - MathPictureEnd -} bind def -/Mscale { - 0 1 0 1 - 5 -1 roll - MathScale -} bind def -/Plain /Courier findfont def -/Bold /Courier-Bold findfont def -/Italic /Courier-Oblique findfont def -/MathPictureStart { - /Mimatrix - matrix currentmatrix - def - gsave - newpath - Mleft - Mbottom - translate - 1 -1 scale - /Mtmatrix - matrix currentmatrix - def - Plain - Mfontsize scalefont - setfont - 0 setgray - 0 setlinewidth -} bind def -/MathPictureEnd { - grestore -} bind def -/MathSubStart { - Momatrix - Mgmatrix Mtmatrix - Mleft Mbottom - Mwidth Mheight - 9 -2 roll - moveto - Mtmatrix setmatrix - currentpoint - Mgmatrix setmatrix - 11 -2 roll - moveto - Mtmatrix setmatrix - currentpoint - 2 copy translate - /Mtmatrix matrix currentmatrix def - /Mleft 0 def - /Mbottom 0 def - 3 -1 roll - exch sub - /Mheight exch def - sub - /Mwidth exch def -} bind def -/MathSubEnd { - /Mheight exch def - /Mwidth exch def - /Mbottom exch def - /Mleft exch def - /Mtmatrix exch def - dup setmatrix - /Mgmatrix exch def - /Momatrix exch def -} bind def -/Mdot { - moveto - 0 0 rlineto - stroke -} bind def -/Mtetra { - moveto - lineto - lineto - lineto - fill -} bind def -/Metetra { - moveto - lineto - lineto - lineto - closepath - gsave - fill - grestore - 0 setgray - stroke -} bind def -/Mistroke { - flattenpath - 0 0 0 - { - 4 2 roll - pop pop - } - { - 4 -1 roll - 2 index - sub dup mul - 4 -1 roll - 2 index - sub dup mul - add sqrt - 4 -1 roll - add - 3 1 roll - } - { - stop - } - { - stop - } - pathforall - pop pop - currentpoint - stroke - moveto - currentdash - 3 -1 roll - add - setdash -} bind def -/Mfstroke { - stroke - currentdash - pop 0 - setdash -} bind def -/Mrotsboxa { - gsave - dup - /Mrot - exch def - Mrotcheck - Mtmatrix - dup - setmatrix - 7 1 roll - 4 index - 4 index - translate - rotate - 3 index - -1 mul - 3 index - -1 mul - translate - /Mtmatrix - matrix - currentmatrix - def - grestore - Msboxa - 3 -1 roll - /Mtmatrix - exch def - /Mrot - 0 def -} bind def -/Msboxa { - newpath - 5 -1 roll - Mvboxa - pop - Mboxout - 6 -1 roll - 5 -1 roll - 4 -1 roll - Msboxa1 - 5 -3 roll - Msboxa1 - Mboxrot - [ - 7 -2 roll - 2 copy - [ - 3 1 roll - 10 -1 roll - 9 -1 roll - ] - 6 1 roll - 5 -2 roll - ] -} bind def -/Msboxa1 { - sub - 2 div - dup - 2 index - 1 add - mul - 3 -1 roll - -1 add - 3 -1 roll - mul -} bind def -/Mvboxa { - Mfixwid - { - Mvboxa1 - } - { - dup - Mwidthcal - 0 exch - { - add - } - forall - exch - Mvboxa1 - 4 index - 7 -1 roll - add - 4 -1 roll - pop - 3 1 roll - } - ifelse -} bind def -/Mvboxa1 { - gsave - newpath - [ true - 3 -1 roll - { - Mbbox - 5 -1 roll - { - 0 - 5 1 roll - } - { - 7 -1 roll - exch sub - (m) stringwidth pop - .3 mul - sub - 7 1 roll - 6 -1 roll - 4 -1 roll - Mmin - 3 -1 roll - 5 index - add - 5 -1 roll - 4 -1 roll - Mmax - 4 -1 roll - } - ifelse - false - } - forall - { stop } if - counttomark - 1 add - 4 roll - ] - grestore -} bind def -/Mbbox { - 1 dict begin - 0 0 moveto % str - /temp (T) def - { gsave - currentpoint newpath moveto - temp 0 3 -1 roll put temp - false charpath flattenpath currentpoint - pathbbox - grestore moveto lineto moveto} forall - pathbbox - newpath - end -} bind def -/Mmin { - 2 copy - gt - { exch } if - pop -} bind def -/Mmax { - 2 copy - lt - { exch } if - pop -} bind def -/Mrotshowa { - dup - /Mrot - exch def - Mrotcheck - Mtmatrix - dup - setmatrix - 7 1 roll - 4 index - 4 index - translate - rotate - 3 index - -1 mul - 3 index - -1 mul - translate - /Mtmatrix - matrix - currentmatrix - def - Mgmatrix setmatrix - Mshowa - /Mtmatrix - exch def - /Mrot 0 def -} bind def -/Mshowa { - 4 -2 roll - moveto - 2 index - Mtmatrix setmatrix - Mvboxa - 7 1 roll - Mboxout - 6 -1 roll - 5 -1 roll - 4 -1 roll - Mshowa1 - 4 1 roll - Mshowa1 - rmoveto - currentpoint - Mfixwid - { - Mshowax - } - { - Mshoway - } - ifelse - pop pop pop pop - Mgmatrix setmatrix -} bind def -/Mshowax { - 0 1 - 4 index length - -1 add - { - 2 index - 4 index - 2 index - get - 3 index - add - moveto - 4 index - exch get - show - } for -} bind def -/Mshoway { - 3 index - Mwidthcal - 5 1 roll - 0 1 - 4 index length - -1 add - { - 2 index - 4 index - 2 index - get - 3 index - add - moveto - 4 index - exch get - [ - 6 index - aload - length - 2 add - -1 roll - { - pop - Strform - stringwidth - pop - neg - exch - add - 0 rmoveto - } - exch - kshow - cleartomark - } for - pop -} bind def -/Mwidthcal { - [ - exch - { - Mwidthcal1 - } - forall - ] - [ - exch - dup - Maxlen - -1 add - 0 1 - 3 -1 roll - { - [ - exch - 2 index - { - 1 index - Mget - exch - } - forall - pop - Maxget - exch - } - for - pop - ] - Mreva -} bind def -/Mreva { - [ - exch - aload - length - -1 1 - {1 roll} - for - ] -} bind def -/Mget { - 1 index - length - -1 add - 1 index - ge - { - get - } - { - pop pop - 0 - } - ifelse -} bind def -/Maxlen { - [ - exch - { - length - } - forall - Maxget -} bind def -/Maxget { - counttomark - -1 add - 1 1 - 3 -1 roll - { - pop - Mmax - } - for - exch - pop -} bind def -/Mwidthcal1 { - [ - exch - { - Strform - stringwidth - pop - } - forall - ] -} bind def -/Strform { - /tem (x) def - tem 0 - 3 -1 roll - put - tem -} bind def -/Mshowa1 { - 2 copy - add - 4 1 roll - sub - mul - sub - -2 div -} bind def -/MathScale { - Mwidth - Mheight - Mlp - translate - scale - /yscale exch def - /ybias exch def - /xscale exch def - /xbias exch def - /Momatrix - xscale yscale matrix scale - xbias ybias matrix translate - matrix concatmatrix def - /Mgmatrix - matrix currentmatrix - def -} bind def -/Mlp { - 3 copy - Mlpfirst - { - Mnodistort - { - Mmin - dup - } if - 4 index - 2 index - 2 index - Mlprun - 11 index - 11 -1 roll - 10 -4 roll - Mlp1 - 8 index - 9 -5 roll - Mlp1 - 4 -1 roll - and - { exit } if - 3 -1 roll - pop pop - } loop - exch - 3 1 roll - 7 -3 roll - pop pop pop -} bind def -/Mlpfirst { - 3 -1 roll - dup length - 2 copy - -2 add - get - aload - pop pop pop - 4 -2 roll - -1 add - get - aload - pop pop pop - 6 -1 roll - 3 -1 roll - 5 -1 roll - sub - div - 4 1 roll - exch sub - div -} bind def -/Mlprun { - 2 copy - 4 index - 0 get - dup - 4 1 roll - Mlprun1 - 3 copy - 8 -2 roll - 9 -1 roll - { - 3 copy - Mlprun1 - 3 copy - 11 -3 roll - /gt Mlpminmax - 8 3 roll - 11 -3 roll - /lt Mlpminmax - 8 3 roll - } forall - pop pop pop pop - 3 1 roll - pop pop - aload pop - 5 -1 roll - aload pop - exch - 6 -1 roll - Mlprun2 - 8 2 roll - 4 -1 roll - Mlprun2 - 6 2 roll - 3 -1 roll - Mlprun2 - 4 2 roll - exch - Mlprun2 - 6 2 roll -} bind def -/Mlprun1 { - aload pop - exch - 6 -1 roll - 5 -1 roll - mul add - 4 -2 roll - mul - 3 -1 roll - add -} bind def -/Mlprun2 { - 2 copy - add 2 div - 3 1 roll - exch sub -} bind def -/Mlpminmax { - cvx - 2 index - 6 index - 2 index - exec - { - 7 -3 roll - 4 -1 roll - } if - 1 index - 5 index - 3 -1 roll - exec - { - 4 1 roll - pop - 5 -1 roll - aload - pop pop - 4 -1 roll - aload pop - [ - 8 -2 roll - pop - 5 -2 roll - pop - 6 -2 roll - pop - 5 -1 roll - ] - 4 1 roll - pop - } - { - pop pop pop - } ifelse -} bind def -/Mlp1 { - 5 index - 3 index sub - 5 index - 2 index mul - 1 index - le - 1 index - 0 le - or - dup - not - { - 1 index - 3 index div - .99999 mul - 8 -1 roll - pop - 7 1 roll - } - if - 8 -1 roll - 2 div - 7 -2 roll - pop sub - 5 index - 6 -3 roll - pop pop - mul sub - exch -} bind def -/intop 0 def -/inrht 0 def -/inflag 0 def -/outflag 0 def -/xadrht 0 def -/xadlft 0 def -/yadtop 0 def -/yadbot 0 def -/Minner { - outflag - 1 - eq - { - /outflag 0 def - /intop 0 def - /inrht 0 def - } if - 5 index - gsave - Mtmatrix setmatrix - Mvboxa pop - grestore - 3 -1 roll - pop - dup - intop - gt - { - /intop - exch def - } - { pop } - ifelse - dup - inrht - gt - { - /inrht - exch def - } - { pop } - ifelse - pop - /inflag - 1 def -} bind def -/Mouter { - /xadrht 0 def - /xadlft 0 def - /yadtop 0 def - /yadbot 0 def - inflag - 1 eq - { - dup - 0 lt - { - dup - intop - mul - neg - /yadtop - exch def - } if - dup - 0 gt - { - dup - intop - mul - /yadbot - exch def - } - if - pop - dup - 0 lt - { - dup - inrht - mul - neg - /xadrht - exch def - } if - dup - 0 gt - { - dup - inrht - mul - /xadlft - exch def - } if - pop - /outflag 1 def - } - { pop pop} - ifelse - /inflag 0 def - /inrht 0 def - /intop 0 def -} bind def -/Mboxout { - outflag - 1 - eq - { - 4 -1 - roll - xadlft - leadjust - add - sub - 4 1 roll - 3 -1 - roll - yadbot - leadjust - add - sub - 3 1 - roll - exch - xadrht - leadjust - add - add - exch - yadtop - leadjust - add - add - /outflag 0 def - /xadlft 0 def - /yadbot 0 def - /xadrht 0 def - /yadtop 0 def - } if -} bind def -/leadjust { - (m) stringwidth pop - .5 mul -} bind def -/Mrotcheck { - dup - 90 - eq - { - yadbot - /yadbot - xadrht - def - /xadrht - yadtop - def - /yadtop - xadlft - def - /xadlft - exch - def - } - if - dup - cos - 1 index - sin - Checkaux - dup - cos - 1 index - sin neg - exch - Checkaux - 3 1 roll - pop pop -} bind def -/Checkaux { - 4 index - exch - 4 index - mul - 3 1 roll - mul add - 4 1 roll -} bind def -/Mboxrot { - Mrot - 90 eq - { - brotaux - 4 2 - roll - } - if - Mrot - 180 eq - { - 4 2 - roll - brotaux - 4 2 - roll - brotaux - } - if - Mrot - 270 eq - { - 4 2 - roll - brotaux - } - if -} bind def -/brotaux { - neg - exch - neg -} bind def -/Mabsproc { - 0 - matrix defaultmatrix - dtransform idtransform - dup mul exch - dup mul - add sqrt -} bind def -/Mabswid { - Mabsproc - setlinewidth -} bind def -/Mabsdash { - exch - [ - exch - { - Mabsproc - } - forall - ] - exch - setdash -} bind def -/MBeginOrig { Momatrix concat} bind def -/MEndOrig { Mgmatrix setmatrix} bind def -/sampledsound where -{ pop} -{ /sampledsound { -exch -pop -exch -5 1 roll -mul -4 idiv -mul -2 idiv -exch pop -exch -/Mtempproc exch def -{ Mtempproc pop } -repeat -} bind def -} ifelse -% Here are the short operators -/g { setgray} bind def -/k { setcmykcolor} bind def -/m { moveto} bind def -/p { gsave} bind def -/r { setrgbcolor} bind def -/w { setlinewidth} bind def -/C { curveto} bind def -/F { fill} bind def -/L { lineto} bind def -/P { grestore} bind def -/s { stroke} bind def - -/MFill { - 0 0 moveto - Mwidth 0 lineto - Mwidth Mheight lineto - 0 Mheight lineto - fill -} bind def - -/MPlotRegion { - 3 index - Mwidth mul - 2 index - Mheight mul - translate - exch sub - Mheight mul - /Mheight - exch def - exch sub - Mwidth mul - /Mwidth - exch def -} bind def - -/Mcharproc -{ - currentfile - (x) - readhexstring - pop - 0 get - exch - div -} bind def - -/Mshadeproc -{ - dup - 3 1 - roll - { - dup - Mcharproc - 3 1 - roll - } repeat - 1 eq - { - setgray - } - { - 3 eq - { - setrgbcolor - } - { - setcmykcolor - } ifelse - } ifelse -} bind def - -/Mrectproc -{ - 3 index - 2 index - moveto - 2 index - 3 -1 - roll - lineto - dup - 3 1 - roll - lineto - lineto - fill -} bind def - -/Mcolorimage -{ - 7 1 - roll - pop - pop - matrix - invertmatrix - concat - 2 exch exp - 1 sub - 3 1 roll - 1 1 - 2 index - { - 1 1 - 4 index - { - dup - 1 sub - exch - 2 index - dup - 1 sub - exch - 7 index - 9 index - Mshadeproc - Mrectproc - } for - pop - } for - pop pop pop pop -} bind def - -/Mimage -{ - pop - matrix - invertmatrix - concat - 2 exch exp - 1 sub - 3 1 roll - 1 1 - 2 index - { - 1 1 - 4 index - { - dup - 1 sub - exch - 2 index - dup - 1 sub - exch - 7 index - Mcharproc - setgray - Mrectproc - } for - pop - } for - pop pop pop -} bind def - -/Mnodistort true def -/colorimage {Mcolorimage} bind def -/image {Mimage} bind def -/Mleft 0.000000 def -/Mbottom 261.000000 def -/Mwidth 261.000000 def -/Mheight 261.000000 def -/Mfontsize 12 def -/Plain /Courier findfont def -0 Mbottom Mheight neg add 2 mul Mheight add translate -1 -1 scale -%! -%%Creator: Mathematica -%%AspectRatio: 1 -MathPictureStart -%% Graphics -/Courier findfont 10 scalefont setfont -% Scaling calculations -0.378378 0.27027 0.378378 0.27027 [ -[ -0.001 -0.001 0 0 ] -[ 1.001 1.001 0 0 ] -] MathScale -% Start of Graphics -1 setlinecap -1 setlinejoin -newpath -[ ] 0 setdash -0 g -p -p -.002 w -.10811 .37838 m -.10811 .38463 L -s -P -p -.002 w -.24324 .37838 m -.24324 .38463 L -s -P -p -.002 w -.51351 .37838 m -.51351 .38463 L -s -P -p -.002 w -.64865 .37838 m -.64865 .38463 L -s -P -p -.002 w -.78378 .37838 m -.78378 .38463 L -s -P -p -.002 w -.91892 .37838 m -.91892 .38463 L -s -P -p -.002 w -0 .37838 m -1 .37838 L -s -P -p -.002 w -.37838 .10811 m -.38463 .10811 L -s -P -p -.002 w -.37838 .24324 m -.38463 .24324 L -s -P -p -.002 w -.37838 .51351 m -.38463 .51351 L -s -P -p -.002 w -.37838 .64865 m -.38463 .64865 L -s -P -p -.002 w -.37838 .78378 m -.38463 .78378 L -s -P -p -.002 w -.37838 .91892 m -.38463 .91892 L -s -P -p -.002 w -.37838 0 m -.37838 1 L -s -P -P -0 0 m -1 0 L -1 1 L -0 1 L -closepath -clip -newpath -p -p -p -p -p -.006 w -s -s -s -s -s -s -s -0 .95591 m -.04471 .93809 L -s -.04471 .93809 m -.10223 .92042 L -.16426 .90735 L -.22976 .89945 L -.29759 .89604 L -.36661 .89539 L -.43563 .89515 L -.50347 .89293 L -.56897 .88661 L -.631 .87445 L -.68851 .85514 L -.74051 .82769 L -.78612 .79131 L -.82454 .74525 L -.85514 .68851 L -.87737 .61911 L -.89086 .53158 L -.89539 .38059 L -s -P -P -p -p -.006 w -.89539 .37617 m -.89664 .27804 L -.90039 .21894 L -.90657 .16913 L -.91507 .12436 L -.92574 .08289 L -.93841 .0438 L -.95286 .00657 L -s -.9558 0 m -.95286 .00657 L -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -P -P -P -P -p -p -p -p -p -.002 w -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -.69595 1 m -.77208 .69545 L -s -.77208 .69545 m -.85135 .37838 L -.92484 .08443 L -s -.94595 0 m -.92484 .08443 L -s -s -s -s -s -s -s -s -P -P -P -p -p -p -.002 w -s -s -s -s -s -s -0 .93436 m -.03574 .92926 L -s -.03574 .92926 m -.10219 .91976 L -.17568 .90927 L -.25494 .89794 L -.33864 .88599 L -.42532 .8736 L -.51351 .861 L -.60171 .8484 L -.68839 .83602 L -.77208 .82407 L -.85135 .81274 L -.92484 .80224 L -.99129 .79275 L -s -1 .79151 m -.99129 .79275 L -s -s -s -s -s -s -s -P -P -P -p -p -p -.002 w -s -s -s -s -s -s -.02703 1 m -.03574 .99129 L -s -.03574 .99129 m -.10219 .92484 L -.17568 .85135 L -.25494 .77208 L -.33864 .68839 L -.42532 .60171 L -.51351 .51351 L -.60171 .42532 L -.68839 .33864 L -.77208 .25494 L -.85135 .17568 L -.92484 .10219 L -.99129 .03574 L -s -1 .02703 m -.99129 .03574 L -s -s -s -s -s -s -s -P -P -P -p -p -p -.002 w -s -s -s -s -s -s -s -s -s -s -s -s -s -.56757 1 m -.60171 .96586 L -s -.60171 .96586 m -.68839 .87918 L -.77208 .79548 L -.85135 .71622 L -.92484 .64273 L -.99129 .57628 L -s -1 .56757 m -.99129 .57628 L -s -s -s -s -s -s -s -P -P -P -p -p -p -.002 w -s -s -s -s -s -s -s -s -.15505 1 m -.17568 .97937 L -s -.17568 .97937 m -.25494 .90011 L -.33864 .81641 L -.42532 .72973 L -.51351 .64154 L -.60171 .55334 L -.68839 .46666 L -.77208 .38297 L -.85135 .3037 L -.92484 .23021 L -.99129 .16376 L -s -1 .15505 m -.99129 .16376 L -s -s -s -s -s -s -s -P -P -P -P -P -.02 w -.10811 .91892 Mdot -.91892 .10811 Mdot -.73874 .82883 Mdot -.82883 .73874 Mdot -.25747 .89758 Mdot -.89758 .25747 Mdot -P -% End of Graphics -MathPictureEnd -%%PSTrailer -end - -%%EPS Trailer diff --git a/Master/texmf-dist/doc/generic/xypic/kris.eps b/Master/texmf-dist/doc/generic/xypic/kris.eps deleted file mode 100644 index 173f4e20770..00000000000 --- a/Master/texmf-dist/doc/generic/xypic/kris.eps +++ /dev/null @@ -1,587 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: /net/tyr/home/tyr1/kris/Kris/pictures/kris-icon.ps -%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley -%%BoundingBox: 0 0 66 86 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%BeginPreview: 92 119 1 119 -% 5490000000003fffffffffff -% 5249000080123fffffffffff -% a924000124085fffffffffff -% 5210800041412fffffffffff -% 55450005bebb5bffffffffff -% a810802af7fed5ffffffffff -% 52a20017ffff7affffffffff -% 550840b5ffffedffffffffff -% 905100afffff573fffffffff -% 550485bffffffeefffffffff -% a950417fffffff5fffffffff -% 920217dffffffd7fffffffff -% 54a88abfffffb2afffffffff -% a90457fffffffc7fffffffff -% 52522efffffffffaffffffff -% 94809fffffffffffbff7524f -% 29143ffffffffffffffc000f -% a522d5fffffffffffffa800f -% 284977fffffffffff4fe040f -% a510adffffffffffdd3f010f -% 2a4357fffffffffff36fa00f -% 512a57ffffa75ffebcbf800f -% 5484b6ffff54af53febf400f -% 89156affff454dedd56fc00f -% 522aedfffe9256b6ff9fe00f -% 95456bfffd44894d766fe40f -% 201b72fff5505202addfe00f -% 048a7fdffa0204295b37708f -% 0014eabfd550008255dbb22f -% 000afd57a02008095137a88f -% 005cbd3fe808000254afd00f -% 005aa92a80020000a12ad00f -% 003ab555e1002204a84fd00f -% 005e2ea1000000414801a88f -% 0078f50a480000045257500f -% 00fb9ae000000002a002f80f -% 00f6fc90000000080883524f -% 00fff54000000012a029f5bf -% 01fff948000001200003bfff -% 03fef42000000000a909ffff -% 03fff940000000804005efff -% 07fd7a12000000000883ffff -% 03fdfc40000000001003f7ff -% 07fff11000000000452cffff -% 07fffa40000000001242bfff -% 07fff9900000000000a8dfff -% 07fffb400000000008053fff -% 07ffffa0000000000000afff -% 03fd6ba00000000000023fff -% 03dcffc20000000040005fff -% 039836d0000000000080bfff -% 03525f800000001000093fff -% 03009f1a0000490000003fff -% 0300bf06800914000002bfff -% 03102c41d0402a4800007fff -% 030055003401ff0200b73fff -% 050001000c0755a0022d7fff -% 020004200304022009ffffff -% 05000100008bc89003efffff -% 03000000006282004f80ffff -% 05000100002280081650ffff -% 03008400002022400d667fff -% 050000400000080819ccf3ff -% 01000004002000080886ffff -% 004000000040000010097fff -% 02800400000000080920ffff -% 008001000020000000047fff -% 00c0000000211012044107ff -% 006000040020000010100fff -% 00e000000000000001000fff -% 007001000010008008020fff -% 007808000008000000405fff -% 047c0000000401200408bfff -% 003e0000000294000402ffff -% 007c8100000000000301ffff -% 003c000000000000014bffff -% 007c0800000000080010ffff -% 003e0020000000000200ffff -% 003c0200000000800444ffff -% 001c0000000000010800ffff -% 002c0000000000083401ffff -% 00090000000000015013ffff -% 00180200002000004505ffff -% 00040000000800001043ffff -% 00080800002080000007ffff -% 001a0100000210045427ffff -% 000c000000100121000fffff -% 003c000000000004680fffff -% 003d040000040011c00fffff -% 003e010000008000201fffff -% 002f000000000000809fffff -% 002f000000022001403fffff -% 003b80000000000a803fffff -% 001fc10000000002417fffff -% 000ca0400000012080ffffff -% 000ce0000000000502ffffff -% 000350000000000011ffffff -% 0002a8000000002487ffffff -% 0000d4100000000007ffffff -% 0200aa00000000010fffffff -% 00004504000000841fffffff -% 00002a81000000201fffffff -% 00001540000020013fffffff -% 00000540400000043fffffff -% 00000a50000000007fffffff -% 000000a810000000ffffffff -% 0000010200200004ffffffff -% 0000008a02000000ffffffff -% 0000001480080401ffffffff -% 0000002540020007ffffffff -% 0000000aa0800017fffffdff -% 000000012001508ffffa00ff -% 0000000290040b7fffd100ff -% 000000002000eafffff400ff -% 00000000200255ffffc840ff -% 00000000500082fdfff512ff -% 00000000200000fffffb55ff -% 00000000000003ffefffffff -% 000000000000077fffffffff -%%EndPreview -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% define space for color conversions -/grays 92 string def % space for gray scale line -/npixls 0 def -/rgbindx 0 def - -% lower left corner -0 0 translate - -% size of image (on paper, in 1/72inch coords) -66.24000 85.68000 scale - -% define the colormap -/cmap 256 string def - - -% load up the colormap -currentfile cmap readhexstring -00 01 02 03 04 05 06 07 08 09 -0a 0b 0c 0d 0e 0f 10 11 12 13 -14 15 16 17 18 19 1a 1b 1c 1d -1e 1f 20 21 22 23 24 25 26 27 -28 29 2a 2b 2c 2d 2e 2f 30 31 -32 33 34 35 36 37 38 39 3a 3b -3c 3d 3e 3f 40 41 42 43 44 45 -46 47 48 49 4a 4b 4c 4d 4e 4f -50 51 52 53 54 55 56 57 58 59 -5a 5b 5c 5d 5e 5f 60 61 62 63 -64 65 66 67 68 69 6a 6b 6c 6d -6e 6f 70 71 72 73 74 75 76 77 -78 79 7a 7b 7c 7d 7e 7f 80 81 -82 83 84 85 86 87 88 89 8a 8b -8c 8d 8e 8f 90 91 92 93 94 95 -96 97 98 99 9a 9b 9c 9d 9e 9f -a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 -aa ab ac ad ae af b0 b1 b2 b3 -b4 b5 b6 b7 b8 b9 ba bb bc bd -be bf c0 c1 c2 c3 c4 c5 c6 c7 -c8 c9 ca cb cc cd ce cf d0 d1 -d2 d3 d4 d5 d6 d7 d8 d9 da db -dc dd de df e0 e1 e2 e3 e4 e5 -e6 e7 e8 e9 ea eb ec ed ee ef -f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 -fa fb fc fd fe ff -pop pop % lose return values from readhexstring - - -% rlecmapimage expects to have 'w h bits matrix' on stack -/rlecmapimage { - /buffer 1 string def - /rgbval 3 string def - /block 384 string def - - % proc to read a block from file, and return RGB data - { currentfile buffer readhexstring pop - /bcount exch 0 get store - bcount 128 ge - { % it's a non-run block - 0 1 bcount 128 sub - { currentfile buffer readhexstring pop pop - - % look up value in gray map - /rgbval cmap buffer 0 get 1 getinterval store - - % and put it in position i in block - block exch rgbval putinterval - } for - block 0 bcount 127 sub getinterval - } - - { % else it's a run block - currentfile buffer readhexstring pop pop - - % look up value in graymap - /rgbval cmap buffer 0 get 1 getinterval store - - 0 1 bcount { block exch rgbval putinterval } for - - block 0 bcount 1 add getinterval - } ifelse - } % end of proc - image -} bind def - - -92 119 8 % dimensions of data -[92 0 0 -119 0 119] % mapping matrix -rlecmapimage - -887b857f84988b9c96988b989d999ab1bbbca8bde2efee01ee8ef4f2f1dfe1e0ddccb1ab -aac7dbe0cb83cbcccdcc8dcca5bab0b5b7bf945b020403000283020001001f00 -8a768378809e99989c9ea29889989cafb6b7b1bfd8f0ee01ee8eeff1f0dfe1dad7c9b6a9 -bdc8cfd1cc8ecccdced0cca6b0adb6bbba8f6a080004008103001f00 -847f787283948a949993a7a69a9b9dabacad84adb9deefee01ee9eedefebe0dcdddacaa7 -969aadb9beaeb7c3c9cdc0a5acafb4b6bd91740a08008400030502002000 -9482897a8a96959996ab9aa39da5aeaaaba6bcd9f1ee01eea1f1e9e3e0ddd8c3b4928999 -a5b5cab4a8a0a9b7b6a3a2a9aaa6aea58a8169412d10002200 -01800177909899989da8a299a0aaacaaabaab6d1ebee96eeeff2d9e2cfb0b4a594757173 -5d7278616c6d6374696c8f6c88728d9c84776d6859563428320600010082020100830002 -01001600 -8e8e82817e96989a9eaca3a4aca8abaa01aaacb4cfeaf0eeeddcd3cfae9f968877725049 -2e4e58413b12275a182c5844564d656b776f73868e593225000b0e0001008102001900 -8f8081837f9a959a99a89f9ea4a5aaabaa9baab1cce8f0ece0dec0c59d7f6a65575c2317 -0914230b1306253f000d960d3b091c53516a4e606b807231432903060100010e09001800 - -8f898a8d849d979c98a696abaaa3aaabaaa3aab0cae8ece2d7c3a97d6c75887354200403 -000100010400030100090004012345476a6682666b6685665d45310400870003010a0009 -16001600 -a086958b8c9a9c9a96aca9a7a9aaacabada9b3cdeadad5a9957173816e433b3300028102 -000b009a4b77736f576c53656e706252583a37223005150a0d0005040002001100 -8986818c83988e9597a5a901a995a8aaacb6ada9c8e0c9a79173706f5c4b3b1b06020900 -0b009b022c60413c4d502b535774716d585c3d300610323f4b00020a0204001100 -a184998d869a9c9e979b9fa6a9a4a9aeb7b0a8c1c9a496806d69424d571e0d030b040009 -0001020100824811008f00333f5b5567635a6b31170002001100010083081e0e001200 -81848783878b949998999caea9a5b0aaaba7abada9b4ab9a7e736e585566401929000d00 -81020083001f36048b0433536d68706255452e01008100010301840f2b260c0085000301 -000200030084030002010082000401 -908f8487898f9b9998a79fa9a59faab1b9ac01ac8b99806162427177591a0003000d0001 -019108103d4166767d9998747162560a130001000300870900051e180b06000800850102 -00010401 -8282838882888d9997999aaba0a499a3abadb2aca09b956f43415e6647090001000e0081 -02008700100d22466a8b9c849c756a545f895f4f463c281b030100048604000c18305e00 -82000200040081010001008102000000 -9c8e8287898f9b9896a4a6aaa0abadaaaeaa9c8e84493b495929160306000f0001028200 -04009c0003060d0b0a0604082f55686a675d36050401030008110c284f1f050481040302 -03870b1710191f2e2f36 -86898b8981909a999799a7a6a3a79eabafaca39587692c445e33110018003d17001b0089 -03072a38423e634a0f00900003000102123e565365697c898b90958f858f9294929ea5 -9b938f908993999a999fa9ac9da7aeb9b499836e4d353f4d25002a4e0282021a001b0001 -0294002a1a343a2b23162d190f000530366273799faab888b8bbb7bcc4c9c3cbc900c9 -8e999790889b97989aa9a8a999aaada98fa97d7155506c754a241130191e0007001b0081 -03000100921e31324443556f35310423000435608ba7bece01ce86cbcdcfcecfcdcf00cf - -9e89938c879398969aacad9b9a9faba89472635f586266333f0002052a00030081000181 -010004008c03060100010004000100010300830001050002009c09000110222741486460 -857832160007121f5395c4cbcecbcccbcac9cc01cc00ce -a0898e838a9c9d9896a2aba6989aaa9d857f7b777977525f180600082604000102038103 -0005008603050d0002000301038105010101820003009e00080b040300023e514d466974 -948f987852300d3c3563c5cccbc7cccbcacc81cccb81cbcc -988b8f878e9897969aada6aea3a9a3837c897e8482686b2f010081000383030002008100 -018101000100910500060b0416461700204124140302010002810200980006010e062f19 -4b3c4e426f797781808273624a352c3493cb82cbcecd01cd84d0cdcecfcb -9e8c9c85899799979aabaea5a7978582a28b8d797b845b0c2c2d03002429040181010381 -03000200b5030a56697fa1683047748492696809061831394c4146524660535b5a442a62 -6b828d75654c4e4a1600426ea1d3d6d9dadbdad9dde2dd -858880858689999a9996a4a89d9e8e8b8e9887826c628747467c21001758310c00010003 -00b61c002f768295a69563827c7b928184443f474b5963607081513a5369555335536070 -8589695150152510226087c8d0ded8dbd4dadfd4d7 -8a9794928d9c9a969eaca9a197a19e85977e7a6e2d8166688b961706034a180902000402 -008e00085035668e8fa7aca57b8c957b89a28986674b504642525e696a696e3631495149 -545169718f785d4f2e1924122d60b7d9d086d0e1dadcd7cadc -9d9095948e8f9a989aa8aa9d9c84816c8b754f237f4f8596540c214a2101008200010002 -00b70b614e748192a5aaa4918d989188909967656f7e6765676067625b6d272b51453943 -5d70818872643d3505140324a9c6d9d0ddded7d0cbcf -9d8a968a9190969b99afab9ba08c5c7c78634d387b7a9c5b462d00080006008100018201 -2100b8003c667f667d8398b4b99e9687a0a79e91888e84968c8a858a7879855d5f3a6758 -5b525a7170847163242146130a216fd3d5cddadde0d4cbd9 -b1989e9d9aa09ca0a7afa9ae9775848075844a425b8d88453c4d200c143b0d000218341d -42556b9596938b97929da9b2b1aa9aa79aa891a698aeb3b4bca997958a887c785f617c4e -546178678c64531d0a2e4f2e3d90cfd5d7e0d0dd81ddd0 -babcbebfc0bcbfc1beb2b1a59c6e82689b8852223773625475251e542c54000600114c53 -4f7a628b97b09cabb2a8aab9c0c8c1bdba9a989da9aabdbba0bb929798908788786c866e -4c4d985e616c6f26031b7344267ecdcac8c5cad0cdc5 -96eeedf3f5e9eaebe8ddcdbc977072989d783e2e645b5468bf68676b615e4a0f00021a42 -655f9b9597a1a9a6999fc6cfd9dad3cdd3c3b0abadbeaebab7b0a9a1999d8a7c7f719188 -835475745d5663720a1167714467a8aaae84aeaca1a0a9 -dbeeedf3f6ebecede5dbcfc587727ca89a62223a414b5669819b8470575f150e083b646c -939db5b8aeac9d999ccddddbdcdad2dcd0c1c4d1cac8bac1bba5aa9d94837e7b769a9b97 -7d78766c5f665b4b004b896f6aa5afb0b4b0b3b8bd -afebecedecefeeebdab089975c648a9895545e662f49608f90999c6b4a434c5037456287 -9aafbdc4cec4bcc2c3bcc0d2dea5dedbd2d4c7c6dbdccfcdc7caa8aba5949285898f92af -a7a07e877b66564b5339047e8a7ababb85bbc0bfbdbbc3 -02f09aefedeee9daaa807a4e6188809b787e6155698e94929f94746a686592655f3a889f -b0cdc8cec9cfcdd2dacdbbb9c7db8bdbcccfd4c7d8ded9e0dfd1b198b1ac9e8d7a8d9c90 -b0c0b39e8f958c66564a57125a9f77bccd82cdcecd82cdcfd1 -aae4dae9f0edf1e8d9a88e6a376e687e8fa188566389878a838788718b91856973536ba7 -cdcad2ced3cbd6dbb0dbdfdcd1c4b7c3c2c8e0cbd5d8d6d9ded1bbaea9978487899b91ae -bebaa9a1a297695d675c425a8674b6d0ded6cccacdde -a6dabce8ebecedddd2b4926c353e5494a99b8267716a5e78828c8f97a2a398847a939d91 -adbecdcc82ccdedf82dfdbdd94dddbd9d1cad3dee1d9d1d2d8d3dbd9bcadaa9599898489 -9299b9bb94bbb8a9a7ac99776b4968588d7baed0cdd7cfd2cfd4 -acdab1e6edebecddd1a0643c184477a39a837d776a50736f7f95aaa5aaa9a3aca3afb9bc -b8bcb7d0cadbdce2e0de02de9ad9dadfd9dbe1d6c8ced7e0dac0aea19a968b868da4bbc2 -c4b8b4aa90aa9d7f6e576b598370b2cacdcbcfcdcfcd -a5e3d5edebedefdbc368241c2f6b7e6a65567865396a7d8b8f6a7093a3b3bccbd3c7d6d3 -dee1de81dee387e3dedce4dee8f0ec85ece5e4f2e6df93dfddd1cfc3b9a698979d8a8e9b -9cb3bdb8c6bebb91bbbfb59d33597d51674aa3cbc8ccc7cdcccd -9fe6dbecedf2efe6ba2a0e2d1f536e6a6c63573c445a67a3946c8592a4bac3cbd688d6e1 -dcdfdee8e9ecf19ef1e9e3edefebe1edecf0ebeeefe5e3ddd9bcc09baa9f9b9496a0acb4 -cac2bc93bcbdb7c9c1ab5a49796671468bbdb9bbb9bbb8b9 -84e6d8eaedf29cf2d88f000400063052483c472c2b3c5076ad858782a0b1becac9d4dedb -81dbde01de87e8f0e9e5f1efeae7a2e7edeee7e8f1efeee4dccebcccb79ea8abb8a3adaa -a8b8bdd0c3b4bfb8bfbcc38628528a526655747c726a686a6760 -a0e3d4e8edefdcc25f0c00070035131f184207182e4b92b78c848da9b1c5cfcbceda86da -dbdee1e6eaeeb2eee4ecedf1f0eeedeeebdfdee0ded4c4c5bda79ba4b2c0d1aaaca7aebd -cdc9bfb6bbb9bfb4aa90132841513f480d00010001000000 -88eedae9eee8bb6808000100960301032d660f1423027095a79d8b9a95b9bdcfcededadd -83dde1e7ef88efeeeceeecedf1f0ee89eeeff0ecdcccbfb2acaa84aab7c1d3dc97dccdb2 -9da5a9becad3c1babcb7ab9c958a6b0b06425256058105000300 -87ebdee9f3dfaa28000200960100385966323c121171969ba69899a5b8c3d0cedadfdb86 -dbdae9e3ebedee06ee81edef9eefe8d6c7b7bec8cddcdbdddee0d8bf96a6a5bbc5cacbbb -cccac8be9d9c330086003d554d0301000300 -a9f0e0e5f6cd823000150200012d49666a55493201648baeb0ac94a9adc1cdcad9dddcdf -e1eeecf0eeedee05ee86edeeeae0d5ccd485d4dddbdddbdc85dcdedbcba79c889cb1b7ca -d0c2c5cbc98ac9ae5e000d0325475a02000400 -89efe0e5eed4830900190001008e42566862534b3849558dadb6b79eaa8eaabdcdcedfdd -dfdce3ede9edecf0ee06ee8bedece6e9efe5dedbdcdedfde92dedbddc6be9d98a2a8b9cf -cacdcec5b78139188618070e556908000400 -86ece3e5e9c84e0002009b0108121f454845000a416eb0a1adbbabb2abc8ced5dbdfdee2 -f0f6ed82edeaee02ee86edeff0edefeeef85efedf2e5dedb82dbdcdd03dd93c0cfbbada8 -948d97becab4a089918f933b42004083400002000300 -88f0dfe4ebad4f0701008200030085000b231b19009500357db58483b2a5aaa9d0ddd9dc -dedcedecedf2ebee09ee01ef87edeee2dcdfdedcdd01dd97dbdecccbc9baa9b49e8a8f99 -9899979ea79e5467425224018101000300 -88f3dde7efb94a1f01000100850a06110607008d00191370aa65679f8dacbbd7e3de8ade -dddcf4e6dae4e5f0e2ee01ee8fefeeeceaedf0edf0eeefecede3dfdedd02dd81dacc01cc -8db6acb8b5aa969d9a999497a597758375644a058105000400 -86f1dee2e8bf2e00820004008200120001009a010200140a4c974e278178a9b9ccdcdedd -dedfe4ebece1e8eee9ee01ee88edefebe1ebf1ecf0ee86eeefeeeae1d9dd03dd81c5cd94 -cdcfbbbdb7b6bec7bec0a9a09c94868070650001000400 -8af1e1d8f3d4522d0e0006009300030007110c1f0f3c2c6750017778a5bbe2d7dd02dd83 -e3e8e3e48fe4f6e4e9f1f0ebeeefe3e8f1eeedefeca1eceef0eaddd8e1dbdfdebcd1cbcc -d1d6cdbebbcdcacdc5ba9e979e8a7772090203000300 -9ef1eae0f1db7c2205010b381a00176e574359427a56594c044f6d96b7d2dfdd04dd89e6 -eadbe8e1dbe7e4f0ed85edecefeaefed81edff83fff6eeef82efe4dc9adcdeddd3caccca -d8dcdececddbd9cdccc4afa5ac986855000201000300 -81efee85eeebe8a5340096005c7c1c1571b4d36e4538347156400f22749abad1d6dd02dd -01e081dfde84dee5dcdbe682e6edef88efe0e9f0ecf0f8feff92ffefeeefdce0dbdfddd9 -cbd1cfd8dbdedad5dd85ddd2c9bfb1ab84ab97574300820003000300 -9eeef1f0eceabd240b2d8994324c94bfe186695903550065701475a0bbcfccdd03dd86e6 -ded9e0dde0dd8addedeeefeee2dee2efeced83edfaffef9eeff0dfdedcdddee0dddfe0de -e0dbdecedde0dcd1bfafa8a789361d010001000300 -01eea5ecefecbb560269afae6f8eb9acbb9a927f3c2901002192a1acc5c6cad7dbe0e3df -dee5dddedd84dde1e2eae08ae0d9d3dfdbd8e1dee1e8eb85ebecebdbdfdd06dd8fe1e0e1 -d4dbdadccec3b1a5aa936211000600 -01eebcecefe8ba6301b4cfcdbbbfb7a095acba8c660c0004599db6a862509bb9e1dfddde -dbdfdee7deddded3d1d2c9cbcec2b9baa9bbb8babdcfdce9d9dadbdd06dd83dfdbcedd01 -dd83cbc7b0a984a98a7201000600 -01eeacecefe6ae5329c8d2cabddfddc99c8981603c2b43407bb2bdcebf8549477bcce3de -dbdfdadeddd7d3c9c7c5c4bf8fbfb4a69b8c949eabbbc3c1bec6c5d9dd05dd01da8dd0ca -d5d8e0ccbdaca9a2825c01000600 -89eceef2efe3a74a47dbdab7dac8dfdad9baad79655733578885b8c9cad1cac3a1653a8d -b7d4e3e0d9dac8ccbdc3bdc7b7b8a9a37f8c868289a6bac7aab9c3cfd6dfe0de86dedfda -e3d0cbcc01cc88c4b7ae9baca57e19000700 -acf9f5f0efe098595cdde0d7c9dcded5c7abb29697757e8c87b2c7d1d0d2dddbc5946b3f -67c4bfd1cdc6d6dadbcf93cfbe7f34190c110b15326ab0b7bcbea8b6ccdedc81dcdb8fdb -ddd1ccc0b8ae9c84987678919f7a000800 -a8f0ecf0efd7976f6cdcdfd4d5ece3e2d1bbc7c0bbac9daa9dc5cecbdadddedfded8c1ad -714a60b2d3d9aad9e0e5d0824d5d86958980746f7561529fbfbbbcc3cee1dfdddfd8d7bf -bba39f988a664b677a86957f04000700 -9fecfdf3f0cb988d8adedbd3e0f1e5d6ced2e3d0d6cbb3ac9dbec9cccedddfe0deaadee1 -e2dfcaa46463cadcdadf876493a7a4ada8a5b19c9ea3b28d5db8d4dddfdee5d9d4ccc6a8 -9973492d07890709023743524b0002000600 -8df1f2f1eebb8f7f70e5dbe0eee0dd03dd8adacfc9bb9d9ac2cecbd0dd04ddb2dadee5dd -c9979fbce2d69e774d8e718fc4ada2aba1aab4b2988cdbdde2f3e6d4d0caae7b53270a27 -58755a3b330500150001000600 -98f7eff5efb88a774edfdee9e4d7e1dfe1dbded3c9cfbaa6a3c985c9d2d7dddedd03dd93 -e4dfdeddd08f6d77d5b19d5789739ddef4b2a9a89da8bebdc1a2d9deebe0ccc4b9ae8471 -10047794a1b5b9ada96e37040201000600 -88f6eef2eeac8b753fdb93dbe2d7e7eff0ded6ded4d6d8c9b9b8c7cadfdcde81dedd02dd -81dbed9bedf2dddbcdc067a2c5b6896b7cb3f1e1cfaea5b7d0c4cab6acdddedc95dcc4b4 -7b9d47248d9f999da2afbbc0ae6200010001000500 -9bfdebeae8a08e7537d5dddeddeeedf2e8cdd4e7dad7c8b5bccccfdadd05dd97d9deebec -efeae2cb6dc7dbdde0d6cac3b9c1b6bebcc9cecc9cccd198ccdce1ddd4bc95635a78857a -4fa0af718a91b1770706014903000400 -95fff8ecd9a2958547ccdddadcedefeceed8e0eee0dcca02ca82d7dedd05ddafd7deeef2 -eae8dda885d1dfdddfe0cecac0b8b3b8bec9dddacec988cbdcdedddac36366b68b58335c -aad3756587957a048504018d9b54000300 -9bf1e9eddbc1b6a96fc6dbdde6e4f2edefdde9f1e0dbc9cfcaccdbd6dd05dd8dd9e4f0ec -e5eeeaa3acdedcdbd8cc88cccecabfb7bfccd8db98dbd2b286d3dddcdddec35b79aea49c -768ebcc382685e977b038403005a44000400 -82f0eee996e9dac9c69aa5d6dce3dde4e1e5d9ecf0ded3d0c9cccfda81dadd05dd8adfea -e9eeefeee3a2aae0dc01dca8d5cdcac4c8d0d9dfe1d6deddcc95c2dcdedddccb769fbdcb -d2baa9afad9f978aa778040500040005000300 -01ee8beff0e1dcc8b37accdfd6ddec87ecddc7e6f0decacc8fcccad0d7dfded4ccdbe0dc -dee0edeff08df0e8deaeabdcdad6cbcdd4dedcde95dedcddd6d4dddcc8a7cdd8dddcd6c8 -a5b4babeb8b9bc01bc8bb0aab6b9440e2300170004000300 -01ee01ef89e9dbd0c05e99d4dde4f091f0ebd3eeefe5cacccbcad0d2d9d6d0cdd9dc83dc -dde0edb2edecf2e8e6b08fdee3dad3dadfdedfdadbdedacededddbb1c1cdcfd9ddd7cfa9 -b4babcbbb4bbb9b7adb0bcb8685a720f5b01000400 -02ee01ea89dbd3c35f50c0e0ecf0ed8cedd9ecede1cbcccbcdd0ddd9d588d5d3dddee9e8 -edf1f0b2f0eee7dcc976d2dddeddd0dcdad3ccdcdddbcedcded9a1c6d7d1d8e0ded1b2b0 -bbc8c2babbbab8c2bebcb6b0c4c683840002000300 -01ee96f0eaecdbd7ca81088bdaeeefecf2deecf1dfcbcccacbd881d8de86decad0dcdef0 -ef81efeb8aebeff1ddf0e26cc4ddd9de84dedfdad4e08ce0dbdfd8d9e4dda5c9dbe0dfdd -83ddcfb8bc83bcc0cdbb02bb8acdcec9bdd6f9fbe04603000400 -02ee8aeff1eee1ce890927bce7ef97efeaefe1efdfcdc9c6cedddbdce0ccd8dce2dfe4e9 -e6e8ef87efece5d8a69edfde82dedbd085d0cbdfe0dbe1a0e1dcedcbd2dae0d8d1d8d3d1 -c6afc2c7beb6bec3c9cdc7bfc2f3fdffe84d0004000300 -05ee8bdecfa6010035d0e0dcdeebf08bf0e0c9cabccadfdce0dbcddda2dde5eee0dee8f0 -efeeedefe9daa4d8e0dbded5d4d7dfecf0f3dec5b0d5e1dbe1dedadc95dcd5c9afb7c9ce -cac2c6bfc4c9b9c0fcebcfbd0003000400 -01ee88ecefe5e0d7ceab320092008dd2dfdeebecf1dfc9cecacdd4deddded8df92dfdeee -def0f4e2eaedefedf6e8daa0d5dcdfda98dae0dde5e0dcbcb3cbcfd1cbd4dee0dedfdad8 -aeb9c8cbcacc8bccc9bcccc4b996a0ab4907000500 -01ee88eff2d2acd2cbb476028b021589c9deeee9f4d9dfd2cabccadadce2e0d9e2eadcdd -e3e6f0dde8edf0edeceee9b896c9dfdbdcd6dfddd9a09dcecdc7cdcad7dbdedfdadcd7b5 -adcbcacbcecbcac0b9bca84f964e000700 -01fc89fdffdbbae0dabd8d0c008c00389accdce1dfddd3cdc6d1dd8fdddcdddbdfe1e4f0 -efeeede6ebeceeef81eff08ff0e7ba898cbccabdbc969bb9cccec9cd99cdd6dfdadcdfd8 -dcd8bd67bdc9ccc8cbcacbc0b89d79320004000600 -01fe01ff82e2bede8adec38e07040132b3bab8bb94bbc9cbcdcacbd4dedfdbdddcdee0ed -eeecf1e7eeef02ef8eeee9e7dcd6c8bbbcc7ced8c1c6dddc85dcded0daddde95deede5dd -d7cba3678dc6cecbcacbc1ac6a00060007000600 -01ff89feffebcde3dcbf8c0d008b003bb3cadde0dfcac9cdcacc84ccd8dcdedd9adddbe2 -f1edeff0ebedf0f1ecedeadde2dbcad0dfe6f2e0e4cacedf01df90dbdedde0dcdbf3eadd -d5ccaeb07f8faab685b6a185505f0082000d000700 -03ff90e7cde1dac4810a070041a9cbdcddded2cd01cd8ccad9e0dddbdedde4ebedefeaef -02ef8ce4dfdde2dfd2cad4daedebefdd87ddd9cbdbe0dbdcdd95dddee0e2efecd9ddc8ac -b9ccaf968b7f8ba2aeaf03018101000700 -03ff90ebd6e6dfd09811010044adccdbdadedbcda8cdcac9dedcdddcdee2eaf0eeede4e6 -f1ebeee4eae9ddd9c9d1e0def1ecede2dce0d3c5ced8dbdadfdc82dce3ef8fefdde1c9a6 -b4cacfd5cdc8c9ceb8ab028102000800 -03ffc5ecd3e5dcc9b143000449b3c6dddcdddec7cec9cad9dcdddcdee0e6eff1f0e6dde1 -e0e4eee0dcd1c8d4d9dfdaecf0eadadedce0dbc6cfcec0cad2d9e0e2e3dcdbb999a6cacc -ce88ced3ccc8b7ae0003000800 -01ff98f4f6ecdae2dbc7bf93320576acc8dddbe1dcc0c9cecbd9dddc91dce4e8f0f4ebef -e3f6e7dddee0c9cad4dedd01dd8be4f6eee3dbebdee1dedcddd985d9bec4c0bed090d0cb -b8738dbdcccacdcecccecab5a802000900 -90fefdf7fdecdbeaddcdc0a1810582b7c9dc90dce0dcc5cccfced7dcdedcdee6efedefec -90ecf0ebdbe1cddad9dbdfdddbdfe0e4dfeb96ebeee5e4dbd9decdcfcdc2b4bdc5b49161 -92acc3ccc9cb87cbcdcbbcad5502000900 -01ff98fbffecdff3e5d8bab6883d92b6ccdadddfddc5cbcccfd6dbdf8fdfdde4efebede3 -e1e2eadfd9cde0dedc02dca3dedddee1f3efeeedefebd9e2d6cccdbeaaa5947e6885a9b7 -bdc7cbcccdc7bcb2a51501000900 -92fafffdffecdfeeeadad0bb886e98bbc6d8dedd83ddc3cacc8eccd8dcdde2e7e4eaf0ef -eddfeeefdc84dcd5ced5dba0dbd9e2dadfe6e3ecf0efecf3eddcdedbceccc8d4c2aea3a6 -95afacb9c2cccbc2bb84bbae7a07000a00 -03ff8cede1f0eedfdac19d86afc4d1dc84dcdeddc0cb88cbcdd0dedcdeebe7ee02ee99f0 -ede8e1d9d3c0bcbbced6dbdadfd8dbdfe6e7edefedf0dedad981d9ce92ceccc1bab2a6a5 -aebabdc9bcbbb9b39f0f01000a00 -82fcfdff8effeddff0eee4deccae629dbccfdfdc8cdcdbbfc3cccbd4dedcdadcddee04ee -8defe2dbdecec2a19db0b6b7c0c7cb86cbcedee0e3dfd983d9e4dfd692d6cbccc9b7b4ab -afb9bcbac3bdbcc1bb7307000b00 -82fbfdff99ffeddef1edeae4cea23397bad0d8dddfdac9c4cfcbd2dae0dae381e3ee02ee -a0f1efedf1e3dadeccb0afc2b3aeaab9b7bcc9cdcfd0cbd0cecadbd4d1c7ccc0b7ac84ac -aebec4ca88cac4bfd1aa1b0003000a00 -03ff95edddf2ecede1d165238cbdcbdddbdedfd0c5cec7dade02de81e0ee02ee01ec01ee -a7eadce8e7d4bce1d3dfd0cac0babecacecbcdc2bdbac0bdbbbcabac9b9d9aa6bfccd7c9 -cbd0cb9300820008000a00 -02ff84fde8dfeff089f0df9121236bb6d2d6de90deddd8c8cbcdd7dde0dddfebf0f1efed -ee02ee92ecdbefeee9d4cbc3e7deddd5e4ead5dbd2bbc382c3b5a891a8aba69a8c88858f -b7cdddd6cfc7d5bf1300820004000a00 -03ff83ecdfeff08ef0db54072327a8cacedcdfded8c8cb83cbd3dade87dedbe6e3f0efea -ee01eeabefece0efedf0e4bdbbc8c9dbd7e3f1e3efeadef0e8d4b6bfb0a390685e8bbcdc -dddee0c9cdbfb702050002000a00 -87fdfbfffeeddfeff091f0ba3550082b55b4cad8dcdfdccecccdd9df88dfdcdbdcdff0ee -edee01ee01eb8ee5eaedeeecd0c2bbb6c9cae1efeeef90efecfffaeedfe9deb5c37b98ab -c6dcdedc85dcc9c4be8800820002000b00 -82fefbff97ffe8dff7f5eb95409e322f359acfdeddf2dbd5c7cbd8ddde87dedddbe9eff1 -eaee01ee95ecf3ebedeff0ecd9cac4bcb9bccfdddeefeceefbfaed8aedf3dac8b9889eb6 -d0dedc01dc84c8b8aa39000e00 -81fbff01ff92f2e6fbf4f09c2f5c324c2651d5d0dbece2d9cc88ccd8dddedfdae3d7e882 -e8f0ee02ee85f0e9efeeefed98eddbcec4bac0cdcabfdbe1e8eceee8f0edc5988a8f97ba -d7de86dedcd7c1b288000f00 -82fbfcff97fff6eaf1faf0b9552e2c54293c69d1d8dfead8d4cedadedd82dddbe584e5de -f1ebee01ee84efedecefeea2eeefeeebe3dacac5cfd8cfc8cecfcdd2d3c7af988f988f9a -c8dedddcdecdaaa90201000e00 -81f8ff93fffeeef2edfde1cba24a162e39315180d9deeedb8cdbd0dadedddbdedddbdee8 -f0ee01ee01ec83eeecf0ee98eeedf1ece0dbd5d0ddd9d4d3bbbec3c0c4b7aa9a8d8ea9cf -dd88dde0d4b7a50f000a000e00 -82f8fcff95ffeeebf1efc9dfdd943d509ba0545b8becdfe8dacedb82dbe0dd01dd88e3e2 -ecefeee1eeefee82eef0ee01ee81f0ee8ceee8e4dddcddd8cdc9b8bab8b987b9acab9e90 -98b8ce87cedbd6b9a05505001000 -9bfcfffefff1eff2eed5e4e3d46863a999545260a6f0ede6e0d9dbdcdd01dd87ded9e6ed -f0e1e5ef01ef81edee02ee9bedefeae1dedcdfdbdad2cacdcac2b4ada0908d9dc3cecfcd -b7a19a00820003000f00 -81feff01ff96fbeaefdbedf0ebf1d682656d72637367d5e8efdfced8dd02dd8ad8dee2da -dfebe3e8ecf0ee02ee81efec87eceaf0eadcdedfdd94dde1cccecbceb8b7adabb8bccacb -c6ac980a0601001000 -81feffa2fffef9e9dacbe0dfdde6e7c3747f6c767b7d90bcfaf5dcdedddadddedfdedbde -dfe0da81daef8eeff2eff0eedbeae6eeefedeadfdbde91dedccccbc9cec1bac2b6bfbdd4 -cba9a11b028102001100 -81fcff01ff88f2dbc2c6ede0c6d2f090f0b97769748779747bbcf8e4ddd3d7d8dd01dd01 -de8ce1e2dde1deefedeeeceee2eef081f0ee97eef0eddcdeddcccbc3cfcdc1bbb9b0bccc -d1ce89150002001200 -a5f7fefffce9dcc7d8eddfdbeadcf3f4ad7277829a777b88c2feedd8d4dee0e2dddfdbdf -e0dddc8bdce4eff1ecf2e3e4e7f1eeec87eceedcdedcd5cdcc8cccc9bebac0bfc2cbcac1 -3005001400 -89fcfdf5edddccd9c9dfd99ad9f3eef4feeb7f7d93ea977b8284dffff3e3cecdd6cedcde -dcdddc8fdcdfdee7f0edf0dae0dce8edf0eceedd89dddbcecccacccabfbcba85bacbccc0 -9d00820001028102001100 -81f0eca2ecf2d9ddd6d1ead8e0f0f3edf1fef19a89907672778c87bbfffbf3d5cecad4e1 -dedcdd03dd01ef8dedeee4dfdcdfe4dddfdbdfd7c8ca8bcac4c7c8bfbbbcd1cca0100016 -00 -82efebeda1ede5ece2ddece0eeeadee8f1f9ffe999837b7a7d748e87bdfcf5f2d6cdcecc -d9dfdd03dd84e1ecefdddb82dbdfdd85dddadfdcded981d9cb01cb88c5bcbeb8c3cebc68 -001700 -02ef9dfadbdcdde9f1e4f5e8e9e2ebf5f8f9f09c878c827e878398b0fffbffd8cb84cbd0 -dddcdd02dd8bdce0efdfdbe1dfdedddedfdd88dddcdfd1cfcccdbfae87aec8c7a8000801 -001500 -8eeff5fcfdf3e6dcdfe1d7f4f6e1dbf181f1ff01ff85ee8f9c88828785878a8dbff7ff86 -ffddd1ccd1dedd02dd8edadddff0e5f0e2dcdddedbdedddedb8ddbddd7d2c8bcb8bcba76 -0a0007001500 -04ff81f7ec8aecf0d3d4d8ecf0e1f0eefdaffdffefaa8f9087998b8c849bc2f7faf4dbc7 -d5dddfd9d2d9dedfdbdde7eae2e0e3e2e1dfdddadddedddaccc3babb81001900 -01fd02ff8cfce6ddf9d8f2ebe1e8f4f7f1ff01ff99fcf3b08d93e2de9b968c9ab8fafffa -dacbcfd9d4dcd2c9d1dddc8adce7ebe9efede7dbdddcde84dedde0c9c183c1af50001900 - -03ff87fefffadef0dcecfb87fbecedf8f2fffeff8dfffafeb194d5da98918d869ee3ff94 -fff6d0cbcecacfcbcfced7e1dcdeecefeef0e2dcdd83dddfdedd87ddd5c1b0be00080018 -00 -05ff8ffef9f7deefecfff9eff1eff5fffdfffd93fdfaaa9d9b9295848f8290d5fdffe9ce -c8ccc6cd86cdcbc7d9dfdbdd91dddfdedadedde1dce0dbdfc4b89f5b0005000500010183 -02000200860001000100010001008302000600 -06ff8cfeffe1faffefeaf1edd5dae6ff81fffe88fefcfbe1a7958d868b818b8c838c9cde -fc84fce2cccace86cec7babec6d0e082e0dee081e0da8adadddfd9ded2bb992407000c00 -820102008200030003008304000300 -08ff8ce8fae5e9e0f1ecd9e9e7e9feff02ff85fde8af93898585858c8586b0ff90fff8e3 -ccc9ceccbcbabdbfcccfcdd4d1cf8ccfd7d0ced3bea2320c04000a000100030181030001 -0084030408253d833d5d63718371650001810100 -07ff8dfdebf1edebdcf0ece2ebfdfffdff01ff8cfbfffefaa79c9686838d88a9ff01ff91 -f5ddd2c9cfbebbbaaeabb1b0babcc7ccbcbd84bdb1a321008400026b020001000301900b -294c667d8699a0acbab8bfccc3b214000100 -08ff85fae0f7eeeaef84efe0e6fdff82fffaff04ff90e4b59189a5aa8b9afefffdffede3 -d4cfb9acb9b4afa19c968a868a87927c6367530a0100164a0402082a243e33273c6a7d95 -a4a9adb9bbc4cecdcfceca08000100 -09ff8aefdaf4f9eaf6e8e3ecefff05ffa3fcffeecc8febe6949ffffefffefffadecac2b8 -a69b867f778f86858a68405a27220003009a00030001000a280f0022435f7e96a0adb1c1 -c7c9cbccd0d2ca0001810100 -08ff81feff8bffdbebf4fef1f2f6f9ecf3ff03ff82fefdfe84fef39689868286f9ff01ff -93fefcffe7c1bdb2a88b6e8988918786622c2605008a000d0900040001000911088c0823 -4874829aa3acb9c5c7c9cb81cbcd85cdae01000300 -0bff8bfdf0ecedeefbf5e5ebfffcff05ff86feffe08e7271ff04ff90fefad1b7c0ac99a7 -c8c2a89e8d793e0e0001008559a516000100050090244f668695a1a7b4bbbebdbbb9bea5 -08000100 -0cff8afdfffde7f0fcf2e6eceeff05ff81fdff85ffefa687fbff05ff8defe4bfc4abd1f1 -ece8dec1850300020087236e070100021b0003008a03051a5460686d7a82888985898281 -4103000100 -0cff8aefe2f4e3d3eefedce4f2ff05ff81fdff01ff82fbc0ff05ff8efcfaebe4bfc2e7f0 -efeecf862f04000100810600820002008300057b00040081030003008406050301038403 -060001000100 -0cff8afaebefe7ebeae5f6f3eeff06ff81feff83fffcfdff03ff99fefffedfeef4dfceff -f3ed8335371d890602010201000a00010006008104008200010082000100820002000400 -810200 - -% -% Compression made this file 93.96% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/Master/texmf-dist/doc/generic/xypic/ross.eps b/Master/texmf-dist/doc/generic/xypic/ross.eps deleted file mode 100644 index 53b25317b8f..00000000000 --- a/Master/texmf-dist/doc/generic/xypic/ross.eps +++ /dev/null @@ -1,397 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: /net/tyr/home/tyr1/kris/Kris/pictures/rmoore-icon.ps -%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley -%%BoundingBox: 0 0 62 84 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% define string to hold a scanline's worth of data -/pix 86 string def - -% define space for color conversions -/grays 86 string def % space for gray scale line -/npixls 0 def -/rgbindx 0 def - -% lower left corner -0 0 translate - -% size of image (on paper, in 1/72inch coords) -61.92000 84.24000 scale - -86 117 8 % dimensions of data -[86 0 0 -117 0 117] % mapping matrix -{currentfile pix readhexstring pop} -image - -bac0d8d8c5c0c0c5988e7124241d4f63a87a637375c0dacac0c0987a638e9090baa8afaf -9898c5da8eba8e9ab1bac5c5c5b92438716971a284137138c038385a383c5a381d383838 -3c3c47697e696969696969695a5a -b9cfc5bac5c0c5b5b171713824244f4f71716f8c94d8d8cae1c0756d75988cc8bac8afb9 -af635a5a47987c9aa8a2c5a8a8cf5a2669386f908e3c6956718e1938383c4f5a5a233c3c -3c4f5a565a696d5a695a5a695a69 -9abababababaa89a8e7c5a3838324f5375759aafb9e9d7e9b198637ca8e9caccbecfc8ba -bc445a385a989a909abaa2baa8ba9c2638267e9ab198385a5a7e283838415a41325a383c -5a4f5a5a697e71697e7e69715a5a -afa0bac5a8a49aa873713cd8daeadac5ccf0f0ebf1d8f5f0f0f0f3f0d7f1d8d8ebd7ba4f -38c5afba7c63a28a8ea8babaa2c5e95a3871246da8a226385a23a82438415a5a45453c3c -413c4f4f5a637e7171697e715a6d -a2cabcba9aa88e8e7c6369455a4f5a5a4f71b1cce9f0ebddeaeaf0f0ddf1ddddebebf04f -4f5a6d6d69716d6f6f79b1b1b1babaa8328e245a8e982d135638562438385a5a6d71718e -7169715a5a7171717e718471716d -1d385a32382a3824241d243838384f4f383838384f325a5a909098b5cfd8ddeed8cd635a -5a5a696d715a715a697e718e8e8ea2a87169418e84a869244f3c3838385a1d1d1d1d1d38 -23715a717aa8a29aa8a2bca498a2 -a2c5a2a2b5a8a86f5a38383832381d241d1d1d381d38381d1d2a251d1d2a38385a4f415a -3838383c415a5a323c56699898a27a8e7e7e563c848e9098715a3c3869a8633838413853 -555a69715a71716f71716d8e6d90 -a8a8a8a8a29a8e8e5a3832381d32381d381d3838381d381d383838384141414f383c6956 -565a565a71717179845a413c38418e7e8e71715a8e8e8e71716d69697cbeafbaaf98af98 -a898afa8a8988ca89c8ea8a89aa8 -24242419242424381d1d38381d381d38382a3838383838383c3c4f4f4153565a413c2338 -38382d381d3841695a3c383c56716f6f8e8e71716956715a2425387cbebac5b998bab9c5 -baa2b998c5c5c0ccbabaa8985a5a -2a412a283838262424261d1d3232381d381d3823383c32413c53413c535a414124192441 -3c69714f5a3c382a385571413838698e718e7e71714f5a5a3c382a69635a695a5a5a5a5a -5a6d5a5a696d7e9090908e8e98a2 -382a38382a1d2426261d1a1d243824381d1d245a41414f4f41475a3c411d2a1d3c3c6969 -715a71715a715a69412a4171413c233c698e8e7169713c5a695a382a2426715a5a715a71 -5a715a6d6d7e71b1a890a88e8e98 -55987179719871415a5a32383c38383838381d383c4f3c38415a4138415a5a5a535a4f5a -4f5a5a5a5a3c41695a69413838411d2a382d4f90b17e41715a5a3c383824906d9075908e -7a8e907c8a7c908ea8a88e737175 -6971908e6d713c5a5a414f5a3238384f382424415a3c2d38413838415641414f41414f53 -5a4f5a3c3838383c3c41533c281d38382a38415a6da85a4f71565a413838a8ba9898b998 -a89c8a9aa8a0a0b7989498b9c8c8 -5a5a69695a5371716d711d5a5a5a5a5a381d413c41234141413c3c4f3c3c38413c413841 -5a3c414141411d1d3838254141411d4141382a3841415a8e324156715a475a7c907c9063 -636d6d634f7590a8a89890989875 -716971715a5a5a6d6d6d3c5a4f5a5a71383c3c383c3c41413c415a4f413c3c3c3c413c5a -3c413c2d1d41381d38383c3c234141253c25383828383c697141415a5a5a475a6d6d7171 -7c71906d6d6d8ea8989c8a9aa8a8 -7169716971416d7e7e5a5a3c6d5a5a4f3c414138413c2a416956413841414f412d381d1d -383841413c2a41381d413c3c3c3c3c3c3c413c2a41383c41697141554f41475a716d5a5a -6963714f636f6d909aa89aa8a4c0 -988ea898986d38715a7e715a5a5a4f3c382a3841414f4f413c411d414138254125384141 -3c41413c41413c41414f695a715a71717171713c4141413c413c71382a3c415a3c413819 -24243826242a24415a4f41474169 -8e8e9890987e5a6338383c566d71473838412a41534f415a1d242a3c3c2541414141413c -413c5641694f4f564f567171715e79799a5e79715656413c41383c413838413853234138 -1d242438242a38414147533c3c47 -719aa2908a8e5a4f6d715a4f32383838414138694f4f4141413c3c5a1d3856415a567171 -7171717e98798e8e7aa4a2a4baa4a4a4a2a4ba9a797e714f3c3c2d414141384141696938 -38382438242a243841533c534738 -6db1908e8e7e5a6d6d386d5a71381d38414f41413c5341413c4f4f38413c5a7171717179 -8aa2a4a2a2a2a4a2a4a2c0a8baa4c0bca4babaa4a27971714f3c41413c382538385a7156 -3838381d3824382a383c535a4147 -6da2908e987171696d5a4f5a32382a3c414f69533c5a2a414169413c415571988aa4a4a2 -a2a4c7a4c0a8bcc7c7c7c7c7c7c7c7bca4a6bcbca4a28e79714f4f413c3c4138383c695a -3241383824242a38383c53413824 -9a98a898908e69717138693823383c3c4f41474f4153414169414f717e7e92c0c7baccc7 -cccce0d8d7d8d8d8c2c2e0c3c3d7c7c7c7c3d7bcbcbca49a987171415a41414141415a71 -5a41415324241d1d38414f53a4a8 -a8558e8e8e715a32714f5a383838413c5a3c416969415a69715a417ea492c0c7cccce2d8 -d7d8c2d5d8d7d8d8d7c2c2d7c2d7c3c3d7c3c7c7bcc7a4a4a27e8e5a4141414f56413869 -695a5332382424242a41415ae1b5 -8e717e8e717e3c4f4f5a5a38384141533c4169697156557156716592c0aac7c3d8c3d8d8 -d8d8d8d8d8c3d7d8d7d7d7c2c2d7d7c7ccb9c3a6bcc7bcc7a4a4a27171565a4f5a695a69 -71695a3c38191d38262a1d28c5b5 -8e71719071695a4f5a5a381d41413c3c4f716956717171717171a4c0a4c3c3ccd8e2d8d7 -d8edd8d8d8d8d8d8d8c2d8d7c2c2c3c3c3b9bcbca6d7c7a6c0a4b59a71845a5a5a7e6d5a -5a69414f41795e7179865524d8c5 -8e90719098713c537e3838414141414171557171717171715ea2a4a8a8c2c2d5d8d8d7ed -d7d8d7ebebd8d7c2d8d7e0c2d7d7e0c3e0c3b9c3bcc7d7a6a4baa4a28e71715a695a7169 -5a5a4f41535620414f715519ccd2 -908e718e715a5a4732382a3c413c416971697179717171717ea4c0c3c7c2e5d8d7d8d8e6 -d7e5d8d8d7ebd7d8d8c2d8d8c2d7c3c3c3c7c3d7aac7c7bcbaa4c0baa29871564f5a715a -5a4f5a5a6971323c41887119d8b1 -8e986d8e847e714f5a2a41283c533c715671717198797171a2a4aac3c7d7d8d7e4ede4d7 -e4e4e6d7d7d8d8d8d8d8c2c2d8c2c3c3d7c3c3c7c3c3c3c7c7a4baa4b5a2717e5a4f695a -5a5a4f697171414153ad7119d8c2 -98a88e8e8e987169412423414141417198717e7e7e84718ea4aac3d8c3d8d7d8e6e4dde6 -e4eae4ead7e6d7d8d7d8d7c2d7c2d8d7ccc2d7d7ccc3c3c3b9bca4c0c0a2717e695a5a69 -5a5a4f4f565a694153b17e24c5c0 -a298a8b5b1b1905a1d3841383c414169717e798a9898717ec7ccd8d8ccd8d7edede6ddd8 -e4e4eae4edeaddeaead8e6d8d7d8d8c2c2c2c2ccd7ccc3c3c7a6bca492a298565a556971 -5a69566969416955539c692acfb5 -c5bac0b5c0c0715a38383c41384169567ea4a2a2a48e71a2ccccc2d8c3d7d7d7d7eadde4 -eae4e9e9e4e4e4eae4ddd8ebd8d7d8d8d8d8d7c2c3d7d7c3c7bcbc92c0c098717e565a71 -5a5a7169715a696941d5692deac2 -a2bab598c5c05a38413c414123415a71a2a4a4a48e7a98a4ccc2d8d8d8d7e4d8d7eaede4 -eae9e9e9e9e9eae6e6d7e6d8d7ebd8d7d8d8c3d7c2d7c3c3aad7c7bca4a2a4717171717e -715a69696971693c41e16938e9b5 -a8b1a271a8b53c383c3c3838383c5671a2a48ea4797179a4d8d8c2d8d8d7d7d8e4d8d8ea -edeaeae0eae4e9eadde4d8d7edd8c2c2d5d8c2d8d8c3e0c3c7aacdbcc0a28e987e556956 -715a3c71715a5a5a7ed26953cfcc -a8b5b169a89a38413c41381d253c71a4a4a4a4a4798e7acdc2d8d8d8c8d7ddd7eae0e0f5 -e0eae9e4e9e0eaeae4eae4e6d7d7d8d8d8c2d7d8ccd7c3d8e0c7c7c7c0a2799871716984 -7156695669696969a8d17741d8a2 -8e988e5a849a38385a383c2a233c7ea2c0a2a4a279797ec2d5c2d7edd8e4d8e4e4eae4eb -e9e9e4e9e9e9e0e0e9eaead8edede6d8d8c2d8d8c3d7c2d7c3c7bccdbaa27e9871717190 -717155717171716398ad3838e1a2 -909879715ab538383c38381d385aa4a4a4a4a4c0797aa4d8d8d7d7d8d7eaead7e4e0eae9 -e9e9e0e9e9e9e0fde9e4e0eaedd7d8d7d7d7f3d8c2d8d7ccc2c7bca8c0a48e7171846971 -9c718469717e7e7198d2413cd8d8 -98909a8e6998382338233838417ea4a4a4a4c7a47e86d7d8d7d7edead7eaece0e0e0efef -efefefefefefebefefe0f5e0e4e5d8d8d7d8d8d8d8d8d8c2c3c7aac0a4a47e8e71697171 -9c717171717171539cb5243cccb5 -b1a8b5a28471413c41382a2356a4a4a4a292d7c07ea4d8d7edd8e4d7ede9e9e9e9efefef -efeff5efeff5efefefe9edededd8d7d7ebe6d7d8d7d8c2d8c3ccc7bca2a48e7169717184 -7198717e90987147b1d22441cfb1 -b1a8a2b58e69384138381d3871a4a4a4bcc7c2a479aae5d8e4ede4d8e4e0e0efe0e0efef -eff5f5f5f5f5eff5fdebebe4e4d7d7edd7ebd7d8d8d8d8d8d7d7c7c7a4a271715a557156 -719898847198905addbc1d41e1b5 -a2b1b1c0a27e3c38381d3856a2a4c092c7c7d8a479ccd8d7d7edeaedede7e9e9e9efebef -efefeff5f5fdefefefe9e0d8edd7d8d7edd7e5d8d8d7d7e2c3e0c7c7a4a28e7141696956 -5671988471717153c2d5383cd8b1 -a898b1a8a8711d411d382a7ea4c0cdc7a6c3cca47ed5d8d8d7edd7d8e0e9efefefebefe9 -efeff5eff5f5efefede0e4ede4d7e5d7d7e6d8d7ebd8d8e0ccc3c3c7bca4715a4f41695a -697171986971698484d22469c0b5 -9a8ea898988e383c381d1da4a4a4a8c7c7ccc2a4bcd8e0d7edd8d8e6d8e0efe0efe9efeb -e9efefefefe9ebebebede0e0e4d8edd7edd7d8d8d7d8e0d8e2c3c7c0bca271693c416941 -41416984695a5a5a88b51d47d890 -8e798e8e8ea85a23381d3ca4a4a4a8c7c7c2e0cda8d8d8d8d7e6d8d7e4e9f5e9e9efefef -efe9efeffde7e0fde9e0edd7edd7ebd7e6d7ebd8d8d8d8d8d7ccd7c7baa48e563c41413c -534f55564153564190a88e84b571 -5353415a5a2338411d3841a4a4babcc7c7c3ccc7c2d8d5d8e5d8d7e6eae0e0e0efebeffd -efefebefe7e9e9e9e0e9e0e4d7edd7e6d8d8ddd8d8d8d7d8ccc3d7c0a4a4717141414138 -41415a556941564f90ccc0b5a898 -41383c413c53413c1d2371a4a4c0c7c7cce0e0e0ccd8d5d8d7d8edd7eaebece9eff5efef -efe0efebeff5e9e9efe9edd8edd7d7d8edd8ebd8ddd8d8d5c2d7c7bcc0c0a28e693c4153 -3c5341416971717190b1b1908e8e -3c4153473c3c473c38235aa2a4c0a8c7bac3c3ccc2d8c2d8d7d7d8ede0e0e9e9e0e9e9eb -efe0e9efefe9e9e0e9e0e9d7d7ededd7d8d8d7d7e2d8d8d8c3d7c3c7c7a4a27969414141 -41694153717e5e717e192a3c4138 -414141473c474141413c69a2a4a4bca8c7c3c2e0c3bcd8e2d8d7d7d7edf5e9e0e9e9e9ef -eff5efebefe0e9efeaedd8d7e6d8d8d7d8d7d8d7d8e5d8cce0c7ccbac0a4a29a694f3828 -3871557e7ea47e92a8c0b9c5baa8 -41533c5a41414f471d38567ea4a4bcc7c7aae0c3c2d8d8e5d7d7ddede4e9e0efefe0efef -f5efe0efefefebe0f5ede0d7d8d7edd8ebd8d8e2d8d8d8d7c3c7bcbcc0a4a47e55414138 -41556971867e7ea8a8bac5bab5ba -3838414147474f41382a5a79a2a4a4c7aac7c7cce0c2d8d8d7e6d8d7ede0e0efe0e9f5ef -f5ebefefebefeff5e0e4e5e5edddd8d7d8d8d8e2d8c3c3d7c3c7c7c7c0a4a49a56535a41 -23696956a4a47992aac0cfc5b9ba -413c533c3c47415a38383c7a86a2c0c7c7c7c7c3ccc2d8d8d7d7edd7eaebe9e9f5e0eae0 -e0ebe0e0eff5efeaf5d7eaebd8d8d7c3d7c7c7c2d8c2c3c3c7cccdc7a8a4a2a271693c25 -41416971c7a87aa8c2baa0c88a90 -4153414153413c6941384171a2a4bcbaa6c7aaaad7d8d5d8d8d7deded8ecebe9ebefeaed -e0e9efe0ebebebedd8e5ebd8d8d5c7c7baa4a4c3c7c3b9c3bcc7c0c0c0c0a4a271564141 -3c3c698ea8a88ea8c2bedddaddf0 -715a717171717a5a4138387179a4a4a2a4cdcdc3cce0c3e2d7d8e0d8d7e0e9ebefebd7e0 -e0f5eceadee0ebded8cdcda2a4a4cda8b5c7c0a4a6c7a4a8a8bcc7c0c0a4b5b5797a4141 -415571a29aaa92bad7e4d8baa88e -32383838325a3838843c38718e867979a4a4a4cdc7ccccd8d8d5d7d8d8e0e0e0ebe0d8ed -f5e0e5e4e5e5d8cce0a4a48e987ebacdbaa4a4c0c0a8c792a4cdc0c0c0c0c0a2987a6941 -254fa4bac7c3a8c7c3b1ccd8ddeb -38381d1d382a537171693871717e8e9879a2a2a4a4c3cce0d8ccd8d8e0d8f5e9e0e0e5e0 -e0e0d7d8e0d8a4a2a4985e715671c7a8bca4cda4a4c0cdc092c092a4c0c0a4b5a4718441 -416979c7aac3aaa8c37190717171 -24261326241d3841a2843c695671799898a28e8e8e8e989aa4c0c7c7d8d8d7e0e0e0d8ed -d7e5d8d8c3cd7171563c414156418e71797998798e86a2a4a4c0c0bac092a4c0a271692a -3856a4bac3bac2a4987198987169 -13262413262a5a717e5a3c416971798a7e7e79717171565a7e86a4bacdccc2d8eaead8e5 -edd8e2e0bac08e56565671715a56718e7171a4a4a4a486a4a492c0c0c0c0cda4a28e7138 -2556babac2c2c2a4798e98713c69 -988e247119388ea4a898713c5a56565e71717171715a4f413c3c5a71a2cdaad8d8e0edd7 -e0d8c2baa4a4bac092a4b5e9f5eb71716969697ea4a4a4a4a4bac7c7cdc7c7c0a2987141 -4155c2ded7cdd7a8719c98984171 -b5a2197e264190907c8e71415a414171987171717171717a71795e7171a4c0c3d7ead7d7 -e5d5e0a4a492c7a8a4a4cdffffffbcc25555717198a4cd92bac7cdccc3d7bcc7a4985e38 -3c56c0d7d7c2c8928ea2b1a25a71 -9ab1383226988e9ac5bab13c414f568e7171717aa47a9871a486a49a7e797ec7d7d8e0ed -e0c2babaa4cd9292c0a4e2ffffffe5f85a71717e71a4c7bac7d8ccd7c3d7c7c0a4a27141 -3c71a4c3c2c2c2a479b1b1b15a90 -a484412a3841718471715632568e797971715e71e4e288718a4184a4a4a49a7ed8d8e0ea -edd7c7a4cdbabaaabac2e5fdffff8888717aa4a4a292aac7ccc3e2d8e0c3c7bca27e7141 -388ebcc3bcc2c26571a4b1b17190 -b55a411d38698e8e908e9838568ea2988e563cd2e9d58855e94171b7a4cd7e86d7d7e0e0 -e4cca8a4baaac2a4cda6d1e5f5f5bca49cb7a28ea4c7ccc2c2d8d8d8c3d7bcc0b5a2843c -38c0c792a8c3c27e8498b1a25ab1 -c05a552438567e8e79988e4169797ea4714171cdd7bc98713c4171d5cdbaa479d8d7e4ed -dec3c7a4bac7cca8de8ea8aae0bacda4a4a492a4baccc3c2e2d8d8d7d8c3cda4a2a2713c -41d1d1c7bababa7171a2b1a269a2 -c024711a5369718e718e7169418e8ea48e71718aa2baa288a4a4a4a49292a4a2c3c2d8d7 -d8c3bca8a4bac2d1aa9292a8baa4c0a4bababac7c2c2d8ccd8d8d7d7c2e0babaa298563c -98cccdc2e2a4bc5a7198a2a269a2 -a82490266956718e8e8e8e715a71a4a47e7998a47e7ea4a2a4a4a4a4baa8a49aa8c2d7d7 -d8ccbabcbcc7d1bac7cdc7c3c3c2c2c2c2c3c3c3c3aad8d8d8d8d7f3d8e0c0a4a27a7155 -a2cdd1d7d8c792236990b1988498 -712d5a71718e8e8e8e98987e5a71a4a4a4a4a2a4a4a4aac0cda892a8baa47979c3bcd8d7 -c2aac2c7bca892cdc7cdaaaac3babaccc7d5ccd8d8d8d7d7edd7ebd8d8cca4b598988e98 -b7e0d8d8e2e0cd477198a29884a2 -413828384141414f697163905671a4a2a47ea4a4a4ba92bca892cda6c0a47979c3c2c8c8 -d8b9c3a6a8a6c7c7c7c3c7cdaae0d5e0d5d8ccd8d7d7d8d7d7ead8d8ccc3a4a479719898 -a4d1d8d8d8c2cd69908eb1b584a2 -412a242a2a382d2a2a2a38243869a4a4a2a2a2a492c092c0c792c792c079797ec2c2c2c8 -c2c3aac7bca6ccc2c3c2c2d5ccccd5d8ccd8d8d7d7d8eae4ebedead8d8e0c0a28e8e9898 -a4d5e2c2d7baa45a719ab1a271b1 -242a2a2a2a2d2a382a382a2a2a84a4cdcda4c0c0a4baa4a8c7a8c7bca48e8e7ec3c2d7c8 -d7c2a8c3a6c7c3c2d7d5d7d8d7d8d8d7d7d7c2d7d8d7edd8ead7edd8d8c7a49a798e7e8e -a4d8e0d5c7a498848ea8a2b1a8b5 -192a3c2d2a2a2a2a2d2a2d3c245aa4a4babaa492c0a8a8bcc7a8a8a892797e86a6c2d8c8 -d7c2c3a8c3a8c2c2d8d8e0d7d8d8d7d7d8d7d7d7ead7d8ead8edd7d8d8c7a479798e8e7e -cdc2c2c3a498a27e8ea890b18ea2 -19382841192a2a2a2d2a2a2a2471a492c7c7b9aac7aacda8aac7c2c7a6a47ea4a8c2e0d7 -c2c2c2c3c2aac2c2c2d7d7d7d8d8e0ede0e0e4ece0e5d7ead8e6d8d8d5d77e79988ea48a -c0c2cd928e8e9871a8a89a98a298 -2a2a2a2a382a2a2d2a2a2a2a2a71a4c0bac7c3ccc3aac3c7ccaac2c3a479a47e92d8d8d8 -d7c3c2c2c3c3aac2c2d7d8d8edeae0d8e9e0eaede0ededd7d8edd8d8ccba9a717ea4a498 -92d1a47e90a2a88e9898a898a88e -252d2a2a2a2a2a2a382a2a2a2498a492a8c3c7c3baccc3c2c3c3cca8a8a27ea2bcc2d8d7 -d7c3aac2c2c3c2c2c2d8d8edd7d7e4e0e0e0e9e0e0ecd7d7edd8d8cce0c77e717e989898 -a2868e8e8e90a271a8a298908e7a -1d2a2a191d192a2a2a2a2a2a2498b1a4a4a6c7aac3c2c2c2c3c2c3c7bca2a48ea8c2d7d7 -d7c3aab9c3c2c2c8d8d7d7d7d8e0e0e9ede0e4e4ead7d7edd8d8d8e0d7c779719aa49898 -a271699890a8988a98a88e718e8e -38192a2a24242424192a242a243f69a292c0aaccc2c2c2c2c3aac3c3c7a48e98a8c2d8d7 -c2ccc3a6c3c2c2d5c2d7d7e0e0d8e0e9e0e0ead8d7d7d8ddd8e2d7c7c7cd8e71a2989898 -a2798e988e8e988ea8a88e718e7e -382a2a2a2a2a2a2a2a2a2a382a2a3856a4cda6c3c2c2ccccc2adc2c2c3a49aa4c2c2e4d7 -d8c2c3c3bac7c3aac7c2d7d8d7d7e0e4ece0d8d8d7d8d8d8d8c7c3cdc0ba988ea498a2a4 -ba9a988e8e9a9090a88ea8717990 -2a2a242d192a2d2a2a2a2d2a2a3c3841a492c7aabac2c2c2a8c2bac2c779a4a4c2d7d8d8 -d8c2c3c3c7c2c3c7a8aad7c2c2d8d7d7d8ece0d7d7d7d7d8c3e0aabcc0c098798ea498a4 -a4a2908ea8988e8e8ea88e719869 -2d2a2a2a2a2a2a242a24382a2a411938a2c0a8c7c3c2c2c2c2bac2c3a4a47e92c2c2d8e0 -d8d5d8babac2c2c3c7c7ccccc3c2d7d7e0d7ede6d8ebd8c2e0c7c7c792c0987a8ea2a4a4 -c0a28e8e8e8e8e79a88e8e698e8e -2a2a3838192a25242a242a2a38532a3898a4a4a6c3c2ccc3aac7aaa4a4a2a4c3c2d8d7d8 -d8c2ccaaa8ccc2c2c7c2d8d7d8d8c2ccd7d8d8d8d8d8d8cccccdd7cda4a2989898a498a4 -a4a2a85e8e987190b1a89863908e -382a2a2a2a2a2a2a2a38192a2a382a38797e92a8aac2babaaac7aaa4a2a492c7c2d8d7e5 -d7d8d8c3aac2c2aac7d5d7edd7d7d5c2d8d5d8d8d8d8cce0c7c0c7a4b5c0987e9898a2a2 -baa28e7198a88e8ea2988e69a86f -242a192a2a192a2a1924242a24382a2a418ea4bac7bac7c2c7c2c3c0a47ea4c3d7d7deeb -e0d8c2c2c3c2c3c792d7e5e0d8d8d8d8d8d8d8ccccc2e2cccdc0cdc0a4b598988ea2a2a4 -b5ba7e63988e9090a2a2907e908e -1d242a2a382a2a2a242a2a2a242a2a2a3c717ea492c7c7c7ccc3aaa8a4a2a4c2c2d7ebef -e0c2c2cdc3c2baa4bad8d5d8d8d8e0d8d5e2e0cce0d1d8e0c7c0cdc0a4b59898a4a2a4a2 -c0bca28469847e9890a8717e7190 -2a241924131919242a242a2a2a382a2a386979a2c092c7c7c3bac792a479a4aac8d7efef -ded5c2baaababacdc2ccd5ccccc7cce0e0e0cce0cccdc3e0cdc0cdcdb7b57198a2a4b1a2 -a4a49a7a5353697e908e717e8e71 -3c38413c41233c413c2d413841382a3c383856a4a4a4a8c7cda4c0a4a4b7a4a4bac2cdcd -bac0a4a2bababac7bae0baccc3c7e0ccc7d7d1ccc3c7e0c7c0a4cdc0a4b57198a2a4e0a4 -c0c0a4a441536369698e6d719071 -4141413c4138382a38414141413c413c413c41a2a4b5c0aac0c0a4a4a2a4a4a4babacccd -c0a4cdbac7ccccbae0d1d5cccdbac2d1d1c2d1e0ccd7d5ccc0b5cdcda4b58e98a2b7cca2 -a4a4a2b57153696969845a90906d -382a381938285341262424241d2a23382d415a79a4a4b5a4a4a2a2a4a4a4a4bca4cdbccd -bad1cdcdd1c2d1cccccccccccdbaa8bac7cdbaccd8ccd5d7a4b5bac0b7a48ea4a4d1e0a2 -cda4baa48e695c535c843869715a -191a2a98a4903c84714138382424241d242a2d71a2b5a4a4a4a4a286a4a4b7a4a4bcbac2 -d5bad1bad5d5c2e0d5d5c2c2aacda2a492bac7a8c2e0d8ccc0a4c0b7a2a498a4b5e0d1a2 -cca4a2c069696969698438262624 -b5d2bc71533f5c53719c693c41532a2624242469a2a4a2a2a2a2a4a286a492a4bcbcd5d5 -d8d5bacdd5d7d7cdd5c2cccdbaa479a4a492cdc3d8d8d5d7a4c0c0b5b1a48ab1c3d8cda2 -e0c0a4927e695c69846941381d24 -413c3c3c41413c413c41535369555371719c69697ea4a4b5a2a4a47e7e7ea492a8aaccd1 -cdcdcdc2aacda8a4b7bccda47e8abaccccd7c7c2e2e0d1baa4a4b7b5a2a4a2b1d5e0a2c7 -ccc0ba98715c715c845c695c2a19 -533c53413c3c3c3c413c413c41533c2d383c534169b5c0a4a2a4a4cda47e79988ea4a4ba -92bacda49acdcde0e9d7e28e657ec2d8d5d1c2d5d8d8e0d1a4b5c0b5a48ea4a2d5c0a4c7 -c7cd7e715c715c5c5c5c69696941 -53413c3c3c3c413c2d3c5341413c41533c533c3c53a4a4a4c0b7a4bcba8a4171c0cdd1cd -babc9acdece5e4f0f5a4928ea4bad5d7c2ccc7cce2d8bac0b5a2a4b7a27a98b5e0c07ec2 -bcc771695c5c69845c84535c7ec5 -41533c3c533c533c3c533c3c2a5569698e8e798ea290a4a4bacda4c0bc86796b6b71cdd1 -dee9cdbce9e5798e869292c7c3d5d7d5c2bad5cccccccda4a4a2a4b79879bce2cda29ccc -c0c069555c5c695c5c695c698469 -53472d3c413c413c3c3f535341698ea4a28e989898698aa4cda4bca4a4a486656b658aa4 -a4c08671a48e798c92aabac2ccd8d8d5d8e0ccd1cce0cda4a4a4b5a27a98cdd5a4a4a4aa -c0a45355695c69695c5c5c5c535c -718441413c413c383c6990b5a2a8989a7e5a41262d418498b5a4a4a4a4a48686866b8c8c -a692929292aac3aabac2ccc2c3d8e2d8c3bac3cdcdbac0a4a4a2bc987aa2e0e0a47ecccd -cd7e5353695c6969695c7e4f5c7e -b1a4a2a29890848e989aa29aa8a2a85a2a415a98b1c09879a4a4c0a4a4a4a4a47e8ca692 -adadc2adc2c2c2c2c2c2cdccccccd5c2ccc7ccc7cccdc0a498a4a49c98b7d1cca2a2cccd -cd5569535c715c695369535c695c -a2a2b1a8a2a29898b198a8b59aa22a3c98b1b5a2c5c5b590a4a4a4a4a4a4a2868e8c92aa -adc2c2adc2c2c2c2c2c2aaaac2ccd5ccccccc7cdc7c0a4a29aa4a271a4cdd5c7a4c7d8bc -cd53555c695c5c5c5c535c69635c -a2a2a298a298b1a2a2cdc04169b5d8d8e9cfcc8456325a3c8e8aa4a4a4a4a48ea4a48c92 -9292aaaa92adbababababac3c2bac2ccccccc092c0c7a2a4b1a2a4a2e0e0cdc0c7d7e0cd -a25c695c69695c5c697e695c695c -416998a2b1989c90b5a869c2ead7e1e0474153694f383c3c717186a4a4baa27ea4a4a48c -a49aa49aa4a4bababaaac7bac2c2c2c3cccdcdcdc0baa48e7a9898cdcdd5d1a4ccd8c3c0 -6969534f5c5c69696969695c6984 -7e7169695353533c69a2c0d7d7e02a38535c69716d5a695a719098a2a4a4a4a48ca49292 -c0c0babac2c2aaaaccaac3bac3c3c3ccc7bacdc0a4b57a8e9871b7d5e0c3c0c0d8d8d771 -696953555c535c5c5c5c695c845c -d8cfc5716969697ec0e1d7d7e1b57198b5b5d2b5b59a906f7c8e718aa4b7a4a4a4a4c0ba -a492babad1c2ccbac2cdbaaaccbac3bac7c7cdc0a4a2717198bccde0d5d1cdbae5d8d169 -5c556953555c5c695c5c695c695c -d8d8bcc0d8c5a2d8e9d8ead7d8a2c5cdcfc0a28e715a7e715a71717ea4a4bca4a4a4baa4 -bababaaac2c2c2c3c2c2c2bac7c2e0aacdc092a4a4a471988acdbad1c2d7d1cce5d8c755 -69535c4f5c6953695c5c5c715c69 -d8c5c0bcd8d8d8d8c0d8e19090a2a8bad8cdd8383253694f98a8a28e7aa4a4a4a4a4c092 -cdbac7bac2c2c2cccdc7c2baccd1ccc7c7a4c0a47e7171a2ccc2d1d1d1cce0e2d8e08a55 -55555353695c555c5355535c6969 -c5c5c0d8c0c0d8d8d8d8cd90c0ccd7d8e1c0988ea2c0c56f1d5a4f717aa492b5a4a492c0 -a8aac2c2ccc2d8c2d5c2aac3c2c2bac7babca4a29871a4c0d1d1d1baccbac2edd7c07153 -53535c55534f5c5355535c555c53 -a8a2c5a2bab1c5a86f6990d8bcd8e9c09090b5c5c0c0bac03c412841718aa4a4a4a492a4 -baccc2d5c2d5ccd8c2c2d1c7aacdaac0c7b5a47a98a4babacce0bad1cdc2ecedd1693f53 -556953555c6953695c53555c5c69 -c0c2b5c2a8baa2cca2c5b5b5c5c0c5a89abac5c0d8c0c5b1413c3c3c418a86a2a4a4a4ba -bac2c2d5d5ccc2e0c2d5c2ccd1c2c7c0baa47e7ea4cdc7ccccd1ccc2d7d5edf38a556953 -554f5c5c5353555353555c5c6953 -c0c5c5c5b5c5c0a2b1c5c0c5c0c5c5c0c0c5c5c5c5c0c541413c3c3c418e8aa2b7a4bc92 -bac2c2c2c2d1c2d1c2c2d5c2cdbaba92c08698a4bca8aacdcccccdccccd8ecd884535355 -535c5553555c535c5553535c5353 -c5d2c5c0c0c0c0ccd8c5c0c5ccc5c0d8c0ccc5c0c598414141414141413f5698a4a4bcbc -baccc2c2ccd1ccccc2ccccbabac7a4b7a2a4b592c0bacdcdcccdccd5e5ebedd553535553 -554f5c555c53535c53555c5c5355 -5a4f6da8c0c0d8c0c0c0c0c0c0c5c0a2b1a89a8e9a5541283c2541254141417a86a4a4c0 -cdd1d1c2cdbabcbaccd1c2c7a4a4b7a48ea4bcc0cda492e0d1d1ccccd8edf3b555535355 -695553535c693f5353695c534153 -717171719071449a908e5a73b9afbaa2a2a88e557e3c3c3c3c2d533c3c41412a718a8aa4 -a4cdbaa4bcbcbac0baa8c0a48aa47ea4a4a4cdc0ba92baccd1d1c2d8d8e5cd415341535c -5553555353555355555353533f3f -5a5a6d8e8ea8e9d7dacfd7cdcccfb99869381d192441413c3c4128413c3c414155718a8a -a4a4a4bca4b7a49ab7b7a498a498a4a4a4cd92cdcdcdcdc7cccccce5d8d88e53534f5553 -535c4f5c55535c5353555355533f -26383871757cc5bac5cfcad7dad8d8da735a381d383c412841282d2841533c2d41537171 -79a49886a4a4a4a4a27a7e8a9ca4a4a4a4c0cda8cda8bacde0ccd8e2e5d8565353415353 -5c535c415c534f534f533f5c3c3f -4141532d2a2a24383c5a8ea8bac5ba4f7a9a8e3c41233c25284141413c413c413c41413c -3c4171a2a4a4a4a4a4a4a4a4a4a2a4a2a4a4a4a8cda8d1bad5d8e2d8f0d73f4f53415c55 -554f555c5c55534f41555c553c3c -a2c2a88ea8988e71534141718e8e7c6f902d242a283c2a282828283c53412a3c3c3c533c -3c536971a4a4a4b5b7a4a4a2a4a4a4b5bac0babac0c7baccd5e2d8e0d5cd53553f535553 -4f534f5c5553535369533c41282a -ccb5c5b5c5c0b5c5c5c0b1b5a2b1909c715a532d3c3c3c3c282d413c41413c413c41413f -3c414155987e8aa4a4a486a4a4a4b5b5a4a4cdbac7baccd5d8e2e2e2cd553f533f555553 -535c5553533c53553c3c3c383c41 -b5ccccc5c0b5c0ccb5b5b5b5b1b5b1a25a6d712a2d2828282828415328413c3c3c413f53 -3c41535671717988a48aa4a4a4a4a4c0a4cdbacdaae0e0d5e0d5e0e09c3c41535c53534f -5c535c3f2a5355533c3c2a2a5553 -c0b5ccccc0c0b5c0ccc2a2b5b5b1b1907e7171284141253c4141253c413c4141413c3c3c -282841555671987a86a4a4a4a4a2a4a4a492cdbacdd1e0d1e0e2d8cd7153533f53535555 -53553c2d555c53413f2a413f3f55 -8eb5bacde1cde1cfb5cca2b5b5b58e90636d7e1d2828282a3c2a284153412841413c3c28 -41254171717171987ea498a2a4a4b5a4c0c0c0cdaad7cce0e2e2e0563c4155535553535c -55555371533c3f282a3f41414141 -714f3c4f5a6f98adbcc2a2c5ccc08e71717e713c3c3c3c3c3c2d414128413c413c3f4128 -284155847171717e88a47e86a4b7a4b7a4cdbac7bacccce0e0c3cd5341535553535c555c -553f555c3c3f3c2a5c553f3f5641 - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/Master/texmf-dist/source/generic/xypic/dvitogif89a b/Master/texmf-dist/doc/generic/xypic/support/dvitogif89a index f413b853fa9..2a17aa4002b 100644 --- a/Master/texmf-dist/source/generic/xypic/dvitogif89a +++ b/Master/texmf-dist/doc/generic/xypic/support/dvitogif89a @@ -1,11 +1,11 @@ #!/bin/sh -# $Id: dvitogif89a,v 3.5 1997/05/28 13:05:01 krisrose Exp $ +# $Id: dvitogif89a,v 3.7 2010/06/10 18:45:49 krisrose Exp $ # # Pack consecutive pages of TeX DVI file as GIF89a animation. -# Copyright (c) 1996-1997 Kristoffer H. Rose <krisrose@brics.dk> +# Copyright (c) 1996-1997 Kristoffer H. Rose <krisrose@tug.org> # # This file is part of the Xy-pic macro package. -# Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> +# Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> # See the README and INSTALL files for further information. # # The Xy-pic package is free software; you can redistribute it and/or modify @@ -19,8 +19,7 @@ # 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. +# with this package; if not, see http://www.gnu.org/licenses/. NAME=`basename $0` SYNOPSIS="Usage: $NAME file[.dvi]" @@ -188,6 +187,12 @@ echo Done. >&2 exit # $Log: dvitogif89a,v $ +# Revision 3.7 2010/06/10 18:45:49 krisrose +# Reference to GPL by URL. +# +# Revision 3.6 2010/04/16 06:06:51 krisrose +# Preparing for a new release... +# # Revision 3.5 1997/05/28 13:05:01 krisrose # Fixed missing breaks bug. # diff --git a/Master/texmf-dist/source/generic/xypic/install-tds b/Master/texmf-dist/doc/generic/xypic/support/install-tds index da1dd268d46..34c59bc36f0 100644 --- a/Master/texmf-dist/source/generic/xypic/install-tds +++ b/Master/texmf-dist/doc/generic/xypic/support/install-tds @@ -1,11 +1,11 @@ #!/bin/sh -# $Id: install-tds,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +# $Id: install-tds,v 3.13 2010/06/10 18:45:49 krisrose Exp $ # # sh(1) installation of Xy-pic into a TeX Directory Structure system. -# Copyright (c) 1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> +# Copyright (c) 1997 Kristoffer H. Rose <krisrose@tug.org> # # This file is part of the Xy-pic macro package. -# Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> +# Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> # See the README and INSTALL files for further information. # # The Xy-pic package is free software; you can redistribute it and/or modify @@ -19,15 +19,14 @@ # 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. +# with this package; if not, see http://www.gnu.org/licenses/. # check that we are in the right place (and get version :) # greet echo '' echo ' Welcome to the Xy-pic TDS-compliant installation script!' -echo ' Copyright (c) 1997-1998 by Kristoffer.Rose@ENS-Lyon.FR' +echo ' Copyright (c) 1997-1998 by krisrose@tug.org' echo ' Xy-pic is free software: see the User's Guide for details.' echo '' echo ' The author has seriously tried to ensure the portability of' @@ -122,25 +121,44 @@ installd () { echo '' echo 'Installing Xy-pic!' -installd "administrivia" \ - README CATALOG TRAILER INSTALL* MANIFEST VERSIONS COPYING \ +installd "1. administrivia" \ + README CATALOG TRAILER INSTALL MANIFEST VERSIONS *COPYING \ + Xy-pic.html Xy-logo.png \ "$TEXMF/doc/generic/xypic" - -installd "macros" texinputs/* "$TEXMF/tex/generic/xypic" -installd "font metrics" texfonts/*.tfm "$TEXMF/fonts/tfm/public/xypic" -installd "font sources" mfinputs/*.mf "$TEXMF/fonts/source/public/xypic" -installd "ps type1 fonts" type1/*.pfb "$TEXMF/fonts/type1/public/xypic" -installd "ps pfm fonts" pfm/*.pfm "$TEXMF/fonts/pfm/public/xypic" -installd "ps afm metrics" afm/*.afm "$TEXMF/fonts/afm/public/xypic" -installd "ps headers" ps/* "$TEXMF/dvips/xypic" - -[ -d doc ] && installd "manuals" doc/* "$TEXMF/doc/generic/xypic" +installd "2. macros" texinputs/* "$TEXMF/tex/generic/xypic" +installd "3. font metrics" texfonts/*.tfm "$TEXMF/fonts/tfm/public/xypic" +installd "4. font sources" mfinputs/*.mf "$TEXMF/fonts/source/public/xypic" +installd "5. ps type1 fonts" type1/*.pfb "$TEXMF/fonts/type1/public/xypic" +installd "6. ps pfm fonts" pfm/*.pfm "$TEXMF/fonts/pfm/public/xypic" +installd "7. afm metrics" afm/*.afm "$TEXMF/fonts/afm/public/xypic" +installd "8. ps headers" ps/* "$TEXMF/dvips/xypic" +installd "9. ps font maps" map/* "$TEXMF/map/dvips/xypic" +installd "10. ps font encodings" enc/* "$TEXMF/fonts/enc/dvips/xypic" +installd "11. documentation" doc/xyguide.pdf doc/xyrefer.pdf "$TEXMF/doc/generic/xypic" # done echo "Xy-pic installation done." exit # $Log: install-tds,v $ +# Revision 3.13 2010/06/10 18:45:49 krisrose +# Reference to GPL by URL. +# +# Revision 3.12 2010/06/08 07:28:43 krisrose +# Identify .map file. +# +# Revision 3.11 2010/06/07 04:16:53 krisrose +# Fix forgotten enc files. +# +# Revision 3.10 2010/05/09 22:11:05 krisrose +# Loose /usr/bin prefixes. +# +# Revision 3.9 2010/04/22 14:52:09 krisrose +# Documentation up to date. Install PDF encoding files and XYLU metric files. +# +# Revision 3.8 2010/04/16 06:06:51 krisrose +# Preparing for a new release... +# # Revision 3.7 1999/02/16 15:12:50 krisrose # Interim release (Y&Y fonts now free). # diff --git a/Master/texmf-dist/source/generic/xypic/pnmrawtopcropwhite.c b/Master/texmf-dist/doc/generic/xypic/support/pnmrawtopcropwhite.c index a575cfd2b80..e1f69f68abd 100644 --- a/Master/texmf-dist/source/generic/xypic/pnmrawtopcropwhite.c +++ b/Master/texmf-dist/doc/generic/xypic/support/pnmrawtopcropwhite.c @@ -1,10 +1,10 @@ -/* $Id: pnmrawtopcropwhite.c,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +/* $Id: pnmrawtopcropwhite.c,v 3.9 2010/06/10 18:45:49 krisrose Exp $ ** ** Crop off top white lines from raw PBM file (efficiently :) -** Copyright (c) 1991-1998 Kristoffer H. Rose <krisrose@brics.dk> +** Copyright (c) 1991-1998 Kristoffer H. Rose <krisrose@tug.org> ** ** This file is part of the Xy-pic package for graphs and diagrams in TeX. -** Copyright (c) 1991-1998 Kristoffer H. Rose <krisrose@brics.dk> +** Copyright (c) 1991-2010 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 @@ -17,11 +17,10 @@ ** 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. +** with this package; if not, see http://www.gnu.org/licenses/. */ static const char Id[] = -"@(#)$Id: pnmrawtopcropwhite.c,v 3.7 1999/02/16 15:12:50 krisrose Exp $\n"; +"@(#)$Id: pnmrawtopcropwhite.c,v 3.9 2010/06/10 18:45:49 krisrose Exp $\n"; #include <stdio.h> @@ -161,6 +160,12 @@ int main (int argc, char *argv[]) { /* ** $Log: pnmrawtopcropwhite.c,v $ +** Revision 3.9 2010/06/10 18:45:49 krisrose +** Reference to GPL by URL. +** +** Revision 3.8 2010/04/16 06:06:51 krisrose +** Preparing for a new release... +** ** Revision 3.7 1999/02/16 15:12:50 krisrose ** Interim release (Y&Y fonts now free). ** diff --git a/Master/texmf-dist/doc/generic/xypic/xy381src.tar.gz b/Master/texmf-dist/doc/generic/xypic/xy381src.tar.gz Binary files differnew file mode 100644 index 00000000000..22cff91ee2f --- /dev/null +++ b/Master/texmf-dist/doc/generic/xypic/xy381src.tar.gz diff --git a/Master/texmf-dist/doc/generic/xypic/xyguide.pdf b/Master/texmf-dist/doc/generic/xypic/xyguide.pdf Binary files differindex 86fa04b2ceb..3981ff907a4 100644 --- a/Master/texmf-dist/doc/generic/xypic/xyguide.pdf +++ b/Master/texmf-dist/doc/generic/xypic/xyguide.pdf diff --git a/Master/texmf-dist/doc/generic/xypic/xypdf.pdf b/Master/texmf-dist/doc/generic/xypic/xypdf.pdf Binary files differnew file mode 100644 index 00000000000..335549658b5 --- /dev/null +++ b/Master/texmf-dist/doc/generic/xypic/xypdf.pdf diff --git a/Master/texmf-dist/doc/generic/xypic/xyrefer.pdf b/Master/texmf-dist/doc/generic/xypic/xyrefer.pdf Binary files differindex 91d6d943f43..2ddfbae1429 100644 --- a/Master/texmf-dist/doc/generic/xypic/xyrefer.pdf +++ b/Master/texmf-dist/doc/generic/xypic/xyrefer.pdf diff --git a/Master/texmf-dist/doc/generic/xypic/xysource.pdf b/Master/texmf-dist/doc/generic/xypic/xysource.pdf Binary files differnew file mode 100644 index 00000000000..2cf1e03b7bb --- /dev/null +++ b/Master/texmf-dist/doc/generic/xypic/xysource.pdf diff --git a/Master/texmf-dist/dvips/xypic/xy37dict.pro b/Master/texmf-dist/dvips/xypic/xy381dict.pro index d368b669617..76a0f3c5ca8 100644 --- a/Master/texmf-dist/dvips/xypic/xy37dict.pro +++ b/Master/texmf-dist/dvips/xypic/xy381dict.pro @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 Resource-procset -%%Title: xy37dict.pro -%%Version: 3.7 +%%Title: xy381dict.pro +%%Version: 3.8.1 %%Creator: Xy-ps backend to Xy-pic %%DocumentSuppliedProcSets: XYdict %%For: nulluse of Xy-pic diff --git a/Master/texmf-dist/fonts/afm/xypic/xyatip10.afm b/Master/texmf-dist/fonts/afm/xypic/xyatip10.afm new file mode 100644 index 00000000000..5d924d294f9 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyatip10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:54:52 2010 +FontName XYATIP-Medium +FullName XYATIP +FamilyName XYATIP +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -544 -545 544 545 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -20 -20 476 280 ; +C 1 ; WX 0 ; N d1 ; B -20 -20 466 295 ; +C 2 ; WX 0 ; N d2 ; B -20 -20 456 311 ; +C 3 ; WX 0 ; N d3 ; B -21 -21 445 328 ; +C 4 ; WX 0 ; N d4 ; B -20 -20 431 345 ; +C 5 ; WX 0 ; N d5 ; B -20 -20 417 362 ; +C 6 ; WX 0 ; N d6 ; B -20 -20 401 380 ; +C 7 ; WX 0 ; N d7 ; B -21 -21 383 399 ; +C 8 ; WX 0 ; N d8 ; B -20 -21 364 417 ; +C 9 ; WX 0 ; N d9 ; B -20 -20 341 435 ; +C 10 ; WX 0 ; N d10 ; B -21 -21 317 452 ; +C 11 ; WX 0 ; N d11 ; B -21 -21 293 468 ; +C 12 ; WX 0 ; N d12 ; B -20 -20 265 484 ; +C 13 ; WX 0 ; N d13 ; B -20 -20 236 497 ; +C 14 ; WX 0 ; N d14 ; B -20 -21 206 510 ; +C 15 ; WX 0 ; N d15 ; B -20 -21 175 521 ; +C 16 ; WX 0 ; N d16 ; B -20 -21 145 529 ; +C 17 ; WX 0 ; N d17 ; B -21 -20 113 536 ; +C 18 ; WX 0 ; N d18 ; B -25 -20 81 541 ; +C 19 ; WX 0 ; N d19 ; B -35 -21 50 543 ; +C 20 ; WX 0 ; N d20 ; B -47 -20 21 545 ; +C 21 ; WX 0 ; N d21 ; B -64 -20 21 543 ; +C 22 ; WX 0 ; N d22 ; B -85 -21 20 541 ; +C 23 ; WX 0 ; N d23 ; B -107 -20 21 537 ; +C 24 ; WX 0 ; N d24 ; B -131 -20 21 532 ; +C 25 ; WX 0 ; N d25 ; B -154 -21 21 527 ; +C 26 ; WX 0 ; N d26 ; B -177 -21 21 520 ; +C 27 ; WX 0 ; N d27 ; B -197 -21 21 514 ; +C 28 ; WX 0 ; N d28 ; B -216 -20 21 506 ; +C 29 ; WX 0 ; N d29 ; B -233 -20 21 499 ; +C 30 ; WX 0 ; N d30 ; B -249 -20 21 492 ; +C 31 ; WX 0 ; N d31 ; B -264 -20 21 484 ; +C 32 ; WX 0 ; N d32 ; B -279 -20 21 476 ; +C 33 ; WX 0 ; N d33 ; B -295 -21 21 466 ; +C 34 ; WX 0 ; N d34 ; B -312 -21 20 456 ; +C 35 ; WX 0 ; N d35 ; B -328 -20 21 445 ; +C 36 ; WX 0 ; N d36 ; B -344 -21 20 431 ; +C 37 ; WX 0 ; N d37 ; B -362 -21 20 417 ; +C 38 ; WX 0 ; N d38 ; B -380 -20 21 401 ; +C 39 ; WX 0 ; N d39 ; B -398 -19 21 383 ; +C 40 ; WX 0 ; N d40 ; B -417 -19 21 363 ; +C 41 ; WX 0 ; N d41 ; B -435 -20 21 342 ; +C 42 ; WX 0 ; N d42 ; B -452 -21 21 318 ; +C 43 ; WX 0 ; N d43 ; B -468 -20 20 292 ; +C 44 ; WX 0 ; N d44 ; B -483 -19 20 265 ; +C 45 ; WX 0 ; N d45 ; B -497 -20 21 236 ; +C 46 ; WX 0 ; N d46 ; B -511 -20 21 206 ; +C 47 ; WX 0 ; N d47 ; B -521 -20 20 175 ; +C 48 ; WX 0 ; N d48 ; B -530 -20 20 144 ; +C 49 ; WX 0 ; N d49 ; B -536 -21 21 113 ; +C 50 ; WX 0 ; N d50 ; B -541 -26 21 81 ; +C 51 ; WX 0 ; N d51 ; B -543 -35 21 50 ; +C 52 ; WX 0 ; N d52 ; B -544 -48 21 21 ; +C 53 ; WX 0 ; N d53 ; B -543 -65 21 21 ; +C 54 ; WX 0 ; N d54 ; B -541 -84 21 21 ; +C 55 ; WX 0 ; N d55 ; B -537 -107 21 21 ; +C 56 ; WX 0 ; N d56 ; B -532 -131 21 21 ; +C 57 ; WX 0 ; N d57 ; B -527 -154 21 21 ; +C 58 ; WX 0 ; N d58 ; B -521 -176 21 21 ; +C 59 ; WX 0 ; N d59 ; B -514 -197 21 21 ; +C 60 ; WX 0 ; N d60 ; B -507 -216 21 21 ; +C 61 ; WX 0 ; N d61 ; B -499 -234 21 21 ; +C 62 ; WX 0 ; N d62 ; B -491 -248 21 21 ; +C 63 ; WX 0 ; N d63 ; B -484 -264 21 21 ; +C 64 ; WX 0 ; N d64 ; B -476 -280 21 21 ; +C 65 ; WX 0 ; N d65 ; B -466 -295 21 21 ; +C 66 ; WX 0 ; N d66 ; B -456 -312 21 21 ; +C 67 ; WX 0 ; N d67 ; B -445 -328 21 21 ; +C 68 ; WX 0 ; N d68 ; B -431 -345 21 21 ; +C 69 ; WX 0 ; N d69 ; B -417 -362 21 21 ; +C 70 ; WX 0 ; N d70 ; B -401 -380 21 21 ; +C 71 ; WX 0 ; N d71 ; B -383 -398 21 21 ; +C 72 ; WX 0 ; N d72 ; B -364 -417 21 21 ; +C 73 ; WX 0 ; N d73 ; B -341 -434 21 21 ; +C 74 ; WX 0 ; N d74 ; B -317 -452 21 21 ; +C 75 ; WX 0 ; N d75 ; B -292 -469 21 21 ; +C 76 ; WX 0 ; N d76 ; B -265 -483 21 21 ; +C 77 ; WX 0 ; N d77 ; B -236 -497 21 21 ; +C 78 ; WX 0 ; N d78 ; B -206 -510 21 21 ; +C 79 ; WX 0 ; N d79 ; B -175 -521 21 21 ; +C 80 ; WX 0 ; N d80 ; B -145 -528 21 21 ; +C 81 ; WX 0 ; N d81 ; B -112 -536 21 21 ; +C 82 ; WX 0 ; N d82 ; B -81 -541 25 21 ; +C 83 ; WX 0 ; N d83 ; B -50 -543 34 21 ; +C 84 ; WX 0 ; N d84 ; B -20 -545 47 21 ; +C 85 ; WX 0 ; N d85 ; B -20 -543 64 21 ; +C 86 ; WX 0 ; N d86 ; B -20 -541 84 21 ; +C 87 ; WX 0 ; N d87 ; B -20 -537 107 21 ; +C 88 ; WX 0 ; N d88 ; B -20 -533 131 21 ; +C 89 ; WX 0 ; N d89 ; B -20 -527 154 21 ; +C 90 ; WX 0 ; N d90 ; B -20 -521 176 21 ; +C 91 ; WX 0 ; N d91 ; B -20 -514 197 21 ; +C 92 ; WX 0 ; N d92 ; B -20 -507 216 21 ; +C 93 ; WX 0 ; N d93 ; B -20 -499 233 21 ; +C 94 ; WX 0 ; N d94 ; B -21 -491 249 21 ; +C 95 ; WX 0 ; N d95 ; B -20 -484 264 21 ; +C 96 ; WX 0 ; N d96 ; B -20 -476 280 21 ; +C 97 ; WX 0 ; N d97 ; B -20 -467 295 21 ; +C 98 ; WX 0 ; N d98 ; B -20 -456 312 21 ; +C 99 ; WX 0 ; N d99 ; B -20 -445 328 21 ; +C 100 ; WX 0 ; N d100 ; B -21 -431 345 21 ; +C 101 ; WX 0 ; N d101 ; B -20 -417 362 21 ; +C 102 ; WX 0 ; N d102 ; B -21 -401 380 21 ; +C 103 ; WX 0 ; N d103 ; B -20 -383 398 22 ; +C 104 ; WX 0 ; N d104 ; B -20 -362 417 21 ; +C 105 ; WX 0 ; N d105 ; B -20 -340 434 21 ; +C 106 ; WX 0 ; N d106 ; B -20 -317 452 21 ; +C 107 ; WX 0 ; N d107 ; B -20 -292 468 21 ; +C 108 ; WX 0 ; N d108 ; B -20 -265 483 21 ; +C 109 ; WX 0 ; N d109 ; B -20 -235 497 21 ; +C 110 ; WX 0 ; N d110 ; B -20 -205 511 21 ; +C 111 ; WX 0 ; N d111 ; B -20 -176 521 21 ; +C 112 ; WX 0 ; N d112 ; B -20 -143 529 21 ; +C 113 ; WX 0 ; N d113 ; B -20 -112 536 21 ; +C 114 ; WX 0 ; N d114 ; B -20 -81 541 25 ; +C 115 ; WX 0 ; N d115 ; B -20 -50 544 35 ; +C 116 ; WX 0 ; N d116 ; B -20 -20 544 48 ; +C 117 ; WX 0 ; N d117 ; B -20 -21 543 64 ; +C 118 ; WX 0 ; N d118 ; B -20 -21 541 84 ; +C 119 ; WX 0 ; N d119 ; B -20 -21 537 106 ; +C 120 ; WX 0 ; N d120 ; B -20 -21 533 131 ; +C 121 ; WX 0 ; N d121 ; B -20 -20 527 154 ; +C 122 ; WX 0 ; N d122 ; B -20 -20 520 176 ; +C 123 ; WX 0 ; N d123 ; B -20 -21 514 197 ; +C 124 ; WX 0 ; N d124 ; B -20 -20 507 216 ; +C 125 ; WX 0 ; N d125 ; B -20 -20 499 233 ; +C 126 ; WX 0 ; N d126 ; B -20 -20 491 249 ; +C 127 ; WX 0 ; N d127 ; B -20 -20 484 264 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xybsql10.afm b/Master/texmf-dist/fonts/afm/xypic/xybsql10.afm new file mode 100644 index 00000000000..2122605f258 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xybsql10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:54:54 2010 +FontName XYBSQL-Medium +FullName XYBSQL +FamilyName XYBSQL +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -374 -374 374 374 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -262 -278 21 21 ; +C 1 ; WX 0 ; N d1 ; B -254 -287 21 21 ; +C 2 ; WX 0 ; N d2 ; B -246 -294 21 21 ; +C 3 ; WX 0 ; N d3 ; B -235 -304 21 21 ; +C 4 ; WX 0 ; N d4 ; B -225 -312 21 21 ; +C 5 ; WX 0 ; N d5 ; B -214 -320 21 21 ; +C 6 ; WX 0 ; N d6 ; B -202 -329 21 21 ; +C 7 ; WX 0 ; N d7 ; B -192 -337 21 21 ; +C 8 ; WX 0 ; N d8 ; B -179 -344 21 21 ; +C 9 ; WX 0 ; N d9 ; B -167 -352 21 21 ; +C 10 ; WX 0 ; N d10 ; B -154 -359 21 21 ; +C 11 ; WX 0 ; N d11 ; B -142 -363 21 21 ; +C 12 ; WX 0 ; N d12 ; B -129 -369 21 21 ; +C 13 ; WX 0 ; N d13 ; B -117 -372 21 21 ; +C 14 ; WX 0 ; N d14 ; B -105 -374 21 21 ; +C 15 ; WX 0 ; N d15 ; B -93 -374 21 21 ; +C 16 ; WX 0 ; N d16 ; B -82 -374 43 21 ; +C 17 ; WX 0 ; N d17 ; B -72 -372 64 21 ; +C 18 ; WX 0 ; N d18 ; B -63 -368 86 21 ; +C 19 ; WX 0 ; N d19 ; B -56 -364 107 21 ; +C 20 ; WX 0 ; N d20 ; B -49 -358 126 21 ; +C 21 ; WX 0 ; N d21 ; B -43 -351 145 21 ; +C 22 ; WX 0 ; N d22 ; B -38 -345 163 21 ; +C 23 ; WX 0 ; N d23 ; B -33 -338 179 21 ; +C 24 ; WX 0 ; N d24 ; B -30 -329 194 21 ; +C 25 ; WX 0 ; N d25 ; B -27 -320 208 21 ; +C 26 ; WX 0 ; N d26 ; B -25 -313 221 21 ; +C 27 ; WX 0 ; N d27 ; B -23 -303 233 21 ; +C 28 ; WX 0 ; N d28 ; B -21 -296 244 21 ; +C 29 ; WX 0 ; N d29 ; B -22 -287 253 21 ; +C 30 ; WX 0 ; N d30 ; B -21 -279 262 21 ; +C 31 ; WX 0 ; N d31 ; B -19 -271 271 21 ; +C 32 ; WX 0 ; N d32 ; B -21 -261 278 21 ; +C 33 ; WX 0 ; N d33 ; B -21 -254 287 21 ; +C 34 ; WX 0 ; N d34 ; B -21 -246 295 21 ; +C 35 ; WX 0 ; N d35 ; B -20 -235 304 21 ; +C 36 ; WX 0 ; N d36 ; B -21 -225 312 21 ; +C 37 ; WX 0 ; N d37 ; B -21 -214 320 21 ; +C 38 ; WX 0 ; N d38 ; B -20 -203 329 21 ; +C 39 ; WX 0 ; N d39 ; B -20 -191 337 21 ; +C 40 ; WX 0 ; N d40 ; B -21 -179 345 21 ; +C 41 ; WX 0 ; N d41 ; B -20 -167 352 21 ; +C 42 ; WX 0 ; N d42 ; B -20 -155 358 21 ; +C 43 ; WX 0 ; N d43 ; B -20 -142 363 21 ; +C 44 ; WX 0 ; N d44 ; B -20 -129 369 21 ; +C 45 ; WX 0 ; N d45 ; B -20 -117 371 21 ; +C 46 ; WX 0 ; N d46 ; B -20 -105 374 21 ; +C 47 ; WX 0 ; N d47 ; B -20 -95 374 21 ; +C 48 ; WX 0 ; N d48 ; B -20 -83 374 43 ; +C 49 ; WX 0 ; N d49 ; B -20 -73 372 64 ; +C 50 ; WX 0 ; N d50 ; B -20 -65 369 86 ; +C 51 ; WX 0 ; N d51 ; B -20 -56 363 106 ; +C 52 ; WX 0 ; N d52 ; B -20 -49 358 126 ; +C 53 ; WX 0 ; N d53 ; B -20 -43 351 145 ; +C 54 ; WX 0 ; N d54 ; B -20 -39 344 162 ; +C 55 ; WX 0 ; N d55 ; B -20 -32 337 178 ; +C 56 ; WX 0 ; N d56 ; B -20 -31 329 194 ; +C 57 ; WX 0 ; N d57 ; B -20 -28 320 208 ; +C 58 ; WX 0 ; N d58 ; B -20 -25 312 221 ; +C 59 ; WX 0 ; N d59 ; B -20 -23 304 233 ; +C 60 ; WX 0 ; N d60 ; B -20 -22 295 243 ; +C 61 ; WX 0 ; N d61 ; B -20 -21 287 254 ; +C 62 ; WX 0 ; N d62 ; B -20 -21 277 262 ; +C 63 ; WX 0 ; N d63 ; B -20 -19 271 271 ; +C 64 ; WX 0 ; N d64 ; B -20 -20 262 278 ; +C 65 ; WX 0 ; N d65 ; B -20 -21 253 287 ; +C 66 ; WX 0 ; N d66 ; B -20 -21 246 295 ; +C 67 ; WX 0 ; N d67 ; B -20 -21 235 303 ; +C 68 ; WX 0 ; N d68 ; B -20 -21 225 312 ; +C 69 ; WX 0 ; N d69 ; B -20 -20 214 320 ; +C 70 ; WX 0 ; N d70 ; B -20 -21 202 329 ; +C 71 ; WX 0 ; N d71 ; B -20 -20 192 337 ; +C 72 ; WX 0 ; N d72 ; B -20 -20 179 345 ; +C 73 ; WX 0 ; N d73 ; B -20 -20 167 352 ; +C 74 ; WX 0 ; N d74 ; B -20 -20 154 359 ; +C 75 ; WX 0 ; N d75 ; B -20 -20 142 363 ; +C 76 ; WX 0 ; N d76 ; B -20 -20 130 368 ; +C 77 ; WX 0 ; N d77 ; B -20 -20 117 371 ; +C 78 ; WX 0 ; N d78 ; B -20 -20 105 374 ; +C 79 ; WX 0 ; N d79 ; B -20 -20 93 374 ; +C 80 ; WX 0 ; N d80 ; B -43 -20 82 373 ; +C 81 ; WX 0 ; N d81 ; B -64 -20 72 371 ; +C 82 ; WX 0 ; N d82 ; B -86 -21 64 368 ; +C 83 ; WX 0 ; N d83 ; B -107 -21 56 363 ; +C 84 ; WX 0 ; N d84 ; B -126 -20 49 358 ; +C 85 ; WX 0 ; N d85 ; B -145 -20 43 352 ; +C 86 ; WX 0 ; N d86 ; B -163 -21 38 344 ; +C 87 ; WX 0 ; N d87 ; B -179 -20 32 337 ; +C 88 ; WX 0 ; N d88 ; B -195 -21 30 329 ; +C 89 ; WX 0 ; N d89 ; B -208 -21 27 321 ; +C 90 ; WX 0 ; N d90 ; B -221 -21 26 312 ; +C 91 ; WX 0 ; N d91 ; B -233 -20 23 303 ; +C 92 ; WX 0 ; N d92 ; B -244 -21 22 295 ; +C 93 ; WX 0 ; N d93 ; B -254 -21 20 287 ; +C 94 ; WX 0 ; N d94 ; B -262 -21 20 278 ; +C 95 ; WX 0 ; N d95 ; B -271 -20 21 271 ; +C 96 ; WX 0 ; N d96 ; B -278 -21 21 262 ; +C 97 ; WX 0 ; N d97 ; B -287 -20 21 254 ; +C 98 ; WX 0 ; N d98 ; B -295 -20 21 245 ; +C 99 ; WX 0 ; N d99 ; B -304 -21 21 235 ; +C 100 ; WX 0 ; N d100 ; B -312 -20 21 225 ; +C 101 ; WX 0 ; N d101 ; B -320 -20 21 214 ; +C 102 ; WX 0 ; N d102 ; B -329 -21 20 203 ; +C 103 ; WX 0 ; N d103 ; B -337 -20 21 192 ; +C 104 ; WX 0 ; N d104 ; B -344 -20 21 179 ; +C 105 ; WX 0 ; N d105 ; B -352 -21 21 167 ; +C 106 ; WX 0 ; N d106 ; B -358 -21 21 155 ; +C 107 ; WX 0 ; N d107 ; B -363 -20 21 142 ; +C 108 ; WX 0 ; N d108 ; B -369 -20 21 129 ; +C 109 ; WX 0 ; N d109 ; B -371 -20 21 117 ; +C 110 ; WX 0 ; N d110 ; B -374 -21 21 105 ; +C 111 ; WX 0 ; N d111 ; B -374 -20 21 94 ; +C 112 ; WX 0 ; N d112 ; B -374 -43 21 83 ; +C 113 ; WX 0 ; N d113 ; B -372 -63 21 73 ; +C 114 ; WX 0 ; N d114 ; B -369 -86 21 64 ; +C 115 ; WX 0 ; N d115 ; B -363 -106 21 56 ; +C 116 ; WX 0 ; N d116 ; B -358 -126 21 49 ; +C 117 ; WX 0 ; N d117 ; B -351 -145 21 43 ; +C 118 ; WX 0 ; N d118 ; B -344 -163 21 38 ; +C 119 ; WX 0 ; N d119 ; B -337 -178 20 33 ; +C 120 ; WX 0 ; N d120 ; B -329 -194 20 30 ; +C 121 ; WX 0 ; N d121 ; B -320 -208 21 27 ; +C 122 ; WX 0 ; N d122 ; B -313 -221 21 25 ; +C 123 ; WX 0 ; N d123 ; B -303 -232 21 23 ; +C 124 ; WX 0 ; N d124 ; B -295 -244 21 22 ; +C 125 ; WX 0 ; N d125 ; B -287 -254 21 21 ; +C 126 ; WX 0 ; N d126 ; B -277 -262 21 21 ; +C 127 ; WX 0 ; N d127 ; B -271 -271 21 21 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xybtip10.afm b/Master/texmf-dist/fonts/afm/xypic/xybtip10.afm new file mode 100644 index 00000000000..6538f3ec287 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xybtip10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:54:56 2010 +FontName XYBTIP-Medium +FullName XYBTIP +FamilyName XYBTIP +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -544 -544 544 544 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -21 -21 249 491 ; +C 1 ; WX 0 ; N d1 ; B -20 -21 233 499 ; +C 2 ; WX 0 ; N d2 ; B -20 -21 216 506 ; +C 3 ; WX 0 ; N d3 ; B -20 -21 197 514 ; +C 4 ; WX 0 ; N d4 ; B -20 -21 177 521 ; +C 5 ; WX 0 ; N d5 ; B -20 -20 154 527 ; +C 6 ; WX 0 ; N d6 ; B -21 -21 131 532 ; +C 7 ; WX 0 ; N d7 ; B -21 -20 107 538 ; +C 8 ; WX 0 ; N d8 ; B -21 -20 84 541 ; +C 9 ; WX 0 ; N d9 ; B -20 -21 64 543 ; +C 10 ; WX 0 ; N d10 ; B -20 -21 47 544 ; +C 11 ; WX 0 ; N d11 ; B -50 -21 34 544 ; +C 12 ; WX 0 ; N d12 ; B -81 -21 26 541 ; +C 13 ; WX 0 ; N d13 ; B -113 -21 22 537 ; +C 14 ; WX 0 ; N d14 ; B -144 -20 21 529 ; +C 15 ; WX 0 ; N d15 ; B -175 -21 21 521 ; +C 16 ; WX 0 ; N d16 ; B -206 -21 20 510 ; +C 17 ; WX 0 ; N d17 ; B -236 -21 21 497 ; +C 18 ; WX 0 ; N d18 ; B -265 -20 21 484 ; +C 19 ; WX 0 ; N d19 ; B -292 -20 21 468 ; +C 20 ; WX 0 ; N d20 ; B -318 -21 21 452 ; +C 21 ; WX 0 ; N d21 ; B -341 -21 20 435 ; +C 22 ; WX 0 ; N d22 ; B -364 -20 21 417 ; +C 23 ; WX 0 ; N d23 ; B -383 -21 21 398 ; +C 24 ; WX 0 ; N d24 ; B -401 -21 21 381 ; +C 25 ; WX 0 ; N d25 ; B -417 -21 21 362 ; +C 26 ; WX 0 ; N d26 ; B -431 -21 21 345 ; +C 27 ; WX 0 ; N d27 ; B -445 -21 21 328 ; +C 28 ; WX 0 ; N d28 ; B -456 -21 20 311 ; +C 29 ; WX 0 ; N d29 ; B -466 -21 20 295 ; +C 30 ; WX 0 ; N d30 ; B -476 -20 20 279 ; +C 31 ; WX 0 ; N d31 ; B -484 -21 21 264 ; +C 32 ; WX 0 ; N d32 ; B -491 -20 21 249 ; +C 33 ; WX 0 ; N d33 ; B -499 -21 21 233 ; +C 34 ; WX 0 ; N d34 ; B -507 -19 21 216 ; +C 35 ; WX 0 ; N d35 ; B -514 -21 21 197 ; +C 36 ; WX 0 ; N d36 ; B -520 -20 21 176 ; +C 37 ; WX 0 ; N d37 ; B -527 -21 21 154 ; +C 38 ; WX 0 ; N d38 ; B -533 -20 21 131 ; +C 39 ; WX 0 ; N d39 ; B -537 -20 21 106 ; +C 40 ; WX 0 ; N d40 ; B -541 -20 21 84 ; +C 41 ; WX 0 ; N d41 ; B -543 -20 21 64 ; +C 42 ; WX 0 ; N d42 ; B -544 -21 21 47 ; +C 43 ; WX 0 ; N d43 ; B -543 -50 21 35 ; +C 44 ; WX 0 ; N d44 ; B -541 -81 21 25 ; +C 45 ; WX 0 ; N d45 ; B -536 -112 21 21 ; +C 46 ; WX 0 ; N d46 ; B -529 -143 21 21 ; +C 47 ; WX 0 ; N d47 ; B -521 -176 21 21 ; +C 48 ; WX 0 ; N d48 ; B -510 -205 21 21 ; +C 49 ; WX 0 ; N d49 ; B -497 -235 21 21 ; +C 50 ; WX 0 ; N d50 ; B -483 -265 21 21 ; +C 51 ; WX 0 ; N d51 ; B -468 -292 21 21 ; +C 52 ; WX 0 ; N d52 ; B -452 -317 21 21 ; +C 53 ; WX 0 ; N d53 ; B -434 -340 21 21 ; +C 54 ; WX 0 ; N d54 ; B -417 -362 21 21 ; +C 55 ; WX 0 ; N d55 ; B -398 -383 21 21 ; +C 56 ; WX 0 ; N d56 ; B -380 -401 21 21 ; +C 57 ; WX 0 ; N d57 ; B -362 -417 21 21 ; +C 58 ; WX 0 ; N d58 ; B -345 -431 21 21 ; +C 59 ; WX 0 ; N d59 ; B -328 -445 21 21 ; +C 60 ; WX 0 ; N d60 ; B -312 -456 21 21 ; +C 61 ; WX 0 ; N d61 ; B -295 -467 21 21 ; +C 62 ; WX 0 ; N d62 ; B -280 -476 21 21 ; +C 63 ; WX 0 ; N d63 ; B -264 -484 21 21 ; +C 64 ; WX 0 ; N d64 ; B -249 -491 21 21 ; +C 65 ; WX 0 ; N d65 ; B -233 -499 21 21 ; +C 66 ; WX 0 ; N d66 ; B -216 -507 21 21 ; +C 67 ; WX 0 ; N d67 ; B -197 -514 21 21 ; +C 68 ; WX 0 ; N d68 ; B -176 -521 21 21 ; +C 69 ; WX 0 ; N d69 ; B -154 -527 21 21 ; +C 70 ; WX 0 ; N d70 ; B -131 -533 21 21 ; +C 71 ; WX 0 ; N d71 ; B -107 -537 21 21 ; +C 72 ; WX 0 ; N d72 ; B -84 -541 21 21 ; +C 73 ; WX 0 ; N d73 ; B -65 -543 21 21 ; +C 74 ; WX 0 ; N d74 ; B -47 -544 21 21 ; +C 75 ; WX 0 ; N d75 ; B -35 -543 50 21 ; +C 76 ; WX 0 ; N d76 ; B -25 -541 81 21 ; +C 77 ; WX 0 ; N d77 ; B -21 -536 112 21 ; +C 78 ; WX 0 ; N d78 ; B -20 -528 145 21 ; +C 79 ; WX 0 ; N d79 ; B -21 -521 175 21 ; +C 80 ; WX 0 ; N d80 ; B -20 -510 206 21 ; +C 81 ; WX 0 ; N d81 ; B -20 -497 236 21 ; +C 82 ; WX 0 ; N d82 ; B -20 -483 265 21 ; +C 83 ; WX 0 ; N d83 ; B -20 -469 292 21 ; +C 84 ; WX 0 ; N d84 ; B -21 -452 317 21 ; +C 85 ; WX 0 ; N d85 ; B -20 -434 341 21 ; +C 86 ; WX 0 ; N d86 ; B -20 -417 364 21 ; +C 87 ; WX 0 ; N d87 ; B -20 -398 383 21 ; +C 88 ; WX 0 ; N d88 ; B -20 -380 401 21 ; +C 89 ; WX 0 ; N d89 ; B -20 -362 417 21 ; +C 90 ; WX 0 ; N d90 ; B -20 -345 431 21 ; +C 91 ; WX 0 ; N d91 ; B -20 -328 445 21 ; +C 92 ; WX 0 ; N d92 ; B -20 -312 456 21 ; +C 93 ; WX 0 ; N d93 ; B -20 -295 466 21 ; +C 94 ; WX 0 ; N d94 ; B -20 -279 476 21 ; +C 95 ; WX 0 ; N d95 ; B -20 -264 484 21 ; +C 96 ; WX 0 ; N d96 ; B -20 -248 491 21 ; +C 97 ; WX 0 ; N d97 ; B -20 -234 499 21 ; +C 98 ; WX 0 ; N d98 ; B -20 -216 507 21 ; +C 99 ; WX 0 ; N d99 ; B -20 -197 514 21 ; +C 100 ; WX 0 ; N d100 ; B -20 -177 520 21 ; +C 101 ; WX 0 ; N d101 ; B -20 -154 527 21 ; +C 102 ; WX 0 ; N d102 ; B -20 -131 532 21 ; +C 103 ; WX 0 ; N d103 ; B -20 -107 537 21 ; +C 104 ; WX 0 ; N d104 ; B -20 -84 541 21 ; +C 105 ; WX 0 ; N d105 ; B -20 -65 543 21 ; +C 106 ; WX 0 ; N d106 ; B -20 -48 544 21 ; +C 107 ; WX 0 ; N d107 ; B -20 -35 544 50 ; +C 108 ; WX 0 ; N d108 ; B -20 -25 541 81 ; +C 109 ; WX 0 ; N d109 ; B -20 -21 536 112 ; +C 110 ; WX 0 ; N d110 ; B -20 -20 530 144 ; +C 111 ; WX 0 ; N d111 ; B -20 -20 521 175 ; +C 112 ; WX 0 ; N d112 ; B -20 -20 510 206 ; +C 113 ; WX 0 ; N d113 ; B -20 -21 497 237 ; +C 114 ; WX 0 ; N d114 ; B -20 -20 483 265 ; +C 115 ; WX 0 ; N d115 ; B -20 -21 468 292 ; +C 116 ; WX 0 ; N d116 ; B -20 -20 452 318 ; +C 117 ; WX 0 ; N d117 ; B -20 -20 434 341 ; +C 118 ; WX 0 ; N d118 ; B -20 -21 417 363 ; +C 119 ; WX 0 ; N d119 ; B -20 -21 398 383 ; +C 120 ; WX 0 ; N d120 ; B -21 -20 380 401 ; +C 121 ; WX 0 ; N d121 ; B -20 -21 362 418 ; +C 122 ; WX 0 ; N d122 ; B -21 -21 345 431 ; +C 123 ; WX 0 ; N d123 ; B -20 -21 328 445 ; +C 124 ; WX 0 ; N d124 ; B -20 -21 312 457 ; +C 125 ; WX 0 ; N d125 ; B -20 -21 295 466 ; +C 126 ; WX 0 ; N d126 ; B -20 -20 279 476 ; +C 127 ; WX 0 ; N d127 ; B -20 -20 264 484 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xycirc10.afm b/Master/texmf-dist/fonts/afm/xypic/xycirc10.afm new file mode 100644 index 00000000000..3ef6f7ea834 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xycirc10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:54:59 2010 +FontName XYCIRC-Medium +FullName XYCIRC +FamilyName XYCIRC +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch false +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -21 -3220 2284 3221 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 29 ; N c0 ; B -21 -91 50 21 ; +C 1 ; WX 71 ; N c1 ; B -20 -122 91 -50 ; +C 2 ; WX 71 ; N c2 ; B -20 -120 92 -50 ; +C 3 ; WX 29 ; N c3 ; B -20 -91 50 21 ; +C 4 ; WX 29 ; N c4 ; B -20 -20 51 91 ; +C 5 ; WX 71 ; N c5 ; B -20 50 91 121 ; +C 6 ; WX 71 ; N c6 ; B -20 51 91 121 ; +C 7 ; WX 29 ; N c7 ; B -21 -20 50 92 ; +C 8 ; WX 59 ; N c8 ; B -19 -162 79 21 ; +C 9 ; WX 141 ; N c9 ; B -20 -221 162 -121 ; +C 10 ; WX 141 ; N c10 ; B -20 -222 162 -121 ; +C 11 ; WX 59 ; N c11 ; B -20 -162 79 21 ; +C 12 ; WX 59 ; N c12 ; B -20 -20 79 162 ; +C 13 ; WX 141 ; N c13 ; B -20 120 162 221 ; +C 14 ; WX 141 ; N c14 ; B -20 121 162 221 ; +C 15 ; WX 59 ; N c15 ; B -19 -20 79 163 ; +C 16 ; WX 88 ; N c16 ; B -19 -233 109 21 ; +C 17 ; WX 212 ; N c17 ; B -20 -321 233 -191 ; +C 18 ; WX 212 ; N c18 ; B -20 -322 233 -191 ; +C 19 ; WX 88 ; N c19 ; B -20 -232 108 21 ; +C 20 ; WX 88 ; N c20 ; B -20 -20 108 233 ; +C 21 ; WX 212 ; N c21 ; B -20 191 233 321 ; +C 22 ; WX 212 ; N c22 ; B -21 191 233 321 ; +C 23 ; WX 88 ; N c23 ; B -19 -20 109 233 ; +C 24 ; WX 117 ; N c24 ; B -19 -303 137 21 ; +C 25 ; WX 283 ; N c25 ; B -21 -421 303 -262 ; +C 26 ; WX 283 ; N c26 ; B -20 -420 303 -262 ; +C 27 ; WX 117 ; N c27 ; B -20 -303 139 21 ; +C 28 ; WX 117 ; N c28 ; B -20 -20 138 303 ; +C 29 ; WX 283 ; N c29 ; B -20 263 303 421 ; +C 30 ; WX 283 ; N c30 ; B -20 263 303 421 ; +C 31 ; WX 117 ; N c31 ; B -19 -20 137 303 ; +C 32 ; WX 146 ; N c32 ; B -20 -373 167 21 ; +C 33 ; WX 354 ; N c33 ; B -20 -521 374 -332 ; +C 34 ; WX 354 ; N c34 ; B -20 -521 374 -333 ; +C 35 ; WX 146 ; N c35 ; B -20 -374 167 21 ; +C 36 ; WX 146 ; N c36 ; B -20 -20 167 374 ; +C 37 ; WX 354 ; N c37 ; B -20 333 374 521 ; +C 38 ; WX 354 ; N c38 ; B -20 333 374 521 ; +C 39 ; WX 146 ; N c39 ; B -20 -20 167 374 ; +C 40 ; WX 176 ; N c40 ; B -19 -445 196 21 ; +C 41 ; WX 424 ; N c41 ; B -20 -621 445 -403 ; +C 42 ; WX 424 ; N c42 ; B -20 -620 445 -403 ; +C 43 ; WX 176 ; N c43 ; B -20 -444 196 21 ; +C 44 ; WX 176 ; N c44 ; B -20 -20 196 445 ; +C 45 ; WX 424 ; N c45 ; B -20 403 445 621 ; +C 46 ; WX 424 ; N c46 ; B -20 403 446 621 ; +C 47 ; WX 176 ; N c47 ; B -19 -20 196 445 ; +C 48 ; WX 205 ; N c48 ; B -20 -515 226 21 ; +C 49 ; WX 495 ; N c49 ; B -21 -721 515 -474 ; +C 50 ; WX 495 ; N c50 ; B -20 -721 516 -474 ; +C 51 ; WX 205 ; N c51 ; B -20 -515 226 21 ; +C 52 ; WX 205 ; N c52 ; B -20 -20 226 515 ; +C 53 ; WX 495 ; N c53 ; B -20 474 515 721 ; +C 54 ; WX 495 ; N c54 ; B -21 475 515 721 ; +C 55 ; WX 205 ; N c55 ; B -20 -20 226 515 ; +C 56 ; WX 234 ; N c56 ; B -19 -587 256 21 ; +C 57 ; WX 566 ; N c57 ; B -20 -820 586 -545 ; +C 58 ; WX 566 ; N c58 ; B -20 -821 586 -545 ; +C 59 ; WX 234 ; N c59 ; B -20 -586 255 21 ; +C 60 ; WX 234 ; N c60 ; B -20 -20 255 587 ; +C 61 ; WX 566 ; N c61 ; B -20 545 587 821 ; +C 62 ; WX 566 ; N c62 ; B -20 545 586 821 ; +C 63 ; WX 234 ; N c63 ; B -19 -20 256 586 ; +C 64 ; WX 293 ; N c64 ; B -19 -728 314 21 ; +C 65 ; WX 707 ; N c65 ; B -21 -1021 728 -687 ; +C 66 ; WX 707 ; N c66 ; B -20 -1020 728 -687 ; +C 67 ; WX 293 ; N c67 ; B -21 -728 313 21 ; +C 68 ; WX 293 ; N c68 ; B -21 -20 313 728 ; +C 69 ; WX 707 ; N c69 ; B -20 686 728 1021 ; +C 70 ; WX 707 ; N c70 ; B -20 687 728 1021 ; +C 71 ; WX 293 ; N c71 ; B -19 -20 314 728 ; +C 72 ; WX 351 ; N c72 ; B -21 -869 372 21 ; +C 73 ; WX 849 ; N c73 ; B -20 -1220 869 -828 ; +C 74 ; WX 849 ; N c74 ; B -20 -1221 869 -828 ; +C 75 ; WX 351 ; N c75 ; B -20 -869 373 21 ; +C 76 ; WX 351 ; N c76 ; B -20 -20 372 870 ; +C 77 ; WX 849 ; N c77 ; B -20 828 869 1221 ; +C 78 ; WX 849 ; N c78 ; B -20 828 869 1221 ; +C 79 ; WX 351 ; N c79 ; B -20 -20 372 869 ; +C 80 ; WX 410 ; N c80 ; B -19 -1011 431 21 ; +C 81 ; WX 990 ; N c81 ; B -21 -1421 1010 -969 ; +C 82 ; WX 990 ; N c82 ; B -20 -1421 1011 -969 ; +C 83 ; WX 410 ; N c83 ; B -20 -1010 431 21 ; +C 84 ; WX 410 ; N c84 ; B -20 -20 431 1010 ; +C 85 ; WX 990 ; N c85 ; B -20 969 1010 1421 ; +C 86 ; WX 990 ; N c86 ; B -21 970 1010 1421 ; +C 87 ; WX 410 ; N c87 ; B -19 -20 431 1010 ; +C 88 ; WX 469 ; N c88 ; B -20 -1152 490 21 ; +C 89 ; WX 1131 ; N c89 ; B -20 -1622 1152 -1110 ; +C 90 ; WX 1131 ; N c90 ; B -20 -1620 1152 -1110 ; +C 91 ; WX 469 ; N c91 ; B -20 -1152 489 21 ; +C 92 ; WX 469 ; N c92 ; B -20 -20 489 1153 ; +C 93 ; WX 1131 ; N c93 ; B -20 1110 1152 1621 ; +C 94 ; WX 1131 ; N c94 ; B -20 1110 1152 1621 ; +C 95 ; WX 469 ; N c95 ; B -21 -20 490 1153 ; +C 96 ; WX 586 ; N c96 ; B -20 -1435 606 21 ; +C 97 ; WX 1414 ; N c97 ; B -21 -2021 1435 -1394 ; +C 98 ; WX 1414 ; N c98 ; B -20 -2020 1435 -1393 ; +C 99 ; WX 586 ; N c99 ; B -21 -1435 606 21 ; +C 100 ; WX 586 ; N c100 ; B -20 -20 606 1435 ; +C 101 ; WX 1414 ; N c101 ; B -20 1393 1435 2021 ; +C 102 ; WX 1414 ; N c102 ; B -20 1393 1435 2021 ; +C 103 ; WX 586 ; N c103 ; B -20 -20 606 1435 ; +C 104 ; WX 703 ; N c104 ; B -20 -1718 724 21 ; +C 105 ; WX 1697 ; N c105 ; B -21 -2421 1718 -1677 ; +C 106 ; WX 1697 ; N c106 ; B -21 -2420 1718 -1677 ; +C 107 ; WX 703 ; N c107 ; B -21 -1718 723 21 ; +C 108 ; WX 703 ; N c108 ; B -21 -20 723 1718 ; +C 109 ; WX 1697 ; N c109 ; B -20 1676 1718 2421 ; +C 110 ; WX 1697 ; N c110 ; B -21 1677 1718 2421 ; +C 111 ; WX 703 ; N c111 ; B -20 -20 724 1718 ; +C 112 ; WX 820 ; N c112 ; B -19 -2001 840 21 ; +C 113 ; WX 1980 ; N c113 ; B -21 -2820 2000 -1959 ; +C 114 ; WX 1980 ; N c114 ; B -21 -2820 2001 -1959 ; +C 115 ; WX 820 ; N c115 ; B -20 -2000 841 21 ; +C 116 ; WX 820 ; N c116 ; B -20 -20 841 2000 ; +C 117 ; WX 1980 ; N c117 ; B -20 1959 2001 2821 ; +C 118 ; WX 1980 ; N c118 ; B -21 1959 2000 2821 ; +C 119 ; WX 820 ; N c119 ; B -19 -20 841 2000 ; +C 120 ; WX 937 ; N c120 ; B -21 -2284 958 21 ; +C 121 ; WX 2263 ; N c121 ; B -20 -3220 2283 -2242 ; +C 122 ; WX 2263 ; N c122 ; B -21 -3220 2284 -2242 ; +C 123 ; WX 937 ; N c123 ; B -20 -2283 958 21 ; +C 124 ; WX 937 ; N c124 ; B -20 -20 959 2284 ; +C 125 ; WX 2263 ; N c125 ; B -20 2242 2283 3221 ; +C 126 ; WX 2263 ; N c126 ; B -20 2242 2283 3221 ; +C 127 ; WX 937 ; N c127 ; B -20 -21 958 2283 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xycmat10.afm b/Master/texmf-dist/fonts/afm/xypic/xycmat10.afm new file mode 100644 index 00000000000..ca3b0051c1c --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xycmat10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:14 2010 +FontName XYCMAT-Medium +FullName XYCMAT +FamilyName XYCMAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -341 -341 341 341 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -20 -46 340 50 ; +C 1 ; WX 0 ; N d1 ; B -20 -35 341 55 ; +C 2 ; WX 0 ; N d2 ; B -20 -24 341 60 ; +C 3 ; WX 0 ; N d3 ; B -20 -21 341 67 ; +C 4 ; WX 0 ; N d4 ; B -20 -21 340 74 ; +C 5 ; WX 0 ; N d5 ; B -20 -20 338 82 ; +C 6 ; WX 0 ; N d6 ; B -20 -21 336 91 ; +C 7 ; WX 0 ; N d7 ; B -20 -21 334 102 ; +C 8 ; WX 0 ; N d8 ; B -20 -20 330 113 ; +C 9 ; WX 0 ; N d9 ; B -20 -20 326 126 ; +C 10 ; WX 0 ; N d10 ; B -21 -20 319 140 ; +C 11 ; WX 0 ; N d11 ; B -21 -21 312 155 ; +C 12 ; WX 0 ; N d12 ; B -20 -20 303 171 ; +C 13 ; WX 0 ; N d13 ; B -21 -21 294 188 ; +C 14 ; WX 0 ; N d14 ; B -20 -20 283 205 ; +C 15 ; WX 0 ; N d15 ; B -20 -21 271 221 ; +C 16 ; WX 0 ; N d16 ; B -21 -20 258 236 ; +C 17 ; WX 0 ; N d17 ; B -21 -20 244 250 ; +C 18 ; WX 0 ; N d18 ; B -21 -21 230 263 ; +C 19 ; WX 0 ; N d19 ; B -21 -21 215 276 ; +C 20 ; WX 0 ; N d20 ; B -21 -21 200 286 ; +C 21 ; WX 0 ; N d21 ; B -20 -21 184 296 ; +C 22 ; WX 0 ; N d22 ; B -21 -21 169 304 ; +C 23 ; WX 0 ; N d23 ; B -21 -20 156 311 ; +C 24 ; WX 0 ; N d24 ; B -23 -21 141 317 ; +C 25 ; WX 0 ; N d25 ; B -26 -21 127 323 ; +C 26 ; WX 0 ; N d26 ; B -28 -20 113 328 ; +C 27 ; WX 0 ; N d27 ; B -32 -21 100 331 ; +C 28 ; WX 0 ; N d28 ; B -34 -21 88 334 ; +C 29 ; WX 0 ; N d29 ; B -38 -20 77 336 ; +C 30 ; WX 0 ; N d30 ; B -42 -20 66 338 ; +C 31 ; WX 0 ; N d31 ; B -46 -20 56 339 ; +C 32 ; WX 0 ; N d32 ; B -50 -21 46 340 ; +C 33 ; WX 0 ; N d33 ; B -55 -21 35 340 ; +C 34 ; WX 0 ; N d34 ; B -60 -21 24 341 ; +C 35 ; WX 0 ; N d35 ; B -68 -20 21 341 ; +C 36 ; WX 0 ; N d36 ; B -75 -20 21 340 ; +C 37 ; WX 0 ; N d37 ; B -83 -20 21 339 ; +C 38 ; WX 0 ; N d38 ; B -91 -21 21 336 ; +C 39 ; WX 0 ; N d39 ; B -102 -21 21 334 ; +C 40 ; WX 0 ; N d40 ; B -114 -20 21 330 ; +C 41 ; WX 0 ; N d41 ; B -127 -20 21 325 ; +C 42 ; WX 0 ; N d42 ; B -139 -20 21 319 ; +C 43 ; WX 0 ; N d43 ; B -155 -20 21 312 ; +C 44 ; WX 0 ; N d44 ; B -171 -20 20 303 ; +C 45 ; WX 0 ; N d45 ; B -188 -19 21 294 ; +C 46 ; WX 0 ; N d46 ; B -205 -20 21 282 ; +C 47 ; WX 0 ; N d47 ; B -221 -21 21 271 ; +C 48 ; WX 0 ; N d48 ; B -236 -19 21 258 ; +C 49 ; WX 0 ; N d49 ; B -250 -20 21 244 ; +C 50 ; WX 0 ; N d50 ; B -263 -20 21 229 ; +C 51 ; WX 0 ; N d51 ; B -276 -21 21 215 ; +C 52 ; WX 0 ; N d52 ; B -286 -19 21 200 ; +C 53 ; WX 0 ; N d53 ; B -296 -20 21 184 ; +C 54 ; WX 0 ; N d54 ; B -304 -21 21 170 ; +C 55 ; WX 0 ; N d55 ; B -311 -21 21 155 ; +C 56 ; WX 0 ; N d56 ; B -317 -23 21 140 ; +C 57 ; WX 0 ; N d57 ; B -323 -25 21 127 ; +C 58 ; WX 0 ; N d58 ; B -327 -29 21 114 ; +C 59 ; WX 0 ; N d59 ; B -331 -31 21 101 ; +C 60 ; WX 0 ; N d60 ; B -333 -34 21 88 ; +C 61 ; WX 0 ; N d61 ; B -336 -38 21 78 ; +C 62 ; WX 0 ; N d62 ; B -337 -42 21 66 ; +C 63 ; WX 0 ; N d63 ; B -339 -46 21 56 ; +C 64 ; WX 0 ; N d64 ; B -340 -50 21 46 ; +C 65 ; WX 0 ; N d65 ; B -341 -55 21 35 ; +C 66 ; WX 0 ; N d66 ; B -341 -60 21 23 ; +C 67 ; WX 0 ; N d67 ; B -341 -67 21 21 ; +C 68 ; WX 0 ; N d68 ; B -340 -74 21 21 ; +C 69 ; WX 0 ; N d69 ; B -338 -82 21 21 ; +C 70 ; WX 0 ; N d70 ; B -336 -92 21 21 ; +C 71 ; WX 0 ; N d71 ; B -334 -102 21 21 ; +C 72 ; WX 0 ; N d72 ; B -330 -114 21 21 ; +C 73 ; WX 0 ; N d73 ; B -325 -126 21 21 ; +C 74 ; WX 0 ; N d74 ; B -319 -140 21 21 ; +C 75 ; WX 0 ; N d75 ; B -312 -155 21 21 ; +C 76 ; WX 0 ; N d76 ; B -303 -172 21 21 ; +C 77 ; WX 0 ; N d77 ; B -294 -187 21 21 ; +C 78 ; WX 0 ; N d78 ; B -283 -205 21 21 ; +C 79 ; WX 0 ; N d79 ; B -271 -221 21 21 ; +C 80 ; WX 0 ; N d80 ; B -258 -236 21 21 ; +C 81 ; WX 0 ; N d81 ; B -244 -250 21 21 ; +C 82 ; WX 0 ; N d82 ; B -230 -264 21 21 ; +C 83 ; WX 0 ; N d83 ; B -215 -276 21 21 ; +C 84 ; WX 0 ; N d84 ; B -200 -285 21 21 ; +C 85 ; WX 0 ; N d85 ; B -184 -296 21 21 ; +C 86 ; WX 0 ; N d86 ; B -169 -304 21 21 ; +C 87 ; WX 0 ; N d87 ; B -156 -311 21 21 ; +C 88 ; WX 0 ; N d88 ; B -141 -317 23 21 ; +C 89 ; WX 0 ; N d89 ; B -127 -323 26 21 ; +C 90 ; WX 0 ; N d90 ; B -113 -327 28 21 ; +C 91 ; WX 0 ; N d91 ; B -100 -331 31 21 ; +C 92 ; WX 0 ; N d92 ; B -88 -334 34 21 ; +C 93 ; WX 0 ; N d93 ; B -77 -336 38 21 ; +C 94 ; WX 0 ; N d94 ; B -66 -337 43 21 ; +C 95 ; WX 0 ; N d95 ; B -56 -339 46 21 ; +C 96 ; WX 0 ; N d96 ; B -46 -340 50 21 ; +C 97 ; WX 0 ; N d97 ; B -35 -341 55 21 ; +C 98 ; WX 0 ; N d98 ; B -24 -341 60 21 ; +C 99 ; WX 0 ; N d99 ; B -20 -341 68 21 ; +C 100 ; WX 0 ; N d100 ; B -20 -340 75 21 ; +C 101 ; WX 0 ; N d101 ; B -20 -338 82 21 ; +C 102 ; WX 0 ; N d102 ; B -20 -336 91 21 ; +C 103 ; WX 0 ; N d103 ; B -20 -334 102 21 ; +C 104 ; WX 0 ; N d104 ; B -20 -330 113 21 ; +C 105 ; WX 0 ; N d105 ; B -20 -325 126 21 ; +C 106 ; WX 0 ; N d106 ; B -20 -319 140 21 ; +C 107 ; WX 0 ; N d107 ; B -21 -312 156 21 ; +C 108 ; WX 0 ; N d108 ; B -20 -302 171 21 ; +C 109 ; WX 0 ; N d109 ; B -20 -293 188 21 ; +C 110 ; WX 0 ; N d110 ; B -20 -282 205 21 ; +C 111 ; WX 0 ; N d111 ; B -20 -271 221 21 ; +C 112 ; WX 0 ; N d112 ; B -20 -258 236 21 ; +C 113 ; WX 0 ; N d113 ; B -20 -245 250 21 ; +C 114 ; WX 0 ; N d114 ; B -20 -230 263 21 ; +C 115 ; WX 0 ; N d115 ; B -20 -215 276 21 ; +C 116 ; WX 0 ; N d116 ; B -20 -200 286 21 ; +C 117 ; WX 0 ; N d117 ; B -20 -184 296 21 ; +C 118 ; WX 0 ; N d118 ; B -20 -169 304 21 ; +C 119 ; WX 0 ; N d119 ; B -20 -154 312 22 ; +C 120 ; WX 0 ; N d120 ; B -20 -141 318 23 ; +C 121 ; WX 0 ; N d121 ; B -20 -127 323 25 ; +C 122 ; WX 0 ; N d122 ; B -20 -113 328 28 ; +C 123 ; WX 0 ; N d123 ; B -20 -100 331 31 ; +C 124 ; WX 0 ; N d124 ; B -20 -88 334 34 ; +C 125 ; WX 0 ; N d125 ; B -20 -77 336 38 ; +C 126 ; WX 0 ; N d126 ; B -20 -66 337 42 ; +C 127 ; WX 0 ; N d127 ; B -20 -56 338 46 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xycmat11.afm b/Master/texmf-dist/fonts/afm/xypic/xycmat11.afm new file mode 100644 index 00000000000..e7f8d764652 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xycmat11.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:17 2010 +FontName XYCMAT-Medium +FullName XYCMAT +FamilyName XYCMAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -339 -339 339 339 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -18 -44 338 48 ; +C 1 ; WX 0 ; N d1 ; B -18 -33 338 53 ; +C 2 ; WX 0 ; N d2 ; B -18 -21 339 58 ; +C 3 ; WX 0 ; N d3 ; B -18 -19 339 65 ; +C 4 ; WX 0 ; N d4 ; B -18 -19 338 72 ; +C 5 ; WX 0 ; N d5 ; B -18 -18 336 80 ; +C 6 ; WX 0 ; N d6 ; B -18 -18 334 89 ; +C 7 ; WX 0 ; N d7 ; B -18 -19 332 100 ; +C 8 ; WX 0 ; N d8 ; B -18 -18 328 111 ; +C 9 ; WX 0 ; N d9 ; B -18 -18 323 124 ; +C 10 ; WX 0 ; N d10 ; B -18 -18 317 138 ; +C 11 ; WX 0 ; N d11 ; B -18 -18 310 153 ; +C 12 ; WX 0 ; N d12 ; B -18 -18 301 169 ; +C 13 ; WX 0 ; N d13 ; B -19 -19 291 186 ; +C 14 ; WX 0 ; N d14 ; B -19 -18 280 203 ; +C 15 ; WX 0 ; N d15 ; B -19 -18 269 218 ; +C 16 ; WX 0 ; N d16 ; B -19 -18 256 234 ; +C 17 ; WX 0 ; N d17 ; B -19 -18 242 248 ; +C 18 ; WX 0 ; N d18 ; B -19 -18 227 261 ; +C 19 ; WX 0 ; N d19 ; B -19 -18 213 274 ; +C 20 ; WX 0 ; N d20 ; B -18 -18 197 284 ; +C 21 ; WX 0 ; N d21 ; B -18 -18 183 294 ; +C 22 ; WX 0 ; N d22 ; B -19 -19 167 302 ; +C 23 ; WX 0 ; N d23 ; B -20 -19 154 309 ; +C 24 ; WX 0 ; N d24 ; B -21 -18 138 315 ; +C 25 ; WX 0 ; N d25 ; B -23 -18 125 321 ; +C 26 ; WX 0 ; N d26 ; B -27 -18 111 325 ; +C 27 ; WX 0 ; N d27 ; B -30 -18 98 329 ; +C 28 ; WX 0 ; N d28 ; B -33 -18 87 332 ; +C 29 ; WX 0 ; N d29 ; B -37 -18 76 334 ; +C 30 ; WX 0 ; N d30 ; B -41 -18 65 335 ; +C 31 ; WX 0 ; N d31 ; B -44 -19 55 337 ; +C 32 ; WX 0 ; N d32 ; B -49 -19 44 338 ; +C 33 ; WX 0 ; N d33 ; B -53 -18 33 338 ; +C 34 ; WX 0 ; N d34 ; B -59 -18 21 339 ; +C 35 ; WX 0 ; N d35 ; B -65 -19 19 339 ; +C 36 ; WX 0 ; N d36 ; B -73 -18 19 338 ; +C 37 ; WX 0 ; N d37 ; B -80 -18 19 336 ; +C 38 ; WX 0 ; N d38 ; B -90 -18 19 335 ; +C 39 ; WX 0 ; N d39 ; B -100 -18 19 332 ; +C 40 ; WX 0 ; N d40 ; B -112 -18 19 328 ; +C 41 ; WX 0 ; N d41 ; B -125 -19 19 323 ; +C 42 ; WX 0 ; N d42 ; B -138 -19 19 317 ; +C 43 ; WX 0 ; N d43 ; B -152 -18 18 310 ; +C 44 ; WX 0 ; N d44 ; B -168 -19 19 301 ; +C 45 ; WX 0 ; N d45 ; B -186 -19 19 291 ; +C 46 ; WX 0 ; N d46 ; B -203 -18 19 281 ; +C 47 ; WX 0 ; N d47 ; B -219 -18 19 269 ; +C 48 ; WX 0 ; N d48 ; B -234 -19 19 256 ; +C 49 ; WX 0 ; N d49 ; B -248 -18 19 242 ; +C 50 ; WX 0 ; N d50 ; B -261 -18 19 227 ; +C 51 ; WX 0 ; N d51 ; B -273 -18 19 213 ; +C 52 ; WX 0 ; N d52 ; B -284 -18 19 197 ; +C 53 ; WX 0 ; N d53 ; B -294 -19 19 183 ; +C 54 ; WX 0 ; N d54 ; B -302 -19 19 167 ; +C 55 ; WX 0 ; N d55 ; B -309 -19 19 153 ; +C 56 ; WX 0 ; N d56 ; B -315 -21 19 138 ; +C 57 ; WX 0 ; N d57 ; B -321 -24 19 125 ; +C 58 ; WX 0 ; N d58 ; B -325 -26 19 111 ; +C 59 ; WX 0 ; N d59 ; B -329 -29 19 98 ; +C 60 ; WX 0 ; N d60 ; B -331 -32 19 87 ; +C 61 ; WX 0 ; N d61 ; B -335 -36 19 75 ; +C 62 ; WX 0 ; N d62 ; B -334 -40 19 64 ; +C 63 ; WX 0 ; N d63 ; B -337 -44 19 54 ; +C 64 ; WX 0 ; N d64 ; B -338 -48 19 44 ; +C 65 ; WX 0 ; N d65 ; B -338 -53 19 33 ; +C 66 ; WX 0 ; N d66 ; B -339 -59 19 21 ; +C 67 ; WX 0 ; N d67 ; B -339 -65 19 19 ; +C 68 ; WX 0 ; N d68 ; B -338 -73 19 19 ; +C 69 ; WX 0 ; N d69 ; B -336 -80 19 19 ; +C 70 ; WX 0 ; N d70 ; B -334 -89 19 19 ; +C 71 ; WX 0 ; N d71 ; B -332 -100 19 19 ; +C 72 ; WX 0 ; N d72 ; B -328 -111 19 19 ; +C 73 ; WX 0 ; N d73 ; B -323 -125 19 19 ; +C 74 ; WX 0 ; N d74 ; B -317 -138 19 19 ; +C 75 ; WX 0 ; N d75 ; B -310 -153 19 19 ; +C 76 ; WX 0 ; N d76 ; B -301 -169 19 19 ; +C 77 ; WX 0 ; N d77 ; B -290 -186 19 19 ; +C 78 ; WX 0 ; N d78 ; B -281 -203 19 19 ; +C 79 ; WX 0 ; N d79 ; B -269 -218 19 19 ; +C 80 ; WX 0 ; N d80 ; B -256 -234 19 19 ; +C 81 ; WX 0 ; N d81 ; B -242 -248 19 19 ; +C 82 ; WX 0 ; N d82 ; B -227 -261 19 19 ; +C 83 ; WX 0 ; N d83 ; B -213 -273 19 20 ; +C 84 ; WX 0 ; N d84 ; B -196 -284 19 19 ; +C 85 ; WX 0 ; N d85 ; B -182 -294 19 19 ; +C 86 ; WX 0 ; N d86 ; B -166 -302 19 19 ; +C 87 ; WX 0 ; N d87 ; B -153 -310 20 19 ; +C 88 ; WX 0 ; N d88 ; B -138 -315 21 19 ; +C 89 ; WX 0 ; N d89 ; B -125 -321 23 19 ; +C 90 ; WX 0 ; N d90 ; B -111 -325 27 19 ; +C 91 ; WX 0 ; N d91 ; B -98 -329 30 20 ; +C 92 ; WX 0 ; N d92 ; B -87 -331 33 20 ; +C 93 ; WX 0 ; N d93 ; B -75 -334 37 19 ; +C 94 ; WX 0 ; N d94 ; B -64 -334 40 20 ; +C 95 ; WX 0 ; N d95 ; B -54 -337 45 19 ; +C 96 ; WX 0 ; N d96 ; B -45 -338 49 19 ; +C 97 ; WX 0 ; N d97 ; B -33 -338 54 19 ; +C 98 ; WX 0 ; N d98 ; B -21 -339 59 19 ; +C 99 ; WX 0 ; N d99 ; B -18 -339 65 19 ; +C 100 ; WX 0 ; N d100 ; B -18 -338 72 19 ; +C 101 ; WX 0 ; N d101 ; B -18 -336 80 19 ; +C 102 ; WX 0 ; N d102 ; B -18 -334 90 19 ; +C 103 ; WX 0 ; N d103 ; B -19 -332 100 19 ; +C 104 ; WX 0 ; N d104 ; B -18 -328 111 19 ; +C 105 ; WX 0 ; N d105 ; B -18 -323 125 19 ; +C 106 ; WX 0 ; N d106 ; B -18 -317 138 19 ; +C 107 ; WX 0 ; N d107 ; B -19 -310 153 19 ; +C 108 ; WX 0 ; N d108 ; B -19 -301 169 19 ; +C 109 ; WX 0 ; N d109 ; B -19 -290 186 19 ; +C 110 ; WX 0 ; N d110 ; B -18 -281 203 19 ; +C 111 ; WX 0 ; N d111 ; B -18 -269 219 20 ; +C 112 ; WX 0 ; N d112 ; B -18 -256 234 19 ; +C 113 ; WX 0 ; N d113 ; B -18 -242 248 20 ; +C 114 ; WX 0 ; N d114 ; B -18 -227 261 19 ; +C 115 ; WX 0 ; N d115 ; B -18 -213 273 19 ; +C 116 ; WX 0 ; N d116 ; B -18 -196 284 19 ; +C 117 ; WX 0 ; N d117 ; B -18 -182 294 19 ; +C 118 ; WX 0 ; N d118 ; B -18 -166 302 19 ; +C 119 ; WX 0 ; N d119 ; B -18 -153 309 20 ; +C 120 ; WX 0 ; N d120 ; B -18 -138 315 21 ; +C 121 ; WX 0 ; N d121 ; B -18 -125 321 23 ; +C 122 ; WX 0 ; N d122 ; B -18 -112 326 26 ; +C 123 ; WX 0 ; N d123 ; B -18 -98 329 29 ; +C 124 ; WX 0 ; N d124 ; B -18 -86 331 32 ; +C 125 ; WX 0 ; N d125 ; B -18 -76 334 36 ; +C 126 ; WX 0 ; N d126 ; B -18 -64 335 40 ; +C 127 ; WX 0 ; N d127 ; B -18 -54 337 44 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xycmat12.afm b/Master/texmf-dist/fonts/afm/xypic/xycmat12.afm new file mode 100644 index 00000000000..6ec514bef69 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xycmat12.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:20 2010 +FontName XYCMAT-Medium +FullName XYCMAT +FamilyName XYCMAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -337 -337 337 338 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -18 -43 337 46 ; +C 1 ; WX 0 ; N d1 ; B -18 -32 337 51 ; +C 2 ; WX 0 ; N d2 ; B -18 -19 337 57 ; +C 3 ; WX 0 ; N d3 ; B -17 -17 337 63 ; +C 4 ; WX 0 ; N d4 ; B -17 -17 337 70 ; +C 5 ; WX 0 ; N d5 ; B -18 -18 335 79 ; +C 6 ; WX 0 ; N d6 ; B -18 -18 333 88 ; +C 7 ; WX 0 ; N d7 ; B -18 -18 331 98 ; +C 8 ; WX 0 ; N d8 ; B -18 -18 326 110 ; +C 9 ; WX 0 ; N d9 ; B -17 -17 322 122 ; +C 10 ; WX 0 ; N d10 ; B -17 -17 315 137 ; +C 11 ; WX 0 ; N d11 ; B -18 -17 309 151 ; +C 12 ; WX 0 ; N d12 ; B -18 -17 300 168 ; +C 13 ; WX 0 ; N d13 ; B -17 -17 291 184 ; +C 14 ; WX 0 ; N d14 ; B -17 -17 280 201 ; +C 15 ; WX 0 ; N d15 ; B -17 -17 267 217 ; +C 16 ; WX 0 ; N d16 ; B -17 -18 255 232 ; +C 17 ; WX 0 ; N d17 ; B -17 -17 241 247 ; +C 18 ; WX 0 ; N d18 ; B -18 -17 227 260 ; +C 19 ; WX 0 ; N d19 ; B -17 -18 211 272 ; +C 20 ; WX 0 ; N d20 ; B -17 -17 196 282 ; +C 21 ; WX 0 ; N d21 ; B -17 -18 182 293 ; +C 22 ; WX 0 ; N d22 ; B -17 -18 166 300 ; +C 23 ; WX 0 ; N d23 ; B -19 -18 152 308 ; +C 24 ; WX 0 ; N d24 ; B -20 -18 137 314 ; +C 25 ; WX 0 ; N d25 ; B -21 -18 124 319 ; +C 26 ; WX 0 ; N d26 ; B -25 -18 111 323 ; +C 27 ; WX 0 ; N d27 ; B -27 -17 98 327 ; +C 28 ; WX 0 ; N d28 ; B -32 -17 85 330 ; +C 29 ; WX 0 ; N d29 ; B -34 -18 73 333 ; +C 30 ; WX 0 ; N d30 ; B -39 -17 64 334 ; +C 31 ; WX 0 ; N d31 ; B -42 -17 52 336 ; +C 32 ; WX 0 ; N d32 ; B -47 -17 43 336 ; +C 33 ; WX 0 ; N d33 ; B -52 -17 31 337 ; +C 34 ; WX 0 ; N d34 ; B -57 -17 19 338 ; +C 35 ; WX 0 ; N d35 ; B -63 -18 17 337 ; +C 36 ; WX 0 ; N d36 ; B -70 -18 17 337 ; +C 37 ; WX 0 ; N d37 ; B -80 -17 18 336 ; +C 38 ; WX 0 ; N d38 ; B -88 -18 18 333 ; +C 39 ; WX 0 ; N d39 ; B -99 -18 17 331 ; +C 40 ; WX 0 ; N d40 ; B -110 -18 18 326 ; +C 41 ; WX 0 ; N d41 ; B -122 -17 18 322 ; +C 42 ; WX 0 ; N d42 ; B -136 -17 18 315 ; +C 43 ; WX 0 ; N d43 ; B -151 -18 17 308 ; +C 44 ; WX 0 ; N d44 ; B -168 -18 17 300 ; +C 45 ; WX 0 ; N d45 ; B -184 -17 17 290 ; +C 46 ; WX 0 ; N d46 ; B -201 -17 18 279 ; +C 47 ; WX 0 ; N d47 ; B -218 -17 17 268 ; +C 48 ; WX 0 ; N d48 ; B -232 -18 17 254 ; +C 49 ; WX 0 ; N d49 ; B -246 -17 17 240 ; +C 50 ; WX 0 ; N d50 ; B -260 -17 17 226 ; +C 51 ; WX 0 ; N d51 ; B -273 -17 18 211 ; +C 52 ; WX 0 ; N d52 ; B -282 -17 18 196 ; +C 53 ; WX 0 ; N d53 ; B -293 -17 18 181 ; +C 54 ; WX 0 ; N d54 ; B -300 -17 17 166 ; +C 55 ; WX 0 ; N d55 ; B -308 -17 17 151 ; +C 56 ; WX 0 ; N d56 ; B -314 -19 17 137 ; +C 57 ; WX 0 ; N d57 ; B -320 -21 17 123 ; +C 58 ; WX 0 ; N d58 ; B -323 -24 18 110 ; +C 59 ; WX 0 ; N d59 ; B -328 -27 17 98 ; +C 60 ; WX 0 ; N d60 ; B -331 -31 17 85 ; +C 61 ; WX 0 ; N d61 ; B -331 -34 17 73 ; +C 62 ; WX 0 ; N d62 ; B -335 -38 17 63 ; +C 63 ; WX 0 ; N d63 ; B -336 -42 18 52 ; +C 64 ; WX 0 ; N d64 ; B -337 -47 17 43 ; +C 65 ; WX 0 ; N d65 ; B -337 -51 17 31 ; +C 66 ; WX 0 ; N d66 ; B -337 -57 17 19 ; +C 67 ; WX 0 ; N d67 ; B -337 -63 17 17 ; +C 68 ; WX 0 ; N d68 ; B -337 -70 17 17 ; +C 69 ; WX 0 ; N d69 ; B -335 -80 17 18 ; +C 70 ; WX 0 ; N d70 ; B -333 -89 18 18 ; +C 71 ; WX 0 ; N d71 ; B -331 -98 18 17 ; +C 72 ; WX 0 ; N d72 ; B -326 -109 18 18 ; +C 73 ; WX 0 ; N d73 ; B -322 -122 17 17 ; +C 74 ; WX 0 ; N d74 ; B -315 -136 17 18 ; +C 75 ; WX 0 ; N d75 ; B -309 -151 17 17 ; +C 76 ; WX 0 ; N d76 ; B -300 -167 18 18 ; +C 77 ; WX 0 ; N d77 ; B -290 -184 17 18 ; +C 78 ; WX 0 ; N d78 ; B -280 -201 17 18 ; +C 79 ; WX 0 ; N d79 ; B -268 -217 17 18 ; +C 80 ; WX 0 ; N d80 ; B -255 -232 17 18 ; +C 81 ; WX 0 ; N d81 ; B -241 -246 17 18 ; +C 82 ; WX 0 ; N d82 ; B -227 -260 18 18 ; +C 83 ; WX 0 ; N d83 ; B -211 -272 18 18 ; +C 84 ; WX 0 ; N d84 ; B -196 -282 18 18 ; +C 85 ; WX 0 ; N d85 ; B -182 -293 18 18 ; +C 86 ; WX 0 ; N d86 ; B -166 -300 17 18 ; +C 87 ; WX 0 ; N d87 ; B -151 -307 19 18 ; +C 88 ; WX 0 ; N d88 ; B -137 -314 19 18 ; +C 89 ; WX 0 ; N d89 ; B -124 -319 22 18 ; +C 90 ; WX 0 ; N d90 ; B -111 -323 25 18 ; +C 91 ; WX 0 ; N d91 ; B -97 -327 28 18 ; +C 92 ; WX 0 ; N d92 ; B -86 -330 32 18 ; +C 93 ; WX 0 ; N d93 ; B -73 -333 35 18 ; +C 94 ; WX 0 ; N d94 ; B -64 -334 38 18 ; +C 95 ; WX 0 ; N d95 ; B -51 -336 43 18 ; +C 96 ; WX 0 ; N d96 ; B -43 -336 47 18 ; +C 97 ; WX 0 ; N d97 ; B -31 -337 52 18 ; +C 98 ; WX 0 ; N d98 ; B -19 -337 58 18 ; +C 99 ; WX 0 ; N d99 ; B -18 -337 63 17 ; +C 100 ; WX 0 ; N d100 ; B -18 -336 70 17 ; +C 101 ; WX 0 ; N d101 ; B -18 -336 79 17 ; +C 102 ; WX 0 ; N d102 ; B -18 -333 88 17 ; +C 103 ; WX 0 ; N d103 ; B -17 -331 99 17 ; +C 104 ; WX 0 ; N d104 ; B -17 -326 110 17 ; +C 105 ; WX 0 ; N d105 ; B -18 -321 122 17 ; +C 106 ; WX 0 ; N d106 ; B -18 -315 136 17 ; +C 107 ; WX 0 ; N d107 ; B -18 -308 151 17 ; +C 108 ; WX 0 ; N d108 ; B -18 -299 168 18 ; +C 109 ; WX 0 ; N d109 ; B -18 -290 184 18 ; +C 110 ; WX 0 ; N d110 ; B -18 -279 201 17 ; +C 111 ; WX 0 ; N d111 ; B -18 -267 217 17 ; +C 112 ; WX 0 ; N d112 ; B -18 -254 232 17 ; +C 113 ; WX 0 ; N d113 ; B -17 -240 247 17 ; +C 114 ; WX 0 ; N d114 ; B -18 -227 260 18 ; +C 115 ; WX 0 ; N d115 ; B -17 -211 272 17 ; +C 116 ; WX 0 ; N d116 ; B -17 -196 282 17 ; +C 117 ; WX 0 ; N d117 ; B -17 -181 292 17 ; +C 118 ; WX 0 ; N d118 ; B -17 -166 300 17 ; +C 119 ; WX 0 ; N d119 ; B -17 -151 308 18 ; +C 120 ; WX 0 ; N d120 ; B -17 -137 315 19 ; +C 121 ; WX 0 ; N d121 ; B -17 -124 319 21 ; +C 122 ; WX 0 ; N d122 ; B -17 -110 323 25 ; +C 123 ; WX 0 ; N d123 ; B -18 -98 327 27 ; +C 124 ; WX 0 ; N d124 ; B -18 -86 331 32 ; +C 125 ; WX 0 ; N d125 ; B -17 -73 332 34 ; +C 126 ; WX 0 ; N d126 ; B -18 -63 335 38 ; +C 127 ; WX 0 ; N d127 ; B -18 -52 336 42 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xycmbt10.afm b/Master/texmf-dist/fonts/afm/xypic/xycmbt10.afm new file mode 100644 index 00000000000..ef6d5aa4c5a --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xycmbt10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:15 2010 +FontName XYCMBT-Medium +FullName XYCMBT +FamilyName XYCMBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -341 -341 341 341 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -67 -20 43 338 ; +C 1 ; WX 0 ; N d1 ; B -77 -21 38 336 ; +C 2 ; WX 0 ; N d2 ; B -88 -21 34 333 ; +C 3 ; WX 0 ; N d3 ; B -100 -20 32 331 ; +C 4 ; WX 0 ; N d4 ; B -113 -21 28 327 ; +C 5 ; WX 0 ; N d5 ; B -127 -21 25 323 ; +C 6 ; WX 0 ; N d6 ; B -141 -21 23 317 ; +C 7 ; WX 0 ; N d7 ; B -156 -21 20 311 ; +C 8 ; WX 0 ; N d8 ; B -169 -21 21 304 ; +C 9 ; WX 0 ; N d9 ; B -184 -20 21 296 ; +C 10 ; WX 0 ; N d10 ; B -200 -20 21 286 ; +C 11 ; WX 0 ; N d11 ; B -215 -20 21 275 ; +C 12 ; WX 0 ; N d12 ; B -230 -20 21 263 ; +C 13 ; WX 0 ; N d13 ; B -244 -21 21 250 ; +C 14 ; WX 0 ; N d14 ; B -258 -20 21 236 ; +C 15 ; WX 0 ; N d15 ; B -271 -21 20 221 ; +C 16 ; WX 0 ; N d16 ; B -282 -21 21 205 ; +C 17 ; WX 0 ; N d17 ; B -293 -20 21 188 ; +C 18 ; WX 0 ; N d18 ; B -303 -20 21 171 ; +C 19 ; WX 0 ; N d19 ; B -312 -19 21 155 ; +C 20 ; WX 0 ; N d20 ; B -319 -21 21 140 ; +C 21 ; WX 0 ; N d21 ; B -326 -21 20 126 ; +C 22 ; WX 0 ; N d22 ; B -330 -20 20 113 ; +C 23 ; WX 0 ; N d23 ; B -334 -21 21 102 ; +C 24 ; WX 0 ; N d24 ; B -336 -21 21 91 ; +C 25 ; WX 0 ; N d25 ; B -338 -19 21 82 ; +C 26 ; WX 0 ; N d26 ; B -340 -19 21 74 ; +C 27 ; WX 0 ; N d27 ; B -341 -21 21 67 ; +C 28 ; WX 0 ; N d28 ; B -341 -24 21 60 ; +C 29 ; WX 0 ; N d29 ; B -341 -35 21 55 ; +C 30 ; WX 0 ; N d30 ; B -340 -46 21 50 ; +C 31 ; WX 0 ; N d31 ; B -338 -56 21 46 ; +C 32 ; WX 0 ; N d32 ; B -337 -66 21 42 ; +C 33 ; WX 0 ; N d33 ; B -336 -77 21 38 ; +C 34 ; WX 0 ; N d34 ; B -334 -88 20 34 ; +C 35 ; WX 0 ; N d35 ; B -331 -100 20 31 ; +C 36 ; WX 0 ; N d36 ; B -328 -113 20 28 ; +C 37 ; WX 0 ; N d37 ; B -323 -127 21 25 ; +C 38 ; WX 0 ; N d38 ; B -318 -141 21 23 ; +C 39 ; WX 0 ; N d39 ; B -312 -154 21 21 ; +C 40 ; WX 0 ; N d40 ; B -304 -169 21 21 ; +C 41 ; WX 0 ; N d41 ; B -296 -184 21 21 ; +C 42 ; WX 0 ; N d42 ; B -286 -200 21 21 ; +C 43 ; WX 0 ; N d43 ; B -276 -215 21 21 ; +C 44 ; WX 0 ; N d44 ; B -263 -230 21 21 ; +C 45 ; WX 0 ; N d45 ; B -250 -245 21 21 ; +C 46 ; WX 0 ; N d46 ; B -236 -258 21 21 ; +C 47 ; WX 0 ; N d47 ; B -221 -271 21 21 ; +C 48 ; WX 0 ; N d48 ; B -205 -282 21 21 ; +C 49 ; WX 0 ; N d49 ; B -188 -293 21 21 ; +C 50 ; WX 0 ; N d50 ; B -171 -302 21 21 ; +C 51 ; WX 0 ; N d51 ; B -156 -312 21 21 ; +C 52 ; WX 0 ; N d52 ; B -140 -319 21 21 ; +C 53 ; WX 0 ; N d53 ; B -126 -325 21 21 ; +C 54 ; WX 0 ; N d54 ; B -114 -330 21 21 ; +C 55 ; WX 0 ; N d55 ; B -102 -334 21 21 ; +C 56 ; WX 0 ; N d56 ; B -92 -336 21 21 ; +C 57 ; WX 0 ; N d57 ; B -82 -338 21 21 ; +C 58 ; WX 0 ; N d58 ; B -75 -340 21 21 ; +C 59 ; WX 0 ; N d59 ; B -68 -341 21 21 ; +C 60 ; WX 0 ; N d60 ; B -60 -341 24 21 ; +C 61 ; WX 0 ; N d61 ; B -55 -341 35 21 ; +C 62 ; WX 0 ; N d62 ; B -50 -340 46 21 ; +C 63 ; WX 0 ; N d63 ; B -46 -339 56 21 ; +C 64 ; WX 0 ; N d64 ; B -43 -337 66 21 ; +C 65 ; WX 0 ; N d65 ; B -38 -336 78 21 ; +C 66 ; WX 0 ; N d66 ; B -34 -334 88 21 ; +C 67 ; WX 0 ; N d67 ; B -32 -331 100 21 ; +C 68 ; WX 0 ; N d68 ; B -28 -327 113 21 ; +C 69 ; WX 0 ; N d69 ; B -26 -323 127 21 ; +C 70 ; WX 0 ; N d70 ; B -23 -317 141 21 ; +C 71 ; WX 0 ; N d71 ; B -21 -312 156 21 ; +C 72 ; WX 0 ; N d72 ; B -21 -304 169 21 ; +C 73 ; WX 0 ; N d73 ; B -21 -296 184 21 ; +C 74 ; WX 0 ; N d74 ; B -21 -285 200 21 ; +C 75 ; WX 0 ; N d75 ; B -21 -276 215 21 ; +C 76 ; WX 0 ; N d76 ; B -21 -264 230 21 ; +C 77 ; WX 0 ; N d77 ; B -21 -250 244 21 ; +C 78 ; WX 0 ; N d78 ; B -21 -236 258 21 ; +C 79 ; WX 0 ; N d79 ; B -20 -221 271 21 ; +C 80 ; WX 0 ; N d80 ; B -20 -205 283 21 ; +C 81 ; WX 0 ; N d81 ; B -20 -187 294 21 ; +C 82 ; WX 0 ; N d82 ; B -21 -172 303 21 ; +C 83 ; WX 0 ; N d83 ; B -21 -155 312 21 ; +C 84 ; WX 0 ; N d84 ; B -20 -140 319 21 ; +C 85 ; WX 0 ; N d85 ; B -20 -127 325 21 ; +C 86 ; WX 0 ; N d86 ; B -20 -114 330 21 ; +C 87 ; WX 0 ; N d87 ; B -20 -102 334 21 ; +C 88 ; WX 0 ; N d88 ; B -20 -91 336 21 ; +C 89 ; WX 0 ; N d89 ; B -20 -82 338 21 ; +C 90 ; WX 0 ; N d90 ; B -20 -74 340 21 ; +C 91 ; WX 0 ; N d91 ; B -20 -67 341 21 ; +C 92 ; WX 0 ; N d92 ; B -20 -61 341 24 ; +C 93 ; WX 0 ; N d93 ; B -20 -55 341 35 ; +C 94 ; WX 0 ; N d94 ; B -20 -50 340 46 ; +C 95 ; WX 0 ; N d95 ; B -20 -46 339 56 ; +C 96 ; WX 0 ; N d96 ; B -20 -42 337 67 ; +C 97 ; WX 0 ; N d97 ; B -20 -38 336 78 ; +C 98 ; WX 0 ; N d98 ; B -20 -34 334 89 ; +C 99 ; WX 0 ; N d99 ; B -20 -32 331 100 ; +C 100 ; WX 0 ; N d100 ; B -20 -28 327 114 ; +C 101 ; WX 0 ; N d101 ; B -20 -25 323 127 ; +C 102 ; WX 0 ; N d102 ; B -20 -23 317 141 ; +C 103 ; WX 0 ; N d103 ; B -20 -22 311 155 ; +C 104 ; WX 0 ; N d104 ; B -20 -21 304 169 ; +C 105 ; WX 0 ; N d105 ; B -20 -20 296 185 ; +C 106 ; WX 0 ; N d106 ; B -20 -21 286 199 ; +C 107 ; WX 0 ; N d107 ; B -20 -20 276 215 ; +C 108 ; WX 0 ; N d108 ; B -20 -20 263 230 ; +C 109 ; WX 0 ; N d109 ; B -20 -21 250 244 ; +C 110 ; WX 0 ; N d110 ; B -20 -21 236 258 ; +C 111 ; WX 0 ; N d111 ; B -20 -20 221 271 ; +C 112 ; WX 0 ; N d112 ; B -20 -20 205 282 ; +C 113 ; WX 0 ; N d113 ; B -20 -21 188 293 ; +C 114 ; WX 0 ; N d114 ; B -20 -20 171 303 ; +C 115 ; WX 0 ; N d115 ; B -21 -21 155 312 ; +C 116 ; WX 0 ; N d116 ; B -20 -21 140 319 ; +C 117 ; WX 0 ; N d117 ; B -20 -21 126 325 ; +C 118 ; WX 0 ; N d118 ; B -20 -20 113 330 ; +C 119 ; WX 0 ; N d119 ; B -20 -20 102 334 ; +C 120 ; WX 0 ; N d120 ; B -21 -20 92 336 ; +C 121 ; WX 0 ; N d121 ; B -20 -20 82 338 ; +C 122 ; WX 0 ; N d122 ; B -20 -21 75 340 ; +C 123 ; WX 0 ; N d123 ; B -21 -21 67 341 ; +C 124 ; WX 0 ; N d124 ; B -23 -20 60 341 ; +C 125 ; WX 0 ; N d125 ; B -35 -20 55 340 ; +C 126 ; WX 0 ; N d126 ; B -46 -21 50 340 ; +C 127 ; WX 0 ; N d127 ; B -56 -21 46 339 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xycmbt11.afm b/Master/texmf-dist/fonts/afm/xypic/xycmbt11.afm new file mode 100644 index 00000000000..4c5e4e5fc87 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xycmbt11.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:18 2010 +FontName XYCMBT-Medium +FullName XYCMBT +FamilyName XYCMBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -339 -339 339 339 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -64 -18 40 335 ; +C 1 ; WX 0 ; N d1 ; B -75 -18 36 334 ; +C 2 ; WX 0 ; N d2 ; B -87 -18 32 331 ; +C 3 ; WX 0 ; N d3 ; B -98 -18 30 329 ; +C 4 ; WX 0 ; N d4 ; B -111 -18 26 326 ; +C 5 ; WX 0 ; N d5 ; B -125 -18 24 321 ; +C 6 ; WX 0 ; N d6 ; B -138 -19 20 315 ; +C 7 ; WX 0 ; N d7 ; B -154 -19 19 309 ; +C 8 ; WX 0 ; N d8 ; B -166 -18 19 302 ; +C 9 ; WX 0 ; N d9 ; B -182 -18 19 294 ; +C 10 ; WX 0 ; N d10 ; B -196 -18 19 284 ; +C 11 ; WX 0 ; N d11 ; B -213 -18 19 273 ; +C 12 ; WX 0 ; N d12 ; B -228 -18 19 261 ; +C 13 ; WX 0 ; N d13 ; B -242 -18 19 248 ; +C 14 ; WX 0 ; N d14 ; B -256 -18 19 234 ; +C 15 ; WX 0 ; N d15 ; B -269 -18 19 218 ; +C 16 ; WX 0 ; N d16 ; B -280 -18 19 203 ; +C 17 ; WX 0 ; N d17 ; B -290 -18 19 186 ; +C 18 ; WX 0 ; N d18 ; B -301 -18 19 169 ; +C 19 ; WX 0 ; N d19 ; B -310 -18 19 153 ; +C 20 ; WX 0 ; N d20 ; B -317 -19 19 138 ; +C 21 ; WX 0 ; N d21 ; B -323 -19 19 124 ; +C 22 ; WX 0 ; N d22 ; B -328 -18 19 111 ; +C 23 ; WX 0 ; N d23 ; B -332 -18 19 100 ; +C 24 ; WX 0 ; N d24 ; B -334 -18 19 89 ; +C 25 ; WX 0 ; N d25 ; B -336 -18 19 80 ; +C 26 ; WX 0 ; N d26 ; B -338 -18 19 72 ; +C 27 ; WX 0 ; N d27 ; B -339 -18 19 65 ; +C 28 ; WX 0 ; N d28 ; B -339 -21 19 58 ; +C 29 ; WX 0 ; N d29 ; B -338 -33 19 53 ; +C 30 ; WX 0 ; N d30 ; B -338 -44 19 48 ; +C 31 ; WX 0 ; N d31 ; B -337 -55 19 44 ; +C 32 ; WX 0 ; N d32 ; B -334 -64 19 40 ; +C 33 ; WX 0 ; N d33 ; B -334 -75 19 36 ; +C 34 ; WX 0 ; N d34 ; B -331 -87 19 32 ; +C 35 ; WX 0 ; N d35 ; B -329 -98 19 29 ; +C 36 ; WX 0 ; N d36 ; B -326 -112 19 26 ; +C 37 ; WX 0 ; N d37 ; B -321 -125 19 23 ; +C 38 ; WX 0 ; N d38 ; B -315 -138 19 21 ; +C 39 ; WX 0 ; N d39 ; B -309 -153 19 19 ; +C 40 ; WX 0 ; N d40 ; B -302 -166 19 19 ; +C 41 ; WX 0 ; N d41 ; B -294 -182 19 19 ; +C 42 ; WX 0 ; N d42 ; B -284 -196 19 19 ; +C 43 ; WX 0 ; N d43 ; B -273 -213 19 19 ; +C 44 ; WX 0 ; N d44 ; B -261 -227 19 19 ; +C 45 ; WX 0 ; N d45 ; B -248 -242 19 19 ; +C 46 ; WX 0 ; N d46 ; B -234 -256 19 19 ; +C 47 ; WX 0 ; N d47 ; B -218 -269 19 19 ; +C 48 ; WX 0 ; N d48 ; B -203 -281 19 19 ; +C 49 ; WX 0 ; N d49 ; B -186 -290 19 19 ; +C 50 ; WX 0 ; N d50 ; B -169 -301 19 19 ; +C 51 ; WX 0 ; N d51 ; B -152 -310 19 19 ; +C 52 ; WX 0 ; N d52 ; B -138 -317 19 19 ; +C 53 ; WX 0 ; N d53 ; B -125 -323 19 19 ; +C 54 ; WX 0 ; N d54 ; B -111 -328 19 19 ; +C 55 ; WX 0 ; N d55 ; B -100 -332 19 19 ; +C 56 ; WX 0 ; N d56 ; B -90 -334 19 19 ; +C 57 ; WX 0 ; N d57 ; B -80 -336 19 19 ; +C 58 ; WX 0 ; N d58 ; B -73 -338 19 20 ; +C 59 ; WX 0 ; N d59 ; B -65 -339 19 19 ; +C 60 ; WX 0 ; N d60 ; B -59 -339 21 19 ; +C 61 ; WX 0 ; N d61 ; B -54 -338 33 19 ; +C 62 ; WX 0 ; N d62 ; B -49 -338 45 19 ; +C 63 ; WX 0 ; N d63 ; B -45 -337 54 19 ; +C 64 ; WX 0 ; N d64 ; B -41 -334 64 19 ; +C 65 ; WX 0 ; N d65 ; B -37 -334 75 19 ; +C 66 ; WX 0 ; N d66 ; B -33 -331 87 19 ; +C 67 ; WX 0 ; N d67 ; B -29 -329 98 20 ; +C 68 ; WX 0 ; N d68 ; B -27 -325 111 19 ; +C 69 ; WX 0 ; N d69 ; B -23 -321 125 19 ; +C 70 ; WX 0 ; N d70 ; B -21 -315 138 19 ; +C 71 ; WX 0 ; N d71 ; B -19 -310 153 19 ; +C 72 ; WX 0 ; N d72 ; B -19 -302 167 19 ; +C 73 ; WX 0 ; N d73 ; B -18 -294 182 19 ; +C 74 ; WX 0 ; N d74 ; B -19 -284 197 20 ; +C 75 ; WX 0 ; N d75 ; B -19 -273 213 20 ; +C 76 ; WX 0 ; N d76 ; B -19 -261 228 19 ; +C 77 ; WX 0 ; N d77 ; B -18 -248 242 19 ; +C 78 ; WX 0 ; N d78 ; B -18 -234 256 19 ; +C 79 ; WX 0 ; N d79 ; B -19 -218 269 19 ; +C 80 ; WX 0 ; N d80 ; B -18 -203 281 20 ; +C 81 ; WX 0 ; N d81 ; B -19 -186 291 19 ; +C 82 ; WX 0 ; N d82 ; B -18 -169 301 19 ; +C 83 ; WX 0 ; N d83 ; B -18 -153 310 19 ; +C 84 ; WX 0 ; N d84 ; B -19 -138 317 19 ; +C 85 ; WX 0 ; N d85 ; B -19 -125 323 19 ; +C 86 ; WX 0 ; N d86 ; B -18 -111 328 19 ; +C 87 ; WX 0 ; N d87 ; B -18 -100 332 19 ; +C 88 ; WX 0 ; N d88 ; B -18 -89 334 19 ; +C 89 ; WX 0 ; N d89 ; B -18 -80 336 19 ; +C 90 ; WX 0 ; N d90 ; B -18 -72 338 19 ; +C 91 ; WX 0 ; N d91 ; B -18 -65 339 19 ; +C 92 ; WX 0 ; N d92 ; B -18 -58 339 21 ; +C 93 ; WX 0 ; N d93 ; B -18 -53 338 33 ; +C 94 ; WX 0 ; N d94 ; B -18 -49 338 44 ; +C 95 ; WX 0 ; N d95 ; B -18 -45 337 54 ; +C 96 ; WX 0 ; N d96 ; B -18 -40 335 65 ; +C 97 ; WX 0 ; N d97 ; B -18 -36 334 76 ; +C 98 ; WX 0 ; N d98 ; B -18 -32 331 87 ; +C 99 ; WX 0 ; N d99 ; B -18 -29 329 99 ; +C 100 ; WX 0 ; N d100 ; B -18 -27 326 112 ; +C 101 ; WX 0 ; N d101 ; B -18 -24 321 124 ; +C 102 ; WX 0 ; N d102 ; B -18 -21 315 139 ; +C 103 ; WX 0 ; N d103 ; B -18 -19 310 153 ; +C 104 ; WX 0 ; N d104 ; B -18 -19 302 167 ; +C 105 ; WX 0 ; N d105 ; B -18 -19 294 183 ; +C 106 ; WX 0 ; N d106 ; B -18 -18 284 197 ; +C 107 ; WX 0 ; N d107 ; B -18 -19 273 213 ; +C 108 ; WX 0 ; N d108 ; B -18 -18 261 227 ; +C 109 ; WX 0 ; N d109 ; B -18 -18 248 242 ; +C 110 ; WX 0 ; N d110 ; B -18 -19 234 256 ; +C 111 ; WX 0 ; N d111 ; B -18 -19 218 269 ; +C 112 ; WX 0 ; N d112 ; B -18 -19 203 281 ; +C 113 ; WX 0 ; N d113 ; B -19 -19 186 291 ; +C 114 ; WX 0 ; N d114 ; B -18 -18 169 302 ; +C 115 ; WX 0 ; N d115 ; B -18 -18 153 310 ; +C 116 ; WX 0 ; N d116 ; B -18 -19 138 317 ; +C 117 ; WX 0 ; N d117 ; B -18 -18 125 323 ; +C 118 ; WX 0 ; N d118 ; B -18 -18 112 328 ; +C 119 ; WX 0 ; N d119 ; B -18 -18 100 332 ; +C 120 ; WX 0 ; N d120 ; B -18 -18 90 335 ; +C 121 ; WX 0 ; N d121 ; B -18 -18 80 336 ; +C 122 ; WX 0 ; N d122 ; B -18 -19 73 338 ; +C 123 ; WX 0 ; N d123 ; B -18 -18 65 339 ; +C 124 ; WX 0 ; N d124 ; B -21 -18 59 339 ; +C 125 ; WX 0 ; N d125 ; B -33 -18 54 339 ; +C 126 ; WX 0 ; N d126 ; B -45 -18 48 338 ; +C 127 ; WX 0 ; N d127 ; B -54 -18 45 337 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xycmbt12.afm b/Master/texmf-dist/fonts/afm/xypic/xycmbt12.afm new file mode 100644 index 00000000000..8a36e006ebf --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xycmbt12.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:22 2010 +FontName XYCMBT-Medium +FullName XYCMBT +FamilyName XYCMBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -338 -338 338 338 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -64 -17 38 334 ; +C 1 ; WX 0 ; N d1 ; B -73 -18 35 332 ; +C 2 ; WX 0 ; N d2 ; B -85 -17 32 330 ; +C 3 ; WX 0 ; N d3 ; B -97 -17 28 327 ; +C 4 ; WX 0 ; N d4 ; B -111 -18 24 323 ; +C 5 ; WX 0 ; N d5 ; B -124 -17 22 320 ; +C 6 ; WX 0 ; N d6 ; B -138 -18 19 314 ; +C 7 ; WX 0 ; N d7 ; B -151 -18 19 308 ; +C 8 ; WX 0 ; N d8 ; B -166 -18 17 300 ; +C 9 ; WX 0 ; N d9 ; B -182 -17 18 293 ; +C 10 ; WX 0 ; N d10 ; B -196 -17 17 282 ; +C 11 ; WX 0 ; N d11 ; B -211 -17 18 272 ; +C 12 ; WX 0 ; N d12 ; B -227 -17 18 260 ; +C 13 ; WX 0 ; N d13 ; B -241 -18 17 247 ; +C 14 ; WX 0 ; N d14 ; B -255 -18 17 233 ; +C 15 ; WX 0 ; N d15 ; B -267 -18 17 217 ; +C 16 ; WX 0 ; N d16 ; B -280 -18 17 201 ; +C 17 ; WX 0 ; N d17 ; B -291 -18 17 184 ; +C 18 ; WX 0 ; N d18 ; B -301 -17 17 168 ; +C 19 ; WX 0 ; N d19 ; B -309 -18 17 151 ; +C 20 ; WX 0 ; N d20 ; B -315 -17 17 137 ; +C 21 ; WX 0 ; N d21 ; B -321 -18 17 122 ; +C 22 ; WX 0 ; N d22 ; B -326 -17 18 109 ; +C 23 ; WX 0 ; N d23 ; B -330 -17 18 98 ; +C 24 ; WX 0 ; N d24 ; B -333 -17 17 89 ; +C 25 ; WX 0 ; N d25 ; B -335 -17 17 79 ; +C 26 ; WX 0 ; N d26 ; B -337 -17 17 70 ; +C 27 ; WX 0 ; N d27 ; B -337 -17 17 63 ; +C 28 ; WX 0 ; N d28 ; B -338 -19 17 57 ; +C 29 ; WX 0 ; N d29 ; B -338 -31 17 51 ; +C 30 ; WX 0 ; N d30 ; B -337 -43 17 46 ; +C 31 ; WX 0 ; N d31 ; B -336 -52 18 42 ; +C 32 ; WX 0 ; N d32 ; B -335 -63 17 38 ; +C 33 ; WX 0 ; N d33 ; B -332 -73 17 34 ; +C 34 ; WX 0 ; N d34 ; B -331 -86 17 31 ; +C 35 ; WX 0 ; N d35 ; B -328 -98 17 27 ; +C 36 ; WX 0 ; N d36 ; B -323 -110 18 24 ; +C 37 ; WX 0 ; N d37 ; B -319 -123 17 21 ; +C 38 ; WX 0 ; N d38 ; B -315 -137 17 19 ; +C 39 ; WX 0 ; N d39 ; B -308 -151 17 18 ; +C 40 ; WX 0 ; N d40 ; B -300 -166 17 17 ; +C 41 ; WX 0 ; N d41 ; B -292 -181 17 17 ; +C 42 ; WX 0 ; N d42 ; B -282 -196 17 17 ; +C 43 ; WX 0 ; N d43 ; B -272 -211 17 18 ; +C 44 ; WX 0 ; N d44 ; B -260 -227 17 17 ; +C 45 ; WX 0 ; N d45 ; B -247 -240 17 17 ; +C 46 ; WX 0 ; N d46 ; B -232 -254 17 17 ; +C 47 ; WX 0 ; N d47 ; B -217 -267 17 17 ; +C 48 ; WX 0 ; N d48 ; B -201 -280 17 18 ; +C 49 ; WX 0 ; N d49 ; B -184 -290 17 17 ; +C 50 ; WX 0 ; N d50 ; B -168 -299 18 18 ; +C 51 ; WX 0 ; N d51 ; B -151 -308 18 18 ; +C 52 ; WX 0 ; N d52 ; B -136 -315 17 18 ; +C 53 ; WX 0 ; N d53 ; B -123 -321 18 17 ; +C 54 ; WX 0 ; N d54 ; B -110 -326 18 18 ; +C 55 ; WX 0 ; N d55 ; B -99 -331 17 18 ; +C 56 ; WX 0 ; N d56 ; B -88 -333 18 18 ; +C 57 ; WX 0 ; N d57 ; B -79 -336 18 17 ; +C 58 ; WX 0 ; N d58 ; B -71 -336 18 18 ; +C 59 ; WX 0 ; N d59 ; B -63 -337 17 18 ; +C 60 ; WX 0 ; N d60 ; B -57 -338 19 18 ; +C 61 ; WX 0 ; N d61 ; B -52 -337 31 18 ; +C 62 ; WX 0 ; N d62 ; B -47 -336 43 18 ; +C 63 ; WX 0 ; N d63 ; B -43 -335 52 18 ; +C 64 ; WX 0 ; N d64 ; B -38 -334 64 18 ; +C 65 ; WX 0 ; N d65 ; B -34 -333 73 18 ; +C 66 ; WX 0 ; N d66 ; B -32 -330 86 18 ; +C 67 ; WX 0 ; N d67 ; B -28 -327 97 18 ; +C 68 ; WX 0 ; N d68 ; B -25 -323 111 18 ; +C 69 ; WX 0 ; N d69 ; B -21 -319 124 18 ; +C 70 ; WX 0 ; N d70 ; B -20 -314 137 18 ; +C 71 ; WX 0 ; N d71 ; B -18 -307 151 18 ; +C 72 ; WX 0 ; N d72 ; B -17 -300 166 18 ; +C 73 ; WX 0 ; N d73 ; B -18 -293 182 18 ; +C 74 ; WX 0 ; N d74 ; B -17 -282 196 18 ; +C 75 ; WX 0 ; N d75 ; B -18 -272 211 18 ; +C 76 ; WX 0 ; N d76 ; B -17 -260 227 18 ; +C 77 ; WX 0 ; N d77 ; B -17 -246 241 17 ; +C 78 ; WX 0 ; N d78 ; B -17 -232 255 18 ; +C 79 ; WX 0 ; N d79 ; B -17 -217 268 17 ; +C 80 ; WX 0 ; N d80 ; B -17 -201 280 17 ; +C 81 ; WX 0 ; N d81 ; B -18 -184 290 17 ; +C 82 ; WX 0 ; N d82 ; B -18 -167 300 17 ; +C 83 ; WX 0 ; N d83 ; B -18 -151 309 18 ; +C 84 ; WX 0 ; N d84 ; B -17 -136 315 18 ; +C 85 ; WX 0 ; N d85 ; B -18 -122 321 17 ; +C 86 ; WX 0 ; N d86 ; B -18 -109 326 18 ; +C 87 ; WX 0 ; N d87 ; B -18 -98 331 18 ; +C 88 ; WX 0 ; N d88 ; B -18 -88 333 18 ; +C 89 ; WX 0 ; N d89 ; B -18 -79 335 17 ; +C 90 ; WX 0 ; N d90 ; B -18 -70 337 17 ; +C 91 ; WX 0 ; N d91 ; B -18 -63 337 17 ; +C 92 ; WX 0 ; N d92 ; B -18 -57 338 19 ; +C 93 ; WX 0 ; N d93 ; B -18 -50 338 31 ; +C 94 ; WX 0 ; N d94 ; B -18 -46 337 43 ; +C 95 ; WX 0 ; N d95 ; B -18 -42 336 52 ; +C 96 ; WX 0 ; N d96 ; B -18 -39 335 63 ; +C 97 ; WX 0 ; N d97 ; B -17 -34 332 73 ; +C 98 ; WX 0 ; N d98 ; B -18 -31 331 86 ; +C 99 ; WX 0 ; N d99 ; B -18 -27 327 97 ; +C 100 ; WX 0 ; N d100 ; B -17 -25 323 110 ; +C 101 ; WX 0 ; N d101 ; B -17 -21 319 124 ; +C 102 ; WX 0 ; N d102 ; B -17 -19 314 137 ; +C 103 ; WX 0 ; N d103 ; B -17 -18 308 151 ; +C 104 ; WX 0 ; N d104 ; B -17 -17 300 166 ; +C 105 ; WX 0 ; N d105 ; B -17 -17 293 181 ; +C 106 ; WX 0 ; N d106 ; B -17 -17 282 196 ; +C 107 ; WX 0 ; N d107 ; B -17 -17 273 211 ; +C 108 ; WX 0 ; N d108 ; B -18 -17 261 226 ; +C 109 ; WX 0 ; N d109 ; B -17 -17 246 240 ; +C 110 ; WX 0 ; N d110 ; B -18 -17 232 255 ; +C 111 ; WX 0 ; N d111 ; B -18 -18 217 267 ; +C 112 ; WX 0 ; N d112 ; B -18 -17 201 280 ; +C 113 ; WX 0 ; N d113 ; B -18 -17 184 290 ; +C 114 ; WX 0 ; N d114 ; B -18 -18 168 300 ; +C 115 ; WX 0 ; N d115 ; B -17 -17 151 308 ; +C 116 ; WX 0 ; N d116 ; B -18 -18 136 316 ; +C 117 ; WX 0 ; N d117 ; B -18 -18 122 322 ; +C 118 ; WX 0 ; N d118 ; B -18 -17 110 326 ; +C 119 ; WX 0 ; N d119 ; B -17 -17 99 331 ; +C 120 ; WX 0 ; N d120 ; B -18 -18 88 333 ; +C 121 ; WX 0 ; N d121 ; B -18 -17 80 336 ; +C 122 ; WX 0 ; N d122 ; B -18 -17 70 337 ; +C 123 ; WX 0 ; N d123 ; B -18 -17 63 337 ; +C 124 ; WX 0 ; N d124 ; B -19 -18 58 338 ; +C 125 ; WX 0 ; N d125 ; B -32 -18 52 337 ; +C 126 ; WX 0 ; N d126 ; B -42 -18 47 336 ; +C 127 ; WX 0 ; N d127 ; B -53 -17 42 335 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xydash10.afm b/Master/texmf-dist/fonts/afm/xypic/xydash10.afm new file mode 100644 index 00000000000..f278e997cbc --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xydash10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:01 2010 +FontName XYDASH-Medium +FullName XYDASH +FamilyName XYDASH +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch false +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -21 -521 521 520 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 484 ; N a0 ; B -20 -21 369 380 ; +C 1 ; WX 469 ; N a1 ; B -20 -21 363 385 ; +C 2 ; WX 453 ; N a2 ; B -20 -21 356 391 ; +C 3 ; WX 438 ; N a3 ; B -20 -21 350 397 ; +C 4 ; WX 422 ; N a4 ; B -21 -21 343 403 ; +C 5 ; WX 406 ; N a5 ; B -21 -21 336 409 ; +C 6 ; WX 391 ; N a6 ; B -21 -21 329 415 ; +C 7 ; WX 375 ; N a7 ; B -20 -21 321 421 ; +C 8 ; WX 359 ; N a8 ; B -21 -21 312 426 ; +C 9 ; WX 344 ; N a9 ; B -20 -21 304 433 ; +C 10 ; WX 328 ; N a10 ; B -20 -21 295 439 ; +C 11 ; WX 313 ; N a11 ; B -20 -21 285 444 ; +C 12 ; WX 297 ; N a12 ; B -20 -21 276 450 ; +C 13 ; WX 281 ; N a13 ; B -20 -21 266 456 ; +C 14 ; WX 266 ; N a14 ; B -21 -21 256 462 ; +C 15 ; WX 250 ; N a15 ; B -20 -21 244 468 ; +C 16 ; WX 234 ; N a16 ; B -20 -21 233 473 ; +C 17 ; WX 219 ; N a17 ; B -20 -21 221 479 ; +C 18 ; WX 203 ; N a18 ; B -21 -21 209 484 ; +C 19 ; WX 188 ; N a19 ; B -21 -21 196 489 ; +C 20 ; WX 172 ; N a20 ; B -20 -21 183 494 ; +C 21 ; WX 156 ; N a21 ; B -20 -20 169 498 ; +C 22 ; WX 141 ; N a22 ; B -20 -21 157 502 ; +C 23 ; WX 125 ; N a23 ; B -20 -21 142 506 ; +C 24 ; WX 109 ; N a24 ; B -20 -21 127 509 ; +C 25 ; WX 94 ; N a25 ; B -20 -21 113 512 ; +C 26 ; WX 78 ; N a26 ; B -20 -21 98 515 ; +C 27 ; WX 63 ; N a27 ; B -20 -21 83 517 ; +C 28 ; WX 47 ; N a28 ; B -20 -21 67 519 ; +C 29 ; WX 31 ; N a29 ; B -20 -21 52 520 ; +C 30 ; WX 16 ; N a30 ; B -20 -21 36 520 ; +C 31 ; WX 0 ; N a31 ; B -21 -521 21 21 ; +C 32 ; WX 16 ; N a32 ; B -20 -519 36 21 ; +C 33 ; WX 31 ; N a33 ; B -20 -520 52 21 ; +C 34 ; WX 47 ; N a34 ; B -20 -518 67 21 ; +C 35 ; WX 63 ; N a35 ; B -20 -517 82 21 ; +C 36 ; WX 78 ; N a36 ; B -20 -515 98 21 ; +C 37 ; WX 94 ; N a37 ; B -20 -512 113 21 ; +C 38 ; WX 109 ; N a38 ; B -20 -510 127 21 ; +C 39 ; WX 125 ; N a39 ; B -20 -506 142 21 ; +C 40 ; WX 141 ; N a40 ; B -20 -502 157 21 ; +C 41 ; WX 156 ; N a41 ; B -20 -499 169 21 ; +C 42 ; WX 172 ; N a42 ; B -21 -494 183 21 ; +C 43 ; WX 188 ; N a43 ; B -21 -489 196 21 ; +C 44 ; WX 203 ; N a44 ; B -21 -484 209 21 ; +C 45 ; WX 219 ; N a45 ; B -21 -479 222 21 ; +C 46 ; WX 234 ; N a46 ; B -21 -474 233 21 ; +C 47 ; WX 250 ; N a47 ; B -20 -468 244 21 ; +C 48 ; WX 266 ; N a48 ; B -20 -463 256 21 ; +C 49 ; WX 281 ; N a49 ; B -20 -457 266 21 ; +C 50 ; WX 297 ; N a50 ; B -20 -451 276 21 ; +C 51 ; WX 313 ; N a51 ; B -20 -444 285 21 ; +C 52 ; WX 328 ; N a52 ; B -20 -439 295 21 ; +C 53 ; WX 344 ; N a53 ; B -20 -433 303 21 ; +C 54 ; WX 359 ; N a54 ; B -21 -427 312 21 ; +C 55 ; WX 375 ; N a55 ; B -20 -421 321 21 ; +C 56 ; WX 391 ; N a56 ; B -21 -415 329 21 ; +C 57 ; WX 406 ; N a57 ; B -21 -409 336 21 ; +C 58 ; WX 422 ; N a58 ; B -21 -403 344 21 ; +C 59 ; WX 438 ; N a59 ; B -20 -397 350 21 ; +C 60 ; WX 453 ; N a60 ; B -20 -391 356 21 ; +C 61 ; WX 469 ; N a61 ; B -20 -384 363 21 ; +C 62 ; WX 484 ; N a62 ; B -20 -380 369 21 ; +C 63 ; WX 500 ; N a63 ; B -20 -375 374 21 ; +C 64 ; WX 500 ; N a64 ; B -20 -369 380 21 ; +C 65 ; WX 500 ; N a65 ; B -20 -362 385 21 ; +C 66 ; WX 500 ; N a66 ; B -20 -357 391 21 ; +C 67 ; WX 500 ; N a67 ; B -20 -350 397 21 ; +C 68 ; WX 500 ; N a68 ; B -20 -343 403 21 ; +C 69 ; WX 500 ; N a69 ; B -20 -336 409 21 ; +C 70 ; WX 500 ; N a70 ; B -20 -329 415 21 ; +C 71 ; WX 500 ; N a71 ; B -20 -322 421 21 ; +C 72 ; WX 500 ; N a72 ; B -20 -313 427 21 ; +C 73 ; WX 500 ; N a73 ; B -20 -303 433 21 ; +C 74 ; WX 500 ; N a74 ; B -20 -295 439 21 ; +C 75 ; WX 500 ; N a75 ; B -20 -285 444 21 ; +C 76 ; WX 500 ; N a76 ; B -20 -276 451 21 ; +C 77 ; WX 500 ; N a77 ; B -20 -266 456 21 ; +C 78 ; WX 500 ; N a78 ; B -20 -255 462 21 ; +C 79 ; WX 500 ; N a79 ; B -20 -244 468 21 ; +C 80 ; WX 500 ; N a80 ; B -20 -233 474 21 ; +C 81 ; WX 500 ; N a81 ; B -20 -222 479 21 ; +C 82 ; WX 500 ; N a82 ; B -20 -209 484 21 ; +C 83 ; WX 500 ; N a83 ; B -20 -196 489 21 ; +C 84 ; WX 500 ; N a84 ; B -20 -183 493 21 ; +C 85 ; WX 500 ; N a85 ; B -20 -169 499 21 ; +C 86 ; WX 500 ; N a86 ; B -20 -156 503 21 ; +C 87 ; WX 500 ; N a87 ; B -20 -142 506 21 ; +C 88 ; WX 500 ; N a88 ; B -20 -127 509 21 ; +C 89 ; WX 500 ; N a89 ; B -20 -113 512 21 ; +C 90 ; WX 500 ; N a90 ; B -20 -98 515 21 ; +C 91 ; WX 500 ; N a91 ; B -20 -82 517 21 ; +C 92 ; WX 500 ; N a92 ; B -20 -67 519 21 ; +C 93 ; WX 500 ; N a93 ; B -20 -52 520 21 ; +C 94 ; WX 500 ; N a94 ; B -20 -36 520 20 ; +C 95 ; WX 500 ; N a95 ; B -20 -21 521 21 ; +C 96 ; WX 500 ; N a96 ; B -20 -20 520 36 ; +C 97 ; WX 500 ; N a97 ; B -20 -20 520 52 ; +C 98 ; WX 500 ; N a98 ; B -20 -20 518 67 ; +C 99 ; WX 500 ; N a99 ; B -20 -20 517 83 ; +C 100 ; WX 500 ; N a100 ; B -20 -20 515 98 ; +C 101 ; WX 500 ; N a101 ; B -20 -20 512 113 ; +C 102 ; WX 500 ; N a102 ; B -20 -20 509 127 ; +C 103 ; WX 500 ; N a103 ; B -20 -20 506 142 ; +C 104 ; WX 500 ; N a104 ; B -20 -20 503 156 ; +C 105 ; WX 500 ; N a105 ; B -20 -20 499 170 ; +C 106 ; WX 500 ; N a106 ; B -20 -21 494 183 ; +C 107 ; WX 500 ; N a107 ; B -20 -21 489 196 ; +C 108 ; WX 500 ; N a108 ; B -20 -20 484 209 ; +C 109 ; WX 500 ; N a109 ; B -20 -20 479 222 ; +C 110 ; WX 500 ; N a110 ; B -20 -20 474 233 ; +C 111 ; WX 500 ; N a111 ; B -20 -20 468 244 ; +C 112 ; WX 500 ; N a112 ; B -20 -21 462 255 ; +C 113 ; WX 500 ; N a113 ; B -20 -21 457 266 ; +C 114 ; WX 500 ; N a114 ; B -20 -21 450 276 ; +C 115 ; WX 500 ; N a115 ; B -20 -20 444 285 ; +C 116 ; WX 500 ; N a116 ; B -20 -20 439 295 ; +C 117 ; WX 500 ; N a117 ; B -20 -20 433 304 ; +C 118 ; WX 500 ; N a118 ; B -20 -21 427 312 ; +C 119 ; WX 500 ; N a119 ; B -20 -20 421 321 ; +C 120 ; WX 500 ; N a120 ; B -20 -21 415 328 ; +C 121 ; WX 500 ; N a121 ; B -20 -21 409 336 ; +C 122 ; WX 500 ; N a122 ; B -20 -21 403 343 ; +C 123 ; WX 500 ; N a123 ; B -20 -21 397 350 ; +C 124 ; WX 500 ; N a124 ; B -20 -20 391 357 ; +C 125 ; WX 500 ; N a125 ; B -20 -21 385 362 ; +C 126 ; WX 500 ; N a126 ; B -20 -20 380 368 ; +C 127 ; WX 500 ; N a127 ; B -20 -20 374 374 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyeuat10.afm b/Master/texmf-dist/fonts/afm/xypic/xyeuat10.afm new file mode 100644 index 00000000000..63885186be0 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyeuat10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:24 2010 +FontName XYEUAT-Medium +FullName XYEUAT +FamilyName XYEUAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -273 -273 273 272 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -20 -79 266 21 ; +C 1 ; WX 0 ; N d1 ; B -20 -71 267 21 ; +C 2 ; WX 0 ; N d2 ; B -20 -61 270 21 ; +C 3 ; WX 0 ; N d3 ; B -20 -52 271 22 ; +C 4 ; WX 0 ; N d4 ; B -20 -42 272 24 ; +C 5 ; WX 0 ; N d5 ; B -20 -29 273 28 ; +C 6 ; WX 0 ; N d6 ; B -20 -20 272 33 ; +C 7 ; WX 0 ; N d7 ; B -20 -20 272 40 ; +C 8 ; WX 0 ; N d8 ; B -20 -21 272 50 ; +C 9 ; WX 0 ; N d9 ; B -20 -21 269 61 ; +C 10 ; WX 0 ; N d10 ; B -20 -20 267 75 ; +C 11 ; WX 0 ; N d11 ; B -20 -20 264 89 ; +C 12 ; WX 0 ; N d12 ; B -20 -21 259 103 ; +C 13 ; WX 0 ; N d13 ; B -20 -20 254 118 ; +C 14 ; WX 0 ; N d14 ; B -20 -20 247 132 ; +C 15 ; WX 0 ; N d15 ; B -20 -20 239 146 ; +C 16 ; WX 0 ; N d16 ; B -20 -20 231 159 ; +C 17 ; WX 0 ; N d17 ; B -20 -20 222 172 ; +C 18 ; WX 0 ; N d18 ; B -20 -20 212 184 ; +C 19 ; WX 0 ; N d19 ; B -21 -20 203 195 ; +C 20 ; WX 0 ; N d20 ; B -20 -21 192 205 ; +C 21 ; WX 0 ; N d21 ; B -20 -20 181 214 ; +C 22 ; WX 0 ; N d22 ; B -20 -20 172 223 ; +C 23 ; WX 0 ; N d23 ; B -20 -21 160 230 ; +C 24 ; WX 0 ; N d24 ; B -21 -21 150 237 ; +C 25 ; WX 0 ; N d25 ; B -21 -20 139 242 ; +C 26 ; WX 0 ; N d26 ; B -21 -20 131 248 ; +C 27 ; WX 0 ; N d27 ; B -20 -20 121 253 ; +C 28 ; WX 0 ; N d28 ; B -21 -21 112 255 ; +C 29 ; WX 0 ; N d29 ; B -20 -21 104 259 ; +C 30 ; WX 0 ; N d30 ; B -20 -20 95 261 ; +C 31 ; WX 0 ; N d31 ; B -20 -21 88 264 ; +C 32 ; WX 0 ; N d32 ; B -20 -21 79 266 ; +C 33 ; WX 0 ; N d33 ; B -21 -21 70 267 ; +C 34 ; WX 0 ; N d34 ; B -21 -20 61 269 ; +C 35 ; WX 0 ; N d35 ; B -23 -20 52 271 ; +C 36 ; WX 0 ; N d36 ; B -24 -20 41 272 ; +C 37 ; WX 0 ; N d37 ; B -28 -21 30 272 ; +C 38 ; WX 0 ; N d38 ; B -32 -20 21 272 ; +C 39 ; WX 0 ; N d39 ; B -40 -21 20 272 ; +C 40 ; WX 0 ; N d40 ; B -51 -20 21 271 ; +C 41 ; WX 0 ; N d41 ; B -62 -20 21 269 ; +C 42 ; WX 0 ; N d42 ; B -75 -21 21 267 ; +C 43 ; WX 0 ; N d43 ; B -89 -21 21 263 ; +C 44 ; WX 0 ; N d44 ; B -103 -21 20 259 ; +C 45 ; WX 0 ; N d45 ; B -118 -20 21 254 ; +C 46 ; WX 0 ; N d46 ; B -132 -20 21 247 ; +C 47 ; WX 0 ; N d47 ; B -146 -21 21 239 ; +C 48 ; WX 0 ; N d48 ; B -160 -21 21 231 ; +C 49 ; WX 0 ; N d49 ; B -172 -21 21 222 ; +C 50 ; WX 0 ; N d50 ; B -184 -21 21 212 ; +C 51 ; WX 0 ; N d51 ; B -196 -19 21 203 ; +C 52 ; WX 0 ; N d52 ; B -205 -20 21 192 ; +C 53 ; WX 0 ; N d53 ; B -214 -20 21 181 ; +C 54 ; WX 0 ; N d54 ; B -223 -20 21 171 ; +C 55 ; WX 0 ; N d55 ; B -230 -21 21 160 ; +C 56 ; WX 0 ; N d56 ; B -237 -20 21 150 ; +C 57 ; WX 0 ; N d57 ; B -242 -20 21 140 ; +C 58 ; WX 0 ; N d58 ; B -247 -20 21 130 ; +C 59 ; WX 0 ; N d59 ; B -252 -20 20 121 ; +C 60 ; WX 0 ; N d60 ; B -256 -20 21 111 ; +C 61 ; WX 0 ; N d61 ; B -259 -20 21 103 ; +C 62 ; WX 0 ; N d62 ; B -261 -20 21 95 ; +C 63 ; WX 0 ; N d63 ; B -264 -20 21 87 ; +C 64 ; WX 0 ; N d64 ; B -266 -21 21 79 ; +C 65 ; WX 0 ; N d65 ; B -267 -20 21 70 ; +C 66 ; WX 0 ; N d66 ; B -270 -21 21 61 ; +C 67 ; WX 0 ; N d67 ; B -271 -23 21 52 ; +C 68 ; WX 0 ; N d68 ; B -272 -25 21 42 ; +C 69 ; WX 0 ; N d69 ; B -273 -28 21 30 ; +C 70 ; WX 0 ; N d70 ; B -271 -34 21 21 ; +C 71 ; WX 0 ; N d71 ; B -272 -40 21 21 ; +C 72 ; WX 0 ; N d72 ; B -272 -51 21 21 ; +C 73 ; WX 0 ; N d73 ; B -269 -62 21 21 ; +C 74 ; WX 0 ; N d74 ; B -267 -75 21 21 ; +C 75 ; WX 0 ; N d75 ; B -263 -89 21 21 ; +C 76 ; WX 0 ; N d76 ; B -259 -103 21 21 ; +C 77 ; WX 0 ; N d77 ; B -253 -117 21 21 ; +C 78 ; WX 0 ; N d78 ; B -247 -132 21 21 ; +C 79 ; WX 0 ; N d79 ; B -240 -146 21 21 ; +C 80 ; WX 0 ; N d80 ; B -231 -159 21 21 ; +C 81 ; WX 0 ; N d81 ; B -223 -172 21 21 ; +C 82 ; WX 0 ; N d82 ; B -212 -184 21 21 ; +C 83 ; WX 0 ; N d83 ; B -203 -195 21 21 ; +C 84 ; WX 0 ; N d84 ; B -192 -205 21 21 ; +C 85 ; WX 0 ; N d85 ; B -181 -214 21 21 ; +C 86 ; WX 0 ; N d86 ; B -171 -223 21 21 ; +C 87 ; WX 0 ; N d87 ; B -160 -231 21 21 ; +C 88 ; WX 0 ; N d88 ; B -150 -237 21 21 ; +C 89 ; WX 0 ; N d89 ; B -140 -242 21 21 ; +C 90 ; WX 0 ; N d90 ; B -131 -247 21 21 ; +C 91 ; WX 0 ; N d91 ; B -121 -252 21 21 ; +C 92 ; WX 0 ; N d92 ; B -111 -256 21 21 ; +C 93 ; WX 0 ; N d93 ; B -104 -259 21 21 ; +C 94 ; WX 0 ; N d94 ; B -95 -261 21 21 ; +C 95 ; WX 0 ; N d95 ; B -87 -264 21 21 ; +C 96 ; WX 0 ; N d96 ; B -80 -266 21 21 ; +C 97 ; WX 0 ; N d97 ; B -70 -267 21 21 ; +C 98 ; WX 0 ; N d98 ; B -61 -269 21 21 ; +C 99 ; WX 0 ; N d99 ; B -52 -271 23 21 ; +C 100 ; WX 0 ; N d100 ; B -41 -272 24 21 ; +C 101 ; WX 0 ; N d101 ; B -30 -273 28 21 ; +C 102 ; WX 0 ; N d102 ; B -21 -271 34 21 ; +C 103 ; WX 0 ; N d103 ; B -21 -272 40 21 ; +C 104 ; WX 0 ; N d104 ; B -21 -272 51 21 ; +C 105 ; WX 0 ; N d105 ; B -20 -269 62 21 ; +C 106 ; WX 0 ; N d106 ; B -20 -267 75 21 ; +C 107 ; WX 0 ; N d107 ; B -20 -263 89 21 ; +C 108 ; WX 0 ; N d108 ; B -21 -259 103 21 ; +C 109 ; WX 0 ; N d109 ; B -20 -253 118 21 ; +C 110 ; WX 0 ; N d110 ; B -20 -247 132 21 ; +C 111 ; WX 0 ; N d111 ; B -20 -240 146 21 ; +C 112 ; WX 0 ; N d112 ; B -20 -232 160 21 ; +C 113 ; WX 0 ; N d113 ; B -20 -223 172 21 ; +C 114 ; WX 0 ; N d114 ; B -21 -212 184 21 ; +C 115 ; WX 0 ; N d115 ; B -21 -203 195 21 ; +C 116 ; WX 0 ; N d116 ; B -20 -192 205 21 ; +C 117 ; WX 0 ; N d117 ; B -20 -181 214 21 ; +C 118 ; WX 0 ; N d118 ; B -20 -171 223 21 ; +C 119 ; WX 0 ; N d119 ; B -20 -160 230 21 ; +C 120 ; WX 0 ; N d120 ; B -20 -150 237 21 ; +C 121 ; WX 0 ; N d121 ; B -20 -140 242 21 ; +C 122 ; WX 0 ; N d122 ; B -20 -129 247 21 ; +C 123 ; WX 0 ; N d123 ; B -20 -121 252 21 ; +C 124 ; WX 0 ; N d124 ; B -20 -112 255 21 ; +C 125 ; WX 0 ; N d125 ; B -20 -103 259 21 ; +C 126 ; WX 0 ; N d126 ; B -20 -95 262 21 ; +C 127 ; WX 0 ; N d127 ; B -20 -87 264 21 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyeuat11.afm b/Master/texmf-dist/fonts/afm/xypic/xyeuat11.afm new file mode 100644 index 00000000000..85de0feb8de --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyeuat11.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:28 2010 +FontName XYEUAT-Medium +FullName XYEUAT +FamilyName XYEUAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -270 -271 270 271 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -18 -77 264 19 ; +C 1 ; WX 0 ; N d1 ; B -18 -69 265 19 ; +C 2 ; WX 0 ; N d2 ; B -18 -59 268 19 ; +C 3 ; WX 0 ; N d3 ; B -18 -50 269 20 ; +C 4 ; WX 0 ; N d4 ; B -18 -40 270 23 ; +C 5 ; WX 0 ; N d5 ; B -18 -29 270 26 ; +C 6 ; WX 0 ; N d6 ; B -18 -18 270 32 ; +C 7 ; WX 0 ; N d7 ; B -18 -19 270 38 ; +C 8 ; WX 0 ; N d8 ; B -18 -18 269 49 ; +C 9 ; WX 0 ; N d9 ; B -18 -18 268 59 ; +C 10 ; WX 0 ; N d10 ; B -18 -19 265 73 ; +C 11 ; WX 0 ; N d11 ; B -18 -18 262 87 ; +C 12 ; WX 0 ; N d12 ; B -18 -19 257 101 ; +C 13 ; WX 0 ; N d13 ; B -18 -18 251 115 ; +C 14 ; WX 0 ; N d14 ; B -18 -18 245 130 ; +C 15 ; WX 0 ; N d15 ; B -18 -19 238 144 ; +C 16 ; WX 0 ; N d16 ; B -18 -18 229 157 ; +C 17 ; WX 0 ; N d17 ; B -18 -18 221 170 ; +C 18 ; WX 0 ; N d18 ; B -18 -18 210 182 ; +C 19 ; WX 0 ; N d19 ; B -18 -18 200 193 ; +C 20 ; WX 0 ; N d20 ; B -18 -18 191 204 ; +C 21 ; WX 0 ; N d21 ; B -19 -19 179 213 ; +C 22 ; WX 0 ; N d22 ; B -18 -18 169 221 ; +C 23 ; WX 0 ; N d23 ; B -19 -19 159 229 ; +C 24 ; WX 0 ; N d24 ; B -18 -18 149 235 ; +C 25 ; WX 0 ; N d25 ; B -19 -18 138 240 ; +C 26 ; WX 0 ; N d26 ; B -18 -18 128 245 ; +C 27 ; WX 0 ; N d27 ; B -18 -18 119 250 ; +C 28 ; WX 0 ; N d28 ; B -19 -18 109 253 ; +C 29 ; WX 0 ; N d29 ; B -19 -19 102 257 ; +C 30 ; WX 0 ; N d30 ; B -19 -18 94 259 ; +C 31 ; WX 0 ; N d31 ; B -18 -19 86 262 ; +C 32 ; WX 0 ; N d32 ; B -18 -18 77 264 ; +C 33 ; WX 0 ; N d33 ; B -18 -18 68 266 ; +C 34 ; WX 0 ; N d34 ; B -19 -19 59 267 ; +C 35 ; WX 0 ; N d35 ; B -20 -18 50 269 ; +C 36 ; WX 0 ; N d36 ; B -22 -19 40 270 ; +C 37 ; WX 0 ; N d37 ; B -25 -18 28 270 ; +C 38 ; WX 0 ; N d38 ; B -31 -18 19 271 ; +C 39 ; WX 0 ; N d39 ; B -38 -18 19 270 ; +C 40 ; WX 0 ; N d40 ; B -48 -18 19 270 ; +C 41 ; WX 0 ; N d41 ; B -60 -18 19 268 ; +C 42 ; WX 0 ; N d42 ; B -73 -18 19 265 ; +C 43 ; WX 0 ; N d43 ; B -87 -18 18 262 ; +C 44 ; WX 0 ; N d44 ; B -101 -18 19 257 ; +C 45 ; WX 0 ; N d45 ; B -116 -18 19 251 ; +C 46 ; WX 0 ; N d46 ; B -130 -18 19 245 ; +C 47 ; WX 0 ; N d47 ; B -144 -18 19 237 ; +C 48 ; WX 0 ; N d48 ; B -157 -18 19 230 ; +C 49 ; WX 0 ; N d49 ; B -170 -18 19 221 ; +C 50 ; WX 0 ; N d50 ; B -182 -18 19 210 ; +C 51 ; WX 0 ; N d51 ; B -194 -18 19 200 ; +C 52 ; WX 0 ; N d52 ; B -202 -18 19 191 ; +C 53 ; WX 0 ; N d53 ; B -212 -18 19 180 ; +C 54 ; WX 0 ; N d54 ; B -221 -18 19 169 ; +C 55 ; WX 0 ; N d55 ; B -229 -18 19 158 ; +C 56 ; WX 0 ; N d56 ; B -235 -18 19 148 ; +C 57 ; WX 0 ; N d57 ; B -240 -18 19 138 ; +C 58 ; WX 0 ; N d58 ; B -246 -19 19 129 ; +C 59 ; WX 0 ; N d59 ; B -250 -18 19 119 ; +C 60 ; WX 0 ; N d60 ; B -254 -18 19 109 ; +C 61 ; WX 0 ; N d61 ; B -257 -18 19 101 ; +C 62 ; WX 0 ; N d62 ; B -259 -18 19 93 ; +C 63 ; WX 0 ; N d63 ; B -262 -18 19 85 ; +C 64 ; WX 0 ; N d64 ; B -264 -19 19 77 ; +C 65 ; WX 0 ; N d65 ; B -265 -19 19 68 ; +C 66 ; WX 0 ; N d66 ; B -268 -19 19 59 ; +C 67 ; WX 0 ; N d67 ; B -269 -21 19 50 ; +C 68 ; WX 0 ; N d68 ; B -270 -22 19 39 ; +C 69 ; WX 0 ; N d69 ; B -270 -26 19 28 ; +C 70 ; WX 0 ; N d70 ; B -270 -31 19 18 ; +C 71 ; WX 0 ; N d71 ; B -270 -38 19 18 ; +C 72 ; WX 0 ; N d72 ; B -269 -48 19 19 ; +C 73 ; WX 0 ; N d73 ; B -268 -60 19 19 ; +C 74 ; WX 0 ; N d74 ; B -265 -73 19 19 ; +C 75 ; WX 0 ; N d75 ; B -262 -87 19 19 ; +C 76 ; WX 0 ; N d76 ; B -257 -101 19 19 ; +C 77 ; WX 0 ; N d77 ; B -251 -115 19 19 ; +C 78 ; WX 0 ; N d78 ; B -245 -130 19 19 ; +C 79 ; WX 0 ; N d79 ; B -237 -144 19 19 ; +C 80 ; WX 0 ; N d80 ; B -229 -157 19 19 ; +C 81 ; WX 0 ; N d81 ; B -221 -170 19 19 ; +C 82 ; WX 0 ; N d82 ; B -210 -182 19 19 ; +C 83 ; WX 0 ; N d83 ; B -200 -193 19 19 ; +C 84 ; WX 0 ; N d84 ; B -191 -204 19 19 ; +C 85 ; WX 0 ; N d85 ; B -179 -212 19 19 ; +C 86 ; WX 0 ; N d86 ; B -169 -221 19 19 ; +C 87 ; WX 0 ; N d87 ; B -158 -228 19 19 ; +C 88 ; WX 0 ; N d88 ; B -149 -235 19 19 ; +C 89 ; WX 0 ; N d89 ; B -138 -240 19 19 ; +C 90 ; WX 0 ; N d90 ; B -129 -246 19 19 ; +C 91 ; WX 0 ; N d91 ; B -118 -249 19 19 ; +C 92 ; WX 0 ; N d92 ; B -109 -253 19 20 ; +C 93 ; WX 0 ; N d93 ; B -101 -257 19 20 ; +C 94 ; WX 0 ; N d94 ; B -94 -259 19 19 ; +C 95 ; WX 0 ; N d95 ; B -86 -262 19 20 ; +C 96 ; WX 0 ; N d96 ; B -77 -264 19 19 ; +C 97 ; WX 0 ; N d97 ; B -69 -265 19 19 ; +C 98 ; WX 0 ; N d98 ; B -59 -268 19 20 ; +C 99 ; WX 0 ; N d99 ; B -50 -268 21 20 ; +C 100 ; WX 0 ; N d100 ; B -40 -270 22 19 ; +C 101 ; WX 0 ; N d101 ; B -28 -271 26 19 ; +C 102 ; WX 0 ; N d102 ; B -18 -270 32 19 ; +C 103 ; WX 0 ; N d103 ; B -18 -270 38 19 ; +C 104 ; WX 0 ; N d104 ; B -19 -269 48 19 ; +C 105 ; WX 0 ; N d105 ; B -19 -268 60 19 ; +C 106 ; WX 0 ; N d106 ; B -18 -265 73 19 ; +C 107 ; WX 0 ; N d107 ; B -18 -262 87 20 ; +C 108 ; WX 0 ; N d108 ; B -18 -256 101 20 ; +C 109 ; WX 0 ; N d109 ; B -18 -251 115 19 ; +C 110 ; WX 0 ; N d110 ; B -19 -245 130 19 ; +C 111 ; WX 0 ; N d111 ; B -18 -237 144 19 ; +C 112 ; WX 0 ; N d112 ; B -18 -229 157 19 ; +C 113 ; WX 0 ; N d113 ; B -18 -221 170 19 ; +C 114 ; WX 0 ; N d114 ; B -19 -210 182 19 ; +C 115 ; WX 0 ; N d115 ; B -18 -200 194 19 ; +C 116 ; WX 0 ; N d116 ; B -18 -191 204 19 ; +C 117 ; WX 0 ; N d117 ; B -18 -179 212 20 ; +C 118 ; WX 0 ; N d118 ; B -18 -169 221 19 ; +C 119 ; WX 0 ; N d119 ; B -18 -159 229 19 ; +C 120 ; WX 0 ; N d120 ; B -18 -148 235 19 ; +C 121 ; WX 0 ; N d121 ; B -18 -138 240 19 ; +C 122 ; WX 0 ; N d122 ; B -18 -129 246 19 ; +C 123 ; WX 0 ; N d123 ; B -18 -118 249 19 ; +C 124 ; WX 0 ; N d124 ; B -18 -109 253 19 ; +C 125 ; WX 0 ; N d125 ; B -18 -102 257 19 ; +C 126 ; WX 0 ; N d126 ; B -18 -93 259 19 ; +C 127 ; WX 0 ; N d127 ; B -18 -86 262 19 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyeuat12.afm b/Master/texmf-dist/fonts/afm/xypic/xyeuat12.afm new file mode 100644 index 00000000000..b22ba008b9a --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyeuat12.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:31 2010 +FontName XYEUAT-Medium +FullName XYEUAT +FamilyName XYEUAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -269 -269 269 269 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -17 -75 263 17 ; +C 1 ; WX 0 ; N d1 ; B -17 -67 265 17 ; +C 2 ; WX 0 ; N d2 ; B -18 -58 266 18 ; +C 3 ; WX 0 ; N d3 ; B -17 -48 268 18 ; +C 4 ; WX 0 ; N d4 ; B -17 -38 269 22 ; +C 5 ; WX 0 ; N d5 ; B -17 -27 269 25 ; +C 6 ; WX 0 ; N d6 ; B -17 -17 269 30 ; +C 7 ; WX 0 ; N d7 ; B -18 -17 269 37 ; +C 8 ; WX 0 ; N d8 ; B -18 -17 268 46 ; +C 9 ; WX 0 ; N d9 ; B -18 -17 266 58 ; +C 10 ; WX 0 ; N d10 ; B -18 -17 264 71 ; +C 11 ; WX 0 ; N d11 ; B -18 -18 260 85 ; +C 12 ; WX 0 ; N d12 ; B -18 -17 256 100 ; +C 13 ; WX 0 ; N d13 ; B -18 -18 250 114 ; +C 14 ; WX 0 ; N d14 ; B -18 -17 243 129 ; +C 15 ; WX 0 ; N d15 ; B -18 -18 236 142 ; +C 16 ; WX 0 ; N d16 ; B -18 -18 228 156 ; +C 17 ; WX 0 ; N d17 ; B -17 -17 219 169 ; +C 18 ; WX 0 ; N d18 ; B -17 -17 209 180 ; +C 19 ; WX 0 ; N d19 ; B -17 -17 199 191 ; +C 20 ; WX 0 ; N d20 ; B -18 -17 189 202 ; +C 21 ; WX 0 ; N d21 ; B -18 -18 179 211 ; +C 22 ; WX 0 ; N d22 ; B -17 -18 167 219 ; +C 23 ; WX 0 ; N d23 ; B -17 -17 158 227 ; +C 24 ; WX 0 ; N d24 ; B -18 -17 146 234 ; +C 25 ; WX 0 ; N d25 ; B -17 -17 136 239 ; +C 26 ; WX 0 ; N d26 ; B -17 -17 126 244 ; +C 27 ; WX 0 ; N d27 ; B -17 -17 117 248 ; +C 28 ; WX 0 ; N d28 ; B -18 -17 109 253 ; +C 29 ; WX 0 ; N d29 ; B -17 -17 99 256 ; +C 30 ; WX 0 ; N d30 ; B -17 -17 91 258 ; +C 31 ; WX 0 ; N d31 ; B -17 -17 83 261 ; +C 32 ; WX 0 ; N d32 ; B -17 -17 75 263 ; +C 33 ; WX 0 ; N d33 ; B -17 -17 67 264 ; +C 34 ; WX 0 ; N d34 ; B -17 -18 58 266 ; +C 35 ; WX 0 ; N d35 ; B -19 -17 48 267 ; +C 36 ; WX 0 ; N d36 ; B -21 -18 38 269 ; +C 37 ; WX 0 ; N d37 ; B -26 -17 28 269 ; +C 38 ; WX 0 ; N d38 ; B -30 -18 18 269 ; +C 39 ; WX 0 ; N d39 ; B -38 -17 18 269 ; +C 40 ; WX 0 ; N d40 ; B -47 -17 18 268 ; +C 41 ; WX 0 ; N d41 ; B -58 -18 17 266 ; +C 42 ; WX 0 ; N d42 ; B -71 -17 17 263 ; +C 43 ; WX 0 ; N d43 ; B -85 -17 18 260 ; +C 44 ; WX 0 ; N d44 ; B -100 -18 17 255 ; +C 45 ; WX 0 ; N d45 ; B -115 -18 17 250 ; +C 46 ; WX 0 ; N d46 ; B -128 -18 17 244 ; +C 47 ; WX 0 ; N d47 ; B -142 -18 17 236 ; +C 48 ; WX 0 ; N d48 ; B -155 -18 18 228 ; +C 49 ; WX 0 ; N d49 ; B -168 -18 17 219 ; +C 50 ; WX 0 ; N d50 ; B -180 -18 17 210 ; +C 51 ; WX 0 ; N d51 ; B -190 -18 17 199 ; +C 52 ; WX 0 ; N d52 ; B -203 -18 17 189 ; +C 53 ; WX 0 ; N d53 ; B -212 -17 18 179 ; +C 54 ; WX 0 ; N d54 ; B -220 -18 17 167 ; +C 55 ; WX 0 ; N d55 ; B -227 -17 17 158 ; +C 56 ; WX 0 ; N d56 ; B -234 -18 17 147 ; +C 57 ; WX 0 ; N d57 ; B -239 -17 18 136 ; +C 58 ; WX 0 ; N d58 ; B -244 -17 17 126 ; +C 59 ; WX 0 ; N d59 ; B -249 -17 17 118 ; +C 60 ; WX 0 ; N d60 ; B -253 -17 17 108 ; +C 61 ; WX 0 ; N d61 ; B -255 -17 18 100 ; +C 62 ; WX 0 ; N d62 ; B -258 -18 17 91 ; +C 63 ; WX 0 ; N d63 ; B -260 -17 18 83 ; +C 64 ; WX 0 ; N d64 ; B -263 -17 17 76 ; +C 65 ; WX 0 ; N d65 ; B -264 -18 17 67 ; +C 66 ; WX 0 ; N d66 ; B -266 -17 17 58 ; +C 67 ; WX 0 ; N d67 ; B -267 -17 17 49 ; +C 68 ; WX 0 ; N d68 ; B -269 -21 17 38 ; +C 69 ; WX 0 ; N d69 ; B -269 -25 18 27 ; +C 70 ; WX 0 ; N d70 ; B -269 -30 17 17 ; +C 71 ; WX 0 ; N d71 ; B -269 -37 17 17 ; +C 72 ; WX 0 ; N d72 ; B -268 -46 17 17 ; +C 73 ; WX 0 ; N d73 ; B -266 -57 17 17 ; +C 74 ; WX 0 ; N d74 ; B -264 -71 17 17 ; +C 75 ; WX 0 ; N d75 ; B -260 -85 17 17 ; +C 76 ; WX 0 ; N d76 ; B -256 -100 17 18 ; +C 77 ; WX 0 ; N d77 ; B -250 -114 17 17 ; +C 78 ; WX 0 ; N d78 ; B -244 -128 17 17 ; +C 79 ; WX 0 ; N d79 ; B -236 -143 18 17 ; +C 80 ; WX 0 ; N d80 ; B -228 -156 18 18 ; +C 81 ; WX 0 ; N d81 ; B -219 -169 17 18 ; +C 82 ; WX 0 ; N d82 ; B -209 -180 17 17 ; +C 83 ; WX 0 ; N d83 ; B -199 -190 17 18 ; +C 84 ; WX 0 ; N d84 ; B -189 -201 17 18 ; +C 85 ; WX 0 ; N d85 ; B -178 -211 18 18 ; +C 86 ; WX 0 ; N d86 ; B -168 -220 17 18 ; +C 87 ; WX 0 ; N d87 ; B -157 -227 17 18 ; +C 88 ; WX 0 ; N d88 ; B -146 -234 18 18 ; +C 89 ; WX 0 ; N d89 ; B -136 -239 17 18 ; +C 90 ; WX 0 ; N d90 ; B -126 -244 17 18 ; +C 91 ; WX 0 ; N d91 ; B -118 -248 18 18 ; +C 92 ; WX 0 ; N d92 ; B -109 -252 18 18 ; +C 93 ; WX 0 ; N d93 ; B -99 -255 17 18 ; +C 94 ; WX 0 ; N d94 ; B -91 -258 17 18 ; +C 95 ; WX 0 ; N d95 ; B -83 -260 17 18 ; +C 96 ; WX 0 ; N d96 ; B -75 -262 18 18 ; +C 97 ; WX 0 ; N d97 ; B -67 -265 17 18 ; +C 98 ; WX 0 ; N d98 ; B -58 -266 17 18 ; +C 99 ; WX 0 ; N d99 ; B -48 -267 19 18 ; +C 100 ; WX 0 ; N d100 ; B -38 -269 22 18 ; +C 101 ; WX 0 ; N d101 ; B -28 -269 25 18 ; +C 102 ; WX 0 ; N d102 ; B -17 -269 30 18 ; +C 103 ; WX 0 ; N d103 ; B -17 -269 37 18 ; +C 104 ; WX 0 ; N d104 ; B -17 -268 47 18 ; +C 105 ; WX 0 ; N d105 ; B -17 -266 58 18 ; +C 106 ; WX 0 ; N d106 ; B -17 -263 71 18 ; +C 107 ; WX 0 ; N d107 ; B -18 -260 85 17 ; +C 108 ; WX 0 ; N d108 ; B -17 -254 100 18 ; +C 109 ; WX 0 ; N d109 ; B -18 -250 115 17 ; +C 110 ; WX 0 ; N d110 ; B -18 -243 128 17 ; +C 111 ; WX 0 ; N d111 ; B -18 -236 142 17 ; +C 112 ; WX 0 ; N d112 ; B -17 -228 156 17 ; +C 113 ; WX 0 ; N d113 ; B -18 -219 168 17 ; +C 114 ; WX 0 ; N d114 ; B -18 -209 180 17 ; +C 115 ; WX 0 ; N d115 ; B -18 -199 191 17 ; +C 116 ; WX 0 ; N d116 ; B -18 -189 203 17 ; +C 117 ; WX 0 ; N d117 ; B -18 -179 212 18 ; +C 118 ; WX 0 ; N d118 ; B -18 -168 219 18 ; +C 119 ; WX 0 ; N d119 ; B -18 -157 228 17 ; +C 120 ; WX 0 ; N d120 ; B -18 -146 233 17 ; +C 121 ; WX 0 ; N d121 ; B -17 -137 240 17 ; +C 122 ; WX 0 ; N d122 ; B -18 -126 245 17 ; +C 123 ; WX 0 ; N d123 ; B -18 -117 249 17 ; +C 124 ; WX 0 ; N d124 ; B -18 -109 252 17 ; +C 125 ; WX 0 ; N d125 ; B -18 -99 255 17 ; +C 126 ; WX 0 ; N d126 ; B -17 -91 258 18 ; +C 127 ; WX 0 ; N d127 ; B -17 -83 260 17 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyeubt10.afm b/Master/texmf-dist/fonts/afm/xypic/xyeubt10.afm new file mode 100644 index 00000000000..2a777c4dd60 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyeubt10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:25 2010 +FontName XYEUBT-Medium +FullName XYEUBT +FamilyName XYEUBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -273 -273 273 272 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -95 -20 21 261 ; +C 1 ; WX 0 ; N d1 ; B -103 -20 21 259 ; +C 2 ; WX 0 ; N d2 ; B -112 -20 21 255 ; +C 3 ; WX 0 ; N d3 ; B -121 -21 21 252 ; +C 4 ; WX 0 ; N d4 ; B -131 -20 20 247 ; +C 5 ; WX 0 ; N d5 ; B -139 -20 21 242 ; +C 6 ; WX 0 ; N d6 ; B -151 -20 21 237 ; +C 7 ; WX 0 ; N d7 ; B -160 -21 20 231 ; +C 8 ; WX 0 ; N d8 ; B -172 -21 20 223 ; +C 9 ; WX 0 ; N d9 ; B -181 -21 20 214 ; +C 10 ; WX 0 ; N d10 ; B -192 -20 21 205 ; +C 11 ; WX 0 ; N d11 ; B -203 -21 21 196 ; +C 12 ; WX 0 ; N d12 ; B -212 -19 21 184 ; +C 13 ; WX 0 ; N d13 ; B -223 -21 21 172 ; +C 14 ; WX 0 ; N d14 ; B -231 -20 21 159 ; +C 15 ; WX 0 ; N d15 ; B -239 -20 20 146 ; +C 16 ; WX 0 ; N d16 ; B -247 -21 21 132 ; +C 17 ; WX 0 ; N d17 ; B -254 -19 21 118 ; +C 18 ; WX 0 ; N d18 ; B -259 -21 21 103 ; +C 19 ; WX 0 ; N d19 ; B -264 -21 21 89 ; +C 20 ; WX 0 ; N d20 ; B -266 -20 21 75 ; +C 21 ; WX 0 ; N d21 ; B -269 -20 21 62 ; +C 22 ; WX 0 ; N d22 ; B -271 -20 20 50 ; +C 23 ; WX 0 ; N d23 ; B -272 -20 21 41 ; +C 24 ; WX 0 ; N d24 ; B -271 -21 21 34 ; +C 25 ; WX 0 ; N d25 ; B -273 -29 21 28 ; +C 26 ; WX 0 ; N d26 ; B -272 -42 21 24 ; +C 27 ; WX 0 ; N d27 ; B -271 -52 21 22 ; +C 28 ; WX 0 ; N d28 ; B -270 -61 21 21 ; +C 29 ; WX 0 ; N d29 ; B -267 -71 21 21 ; +C 30 ; WX 0 ; N d30 ; B -266 -79 21 21 ; +C 31 ; WX 0 ; N d31 ; B -264 -87 21 21 ; +C 32 ; WX 0 ; N d32 ; B -262 -95 21 21 ; +C 33 ; WX 0 ; N d33 ; B -259 -104 21 21 ; +C 34 ; WX 0 ; N d34 ; B -255 -112 21 21 ; +C 35 ; WX 0 ; N d35 ; B -252 -121 21 21 ; +C 36 ; WX 0 ; N d36 ; B -247 -129 21 21 ; +C 37 ; WX 0 ; N d37 ; B -242 -140 21 21 ; +C 38 ; WX 0 ; N d38 ; B -237 -150 21 21 ; +C 39 ; WX 0 ; N d39 ; B -230 -160 21 21 ; +C 40 ; WX 0 ; N d40 ; B -223 -171 21 21 ; +C 41 ; WX 0 ; N d41 ; B -214 -181 21 21 ; +C 42 ; WX 0 ; N d42 ; B -205 -192 21 21 ; +C 43 ; WX 0 ; N d43 ; B -195 -203 21 21 ; +C 44 ; WX 0 ; N d44 ; B -184 -212 21 21 ; +C 45 ; WX 0 ; N d45 ; B -172 -223 21 21 ; +C 46 ; WX 0 ; N d46 ; B -160 -231 21 21 ; +C 47 ; WX 0 ; N d47 ; B -146 -240 21 21 ; +C 48 ; WX 0 ; N d48 ; B -131 -247 21 21 ; +C 49 ; WX 0 ; N d49 ; B -118 -253 21 21 ; +C 50 ; WX 0 ; N d50 ; B -103 -259 21 21 ; +C 51 ; WX 0 ; N d51 ; B -89 -264 21 21 ; +C 52 ; WX 0 ; N d52 ; B -75 -267 21 21 ; +C 53 ; WX 0 ; N d53 ; B -62 -269 21 21 ; +C 54 ; WX 0 ; N d54 ; B -51 -272 21 21 ; +C 55 ; WX 0 ; N d55 ; B -41 -272 21 21 ; +C 56 ; WX 0 ; N d56 ; B -32 -271 21 21 ; +C 57 ; WX 0 ; N d57 ; B -28 -273 30 21 ; +C 58 ; WX 0 ; N d58 ; B -23 -272 42 21 ; +C 59 ; WX 0 ; N d59 ; B -22 -271 52 21 ; +C 60 ; WX 0 ; N d60 ; B -21 -269 61 21 ; +C 61 ; WX 0 ; N d61 ; B -21 -267 70 21 ; +C 62 ; WX 0 ; N d62 ; B -20 -266 80 21 ; +C 63 ; WX 0 ; N d63 ; B -20 -264 88 21 ; +C 64 ; WX 0 ; N d64 ; B -21 -261 95 21 ; +C 65 ; WX 0 ; N d65 ; B -20 -259 103 21 ; +C 66 ; WX 0 ; N d66 ; B -21 -256 111 21 ; +C 67 ; WX 0 ; N d67 ; B -20 -252 121 21 ; +C 68 ; WX 0 ; N d68 ; B -21 -247 131 21 ; +C 69 ; WX 0 ; N d69 ; B -21 -242 140 21 ; +C 70 ; WX 0 ; N d70 ; B -20 -237 150 21 ; +C 71 ; WX 0 ; N d71 ; B -20 -231 160 21 ; +C 72 ; WX 0 ; N d72 ; B -20 -223 171 21 ; +C 73 ; WX 0 ; N d73 ; B -20 -214 181 21 ; +C 74 ; WX 0 ; N d74 ; B -20 -205 192 21 ; +C 75 ; WX 0 ; N d75 ; B -20 -195 203 21 ; +C 76 ; WX 0 ; N d76 ; B -21 -184 212 21 ; +C 77 ; WX 0 ; N d77 ; B -20 -172 223 21 ; +C 78 ; WX 0 ; N d78 ; B -20 -159 231 21 ; +C 79 ; WX 0 ; N d79 ; B -20 -146 240 21 ; +C 80 ; WX 0 ; N d80 ; B -20 -132 247 21 ; +C 81 ; WX 0 ; N d81 ; B -20 -117 253 21 ; +C 82 ; WX 0 ; N d82 ; B -20 -103 259 21 ; +C 83 ; WX 0 ; N d83 ; B -20 -89 264 21 ; +C 84 ; WX 0 ; N d84 ; B -20 -74 267 21 ; +C 85 ; WX 0 ; N d85 ; B -20 -62 269 21 ; +C 86 ; WX 0 ; N d86 ; B -20 -51 272 21 ; +C 87 ; WX 0 ; N d87 ; B -20 -40 272 21 ; +C 88 ; WX 0 ; N d88 ; B -20 -33 272 21 ; +C 89 ; WX 0 ; N d89 ; B -20 -27 273 30 ; +C 90 ; WX 0 ; N d90 ; B -20 -24 272 41 ; +C 91 ; WX 0 ; N d91 ; B -20 -23 271 52 ; +C 92 ; WX 0 ; N d92 ; B -20 -21 270 61 ; +C 93 ; WX 0 ; N d93 ; B -20 -21 267 70 ; +C 94 ; WX 0 ; N d94 ; B -20 -20 266 79 ; +C 95 ; WX 0 ; N d95 ; B -20 -20 264 87 ; +C 96 ; WX 0 ; N d96 ; B -20 -21 262 95 ; +C 97 ; WX 0 ; N d97 ; B -20 -20 259 103 ; +C 98 ; WX 0 ; N d98 ; B -20 -20 256 111 ; +C 99 ; WX 0 ; N d99 ; B -20 -21 252 121 ; +C 100 ; WX 0 ; N d100 ; B -20 -20 247 130 ; +C 101 ; WX 0 ; N d101 ; B -20 -21 242 140 ; +C 102 ; WX 0 ; N d102 ; B -20 -21 237 151 ; +C 103 ; WX 0 ; N d103 ; B -20 -21 230 160 ; +C 104 ; WX 0 ; N d104 ; B -20 -20 223 171 ; +C 105 ; WX 0 ; N d105 ; B -20 -20 214 182 ; +C 106 ; WX 0 ; N d106 ; B -20 -20 205 192 ; +C 107 ; WX 0 ; N d107 ; B -21 -20 196 202 ; +C 108 ; WX 0 ; N d108 ; B -21 -21 184 212 ; +C 109 ; WX 0 ; N d109 ; B -20 -21 172 222 ; +C 110 ; WX 0 ; N d110 ; B -20 -20 160 231 ; +C 111 ; WX 0 ; N d111 ; B -20 -20 146 239 ; +C 112 ; WX 0 ; N d112 ; B -20 -20 131 247 ; +C 113 ; WX 0 ; N d113 ; B -20 -21 118 253 ; +C 114 ; WX 0 ; N d114 ; B -21 -21 103 259 ; +C 115 ; WX 0 ; N d115 ; B -20 -21 89 263 ; +C 116 ; WX 0 ; N d116 ; B -20 -21 75 267 ; +C 117 ; WX 0 ; N d117 ; B -21 -20 61 270 ; +C 118 ; WX 0 ; N d118 ; B -21 -20 51 271 ; +C 119 ; WX 0 ; N d119 ; B -21 -21 40 272 ; +C 120 ; WX 0 ; N d120 ; B -21 -21 34 272 ; +C 121 ; WX 0 ; N d121 ; B -30 -21 28 272 ; +C 122 ; WX 0 ; N d122 ; B -41 -20 24 272 ; +C 123 ; WX 0 ; N d123 ; B -52 -21 22 271 ; +C 124 ; WX 0 ; N d124 ; B -61 -21 22 269 ; +C 125 ; WX 0 ; N d125 ; B -70 -20 21 267 ; +C 126 ; WX 0 ; N d126 ; B -79 -21 21 266 ; +C 127 ; WX 0 ; N d127 ; B -87 -21 21 264 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyeubt11.afm b/Master/texmf-dist/fonts/afm/xypic/xyeubt11.afm new file mode 100644 index 00000000000..dd90bdd07a1 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyeubt11.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:29 2010 +FontName XYEUBT-Medium +FullName XYEUBT +FamilyName XYEUBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -271 -271 270 271 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -94 -18 19 260 ; +C 1 ; WX 0 ; N d1 ; B -101 -18 19 257 ; +C 2 ; WX 0 ; N d2 ; B -109 -18 19 254 ; +C 3 ; WX 0 ; N d3 ; B -118 -18 19 250 ; +C 4 ; WX 0 ; N d4 ; B -129 -18 19 245 ; +C 5 ; WX 0 ; N d5 ; B -138 -18 19 241 ; +C 6 ; WX 0 ; N d6 ; B -148 -18 19 235 ; +C 7 ; WX 0 ; N d7 ; B -158 -19 19 229 ; +C 8 ; WX 0 ; N d8 ; B -169 -18 19 221 ; +C 9 ; WX 0 ; N d9 ; B -180 -18 19 212 ; +C 10 ; WX 0 ; N d10 ; B -190 -18 19 203 ; +C 11 ; WX 0 ; N d11 ; B -200 -18 19 193 ; +C 12 ; WX 0 ; N d12 ; B -210 -18 19 182 ; +C 13 ; WX 0 ; N d13 ; B -220 -19 19 170 ; +C 14 ; WX 0 ; N d14 ; B -230 -18 19 157 ; +C 15 ; WX 0 ; N d15 ; B -237 -18 19 144 ; +C 16 ; WX 0 ; N d16 ; B -245 -18 19 130 ; +C 17 ; WX 0 ; N d17 ; B -252 -18 19 115 ; +C 18 ; WX 0 ; N d18 ; B -257 -18 19 101 ; +C 19 ; WX 0 ; N d19 ; B -262 -19 19 87 ; +C 20 ; WX 0 ; N d20 ; B -265 -18 19 73 ; +C 21 ; WX 0 ; N d21 ; B -268 -18 19 59 ; +C 22 ; WX 0 ; N d22 ; B -270 -18 19 48 ; +C 23 ; WX 0 ; N d23 ; B -270 -18 19 39 ; +C 24 ; WX 0 ; N d24 ; B -271 -19 19 32 ; +C 25 ; WX 0 ; N d25 ; B -271 -29 19 26 ; +C 26 ; WX 0 ; N d26 ; B -270 -40 19 22 ; +C 27 ; WX 0 ; N d27 ; B -269 -50 19 20 ; +C 28 ; WX 0 ; N d28 ; B -268 -59 19 19 ; +C 29 ; WX 0 ; N d29 ; B -265 -69 19 18 ; +C 30 ; WX 0 ; N d30 ; B -264 -77 19 19 ; +C 31 ; WX 0 ; N d31 ; B -262 -86 19 19 ; +C 32 ; WX 0 ; N d32 ; B -260 -93 19 19 ; +C 33 ; WX 0 ; N d33 ; B -257 -102 19 19 ; +C 34 ; WX 0 ; N d34 ; B -253 -109 19 19 ; +C 35 ; WX 0 ; N d35 ; B -249 -118 19 19 ; +C 36 ; WX 0 ; N d36 ; B -246 -129 19 19 ; +C 37 ; WX 0 ; N d37 ; B -240 -138 19 19 ; +C 38 ; WX 0 ; N d38 ; B -235 -148 19 19 ; +C 39 ; WX 0 ; N d39 ; B -229 -159 19 19 ; +C 40 ; WX 0 ; N d40 ; B -221 -169 19 19 ; +C 41 ; WX 0 ; N d41 ; B -212 -179 19 19 ; +C 42 ; WX 0 ; N d42 ; B -204 -191 19 19 ; +C 43 ; WX 0 ; N d43 ; B -194 -200 19 19 ; +C 44 ; WX 0 ; N d44 ; B -182 -210 19 19 ; +C 45 ; WX 0 ; N d45 ; B -170 -221 19 19 ; +C 46 ; WX 0 ; N d46 ; B -157 -229 19 19 ; +C 47 ; WX 0 ; N d47 ; B -144 -237 19 20 ; +C 48 ; WX 0 ; N d48 ; B -130 -245 19 19 ; +C 49 ; WX 0 ; N d49 ; B -116 -251 19 19 ; +C 50 ; WX 0 ; N d50 ; B -101 -256 19 19 ; +C 51 ; WX 0 ; N d51 ; B -87 -262 19 19 ; +C 52 ; WX 0 ; N d52 ; B -73 -265 19 19 ; +C 53 ; WX 0 ; N d53 ; B -60 -268 19 19 ; +C 54 ; WX 0 ; N d54 ; B -48 -269 19 19 ; +C 55 ; WX 0 ; N d55 ; B -38 -270 19 20 ; +C 56 ; WX 0 ; N d56 ; B -31 -270 19 20 ; +C 57 ; WX 0 ; N d57 ; B -26 -271 28 19 ; +C 58 ; WX 0 ; N d58 ; B -22 -270 40 19 ; +C 59 ; WX 0 ; N d59 ; B -20 -268 50 19 ; +C 60 ; WX 0 ; N d60 ; B -20 -268 59 19 ; +C 61 ; WX 0 ; N d61 ; B -18 -265 69 19 ; +C 62 ; WX 0 ; N d62 ; B -19 -264 77 19 ; +C 63 ; WX 0 ; N d63 ; B -18 -262 86 19 ; +C 64 ; WX 0 ; N d64 ; B -19 -259 94 20 ; +C 65 ; WX 0 ; N d65 ; B -19 -257 101 19 ; +C 66 ; WX 0 ; N d66 ; B -19 -253 109 19 ; +C 67 ; WX 0 ; N d67 ; B -18 -249 119 19 ; +C 68 ; WX 0 ; N d68 ; B -18 -246 129 19 ; +C 69 ; WX 0 ; N d69 ; B -18 -240 138 19 ; +C 70 ; WX 0 ; N d70 ; B -18 -235 149 19 ; +C 71 ; WX 0 ; N d71 ; B -19 -228 158 19 ; +C 72 ; WX 0 ; N d72 ; B -19 -221 169 20 ; +C 73 ; WX 0 ; N d73 ; B -19 -212 179 19 ; +C 74 ; WX 0 ; N d74 ; B -18 -204 191 19 ; +C 75 ; WX 0 ; N d75 ; B -18 -193 200 19 ; +C 76 ; WX 0 ; N d76 ; B -18 -182 210 19 ; +C 77 ; WX 0 ; N d77 ; B -18 -170 221 19 ; +C 78 ; WX 0 ; N d78 ; B -18 -157 229 19 ; +C 79 ; WX 0 ; N d79 ; B -18 -144 237 19 ; +C 80 ; WX 0 ; N d80 ; B -18 -130 245 19 ; +C 81 ; WX 0 ; N d81 ; B -18 -116 251 19 ; +C 82 ; WX 0 ; N d82 ; B -18 -101 257 19 ; +C 83 ; WX 0 ; N d83 ; B -18 -87 262 19 ; +C 84 ; WX 0 ; N d84 ; B -18 -73 265 19 ; +C 85 ; WX 0 ; N d85 ; B -18 -59 268 19 ; +C 86 ; WX 0 ; N d86 ; B -18 -48 269 19 ; +C 87 ; WX 0 ; N d87 ; B -18 -38 270 19 ; +C 88 ; WX 0 ; N d88 ; B -18 -31 270 19 ; +C 89 ; WX 0 ; N d89 ; B -18 -27 270 29 ; +C 90 ; WX 0 ; N d90 ; B -18 -23 270 39 ; +C 91 ; WX 0 ; N d91 ; B -18 -21 269 50 ; +C 92 ; WX 0 ; N d92 ; B -18 -19 268 59 ; +C 93 ; WX 0 ; N d93 ; B -18 -19 265 68 ; +C 94 ; WX 0 ; N d94 ; B -18 -18 264 77 ; +C 95 ; WX 0 ; N d95 ; B -18 -18 262 85 ; +C 96 ; WX 0 ; N d96 ; B -18 -18 259 93 ; +C 97 ; WX 0 ; N d97 ; B -18 -18 258 101 ; +C 98 ; WX 0 ; N d98 ; B -18 -18 253 109 ; +C 99 ; WX 0 ; N d99 ; B -18 -18 249 119 ; +C 100 ; WX 0 ; N d100 ; B -18 -19 246 128 ; +C 101 ; WX 0 ; N d101 ; B -18 -18 241 138 ; +C 102 ; WX 0 ; N d102 ; B -18 -18 235 148 ; +C 103 ; WX 0 ; N d103 ; B -18 -18 229 159 ; +C 104 ; WX 0 ; N d104 ; B -18 -18 222 169 ; +C 105 ; WX 0 ; N d105 ; B -18 -18 212 180 ; +C 106 ; WX 0 ; N d106 ; B -18 -18 204 190 ; +C 107 ; WX 0 ; N d107 ; B -18 -18 194 200 ; +C 108 ; WX 0 ; N d108 ; B -19 -19 182 210 ; +C 109 ; WX 0 ; N d109 ; B -18 -19 170 221 ; +C 110 ; WX 0 ; N d110 ; B -18 -18 157 230 ; +C 111 ; WX 0 ; N d111 ; B -18 -18 144 237 ; +C 112 ; WX 0 ; N d112 ; B -18 -18 130 245 ; +C 113 ; WX 0 ; N d113 ; B -18 -18 115 251 ; +C 114 ; WX 0 ; N d114 ; B -18 -18 101 257 ; +C 115 ; WX 0 ; N d115 ; B -18 -18 87 262 ; +C 116 ; WX 0 ; N d116 ; B -19 -18 73 265 ; +C 117 ; WX 0 ; N d117 ; B -19 -18 60 268 ; +C 118 ; WX 0 ; N d118 ; B -19 -18 49 269 ; +C 119 ; WX 0 ; N d119 ; B -18 -18 38 270 ; +C 120 ; WX 0 ; N d120 ; B -18 -19 31 271 ; +C 121 ; WX 0 ; N d121 ; B -28 -18 26 270 ; +C 122 ; WX 0 ; N d122 ; B -40 -19 23 270 ; +C 123 ; WX 0 ; N d123 ; B -50 -18 20 269 ; +C 124 ; WX 0 ; N d124 ; B -59 -18 20 268 ; +C 125 ; WX 0 ; N d125 ; B -68 -18 19 265 ; +C 126 ; WX 0 ; N d126 ; B -77 -18 19 265 ; +C 127 ; WX 0 ; N d127 ; B -86 -18 19 262 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyeubt12.afm b/Master/texmf-dist/fonts/afm/xypic/xyeubt12.afm new file mode 100644 index 00000000000..4ad0b87b597 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyeubt12.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:32 2010 +FontName XYEUBT-Medium +FullName XYEUBT +FamilyName XYEUBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -269 -269 269 269 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -91 -18 17 258 ; +C 1 ; WX 0 ; N d1 ; B -100 -18 17 256 ; +C 2 ; WX 0 ; N d2 ; B -109 -17 18 253 ; +C 3 ; WX 0 ; N d3 ; B -117 -18 18 249 ; +C 4 ; WX 0 ; N d4 ; B -126 -18 17 244 ; +C 5 ; WX 0 ; N d5 ; B -136 -18 17 239 ; +C 6 ; WX 0 ; N d6 ; B -147 -17 18 233 ; +C 7 ; WX 0 ; N d7 ; B -157 -17 17 227 ; +C 8 ; WX 0 ; N d8 ; B -167 -18 17 219 ; +C 9 ; WX 0 ; N d9 ; B -178 -17 18 211 ; +C 10 ; WX 0 ; N d10 ; B -189 -18 18 202 ; +C 11 ; WX 0 ; N d11 ; B -199 -18 17 191 ; +C 12 ; WX 0 ; N d12 ; B -210 -17 18 181 ; +C 13 ; WX 0 ; N d13 ; B -219 -17 17 169 ; +C 14 ; WX 0 ; N d14 ; B -228 -18 18 156 ; +C 15 ; WX 0 ; N d15 ; B -236 -18 17 142 ; +C 16 ; WX 0 ; N d16 ; B -243 -17 17 129 ; +C 17 ; WX 0 ; N d17 ; B -250 -18 18 115 ; +C 18 ; WX 0 ; N d18 ; B -256 -18 17 100 ; +C 19 ; WX 0 ; N d19 ; B -260 -17 17 85 ; +C 20 ; WX 0 ; N d20 ; B -263 -17 17 71 ; +C 21 ; WX 0 ; N d21 ; B -266 -17 17 58 ; +C 22 ; WX 0 ; N d22 ; B -268 -18 17 46 ; +C 23 ; WX 0 ; N d23 ; B -269 -18 17 37 ; +C 24 ; WX 0 ; N d24 ; B -269 -17 18 30 ; +C 25 ; WX 0 ; N d25 ; B -269 -27 18 25 ; +C 26 ; WX 0 ; N d26 ; B -269 -38 17 21 ; +C 27 ; WX 0 ; N d27 ; B -268 -48 17 18 ; +C 28 ; WX 0 ; N d28 ; B -266 -58 17 17 ; +C 29 ; WX 0 ; N d29 ; B -265 -67 17 17 ; +C 30 ; WX 0 ; N d30 ; B -263 -75 17 17 ; +C 31 ; WX 0 ; N d31 ; B -260 -83 18 17 ; +C 32 ; WX 0 ; N d32 ; B -258 -91 17 18 ; +C 33 ; WX 0 ; N d33 ; B -255 -99 17 17 ; +C 34 ; WX 0 ; N d34 ; B -253 -109 17 18 ; +C 35 ; WX 0 ; N d35 ; B -249 -117 17 17 ; +C 36 ; WX 0 ; N d36 ; B -245 -126 17 17 ; +C 37 ; WX 0 ; N d37 ; B -240 -137 18 17 ; +C 38 ; WX 0 ; N d38 ; B -233 -146 17 17 ; +C 39 ; WX 0 ; N d39 ; B -228 -157 17 18 ; +C 40 ; WX 0 ; N d40 ; B -219 -167 17 18 ; +C 41 ; WX 0 ; N d41 ; B -212 -178 18 17 ; +C 42 ; WX 0 ; N d42 ; B -203 -189 17 18 ; +C 43 ; WX 0 ; N d43 ; B -190 -199 17 18 ; +C 44 ; WX 0 ; N d44 ; B -180 -209 18 17 ; +C 45 ; WX 0 ; N d45 ; B -168 -219 18 17 ; +C 46 ; WX 0 ; N d46 ; B -155 -228 18 18 ; +C 47 ; WX 0 ; N d47 ; B -142 -236 18 18 ; +C 48 ; WX 0 ; N d48 ; B -128 -243 17 18 ; +C 49 ; WX 0 ; N d49 ; B -115 -250 17 18 ; +C 50 ; WX 0 ; N d50 ; B -100 -254 17 18 ; +C 51 ; WX 0 ; N d51 ; B -85 -260 18 18 ; +C 52 ; WX 0 ; N d52 ; B -71 -263 17 18 ; +C 53 ; WX 0 ; N d53 ; B -58 -266 17 18 ; +C 54 ; WX 0 ; N d54 ; B -47 -268 17 18 ; +C 55 ; WX 0 ; N d55 ; B -37 -269 18 18 ; +C 56 ; WX 0 ; N d56 ; B -30 -269 18 18 ; +C 57 ; WX 0 ; N d57 ; B -25 -269 28 18 ; +C 58 ; WX 0 ; N d58 ; B -21 -269 38 18 ; +C 59 ; WX 0 ; N d59 ; B -19 -267 48 18 ; +C 60 ; WX 0 ; N d60 ; B -17 -266 58 18 ; +C 61 ; WX 0 ; N d61 ; B -18 -265 67 18 ; +C 62 ; WX 0 ; N d62 ; B -17 -262 75 18 ; +C 63 ; WX 0 ; N d63 ; B -18 -260 83 18 ; +C 64 ; WX 0 ; N d64 ; B -17 -259 91 18 ; +C 65 ; WX 0 ; N d65 ; B -17 -255 99 18 ; +C 66 ; WX 0 ; N d66 ; B -17 -252 109 18 ; +C 67 ; WX 0 ; N d67 ; B -17 -248 118 18 ; +C 68 ; WX 0 ; N d68 ; B -17 -244 126 18 ; +C 69 ; WX 0 ; N d69 ; B -17 -239 136 17 ; +C 70 ; WX 0 ; N d70 ; B -18 -234 146 17 ; +C 71 ; WX 0 ; N d71 ; B -17 -227 157 17 ; +C 72 ; WX 0 ; N d72 ; B -17 -220 168 18 ; +C 73 ; WX 0 ; N d73 ; B -18 -211 178 18 ; +C 74 ; WX 0 ; N d74 ; B -18 -201 189 17 ; +C 75 ; WX 0 ; N d75 ; B -18 -190 199 17 ; +C 76 ; WX 0 ; N d76 ; B -18 -180 209 18 ; +C 77 ; WX 0 ; N d77 ; B -17 -169 219 18 ; +C 78 ; WX 0 ; N d78 ; B -18 -156 228 18 ; +C 79 ; WX 0 ; N d79 ; B -18 -143 236 17 ; +C 80 ; WX 0 ; N d80 ; B -17 -129 243 17 ; +C 81 ; WX 0 ; N d81 ; B -18 -114 250 18 ; +C 82 ; WX 0 ; N d82 ; B -18 -100 256 17 ; +C 83 ; WX 0 ; N d83 ; B -18 -85 260 17 ; +C 84 ; WX 0 ; N d84 ; B -17 -71 264 17 ; +C 85 ; WX 0 ; N d85 ; B -18 -57 266 17 ; +C 86 ; WX 0 ; N d86 ; B -17 -47 268 18 ; +C 87 ; WX 0 ; N d87 ; B -18 -37 269 18 ; +C 88 ; WX 0 ; N d88 ; B -18 -29 269 17 ; +C 89 ; WX 0 ; N d89 ; B -17 -25 269 28 ; +C 90 ; WX 0 ; N d90 ; B -17 -21 268 38 ; +C 91 ; WX 0 ; N d91 ; B -17 -17 267 48 ; +C 92 ; WX 0 ; N d92 ; B -17 -18 266 58 ; +C 93 ; WX 0 ; N d93 ; B -17 -17 265 67 ; +C 94 ; WX 0 ; N d94 ; B -17 -17 263 75 ; +C 95 ; WX 0 ; N d95 ; B -18 -17 260 83 ; +C 96 ; WX 0 ; N d96 ; B -18 -17 258 92 ; +C 97 ; WX 0 ; N d97 ; B -17 -17 255 99 ; +C 98 ; WX 0 ; N d98 ; B -18 -17 252 109 ; +C 99 ; WX 0 ; N d99 ; B -18 -17 248 118 ; +C 100 ; WX 0 ; N d100 ; B -18 -17 245 126 ; +C 101 ; WX 0 ; N d101 ; B -17 -17 239 136 ; +C 102 ; WX 0 ; N d102 ; B -18 -17 233 146 ; +C 103 ; WX 0 ; N d103 ; B -18 -17 227 157 ; +C 104 ; WX 0 ; N d104 ; B -18 -17 219 167 ; +C 105 ; WX 0 ; N d105 ; B -17 -17 212 179 ; +C 106 ; WX 0 ; N d106 ; B -18 -18 203 189 ; +C 107 ; WX 0 ; N d107 ; B -18 -17 191 199 ; +C 108 ; WX 0 ; N d108 ; B -18 -17 180 210 ; +C 109 ; WX 0 ; N d109 ; B -18 -17 168 219 ; +C 110 ; WX 0 ; N d110 ; B -18 -17 156 228 ; +C 111 ; WX 0 ; N d111 ; B -18 -17 142 236 ; +C 112 ; WX 0 ; N d112 ; B -18 -17 128 243 ; +C 113 ; WX 0 ; N d113 ; B -18 -17 115 250 ; +C 114 ; WX 0 ; N d114 ; B -18 -17 100 255 ; +C 115 ; WX 0 ; N d115 ; B -18 -18 86 260 ; +C 116 ; WX 0 ; N d116 ; B -17 -17 71 263 ; +C 117 ; WX 0 ; N d117 ; B -17 -17 58 266 ; +C 118 ; WX 0 ; N d118 ; B -17 -17 47 268 ; +C 119 ; WX 0 ; N d119 ; B -17 -18 37 269 ; +C 120 ; WX 0 ; N d120 ; B -17 -18 30 269 ; +C 121 ; WX 0 ; N d121 ; B -28 -17 25 269 ; +C 122 ; WX 0 ; N d122 ; B -38 -17 21 269 ; +C 123 ; WX 0 ; N d123 ; B -48 -18 19 267 ; +C 124 ; WX 0 ; N d124 ; B -58 -18 17 266 ; +C 125 ; WX 0 ; N d125 ; B -67 -18 17 264 ; +C 126 ; WX 0 ; N d126 ; B -75 -18 17 262 ; +C 127 ; WX 0 ; N d127 ; B -83 -17 17 260 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyluat10.afm b/Master/texmf-dist/fonts/afm/xypic/xyluat10.afm new file mode 100644 index 00000000000..14d9a960631 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyluat10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:03 2010 +FontName XYLUAT-Medium +FullName XYLUAT +FamilyName XYLUAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -202 -202 202 202 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -27 -29 200 80 ; +C 1 ; WX 0 ; N d1 ; B -26 -30 198 83 ; +C 2 ; WX 0 ; N d2 ; B -25 -30 197 85 ; +C 3 ; WX 0 ; N d3 ; B -22 -32 195 88 ; +C 4 ; WX 0 ; N d4 ; B -22 -32 192 91 ; +C 5 ; WX 0 ; N d5 ; B -21 -34 190 93 ; +C 6 ; WX 0 ; N d6 ; B -19 -34 186 96 ; +C 7 ; WX 0 ; N d7 ; B -18 -36 181 98 ; +C 8 ; WX 0 ; N d8 ; B -16 -36 178 101 ; +C 9 ; WX 0 ; N d9 ; B -14 -37 173 106 ; +C 10 ; WX 0 ; N d10 ; B -12 -38 166 115 ; +C 11 ; WX 0 ; N d11 ; B -10 -39 160 125 ; +C 12 ; WX 0 ; N d12 ; B -7 -38 152 134 ; +C 13 ; WX 0 ; N d13 ; B -5 -39 143 143 ; +C 14 ; WX 0 ; N d14 ; B -2 -37 134 151 ; +C 15 ; WX 0 ; N d15 ; B 0 -39 125 160 ; +C 16 ; WX 0 ; N d16 ; B -7 -40 114 167 ; +C 17 ; WX 0 ; N d17 ; B -13 -37 104 174 ; +C 18 ; WX 0 ; N d18 ; B -20 -39 93 180 ; +C 19 ; WX 0 ; N d19 ; B -27 -37 82 185 ; +C 20 ; WX 0 ; N d20 ; B -33 -37 71 189 ; +C 21 ; WX 0 ; N d21 ; B -38 -36 61 193 ; +C 22 ; WX 0 ; N d22 ; B -44 -34 50 196 ; +C 23 ; WX 0 ; N d23 ; B -48 -35 40 198 ; +C 24 ; WX 0 ; N d24 ; B -53 -33 30 200 ; +C 25 ; WX 0 ; N d25 ; B -58 -33 21 201 ; +C 26 ; WX 0 ; N d26 ; B -62 -33 23 201 ; +C 27 ; WX 0 ; N d27 ; B -66 -31 24 202 ; +C 28 ; WX 0 ; N d28 ; B -69 -30 25 201 ; +C 29 ; WX 0 ; N d29 ; B -72 -29 26 202 ; +C 30 ; WX 0 ; N d30 ; B -75 -28 27 202 ; +C 31 ; WX 0 ; N d31 ; B -77 -27 28 200 ; +C 32 ; WX 0 ; N d32 ; B -80 -27 29 200 ; +C 33 ; WX 0 ; N d33 ; B -82 -26 30 198 ; +C 34 ; WX 0 ; N d34 ; B -85 -25 30 197 ; +C 35 ; WX 0 ; N d35 ; B -88 -22 32 195 ; +C 36 ; WX 0 ; N d36 ; B -91 -22 32 192 ; +C 37 ; WX 0 ; N d37 ; B -93 -21 34 190 ; +C 38 ; WX 0 ; N d38 ; B -95 -19 34 186 ; +C 39 ; WX 0 ; N d39 ; B -98 -18 36 182 ; +C 40 ; WX 0 ; N d40 ; B -101 -16 36 178 ; +C 41 ; WX 0 ; N d41 ; B -106 -14 37 172 ; +C 42 ; WX 0 ; N d42 ; B -115 -12 38 166 ; +C 43 ; WX 0 ; N d43 ; B -125 -10 39 160 ; +C 44 ; WX 0 ; N d44 ; B -134 -7 38 152 ; +C 45 ; WX 0 ; N d45 ; B -143 -5 39 143 ; +C 46 ; WX 0 ; N d46 ; B -151 -2 36 134 ; +C 47 ; WX 0 ; N d47 ; B -160 0 39 125 ; +C 48 ; WX 0 ; N d48 ; B -167 -7 40 114 ; +C 49 ; WX 0 ; N d49 ; B -174 -14 37 104 ; +C 50 ; WX 0 ; N d50 ; B -180 -20 39 93 ; +C 51 ; WX 0 ; N d51 ; B -185 -27 37 82 ; +C 52 ; WX 0 ; N d52 ; B -189 -33 37 71 ; +C 53 ; WX 0 ; N d53 ; B -193 -38 36 60 ; +C 54 ; WX 0 ; N d54 ; B -196 -44 34 50 ; +C 55 ; WX 0 ; N d55 ; B -198 -49 35 40 ; +C 56 ; WX 0 ; N d56 ; B -199 -53 32 30 ; +C 57 ; WX 0 ; N d57 ; B -201 -58 33 21 ; +C 58 ; WX 0 ; N d58 ; B -201 -62 33 23 ; +C 59 ; WX 0 ; N d59 ; B -202 -66 32 24 ; +C 60 ; WX 0 ; N d60 ; B -202 -69 30 25 ; +C 61 ; WX 0 ; N d61 ; B -202 -72 29 26 ; +C 62 ; WX 0 ; N d62 ; B -201 -75 28 27 ; +C 63 ; WX 0 ; N d63 ; B -200 -78 28 28 ; +C 64 ; WX 0 ; N d64 ; B -200 -80 27 29 ; +C 65 ; WX 0 ; N d65 ; B -198 -82 26 30 ; +C 66 ; WX 0 ; N d66 ; B -197 -85 25 31 ; +C 67 ; WX 0 ; N d67 ; B -195 -88 24 32 ; +C 68 ; WX 0 ; N d68 ; B -192 -91 21 32 ; +C 69 ; WX 0 ; N d69 ; B -190 -93 22 35 ; +C 70 ; WX 0 ; N d70 ; B -186 -96 19 34 ; +C 71 ; WX 0 ; N d71 ; B -181 -98 18 36 ; +C 72 ; WX 0 ; N d72 ; B -178 -101 16 36 ; +C 73 ; WX 0 ; N d73 ; B -173 -106 14 37 ; +C 74 ; WX 0 ; N d74 ; B -165 -115 12 38 ; +C 75 ; WX 0 ; N d75 ; B -160 -125 10 39 ; +C 76 ; WX 0 ; N d76 ; B -152 -134 7 38 ; +C 77 ; WX 0 ; N d77 ; B -143 -143 5 39 ; +C 78 ; WX 0 ; N d78 ; B -133 -151 2 36 ; +C 79 ; WX 0 ; N d79 ; B -125 -160 0 39 ; +C 80 ; WX 0 ; N d80 ; B -114 -167 7 40 ; +C 81 ; WX 0 ; N d81 ; B -104 -174 14 39 ; +C 82 ; WX 0 ; N d82 ; B -93 -180 20 39 ; +C 83 ; WX 0 ; N d83 ; B -82 -185 26 39 ; +C 84 ; WX 0 ; N d84 ; B -71 -189 33 37 ; +C 85 ; WX 0 ; N d85 ; B -61 -193 38 36 ; +C 86 ; WX 0 ; N d86 ; B -50 -196 44 35 ; +C 87 ; WX 0 ; N d87 ; B -40 -198 48 35 ; +C 88 ; WX 0 ; N d88 ; B -30 -199 53 35 ; +C 89 ; WX 0 ; N d89 ; B -21 -201 58 33 ; +C 90 ; WX 0 ; N d90 ; B -23 -200 62 33 ; +C 91 ; WX 0 ; N d91 ; B -24 -202 66 31 ; +C 92 ; WX 0 ; N d92 ; B -25 -201 69 30 ; +C 93 ; WX 0 ; N d93 ; B -26 -202 72 30 ; +C 94 ; WX 0 ; N d94 ; B -27 -202 75 28 ; +C 95 ; WX 0 ; N d95 ; B -28 -200 78 28 ; +C 96 ; WX 0 ; N d96 ; B -29 -199 80 27 ; +C 97 ; WX 0 ; N d97 ; B -30 -198 82 26 ; +C 98 ; WX 0 ; N d98 ; B -30 -197 85 25 ; +C 99 ; WX 0 ; N d99 ; B -32 -195 88 22 ; +C 100 ; WX 0 ; N d100 ; B -32 -192 91 22 ; +C 101 ; WX 0 ; N d101 ; B -34 -190 93 21 ; +C 102 ; WX 0 ; N d102 ; B -34 -186 96 19 ; +C 103 ; WX 0 ; N d103 ; B -36 -181 98 18 ; +C 104 ; WX 0 ; N d104 ; B -36 -178 101 16 ; +C 105 ; WX 0 ; N d105 ; B -37 -173 106 14 ; +C 106 ; WX 0 ; N d106 ; B -38 -165 115 12 ; +C 107 ; WX 0 ; N d107 ; B -39 -160 125 10 ; +C 108 ; WX 0 ; N d108 ; B -38 -152 134 7 ; +C 109 ; WX 0 ; N d109 ; B -39 -143 143 5 ; +C 110 ; WX 0 ; N d110 ; B -37 -133 151 2 ; +C 111 ; WX 0 ; N d111 ; B -39 -125 160 0 ; +C 112 ; WX 0 ; N d112 ; B -40 -114 167 7 ; +C 113 ; WX 0 ; N d113 ; B -39 -104 174 13 ; +C 114 ; WX 0 ; N d114 ; B -38 -93 180 20 ; +C 115 ; WX 0 ; N d115 ; B -38 -82 185 27 ; +C 116 ; WX 0 ; N d116 ; B -37 -71 189 32 ; +C 117 ; WX 0 ; N d117 ; B -36 -60 193 38 ; +C 118 ; WX 0 ; N d118 ; B -34 -50 196 44 ; +C 119 ; WX 0 ; N d119 ; B -35 -40 198 49 ; +C 120 ; WX 0 ; N d120 ; B -33 -30 200 53 ; +C 121 ; WX 0 ; N d121 ; B -33 -21 201 58 ; +C 122 ; WX 0 ; N d122 ; B -33 -23 201 62 ; +C 123 ; WX 0 ; N d123 ; B -31 -24 202 66 ; +C 124 ; WX 0 ; N d124 ; B -30 -25 201 69 ; +C 125 ; WX 0 ; N d125 ; B -29 -26 202 72 ; +C 126 ; WX 0 ; N d126 ; B -28 -27 202 75 ; +C 127 ; WX 0 ; N d127 ; B -27 -28 200 77 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyluat11.afm b/Master/texmf-dist/fonts/afm/xypic/xyluat11.afm new file mode 100644 index 00000000000..c2688525826 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyluat11.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:07 2010 +FontName XYLUAT-Medium +FullName XYLUAT +FamilyName XYLUAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -205 -205 205 205 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -24 -26 202 83 ; +C 1 ; WX 0 ; N d1 ; B -23 -27 201 85 ; +C 2 ; WX 0 ; N d2 ; B -22 -28 199 88 ; +C 3 ; WX 0 ; N d3 ; B -21 -29 197 91 ; +C 4 ; WX 0 ; N d4 ; B -20 -29 194 94 ; +C 5 ; WX 0 ; N d5 ; B -18 -30 193 96 ; +C 6 ; WX 0 ; N d6 ; B -18 -32 188 99 ; +C 7 ; WX 0 ; N d7 ; B -15 -32 184 102 ; +C 8 ; WX 0 ; N d8 ; B -14 -33 179 104 ; +C 9 ; WX 0 ; N d9 ; B -13 -34 173 109 ; +C 10 ; WX 0 ; N d10 ; B -10 -34 168 120 ; +C 11 ; WX 0 ; N d11 ; B -9 -35 160 129 ; +C 12 ; WX 0 ; N d12 ; B -6 -34 153 138 ; +C 13 ; WX 0 ; N d13 ; B -4 -34 145 147 ; +C 14 ; WX 0 ; N d14 ; B -2 -35 134 155 ; +C 15 ; WX 0 ; N d15 ; B 0 -36 124 163 ; +C 16 ; WX 0 ; N d16 ; B -7 -35 114 171 ; +C 17 ; WX 0 ; N d17 ; B -14 -36 104 178 ; +C 18 ; WX 0 ; N d18 ; B -21 -34 93 184 ; +C 19 ; WX 0 ; N d19 ; B -27 -34 81 188 ; +C 20 ; WX 0 ; N d20 ; B -34 -34 70 193 ; +C 21 ; WX 0 ; N d21 ; B -39 -32 59 196 ; +C 22 ; WX 0 ; N d22 ; B -44 -33 49 200 ; +C 23 ; WX 0 ; N d23 ; B -51 -31 39 202 ; +C 24 ; WX 0 ; N d24 ; B -55 -29 29 204 ; +C 25 ; WX 0 ; N d25 ; B -59 -30 19 204 ; +C 26 ; WX 0 ; N d26 ; B -64 -30 21 204 ; +C 27 ; WX 0 ; N d27 ; B -68 -27 22 205 ; +C 28 ; WX 0 ; N d28 ; B -71 -28 23 205 ; +C 29 ; WX 0 ; N d29 ; B -74 -27 24 204 ; +C 30 ; WX 0 ; N d30 ; B -77 -26 25 204 ; +C 31 ; WX 0 ; N d31 ; B -80 -24 25 204 ; +C 32 ; WX 0 ; N d32 ; B -82 -24 26 202 ; +C 33 ; WX 0 ; N d33 ; B -85 -23 27 201 ; +C 34 ; WX 0 ; N d34 ; B -88 -22 28 199 ; +C 35 ; WX 0 ; N d35 ; B -91 -21 29 197 ; +C 36 ; WX 0 ; N d36 ; B -94 -20 29 194 ; +C 37 ; WX 0 ; N d37 ; B -96 -18 30 193 ; +C 38 ; WX 0 ; N d38 ; B -99 -17 30 188 ; +C 39 ; WX 0 ; N d39 ; B -102 -15 32 184 ; +C 40 ; WX 0 ; N d40 ; B -104 -14 33 179 ; +C 41 ; WX 0 ; N d41 ; B -109 -13 34 173 ; +C 42 ; WX 0 ; N d42 ; B -119 -10 34 168 ; +C 43 ; WX 0 ; N d43 ; B -129 -9 35 160 ; +C 44 ; WX 0 ; N d44 ; B -138 -6 34 152 ; +C 45 ; WX 0 ; N d45 ; B -148 -4 34 144 ; +C 46 ; WX 0 ; N d46 ; B -155 -2 35 134 ; +C 47 ; WX 0 ; N d47 ; B -163 0 36 124 ; +C 48 ; WX 0 ; N d48 ; B -171 -7 36 114 ; +C 49 ; WX 0 ; N d49 ; B -178 -14 36 104 ; +C 50 ; WX 0 ; N d50 ; B -184 -21 34 93 ; +C 51 ; WX 0 ; N d51 ; B -188 -27 34 81 ; +C 52 ; WX 0 ; N d52 ; B -193 -34 34 70 ; +C 53 ; WX 0 ; N d53 ; B -196 -39 32 59 ; +C 54 ; WX 0 ; N d54 ; B -198 -45 33 49 ; +C 55 ; WX 0 ; N d55 ; B -202 -51 31 39 ; +C 56 ; WX 0 ; N d56 ; B -204 -55 31 29 ; +C 57 ; WX 0 ; N d57 ; B -204 -60 29 19 ; +C 58 ; WX 0 ; N d58 ; B -204 -64 30 21 ; +C 59 ; WX 0 ; N d59 ; B -204 -68 28 22 ; +C 60 ; WX 0 ; N d60 ; B -205 -71 27 23 ; +C 61 ; WX 0 ; N d61 ; B -204 -74 27 24 ; +C 62 ; WX 0 ; N d62 ; B -204 -77 27 25 ; +C 63 ; WX 0 ; N d63 ; B -204 -80 26 26 ; +C 64 ; WX 0 ; N d64 ; B -202 -82 24 26 ; +C 65 ; WX 0 ; N d65 ; B -201 -85 23 27 ; +C 66 ; WX 0 ; N d66 ; B -199 -88 22 28 ; +C 67 ; WX 0 ; N d67 ; B -197 -91 22 29 ; +C 68 ; WX 0 ; N d68 ; B -194 -94 19 29 ; +C 69 ; WX 0 ; N d69 ; B -193 -96 18 30 ; +C 70 ; WX 0 ; N d70 ; B -188 -99 18 32 ; +C 71 ; WX 0 ; N d71 ; B -184 -102 16 32 ; +C 72 ; WX 0 ; N d72 ; B -179 -104 14 33 ; +C 73 ; WX 0 ; N d73 ; B -173 -109 13 34 ; +C 74 ; WX 0 ; N d74 ; B -168 -119 10 33 ; +C 75 ; WX 0 ; N d75 ; B -159 -128 9 35 ; +C 76 ; WX 0 ; N d76 ; B -152 -138 6 34 ; +C 77 ; WX 0 ; N d77 ; B -144 -148 4 34 ; +C 78 ; WX 0 ; N d78 ; B -134 -155 2 35 ; +C 79 ; WX 0 ; N d79 ; B -124 -163 0 36 ; +C 80 ; WX 0 ; N d80 ; B -114 -171 7 35 ; +C 81 ; WX 0 ; N d81 ; B -104 -178 14 36 ; +C 82 ; WX 0 ; N d82 ; B -93 -184 21 34 ; +C 83 ; WX 0 ; N d83 ; B -81 -189 27 34 ; +C 84 ; WX 0 ; N d84 ; B -70 -193 34 34 ; +C 85 ; WX 0 ; N d85 ; B -59 -196 40 33 ; +C 86 ; WX 0 ; N d86 ; B -49 -200 45 33 ; +C 87 ; WX 0 ; N d87 ; B -39 -202 51 31 ; +C 88 ; WX 0 ; N d88 ; B -29 -204 55 32 ; +C 89 ; WX 0 ; N d89 ; B -19 -204 60 29 ; +C 90 ; WX 0 ; N d90 ; B -21 -202 64 30 ; +C 91 ; WX 0 ; N d91 ; B -22 -205 68 27 ; +C 92 ; WX 0 ; N d92 ; B -23 -205 71 28 ; +C 93 ; WX 0 ; N d93 ; B -24 -204 74 27 ; +C 94 ; WX 0 ; N d94 ; B -25 -204 77 26 ; +C 95 ; WX 0 ; N d95 ; B -26 -205 80 26 ; +C 96 ; WX 0 ; N d96 ; B -26 -202 83 24 ; +C 97 ; WX 0 ; N d97 ; B -27 -201 85 23 ; +C 98 ; WX 0 ; N d98 ; B -28 -199 88 22 ; +C 99 ; WX 0 ; N d99 ; B -29 -197 91 21 ; +C 100 ; WX 0 ; N d100 ; B -29 -194 94 20 ; +C 101 ; WX 0 ; N d101 ; B -30 -193 96 18 ; +C 102 ; WX 0 ; N d102 ; B -30 -188 99 17 ; +C 103 ; WX 0 ; N d103 ; B -32 -184 102 15 ; +C 104 ; WX 0 ; N d104 ; B -33 -179 104 14 ; +C 105 ; WX 0 ; N d105 ; B -34 -173 109 12 ; +C 106 ; WX 0 ; N d106 ; B -34 -168 119 10 ; +C 107 ; WX 0 ; N d107 ; B -35 -160 128 9 ; +C 108 ; WX 0 ; N d108 ; B -34 -152 138 6 ; +C 109 ; WX 0 ; N d109 ; B -35 -144 147 4 ; +C 110 ; WX 0 ; N d110 ; B -35 -134 155 2 ; +C 111 ; WX 0 ; N d111 ; B -36 -124 163 0 ; +C 112 ; WX 0 ; N d112 ; B -34 -114 171 7 ; +C 113 ; WX 0 ; N d113 ; B -36 -104 178 14 ; +C 114 ; WX 0 ; N d114 ; B -34 -93 184 21 ; +C 115 ; WX 0 ; N d115 ; B -34 -81 188 27 ; +C 116 ; WX 0 ; N d116 ; B -34 -70 193 34 ; +C 117 ; WX 0 ; N d117 ; B -32 -59 196 40 ; +C 118 ; WX 0 ; N d118 ; B -33 -49 200 45 ; +C 119 ; WX 0 ; N d119 ; B -31 -39 202 50 ; +C 120 ; WX 0 ; N d120 ; B -29 -29 204 55 ; +C 121 ; WX 0 ; N d121 ; B -30 -19 204 60 ; +C 122 ; WX 0 ; N d122 ; B -30 -21 204 64 ; +C 123 ; WX 0 ; N d123 ; B -27 -22 205 68 ; +C 124 ; WX 0 ; N d124 ; B -28 -23 205 71 ; +C 125 ; WX 0 ; N d125 ; B -27 -24 204 75 ; +C 126 ; WX 0 ; N d126 ; B -26 -25 204 77 ; +C 127 ; WX 0 ; N d127 ; B -22 -25 204 80 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xyluat12.afm b/Master/texmf-dist/fonts/afm/xypic/xyluat12.afm new file mode 100644 index 00000000000..86d14232ca9 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xyluat12.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:10 2010 +FontName XYLUAT-Medium +FullName XYLUAT +FamilyName XYLUAT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -208 -208 208 208 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -22 -24 204 85 ; +C 1 ; WX 0 ; N d1 ; B -21 -25 203 88 ; +C 2 ; WX 0 ; N d2 ; B -21 -26 202 90 ; +C 3 ; WX 0 ; N d3 ; B -19 -26 199 93 ; +C 4 ; WX 0 ; N d4 ; B -18 -27 197 96 ; +C 5 ; WX 0 ; N d5 ; B -17 -28 193 99 ; +C 6 ; WX 0 ; N d6 ; B -16 -29 188 102 ; +C 7 ; WX 0 ; N d7 ; B -15 -30 183 104 ; +C 8 ; WX 0 ; N d8 ; B -13 -30 178 107 ; +C 9 ; WX 0 ; N d9 ; B -11 -30 176 112 ; +C 10 ; WX 0 ; N d10 ; B -10 -31 169 122 ; +C 11 ; WX 0 ; N d11 ; B -8 -32 160 131 ; +C 12 ; WX 0 ; N d12 ; B -6 -32 153 141 ; +C 13 ; WX 0 ; N d13 ; B -4 -32 144 150 ; +C 14 ; WX 0 ; N d14 ; B -2 -32 134 158 ; +C 15 ; WX 0 ; N d15 ; B 0 -33 124 166 ; +C 16 ; WX 0 ; N d16 ; B -7 -32 115 175 ; +C 17 ; WX 0 ; N d17 ; B -14 -32 103 180 ; +C 18 ; WX 0 ; N d18 ; B -21 -31 92 186 ; +C 19 ; WX 0 ; N d19 ; B -27 -31 81 192 ; +C 20 ; WX 0 ; N d20 ; B -35 -30 69 195 ; +C 21 ; WX 0 ; N d21 ; B -41 -31 58 199 ; +C 22 ; WX 0 ; N d22 ; B -46 -30 48 203 ; +C 23 ; WX 0 ; N d23 ; B -52 -29 37 204 ; +C 24 ; WX 0 ; N d24 ; B -57 -27 27 206 ; +C 25 ; WX 0 ; N d25 ; B -61 -27 18 207 ; +C 26 ; WX 0 ; N d26 ; B -66 -27 19 208 ; +C 27 ; WX 0 ; N d27 ; B -69 -26 20 208 ; +C 28 ; WX 0 ; N d28 ; B -74 -25 21 207 ; +C 29 ; WX 0 ; N d29 ; B -77 -23 22 206 ; +C 30 ; WX 0 ; N d30 ; B -80 -23 22 206 ; +C 31 ; WX 0 ; N d31 ; B -82 -22 23 206 ; +C 32 ; WX 0 ; N d32 ; B -84 -22 24 204 ; +C 33 ; WX 0 ; N d33 ; B -88 -21 25 203 ; +C 34 ; WX 0 ; N d34 ; B -90 -21 26 202 ; +C 35 ; WX 0 ; N d35 ; B -93 -19 26 199 ; +C 36 ; WX 0 ; N d36 ; B -96 -18 27 197 ; +C 37 ; WX 0 ; N d37 ; B -99 -17 28 193 ; +C 38 ; WX 0 ; N d38 ; B -102 -16 29 190 ; +C 39 ; WX 0 ; N d39 ; B -104 -15 30 185 ; +C 40 ; WX 0 ; N d40 ; B -107 -13 30 181 ; +C 41 ; WX 0 ; N d41 ; B -112 -11 30 175 ; +C 42 ; WX 0 ; N d42 ; B -122 -10 31 169 ; +C 43 ; WX 0 ; N d43 ; B -131 -8 32 161 ; +C 44 ; WX 0 ; N d44 ; B -139 -6 32 152 ; +C 45 ; WX 0 ; N d45 ; B -149 -4 32 144 ; +C 46 ; WX 0 ; N d46 ; B -158 -2 32 134 ; +C 47 ; WX 0 ; N d47 ; B -166 0 33 124 ; +C 48 ; WX 0 ; N d48 ; B -174 -7 32 114 ; +C 49 ; WX 0 ; N d49 ; B -180 -14 30 103 ; +C 50 ; WX 0 ; N d50 ; B -186 -21 31 91 ; +C 51 ; WX 0 ; N d51 ; B -192 -28 31 80 ; +C 52 ; WX 0 ; N d52 ; B -195 -35 30 69 ; +C 53 ; WX 0 ; N d53 ; B -199 -41 31 58 ; +C 54 ; WX 0 ; N d54 ; B -202 -47 30 48 ; +C 55 ; WX 0 ; N d55 ; B -204 -51 30 37 ; +C 56 ; WX 0 ; N d56 ; B -206 -57 27 27 ; +C 57 ; WX 0 ; N d57 ; B -207 -62 27 18 ; +C 58 ; WX 0 ; N d58 ; B -208 -66 27 19 ; +C 59 ; WX 0 ; N d59 ; B -208 -69 26 20 ; +C 60 ; WX 0 ; N d60 ; B -207 -74 26 21 ; +C 61 ; WX 0 ; N d61 ; B -206 -77 25 22 ; +C 62 ; WX 0 ; N d62 ; B -206 -80 25 23 ; +C 63 ; WX 0 ; N d63 ; B -206 -82 24 24 ; +C 64 ; WX 0 ; N d64 ; B -204 -85 22 24 ; +C 65 ; WX 0 ; N d65 ; B -203 -88 21 25 ; +C 66 ; WX 0 ; N d66 ; B -202 -90 21 26 ; +C 67 ; WX 0 ; N d67 ; B -199 -93 19 26 ; +C 68 ; WX 0 ; N d68 ; B -197 -96 18 27 ; +C 69 ; WX 0 ; N d69 ; B -193 -99 17 28 ; +C 70 ; WX 0 ; N d70 ; B -188 -102 17 30 ; +C 71 ; WX 0 ; N d71 ; B -183 -104 15 30 ; +C 72 ; WX 0 ; N d72 ; B -181 -107 13 30 ; +C 73 ; WX 0 ; N d73 ; B -173 -112 11 30 ; +C 74 ; WX 0 ; N d74 ; B -169 -122 10 31 ; +C 75 ; WX 0 ; N d75 ; B -160 -131 8 32 ; +C 76 ; WX 0 ; N d76 ; B -152 -139 6 32 ; +C 77 ; WX 0 ; N d77 ; B -144 -150 4 32 ; +C 78 ; WX 0 ; N d78 ; B -134 -158 2 32 ; +C 79 ; WX 0 ; N d79 ; B -124 -166 0 33 ; +C 80 ; WX 0 ; N d80 ; B -114 -174 7 32 ; +C 81 ; WX 0 ; N d81 ; B -103 -181 14 30 ; +C 82 ; WX 0 ; N d82 ; B -92 -186 21 31 ; +C 83 ; WX 0 ; N d83 ; B -80 -192 28 31 ; +C 84 ; WX 0 ; N d84 ; B -69 -195 35 30 ; +C 85 ; WX 0 ; N d85 ; B -58 -199 41 31 ; +C 86 ; WX 0 ; N d86 ; B -48 -203 47 30 ; +C 87 ; WX 0 ; N d87 ; B -37 -204 52 30 ; +C 88 ; WX 0 ; N d88 ; B -27 -206 57 27 ; +C 89 ; WX 0 ; N d89 ; B -18 -207 62 27 ; +C 90 ; WX 0 ; N d90 ; B -19 -206 66 28 ; +C 91 ; WX 0 ; N d91 ; B -20 -208 69 26 ; +C 92 ; WX 0 ; N d92 ; B -21 -205 74 25 ; +C 93 ; WX 0 ; N d93 ; B -22 -206 77 23 ; +C 94 ; WX 0 ; N d94 ; B -22 -206 80 23 ; +C 95 ; WX 0 ; N d95 ; B -24 -204 82 24 ; +C 96 ; WX 0 ; N d96 ; B -24 -204 85 22 ; +C 97 ; WX 0 ; N d97 ; B -25 -203 88 21 ; +C 98 ; WX 0 ; N d98 ; B -26 -202 90 21 ; +C 99 ; WX 0 ; N d99 ; B -26 -199 93 19 ; +C 100 ; WX 0 ; N d100 ; B -27 -197 96 18 ; +C 101 ; WX 0 ; N d101 ; B -28 -193 99 17 ; +C 102 ; WX 0 ; N d102 ; B -29 -188 102 16 ; +C 103 ; WX 0 ; N d103 ; B -30 -183 104 15 ; +C 104 ; WX 0 ; N d104 ; B -30 -181 107 13 ; +C 105 ; WX 0 ; N d105 ; B -30 -173 112 11 ; +C 106 ; WX 0 ; N d106 ; B -31 -169 122 10 ; +C 107 ; WX 0 ; N d107 ; B -31 -161 131 8 ; +C 108 ; WX 0 ; N d108 ; B -32 -153 140 6 ; +C 109 ; WX 0 ; N d109 ; B -32 -144 150 4 ; +C 110 ; WX 0 ; N d110 ; B -32 -134 158 2 ; +C 111 ; WX 0 ; N d111 ; B -33 -124 166 0 ; +C 112 ; WX 0 ; N d112 ; B -32 -114 174 7 ; +C 113 ; WX 0 ; N d113 ; B -32 -103 180 14 ; +C 114 ; WX 0 ; N d114 ; B -32 -92 186 21 ; +C 115 ; WX 0 ; N d115 ; B -31 -81 192 28 ; +C 116 ; WX 0 ; N d116 ; B -30 -69 195 35 ; +C 117 ; WX 0 ; N d117 ; B -31 -58 199 41 ; +C 118 ; WX 0 ; N d118 ; B -30 -48 203 47 ; +C 119 ; WX 0 ; N d119 ; B -29 -37 204 52 ; +C 120 ; WX 0 ; N d120 ; B -27 -27 206 57 ; +C 121 ; WX 0 ; N d121 ; B -27 -18 207 61 ; +C 122 ; WX 0 ; N d122 ; B -27 -19 208 66 ; +C 123 ; WX 0 ; N d123 ; B -26 -20 208 70 ; +C 124 ; WX 0 ; N d124 ; B -25 -21 207 74 ; +C 125 ; WX 0 ; N d125 ; B -23 -22 206 77 ; +C 126 ; WX 0 ; N d126 ; B -23 -22 206 80 ; +C 127 ; WX 0 ; N d127 ; B -22 -23 206 82 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xylubt10.afm b/Master/texmf-dist/fonts/afm/xypic/xylubt10.afm new file mode 100644 index 00000000000..4e5023d8048 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xylubt10.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:05 2010 +FontName XYLUBT-Medium +FullName XYLUBT +FamilyName XYLUBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -202 -202 202 202 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -27 -28 75 202 ; +C 1 ; WX 0 ; N d1 ; B -26 -29 72 202 ; +C 2 ; WX 0 ; N d2 ; B -25 -30 69 202 ; +C 3 ; WX 0 ; N d3 ; B -24 -31 66 202 ; +C 4 ; WX 0 ; N d4 ; B -23 -33 62 201 ; +C 5 ; WX 0 ; N d5 ; B -21 -33 58 201 ; +C 6 ; WX 0 ; N d6 ; B -30 -32 53 199 ; +C 7 ; WX 0 ; N d7 ; B -40 -35 49 198 ; +C 8 ; WX 0 ; N d8 ; B -50 -34 44 196 ; +C 9 ; WX 0 ; N d9 ; B -60 -36 38 193 ; +C 10 ; WX 0 ; N d10 ; B -72 -37 33 190 ; +C 11 ; WX 0 ; N d11 ; B -82 -37 27 185 ; +C 12 ; WX 0 ; N d12 ; B -93 -39 20 180 ; +C 13 ; WX 0 ; N d13 ; B -104 -37 14 174 ; +C 14 ; WX 0 ; N d14 ; B -114 -40 7 167 ; +C 15 ; WX 0 ; N d15 ; B -125 -39 0 160 ; +C 16 ; WX 0 ; N d16 ; B -134 -36 2 151 ; +C 17 ; WX 0 ; N d17 ; B -143 -39 5 143 ; +C 18 ; WX 0 ; N d18 ; B -152 -38 7 134 ; +C 19 ; WX 0 ; N d19 ; B -160 -39 10 125 ; +C 20 ; WX 0 ; N d20 ; B -166 -38 12 115 ; +C 21 ; WX 0 ; N d21 ; B -172 -37 14 106 ; +C 22 ; WX 0 ; N d22 ; B -178 -36 16 101 ; +C 23 ; WX 0 ; N d23 ; B -182 -36 18 98 ; +C 24 ; WX 0 ; N d24 ; B -186 -34 19 96 ; +C 25 ; WX 0 ; N d25 ; B -190 -34 21 93 ; +C 26 ; WX 0 ; N d26 ; B -192 -32 22 91 ; +C 27 ; WX 0 ; N d27 ; B -195 -32 22 88 ; +C 28 ; WX 0 ; N d28 ; B -197 -30 25 85 ; +C 29 ; WX 0 ; N d29 ; B -198 -30 26 83 ; +C 30 ; WX 0 ; N d30 ; B -200 -29 27 80 ; +C 31 ; WX 0 ; N d31 ; B -200 -28 28 78 ; +C 32 ; WX 0 ; N d32 ; B -202 -27 28 75 ; +C 33 ; WX 0 ; N d33 ; B -202 -26 29 72 ; +C 34 ; WX 0 ; N d34 ; B -201 -25 30 69 ; +C 35 ; WX 0 ; N d35 ; B -202 -24 31 66 ; +C 36 ; WX 0 ; N d36 ; B -201 -23 33 62 ; +C 37 ; WX 0 ; N d37 ; B -201 -21 33 58 ; +C 38 ; WX 0 ; N d38 ; B -199 -30 33 54 ; +C 39 ; WX 0 ; N d39 ; B -198 -40 35 49 ; +C 40 ; WX 0 ; N d40 ; B -196 -50 34 44 ; +C 41 ; WX 0 ; N d41 ; B -193 -60 36 38 ; +C 42 ; WX 0 ; N d42 ; B -189 -71 37 33 ; +C 43 ; WX 0 ; N d43 ; B -185 -82 37 27 ; +C 44 ; WX 0 ; N d44 ; B -180 -93 39 20 ; +C 45 ; WX 0 ; N d45 ; B -174 -104 39 14 ; +C 46 ; WX 0 ; N d46 ; B -167 -114 40 7 ; +C 47 ; WX 0 ; N d47 ; B -160 -125 39 0 ; +C 48 ; WX 0 ; N d48 ; B -151 -133 39 2 ; +C 49 ; WX 0 ; N d49 ; B -143 -143 40 5 ; +C 50 ; WX 0 ; N d50 ; B -134 -152 38 7 ; +C 51 ; WX 0 ; N d51 ; B -125 -160 39 10 ; +C 52 ; WX 0 ; N d52 ; B -115 -165 38 12 ; +C 53 ; WX 0 ; N d53 ; B -106 -173 37 14 ; +C 54 ; WX 0 ; N d54 ; B -101 -178 36 16 ; +C 55 ; WX 0 ; N d55 ; B -98 -181 36 18 ; +C 56 ; WX 0 ; N d56 ; B -96 -186 34 19 ; +C 57 ; WX 0 ; N d57 ; B -93 -190 34 21 ; +C 58 ; WX 0 ; N d58 ; B -91 -192 32 22 ; +C 59 ; WX 0 ; N d59 ; B -88 -195 32 24 ; +C 60 ; WX 0 ; N d60 ; B -85 -197 31 25 ; +C 61 ; WX 0 ; N d61 ; B -82 -198 30 26 ; +C 62 ; WX 0 ; N d62 ; B -80 -200 29 27 ; +C 63 ; WX 0 ; N d63 ; B -77 -200 28 27 ; +C 64 ; WX 0 ; N d64 ; B -75 -202 27 28 ; +C 65 ; WX 0 ; N d65 ; B -72 -202 26 29 ; +C 66 ; WX 0 ; N d66 ; B -69 -201 25 30 ; +C 67 ; WX 0 ; N d67 ; B -66 -202 24 31 ; +C 68 ; WX 0 ; N d68 ; B -62 -201 23 33 ; +C 69 ; WX 0 ; N d69 ; B -58 -201 21 33 ; +C 70 ; WX 0 ; N d70 ; B -53 -199 30 33 ; +C 71 ; WX 0 ; N d71 ; B -48 -198 40 35 ; +C 72 ; WX 0 ; N d72 ; B -44 -196 50 34 ; +C 73 ; WX 0 ; N d73 ; B -38 -193 60 36 ; +C 74 ; WX 0 ; N d74 ; B -33 -189 71 37 ; +C 75 ; WX 0 ; N d75 ; B -27 -185 82 37 ; +C 76 ; WX 0 ; N d76 ; B -20 -180 93 39 ; +C 77 ; WX 0 ; N d77 ; B -14 -174 104 37 ; +C 78 ; WX 0 ; N d78 ; B -7 -167 114 40 ; +C 79 ; WX 0 ; N d79 ; B 0 -160 125 39 ; +C 80 ; WX 0 ; N d80 ; B -2 -151 133 37 ; +C 81 ; WX 0 ; N d81 ; B -5 -143 143 39 ; +C 82 ; WX 0 ; N d82 ; B -7 -134 152 39 ; +C 83 ; WX 0 ; N d83 ; B -10 -125 160 39 ; +C 84 ; WX 0 ; N d84 ; B -12 -115 165 38 ; +C 85 ; WX 0 ; N d85 ; B -14 -106 173 37 ; +C 86 ; WX 0 ; N d86 ; B -16 -101 179 36 ; +C 87 ; WX 0 ; N d87 ; B -18 -98 181 36 ; +C 88 ; WX 0 ; N d88 ; B -19 -96 186 34 ; +C 89 ; WX 0 ; N d89 ; B -21 -93 190 34 ; +C 90 ; WX 0 ; N d90 ; B -22 -91 192 32 ; +C 91 ; WX 0 ; N d91 ; B -22 -88 195 32 ; +C 92 ; WX 0 ; N d92 ; B -25 -85 197 30 ; +C 93 ; WX 0 ; N d93 ; B -26 -82 198 30 ; +C 94 ; WX 0 ; N d94 ; B -26 -80 199 29 ; +C 95 ; WX 0 ; N d95 ; B -27 -77 200 28 ; +C 96 ; WX 0 ; N d96 ; B -27 -75 202 27 ; +C 97 ; WX 0 ; N d97 ; B -29 -72 202 26 ; +C 98 ; WX 0 ; N d98 ; B -30 -69 201 25 ; +C 99 ; WX 0 ; N d99 ; B -31 -66 202 24 ; +C 100 ; WX 0 ; N d100 ; B -33 -62 200 23 ; +C 101 ; WX 0 ; N d101 ; B -33 -58 201 21 ; +C 102 ; WX 0 ; N d102 ; B -35 -53 199 30 ; +C 103 ; WX 0 ; N d103 ; B -35 -49 198 40 ; +C 104 ; WX 0 ; N d104 ; B -35 -44 195 50 ; +C 105 ; WX 0 ; N d105 ; B -36 -38 194 61 ; +C 106 ; WX 0 ; N d106 ; B -37 -33 190 72 ; +C 107 ; WX 0 ; N d107 ; B -38 -27 185 83 ; +C 108 ; WX 0 ; N d108 ; B -39 -20 180 93 ; +C 109 ; WX 0 ; N d109 ; B -37 -14 174 104 ; +C 110 ; WX 0 ; N d110 ; B -40 -7 167 114 ; +C 111 ; WX 0 ; N d111 ; B -39 0 160 125 ; +C 112 ; WX 0 ; N d112 ; B -37 -2 151 133 ; +C 113 ; WX 0 ; N d113 ; B -39 -5 143 143 ; +C 114 ; WX 0 ; N d114 ; B -38 -7 134 152 ; +C 115 ; WX 0 ; N d115 ; B -39 -10 125 160 ; +C 116 ; WX 0 ; N d116 ; B -38 -12 115 165 ; +C 117 ; WX 0 ; N d117 ; B -37 -14 106 173 ; +C 118 ; WX 0 ; N d118 ; B -36 -16 101 179 ; +C 119 ; WX 0 ; N d119 ; B -36 -18 98 181 ; +C 120 ; WX 0 ; N d120 ; B -34 -19 96 186 ; +C 121 ; WX 0 ; N d121 ; B -34 -21 93 190 ; +C 122 ; WX 0 ; N d122 ; B -32 -22 91 192 ; +C 123 ; WX 0 ; N d123 ; B -32 -22 88 195 ; +C 124 ; WX 0 ; N d124 ; B -30 -25 85 197 ; +C 125 ; WX 0 ; N d125 ; B -30 -26 82 198 ; +C 126 ; WX 0 ; N d126 ; B -29 -27 80 200 ; +C 127 ; WX 0 ; N d127 ; B -28 -28 78 200 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xylubt11.afm b/Master/texmf-dist/fonts/afm/xypic/xylubt11.afm new file mode 100644 index 00000000000..d8e313064d5 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xylubt11.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:08 2010 +FontName XYLUBT-Medium +FullName XYLUBT +FamilyName XYLUBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -205 -205 205 205 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -25 -26 77 204 ; +C 1 ; WX 0 ; N d1 ; B -24 -27 74 204 ; +C 2 ; WX 0 ; N d2 ; B -23 -28 71 205 ; +C 3 ; WX 0 ; N d3 ; B -22 -27 68 205 ; +C 4 ; WX 0 ; N d4 ; B -21 -30 64 204 ; +C 5 ; WX 0 ; N d5 ; B -19 -29 60 204 ; +C 6 ; WX 0 ; N d6 ; B -29 -31 55 204 ; +C 7 ; WX 0 ; N d7 ; B -39 -31 51 202 ; +C 8 ; WX 0 ; N d8 ; B -49 -33 45 198 ; +C 9 ; WX 0 ; N d9 ; B -60 -32 40 196 ; +C 10 ; WX 0 ; N d10 ; B -70 -34 34 194 ; +C 11 ; WX 0 ; N d11 ; B -81 -34 27 188 ; +C 12 ; WX 0 ; N d12 ; B -93 -34 21 184 ; +C 13 ; WX 0 ; N d13 ; B -104 -36 14 178 ; +C 14 ; WX 0 ; N d14 ; B -114 -36 7 171 ; +C 15 ; WX 0 ; N d15 ; B -124 -36 0 163 ; +C 16 ; WX 0 ; N d16 ; B -134 -35 2 155 ; +C 17 ; WX 0 ; N d17 ; B -144 -35 4 147 ; +C 18 ; WX 0 ; N d18 ; B -152 -34 6 138 ; +C 19 ; WX 0 ; N d19 ; B -159 -35 9 128 ; +C 20 ; WX 0 ; N d20 ; B -168 -34 10 119 ; +C 21 ; WX 0 ; N d21 ; B -173 -34 13 109 ; +C 22 ; WX 0 ; N d22 ; B -180 -33 14 104 ; +C 23 ; WX 0 ; N d23 ; B -184 -32 15 102 ; +C 24 ; WX 0 ; N d24 ; B -188 -32 18 99 ; +C 25 ; WX 0 ; N d25 ; B -193 -30 18 96 ; +C 26 ; WX 0 ; N d26 ; B -194 -29 20 94 ; +C 27 ; WX 0 ; N d27 ; B -197 -29 21 91 ; +C 28 ; WX 0 ; N d28 ; B -199 -28 22 88 ; +C 29 ; WX 0 ; N d29 ; B -201 -27 23 85 ; +C 30 ; WX 0 ; N d30 ; B -202 -26 24 83 ; +C 31 ; WX 0 ; N d31 ; B -204 -26 26 80 ; +C 32 ; WX 0 ; N d32 ; B -204 -25 26 77 ; +C 33 ; WX 0 ; N d33 ; B -204 -24 27 75 ; +C 34 ; WX 0 ; N d34 ; B -205 -23 28 71 ; +C 35 ; WX 0 ; N d35 ; B -205 -22 27 68 ; +C 36 ; WX 0 ; N d36 ; B -204 -21 30 64 ; +C 37 ; WX 0 ; N d37 ; B -204 -19 30 60 ; +C 38 ; WX 0 ; N d38 ; B -204 -29 29 55 ; +C 39 ; WX 0 ; N d39 ; B -202 -39 31 51 ; +C 40 ; WX 0 ; N d40 ; B -200 -49 33 45 ; +C 41 ; WX 0 ; N d41 ; B -196 -59 32 40 ; +C 42 ; WX 0 ; N d42 ; B -193 -70 34 34 ; +C 43 ; WX 0 ; N d43 ; B -188 -81 34 27 ; +C 44 ; WX 0 ; N d44 ; B -184 -93 34 21 ; +C 45 ; WX 0 ; N d45 ; B -178 -104 36 14 ; +C 46 ; WX 0 ; N d46 ; B -171 -114 35 7 ; +C 47 ; WX 0 ; N d47 ; B -163 -124 36 0 ; +C 48 ; WX 0 ; N d48 ; B -155 -134 35 2 ; +C 49 ; WX 0 ; N d49 ; B -147 -144 35 4 ; +C 50 ; WX 0 ; N d50 ; B -138 -152 34 7 ; +C 51 ; WX 0 ; N d51 ; B -128 -159 35 9 ; +C 52 ; WX 0 ; N d52 ; B -119 -168 33 10 ; +C 53 ; WX 0 ; N d53 ; B -109 -173 34 13 ; +C 54 ; WX 0 ; N d54 ; B -104 -179 33 14 ; +C 55 ; WX 0 ; N d55 ; B -102 -184 32 16 ; +C 56 ; WX 0 ; N d56 ; B -99 -188 32 18 ; +C 57 ; WX 0 ; N d57 ; B -96 -193 30 19 ; +C 58 ; WX 0 ; N d58 ; B -94 -194 29 20 ; +C 59 ; WX 0 ; N d59 ; B -90 -197 28 21 ; +C 60 ; WX 0 ; N d60 ; B -88 -199 28 23 ; +C 61 ; WX 0 ; N d61 ; B -85 -201 27 23 ; +C 62 ; WX 0 ; N d62 ; B -82 -202 26 24 ; +C 63 ; WX 0 ; N d63 ; B -80 -204 25 24 ; +C 64 ; WX 0 ; N d64 ; B -77 -204 25 26 ; +C 65 ; WX 0 ; N d65 ; B -74 -204 24 27 ; +C 66 ; WX 0 ; N d66 ; B -71 -205 23 28 ; +C 67 ; WX 0 ; N d67 ; B -68 -205 22 29 ; +C 68 ; WX 0 ; N d68 ; B -64 -204 21 30 ; +C 69 ; WX 0 ; N d69 ; B -59 -204 19 30 ; +C 70 ; WX 0 ; N d70 ; B -55 -204 29 29 ; +C 71 ; WX 0 ; N d71 ; B -51 -202 39 31 ; +C 72 ; WX 0 ; N d72 ; B -44 -200 49 33 ; +C 73 ; WX 0 ; N d73 ; B -39 -196 59 32 ; +C 74 ; WX 0 ; N d74 ; B -33 -193 70 33 ; +C 75 ; WX 0 ; N d75 ; B -27 -188 81 34 ; +C 76 ; WX 0 ; N d76 ; B -21 -184 92 35 ; +C 77 ; WX 0 ; N d77 ; B -14 -178 104 36 ; +C 78 ; WX 0 ; N d78 ; B -7 -171 114 36 ; +C 79 ; WX 0 ; N d79 ; B 0 -163 124 36 ; +C 80 ; WX 0 ; N d80 ; B -2 -155 134 35 ; +C 81 ; WX 0 ; N d81 ; B -4 -147 144 35 ; +C 82 ; WX 0 ; N d82 ; B -6 -138 152 34 ; +C 83 ; WX 0 ; N d83 ; B -9 -128 160 35 ; +C 84 ; WX 0 ; N d84 ; B -10 -119 168 34 ; +C 85 ; WX 0 ; N d85 ; B -12 -109 173 33 ; +C 86 ; WX 0 ; N d86 ; B -14 -104 179 33 ; +C 87 ; WX 0 ; N d87 ; B -15 -102 184 32 ; +C 88 ; WX 0 ; N d88 ; B -17 -99 188 30 ; +C 89 ; WX 0 ; N d89 ; B -18 -96 193 30 ; +C 90 ; WX 0 ; N d90 ; B -20 -94 194 29 ; +C 91 ; WX 0 ; N d91 ; B -21 -91 197 29 ; +C 92 ; WX 0 ; N d92 ; B -22 -88 199 28 ; +C 93 ; WX 0 ; N d93 ; B -23 -85 201 27 ; +C 94 ; WX 0 ; N d94 ; B -24 -82 202 26 ; +C 95 ; WX 0 ; N d95 ; B -22 -80 204 25 ; +C 96 ; WX 0 ; N d96 ; B -26 -77 204 25 ; +C 97 ; WX 0 ; N d97 ; B -27 -74 204 24 ; +C 98 ; WX 0 ; N d98 ; B -28 -71 205 23 ; +C 99 ; WX 0 ; N d99 ; B -27 -68 205 22 ; +C 100 ; WX 0 ; N d100 ; B -30 -64 202 21 ; +C 101 ; WX 0 ; N d101 ; B -29 -60 204 19 ; +C 102 ; WX 0 ; N d102 ; B -29 -55 204 29 ; +C 103 ; WX 0 ; N d103 ; B -31 -51 203 39 ; +C 104 ; WX 0 ; N d104 ; B -32 -45 199 49 ; +C 105 ; WX 0 ; N d105 ; B -33 -39 196 60 ; +C 106 ; WX 0 ; N d106 ; B -34 -34 193 70 ; +C 107 ; WX 0 ; N d107 ; B -34 -27 188 81 ; +C 108 ; WX 0 ; N d108 ; B -33 -21 185 94 ; +C 109 ; WX 0 ; N d109 ; B -36 -14 178 104 ; +C 110 ; WX 0 ; N d110 ; B -35 -7 171 114 ; +C 111 ; WX 0 ; N d111 ; B -36 0 163 124 ; +C 112 ; WX 0 ; N d112 ; B -35 -2 155 134 ; +C 113 ; WX 0 ; N d113 ; B -34 -4 147 144 ; +C 114 ; WX 0 ; N d114 ; B -34 -6 138 153 ; +C 115 ; WX 0 ; N d115 ; B -35 -9 128 159 ; +C 116 ; WX 0 ; N d116 ; B -33 -10 119 168 ; +C 117 ; WX 0 ; N d117 ; B -34 -12 109 173 ; +C 118 ; WX 0 ; N d118 ; B -33 -14 104 179 ; +C 119 ; WX 0 ; N d119 ; B -32 -15 102 184 ; +C 120 ; WX 0 ; N d120 ; B -30 -17 99 188 ; +C 121 ; WX 0 ; N d121 ; B -30 -18 96 192 ; +C 122 ; WX 0 ; N d122 ; B -29 -20 94 194 ; +C 123 ; WX 0 ; N d123 ; B -29 -22 91 197 ; +C 124 ; WX 0 ; N d124 ; B -28 -22 88 199 ; +C 125 ; WX 0 ; N d125 ; B -27 -23 85 201 ; +C 126 ; WX 0 ; N d126 ; B -26 -24 83 202 ; +C 127 ; WX 0 ; N d127 ; B -26 -26 80 205 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/afm/xypic/xylubt12.afm b/Master/texmf-dist/fonts/afm/xypic/xylubt12.afm new file mode 100644 index 00000000000..2e8a89f4508 --- /dev/null +++ b/Master/texmf-dist/fonts/afm/xypic/xylubt12.afm @@ -0,0 +1,147 @@ +StartFontMetrics 2.0 +Comment Generated by FontForge 20090622 +Comment Creation Date: Thu Jun 10 14:55:12 2010 +FontName XYLUBT-Medium +FullName XYLUBT +FamilyName XYLUBT +Weight Medium +Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) +ItalicAngle 0 +IsFixedPitch true +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox -208 -209 208 209 +Descender -2147483648 +StartCharMetrics 128 +C 0 ; WX 0 ; N d0 ; B -22 -24 80 206 ; +C 1 ; WX 0 ; N d1 ; B -22 -25 77 207 ; +C 2 ; WX 0 ; N d2 ; B -21 -25 74 208 ; +C 3 ; WX 0 ; N d3 ; B -20 -26 69 209 ; +C 4 ; WX 0 ; N d4 ; B -19 -27 66 208 ; +C 5 ; WX 0 ; N d5 ; B -18 -27 62 207 ; +C 6 ; WX 0 ; N d6 ; B -27 -27 57 206 ; +C 7 ; WX 0 ; N d7 ; B -38 -29 51 204 ; +C 8 ; WX 0 ; N d8 ; B -48 -30 47 203 ; +C 9 ; WX 0 ; N d9 ; B -58 -31 41 199 ; +C 10 ; WX 0 ; N d10 ; B -69 -30 35 195 ; +C 11 ; WX 0 ; N d11 ; B -80 -31 28 192 ; +C 12 ; WX 0 ; N d12 ; B -91 -31 21 186 ; +C 13 ; WX 0 ; N d13 ; B -103 -30 14 180 ; +C 14 ; WX 0 ; N d14 ; B -114 -32 7 174 ; +C 15 ; WX 0 ; N d15 ; B -124 -33 0 166 ; +C 16 ; WX 0 ; N d16 ; B -134 -32 2 158 ; +C 17 ; WX 0 ; N d17 ; B -144 -32 4 149 ; +C 18 ; WX 0 ; N d18 ; B -152 -32 6 139 ; +C 19 ; WX 0 ; N d19 ; B -161 -32 8 131 ; +C 20 ; WX 0 ; N d20 ; B -169 -31 10 122 ; +C 21 ; WX 0 ; N d21 ; B -176 -30 11 112 ; +C 22 ; WX 0 ; N d22 ; B -181 -30 13 107 ; +C 23 ; WX 0 ; N d23 ; B -185 -30 15 104 ; +C 24 ; WX 0 ; N d24 ; B -190 -29 16 102 ; +C 25 ; WX 0 ; N d25 ; B -193 -28 17 99 ; +C 26 ; WX 0 ; N d26 ; B -197 -27 18 96 ; +C 27 ; WX 0 ; N d27 ; B -199 -26 19 93 ; +C 28 ; WX 0 ; N d28 ; B -201 -25 20 90 ; +C 29 ; WX 0 ; N d29 ; B -203 -25 21 88 ; +C 30 ; WX 0 ; N d30 ; B -204 -24 22 85 ; +C 31 ; WX 0 ; N d31 ; B -204 -24 24 82 ; +C 32 ; WX 0 ; N d32 ; B -206 -23 24 80 ; +C 33 ; WX 0 ; N d33 ; B -207 -22 25 77 ; +C 34 ; WX 0 ; N d34 ; B -207 -21 25 74 ; +C 35 ; WX 0 ; N d35 ; B -208 -20 26 70 ; +C 36 ; WX 0 ; N d36 ; B -208 -19 27 66 ; +C 37 ; WX 0 ; N d37 ; B -207 -18 28 62 ; +C 38 ; WX 0 ; N d38 ; B -206 -27 27 57 ; +C 39 ; WX 0 ; N d39 ; B -204 -37 30 52 ; +C 40 ; WX 0 ; N d40 ; B -203 -48 30 47 ; +C 41 ; WX 0 ; N d41 ; B -199 -58 31 41 ; +C 42 ; WX 0 ; N d42 ; B -195 -69 30 35 ; +C 43 ; WX 0 ; N d43 ; B -192 -81 31 28 ; +C 44 ; WX 0 ; N d44 ; B -186 -92 31 21 ; +C 45 ; WX 0 ; N d45 ; B -180 -103 32 14 ; +C 46 ; WX 0 ; N d46 ; B -174 -114 32 7 ; +C 47 ; WX 0 ; N d47 ; B -166 -124 33 0 ; +C 48 ; WX 0 ; N d48 ; B -158 -134 32 2 ; +C 49 ; WX 0 ; N d49 ; B -150 -144 32 4 ; +C 50 ; WX 0 ; N d50 ; B -140 -153 32 6 ; +C 51 ; WX 0 ; N d51 ; B -131 -160 32 8 ; +C 52 ; WX 0 ; N d52 ; B -122 -169 31 10 ; +C 53 ; WX 0 ; N d53 ; B -112 -175 30 11 ; +C 54 ; WX 0 ; N d54 ; B -107 -181 30 13 ; +C 55 ; WX 0 ; N d55 ; B -104 -183 30 15 ; +C 56 ; WX 0 ; N d56 ; B -102 -190 29 16 ; +C 57 ; WX 0 ; N d57 ; B -98 -193 28 17 ; +C 58 ; WX 0 ; N d58 ; B -96 -197 27 18 ; +C 59 ; WX 0 ; N d59 ; B -93 -199 26 19 ; +C 60 ; WX 0 ; N d60 ; B -90 -202 26 21 ; +C 61 ; WX 0 ; N d61 ; B -88 -203 25 21 ; +C 62 ; WX 0 ; N d62 ; B -84 -204 24 22 ; +C 63 ; WX 0 ; N d63 ; B -82 -206 23 22 ; +C 64 ; WX 0 ; N d64 ; B -79 -206 23 24 ; +C 65 ; WX 0 ; N d65 ; B -77 -207 22 25 ; +C 66 ; WX 0 ; N d66 ; B -74 -207 21 25 ; +C 67 ; WX 0 ; N d67 ; B -69 -209 20 26 ; +C 68 ; WX 0 ; N d68 ; B -66 -208 19 27 ; +C 69 ; WX 0 ; N d69 ; B -61 -207 18 28 ; +C 70 ; WX 0 ; N d70 ; B -56 -206 27 27 ; +C 71 ; WX 0 ; N d71 ; B -52 -204 37 29 ; +C 72 ; WX 0 ; N d72 ; B -47 -202 48 30 ; +C 73 ; WX 0 ; N d73 ; B -40 -199 58 31 ; +C 74 ; WX 0 ; N d74 ; B -35 -195 69 30 ; +C 75 ; WX 0 ; N d75 ; B -28 -192 80 31 ; +C 76 ; WX 0 ; N d76 ; B -21 -186 92 32 ; +C 77 ; WX 0 ; N d77 ; B -14 -181 103 32 ; +C 78 ; WX 0 ; N d78 ; B -7 -174 114 32 ; +C 79 ; WX 0 ; N d79 ; B 0 -166 124 33 ; +C 80 ; WX 0 ; N d80 ; B -2 -158 134 32 ; +C 81 ; WX 0 ; N d81 ; B -4 -150 144 32 ; +C 82 ; WX 0 ; N d82 ; B -6 -140 153 32 ; +C 83 ; WX 0 ; N d83 ; B -9 -131 160 31 ; +C 84 ; WX 0 ; N d84 ; B -9 -122 169 31 ; +C 85 ; WX 0 ; N d85 ; B -11 -112 173 30 ; +C 86 ; WX 0 ; N d86 ; B -13 -107 181 30 ; +C 87 ; WX 0 ; N d87 ; B -15 -104 183 30 ; +C 88 ; WX 0 ; N d88 ; B -16 -102 188 29 ; +C 89 ; WX 0 ; N d89 ; B -17 -99 193 28 ; +C 90 ; WX 0 ; N d90 ; B -18 -96 197 27 ; +C 91 ; WX 0 ; N d91 ; B -19 -93 199 26 ; +C 92 ; WX 0 ; N d92 ; B -21 -90 202 26 ; +C 93 ; WX 0 ; N d93 ; B -21 -88 203 25 ; +C 94 ; WX 0 ; N d94 ; B -22 -85 204 24 ; +C 95 ; WX 0 ; N d95 ; B -22 -82 206 23 ; +C 96 ; WX 0 ; N d96 ; B -23 -80 206 22 ; +C 97 ; WX 0 ; N d97 ; B -23 -77 206 22 ; +C 98 ; WX 0 ; N d98 ; B -25 -74 205 21 ; +C 99 ; WX 0 ; N d99 ; B -26 -69 208 20 ; +C 100 ; WX 0 ; N d100 ; B -27 -66 206 19 ; +C 101 ; WX 0 ; N d101 ; B -27 -62 207 18 ; +C 102 ; WX 0 ; N d102 ; B -28 -57 206 27 ; +C 103 ; WX 0 ; N d103 ; B -29 -51 204 37 ; +C 104 ; WX 0 ; N d104 ; B -30 -47 203 48 ; +C 105 ; WX 0 ; N d105 ; B -31 -41 199 58 ; +C 106 ; WX 0 ; N d106 ; B -30 -35 195 69 ; +C 107 ; WX 0 ; N d107 ; B -31 -28 192 81 ; +C 108 ; WX 0 ; N d108 ; B -31 -21 186 92 ; +C 109 ; WX 0 ; N d109 ; B -30 -14 181 103 ; +C 110 ; WX 0 ; N d110 ; B -32 -7 174 114 ; +C 111 ; WX 0 ; N d111 ; B -33 0 166 124 ; +C 112 ; WX 0 ; N d112 ; B -32 -2 158 134 ; +C 113 ; WX 0 ; N d113 ; B -32 -4 149 144 ; +C 114 ; WX 0 ; N d114 ; B -32 -6 141 153 ; +C 115 ; WX 0 ; N d115 ; B -32 -8 131 160 ; +C 116 ; WX 0 ; N d116 ; B -31 -10 122 169 ; +C 117 ; WX 0 ; N d117 ; B -30 -11 112 173 ; +C 118 ; WX 0 ; N d118 ; B -30 -13 107 181 ; +C 119 ; WX 0 ; N d119 ; B -30 -15 104 183 ; +C 120 ; WX 0 ; N d120 ; B -29 -16 102 188 ; +C 121 ; WX 0 ; N d121 ; B -28 -17 99 193 ; +C 122 ; WX 0 ; N d122 ; B -27 -18 96 197 ; +C 123 ; WX 0 ; N d123 ; B -26 -19 93 199 ; +C 124 ; WX 0 ; N d124 ; B -25 -20 90 202 ; +C 125 ; WX 0 ; N d125 ; B -25 -21 88 204 ; +C 126 ; WX 0 ; N d126 ; B -24 -22 85 204 ; +C 127 ; WX 0 ; N d127 ; B -24 -24 82 206 ; +EndCharMetrics +EndFontMetrics diff --git a/Master/texmf-dist/fonts/enc/dvips/xypic/xycirc.enc b/Master/texmf-dist/fonts/enc/dvips/xypic/xycirc.enc new file mode 100644 index 00000000000..0ed836bfe40 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/xypic/xycirc.enc @@ -0,0 +1,281 @@ +% $Id: xycirc.enc,v 3.4 2010/06/10 18:45:50 krisrose Exp $ +% +% XYCIRC: PDF character encoding of `Xy-pic Circle Segment' font. +% Copyright (c) 1998 Kristoffer H. Rose <krisrose@tug.org> +% +% This file is part of the Xy-pic macro package. +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this font file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. +/_XYCIRC_Encoding [ +/c0 +/c1 +/c2 +/c3 +/c4 +/c5 +/c6 +/c7 +/c8 +/c9 +/c10 +/c11 +/c12 +/c13 +/c14 +/c15 +/c16 +/c17 +/c18 +/c19 +/c20 +/c21 +/c22 +/c23 +/c24 +/c25 +/c26 +/c27 +/c28 +/c29 +/c30 +/c31 +/c32 +/c33 +/c34 +/c35 +/c36 +/c37 +/c38 +/c39 +/c40 +/c41 +/c42 +/c43 +/c44 +/c45 +/c46 +/c47 +/c48 +/c49 +/c50 +/c51 +/c52 +/c53 +/c54 +/c55 +/c56 +/c57 +/c58 +/c59 +/c60 +/c61 +/c62 +/c63 +/c64 +/c65 +/c66 +/c67 +/c68 +/c69 +/c70 +/c71 +/c72 +/c73 +/c74 +/c75 +/c76 +/c77 +/c78 +/c79 +/c80 +/c81 +/c82 +/c83 +/c84 +/c85 +/c86 +/c87 +/c88 +/c89 +/c90 +/c91 +/c92 +/c93 +/c94 +/c95 +/c96 +/c97 +/c98 +/c99 +/c100 +/c101 +/c102 +/c103 +/c104 +/c105 +/c106 +/c107 +/c108 +/c109 +/c110 +/c111 +/c112 +/c113 +/c114 +/c115 +/c116 +/c117 +/c118 +/c119 +/c120 +/c121 +/c122 +/c123 +/c124 +/c125 +/c126 +/c127 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/xypic/xyd.enc b/Master/texmf-dist/fonts/enc/dvips/xypic/xyd.enc new file mode 100644 index 00000000000..e98ea67ded8 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/xypic/xyd.enc @@ -0,0 +1,281 @@ +% $Id: xyd.enc,v 3.4 2010/06/10 18:45:50 krisrose Exp $ +% +% XYD: PDF character encoding of `Xy-pic Directional' fonts. +% Copyright (c) 1998-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% This file is part of the Xy-pic macro package. +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this font file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. +/_XYD_Encoding [ +/d0 +/d1 +/d2 +/d3 +/d4 +/d5 +/d6 +/d7 +/d8 +/d9 +/d10 +/d11 +/d12 +/d13 +/d14 +/d15 +/d16 +/d17 +/d18 +/d19 +/d20 +/d21 +/d22 +/d23 +/d24 +/d25 +/d26 +/d27 +/d28 +/d29 +/d30 +/d31 +/d32 +/d33 +/d34 +/d35 +/d36 +/d37 +/d38 +/d39 +/d40 +/d41 +/d42 +/d43 +/d44 +/d45 +/d46 +/d47 +/d48 +/d49 +/d50 +/d51 +/d52 +/d53 +/d54 +/d55 +/d56 +/d57 +/d58 +/d59 +/d60 +/d61 +/d62 +/d63 +/d64 +/d65 +/d66 +/d67 +/d68 +/d69 +/d70 +/d71 +/d72 +/d73 +/d74 +/d75 +/d76 +/d77 +/d78 +/d79 +/d80 +/d81 +/d82 +/d83 +/d84 +/d85 +/d86 +/d87 +/d88 +/d89 +/d90 +/d91 +/d92 +/d93 +/d94 +/d95 +/d96 +/d97 +/d98 +/d99 +/d100 +/d101 +/d102 +/d103 +/d104 +/d105 +/d106 +/d107 +/d108 +/d109 +/d110 +/d111 +/d112 +/d113 +/d114 +/d115 +/d116 +/d117 +/d118 +/d119 +/d120 +/d121 +/d122 +/d123 +/d124 +/d125 +/d126 +/d127 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +] def diff --git a/Master/texmf-dist/fonts/enc/dvips/xypic/xyd2.enc b/Master/texmf-dist/fonts/enc/dvips/xypic/xyd2.enc new file mode 100644 index 00000000000..cf3e42c9d30 --- /dev/null +++ b/Master/texmf-dist/fonts/enc/dvips/xypic/xyd2.enc @@ -0,0 +1,281 @@ +% $Id: xyd2.enc,v 3.4 2010/06/10 18:45:50 krisrose Exp $ +% +% XYD2: PDF character encoding of `Xy-pic Semi-Directional' fonts. +% Copyright (c) 1998-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% This file is part of the Xy-pic macro package. +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this font file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. +/_XYD2_Encoding [ +/a0 +/a1 +/a2 +/a3 +/a4 +/a5 +/a6 +/a7 +/a8 +/a9 +/a10 +/a11 +/a12 +/a13 +/a14 +/a15 +/a16 +/a17 +/a18 +/a19 +/a20 +/a21 +/a22 +/a23 +/a24 +/a25 +/a26 +/a27 +/a28 +/a29 +/a30 +/a31 +/a32 +/a33 +/a34 +/a35 +/a36 +/a37 +/a38 +/a39 +/a40 +/a41 +/a42 +/a43 +/a44 +/a45 +/a46 +/a47 +/a48 +/a49 +/a50 +/a51 +/a52 +/a53 +/a54 +/a55 +/a56 +/a57 +/a58 +/a59 +/a60 +/a61 +/a62 +/a63 +/a64 +/a65 +/a66 +/a67 +/a68 +/a69 +/a70 +/a71 +/a72 +/a73 +/a74 +/a75 +/a76 +/a77 +/a78 +/a79 +/a80 +/a81 +/a82 +/a83 +/a84 +/a85 +/a86 +/a87 +/a88 +/a89 +/a90 +/a91 +/a92 +/a93 +/a94 +/a95 +/a96 +/a97 +/a98 +/a99 +/a100 +/a101 +/a102 +/a103 +/a104 +/a105 +/a106 +/a107 +/a108 +/a109 +/a110 +/a111 +/a112 +/a113 +/a114 +/a115 +/a116 +/a117 +/a118 +/a119 +/a120 +/a121 +/a122 +/a123 +/a124 +/a125 +/a126 +/a127 +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +] def diff --git a/Master/texmf-dist/fonts/map/dvips/xypic/xypic.map b/Master/texmf-dist/fonts/map/dvips/xypic/xypic.map index 9fd5279567e..44445eeff09 100644 --- a/Master/texmf-dist/fonts/map/dvips/xypic/xypic.map +++ b/Master/texmf-dist/fonts/map/dvips/xypic/xypic.map @@ -1,11 +1,11 @@ -%% $Id: xypic.map,v 3.7 1999/02/16 15:12:50 krisrose Exp krisrose $ +%% $Id: xypic.map,v 3.11 2010/05/17 23:29:21 krisrose Exp $ %% %% Xy-pic PostScript type 1 font map for DVIPS. -%% Copyright (c) 1995-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1995-2010 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-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -30,37 +30,36 @@ % file directory (uncommented, starting in column 1): % % p+ xypic.map -% -% THANKS to Y&Y Inc. for making the much improved PFB fonts available to -% TeX community. - -xydash10 XYDASH10 <xydash10.pfb -xyatip10 XYATIP10 <xyatip10.pfb -xyatip11 XYATIP10 "1.1 ExtendFont" <xyatip10.pfb -xyatip12 XYATIP10 "1.2 ExtendFont" <xyatip10.pfb -xybtip10 XYBTIP10 <xybtip10.pfb -xybtip11 XYBTIP10 "1.1 ExtendFont" <xybtip10.pfb -xybtip12 XYBTIP10 "1.2 ExtendFont" <xybtip10.pfb +xydash10 XYDASH10 <xydash10.pfb <xyd2.enc +xyatip10 XYATIP10 <xyatip10.pfb <xyd.enc +xybtip10 XYBTIP10 <xybtip10.pfb <xyd.enc +xybsql10 XYBSQL10 <xybsql10.pfb <xyd.enc +xycirc10 XYCIRC10 <xycirc10.pfb <xycirc.enc -xybsql10 XYBSQL10 <xybsql10.pfb -xycirc10 XYCIRC10 <xycirc10.pfb +xycmat10 XYCMAT10 <xycmat10.pfb <xyd.enc +xycmbt10 XYCMBT10 <xycmbt10.pfb <xyd.enc +xycmat11 XYCMAT10 <xycmat11.pfb <xyd.enc +xycmbt11 XYCMBT10 <xycmbt11.pfb <xyd.enc +xycmat12 XYCMAT10 <xycmat12.pfb <xyd.enc +xycmbt12 XYCMBT10 <xycmbt12.pfb <xyd.enc -xycmat10 XYCMAT10 <xycmat10.pfb -xycmat11 XYCMAT10 "1.1 ExtendFont" <xycmat10.pfb -xycmat12 XYCMAT10 "1.2 ExtendFont" <xycmat10.pfb -xycmbt10 XYCMBT10 <xycmbt10.pfb -xycmbt11 XYCMBT10 "1.1 ExtendFont" <xycmbt10.pfb -xycmbt12 XYCMBT10 "1.2 ExtendFont" <xycmbt10.pfb +xyeuat10 XYEUAT10 <xyeuat10.pfb <xyd.enc +xyeubt10 XYEUBT10 <xyeubt10.pfb <xyd.enc +xyeuat11 XYEUAT10 <xyeuat11.pfb <xyd.enc +xyeubt11 XYEUBT10 <xyeubt11.pfb <xyd.enc +xyeuat12 XYEUAT10 <xyeuat12.pfb <xyd.enc +xyeubt12 XYEUBT10 <xyeubt12.pfb <xyd.enc -xyeuat10 XYEUAT10 <xyeuat10.pfb -xyeuat11 XYEUAT10 "1.1 ExtendFont" <xyeuat10.pfb -xyeuat12 XYEUAT10 "1.2 ExtendFont" <xyeuat10.pfb -xyeubt10 XYEUBT10 <xyeubt10.pfb -xyeubt11 XYEUBT10 "1.1 ExtendFont" <xyeubt10.pfb -xyeubt12 XYEUBT10 "1.2 ExtendFont" <xyeubt10.pfb +% Generated from Jeremy Gibbon's fonts. +xyluat10 XYLUAT10 <xyluat10.pfb <xyd.enc +xylubt10 XYLUBT10 <xylubt10.pfb <xyd.enc +xyluat11 XYLUAT10 <xyluat11.pfb <xyd.enc +xylubt11 XYLUBT10 <xylubt11.pfb <xyd.enc +xyluat12 XYLUAT10 <xyluat12.pfb <xyd.enc +xylubt12 XYLUBT10 <xylubt12.pfb <xyd.enc -% Obsolete fonts not included by default (and not available for PDF). -%xyline10 XYLINE10 <xyline10.pfa -%xyqc10 XYQC10 <xyqc10.pfa -%xymisc10 XYMISC10 <xymisc10.pfa +% Obsolete (v2.6) fonts not included by default (and not available for PDF). +%xyline10 XYLINE10 <xyline10.pfb +%xyqc10 XYQC10 <xyqc10.pfb +%xymisc10 XYMISC10 <xymisc10.pfb diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyatip.mf b/Master/texmf-dist/fonts/source/xypic/xyatip.mf index 234b2b88aff..d3c5d117bd5 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyatip.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyatip.mf @@ -1,4 +1,4 @@ -% $Id: xyatip.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyatip.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % Generate upper arrow tips for Xy-pic. % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -60,6 +59,9 @@ input xyd bye. % % $Log: xyatip.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyatip10.mf b/Master/texmf-dist/fonts/source/xypic/xyatip10.mf index 59fd91ac0be..22b5ca9ca2b 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyatip10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyatip10.mf @@ -1,7 +1,7 @@ -% $Id: xyatip10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyatip10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ % % XYATIP10: upper arrow tips for Xy-pic at 10 point "technical style". -% Copyright (c) 1991-1998 Kristoffer H. Rose <krisrose@ens-lyon.fr> +% Copyright (c) 1991-1998 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restrictions. This special exception was added with @@ -30,6 +29,12 @@ input xytech input xyatip % $Log: xyatip10.mf,v $ +% Revision 3.9 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/xypic/xyatri.mf b/Master/texmf-dist/fonts/source/xypic/xyatri.mf new file mode 100644 index 00000000000..6be21cf2ea6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xyatri.mf @@ -0,0 +1,55 @@ +% $Id: xyatri.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xyatri, for use with Lucida +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +def chartowards(expr cc,dx,dy) = + beginchar(cc,0,0,0); + a := angle(dx,dy); + z0 = (tipo,0) rotated a; % tip of tip + z1 = (-segl,0) rotated a; % center of tail + z2 = (-segl,1/2 segx) rotated a; % tail ends + z3 = indent [z1,z0]; % back of tip + fill z2--z0--z3--cycle; + penlabels(0,1,2,3); + endchar +enddef; + +def openit = openwindow currentwindow + from origin to (screen_cols,screen_rows) at (-200,300) enddef; + +input xyd + + bye. + +% $Log: xyatri.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% based on xyatip (triangular rather than curvilinear barbs) diff --git a/Master/texmf-dist/fonts/source/public/xypic/xybsql10.mf b/Master/texmf-dist/fonts/source/xypic/xybsql10.mf index 1ea03241e4f..1d2291d6b79 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xybsql10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xybsql10.mf @@ -1,7 +1,7 @@ -% $Id: xybsql10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xybsql10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ % % XYBSQL10: lower squiggles/quarter circles for Xy-pic at 10 point. -% Copyright (c) 1992 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1992 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -64,6 +63,12 @@ input xyd bye. % % $Log: xybsql10.mf,v $ +% Revision 3.9 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xybtip.mf b/Master/texmf-dist/fonts/source/xypic/xybtip.mf index 5b7de63a61f..e6e95e7159f 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xybtip.mf +++ b/Master/texmf-dist/fonts/source/xypic/xybtip.mf @@ -1,4 +1,4 @@ -% $Id: xybtip.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xybtip.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % Generate lower arrow tips for Xy-pic. % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -60,6 +59,9 @@ input xyd bye. % % $Log: xybtip.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xybtip10.mf b/Master/texmf-dist/fonts/source/xypic/xybtip10.mf index 0e204d9224b..c944c2b8a89 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xybtip10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xybtip10.mf @@ -1,7 +1,7 @@ -% $Id: xybtip10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xybtip10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ % % XYBTIP10: lower arrow tips for Xy-pic at 10 point "technical style". -% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,12 @@ input xytech input xybtip % $Log: xybtip10.mf,v $ +% Revision 3.9 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/xypic/xybtri.mf b/Master/texmf-dist/fonts/source/xypic/xybtri.mf new file mode 100644 index 00000000000..69e8d007b21 --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xybtri.mf @@ -0,0 +1,55 @@ +% $Id: xybtri.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xybtri, for use with Lucida +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +def chartowards(expr cc,dx,dy) = + beginchar(cc,0,0,0); + a := angle(dx,dy); + z0 = (tipo,0) rotated a; % tip of tip + z1 = (-segl,0) rotated a; % center of tail + z2 = (-segl,-1/2 segx) rotated a; % tail ends + z3 = indent [z1,z0]; % back of tip + fill z2--z0--z3--cycle; + penlabels(0,1,2,3); + endchar +enddef; + +def openit = openwindow currentwindow + from origin to (screen_cols,screen_rows) at (-200,300) enddef; + +input xyd + +bye. + +% $Log: xybtri.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% based on xybtip (triangular rather than curvilinear barbs) diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycirc10.mf b/Master/texmf-dist/fonts/source/xypic/xycirc10.mf index dfdf2f63254..9ff773dc8ce 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xycirc10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xycirc10.mf @@ -1,7 +1,7 @@ -% $Id: xycirc10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xycirc10.mf,v 3.10 2010/06/10 18:45:50 krisrose Exp $ % % XYCIRC10: 1/8 circles with varying radii for Xy-pic at 10 point. -% Copyright (c) 1992,1993 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1992,1993 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, Inc., -% 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -76,7 +75,7 @@ enddef; % % Font dimension 8 is the rule thickness (cf. The TeXbook, app.G) % -font_coding_scheme:="Xy-pic 1/8 circles"; +font_coding_scheme:="xycirc.enc"; fontdimen 8: rulew#; % default_rule_thickness % Use the following macro that generates an entire group from character cc @@ -132,6 +131,15 @@ for g = 12 step 1 until 15: makeg(g,(4g-28)*pt#); endfor; bye. % $Log: xycirc10.mf,v $ +% Revision 3.10 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.9 2010/05/17 23:29:21 krisrose +% Experiment: generate all the Type1 fonts with METAPOST. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycm.mf b/Master/texmf-dist/fonts/source/xypic/xycm.mf index 414f4883cdb..fb0a4240236 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xycm.mf +++ b/Master/texmf-dist/fonts/source/xypic/xycm.mf @@ -1,4 +1,4 @@ -% $Id: xycm.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xycm.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % Parameter file for Xy-pic "Computer Modern style" arrow tips. % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -31,6 +30,9 @@ tipo# = 0#; define_pixels(tipo); % tip overshoot curvature = 1/3; % 1 = straight tails, 0= curved tails % % $Log: xycm.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmat10.mf b/Master/texmf-dist/fonts/source/xypic/xycmat10.mf index cc35ec797cc..ecd65e1cfc1 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xycmat10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xycmat10.mf @@ -1,7 +1,7 @@ -% $Id: xycmat10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xycmat10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ % % XYCMAT10: upper arrow tips for Xy-pic at 10 point "Computer Modern style". -% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,12 @@ input xycm input xyatip % $Log: xycmat10.mf,v $ +% Revision 3.9 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmat11.mf b/Master/texmf-dist/fonts/source/xypic/xycmat11.mf index 7be6b114d3a..9e9f8f086d8 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xycmat11.mf +++ b/Master/texmf-dist/fonts/source/xypic/xycmat11.mf @@ -1,4 +1,4 @@ -% $Id: xycmat11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xycmat11.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYCMAT11: upper arrow tips for Xy-pic at 11 point "Computer Modern style". % Copyright (c) 1995 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xycm input xyatip % $Log: xycmat11.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmat12.mf b/Master/texmf-dist/fonts/source/xypic/xycmat12.mf index 2feec42944d..0c021251816 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xycmat12.mf +++ b/Master/texmf-dist/fonts/source/xypic/xycmat12.mf @@ -1,4 +1,4 @@ -% $Id: xycmat12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xycmat12.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYCMAT12: upper arrow tips for Xy-pic at 12 point "Computer Modern style". % Copyright (c) 1995 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xycm input xyatip % $Log: xycmat12.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmbt10.mf b/Master/texmf-dist/fonts/source/xypic/xycmbt10.mf index d61f4bda2a3..fd3fd9c8d0e 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xycmbt10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xycmbt10.mf @@ -1,7 +1,7 @@ -% $Id: xycmbt10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xycmbt10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ % % XYCMBT10: lower arrow tips for Xy-pic at 10 point "Computer Modern style". -% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,12 @@ input xycm input xybtip % $Log: xycmbt10.mf,v $ +% Revision 3.9 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmbt11.mf b/Master/texmf-dist/fonts/source/xypic/xycmbt11.mf index 10da60b2fd7..a286a4883cc 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xycmbt11.mf +++ b/Master/texmf-dist/fonts/source/xypic/xycmbt11.mf @@ -1,4 +1,4 @@ -% $Id: xycmbt11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xycmbt11.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYCMBT11: lower arrow tips for Xy-pic at 11 point "Computer Modern style". % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xycm input xybtip % $Log: xycmbt11.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmbt12.mf b/Master/texmf-dist/fonts/source/xypic/xycmbt12.mf index 005aa7d5373..f9ebff3be8c 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xycmbt12.mf +++ b/Master/texmf-dist/fonts/source/xypic/xycmbt12.mf @@ -1,4 +1,4 @@ -% $Id: xycmbt12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xycmbt12.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYCMBT12: lower arrow tips for Xy-pic at 12 point "Computer Modern style". % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xycm input xybtip % $Log: xycmbt12.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyd.mf b/Master/texmf-dist/fonts/source/xypic/xyd.mf index 2c5b85384a8..fad1c242b0c 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyd.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyd.mf @@ -1,7 +1,7 @@ -% $Id: xyd.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyd.mf,v 3.10 2010/06/10 18:45:50 krisrose Exp $ % % XYD: generate characters of `Xy-pic Directional' font. -% Copyright (c) 1992 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1992 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -39,7 +38,7 @@ % % Parameters: % -font_coding_scheme:="Xy-pic directional"; +font_coding_scheme:="xyd.enc"; % font_x_height segx#; font_quad segl#; @@ -53,6 +52,15 @@ for cc = 64 step 1 until 95: chartowards(cc,(79-cc)/16, 1); endfor; for cc = 96 step 1 until 127: chartowards(cc, -1,(111-cc)/16); endfor; % % $Log: xyd.mf,v $ +% Revision 3.10 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.9 2010/05/17 23:29:21 krisrose +% Experiment: generate all the Type1 fonts with METAPOST. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyd2.mf b/Master/texmf-dist/fonts/source/xypic/xyd2.mf index 150f1d2963d..d4ab6f9c373 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyd2.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyd2.mf @@ -1,7 +1,7 @@ -% $Id: xyd2.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyd2.mf,v 3.10 2010/06/10 18:45:50 krisrose Exp $ % % XYD2: generate characters of `Xy-pic SemiDirectional' font. -% Copyright (c) 1992 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1992 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -39,7 +38,7 @@ % % Parameters: % -font_coding_scheme:="Xy-pic semidirectional"; +font_coding_scheme:="xyd2.enc"; % font_x_height segx#; font_quad segl#; @@ -52,6 +51,15 @@ for cc = 31 step 1 until 63: chartowards(cc,(cc-31)/32, -1); endfor; for cc = 64 step 1 until 127: chartowards(cc, 1,(cc-95)/32); endfor; % % $Log: xyd2.mf,v $ +% Revision 3.10 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.9 2010/05/17 23:29:21 krisrose +% Experiment: generate all the Type1 fonts with METAPOST. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xydash10.mf b/Master/texmf-dist/fonts/source/xypic/xydash10.mf index c378acf0a59..b97d2026f23 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xydash10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xydash10.mf @@ -1,7 +1,7 @@ -% $Id: xydash10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xydash10.mf,v 3.9 2010/06/10 18:45:50 krisrose Exp $ % % XYDASH10: dashes for Xy-pic at 10 point. -% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the Xy-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -66,6 +65,12 @@ input xyd2 bye. % % $Log: xydash10.mf,v $ +% Revision 3.9 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.8 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeuat10.mf b/Master/texmf-dist/fonts/source/xypic/xyeuat10.mf index 8dbde2e8898..170ea3b5a7b 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyeuat10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyeuat10.mf @@ -1,4 +1,4 @@ -% $Id: xyeuat10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyeuat10.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYEUAT10: upper arrow tips for Xy-pic at 10 point "Euler style". % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xyeuler input xyatip % $Log: xyeuat10.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeuat11.mf b/Master/texmf-dist/fonts/source/xypic/xyeuat11.mf index 0b467291030..6dcc7da88a7 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyeuat11.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyeuat11.mf @@ -1,4 +1,4 @@ -% $Id: xyeuat11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyeuat11.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYEUAT11: upper arrow tips for Xy-pic at 11 point "Euler style". % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this font file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xyeuler input xyatip % $Log: xyeuat11.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeuat12.mf b/Master/texmf-dist/fonts/source/xypic/xyeuat12.mf index 76f4d457d25..20f6fd1dd0b 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyeuat12.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyeuat12.mf @@ -1,4 +1,4 @@ -% $Id: xyeuat12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyeuat12.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYEUAT12: upper arrow tips for Xy-pic at 12 point "Euler style". % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this font file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xyeuler input xyatip % $Log: xyeuat12.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeubt10.mf b/Master/texmf-dist/fonts/source/xypic/xyeubt10.mf index 051f2f71ec7..507825ffbd9 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyeubt10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyeubt10.mf @@ -1,4 +1,4 @@ -% $Id: xyeubt10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyeubt10.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYEUBT10: lower arrow tips for Xy-pic at 10 point "Euler style". % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this font file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xyeuler input xybtip % $Log: xyeubt10.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeubt11.mf b/Master/texmf-dist/fonts/source/xypic/xyeubt11.mf index 8a0511ea75a..24af94c70bd 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyeubt11.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyeubt11.mf @@ -1,4 +1,4 @@ -% $Id: xyeubt11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyeubt11.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYEUBT11: lower arrow tips for Xy-pic at 11 point "Euler style". % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this font file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xyeuler input xybtip % $Log: xyeubt11.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeubt12.mf b/Master/texmf-dist/fonts/source/xypic/xyeubt12.mf index c1cca0f2155..dfe39356122 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyeubt12.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyeubt12.mf @@ -1,4 +1,4 @@ -% $Id: xyeubt12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyeubt12.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % XYEUBT12: lower arrow tips for Xy-pic at 12 point "Euler style". % Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this font file and all files derived % from it without restriction. This special exception was added with @@ -30,6 +29,9 @@ input xyeuler input xybtip % $Log: xyeubt12.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeuler.mf b/Master/texmf-dist/fonts/source/xypic/xyeuler.mf index fb4bb53c719..efad5dfd6da 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyeuler.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyeuler.mf @@ -1,4 +1,4 @@ -% $Id: xyeuler.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xyeuler.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % Parameter file for Xy-pic "Euler style" arrow tips. % Copyright (c) 1995 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this font file and all files derived % from it without restriction. This special exception was added with @@ -31,6 +30,9 @@ tipo# = 0#; define_pixels(tipo); % tip overshoot curvature = 2/3; % 1 = straight tails, 0= curved tails % % $Log: xyeuler.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyline10.mf b/Master/texmf-dist/fonts/source/xypic/xyline10.mf index a80f7ced61b..41aad6e0434 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyline10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyline10.mf @@ -1,7 +1,7 @@ -% $Id: xyline10.mf,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-tex-*- +% $Id: xyline10.mf,v 3.5 2010/06/10 18:45:50 krisrose Exp $ -*-tex-*- % % XYLINE10: line segments for XY mode at 10 point. -% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the XY-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, Inc., -% 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % CONTENTS: Line segments going either segl# down or to the right. Codes % range from 0 to 127, distributed evenly in each of the @@ -83,6 +82,12 @@ beginchar(127,segl#,segl#,0); drawsegment (w,h); endchar; bye. % % $Log: xyline10.mf,v $ +% Revision 3.5 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.4 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.3 1996/12/19 03:31:56 krisrose % Maintenance release % diff --git a/Master/texmf-dist/fonts/source/xypic/xylu.mf b/Master/texmf-dist/fonts/source/xypic/xylu.mf new file mode 100644 index 00000000000..df8dc456603 --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xylu.mf @@ -0,0 +1,44 @@ +% $Id: xylu.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xylu, for use with Lucida. +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +tipo# = 2segw#; define_pixels(tipo); % tip overshoot + +segw# = .2pt#; define_whole_blacker_pixels(segw); % segment thickness +segl# = 1/5 designsize - tipo#; define_pixels(segl); % segment length +segx# = 1/4 designsize; define_pixels(segx); % segment height + +indent = 1/4; % 1 = barbs, 0 = triangular tails + +% $Log: xylu.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% based on xycm. diff --git a/Master/texmf-dist/fonts/source/xypic/xyluat10.mf b/Master/texmf-dist/fonts/source/xypic/xyluat10.mf new file mode 100644 index 00000000000..f97f5c89a75 --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xyluat10.mf @@ -0,0 +1,42 @@ +% $Id: xyluat10.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xyluat10, for use with Lucida +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +font_identifier "XYLUAT"; font_size 10pt#; +mode_setup; + +input xylu +input xyatri + +% $Log: xyluat10.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% based on xycmat10 diff --git a/Master/texmf-dist/fonts/source/xypic/xyluat11.mf b/Master/texmf-dist/fonts/source/xypic/xyluat11.mf new file mode 100644 index 00000000000..ac898166705 --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xyluat11.mf @@ -0,0 +1,42 @@ +% $Id: xyluat11.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xyluat11, for use with Lucida +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +font_identifier "XYLUAT"; font_size 11pt#; +mode_setup; + +input xylu +input xyatri + +% $Log: xyluat11.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% based on xycmat11 diff --git a/Master/texmf-dist/fonts/source/xypic/xyluat12.mf b/Master/texmf-dist/fonts/source/xypic/xyluat12.mf new file mode 100644 index 00000000000..4008632faae --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xyluat12.mf @@ -0,0 +1,42 @@ +% $Id: xyluat12.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xyluat12, for use with Lucida +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +font_identifier "XYLUAT"; font_size 12pt#; +mode_setup; + +input xylu +input xyatri + +% $Log: xyluat12.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% based on xycmat12 diff --git a/Master/texmf-dist/fonts/source/xypic/xylubt10.mf b/Master/texmf-dist/fonts/source/xypic/xylubt10.mf new file mode 100644 index 00000000000..08d9ca4e526 --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xylubt10.mf @@ -0,0 +1,42 @@ +% $Id: xylubt10.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xylubt10, for use with Lucida. +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +font_identifier "XYLUBT"; font_size 10pt#; +mode_setup; + +input xylu +input xybtri + +% $Log: xylubt10.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% based on xycmbt10 diff --git a/Master/texmf-dist/fonts/source/xypic/xylubt11.mf b/Master/texmf-dist/fonts/source/xypic/xylubt11.mf new file mode 100644 index 00000000000..bd6bd9abec0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xylubt11.mf @@ -0,0 +1,42 @@ +% $Id: xylubt11.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xylubt11, for use with Lucida. +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +font_identifier "XYLUBT"; font_size 11pt#; +mode_setup; + +input xylu +input xybtri + +% $Log: xylubt11.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% based on xycmbt11. diff --git a/Master/texmf-dist/fonts/source/xypic/xylubt12.mf b/Master/texmf-dist/fonts/source/xypic/xylubt12.mf new file mode 100644 index 00000000000..87f70b082dd --- /dev/null +++ b/Master/texmf-dist/fonts/source/xypic/xylubt12.mf @@ -0,0 +1,42 @@ +% $Id: xylubt12.mf,v 3.3 2010/06/10 18:45:50 krisrose Exp $ +% +% xylubt12, for use with Lucida. +% Copyright (c) 2007 Jeremy Gibbons <jeremy.gibbons@comlab.ox.ac.uk> +% +% This file is part of the Xy-pic package for graphs and diagrams in TeX. +% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> +% +% The Xy-pic macro 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 macro 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 macro package; if not, see http://www.gnu.org/licenses/. +% +% As a special exception, you may use this file and all files derived +% from it without restriction. This special exception was added with +% version 3.7 of Xy-pic. + +font_identifier "XYLUBT"; font_size 12pt#; +mode_setup; + +input xylu +input xybtri + +% $Log: xylubt12.mf,v $ +% Revision 3.3 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.2 2010/04/17 14:45:48 krisrose +% Generate and extract Type1 fonts. +% +% Revision 3.1 2010/04/17 04:19:41 krisrose +% Integrated xylu tips by Jeremy Gibbons. +% +% Based on xycmbt12. diff --git a/Master/texmf-dist/fonts/source/public/xypic/xymisc10.mf b/Master/texmf-dist/fonts/source/xypic/xymisc10.mf index 96027754d8d..268e3c42a62 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xymisc10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xymisc10.mf @@ -1,7 +1,7 @@ -% $Id: xymisc10.mf,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-tex-*- +% $Id: xymisc10.mf,v 3.5 2010/06/10 18:45:50 krisrose Exp $ -*-tex-*- % % XYMISC10: miscellaneous characters for XY mode at 10 point. -% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@tug.org> % % This file is part of the XY-pic macro package. % @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, Inc., -% 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % CONTENTS: % Metaness. @@ -107,6 +106,12 @@ endfor; bye. % % $Log: xymisc10.mf,v $ +% Revision 3.5 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% +% Revision 3.4 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.3 1996/12/19 03:31:56 krisrose % Maintenance release % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyqc10.mf b/Master/texmf-dist/fonts/source/xypic/xyqc10.mf index f1dc3c79a49..ef30cdb8f98 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xyqc10.mf +++ b/Master/texmf-dist/fonts/source/xypic/xyqc10.mf @@ -1,4 +1,4 @@ -% $Id: xyqc10.mf,v 3.0 1995/07/07 20:14:21 kris Exp $ -*-tex-*- +% $Id: xyqc10.mf,v 3.1 2010/06/10 18:45:50 krisrose Exp $ -*-tex-*- % % XYQC10: quarter circles for XY mode at 10 point. % Copyright (c) 1992 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, Inc., -% 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % CONTENTS: Quarter circles in all directions: % @@ -87,6 +86,9 @@ endfor; bye. % % $Log: xyqc10.mf,v $ +% Revision 3.1 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.0 1995/07/07 20:14:21 kris % Major release w/new User's Guide! % diff --git a/Master/texmf-dist/fonts/source/public/xypic/xytech.mf b/Master/texmf-dist/fonts/source/xypic/xytech.mf index e4c6b830f7f..60e36c86a30 100644 --- a/Master/texmf-dist/fonts/source/public/xypic/xytech.mf +++ b/Master/texmf-dist/fonts/source/xypic/xytech.mf @@ -1,4 +1,4 @@ -% $Id: xytech.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +% $Id: xytech.mf,v 3.8 2010/06/10 18:45:50 krisrose Exp $ % % Parameter file for Xy-pic "technical style" arrow tips. % Copyright (c) 1991-1996 Kristoffer H. Rose <kris@diku.dk> @@ -16,8 +16,7 @@ % Public License for more details. % % You should have received a copy of the GNU General Public License along -% with this macro package; if not, write to the Free Software Foundation, -% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +% with this macro package; if not, see http://www.gnu.org/licenses/. % % As a special exception, you may use this font file and all files derived % from it without restriction. This special exception was added with @@ -31,6 +30,9 @@ tipo# = 0#; define_pixels(tipo); % tip overshoot curvature = 1/3; % 1 = straight tails, 0= curved tails % % $Log: xytech.mf,v $ +% Revision 3.8 2010/06/10 18:45:50 krisrose +% Reference to GPL by URL. +% % Revision 3.7 1999/02/16 15:12:50 krisrose % Interim release (Y&Y fonts now free). % diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyatip10.tfm Binary files differindex 6edacbe837a..83fca40ff01 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyatip10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xybsql10.tfm Binary files differindex faa6410be4f..b2c2ae59273 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xybsql10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xybtip10.tfm Binary files differindex e1e5d0d217b..83fca40ff01 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xybtip10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xycirc10.tfm Binary files differindex eedb694c6c7..7a726663c08 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xycirc10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xycmat10.tfm Binary files differindex ca753798ca6..9966a03f092 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xycmat10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xycmat11.tfm b/Master/texmf-dist/fonts/tfm/xypic/xycmat11.tfm Binary files differindex 6a3f2978c8d..b90166be193 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xycmat11.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xycmat11.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xycmat12.tfm b/Master/texmf-dist/fonts/tfm/xypic/xycmat12.tfm Binary files differindex 207a1d8d46e..0a8c1e4662e 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xycmat12.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xycmat12.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xycmbt10.tfm Binary files differindex e889836d58c..9966a03f092 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xycmbt10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xycmbt11.tfm b/Master/texmf-dist/fonts/tfm/xypic/xycmbt11.tfm Binary files differindex fcfa28decac..b90166be193 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xycmbt11.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xycmbt11.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xycmbt12.tfm b/Master/texmf-dist/fonts/tfm/xypic/xycmbt12.tfm Binary files differindex 7b994ec8cc6..0a8c1e4662e 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xycmbt12.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xycmbt12.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xydash10.tfm Binary files differindex da19907631a..00dc96d5862 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xydash10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyeuat10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyeuat10.tfm Binary files differindex e9573028d38..1f32b9a4289 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyeuat10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyeuat10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyeuat11.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyeuat11.tfm Binary files differindex 69b84e48baa..1c27c3fd7ac 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyeuat11.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyeuat11.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyeuat12.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyeuat12.tfm Binary files differindex 598f0550992..5e3cbe062c0 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyeuat12.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyeuat12.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyeubt10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyeubt10.tfm Binary files differindex d3dd1e23416..1f32b9a4289 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyeubt10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyeubt10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyeubt11.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyeubt11.tfm Binary files differindex 5a739fe3327..1c27c3fd7ac 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyeubt11.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyeubt11.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyeubt12.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyeubt12.tfm Binary files differindex 4f7da6d4a68..5e3cbe062c0 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyeubt12.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyeubt12.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyline10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyline10.tfm Binary files differindex 6363a57b048..6363a57b048 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyline10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyline10.tfm diff --git a/Master/texmf-dist/fonts/tfm/xypic/xyluat10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyluat10.tfm Binary files differnew file mode 100644 index 00000000000..93fedf9f8ed --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/xypic/xyluat10.tfm diff --git a/Master/texmf-dist/fonts/tfm/xypic/xyluat11.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyluat11.tfm Binary files differnew file mode 100644 index 00000000000..bd999ef959b --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/xypic/xyluat11.tfm diff --git a/Master/texmf-dist/fonts/tfm/xypic/xyluat12.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyluat12.tfm Binary files differnew file mode 100644 index 00000000000..102c1001f29 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/xypic/xyluat12.tfm diff --git a/Master/texmf-dist/fonts/tfm/xypic/xylubt10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xylubt10.tfm Binary files differnew file mode 100644 index 00000000000..93fedf9f8ed --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/xypic/xylubt10.tfm diff --git a/Master/texmf-dist/fonts/tfm/xypic/xylubt11.tfm b/Master/texmf-dist/fonts/tfm/xypic/xylubt11.tfm Binary files differnew file mode 100644 index 00000000000..bd999ef959b --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/xypic/xylubt11.tfm diff --git a/Master/texmf-dist/fonts/tfm/xypic/xylubt12.tfm b/Master/texmf-dist/fonts/tfm/xypic/xylubt12.tfm Binary files differnew file mode 100644 index 00000000000..102c1001f29 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/xypic/xylubt12.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xymisc10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xymisc10.tfm Binary files differindex b2d84d184fc..b2d84d184fc 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xymisc10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xymisc10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/xypic/xyqc10.tfm b/Master/texmf-dist/fonts/tfm/xypic/xyqc10.tfm Binary files differindex 43c1444fd64..43c1444fd64 100644 --- a/Master/texmf-dist/fonts/tfm/public/xypic/xyqc10.tfm +++ b/Master/texmf-dist/fonts/tfm/xypic/xyqc10.tfm diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xyatip10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xyatip10.pfb Binary files differdeleted file mode 100644 index 5989a29e994..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xyatip10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xybsql10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xybsql10.pfb Binary files differdeleted file mode 100644 index f6d8bc262fb..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xybsql10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xybtip10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xybtip10.pfb Binary files differdeleted file mode 100644 index f6f7b3ba501..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xybtip10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xycirc10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xycirc10.pfb Binary files differdeleted file mode 100644 index 026949006c3..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xycirc10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xycmat10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xycmat10.pfb Binary files differdeleted file mode 100644 index de91a36fb21..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xycmat10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xycmbt10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xycmbt10.pfb Binary files differdeleted file mode 100644 index 473f702bff6..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xycmbt10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xydash10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xydash10.pfb Binary files differdeleted file mode 100644 index d0447ad46f5..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xydash10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xyeuat10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xyeuat10.pfb Binary files differdeleted file mode 100644 index aa6420bb518..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xyeuat10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/public/xypic/xyeubt10.pfb b/Master/texmf-dist/fonts/type1/public/xypic/xyeubt10.pfb Binary files differdeleted file mode 100644 index c056f175842..00000000000 --- a/Master/texmf-dist/fonts/type1/public/xypic/xyeubt10.pfb +++ /dev/null diff --git a/Master/texmf-dist/fonts/type1/xypic/xyatip10.pfb b/Master/texmf-dist/fonts/type1/xypic/xyatip10.pfb Binary files differnew file mode 100644 index 00000000000..7958b48c7a4 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyatip10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyatip10.pfm b/Master/texmf-dist/fonts/type1/xypic/xyatip10.pfm Binary files differnew file mode 100644 index 00000000000..33af737e89b --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyatip10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xybsql10.pfb b/Master/texmf-dist/fonts/type1/xypic/xybsql10.pfb Binary files differnew file mode 100644 index 00000000000..75e6d9e7223 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xybsql10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xybsql10.pfm b/Master/texmf-dist/fonts/type1/xypic/xybsql10.pfm Binary files differnew file mode 100644 index 00000000000..0bc5fa5da28 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xybsql10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xybtip10.pfb b/Master/texmf-dist/fonts/type1/xypic/xybtip10.pfb Binary files differnew file mode 100644 index 00000000000..8c7bb8eaff9 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xybtip10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xybtip10.pfm b/Master/texmf-dist/fonts/type1/xypic/xybtip10.pfm Binary files differnew file mode 100644 index 00000000000..9169c5a30ce --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xybtip10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xycirc10.pfb b/Master/texmf-dist/fonts/type1/xypic/xycirc10.pfb Binary files differnew file mode 100644 index 00000000000..c55fc31f308 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycirc10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xycirc10.pfm b/Master/texmf-dist/fonts/type1/xypic/xycirc10.pfm Binary files differnew file mode 100644 index 00000000000..ff23884580e --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycirc10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmat10.pfb b/Master/texmf-dist/fonts/type1/xypic/xycmat10.pfb Binary files differnew file mode 100644 index 00000000000..50a47f9a003 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmat10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmat10.pfm b/Master/texmf-dist/fonts/type1/xypic/xycmat10.pfm Binary files differnew file mode 100644 index 00000000000..f69e68fc754 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmat10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmat11.pfb b/Master/texmf-dist/fonts/type1/xypic/xycmat11.pfb Binary files differnew file mode 100644 index 00000000000..ffd0fa90b11 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmat11.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmat11.pfm b/Master/texmf-dist/fonts/type1/xypic/xycmat11.pfm Binary files differnew file mode 100644 index 00000000000..b500031f377 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmat11.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmat12.pfb b/Master/texmf-dist/fonts/type1/xypic/xycmat12.pfb Binary files differnew file mode 100644 index 00000000000..6f83f12e2ed --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmat12.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmat12.pfm b/Master/texmf-dist/fonts/type1/xypic/xycmat12.pfm Binary files differnew file mode 100644 index 00000000000..8cd001b0ea2 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmat12.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmbt10.pfb b/Master/texmf-dist/fonts/type1/xypic/xycmbt10.pfb Binary files differnew file mode 100644 index 00000000000..e5d734460e2 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmbt10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmbt10.pfm b/Master/texmf-dist/fonts/type1/xypic/xycmbt10.pfm Binary files differnew file mode 100644 index 00000000000..285553a4b97 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmbt10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmbt11.pfb b/Master/texmf-dist/fonts/type1/xypic/xycmbt11.pfb Binary files differnew file mode 100644 index 00000000000..11fcc14269f --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmbt11.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmbt11.pfm b/Master/texmf-dist/fonts/type1/xypic/xycmbt11.pfm Binary files differnew file mode 100644 index 00000000000..9ad2adabf27 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmbt11.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmbt12.pfb b/Master/texmf-dist/fonts/type1/xypic/xycmbt12.pfb Binary files differnew file mode 100644 index 00000000000..c95d0136a2b --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmbt12.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xycmbt12.pfm b/Master/texmf-dist/fonts/type1/xypic/xycmbt12.pfm Binary files differnew file mode 100644 index 00000000000..4decd57e7eb --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xycmbt12.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xydash10.pfb b/Master/texmf-dist/fonts/type1/xypic/xydash10.pfb Binary files differnew file mode 100644 index 00000000000..2a93d6aa2e1 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xydash10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xydash10.pfm b/Master/texmf-dist/fonts/type1/xypic/xydash10.pfm Binary files differnew file mode 100644 index 00000000000..b56bc57c54f --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xydash10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeuat10.pfb b/Master/texmf-dist/fonts/type1/xypic/xyeuat10.pfb Binary files differnew file mode 100644 index 00000000000..e8c9c73f867 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeuat10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeuat10.pfm b/Master/texmf-dist/fonts/type1/xypic/xyeuat10.pfm Binary files differnew file mode 100644 index 00000000000..d409eab209e --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeuat10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeuat11.pfb b/Master/texmf-dist/fonts/type1/xypic/xyeuat11.pfb Binary files differnew file mode 100644 index 00000000000..0afbad7f422 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeuat11.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeuat11.pfm b/Master/texmf-dist/fonts/type1/xypic/xyeuat11.pfm Binary files differnew file mode 100644 index 00000000000..8211e462984 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeuat11.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeuat12.pfb b/Master/texmf-dist/fonts/type1/xypic/xyeuat12.pfb Binary files differnew file mode 100644 index 00000000000..62f58788aa3 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeuat12.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeuat12.pfm b/Master/texmf-dist/fonts/type1/xypic/xyeuat12.pfm Binary files differnew file mode 100644 index 00000000000..ce76b860c88 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeuat12.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeubt10.pfb b/Master/texmf-dist/fonts/type1/xypic/xyeubt10.pfb Binary files differnew file mode 100644 index 00000000000..2c3f3ab41f2 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeubt10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeubt10.pfm b/Master/texmf-dist/fonts/type1/xypic/xyeubt10.pfm Binary files differnew file mode 100644 index 00000000000..f983566e6b9 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeubt10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeubt11.pfb b/Master/texmf-dist/fonts/type1/xypic/xyeubt11.pfb Binary files differnew file mode 100644 index 00000000000..f99a4d01cb3 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeubt11.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeubt11.pfm b/Master/texmf-dist/fonts/type1/xypic/xyeubt11.pfm Binary files differnew file mode 100644 index 00000000000..26777b6d8b3 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeubt11.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeubt12.pfb b/Master/texmf-dist/fonts/type1/xypic/xyeubt12.pfb Binary files differnew file mode 100644 index 00000000000..ba80f0c7a26 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeubt12.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyeubt12.pfm b/Master/texmf-dist/fonts/type1/xypic/xyeubt12.pfm Binary files differnew file mode 100644 index 00000000000..8aa0de52f17 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyeubt12.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyluat10.pfb b/Master/texmf-dist/fonts/type1/xypic/xyluat10.pfb Binary files differnew file mode 100644 index 00000000000..d07850870a1 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyluat10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyluat10.pfm b/Master/texmf-dist/fonts/type1/xypic/xyluat10.pfm Binary files differnew file mode 100644 index 00000000000..a5818e1d688 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyluat10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyluat11.pfb b/Master/texmf-dist/fonts/type1/xypic/xyluat11.pfb Binary files differnew file mode 100644 index 00000000000..0df6f47de6e --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyluat11.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyluat11.pfm b/Master/texmf-dist/fonts/type1/xypic/xyluat11.pfm Binary files differnew file mode 100644 index 00000000000..e9c0541a6a9 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyluat11.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xyluat12.pfb b/Master/texmf-dist/fonts/type1/xypic/xyluat12.pfb Binary files differnew file mode 100644 index 00000000000..f267112ebfd --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyluat12.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xyluat12.pfm b/Master/texmf-dist/fonts/type1/xypic/xyluat12.pfm Binary files differnew file mode 100644 index 00000000000..1fa68493763 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xyluat12.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xylubt10.pfb b/Master/texmf-dist/fonts/type1/xypic/xylubt10.pfb Binary files differnew file mode 100644 index 00000000000..571f44db7c4 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xylubt10.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xylubt10.pfm b/Master/texmf-dist/fonts/type1/xypic/xylubt10.pfm Binary files differnew file mode 100644 index 00000000000..4e7528c3493 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xylubt10.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xylubt11.pfb b/Master/texmf-dist/fonts/type1/xypic/xylubt11.pfb Binary files differnew file mode 100644 index 00000000000..ce9e232e4e4 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xylubt11.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xylubt11.pfm b/Master/texmf-dist/fonts/type1/xypic/xylubt11.pfm Binary files differnew file mode 100644 index 00000000000..db8a4c4d1e2 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xylubt11.pfm diff --git a/Master/texmf-dist/fonts/type1/xypic/xylubt12.pfb b/Master/texmf-dist/fonts/type1/xypic/xylubt12.pfb Binary files differnew file mode 100644 index 00000000000..645b709b30f --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xylubt12.pfb diff --git a/Master/texmf-dist/fonts/type1/xypic/xylubt12.pfm b/Master/texmf-dist/fonts/type1/xypic/xylubt12.pfm Binary files differnew file mode 100644 index 00000000000..8a57839855d --- /dev/null +++ b/Master/texmf-dist/fonts/type1/xypic/xylubt12.pfm diff --git a/Master/texmf-dist/source/generic/xypic/CATALOG.doc b/Master/texmf-dist/source/generic/xypic/CATALOG.doc deleted file mode 100644 index 53e9d44b89b..00000000000 --- a/Master/texmf-dist/source/generic/xypic/CATALOG.doc +++ /dev/null @@ -1,54 +0,0 @@ -%% $Id: CATALOG.doc,v 3.6 1998/03/06 04:29:05 krisrose Exp $ -%% -%% Xy-pic ``CTAN CATALOG description'' generation file. -%% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. -%% -\documentstyle{article} -\input{xy} -\begin{document} - -\newwrite\Wout -\def\W#1{\immediate\write\Wout{#1}} - -\immediate\openout\Wout=CATALOG.out -\W{Name: xypic} -\W{Version: \xyversion\space <\xydate>} -\W{} -\W{Description: Xy-pic is a package for typesetting graphs and diagrams.} -\W{ It is structured as several modules, each defining a custom notation for} -\W{ a particular kind of graphical object or structure. Example objects are} -\W{ arrows, curves, frames, and colouring/rotation on drivers that support} -\W{ it; these can be organised in matrix, directed graph, path, polygon, knot,} -\W{ and 2-cell structure. Xy-pic works with most formats, including LaTeX,} -\W{ AMS-LaTeX, AMS-TeX, and plain TeX, and has been used to typeset} -\W{ complicated diagrams from many application areas including category} -\W{ theory, automata theory, algebra, neural networks, and database theory.} -\W{} -\W{Keywords: diagram, picture, graph, arrow, curve, commutative diagram.} -\W{} -\W{Author: Kristoffer H. Rose} -\W{Problems-To: Kristoffer.Rose@ens-lyon.fr} -\W{Address: LIP/ENS-Lyon; 46, Allee d'Italie; 69364 Lyon 7; FRANCE} -\W{} -\W{<URL: http://www.ens-lyon.fr/\string~krisrose/>} -\immediate\closeout\Wout - -\end{document} diff --git a/Master/texmf-dist/source/generic/xypic/COPYING b/Master/texmf-dist/source/generic/xypic/COPYING deleted file mode 100644 index a43ea2126fb..00000000000 --- a/Master/texmf-dist/source/generic/xypic/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - This program 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. - - This program 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 program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/Master/texmf-dist/source/generic/xypic/ChangeLog b/Master/texmf-dist/source/generic/xypic/ChangeLog deleted file mode 100644 index 9c017d33009..00000000000 --- a/Master/texmf-dist/source/generic/xypic/ChangeLog +++ /dev/null @@ -1,788 +0,0 @@ -1998-10-05 Kristoffer Rose <Kristoffer.Rose@ens-lyon.fr> - - * Address of FSF changed (*). MINOR.....?? - -1998-10-03 Kristoffer Rose <Kristoffer.Rose@ens-lyon.fr> - - * xyframe.doc (\useCurveFrames): Curve, not circle [fix by George - C. Necula]. MINOR. - - * xycurves.doc (\crvs@): \crv@defaultshape fixed [fix by George - C. Necula]. MINOR. - - * Makefile, xynecula.doc, xysmart.doc: New options, extracted from - mail [by George C. Necula], added. NEW. - - * xy.doc (\OBJECT@shapei): Change to implement *stylechar - correctly. Originally, *stylechar was behaving like shape - [...]. Now *stylechar is expanded immediately and is not added to - tokens, while shape[...] does both [fix by George C. Necula]. - MAJOR. - - * xy.doc (\checkZeroEdge@): Avoid expanding \Edge@c [fix by George - C. Necula]. MINOR. - -1998-03-18 Kristoffer Rose <Kristoffer.Rose@ens-lyon.fr> - - * Makefile: New creation of fixes... NEW. - - * install-tds: local variables eliminated in functions. MINOR - [Pieter Donche]. - -1998-03-06 Kristoffer Rose <Kristoffer.Rose@ens-lyon.fr> - - * Revision 3.6 released. - - * xyframe.doc: \dotcorner@ and \dashedcorner@ defined even when - curves not loaded. MINOR. - -Wed Oct 22 18:53:12 1997 Kristoffer Rose <krisrose@ens-lyon.fr> - - * xygraph.doc: Only warn user about redefining graph escapes when - this is indeed the case. MINOR. - -Mon Oct 13 12:55:36 1997 Kristoffer Rose <krisrose@ens-lyon.fr> - - * Makefile, xyps-ps.doc, xydocps.doc: Version of the dictionary is - now controlled by the Makefile. MINOR. - - * xy.doc, xyguide.man, xyrefer.man: Changed Kristoffer's address - to ENS-Lyon. MINOR. - - * xycurve.doc, xyline.doc: line thickness now works for curves - (from Ross). MINOR. - -Thu Oct 9 02:26:45 1997 Kristoffer Rose <krisrose@ens-lyon.fr> - - * Makefile (macros): LATEXINPUTDIR eliminated; PSHEADERDIR changed - to conform to TDS. Release targets updated for author's new - location @ens-lyon.fr. MINOR. - -Wed May 28 00:49:07 1997 Kristoffer H. Rose <krisrose@brics.dk> - - * Releasing version 3.5. - -Tue May 27 10:42:58 1997 Kristoffer H. Rose <krisrose@brics.dk> - - * Makefile, INSTALL: Removed HTML which can't be generated - presently. MINOR. - - * xy.doc: Fixed "missing rules bug" properly: avoid premature - expansion of \Clast@@. Wrong "missing rules" fix undone to fix - new "missing breaks" bug. MAJOR. - -Mon May 19 17:51:03 1997 Kristoffer H. Rose <krisrose@brics.dk> - - * Released version 3.4. - -Sun May 18 03:49:01 1997 Kristoffer H. Rose <krisrose@brics.dk> - - * xymovie.doc, movie.cls, xyrefer.man: New extension...added to - reference manual. MINOR. - -Wed May 14 11:29:57 1997 Kristoffer H. Rose <krisrose@brics.dk> - - * xy.doc (\xy): zero \mathsurround. MINOR. - -Sun May 4 14:53:59 1997 Kristoffer H. Rose <krisrose@brics.dk> - - * xy.doc (\preconnect): methods should not inherit temporary - invisibility (fixes missing rules problem). MINOR. - -Tue Mar 11 21:48:50 1997 Kristoffer H. Rose <krisrose@gorm.daimi.aau.dk> - - * Makefile (GFTOPK): Updated to allow using texk-7.0. MINOR: - - Rename filenames such as `xyrefer.doc.dvi' to `xyrefer.dvi'. - - Don't use (now-redundant) -v option to gftopk - -Tue Feb 11 19:17:50 1997 Ross Moore <ross@brics.dk> - - * xycurve.doc (*crvconn@): Centers \connect@ object. MINOR. - -Sun Feb 9 21:04:19 1997 Kristoffer H. Rose <krisrose@brics.dk> - - * xyline.doc (?): BUG: should set default line width dynamically... - -Thu Jan 23 22:27:06 1997 Kristoffer H. Rose <krisrose@gorm.daimi.aau.dk> - - * xycurve.doc, xyps-pro.doc, xypsdict.doc, xyidioms.doc, - xyps-ps.doc, xypspatt.doc: Revert to Ross' naming of DVI-time - hooks. MINOR. - -Mon Jan 6 22:08:25 1997 Kristoffer H Rose <krisrose@gorm.daimi.aau.dk> - - * xy.doc (\txt): Don't attempt recognising vmode. MINOR [Liam Healy]. - - * Makefile (install): Don't make install.www. MINOR [Liam Healy]. - -Thu Dec 19 05:39:27 1996 Kristoffer H. Rose <krisrose@gorm.daimi.aau.dk> - - * Release 3.3. - -Thu Dec 12 17:18:57 1996 Kristoffer H Rose <krisrose@gorm.daimi.aau.dk> - - * xy.doc (\ellipseInner@, \ellipsecentredInner@): Edge-finding - typos fixed. MINOR. - -Mon Dec 2 11:07:20 1996 Kristoffer H Rose <krisrose@brics.dk.daimi.aau.dk> - - * xygraph.doc (\newgraphescape): never use \renewcommand. MINOR. - - * xy.doc (\straightC{break,last}@@): straight connection - subsegments connect properly to non-rectangle objects. MAJOR. - * NOTE: same bug needs to be fixed for curves! - -Thu Nov 28 18:45:00 1996 Kristoffer H Rose <krisrose@gorm.daimi.aau.dk> - - * xyv2.doc (\morphism): updated to use new style <path>s. MINOR. - -Wed Nov 27 22:36:51 1996 Kristoffer H Rose <krisrose@gorm.daimi.aau.dk> - - * xy.doc (\dir): redef'd dir3{<} naively to make center line - segment work. MINOR. - -Mon Nov 25 06:08:38 1996 Kristoffer H Rose <krisrose@brics.dk.daimi.aau.dk> - - * xygraph.doc (\newgraphescape): Allow [n] for argument count. NEW! - - * xy.doc (\cmerge@): keep edge with new breaking principle. MINOR. - -Wed Nov 20 06:01:40 1996 Kristoffer H Rose <krisrose@brics.dk> - - * xymatrix.doc (\xymatrix@at): @E generalised to @M/@W/@H. MINOR. - - * xy.doc (\line@): downward @3{>} rotates \line@ wrong. BUG! - -Mon Oct 21 16:49:59 1996 Kristoffer H Rose <krisrose@gorm.daimi.aau.dk> - - * xy.doc (shapes): [r] [l] / [u] [d] behave when entry very - tall / wide [Michel Goossens]. MINOR. - -Fri Oct 11 03:58:11 1996 Kristoffer H Rose <krisrose@gorm.daimi.aau.dk> - - * xyarrow.doc (\PATHlabelalias@): save breaks properly. MINOR. - -Wed Oct 9 18:37:06 1996 Ross Moore <ross@mpce.mq.edu.au> - - * xy.doc (\solid@): fixed `missing rules' bug. MAJOR. - -Wed Oct 9 18:37:06 1996 Kristoffer Høgsbro Rose <krisrose@gorm.daimi.aau.dk> - - * xy.doc (\dottedSpread@): fixed `spurious dot' bug. MAJOR. - -Fri Sep 20 03:33:32 1996 Kristoffer Høgsbro Rose <krisrose@gorm.daimi.aau.dk> - - * xyguide.man: Several exercises added and some love poured in. - -Thu Sep 5 19:57:22 1996 Kristoffer Høgsbro Rose <krisrose@gorm.daimi.aau.dk> - - * xy.doc, xyarrow.doc, xymatrix.doc: All redefinitions of \oxy@ - now via \change@oxy@ for safety reasons. MINOR. - - * xy.doc (\solidhrule@, \solidvrule@, \straight@): added - \straighttypeset@@ hook for line typesetting primitive. MINOR. - - * xymatrix.doc: Added @M and @L spacing adjustments. MINOR. - -Thu Aug 15 00:03:46 1996 Kristoffer H Rose <krisrose@brics.dk> - - * xy.doc: dottedSpread bails out when no filling requested. HACK. - - * xycurve.doc: Avoid redefinition warning. MINOR. - - * xyguide.man: Worked through; documented that line intersection - of curves works. MINOR. - -Mon Aug 13 00:00:00 EST 1996 Ross Moore <ross@mpce.mq.edu.au> - - * xycurve.doc, xyline.doc, ?: Thorough recoding to respect - styles. MAJOR. - -Thu Aug 15 00:03:46 1996 Kristoffer H Rose <krisrose@brics.dk> - - * xy.doc: dottedSpread bails out when no filling requested. HACK. - - * xycurve.doc: Avoid redefinition warning. MINOR. - - * xyguide.man: Worked through; documented that line intersection - of curves works. MINOR. - -Mon Aug 13 00:00:00 EST 1996 Ross Moore <ross@mpce.mq.edu.au> - - * xycurve.doc, xyline.doc, ?: Thorough recoding to respect - styles. MAJOR. - -Sun Jun 30 21:12:35 1996 Kristoffer H|gsbro Rose <krisrose@gorm.daimi.aau.dk> - - * xyarrow.doc: Hide tips. MINOR. - -Tue Jun 11 01:23:46 1996 Kristoffer H|gsbro Rose <krisrose@gorm.daimi.aau.dk> - - * xyarrow.doc: use \PATHcontinue@@ correctly. MAJOR. - - * xy.doc: \checkXyStyle@ was never defined, now prints `?'. - -Fri May 24 04:27:32 1996 Kristoffer H Rose <kris@laptop (Kristoffer H Rose)> - - * xyarrow.doc (*): fixed use of new kernel connect methods! MAJOR. - -Thu May 23 20:30:53 1996 Kristoffer H Rose <kris@laptop (Kristoffer H Rose)> - - * xy.doc: SUMMARY of (functionality) KERNEL CHANGES since v3.2: - - (PREAMBLE) \xy*@ definitions made global. - - (\zz@) new almost-zero test (uses dimension register). - - (\xyinputorelse@) split into conditional (not loading if - \*loaded already defined) and unconditional (with @@). - - (\xymath@) use fontdimen22 to vertically adjust. - - (\vfromabsolute@@, \AddOp@) add 1sp ?? - - (\preconnect, ...) setup but don't do \connect. - - (\OBJECT@@, \Drop@@) default is to use \styledbox@. - - (\OBJECT@@, \object) define \pre/postXY@style@. - - (\checkZeroEdge@) uses \zz@-checker. - - (\OBJECT@shapei) fix expandafter trickery. - - (\styledbox@) new wrapper for \pre/post-styles. - - (\checkXyStyle@, \styleDrop@, \styleConnect@) removed. - - (\xynamestyle@) removed warning when not redefining. - - (\xycompileto@) attempt to recover when compiled file truncated. - - (\MakeOutlines) Allow compilation of outlines only. - - (\no@, \line@, \solid@, \tip@) don't reset i/h flags ?? - - (\line@, \pointlike@, \squiggle@, \[Tt]ip@, \cir@*) use \styledbox@. - - (\solid[vh]rule@) respect i/h flags, setup break-methods. - - (\xyoption) truncate right. - - (\xydriversselected) default to empty! - - (CONNECTIONS) recoded (too many changes to summarise)! - -Tue Jan 2 14:18:04 1996 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (\xyinputorelse@): Stop gobbling csnames like mad: use a - shaved version to input non-doc files. MINOR. - - * xy.doc (\xydef@,...): made private definitions global. MINOR. - - * xygraph.doc: do not save node ids with explicit ="...". NEW. - -Wed Dec 13 03:16:04 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (methods): Changed style principle such that the style is - always used, and such that it is reestablished. MAJOR. - -Mon Nov 20 23:06:26 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (shapes): Now [=...] is the same as [|=...]. MINOR. - -Thu Nov 16 03:12:01 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyarrow.doc (\ar): update variant more often but only when not - already set. MINOR. - From: Stefano Guerrini <guerrini@DI.Unipi.IT> - -Wed Nov 15 20:36:10 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (\straight@): added Cbreak@@ and Clast@@ methods! NEW. - -Mon Nov 13 16:14:11 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xymatrix.doc (\xymatrix@fix): Fixed @! <setup> to make row and - column spacing the same; added @![RC]0 and @![RC]=<dimen> to set - override entry size for spacing computation. MINOR, NEW.. - -Thu Oct 26 16:09:10 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (\xycompile): add \OnlyOutlines and friends. NEW. - -Wed Oct 18 03:13:45 1995 Kristoffer H Rose <kris@rose.diku.dk> - - * xyps-pro.doc (PS Prolog): eliminate obsolete \currentxydriver@ - such that conditionals are right. MINOR. - - * xyidioms.doc (\xysetup@@): avoid problems when Babel loaded with - plain TeX. MINOR. - -Tue Oct 17 21:38:03 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xymatrix.doc (\xymatrix@at): @1 <setup> adds math strut. NEW. - - * xy.doc (\xymath@): Use axis_height (fontdimen22 of textfont2) to - adjust the reference point of in-math Xy-pictures. MAJOR. - -Mon Oct 16 20:04:25 EST 1995 Ross Moore <ross@mpce.mq.edu.au> - - * xycurve.doc: improved the edge-finding capabilities. MINOR - - * xyarrow.doc: removed \cmergethecz@ from path sub-segments. MINOR - -Wed Oct 11 08:16:27 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy*.doc: \xyinputorelse@ now skips files files that have set - \FILEloaded = \empty. MINOR. - -Tue Oct 10 20:30:16 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (\xycompileto): attempt to recover from truncated - .xyc-file. MINOR. - - * xyv2.doc (\diagramcompileto): avoid competing compilation. MINOR. - (\XXtoY@, \toXY@): avoid @-names in literate code. MINOR. - From: Joerg Eich <jeich@wmpi13.math.uni-wuppertal.de> - -Mon Oct 9 20:58:13 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xymatrix.doc (entry spacing): added <setup> forms @*[shape] and - @*<addop><size> to set defaults for **... equivalents; also made - these constructions cumulative (bug: still backwards). MINOR, NEW. - -Thu Oct 5 16:44:09 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xymatrix.doc: changed row/column names to the user-accessible - \Row and \Col. MINOR. - -Tue Oct 3 16:33:41 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xygraph.doc (\MOVE@place): Lookahead properly after <move> of - the form ...!<place>. MINOR. - -Mon Oct 2 16:40:29 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (\vfromabsolute@@, \Addop@), xyframe.doc, xycurve.doc: - add new \zz@ almost-zero-test and add tiny amount to absolute - dimensions to make more robust and in particular circumvent bug in - some PostScript interpreters (!). MINOR; should also be fixed in - PS backends... - -Sat Sep 23 19:48:38 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyps-ps.doc, xyps.doc: fixed undefined \UnloadPS@@ MAJOR. - * xyframe.doc, xycurve.doc: problem with \L@ and \R@ MAJOR. - * documentation fixes; undefined references, etc. MINOR. - - * altered example diagrams, due to bug in PS interpreters. - A better fix may be possible within xyps-ps.doc. - - * Released version 3.2 on ftp.mpce.mq.edu.au - with above fixes and corrected manuals. - -Tue Sep 19 17:42:24 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * Release 3.2. - - * xyframe.doc (Circles): several instances of \L@ and \R@ should - be \L@c and \R@c... MAJOR. - From: Clemens Beckstein <beckstei@mipool.uni-jena.de> - -Fri Sep 15 95 19:03:37 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyarrow.doc (\droplabel@): labels as objects now - flawless! MAJOR. - -Wed Sep 13 18:29:25 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyarc.doc, xytpic.doc: fixed version numbers. MINOR. - - * xytile.doc: changed example code...to avoid weird Level 1 - PostScript error. MINOR. - - * xypspatt.doc: documentation now prints with GhostScript (added - hack to side-step bad Level 2 patterns). MAJOR. - -Wed Sep 13 01:54:55 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyarrow.doc: Fixed size and modifiers of labels on all - segments. MAJOR. From: Jürgen Koslowski <koslowj@iti.cs.tu-bs.de> - -Tue Sep 12 01:59:34 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyarrow.doc: added [shape]* prefix to <it>. NEW! - -Mon Sep 11 21:22:37 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xypspatt.doc, xypsdict.doc: fixed pattern frequencies and - angles. MINOR. - - * xyps.doc, xyps-ps.doc, + <driver> files: isolated font/ps - interface. MAJOR. - -Fri Sep 8 18:15:33 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xycurve.doc: fixed \resetbreaks undefined w/o arrow. MINOR. - Fixed wrong circle-frames w/o PS. MAJOR. - From: Fred T. Krogh <fkrogh@math.jpl.nasa.gov> - -Wed Sep 6 20:48:01 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xydvidrv.doc: Changed wrong \withoption to \xywithoption. MAJOR. - From: Young U. Ryu <ryoung@utdallas.edu> - -Tue Sep 5 22:38:55 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * Release 3.1! - - * xyframe.doc: added :<dimen> modifier to [F...] shapes. MINOR. - From: Marc Gemis <makke@pucky.uia.ac.be> - - * xyarrow.doc: fixed *{x} labels to use default object - style. MINOR. - -Tue Sep 5 18:49:57 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyweb.doc, xyguide.man: fixed an example. MINOR. - - * xy.doc: added method \circleProp@ for labels. MAJOR. - - * xyemtex.doc, xydvidrv.doc, xydvips.doc: - Support for em-\TeX \special commands. NEW. - -Fri Sep 1 16:11:02 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyarrow.doc: added @? <form> to swap the meaning of ^ and _ for - an arrow. NEW! - -Fri Sep 1 18:46:39 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xy.doc, xyframe.doc, xyarrow.doc: frames around arrow-labels now - positioned better...MAJOR. - -Thu Aug 31 18:46:39 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xytp-f.doc: filled frames now all work. MAJOR. - -Tue Aug 29 15:34:25 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (\OBJECT@change): - object modifier now works. MINOR. - -Tue Aug 29 20:21:59 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyframe.doc, xy.doc, xycurve.doc, xyps.doc, xytp-f.doc, xytpic.doc - implemented some curved and oval frames using splines and/or tpic. - fixed some bugs in frames. MAJOR. - -Thu Aug 24 21:59:53 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xycolor.doc, xyline.doc, xyrotate.doc, xytile.doc: removed need - for obsolete style option. MINOR. - - * xy.doc (define <shape>): xystyle.doc annihilated and its - functionality inserted with the syntax [=...] in the - kernel. MINOR. - - * xy.doc, xytile.doc, xyrotate.doc, xyline.doc, xycolor.doc, - xyps-t.doc, xyps-ps.doc, xyps-c.doc: Changed \*shape@<shape>@ to - merely \shape [<shape>] and \*shapechar@<char>@ to \shape - [<char>...]. MAJOR. - - * xy.doc (\xyadddriversupport@): <driver> support control sequence - no longer cleared upon every addition to it. MAJOR. - -Wed Aug 23 22:42:24 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xytp-f.doc, xytpic.doc: implements frames for TPIC NEW! - * xytp-f.doc: (incomplete) rectangles, not circles/ellispes. MINOR. - -Wed Aug 23 11:32:25 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyframe.doc, xyps-f.doc, xyps-pro.doc: added \frm{**} for - stroked fills. NEW! - - * xy.doc: shortened the loading of drivers and removed the initial - ``unload''. MINOR. - - * xycurve.doc: lack of invisibility, fixed. MINOR. - -Tue Aug 22 20:24:03 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xytpic.doc: all bugs fixed (!). MAJOR. - * xytpic.doc: dotted/dashed lines now work. NEW! - * xytpic.doc: implements \xycircle and \qspline. NEW! - * xyxdvi.doc: new driver. NEW! - * xy<driver>.doc: edits to reflect the TPIC support. MINOR. - * xydoc.sty: macros for driver names. MINOR. - -Tue Aug 22 01:09:46 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyguide.man, man2html.gawk: Several changes to make the .html - version of the User's Guide prettier. MINOR. - -Mon Aug 21 20:24:03 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xycurve.doc: Quadratic splines added: \qspline NEW! - * xyps-?.doc: minor edits to documentation MINOR. - * xyrefer.doc: moved the xyps-?.doc to Part IV MINOR. - * xytpic.doc: removed tracing and fixed a bug. MINOR. - -Fri Aug 18 17:13:01 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyframe.doc: fixed several bugs: `missing' frames now are found; - zero-sized frames handled properly; default `blacked' frames - placed correctly; frame <object>-modifiers placed BEFORE object, - not AFTER. MAJOR. - - * xyps-f.doc, xyps-c.doc, xyps-t.doc, xyps-r.doc, xyps-l.doc: - ability to turn PSframes, PScolor, ... on/off. MINOR. - - * xyline.doc, xy<driver>.doc: renaming of cs's for consistency. - MINOR. - - * xy.doc: fixed bug affecting ADDOP@minus. MAJOR. - -Tue Aug 15 16:38:22 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyidioms.doc, xy*.doc: xysetup@ is now xysetup@@ (in other files - also). - - * xyps-pro.doc: fixed error in PostScript for oval frames. - -Mon Aug 14 15:19:56 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xy<driver>.doc: removed the \global s, which were unnecessary. - MINOR. - - * xydvitops.doc: new driver --- untested. MINOR. - - * xyrotate.doc, xyps-r.doc: rationalised control sequence names. - MINOR. - -Fri Aug 11 18:25:31 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xy updated the Macintosh driver files. MAJOR. - - * xycmactex.doc, xyemtex.doc: dummy drivers that simply - \xyrequire{dvips} (should be independent). NEW! - -Thu Aug 10 19:36:49 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xy.doc, xydvips.doc, xytile.doc: attempted correct - driver-loading sequencing for non-delayed loading. MAJOR. - - * xyps-ps.doc: forgot to let \xyUnloadPS@@=\xyUnloadPS@. MINOR. - -Wed Aug 9 19:50:11 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - xycmtip.doc: with PS-backend, now work again. MAJOR - - * xyps-ps.doc, xyps.doc, xydvips.doc: reorganised the unloading of - PS to simplify code in the driver-files. MINOR. - - * xy.doc: reinstated \xysetup@ for single drivers. (Simply delayed - the action: \xydef@\selectdriver@single#1{\xysetup@{...}}. Now - \xyReloadDrivers happens when it should --- everything loads at - once, without all those repetitions as new extensions are added. - The remaining problem (?) is that extra requests for a new (or the - same) driver seem to generate an increasing number of calls to - \xyReloadDrivers; e.g. 1 driver ==> 1 call , 2 drivers ==> 1+2=3 - calls , 3 drivers ==> 1+2+3=6 calls , ....). MAJOR. - -Mon Aug 7 16:08:06 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xy.doc, xyrecat.doc: fixed catcode loading. MAJOR. - - * xycmtip.doc: do not work in the reference manual, with PS. MAJOR - looking at the <driver>-table --- great hacking, Kris :-) - it seems that cmtips needs a <driver>. Why ? - Could this explain its failure to load ? - Or is it the \xysetup@ problem again ? - i.e. it needs a trigger for the activation. - -Fri Aug 4 13:11:12 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xydvips.doc, xytextures.doc: hooks now end in @@, for - consistency. MINOR. - - * xyframe.doc: fixed up fills, allowing non-default - implementations. MAJOR. - - * xydvips.doc xycolor.doc: fixed colours. Problem in the - redefinition of unloading, etc. Fix: make unloading a hook - also. Drivers may redefine the hook to unload. MAJOR. - -Wed Jul 26 15:24:17 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyidioms.doc, *.doc: Defined \xyclosedown@@ to make it easy to - add important warnings to the end of the run. Renamed \xysetup@ - to \xysetup@ with global replace in all files. MINOR. - -Tue Jul 25 14:52:36 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyguide.man: Index entries inserted; still needs sexy examples - last. MINOR. - - * xyrefer.man: Inserted Preface with overview and license. MINOR. - - * xy.doc (\xyoption): Do not execute \xyoption{o} until *after* o - has been loaded (delay definition of \xy<option>loaded). MINOR. - (\newdriver): Use \xywithoption{<driver>}{...} to activate. MINOR. - -Mon Jul 24 01:12:48 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyguide.man (Sliding arrows sideways): use the now fixed @<1ex> - form for sliding. MINOR. - - * xyarrow.doc (note slide arrow): @<dimen> fixed such that it - works. MAJOR. - - * xy.doc (\endxy): explicit error for unmatched \endxy. MINOR. - - * xymatrix.doc (New coordinate formats): <place> accepted after - <hop>+. NEW! - - * xy16textures.doc (Unloading): add pseudo-extension to handle - special \shipout undefinition. MINOR. - - * xydvips.doc, xytextures.doc, xy16textures.doc, xyoztex.doc, - xy17oztex.doc: use new <driver> principle. NEW! - - * xydoc.sty: drivers treated like other options in the reference - manual. MINOR. - - * xycolor.doc, xyframe.doc, xyline.doc, xyps.doc: Added `unload' - <driver> support; removed some status messages. NEW! - - * xydocps.doc: use plain TeX. MINOR. - -Sun Jul 23 20:35:16 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (\xyeveryrequest): execute code at every invocation of - an option. NEW! - (\xyeverywithoption): execute code at every inocation of - code created with \xywithoption. NEW! - (Driver options): completely rewrite of driver option support, - incorporating concepts of xydriver.doc. NEW! - - * Makefile (KERNELSOURCES): xydriver.doc removed. MINOR. - - * xyframe.doc: \frm{!} hack incorporated into plain frames when - line extension is loaded. MINOR. - -Sat Jul 22 14:45:44 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xy16textures.doc, xy17oztex.doc, xy2cell.doc, xyarc.doc, - xyarrow.doc, xycolor.doc, xydriver.doc, xyframe.doc, xyknot.doc, - xymatrix.doc, xyoztex.doc, xyps.doc, xytextures.doc, xyv2.doc, - xyweb.doc: many documentation fixes. MINOR. - -Fri Jul 21 18:43:14 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyidioms.doc (\xysetup@): Also delay preamble declarations for - the amsppt.sty style for AMS-TeX. MINOR. - - * xydummy.doc: Counts its own usefulness :-). NEW! - -Fri Jul 21 22:23:07 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xy16textures.doc, xy17oztex.doc, xyoztex.doc, xytextures.doc: - removed redundant \xyuncatcodes. MINOR. - -Fri Jul 21 14:08:43 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.doc (\Xy-pic options): Search properly for options using all - possible file names. MINOR. - -Fri Jul 21 00:13:03 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyframe.doc: elliptical frames now work properly... MINOR - * xyps-f.doc: ...using PostScript. - still need to get them working using \xycircle, for non-PS. - - * import1.eps: changed font name: MINOR - /courier changed to /Courier, else DPS may complain. - - * xyimport.doc: made save-safe. MINOR - Modified to use xy@@s such that it is compile safe. - -Thu Jul 20 10:16:59 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * Makefile (DVIPS): Use 300 dpi and a4 paper as advertised. MINOR. - - * xymatrix.doc (\xymatrix@pretypeset): Final matrix dimension set - after \halign. - Longest last row ignored. MAJOR. - From: Marc Gemis <makke@pucky.uia.ac.be> - -Wed Jul 19 17:43:25 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyframe.doc: reformulated note on using \frm{*} on - non-rectangular objects. MINOR - -Tue Jul 18 22:26:47 EST 1995 Ross R. Moore <ross@mpce.mq.edu.au> - - * xyimport.doc: append .eps to example graphic's filename. MINOR - Added default sizes in case graphics box is empty, or has a zero - dimension, or coords are set at zero size. - - * xyrefer.man: append .eps to graphics filenames. MINOR - Some implementations of LaTeX graphics may not need it, but others do. - - * xydvips.doc: removed unnecessary catcode changes. MINOR - no longer necessary due to the fixes explained in the - following entry... - - * xyps-l.doc, xyps-c.doc, xyps-f.doc, xyps-r.doc, xyps-t.doc, - xyps-t.doc, xycolor.doc, xycrayon.doc: inserted \xyuncatcodes - after installation --- loading options in different orders could - leave the catcodes set incorrectly (using plain TeX). MAJOR. - Lesson: \xyuncatcodes must follow any installation procedure - which either reads a file or creates new cs-names; - since it may be the last thing loaded. - From: Dierdrik Wiersma. - - * xycurve.doc: documentation fixes: MINOR - Changed the `ToDo:' section for xycircle to DOCMODE2 - Fixed bad presentation in the main display and elsewhere; - --- no more Underfull or Overfull boxes !! - - * xyps-ps.doc: put \xyuncatcodes after dictionary loading. MINOR - Otherwise users can get the wrong catcodes if xypsdict.tex - is the last file to load. - - * xyarc.doc: documentation fixes. MINOR - fixed the aberrant example; other cosmetic changes. - -Mon Jul 17 17:59:26 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * Makefile: Avoid retypesetting of manual? MINOR. - - * xypic.map: Fixed PS font names (to upper-case). MINOR. - From: Michel Goossens <goossens@afsmail.cern.ch> - -Wed Jul 12 19:48:16 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xy.sty: Also apply @-active hack for `amsmath' package. MINOR. - -Tue Jul 11 12:25:54 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * xyframe.doc (Filled regions): Explained that non-rectangular - fills require backend support. MINOR. - - * xy.sty: dvips document class option again loads dvips+ps. MINOR. - - * xydoc.sty (\specialxyprovide): Use short \CompilePrefix{...}. - Bug: File names for .xyc-files of reference manual too long. MINOR. - From: Jörg Knappen <KNAPPEN@VKPMZD.kph.Uni-Mainz.DE> - - * Makefile: use ...|while read f... instead of `...` to avoid - overlong lines during administrative makes. MINOR. - -Mon Jul 10 13:27:44 1995 Kristoffer H. Rose <kris@tyr.diku.dk> - - * fix01 announced (to world since MAJOR bugs fixed). - - * xyv2.doc (\framed, \Framed, ...): Removed erroneous brace level; - furthermore made it compile-safe. - Bug: Frames disappear in compatibility mode. MAJOR. - From: Clemens Beckstein <beckstei@mipool.uni-jena.de> - From: Michael J. Healy <mjhealy@espresso.rt.cs.boeing.com> - - * xymatrix.doc: changed \row@/\col@ to \row@@/col@@. - Bug: conflict with AMS-LaTeX \row@ cs. MAJOR. - From: Enrico Gregorio <GREGORIO@dipmat.unict.it> - - * xyarrow.doc (\PATHturn@i): Split turn code into several \xy@@s. - Bug: Too long lines in xyguide-30.xyc and xyguide-38.xyc. MINOR. - From: Jörg Knappen <KNAPPEN@VKPMZD.kph.Uni-Mainz.DE> - - * xyguide.man: Set \CompilePrefix to 6-character string. - Bug: File names for .xyc-files of guide too long. MINOR. - From: Jörg Knappen <KNAPPEN@VKPMZD.kph.Uni-Mainz.DE> - - * latin1.sty: Explicitly includes plain TeX's \def\copyright... - Bug: Can't typeset \copyright properly. MINOR. - From: Antonio Possolo <antonio@espresso.rt.cs.boeing.com> - From: Robert Kiessling <Robert.Kiessling@rrze.uni-erlangen.de> diff --git a/Master/texmf-dist/source/generic/xypic/INSTALL b/Master/texmf-dist/source/generic/xypic/INSTALL deleted file mode 100644 index f91c83dc335..00000000000 --- a/Master/texmf-dist/source/generic/xypic/INSTALL +++ /dev/null @@ -1,417 +0,0 @@ --*-text-*- $Id: INSTALL,v 3.6 1998/03/06 01:28:05 krisrose Exp $ - - - ================================================ - INSTALLING THE Xy-pic DIAGRAM TYPESETTING MACROS - ================================================ - - -This file explains how you install the files in the `run' distribution of -Xy-pic. See `README' for general information. - -Contents: - --1- Copyleft --2- Overview of files and where they should be installed --3- Information for specific systems --4- Updating from version 2.6 (and earlier) --5- Bugs & comments - - ---------------------------------------------------------------------------- --1- COPYLEFT ---------------------------------------------------------------------------- - - -Note that the entire Xy-pic package is distributed with copyleft: - - Copyright (c) 1991-1998 Kristoffer H. Rose <krisrose@ens-lyon.fr> - Copyright (c) 1994-1998 Ross Moore <ross@mpce.mq.edu.au> - - 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. - -What this means is that if you install Xy-pic then you should (1) make -sure that the file `COPYING' is accessible to the users, and (2) be -prepared to provide Xy-pic (including sources) to any of your users -that request it (you may charge a fee for this if you are so -inclined). - -Note: Some option files may be copyrighted by other people but the -conditions remain the same for any file distributed as part of Xy-pic. - - ---------------------------------------------------------------------------- --2- OVERVIEW OF FILES AND WHERE THEY SHOULD BE INSTALLED ---------------------------------------------------------------------------- - - -In this section we explain in 11 steps where the different groups of -Xy-pic files in the `run' and `doc' distribution should be installed. -For each file category we indicate the location recommended by TDS, -the TeX Directory Standard (as formed by a TUG working group of that -name). - -IMPORTANT ---------- -If you have users currently using version 2.6 then make sure you read -section 4! Please also check the next section for any system specific -considerations. - -SPACE REQUIREMENTS ------------------- -Installing the Xy-pic package requires almost 1MB with the macros -macros taking up most of the space. Installing everything, including -sources, documentation in both DVI, DVIPS, and PS, form, as well as -bitmap fonts for several printers and in PostScript Type1 form, -requires more than 12MB. - - -Step 1. Eliminating Obsolete Files ----------------------------------- -The new PostScript Type1 fonts contributed by Y&Y Inc. require that -you REMOVE ALL COPIES of the following files BEFORE installing: - -Old font map files should be removed: - - xy.map - xypic.map - -TDS directory: texmf/dvips/xypic - -Also be aware that some installations, for example the TeX Live 2 -CD-ROM, insert the contents of map files in `psfonts.map' (with TDS -directory texmf/dvips/base); then you must EDIT it to remove all lines -that start with `xy'. - -Remove old PostScript Type1 font files: - - xyatip10.pfa - xybsql10.pfa - xybtip10.pfa - xycirc10.pfa - xycmat10.pfa - xycmbt10.pfa - xydash10.pfa - xyeuat10.pfa - xyeubt10.pfa - - xyatip10.pfb - xybsql10.pfb - xybtip10.pfb - xycirc10.pfb - xycmat10.pfb - xycmbt10.pfb - xydash10.pfb - xyeuat10.pfb - xyeubt10.pfb - -TDS directory: texmf/fonts/type1/public/xypic - -Remove old `xy.sty' and `xypic.sty' files that you might have stored -earlier in the TDS directory `texmf/tex/latex/misc'. - - -[FILES IN xy*run.tar.gz:] - - -Step 2. Availability & License ------------------------------- -These eight files contain general information and should be installed -in a publicly readable place: - - README generic information on Xy-pic - CATALOG version information and summary - TRAILER announcement and availability - INSTALL how to install (this file) - MANIFEST list of all files - VERSIONS the RCS version ids of all source files - COPYING GNU General Public License - -TDS directory: texmf/doc/generic/xypic - - -Step 3. Macros --------------- -Files `texinputs/*' are TeX and LaTeX macro files that must be -installed in a place which TeX and LaTeX will search (e.g., with un*x -TeX, a directory users include in the TEXINPUTS environment variable). - -The files `texinputs/*.ini' - -TDS directory: texmf/tex/generic/xypic - - -Step 4. TeX Font Metric ------------------------ -Files `texfonts/*.tfm' should be installed in a directory that TeX -will search for fonts (e.g., with un*x TeX, a directory users include -in the TEXFONTS environment variable). - -TDS directory: texmf/fonts/tfm/public/xypic - - -Step 5. METAFONT Sources ------------------------- -Files `mfinputs/*.mf' should be installed in some directory where the -METAFONT program will search for them (e.g., with un*x TeX, a -directory included in the MFINPUTS environment variable). - -NOTE: The METAFONT source files are only useful on installations where -the printer driver and previewer can utilise them to generate the -required bitmap fonts `on-line'. If this is possible on your -installation then please use it: it saves substantial amounts of space -and means that you will automatically use fonts optimised for each -printer (provided evrything is correctly set up, of course). - -TDS directory: texmf/fonts/source/public/xypic - - -Step 6. Bitmap Fonts [Optional] -------------------------------- -Files matching the patterns `pkfonts/cx<N>/*.<N>pk' and -`pkfonts/ljfour<N>/*.<N>pk', where <N> is some number, contain bitmap -font files and should be installed where DVI previewers and printer -drivers will find them (e.g., with un*x, the `xdvi' program should see -them through the XDVIFONTS environment variable). (`cx' is a 300 dpi -(dots per inch) mode and `ljfour' a 600 dpi mode.) - -NOTE: This step is optional because the bitmaps are only needed (and -only recommended) for installations that can't use the METAFONT -sources directly but do have a 300 or 600 dpi laserprinter driver that -accepts PK bitmap font files. - -TDS directory: texmf/fonts/pk/cx/public/xypic/dpi<N> - and: texmf/fonts/pk/ljfour/public/xypic<N> - - -Step 7. PostScript Type1 Fonts ------------------------------- -Files `type1/*.pfb' contain versions of the Xy-pic fonts in special -PostScript form that may be useful on some installations. They should -be installed where the applications using them look for such fonts (if -used with DVIPS then the `ps/xypic.map' file from the next group -should also be installed). - -NOTE: Some installations, notably teTeX 0.4, will PREFER using these -fonts over the METAFONT-generated equivalents (IMHO this is a bug in -the MakeTeXPK script). On those systems we recommend that you ALSO -install the PK fonts to circumvent the problem. - -IMPORTANT: Make sure that you do not have any old Xy-pic PostScript -`xy*.pfa' fonts floating around in your system - search for and remove -all files named `xy*.pfa' when you have installed the new fonts. One -common way old (and wrong) fonts is manifest is when some arrowheads -appear skewed or too thin. - -TDS directory: texmf/fonts/type1/public/xypic - - -Step 8. Adobe Font Metric Files -------------------------------- -Files `afm/*.afm' are special files for the Adobe Type Manager and -some other software. Install them if you need them. - -TDS directory (usually): texmf/fonts/afm/public/xypic - - -Step 9. PostScript Font Metric Files ------------------------------------- -Files `pfm/*.pfm' are special files for the Windows version of the -Adobe Type Manager and some other software. Install them if you need -them. - -TDS directory (usually): texmf/fonts/pfm/public/xypic - - -Step 10. PostScript Header Files --------------------------------- -Files `ps/*' contain PostScript header files. If you plan to use the -PostScript extension option then you should copy these files to a -place where your PostScript DVI driver will find them. - -NOTE: For older versions of DVIPS (at least for 5.58f) you should -replace the occurrences of `<<' with `<' in `xypic.map'. - -TDS directory (usually): texmf/dvips/xypic - - -[FILES IN xy*doc.tar.gz:] - - -Step 11. Manuals ----------------- -The typeset User's Guide is distributed as a DVI file which you should -be able to print (or preview) once you have installed the fonts (as -source or bitmaps as applicable for your system): - - doc/xyguide.dvi User's Guide, typeset using the kernel Xy-pic fonts - doc/xyguide.dvips --- using DVIPS specific `specials' - doc/xyguide.ps --- in PostScript (with 600dpi bitmap fonts) - -Similarly, the reference manual for the kernel and the distributed -options is included in the same format: - - doc/xyrefer.dvi Reference Manual, using Xy-pic fonts - doc/xyrefer.dvips --- using DVIPS specific `specials' - doc/xyrefer.ps --- in PostScript (with 600dpi bitmap fonts) - -Notice that only the .dvi documents are portable among all TeX -installations. - -TDS directory: texmf/doc/generic/xypic - - -That's all. If you want to install the Xy-pic sources (to experiment -with development, for example), you need to get the separate -distribution `xy*src.tar.gz'. - - ---------------------------------------------------------------------------- --3- INFORMATION FOR SPECIFIC SYSTEMS ---------------------------------------------------------------------------- - - -UN*X ----- -The above installation procedure (using the TDS recommended places) is -encoded in the script `support/install-tds': the command - - ./support/install-tds <texmf> - -where <texmf> is the full path name of the `texmf' directory (the root -of the TDS tree), will install all the Xy-pic runtime files (or more -precisely: it will perform steps 2-5 and 7-10 above). - -NOTE: You must MANUALLY remove obsolete files (do step 1 above)! - -If you get the source distribution as described in `TRAILER' and -change the configuration section of the provided `src/Makefile' to -reflect your local file system conventions as described in -`src/MAKE', then the command - - make TEXMF=<texmf> install - -will also do this (but with the generated files, of course). - - -VMS ---- -(Mon, 20 Mar 1995; thanks to Austin Benson <austin@shapel.ug.eds.com> -and Ralf Gaertner <gaertner@cthulhu.rhein-main.de>): - -(1) VMS tfm and pk files are in a funny file format, which means they - EITHER should be generated from the mf source on a VMS machine, OR - be converted by a conversion program such as BILF (part of the - DECUS TeX distribution and the ZOO distribution although the - latter is reported to only work on VAXen). - - FIX: Install .mf sources and pregenerate .tfm and .pk files - manually OR convert with BILF or a similar program. - -(2) At least some (OLD) versions of TeX for VMS had a `buglet' to do - with searching for input files: if you go \input <filename> on VMS - then TeX prepends the filename with a chained logical - "tex_inputs:" - equivalent to a Unix path. Unfortunately \openin - does _not_ do this - although on Unix systems \openin will search - the TEXINPUTS path just as \input does. - - FIX: Change the following line in xy.tex - -\xydef@\xyinputorelse@@#1#2{\openin\xyread@=#1 - - TO - -\xydef@\xyinputorelse@@#1#2{\openin\xyread@=tex_inputs:#1 - - -PC WITH PCTEX -------------- -On PCTeX fonts should be stored in files `C:\PIXEL\DPI<dpi>\<font>.pk' -where <dpi> and <font> are replaced by appropriate values, e.g., `600' -and `xyatip' (thanks to Alain Amiouni <alain_amiouni@msn.com>). - - -MAC WITH Textures or OzTeX --------------------------- -See the special files `INSTALL.Textures' and `INSTALL.OzTeX'. - - ---------------------------------------------------------------------------- --4- UPDATING FROM VERSION 2.6 (AND EARLIER) ---------------------------------------------------------------------------- - - -IMPORTANT: If you have installed release 3.* or 2.7-2.12 then you can -skip this section. If you have not, and use version 2.6, then READ IT! - -Xy-pic release 2.7 was almost a complete rewrite of Xy-pic; later -releases are updates to this version. If you are using version 2.6 (or -some earlier version) then note the following: - -* All the fonts have been redone AND renamed (except two that have not - changed). Thus installing version 3 will not break any DVI files - you already have that were typeset using the old fonts. - - NOTE: In fact the distribution still contains the old fonts but only - as METAFONT sources, TFM font metrics, and PK bitmaps. - -* The distribution contains new versions of the files `xypic.tex' and - `xypic.sty' that load Xy-pic in a special compatibility mode. Thus - retypesetting your documents will create DVI files using the new - fonts. If you wish to keep the old `xypic.tex' and `xypic.sty' then - you should rename them before installation; we suggest naming them - `xypic-2.tex' and `xypic-2.sty' and REMEMBER to change the line - `\input xypic' in `xypic-2.sty' to `\input xypic-2' ! - -* There are a few points where the backwards compatibility is not - perfect -- these are noted in the documentation. - - ---------------------------------------------------------------------------- --5- BUGS & COMMENTS ---------------------------------------------------------------------------- - - -We will appreciate reports on any problems you may encounter and -opinions you have on how the usefulness of Xy-pic can be improved. -Please report using either - - Electronic mail (Internet): krisrose@ens-lyon.fr [preferred] - - Paper mail: Kristoffer H. Rose - Laboratoire de l'Informatique du Parallélisme - Ecole Normale Supérieure de Lyon - 46, Allée d'Italie - F-69364 Lyon cedex 07 - FRANCE - - Fax: +33 4 7272 8080 - - W3 <URL: http://www.ens-lyon.fr/~krisrose/Xy-pic.html> - ---------------------------------------------------------------------------- - -This is the end of INSTALL. We hope you'll enjoy Xy-pic! - - -- Ross Moore and Kristoffer Rose - ---------------------------------------------------------------------------- - -Kristoffer Høgsbro Rose, Ph.D., prof.associé <Kristoffer.Rose@ENS-Lyon.FR> -Laboratoire de l'Informatique du Parallélisme équipe PLUME, bureau LR5-026 -Ecole Normale Supérieure de Lyon; 46, Allée d'Italie; F-69364 Lyon 07 cedex -phone: +33(0)4 7272 8642; fax:...8080 <http://www.ens-lyon.fr/~krisrose> - ---------------------------------------------------------------------------- diff --git a/Master/texmf-dist/source/generic/xypic/INSTALL.OzTeX b/Master/texmf-dist/source/generic/xypic/INSTALL.OzTeX deleted file mode 100644 index 23d838de562..00000000000 --- a/Master/texmf-dist/source/generic/xypic/INSTALL.OzTeX +++ /dev/null @@ -1,600 +0,0 @@ --*-text-*- $Id: INSTALL.OzTeX,v 3.4 1997/05/18 01:13:24 ross Exp $ - - ================================================ - INSTALLING THE Xy-pic DIAGRAM TYPESETTING MACROS - ON OzTeX INSTALLATIONS - ================================================ - -This file explains step by step how to install Xy-pic for use with -OzTeX by Andrew Trevorrow. Please refer to the generic `INSTALL' file -for details on the individual files. - -Contents: - - -0- Comments regarding OzTeX versions - -1- Adding Xy-pic to the TeX search paths - -2- Memory requirements - -3- OzTeX and PostScript features - -4- Bugs & comments - -5- Config files - ----------------------------------------------------------------------- - -0- COMMENTS REGARDING OzTeX VERSIONS ----------------------------------------------------------------------- - -Xy-pic works fine with versions of OzTeX, from 1.7 to 2.0 and later. -With version 2.0+ of OzTeX, it is advisable to use the OzDVIPS driver. -Similarly with versions 1.8 and 1.9, it is possible to use the DVIPS -driver, implemented by Thomas Kiffe. These WILL handle all the effects -such as colour, rotated text, scaled text, patterns, fills and others, -however the OzTeX viewer cannot show these effects---you will need a -PostScript printer or previewer such as GhostScript -(e.g. `Mac GS Viewer', by Aladdin Enterprises). - -Thus to handle special effects with OzTeX 1.8+ your TeX source should -specify \xyoption{dvips} and the `Use DVIPS' menu option should be -selected for processing the dvi-file. - -The \xyoption{oztex} command should ONLY be used with OzTeX 1.8+ when -you do not wish to use DVIPS or OzDVIPS but still want the improved -performance of the PostScript backend (see note 3 below). -Similarly \xyoption{17oztex} is provided for use with version 1.7. - - ----------------------------------------------------------------------- - -1- ADDING Xy-pic TO THE TeX SEARCH PATHS ----------------------------------------------------------------------- - -Follow these steps to make Xy-pic `visible' to OzTeX: - -INSTALLING MACROS: - -1. Create a subfolder `:TeX-inputs:Xy-pic:'. - - This folder will contain the Xy-pic input files. It is NOT - sufficient to create an alias to an existing folder which already - contains these files. - -2. Append this directory name to the line - - TeX input folder(s) = .... - - in the `:Configs:Default' file. - -3. Within the folder `:Configs:' - - EITHER create the files - - :Configs:Default+Xypic - :Configs:Big TeX+Xypic - :Configs:Big Xy-TeX - - which are included below (in section -5-). - These are modifications of Config files from OzTeX version 1.8. - Adaptations for version 2.0+ will be made sometime soon. - OR - read the memory requirement notes below (in section -2-) - and reconfigure your own config files accordingly. - -4. Within the folder `:TeX-inputs:Xy-pic:' place copies of all of - the files from `texinputs'. - -INSTALLING FONTS: - -5. Create a subfolder `:TeX-fonts:Xy-pic:' - - This folder will contain the Xy-pic font metrics files. It is NOT - sufficient to create an alias to an existing folder which already - contains these files. - -6. Within the folder `:TeX-fonts:Xy-pic:' place copies of all of - the files from `texfonts'. - -7. For each of the subdirectories in `pkfonts': `cx300', `cx329', and - `cx360' copy all files to the corresponding folder - - :PK-files:300: - :PK-files:329: - :PK-files:360: - -INSTALLING THE PostScript BACKEND: - -8. Within the folder `:PS-files:' place a copy of the file - `ps/xy34dict.pro'. This is placed here for safe-keeping only. - -If you DO NOT use DVIPS then ... - -8A. Within each directory in which you work, you will need a copy - of this file, renamed to be called `global.ps'; - - ...but if you DO use DVIPS then it is sufficient to... - -8B. Place a copy of `ps/xy34dict.pro' into the subfolder - `:Dvips:ps' where it can be found by DVIPS. - - Read section -3- below, to understand what is required here. - ----------------------------------------------------------------------- - -2- MEMORY REQUIREMENTS ----------------------------------------------------------------------- - -Xy-pic is a big package, requiring quite a lot of memory if a large -number of diagrams, or a small number of large diagrams, are to be -typeset. - -Using the `Default' configuration and `Plain' format, then Xy-pic will -load, but expect trouble unless you need it only for small diagrams. -With `LaTeX' then Xy-pic will NOT EVEN LOAD all of its standard -options. - -Thus using `Big-TeX' should be regarded as ABSOLUTELY ESSENTIAL, to do -any serious typesetting --- though read the rest of this section -before doing this. Of course this will mean rebuilding the `Plain' -and `LaTeX' formats using `INITEX' and increasing the Finder -memory-partition from the OzTeX application's `Get Info' dialog box. - -Since `Big-TeX' inherits and overrides settings from `Default' it is -not necessary to make any alterations for Xy-pic --- at least not for -use with the `Plain' format. - -However even `Big-TeX' is too small, in some of its parameters, for -`LaTeX' and Xy-pic to coexist peacefully. If you try this then the -first type of memory to run out is the `pool size': - - ! TeX capacity exceeded, sorry [pool_size=60000]. - -To fix this requires increasing the "pool_size" parameter, to say -160,000. Existing format files for Plain and LaTeX, compiled under -Big-TeX with the smaller pool size WILL STILL WORK --- there is no -need to recompile to accommodate this change. - -The config file `:Configs:Big TeX+Xypic' has these values. - - -This should be sufficient unless the document contains large -diagrams or diagrams such that many curves appear on the same or -adjacent pages, and the Xy-pic PostScript back-end is NOT in use. -Expect to encounter... - - ! TeX capacity exceeded, sorry [mem_max=200000]. - -In order to typeset such documents other memory parameters may have to -be increased also, including "mem_top", "hash_size", "hash_prime" and -"hyph_size". These latter changes mean that the format files have to -be rebuilt. - -For example, in order to typeset the Xy-pic guide, reference manual, -and technical documentation (700+ pages), using the Xy-pic fonts, an -OzTeX with a finder memory partition of 8+ MBytes -- it has the -parameter `mem_max=600000' -- was used. - -Please experiment with the memory parameters until you find settings -comfortable for your requirements. The author would be happy to -include, with future releases of Xy-pic, a listing of typical settings -which users have found to meet their needs. - ----------------------------------------------------------------------- - -3- IMPORTANT: OzTeX AND PostScript FEATURES ----------------------------------------------------------------------- - -Xy-pic provides improved graphics capabilities using PostScript code -inserted into the .dvi-file using \special commands. Indeed if the -PostScript ``backend'' is loaded, then almost all parts of diagrams -constructed with Xy-pic can be rendered using PostScript. These extra -features become available to Xy-pic, when `options' are requested, -using e.g. \xyoption{ps} , \xyoption{color} , \xyoption{line} , ... -see the User Guide and Reference manual for details. - -HOWEVER, one MUST also specify ONE of the following commands: - - \xyoption{dvips} if ``Use DVIPS'' is checked - \xyoption{oztex} with versions 1.8+ of OzTeX - \xyoption{17oztex} with version 1.7 of OzTeX -(these latter two are for when DVIPS will NOT process the .dvi file.) - -AND, if not using LaTeX, specify \XyReloadDrivers after all other -Xy-pic options have been requested. - - - -IMPORTANT: (when OzDVIPS or DVIPS is NOT being used) -If Xy-pic PostScript features are to be used with OzTeX, -then two files are used frequently, namely `:PS-files:empty.ps' and -`global.ps'. The latter must be resident in the current folder. - -Make sure that `empty.ps' indeed has empty contents, for the Xy-pic -\specials depend upon this. Also, if global.ps has non-empty contents, -then take a copy for safe-keeping, for Xy-pic will need to overwrite -it at some point, as will now be explained. - -For the Xy-pic \specials to work correctly a dictionary of PostScript -definitions must be included with every document before printing. -These definitions are typically required on every page, so OzTeX's -`global.ps' mechanism is used to achieve this. - -NOTE: It is NOT sufficient to input this dictionary as if it were -a graphics file, residing in `:PS-files'. The `global.ps' mechanism -is the ONLY way provided by OzTeX for this to work. - -Indeed Xy-pic checks that this file is available. If it does not find it, -or finds that it is empty, then the required dictionary is written -afresh and named `global.ps', so that OzTeX will recognize its purpose. - -You can force a fresh copy of the dictionary by placing the command - \dumpPSdict{global.ps} in the preamble section of any document. -If your `global.ps' already has contents that you wish to continue to -use, then copy it to somewhere safe and append its contents to the file -created as above by Xy-pic. - -The dictionary is included in the package as `ps/xy34dict.pro'. - -LIMITATIONS: (when OzDVIPS or DVIPS is NOT being used) -Not all of the PostScript effects that can be requested from the `line', -`rotate' and `color' extension options are actually implementable by OzTeX. -The limitation is due to the way in which OzTeX handles the \special -commands, collecting them all at the beginning of the PostScript file that -it creates, followed by the rules and characters from fonts. - -This means that the \special to initiate a special effect is followed -soon after by the one necessary to revert to normal; this happens -before any font characters are typeset. Correct sequencing is -maintained so that diagrams constructed purely from Xy-pic objects -such as lines, circles, curves and arrow-tips can have expanded widths -and be coloured correctly. However rotations and scalings cannot work -for other technical reasons. Any font characters in the diagram will -not be expanded or coloured; this includes Xy-pic fonts. - -This situation is unfortunate, but nothing further can be done from -within Xy-pic. To enjoy this aspect of working with Xy-pic, update -to version 1.8 or later and use DVIPS or OzDVIPS. - ----------------------------------------------------------------------- - -4- BUGS & COMMENTS ----------------------------------------------------------------------- - -Bugs and questions concerning the OzTeX implementation of Xy-pic -should be directed to - - Electronic mail (Internet): ross@mpce.mq.edu.au - - Paper mail: Ross Moore - Mathematics Department - Macquarie University - North Ryde, Sydney - AUSTRALIA 2109 - - Fax: +61 2 9850 8114 - -Generic bugs should be reported to Kristoffer Rose as described in the -generic INSTALL file. - ----------------------------------------------------------------------- - -This is the end of the `INSTALL.OzTeX' description; below is a section -with the files discussed above. We hope you'll enjoy Xy-pic! - ----------------------------------------------------------------------- - -5- Config FILES. ----------------------------------------------------------------------- - -Below is the contents of each of the files discussed in point 3 of -section -1- above. Lines with only --s (dashes) are used to delimit -the files. - ----------------------------------------------------------------------- - :Configs:Default+Xypic ----------------------------------------------------------------------- -% This is the default configuration file read by OzTeX 1.8. -% Before making any changes, read the section on configuration files -% in the OzTeX User Guide. -% -config files = "Big TeX" "Big TeX+Xypic" "Big Xy-TeX" | - -- StyleWriter ImageWriter Linotronic -- | - "A5 Portrait" "A4 Landscape" "US Letter" -- | - "View at 144 dpi" "View CM using PS" -- | - "Add CM/PS Fonts" "Add Lucida Fonts" "Add MathTime Fonts" -format files = LaTeX Plain -help files = "Questions and Answers" "Handy Hints" Problems "TeX Users Group" | - "Related Software" -- "Changes to OzTeX 1.42" "Changes to OzTeX 1.5" | - "Changes to OzTeX 1.6" "Changes to OzTeX 1.7" -- "Shareware Fee" Thanks -printer res & mode = 300 laserwriter -viewing res & mode = 300 laserwriter -units = in (in/cm/mm/pc/pt/bp/px) -paper width = 210mm (A4 width; use 8.5in for US Letter) -paper height = 297mm (A4 height; use 11in for US Letter) -horizontal offset = 0mm (shift pages right if +ve, left if -ve) -vertical offset = 0mm (shift pages down if +ve, up if -ve) -show statistics = false -reverse page order = false (use true if pages are stacked face up) -conserve VM = false (only for PostScript printing) -manual feed = false (ditto) -reserved = ignored -% -% Important folders and files: -% -Help folder = :Help-files: -FMT folder = :TeX-formats: -TeX input folder(s) = :TeX-inputs:* -TFM folder(s) = :TeX-fonts:* -PK folder(s) = :PK-files: -PS folder(s) = :PS-files: :PS-files:Encodings: -Text-to-PS prolog = :PS-files:TEXTtoPS.pro -DVI-to-PS prolog = :PS-files:DVItoPS.pro -VF folder(s) = :VF-files: -global PS file = global.ps -"Save OzTeX" output = Oz.text -missing fonts file = :PK-files:missfont.log (for use by MakeTeXPK) -pool file = :TeX-formats:TeX.pool (only used by INITEX) -dummy TFM file = :TeX-fonts:CM:cmr10.tfm -dummy screen font = Geneva -% -% Previewing colours (use "white" to make something invisible): -% -paper edges = blue -\special markers = green -missing fonts = red -% -% TeX parameters (the values in brackets show the possible ranges): -% -mem_max = 60000 (mem_top..100000000) -font_max = 120 (1..256) -font_mem_size = 30000 (8..100000000) -max_strings = 5000 (1300..16382) -string_vacancies = 20000 (0..pool_size-23500) -pool_size = 60000 (string_vacancies+23500..100000000) -buf_size = 1000 (120..32760) -stack_size = 200 (1..1600) -max_in_open = 6 (1..20) -param_size = 60 (1..8190) -nest_size = 40 (1..1000) -save_size = 600 (1..4094) -trie_size = 8000 (1..32760) -trie_op_size = 500 (1..16382) -% -% If you change any of the next four parameters then you'll need -% to run INITEX and rebuild all your format files. -% Some people will probably want to increase the hash_size value, -% so here are some suitable hash_prime values: -% hash_size = 3000 4000 5000 6000 10000 20000 31000 -% hash_prime = 2551 3407 4253 5101 8501 16993 26347 -% -mem_top = 60000 (mem_min+1100..mem_max) -hash_size = 4000 (325..31000) -hash_prime = 3407 (prime about 85% of hash_size) -hyph_size = 307 (prime from 1..16382) -% -% Only change the next few parameters when carrying out TeX's TRIP test: -% -mem_min = 0 (0..mem_top-1100) -error_line = 72 (45..32760) -half_error_line = 42 (30..error_line-15) -max_print_line = 79 (60..32760) -% -% -% PostScript fonts (or more accurately, non-PK fonts): -% -== TFM Printer font Download Screen font Encoding Style -% -= ptmr0 Times-Roman Times Mac.enc -= ptmri0 Times-Italic Times Mac.enc i -= ptmb0 Times-Bold Times Mac.enc b -= ptmbi0 Times-BoldItalic Times Mac.enc bi -= ptmro0 Slanted-Times-Roman Times Mac.enc i -= ptmbo0 Slanted-Times-Bold Times Mac.enc bi -= pagk0 AvantGarde-Book "Avant Garde" Mac.enc -= pagko0 AvantGarde-BookOblique "Avant Garde" Mac.enc i -= pagd0 AvantGarde-Demi "Avant Garde" Mac.enc b -= pagdo0 AvantGarde-DemiOblique "Avant Garde" Mac.enc bi -= pbkl0 Bookman-Light Bookman Mac.enc -= pbkli0 Bookman-LightItalic Bookman Mac.enc i -= pbkd0 Bookman-Demi Bookman Mac.enc b -= pbkdi0 Bookman-DemiItalic Bookman Mac.enc bi -= pcrr0 Courier Courier Mac.enc -= pcrro0 Courier-Oblique Courier Mac.enc i -= pcrb0 Courier-Bold Courier Mac.enc b -= pcrbo0 Courier-BoldOblique Courier Mac.enc bi -= phvr0 Helvetica Helvetica Mac.enc -= phvro0 Helvetica-Oblique Helvetica Mac.enc i -= phvb0 Helvetica-Bold Helvetica Mac.enc b -= phvbo0 Helvetica-BoldOblique Helvetica Mac.enc bi -= pncr0 NewCenturySchlbk-Roman "New Century Schlbk" Mac.enc -= pncri0 NewCenturySchlbk-Italic "New Century Schlbk" Mac.enc i -= pncb0 NewCenturySchlbk-Bold "New Century Schlbk" Mac.enc b -= pncbi0 NewCenturySchlbk-BoldItalic "New Century Schlbk" Mac.enc bi -= pplr0 Palatino-Roman Palatino Mac.enc -= pplri0 Palatino-Italic Palatino Mac.enc i -= pplb0 Palatino-Bold Palatino Mac.enc b -= pplbi0 Palatino-BoldItalic Palatino Mac.enc bi -= pzcmi0 ZapfChancery-MediumItalic "Zapf Chancery" Mac.enc -% -% The next three TFMs do not require virtual fonts; note that their names -% do not end with a zero: -% -= pzdr ZapfDingbats "Zapf Dingbats" nil -= psyr Symbol Symbol nil -= psyro Slanted-Symbol Symbol nil i -% -% The following lines use "<file" to download non-resident fonts: -% -= putr0 Utopia-Regular <putr.pfa Utopia Mac.enc -= putri0 Utopia-Italic <putri.pfa Utopia Mac.enc i -= putb0 Utopia-Bold <putb.pfa Utopia Mac.enc b -= putbi0 Utopia-BoldItalic <putbi.pfa Utopia Mac.enc bi -== - -OzTeX doesn't bother reading any stuff after the final "==", so you can -put additional comments here without having to start each line with "%". - ----------------------------------------------------------------------- - :Configs:Big TeX+Xypic ----------------------------------------------------------------------- -% This config file sets most TeX parameters to very large values. -% OzTeX's preferred memory size will need to be at least 3100K. -% If you don't have enough memory then reduce the values of mem_max -% and mem_top. Each unit reduction saves 8 bytes, so if mem_max and -% mem_top are reduced by 100,000 then the required memory size drops -% to about 2300K. -% -% If you decide to change other parameters then you'll need to adjust -% OzTeX's memory size according to the total number of bytes saved or -% added. To determine this number: -% - Use "Get Info" in the Finder's File menu to see OzTeX's current -% memory size (probably 1400K unless you changed it). -% - Start OzTeX, run INITEX and hit Cmd-Dot when you get the "**" prompt. -% OzTeX shows the amount of memory allocated, so note down the number. -% - Quit OzTeX and use "Get Info" to set OzTeX's memory size as high as -% you can. -% - Start OzTeX again and select "Big TeX" (containing your changes) -% from the Config menu. -% - Run INITEX and hit Cmd-Dot. The amount of memory allocated -% should have changed; the difference should be rounded up to the -% nearest multiple of 10K or more (depending on how paranoid you are) -% and used to adjust OzTeX's ORIGINAL memory size. -% -% You'll need to run INITEX and build the big formats listed below -% before you can use TeX with this configuration file. -% The OzTeX User Guide describes how to build such format files. -% If you want to change the given list of format files, make sure -% the new names do not contain any spaces. -% -config files = ignored -format files = Big-LaTeX Big-Plain -help files = ? -printer resolution = ? -viewing resolution = ? -units = ? -paper width = ? -paper height = ? -horizontal offset = ? -vertical offset = ? -show statistics = ? -reverse page order = ? -conserve VM = ? -manual feed = ? -reserved = ? -Help folder = ? -FMT folder = ? -TeX input folder(s) = ? -TFM folder(s) = ? -PK folder(s) = ? -PS folder(s) = ? -Text-to-PS prologue = ? -DVI-to-PS prologue = ? -VF folder(s) = ? -global PS file = ? -Save OzTeX output = ? -reserved = ? -pool file = ? -dummy TFM file = ? -dummy screen font = ? -paper edges = ? -\special markers = ? -missing fonts = ? -% -% TeX parameters: -% -mem_max = 200000 (mem_top..100000000) -font_max = 256 (1..256) -font_mem_size = 60000 (8..100000000) -max_strings = 10000 (1300..16382) -string_vacancies = 30000 (0..pool_size-23500) -pool_size = 160000 (string_vacancies+23500..100000000) -buf_size = 3000 (120..32760) -stack_size = 600 (1..1600) -max_in_open = 20 (1..20) -param_size = 200 (1..8190) -nest_size = 150 (1..1000) -save_size = 2000 (1..4094) -trie_size = 16000 (1..32760) -trie_op_size = 1000 (1..16382) -mem_top = 200000 (mem_min+1100..mem_max) -hash_size = 10000 (325..31000) -hash_prime = 8501 (prime about 85% of hash_size) -hyph_size = 2551 (prime from 1..16382) -mem_min = 0 (0..mem_top-1100) -error_line = 72 (45..32760) -half_error_line = 42 (30..error_line-15) -max_print_line = 79 (60..32760) -% -% Keep the current set of PostScript fonts: -% -=! - ----------------------------------------------------------------------- - :Configs:Big Xy-TeX ----------------------------------------------------------------------- -% Sets most TeX parameters to very large values. -% The OzTeX application memory size will need to be about 5500K. -% (If you don't have enough memory then reduce the values of mem_max -% and mem_top. Each unit reduction saves 8 bytes, so if mem_max and -% mem_top are reduced by 100000 then the application memory required -% drops to about 2300K.) -% -% You'll need to run INITEX and build the format files listed below -% (with ".fmt" appended) before using TeX with this configuration file. -% Note that format file names must not contain any spaces. -% -config files = ignored -format files = Big-Xy-Plain Bigger-LaTeX Big-Xy-LaTeX -help files = ? -printer resolution = ? -viewing resolution = ? -units = ? -paper width = ? -paper height = ? -horizontal offset = ? -vertical offset = ? -show statistics = ? -reverse page order = ? -conserve VM = ? -manual feed = ? -reserved = ? -Help folder = ? -FMT folder = ? -TeX input folder(s) = ? -TFM folder(s) = ? -PK folder(s) = ? -PS folder(s) = ? -Text-to-PS prologue = ? -DVI-to-PS prologue = ? -VF folder(s) = ? -global PS file = ? -Save OzTeX output = ? -reserved = ? -pool file = ? -dummy TFM file = ? -dummy screen font = ? -paper edges = ? -\special markers = ? -missing fonts = ? -% -% TeX parameters: -% -mem_max = 600000 (mem_top..100000000) -font_max = 255 (1..255) -font_mem_size = 60000 (8..100000000) -max_strings = 10000 (1300..16382) -string_vacancies = 30000 (0..pool_size-23500) -pool_size = 160000 (string_vacancies+23500..100000000) -buf_size = 3000 (120..32760) -stack_size = 1600 (1..1600) -max_in_open = 20 (1..20) -param_size = 200 (1..8190) -nest_size = 150 (1..1000) -save_size = 2000 (1..4094) -trie_size = 16000 (1..32760) -trie_op_size = 1000 (1..16382) -mem_top = 600000 (mem_min+1100..mem_max) -hash_size = 10000 (325..31000) -hash_prime = 8501 (prime about 85% of hash_size) -hyph_size = 2551 (prime from 1..16382) -mem_min = 0 (0..mem_top-1100) -error_line = 72 (45..32760) -half_error_line = 42 (30..error_line-15) -max_print_line = 79 (60..32760) -% -% Keep current PostScript fonts: -% -=! - ----------------------------------------------------------------------- diff --git a/Master/texmf-dist/source/generic/xypic/INSTALL.Textures b/Master/texmf-dist/source/generic/xypic/INSTALL.Textures deleted file mode 100644 index 132fad86189..00000000000 --- a/Master/texmf-dist/source/generic/xypic/INSTALL.Textures +++ /dev/null @@ -1,393 +0,0 @@ --*-text-*- $Id: INSTALL.Textures,v 3.4 1997/05/18 01:13:24 ross Exp $ - - =============================================================== - INSTALLING THE Xy-pic DIAGRAM TYPESETTING MACROS ON A MACINTOSH - =============================================================== - -This file assumes that you have downloaded the `xy34mac.sea.hqx' -file and have decoded this and have expanded and extracted all files -and folders from the resulting compressed archive. - -It also assumes that you have the TeX application called Textures(tm), -from Blue Sky Research, Portland, Oregon (version 1.6 or later). - -Finally it assumes that you have read the file INSTALL. - - -The main difference between Textures(tm) and other TeX implementations -is the way in which fonts are handled. Here we deal with Macintosh -font suitcases containing bitmap versions of the special fonts that -Xy-pic uses, as well as a suitcase containing the font metrics. - -For users of OzTeX a folder called `for OzTeX only' contains .pk fonts, -.tfm files and some configuration files. The file `INSTALL.OzTeX' -explains how to install these. - -For any other implementations of TeX on the Macintosh, there may be -sufficient files here to install Xy-pic. If not then obtain the full -Xy-pic distribution from one of the usual ftp sites: - ftp.mpce.mq.edu.au in the /pub/maths/TeX directory; - ftp.brics.dk in the /Staff/krisrose/TeX directory; - CTAN in the tex-archive/macros/generic/diagrams/xypic directory; - e.g. at ftp.shsu.edu, ftp.tex.ac.uk and ftp.dante.de. - -(If this is still insufficient, then the author would like to know -what other resources are required and why. -Contact him by email at the address given below.) - - -From version 2.10, the source files are NOT included with the -Macintosh Distribution, as doing this would add almost 1 MByte -to its overall size. Obtain them from the sites listed above. - - -I'll also assume that you use a 300 dots per inch laser printer -(like the Apple laserwriter or HP laserjet). - -Contents: - - -0- Simple Installation, for experienced users - -1- Copyleft - -2- Updating from version 2.6 (and earlier) or 2.7--2.12, 3.0--3.2 - -3- Overview of files and where they should be installed - -4- Manuals and Sources - -5- Memory Requirements - -6- Bugs & comments - ----------------------------------------------------------------------- - -0- SIMPLE INSTALLATION, for EXPERIENCED USERS ----------------------------------------------------------------------- - -If you have never used Xy-pic before and are experienced as a user -of Textures(tm), then the following instructions should be sufficient -to get Xy-pic installed. - -You should have extracted two folders called `for TeX inputs folder' -and `for TeX fonts folder' from the Stuffit archive. - -Simply copy the contents of these folders to the places indicated by -their names; namely the font suitcases go into the `TeX Fonts` folder, -while the `xy*.tex` source code files go into the `TeX inputs` folder. - - -If these instructions do not make sense to you, or you get any warning -messages when you try to carry out these steps, then... - - STOP immediately! - -... read the rest of this file, to learn more about Xy-pic, what all -the files contain and how they should be installed on your Macintosh. - -If you had no trouble with this installation, then... enjoy Xy-pic! -Please do us the courtesy of reading the rest of this file anyway. -In particular please respect the following Copyright message, making -sure that any copies that you may distribute are complete, so that -others can equally enjoy Xy-pic (... and so that we do not get irate -messages about missing features). - ----------------------------------------------------------------------- - -1- COPYLEFT ----------------------------------------------------------------------- - -This distribution of the Xy-pic package is distributed with copyleft: - - Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> - Copyright (c) 1994-1997 Ross Moore <ross@mpce.mq.edu.au> - - 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. - -What this means is that if you install Xy-pic then you should (1) make -sure that the file COPYING is accessible to the users, and (2) be -prepared to provide Xy-pic (including sources) to any of your users -that request it (you may charge a fee for this if you are so inclined). - ----------------------------------------------------------------------- - -2- UPDATING FROM VERSION 2.6 (AND EARLIER) OR 2.7--2.12, 3.0--3.2 ----------------------------------------------------------------------- - -Xy-pic version 2.7 was almost a complete rewrite of Xy-pic. The update -to version 2.8 fixed numerous small bugs and added PostScript \special -commands that could be used instead of the Xy-pic fonts. -In version 2.9 the PostScript functionality was extended to include -effects such as rotation and scaling of diagrams and text, variable -line thickness and colour support. There were also improvements in many -other aspects of the way Xy-pic works. - -A Macintosh version of 2.9 was never released, as some of the claimed -effects did not actually work. These bugs were fixed for version 2.10. - -Version 2.11 included the `Graph Combinator' feature which provides -a simplified interface for many common classes of diagrams. -Also some minor bugs were fixed, both in code and documentation. - -Version 2.12 is necessary to accommodate a change to AMS-LaTeX which -otherwise seriously conflicts with internal structure of Xy-pic. -A new `Polygon' feature has been added and many subtle bugs fixed. -Also much of the `curve' code has been improved, especially for -`curved arrows'. - -Also, versions 2.12+ provide for a new font for arrow-tips, in the style -of those arrowheads that appear in the Computer Modern fonts. -Fonts xycmat10 and xycmbt10 have always been included in the font -suitcases (since version 2.6) but not used due to errors in the metrics. -This has now been rectified --- this means that the font metric file -`Xy-pic metrics' MUST BE REPLACED with the latest version --- having -modification date: 20 August 1994 --- but the fonts are unchanged. - -Xy-pic version 3.0 was released in July 1995. New features included -one for typesetting `crossing strings', in particular elegant -representations of `knots', and one for `webs' or `lattices' of objects -regularly spaced. There was no separate Macintosh distribution, but the -macros would work with the earlier versions. -With version 3.0 an improved option-loading mechanism was established -for alternate dvi-drivers allowing extra effects using \special commands. - -To use such features place one of the following declarations in the -document preamble: - - \xyoption{textures} % with version 1.7 or later - \xyoption{16textures} % with version 1.6 of Textures - -If LaTeX is NOT being used then it is also necessary to specify - - \xyReloadDrivers - -after all Xy-pic options have been specified. -With LaTeX, this command occurs automatically at the \begin{document}. - -This version 3.4 contains just a few fixes found to necessary after -the extensive changes of the 3.3 release. Some PostScript effects -were broken, but now patterned tilings work again and frames are -better than ever, even for non-PostScript effects. The old v2 macros -which stopped working are now properly enabled. - -The version 3.3 was very stable for most purposes. A few bugs from -previous versions were fixed and some new features were -added. In particular `breaks' in connections, whether straight or -curved, now work correctly. There is a greater variety of arrow-tips. -Intersections between a curved connection and a straight one can -now be located, or the point of closest approach can be located. - -The previous Version 3.2, followed closely after Version 3.1, fixing -several bugs found there. Some diagrams in the documentation were -found to not print correctly on some PostScript printers due to -internal errors in the PostScript interpreter; these diagrams have -been altered slightly to avoid that problem. (A future release of -Xy-pic will attempt to sidestep such problems completely.) - -Indeed the Version 3.1 release fixes bugs in earlier releases, -improves the range of available `frames' and offers a wider range -of curved objects. -The number of different dvi-drivers has been extended, though this -has little bearing for Macintosh-users. - - - -If you already have version 2.7 (or later) installed then: - -* Copy the file: `Xy-pic metrics' , to be found in the folder called - `for TeX fonts folder', into your `TeX Fonts' folder. - -+ The file `Xy-pic fonts' contains no new fonts, so need not be updated. - -+ With version 7.1+ of the Macintosh operating system, you can place - font suitcases in the Fonts subfolder of the system folder. - However the `Xy-pic metrics' suitcase MUST be in the `TeX Fonts' folder. - -+ Extra font sizes are available in a separate archive called `xymacxf.sit', - see below for more details. These can be installed locally, if desired. - Alternatively the extra sizes may be installed on a file-server; - then place an `alias' (requires system 7.0+) to them within the `TeX Fonts' - folder --- the server will mount when Textures is launched. - - -* Copy the contents of the `for TeX inputs folder' into the - obvious place, i.e. the `TeX Inputs' folder, allowing these files to - replace the existing ones of the same name. - -+ With the system-7 operating system, you can place the files/folders - elsewhere, and place aliases to them within the `TeX Inputs' folder. - - - -If you already have version 2.6 (or some earlier version) installed then -note the following: - -* All the fonts have been redone AND renamed. Thus installing the new - version will not break any typeset files you already have that use - the old fonts. However if you intend to keep the old version on your - system then you should rename the font and metrics suitcases to - `Xy-pic fonts.old' and `Xy-pic metrics.old'. - -* The distribution contains new versions of the files `xypic.tex' and - `xypic.sty' that load Xy-pic 2.12 in a special compatibility mode. - Thus re-TeX'ing your source documents will create typeset versions - using the new fonts. If you wish to keep the old `xypic.tex' and - `xypic.sty' then you should rename them before installation. - -* There are a few points where the backwards compatibility is not - perfect -- these are noted in the documentation. - - ----------------------------------------------------------------------- - -3- OVERVIEW OF FILES AND WHERE THEY SHOULD BE INSTALLED ----------------------------------------------------------------------- - -The installation instructions of INSTALL apply except that - -MACRO FILES: are placed in the `for TeX inputs folder' and should -normally be duplicated to the `TeX Inputs' folder (after having -appropriately dealt with any previous version, as described above). - -PostScript HEADER FILES: It is not necessary to use this header file; -furthermore the reference manual describes how it can be generated if -needed from `xyps.tex'. - -Xy-pic FONTs and METRICs: the two font suitcase files, called `Xy-pic -fonts' and `Xy-pic metrics', are found in the folder called `for TeX -fonts folder'. Simply move these into the Textures(tm) `TeX Fonts' -folder (after having appropriately dealt with any previous version, as -described above). - -When you next launch the Textures(tm) application the following fonts will -then be available for use in typesetting with the Xy-pic macros. - - xydash10 straight line segments at 128 different angles - xyatip10 top half of an arrow head at 128 different angles - xybtip10 bottom half of arrow head at 128 different angles - xybsql10 small quarter turns, for hooks, turns and wavy lines - xycirc10 eighth-turns at 16 different radii, 8 per radius - - xycmat10 Computer Modern Tips --- upper barbs - xycmbt10 Computer Modern Tips --- lower barbs - xyeuat10 Euler Tips --- upper barbs - xyeubt10 Euler Tips --- lower barbs - -These fonts are each provided in four screen sizes: 100% 120% 200% 240% -and in one size for laser-printing at 300dpi: 417%. - -If more sizes are required then either: - - a) get the file `xymacxf.sit.hqx' from ftp.mpce.mq.edu.au. - These expand to give suitcases containing the above sizes plus extra - laserwriter sizes, corresponding to magsteps 0.5, 1, 2, 3, 4, 5. - (The xycirc10 is separate since these fonts occupy more space than - any of the others --- 2.2 MByte!! ) - -or... - - b) generate extra sizes using Metafont. - The appropriate xy*.mf source files are included in the sub-directory - `mfinputs'. This can be obtained from the ftp sites listed above. - - xydash10.mf kernel font sources - xyatip10.mf - xybsql10.mf - xybtip10.mf - xycirc10.mf - -With the xy*.tex and xy*.sty input files installed in the `TeX Inputs' -folder, and the font suitcases installed in the `TeX Fonts' folder, -you should be ready to use Xy-pic to typeset some diagrams. - -DOCUMENTATION: The dvi-files are provided primarily for non-Textures -users. Using the `DVI-Tool' application, they can be converted into -the usual form for documents typeset using Textures(tm). However this is -not necessary as it has been done already: the `Xy-pic User's Guide' -and `Xy-pic Reference Manual' described below. - - ----------------------------------------------------------------------- - -4- MANUALS and SOURCES ----------------------------------------------------------------------- - -The `Xy-pic User's Guide' and `Xy-pic Reference Manual' are provided -with this distribution. They are in the form of pre-typeset Textures(tm) -documents. These files are Finder-locked and should NOT be re-typeset. -(Indeed it should not be possible to typeset this file without first -removing the safe-guards which have been put in place.) - -It is a good idea to test your installation of Xy-pic by typesetting -portions from the manuals. Of course you will first have to obtain -these sources from one of the ftp sites listed above, or elsewhere. - -Alternatively you can try to typeset the complete manuals, using LaTeX, -from the documents `xyguide.man' and `xyrefer.man' in the directory `src` -where they are located along with all the input and non-standard style -files that they need. -You will need to obtain ALL the files in this directory. -(There is a file named `xy*.doc' for each macro file `xy*.tex' -placed in the `TeX Inputs' folder.) -For this to be successful your Textures application will need a -memory partition of at least 4.5 MBytes. - -The normal sequence should be followed: LaTeX, BibTeX, LaTeX, LaTeX -to get all the references and the bibliography typesetting correctly. -These manuals have been checked to work correctly with LaTeX 2.09 and -LaTeX2e. - -An alternative way to get the manuals is to download the files called -`xyguide.ps.Z' and `xyrefer.ps.Z' from one of the ftp-sites. -These files were created using the `xyps' PostScript option, so should -produce a higher quality printed output on a PostScript printer of -resolution 300dpi (due to use of bitmapped Computer Modern fonts). - - ----------------------------------------------------------------------- - -5- MEMORY REQUIREMENTS ----------------------------------------------------------------------- - -Although many efforts have been made to make Xy-pic work quickly and -efficiently, the nature of the diagrams for which it is designed are -sometimes necessarily quite large and consume a significant amount of -TeX's available memory. Do not be surprised if it takes a long time -to typeset a diagram having several rows and columns of entries. - -Usually I work with a memory partition set at 4 MBytes, on a Mac IIci -or Macintosh PowerBook. For instance, when typesetting the User's Guide, -using LaTeX-2e and Xy-pic, nearly all of this 4 MBytes is required. -The Reference Guide requires even more than this: allowing 8 MByte was -a luxury that I could afford, but I suspect that 4.5 MByte would have -been sufficient. Mind you, although shorter the Users' Guide actually -takes significantly longer to typeset than does the Reference Manual. - - ----------------------------------------------------------------------- - -6- BUGS & COMMENTS ----------------------------------------------------------------------- - -Comments or reports related to the Macintosh distribution should be -sent to Ross Moore at - - Electronic mail (Internet): ross@mpce.mq.edu.au [preferred] - - Paper mail: Ross Moore - Mathematics Department, - Macquarie University - North Ryde, NSW 2109 - AUSTRALIA - - Fax +61 2 9850 8114 attn: R.Moore - ----------------------------------------------------------------------- - -This is the end of `INSTALL.Textures'. We hope you'll enjoy Xy-pic ! - --- -Ross MOORE Internet: ross@mpce.mq.edu.au -Mathematics Dept, Macquarie University, Nth Ryde, NSW 2109, AUSTRALIA -phone: +61 2 9850 8955 fax: +61 2 9850 8114 -WWW: http://www-math.mpce.mq.edu.au/~ross/ --- diff --git a/Master/texmf-dist/source/generic/xypic/MAKE b/Master/texmf-dist/source/generic/xypic/MAKE deleted file mode 100644 index 6a2e960a936..00000000000 --- a/Master/texmf-dist/source/generic/xypic/MAKE +++ /dev/null @@ -1,259 +0,0 @@ --*-text-*- $Id: MAKE,v 3.5 1997/05/28 22:40:26 krisrose Exp $ - - ================================================ - MAKE: Xy-pic diagram typesetting package SOURCES - ================================================ - -Welcome to the source distribution of the Xy-pic macros for typesetting -diagrams! Below you will find the following sections: - - -1- License information - -2- Making the package and manual from sources - -3- Bugs & comments - -4- Distribution log - -Please see the file `README' for a summary of features `TRAILER' for how -you can obtain the newest Xy-pic, and the various `INSTALL' files if you -have already retrieved pregenerated macros and fonts. - - ----------------------------------------------------------------------- - -1- LICENSE INFORMATION ----------------------------------------------------------------------- - -The Xy-pic package is licensed under `GNU CopyLeft': - - Xy-pic: Typesetting graphs and diagrams with TeX. - Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> - - The Xy-pic macro 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 macro 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. - -(Some options may be copyright by other people but the conditions remain -the same). - -The full text of the GNU General Public License is supplied with Xy-pic -in the file `COPYING'. - - ----------------------------------------------------------------------- - -2- MAKING THE PACKAGE AND MANUAL FROM SOURCES ----------------------------------------------------------------------- - -This section describes how to make the Xy-pic package from sources on -a un*x system. Making Xy-pic requires use (and some knowledge) of -several standard un*x utilities; furthermore the typesetting og the -reference manual needs a **LARGE** TeX (see below), and full -installation requires both the plain TeX and LaTeX2e formats as well -as METAFONT (with the plain and cm bases. - -NOTE FOR VMS USERS: The procedure for making the package from sources -described below does not work on VMS, of course. You can, however, -run the enclosed `support/doc2tex.com' procedure file contributed by -R.Gaertner to create the .tex files from the .doc files. - -NOTE FOR OTHER NON-UN*X USERS: If you do not have a un*x system then -you are best adviced to get the `ready to run' package and install it -as described in `INSTALL'. - -UN*X GENERATION AND INSTALLATION STEPS: - -1. First make sure that you have a separate directory `src' which - contains all the files of the distribution (including this file). - - The file `MANIFEST' contains a list of the files. - -2. Next you should edit the `Configuration section' of `Makefile' to fit - the configuration of your system by following the directions given - there. - - When you have configured everything then just do - - make - - which should generate all the files needed to use the package. - -3. You can test the newly generated system by typesetting the User's - Guide which you probably want for reference anyway: do - - make guide - - which should produce a file `xyguide.dvi' by running LaTeX several - times and BibTeX once. - -4. If possible it is a good idea to try to preview the User's Guide (in - whatever way you do on your system) at this point. This is slightly - difficult because it uses the Xy-pic fonts which you haven't - installed yet, so the previewer should be instructed to look in the - current directory before looking in the system font directories. The - following show how to do this for the most common previewer (on un*x - systems with X windows) and might work for you: - - env XDVIFONTS=.: xdvi xyguide.dvi - -5. You can then install the package by ensuring that the install - directories in `Makefile' are setup correctly and do - - make install - - This will replace exisiting `xypic.tex' and `xypic.sty' files with - the new (compatibility mode) ones; the old ones will remain available - with an `.orig' suffix (if you want to keep the old version then read - section 2 of `INSTALL'). - -6. You can typeset the entire manual with - - make manual - - to create both files `xyguide.dvi' and `xyrefer.dvi'; they can be - installed in the TEXDOC directory with the command - - make install.manual - - NOTE: this requires a LARGE TeX system: the last typesetting (running - LaTeX on `xyrefer.man' without any driver) uses more than 600000 TeX - words, as noted above. Using Karl Berry's Web2C 7.0 this is - achieved by including the lines - -extra_mem_top = 400000 % extra high memory for chars, tokens, etc. -extra_mem_bot = 400000 % extra low memory for boxes, glue, breakpoints, etc. - - in the texmf.cnf file. - -7. You can build format files by the commands - - make xytex.fmt - make xylatex.fmt - - (the latter requires the new standard LaTeX release aka LaTeX2e). - These assume that the files `plain.tex' and `latex.ltx' are available - in the TeX search path; also you have to install the format files in - the appropriate place yourself. - -That is all. - - ----------------------------------------------------------------------- - -3- BUGS & COMMENTS ----------------------------------------------------------------------- - -I will appreciate reports on any problems you may encounter and -opinions you have on how the usefulness of Xy-pic can be improved. -Please report using either - - Electronic mail (Internet): krisrose@brics.dk [preferred] - - Paper mail: Kristoffer H. Rose - BRICS/Computer Science - University of Aarhus - Ny Munkegade, building 540 - DK-8000 Aarhus C - DENMARK - - Fax: +45 89423255 att. K.Rose / Karen Møller - -You can always get the latest news of Xy-pic from computers connected -to the Internet by opening the Xy-pic World Wide Web page: - - W3 <URL: http://www.brics.dk/~krisrose/Xy-pic.html> - - ----------------------------------------------------------------------- - -4- DISTRIBUTION LOG ----------------------------------------------------------------------- - -The following versions have been distributed publicly: - -$Log: MAKE,v $ -Revision 3.5 1997/05/28 22:40:26 krisrose -Fixed missing breaks bug. - -Revision 3.3 1996/12/19 03:31:56 krisrose -Maintenance release - -Revision 3.1 1995/09/05 20:31:32 kris -Releasing! - -Revision 3.0 1995/07/07 20:14:21 kris -Major release w/new User's Guide! - -Renamed to MAKE for version 3 source description. - -Revision 2.12 1994/10/25 11:34:25 kris -Interim release just before v3 [works with AMS-LaTeX 1.2]... - -Revision 2.11 1994/07/05 10:37:32 kris -Third 3beta release [bug fixes]. -Experimental graph feature included (for ECCT-94 presentation). - -Revision 2.10 1994/06/15 12:59:44 kris -Second 3beta release [bug fixes]. - -Revision 2.8 1994/04/11 09:31:09 kris -Second (bug fix) 3alpha release [corrected]. - -Revision 2.7 1994/03/08 02:06:01 kris -Release 3alpha. - -MAJOR REWRITE of distribution to prepare for Xy-pic 3 functionality. -Curve extension code contributed by Ross Moore <ross@mpce.mq.edu.au>; -support funding from MURG, ARC, and equipment from DEC. - -Revision 2.6 1992/06/24 01:23:34 kris -Added `hook' tips using new font xyqc10. -Added new POSitions: * and !. -Added triple lines \Ssolid, \Ddashed, \Ddotted, and companion \Ttip. -Reorganised manual. - -Revision 2.5 1992/02/24 03:30:54 kris -Fixed bugs in \Direction calculation logic... -Added (FACTOR) to \rotate to allow arbitrary rotation. -` intermediate points now accept an optional /RADIUS argument. -Added \Tip with wide tip. - -Revision 2.4 1992/01/22 02:15:10 kris -Fixed bugs [with thanks]: -\\ works with AMS-LaTeX: don't use \Let@ [Werner Struckmann/Darrel Hankerson] -No spurious arrow heads with LaTeX: \pit now undefined [Werner Struckmann] -\Solid works: sets \Density [Dave Bowen] -Short diagonal lines work...major rewrite of \connectv@ [Eric Domenjoud] - -Revision 2.3 1992/01/10 21:38:27 kris -Several bugs fixed [with thanks]: -The \ddtoX and \uutoX arrows were interchanged [Nico Verwer]. -Some diagonal lines were wrong [Eric Domenjoud]. -AMS-LaTeX users had name clash problems [Werner Struckmann]. -The installation instructions in the Makefile were buggy [Leen Torenvliet]. - -Revision 2.2 1992/01/09 04:05:40 kris -Patched to fix problem with \text and support AMS-LaTeX. - -Revision 2.1 1992/01/02 14:54:07 kris -Release version. - -Revision 1.40 1991/12/17 04:53:23 kris -Version distributed as `final draft' on Usenet. - ----------------------------------------------------------------------- - -This is the end of the source overview. I hope you will enjoy Xy-pic! - ----------------------------------------------------------------------- - -Kristoffer Høgsbro ROSE <krisrose@brics.dk> -BRICS <URL: http://www.brics.dk/~krisrose/> -Department of Computer Science B3.26, +45 89423193 (fax +45 89423255) -University of Aarhus, Ny Munkegade, build. 540, 8000 Århus C, DENMARK - ----------------------------------------------------------------------- diff --git a/Master/texmf-dist/source/generic/xypic/MANIFEST b/Master/texmf-dist/source/generic/xypic/MANIFEST deleted file mode 100644 index 626876c6c12..00000000000 --- a/Master/texmf-dist/source/generic/xypic/MANIFEST +++ /dev/null @@ -1,111 +0,0 @@ --r--r--r-- 1 krisrose krisrose 2326 Feb 25 15:13 CATALOG.doc --r--r--r-- 1 krisrose krisrose 17982 Feb 25 15:13 COPYING --r--r--r-- 1 krisrose krisrose 14686 Feb 25 15:13 INSTALL --r--r--r-- 1 krisrose krisrose 22529 Feb 25 15:13 INSTALL.OzTeX --r--r--r-- 1 krisrose krisrose 17562 Feb 25 15:13 INSTALL.Textures --r--r--r-- 1 krisrose krisrose 9402 Feb 25 15:13 MAKE --rw-r--r-- 1 krisrose krisrose 53387 Feb 25 15:08 Makefile --r--r--r-- 1 krisrose krisrose 4025 Feb 25 15:13 README --r--r--r-- 1 krisrose krisrose 4176 Feb 25 15:13 TRAILER --r--r--r-- 1 krisrose krisrose 169792 Feb 25 15:13 YandY_xy_fonts.zip --r--r--r-- 1 krisrose krisrose 2806 Feb 25 15:13 doc2tex.com --r-xr-xr-x 1 krisrose krisrose 5096 Feb 25 15:13 dvitogif89a --r--r--r-- 1 krisrose krisrose 14392 Feb 25 15:13 import1.eps --r-xr-xr-x 1 krisrose krisrose 4825 Feb 25 15:13 install-tds --r--r--r-- 1 krisrose krisrose 26875 Feb 25 15:13 kris.eps --r--r--r-- 1 krisrose krisrose 8893 Feb 25 15:13 latin1.sty --r--r--r-- 1 krisrose krisrose 10562 Feb 25 15:10 movie.cls --r--r--r-- 1 krisrose krisrose 4888 Feb 25 15:13 pnmrawtopcropwhite.c --r--r--r-- 1 krisrose krisrose 21322 Feb 25 15:13 ross.eps --r--r--r-- 1 krisrose krisrose 292869 Feb 25 15:09 xy.doc --r--r--r-- 1 krisrose krisrose 3709 Feb 25 15:10 xy.sty --r--r--r-- 1 krisrose krisrose 9574 Feb 25 15:10 xy16textures.doc --r--r--r-- 1 krisrose krisrose 10061 Feb 25 15:10 xy17oztex.doc --r--r--r-- 1 krisrose krisrose 62605 Feb 25 15:10 xy2cell.doc --r--r--r-- 1 krisrose krisrose 3008 Feb 25 15:09 xyall.doc --r--r--r-- 1 krisrose krisrose 56008 Feb 25 15:10 xyarc.doc --r--r--r-- 1 krisrose krisrose 58648 Feb 25 15:10 xyarrow.doc --r--r--r-- 1 krisrose krisrose 2434 Feb 25 15:10 xyatip.mf --r--r--r-- 1 krisrose krisrose 1801 Feb 25 15:10 xyatip10.mf --r--r--r-- 1 krisrose krisrose 2904 Feb 25 15:10 xybsql10.mf --r--r--r-- 1 krisrose krisrose 2435 Feb 25 15:10 xybtip.mf --r--r--r-- 1 krisrose krisrose 1793 Feb 25 15:10 xybtip10.mf --r--r--r-- 1 krisrose krisrose 5358 Feb 25 15:10 xycirc10.mf --r--r--r-- 1 krisrose krisrose 1682 Feb 25 15:10 xycm.mf --r--r--r-- 1 krisrose krisrose 2304 Feb 25 15:10 xycmactex.doc --r--r--r-- 1 krisrose krisrose 1850 Feb 25 15:10 xycmat10.mf --r--r--r-- 1 krisrose krisrose 1477 Feb 25 15:10 xycmat11.mf --r--r--r-- 1 krisrose krisrose 1477 Feb 25 15:10 xycmat12.mf --r--r--r-- 1 krisrose krisrose 1850 Feb 25 15:10 xycmbt10.mf --r--r--r-- 1 krisrose krisrose 1479 Feb 25 15:10 xycmbt11.mf --r--r--r-- 1 krisrose krisrose 1479 Feb 25 15:10 xycmbt12.mf --r--r--r-- 1 krisrose krisrose 2972 Feb 25 15:09 xycmtip.doc --r--r--r-- 1 krisrose krisrose 12778 Feb 25 15:09 xycolor.doc --r--r--r-- 1 krisrose krisrose 2836 Feb 25 15:09 xycrayon.doc --r--r--r-- 1 krisrose krisrose 178076 Feb 25 15:09 xycurve.doc --r--r--r-- 1 krisrose krisrose 2743 Feb 25 15:10 xyd.mf --r--r--r-- 1 krisrose krisrose 2740 Feb 25 15:10 xyd2.mf --r--r--r-- 1 krisrose krisrose 2768 Feb 25 15:10 xydash10.mf --rw-r--r-- 1 krisrose krisrose 0 Feb 25 15:09 xydoc.back --r--r--r-- 1 krisrose krisrose 21077 Feb 25 15:13 xydoc.bib --r--r--r-- 1 krisrose krisrose 43418 Feb 25 15:13 xydoc.sty --r--r--r-- 1 krisrose krisrose 1281 Feb 25 15:13 xydocps.doc --r--r--r-- 1 krisrose krisrose 3133 Feb 25 15:09 xydummy.doc --r--r--r-- 1 krisrose krisrose 3041 Feb 25 15:10 xydvidrv.doc --r--r--r-- 1 krisrose krisrose 10394 Feb 25 15:10 xydvips.doc --r--r--r-- 1 krisrose krisrose 11156 Feb 25 15:10 xydvitops.doc --r--r--r-- 1 krisrose krisrose 8253 Feb 25 15:10 xyemtex.doc --r--r--r-- 1 krisrose krisrose 1465 Feb 25 15:10 xyeuat10.mf --r--r--r-- 1 krisrose krisrose 1470 Feb 25 15:10 xyeuat11.mf --r--r--r-- 1 krisrose krisrose 1470 Feb 25 15:10 xyeuat12.mf --r--r--r-- 1 krisrose krisrose 1470 Feb 25 15:10 xyeubt10.mf --r--r--r-- 1 krisrose krisrose 1470 Feb 25 15:10 xyeubt11.mf --r--r--r-- 1 krisrose krisrose 1470 Feb 25 15:10 xyeubt12.mf --r--r--r-- 1 krisrose krisrose 1674 Feb 25 15:10 xyeuler.mf --r--r--r-- 1 krisrose krisrose 42901 Feb 25 15:09 xyframe.doc --r--r--r-- 1 krisrose krisrose 23221 Feb 25 15:10 xygraph.doc --r--r--r-- 1 krisrose krisrose 65306 Feb 25 15:13 xyguide.man --r--r--r-- 1 krisrose krisrose 9165 Feb 25 15:09 xyidioms.doc --r--r--r-- 1 krisrose krisrose 9502 Feb 25 15:09 xyimport.doc --r--r--r-- 1 krisrose krisrose 70065 Feb 25 15:10 xyknot.doc --r--r--r-- 1 krisrose krisrose 2452 Feb 25 15:10 xylatex.ini --r--r--r-- 1 krisrose krisrose 23785 Feb 25 15:09 xyline.doc --r--r--r-- 1 krisrose krisrose 3752 Feb 25 15:12 xyline10.mf --r--r--r-- 1 krisrose krisrose 3559 Feb 25 15:09 xymacpat.xyp --r--r--r-- 1 krisrose krisrose 44438 Feb 25 15:09 xymatrix.doc --r--r--r-- 1 krisrose krisrose 4622 Feb 25 15:12 xymisc10.mf --r--r--r-- 1 krisrose krisrose 5035 Feb 25 15:10 xymovie.doc --rw-r--r-- 1 krisrose krisrose 18839 Oct 12 17:38 xynecula.doc --r--r--r-- 1 krisrose krisrose 10495 Feb 25 15:10 xyoztex.doc --r--r--r-- 1 krisrose krisrose 2438 Feb 25 15:10 xypic.doc --rw-r--r-- 1 krisrose krisrose 2563 Feb 25 15:06 xypic.map --r--r--r-- 1 krisrose krisrose 857 Feb 25 15:10 xypic.sty --r--r--r-- 1 krisrose krisrose 47974 Feb 25 15:10 xypoly.doc --r--r--r-- 1 krisrose krisrose 6929 Feb 25 15:09 xyps-c.doc --r--r--r-- 1 krisrose krisrose 6703 Feb 25 15:09 xyps-col.doc --r--r--r-- 1 krisrose krisrose 8910 Feb 25 15:09 xyps-f.doc --r--r--r-- 1 krisrose krisrose 6742 Feb 25 15:09 xyps-l.doc --r--r--r-- 1 krisrose krisrose 9744 Feb 25 15:09 xyps-pro.doc --r--r--r-- 1 krisrose krisrose 26581 Feb 25 15:09 xyps-ps.doc --r--r--r-- 1 krisrose krisrose 7876 Feb 25 15:09 xyps-r.doc --r--r--r-- 1 krisrose krisrose 4732 Feb 25 15:09 xyps-s.doc --r--r--r-- 1 krisrose krisrose 6112 Feb 25 15:09 xyps-t.doc --r--r--r-- 1 krisrose krisrose 43988 Feb 25 15:09 xyps.doc --r--r--r-- 1 krisrose krisrose 13267 Feb 25 15:09 xypsdict.doc --r--r--r-- 1 krisrose krisrose 6312 Feb 25 15:09 xypspatt.doc --r--r--r-- 1 krisrose krisrose 2866 Feb 25 15:12 xyqc10.mf --r--r--r-- 1 krisrose krisrose 3046 Feb 25 15:09 xyrecat.doc --r--r--r-- 1 krisrose krisrose 15324 Feb 25 15:13 xyrefer.man --r--r--r-- 1 krisrose krisrose 19231 Feb 25 15:09 xyrotate.doc --rw-r--r-- 1 krisrose krisrose 20780 Oct 12 16:54 xysmart.doc --r--r--r-- 1 krisrose krisrose 1668 Feb 25 15:10 xytech.mf --r--r--r-- 1 krisrose krisrose 1220 Feb 25 15:10 xytest.mf --r--r--r-- 1 krisrose krisrose 1838 Feb 25 15:10 xytex.ini --r--r--r-- 1 krisrose krisrose 9614 Feb 25 15:10 xytextures.doc --r--r--r-- 1 krisrose krisrose 17252 Feb 25 15:09 xytile.doc --r--r--r-- 1 krisrose krisrose 7651 Feb 25 15:09 xytips.doc --r--r--r-- 1 krisrose krisrose 10614 Feb 25 15:09 xytp-f.doc --r--r--r-- 1 krisrose krisrose 17502 Feb 25 15:09 xytpic.doc --r--r--r-- 1 krisrose krisrose 28845 Feb 25 15:10 xyv2.doc --r--r--r-- 1 krisrose krisrose 11373 Feb 25 15:10 xyweb.doc --r--r--r-- 1 krisrose krisrose 10940 Feb 25 15:10 xyxdvi.doc diff --git a/Master/texmf-dist/source/generic/xypic/Makefile b/Master/texmf-dist/source/generic/xypic/Makefile deleted file mode 100644 index b68afabda99..00000000000 --- a/Master/texmf-dist/source/generic/xypic/Makefile +++ /dev/null @@ -1,1528 +0,0 @@ -# $Id: Makefile,v 3.7 1999/02/16 15:12:50 krisrose Exp krisrose $ -# -# Un*x Makefile for Xy-pic macros, fonts, documentation, and distribution. -# Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> -# -# This file is part of the Xy-pic macro package. -# Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> -# See the README and INSTALL files for further information. -# -# 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. - -VERSION = 3.7 -SHORTVERSION = 37 - -# CONTENTS: -# -# Configuration section: -# Directories. -# Fonts. -# Programs. -# -# Generic targets. -# Macros. -# PostScript headers. -# Fonts. -# Formats. -# Manual: User's guide and reference manual. -# Reference manual. -# TeXnical documentation. -# Distribution tree. -# Ftp'able distribution. -# WWW publicity. -# Announcements. -# Tags. -# RCS stuff. -# Development targets. -# -# Log. - - -#### CONFIGURATION SECTION ################################################## - -# Please configure as instructed below for each of the DIRECTORIES, FONTS, -# and PROGRAMS parts by editing the definitions to fit your system. - -#### DIRECTORIES. -# -# The following variables define the directories where the various parts of -# Xy-pic should be installed. -# -# You should *EITHER* set TDSROOT to the root of a TDS-compliant directory -# tree, usually named .../texmf (if you have a TDS [TeX Directory Structure] -# compliant system then that is in fact all you need to do): -# -USR = /usr/local -TDSROOT = $(USR)/share/texmf -# -# *OR* you should set each of the following variables right for you system -# (do this if your setup does not match TDS exactly): -# -TEXINPUTDIR = $(TDSROOT)/tex/generic/xypic -TEXFONTDIR = $(TDSROOT)/fonts/tfm/public/xypic -TEXDOCDIR = $(TDSROOT)/doc/generic/xypic -MFINPUTDIR = $(TDSROOT)/fonts/source/public/xypic -TYPE1DIR = $(TDSROOT)/fonts/type1/public/xypic -PFMDIR = $(TDSROOT)/fonts/pfm/public/xypic -AFMDIR = $(TDSROOT)/fonts/afm/public/xypic -PDFDIR = $(TDSROOT)/pdftex/xypic -PSHEADERDIR = $(TDSROOT)/dvips/xypic -# -# FONTDIR is the directory where bitmap fonts are stored and is special -# (If you do not plan to install bitmap fonts because they are automatically -# generated and remember to set the MAGS variable below to `.' then you may -# ignore this step.) -# -# Since the location of individual fonts sometimes depend on properties of -# the font, you can insert -# -# $${dpi} for the font resolution in `Dots Per Inch' (NOT the -# device resolution---that should be inserted directly) -# -# $${mode} for the METAFONT `mode' used to generate the font -# -# ---what these get set to depends on the next section. -# -# For example, if you set FONTDIR=/usr/lib/tex/pk$${dpi} and decide in the -# next section to generate PK fonts at 300 dpi using a generic mode -# (localfont) then you get files named /usr/lib/tex/pk300/xy*.300pk. -# -# If your installation still uses the (inefficient) principle of having all -# PK files in the same directory as the TFM files then you should just set -# FONTDIR=$(TEXFONTDIR). -# -FONTDIR = $(TDSROOT)/fonts/pk/$${mode}/public/xypic/dpi$${dpi} - -#### FONTS. -# -# The METAFONT program needs to know the `mode' of your printer in order to -# be able to generate correct fonts for it. On most installations the mode -# `localfont' is made synonymous with the mode required for the default -# printer; in that case you can just pick the `MODES = localfont' line. If -# this is not the case -- or you need fonts for several output devices---then -# you will have to consult the local METAFONT guide/guru to inquire what -# modes are used at your site. A good place to look for the modes used is in -# the MakeTeXPK script found on some sites. -# -# Set MODES to the list of printers you wish to use: -# -MODES = localfont -#MODES = cx ljfour -# -# You should also decide which TeX \magsteps you wish the font to be -# generated at. -# -# The default is . (dot) which prevents installation of any bitmaps because -# most modern installations generate them automatically. -# -MAGS = . -#MAGS = 0 -#MAGS = 0 0.5 1 2 - -#### PROGRAMS. -# -# You don't have to edit the following lines unless you have a non-standard -# un*x system or un*x TeX installation... -# -SHELL = /bin/sh -# -TEX = TEXFONTS=.:$(TEXFONTDIR):$$TEXFONTS tex -LATEX = TEXFONTS=.:$(TEXFONTDIR):$$TEXFONTS latex -PDFLATEX = TEXFONTS=.:$(TEXFONTDIR):$$TEXFONTS pdflatex -BIBTEX = BIBINPUTS=. bibtex -MAKEINDEX = makeindex -INITEX = TEXFONTS=.:$(TEXFONTDIR):$$TEXFONTS initex -# -# Set MF to a command that will run plain METAFONT on your system. -# -MF = MFINPUTS=.:$(MFINPUTDIR):$$MFINPUTS mf -# -# Set GFTOPK to the command "false" and PK to "gf" if you use GF rather than PK -# bitmap font files. There is no support for PXL-files [are they still used?]. -# (Note: the default setting of MAGS above doesn't use bitmaps at all.) -# -GFTOPK = gftopk -PK=pk -# -#GFTOPK = false -#PK=gf -# -RM = rm -fr -CP = cp -f -MV = mv -f -# -# Set the INSTALLs to cp -f if your system does not have the install command. -# -INSTALL = install -c -m 444 -INSTALLW = install -c -m 644 -INSTALLX = install -c -m 555 -#INSTALL = cp -f -#INSTALLW = cp -f -#INSTALLX = cp -f -# -# Set MKDIR to a mkdir command that creates intermediate directories. -# -MKDIR = mkdir -p -m 755 -# -# DOC2TEX <file>: output efficient .tex file from inefficient .doc <file> with -# inlined documentation [my favourite hack :-]. Removes all DOCMODE lines, -# leaving only things before the first and in DOCMODE(...DOCMODE) brackets; -# also removes all blank lines and comment lines. -# -# If it breaks your sed you can just set DOC2TEX to cat although that will -# make the installed macro files three times larger and the reading of them -# somewhat slower...so in that case you are probably better of getting the -# `run' distribution where this has already been done for you! -# -DOC2TEX = sed \ - -e '/^.DOCMODE(/b Yes' \ - -e '/^.DOCMODE/b No' \ - -e 'x' \ - -e '/%%DONTCOPY%%/b Ignore' \ - -e 'x' \ - -e 's/[ ][ ]*/ /g' \ - -e 's/{%.*$$/{%/' -e 's/}%.*$$/}%/' -e 's/ %.*$$//' \ - -e '/^ *%$$/d' -e '/^ *$$/d' -e '/^ *%[^%]/d' \ - -e 's/^%% \$$Id/%% $@ from $$Id/' \ - -e 's/REPLACEWITHVERSION/$(VERSION)/' \ - -e 's/REPLACEWITHSHORTVERSION/$(SHORTVERSION)/' \ - -e 'b End' \ - -e ': No' -e 's/.*/%%DONTCOPY%%/' -e 'x' -e 'd' \ - -e ': Yes' -e 's/.*//' -e 'x' -e 'd' \ - -e ': Ignore' -e 'x' -e 'd' \ - -e ': End' -# -# MF2TFM script: make .tfm file and all requested bitmap files from .mf -# file by executing METAFONT with $${mode} and $${dpi} as described above. -# -# NOTE: for use as implicit make rule; do not modify unless you are sure you -# need to! -# -MF2TFM = set -x; for mode in $(MODES); do \ - if [ "$(MAGS)" = "." ]; then \ - $(MF) "\\mode=$$mode; input $<";\ - $(RM) $*.*gf;\ - else \ - for mag in $(MAGS); do \ - $(MF) "\\mode=$$mode; mag=magstep($$mag); input $<"; done;\ - for f in $*.*gf; do if test -f "$$f"; then \ - if $(GFTOPK) ./$$f; then $(RM) $$f; fi; else :; fi; done;\ - fi; done - -#### END OF CONFIGURATION SECTION ########################################### - - -# GENERIC TARGETS. -# -all: macros fonts obsoletefonts -.PHONY: all install clean realclean sterile world -# -install: all install.macros install.trailer \ - install.fonts install.obsoletefonts \ - install.ps install.psfonts -# -clean: - $(RM) *.aux *.toc *.lof *.blg *.log *.idx *.ilg *.fmt \ - *.ps *.ppm *.nops *.tmp *.ans *.xyc *.xyd \ - ./#* *~ core *.BAK *JNL xytest.*gf out -# -realclean: clean - $(RM) MANIFEST VERSIONS CATALOG - $(RM) xydoc.back; touch xydoc.back - $(RM) *.bbl *.glo *.ind \ - *.tfm *.*gf *.*pk *.tex *.dvips *.dvi *.pdf *.last *.pro \ - *.gif *.epsf *.size *.pbm *.ppm \ - *.afm *.pfm *.pfb *.asc - $(RM) xyguide-html index* - $(RM) pnmrawtopcropwhite -# -sterile: realclean rcsclean - $(RM) xydoc.back make.* TAGS - $(MAKE) Makefile xydoc.sty xydoc.bib -# -world: realclean rcsclean - time $(MAKE) all ftp ftpdoc www 2>&1 |tee make.world - - -# MACROS. -# -TRAILERSOURCES = TRAILER COPYING CATALOG.doc \ - MAKE README Makefile $(INSTALLSTAR) - -INSTALLSTAR = INSTALL INSTALL.OzTeX INSTALL.Textures - -KERNELSOURCES = xy.doc xyidioms.doc xyrecat.doc - -OPTIONSOURCES = \ - xyframe.doc xycmtip.doc xytips.doc xycurve.doc \ - xyline.doc xyrotate.doc xycolor.doc xycrayon.doc xytile.doc \ - xyimport.doc xytpic.doc xytp-f.doc \ - xyps.doc xyps-ps.doc xyps-pro.doc xyps-col.doc xyps-c.doc xyps-f.doc \ - xyps-l.doc xyps-r.doc xyps-s.doc xyps-t.doc \ - xypsdict.doc xypspatt.doc xydocps.doc \ - xydummy.doc xyall.doc xymatrix.doc xyarrow.doc xygraph.doc \ - xy2cell.doc xypoly.doc xyarc.doc xyknot.doc xyweb.doc \ - xydvips.doc xytextures.doc xy16textures.doc xyoztex.doc xy17oztex.doc \ - xycmactex.doc xydvitops.doc xyemtex.doc xydvidrv.doc xyxdvi.doc \ - xymovie.doc xyv2.doc xypic.doc \ - xynecula.doc xysmart.doc - -FORMATSOURCES = xytex.ini xylatex.ini - -LATEXSTYLES = xy.sty xypic.sty movie.cls -OPTIONDATA = xymacpat.xyp - -MACROSOURCES = $(TRAILERSOURCES) $(KERNELSOURCES) $(LATEXSTYLES) \ - $(OPTIONSOURCES) $(OPTIONDATA) $(FORMATSOURCES) - -TRAILERRUN = TRAILER COPYING CATALOG README \ - $(INSTALLSTAR) VERSIONS - -KERNELRUN = xy.tex xyidioms.tex xyrecat.tex - -OPTIONRUN = \ - xyframe.tex xycmtip.tex xytips.tex xycurve.tex \ - xyline.tex xyrotate.tex xycolor.tex xycrayon.tex xytile.tex \ - xyimport.tex xytpic.tex xytp-f.tex \ - xyps.tex xyps-ps.tex xyps-pro.tex xyps-col.tex xyps-c.tex xyps-f.tex \ - xyps-l.tex xyps-r.tex xyps-s.tex xyps-t.tex \ - xypsdict.tex xypspatt.tex $(OPTIONDATA) \ - xydummy.tex xyall.tex xymatrix.tex xyarrow.tex xygraph.tex \ - xy2cell.tex xypoly.tex xyarc.tex xyknot.tex xyweb.tex \ - xydvips.tex xytextures.tex xy16textures.tex xyoztex.tex xy17oztex.tex \ - xycmactex.tex xydvitops.tex xyemtex.tex xydvidrv.tex xyxdvi.tex \ - xymovie.tex xyv2.tex xypic.tex \ - xynecula.tex xysmart.tex - -MACRORUN = $(KERNELRUN) $(OPTIONRUN) $(FORMATSOURCES) \ - $(LATEXSTYLES) -PSRUN = xy$(SHORTVERSION)dict.pro - -SUPPORT = install-tds doc2tex.com \ - dvitogif89a pnmrawtopcropwhite.c - -# Macros have .tex suffix and are generated from the .doc files. -# -.SUFFIXES: .tex .doc -.doc.tex:; $(DOC2TEX) $< > $@ -# -.PHONY: macros install.macros -# -macros: $(MACRORUN) -install.macros: $(MACRORUN) - -test -d $(TEXINPUTDIR) || $(MKDIR) $(TEXINPUTDIR) - for f in $(MACRORUN); do $(INSTALL) $$f $(TEXINPUTDIR)/$$f; done -# -# Kernel dependencies: -# -xy.tex: xy.doc -xyidioms.tex: xyidioms.doc -xyrecat.tex: xyrecat.doc -# -# Extension option dependencies: -# -xyframe.tex: xyframe.doc -xytips.tex: xytips.doc -xycmtip.tex: xycmtip.doc -xycurve.tex: xycurve.doc -xyline.tex: xyline.doc -xyrotate.tex: xyrotate.doc -xycolor.tex: xycolor.doc -xycrayon.tex: xycrayon.doc -xyimport.tex: xyimport.doc -xytile.tex: xytile.doc -# -xytpic.tex: xytpic.doc -xytp-f.tex: xytp-f.doc -# -xyemtex.tex: xyemtex.doc -# -xyps.tex: xyps.doc -xyps-ps.tex: xyps-ps.doc -xyps-pro.tex: xyps-pro.doc -xyps-col.tex: xyps-col.doc -xyps-c.tex: xyps-c.doc -xyps-f.tex: xyps-f.doc -xyps-l.tex: xyps-l.doc -xyps-r.tex: xyps-r.doc -xyps-s.tex: xyps-s.doc -xyps-t.tex: xyps-t.doc -xypsdict.tex: xypsdict.doc -xypspatt.tex: xypspatt.doc -# -# Feature option dependencies: -# -xydummy.tex: xydummy.doc -xyall.tex: xyall.doc -# -xymatrix.tex: xymatrix.doc -xyarrow.tex: xyarrow.doc -xygraph.tex: xygraph.doc -xy2cell.tex: xy2cell.doc -xypoly.tex: xypoly.doc -xyarc.tex: xyarc.doc -xyknot.tex: xyknot.doc -xyweb.tex: xyweb.doc -# -# Driver option dependencies: -# -xycmactex.tex: xycmactex.doc -xydvips.tex: xydvips.doc -xydvitops.tex: xydvitops.doc -xydvidrv.tex: xydvidrv.doc -xydocps.tex: xydocps.doc -xytextures.tex: xytextures.doc -xy16textures.tex: xy16textures.doc -xyoztex.tex: xyoztex.doc -xymovie.tex: xymovie.doc -xy17oztex.tex: xy17oztex.doc -xyxdvi.tex: xyxdvi.doc -# -# Backwards compatibility dependencies: -# -xyv2.tex: xyv2.doc -xypic.tex: xypic.doc -# -# Required documentation files -# -install.trailer: $(TRAILERRUN) - -test -d $(TEXDOCDIR) || $(MKDIR) $(TEXDOCDIR) - for f in $(TRAILERRUN); do $(INSTALL) $$f $(TEXDOCDIR)/$$f; done - - -# PostScript HEADERS: -# -.PHONY: install.ps -install.ps: $(PSRUN) - test -d $(PSHEADERDIR) || $(MKDIR) $(PSHEADERDIR) - for f in $(PSRUN); do $(INSTALL) $$f $(PSHEADERDIR)/$$f; done - - -# FONTS. -# -.PHONY: mfinputs texfonts $(PK)fonts fonts install.fonts \ - psfonts install.psfonts obsoletefonts install.obsoletefonts -# -METAFONTS = \ - xydash10.mf xybsql10.mf xyd2.mf \ - xyatip10.mf xybtip10.mf xytech.mf xyatip.mf xybtip.mf xyd.mf \ - xycirc10.mf \ - xycmat10.mf xycmbt10.mf xycmat11.mf xycmbt11.mf \ - xycmat12.mf xycmbt12.mf xycm.mf \ - xyeuat10.mf xyeubt10.mf xyeuat11.mf xyeubt11.mf \ - xyeuat12.mf xyeubt12.mf xyeuler.mf -# -TEXFONTRUN = \ - xydash10.tfm xybsql10.tfm xyatip10.tfm xybtip10.tfm xycirc10.tfm \ - xycmat10.tfm xycmbt10.tfm xycmat11.tfm xycmbt11.tfm \ - xycmat12.tfm xycmbt12.tfm \ - xyeuat10.tfm xyeubt10.tfm xyeuat11.tfm xyeubt11.tfm \ - xyeuat12.tfm xyeubt12.tfm -# -# Note: we only depend on the tfm-files, so you must remove them to -# regenerate the fonts at all desired magnifications. -# -.SUFFIXES: .mf .tfm -.mf.tfm:; $(MF2TFM) -# -mfinputs: $(METAFONTS) -# -texfonts $(PK)fonts fonts: $(METAFONTS) $(TEXFONTRUN) -install.fonts: fonts - if test -n "$(MFINPUTDIR)"; then \ - test -d $(MFINPUTDIR) || $(MKDIR) $(MFINPUTDIR); \ - for f in $(METAFONTS);do $(INSTALL) $$f $(MFINPUTDIR)/$$f;done; fi - -test -d $(TEXFONTDIR) || $(MKDIR) $(TEXFONTDIR) - for f in $(TEXFONTRUN); do $(INSTALL) $$f $(TEXFONTDIR)/$$f; done - # - [ "$(MAGS)" = "." ] || \ - for mode in $(MODES); do for mag in $(MAGS); do \ - $(RM) xytest.*gf xytest.*tfm;\ - $(MF) "\\mode=$$mode; mag=magstep($$mag); input xytest";\ - dpi="`expr xytest.*gf : 'xytest\.\([0-9]*\)gf'`";\ - for f in $(TEXFONTRUN); do \ - f="`expr $$f : '\([a-z0-9]*\)\.tfm'`.$${dpi}$(PK)" ;\ - if [ ! -f $$f ]; then echo "ERROR: FONT $$f NOT GENERATED";\ - else test -d "$(FONTDIR)" || $(MKDIR) $(FONTDIR);\ - $(INSTALL) $$f $(FONTDIR)/$$f; fi; done; done; done -# -xydash10.tfm: xydash10.mf xyd2.mf xytest.mf -xybsql10.tfm: xybsql10.mf xyd.mf xytest.mf -xycirc10.tfm: xycirc10.mf xytest.mf -xyatip10.tfm: xyatip10.mf xytech.mf xyatip.mf xyd.mf xytest.mf -xybtip10.tfm: xybtip10.mf xytech.mf xybtip.mf xyd.mf xytest.mf -xycmat10.tfm: xycmat10.mf xyatip.mf xyd.mf xytest.mf -xycmbt10.tfm: xycmbt10.mf xybtip.mf xyd.mf xytest.mf -xyeuat10.tfm: xyeuat10.mf xyatip.mf xyd.mf xytest.mf -xyeubt10.tfm: xyeubt10.mf xybtip.mf xyd.mf xytest.mf -# -# Obsolete fonts (from 2.6 and before). -# -OBSOLETEMETAFONTS = xyline10.mf xyqc10.mf xymisc10.mf -OBSOLETETEXFONTRUN = xyline10.tfm xyqc10.tfm xymisc10.tfm -# -obsoletefonts: $(OBSOLETEMETAFONTS) $(OBSOLETETEXFONTRUN) -# -install.obsoletefonts: obsoletefonts - if test -n "$(MFINPUTDIR)"; then \ - test -d $(MFINPUTDIR) || $(MKDIR) $(MFINPUTDIR); \ - for f in $(OBSOLETEMETAFONTS);do $(INSTALL) $$f $(MFINPUTDIR)/$$f;done; fi - -test -d $(TEXFONTDIR) || $(MKDIR) $(TEXFONTDIR) - for f in $(OBSOLETETEXFONTRUN); do \ - $(INSTALL) $$f $(TEXFONTDIR)/$$f; done - # - [ "$(MAGS)" = "." ] || \ - for mode in $(MODES); do for mag in $(MAGS); do \ - $(RM) xytest.*gf xytest.*tfm;\ - $(MF) "\\mode=$$mode; mag=magstep($$mag); input xytest";\ - dpi="`expr xytest.*gf : 'xytest\.\([0-9]*\)gf'`";\ - for f in $(OBSOLETETEXFONTRUN); do \ - f="`expr $$f : '\([a-z0-9]*\)\.tfm'`.$${dpi}$(PK)" ;\ - if [ ! -f $$f ]; then echo "ERROR: FONT $$f NOT GENERATED";\ - else test -d "$(FONTDIR)" || $(MKDIR) $(FONTDIR);\ - $(INSTALL) $$f $(FONTDIR)/$$f; fi; done; done; done -# -xyline10.tfm: xyline10.mf xytest.mf -xyqc10.tfm: xyqc10.mf xytest.mf -xymisc10.tfm: xymisc10.mf xytest.mf - -# PostScript fonts w/support files...from Y&Y. -# -TYPE1FONTS = \ - xyatip10.pfb xybsql10.pfb xybtip10.pfb xycirc10.pfb xydash10.pfb \ - xycmat10.pfb xycmbt10.pfb xyeuat10.pfb xyeubt10.pfb -# -PFMFONTS = \ - xyatip10.pfm xybsql10.pfm xybtip10.pfm xycirc10.pfm xydash10.pfm \ - xycmat10.pfm xycmbt10.pfm xyeuat10.pfm xyeubt10.pfm -# -AFMFONTS = \ - xyatip10.afm xybsql10.afm xybtip10.afm xycirc10.afm xydash10.afm \ - xycmat10.afm xycmbt10.afm xyeuat10.afm xyeubt10.afm -# -YANDYFONTS = $(TYPE1FONTS) $(AFMFONTS) $(PFMFONTS) -# -psfonts: $(YANDYFONTS) -# -$(YANDYFONTS): YandY_xy_fonts.zip - unzip -aoL YandY_xy_fonts.zip - touch $(YANDYFONTS) -# -install.psfonts: psfonts xypic.map - test -d $(TYPE1DIR) || $(MKDIR) $(TYPE1DIR) - test -d $(PFMDIR) || $(MKDIR) $(PFMDIR) - test -d $(AFMDIR) || $(MKDIR) $(AFMDIR) - test -d $(PDFDIR) || $(MKDIR) $(PDFDIR) - for f in $(TYPE1FONTS); do $(INSTALL) $$f $(TYPE1DIR)/$$f; done - for f in $(PFMFONTS); do $(INSTALL) $$f $(PFMDIR)/$$f; done - for f in $(AFMFONTS); do $(INSTALL) $$f $(AFMDIR)/$$f; done - test -d $(PSHEADERDIR) || $(MKDIR) $(PSHEADERDIR) - $(INSTALL) xypic.map $(PSHEADERDIR)/xypic.map -# -# All together... -# -FONTSOURCES = $(METAFONTS) $(OBSOLETEMETAFONTS) xytest.mf \ - YandY_xy_fonts.zip xypic.map - -# FORMATS: -# -# Build formats... -# -.SUFFIXES: .ini .fmt -.ini.fmt:; $(INITEX) $< -# -xytex.fmt: xytex.ini macros -xylatex.fmt: xylatex.ini macros -#xyamslatex.fmt: xyamslatex.ini macros -#xydoc.fmt: xydoc.ini macros - - -# MANUAL: USER'S GUIDE AND REFERENCE MANUAL. -# -# Note: the first generations use the DVIPS backend to run faster. -# -.PHONY: guide manual install.manual manual.ps -# -MANUALDATA = ross.eps kris.eps import1.eps -MANUALSOURCES = \ - xyguide.man xydoc.sty latin1.sty xydoc.bib xydoc.back \ - xyrefer.man $(KERNELSOURCES) $(LATEXSTYLES) $(OPTIONSOURCES) \ - $(OPTIONDATA) $(MANUALDATA) -# -MANUALRUN = xyguide.dvi xyrefer.dvi -# -.SUFFIXES: .man .dvips .dvi .pdf -.man.dvips: - $(MAKE) macros fonts - echo "\\xyoption{dvips}\xyoption{ps}" > xydoc.back - $(LATEX) $< - @-$(CP) $<.dvi $*.dvi ; $(CP) $<.aux $*.aux ; $(CP) $<.idx $*.idx - $(BIBTEX) $* - @-$(CP) $*.bbl $<.bbl - [ -f $*.idx ] && $(MAKEINDEX) $* || : - @-$(CP) $*.ind $<.ind - echo "\\xyoption{dvips}\xyoption{ps}" > xydoc.back - $(LATEX) $< - @-$(CP) $<.dvi $*.dvi ; $(CP) $<.aux $*.aux ; $(CP) $<.idx $*.idx - [ -f $*.idx ] && makeindex $* || : - @-$(CP) $*.ind $<.ind - echo "\\xyoption{dvips}\xyoption{ps}" > xydoc.back - $(LATEX) $< - @-$(CP) $<.dvi $*.dvi ; $(CP) $<.aux $*.aux ; $(CP) $<.idx $*.idx - mv $*.dvi $*.dvips - touch $*.dvips -# -.dvips.dvi: - echo '' > xydoc.back - $(LATEX) $*.man - @-$(CP) $*.man.dvi $*.dvi ; $(CP) $*.man.aux $*.aux ; $(CP) $*.man.idx $*.idx - touch $*.dvi -# -.dvips.pdf: - echo '' > xydoc.back - $(PDFLATEX) $*.man - @-$(CP) $*.man.pdf $*.pdf ; $(CP) $*.man.aux $*.aux ; $(CP) $*.man.idx $*.idx - touch $*.pdf -# -guide: xyguide.dvi -# -manual: $(MANUALRUN) -install.manual: manual - -test -d $(TEXDOCDIR) || $(MKDIR) $(TEXDOCDIR) - for f in $(MANUALRUN); do $(INSTALL) $$f $(TEXDOCDIR)/$$f; done -# -xyguide.dvips: xyguide.man xydoc.sty latin1.sty xydoc.bib version.tex -xyrefer.dvips: xyrefer.man xydoc.sty latin1.sty xydoc.bib version.tex \ - $(KERNELSOURCES) $(OPTIONSOURCES) $(MANUALDATA) -xytest.dvips: xytest.man xydoc.sty latin1.sty xydoc.bib version.tex \ - $(KERNELSOURCES) $(OPTIONSOURCES) $(MANUALDATA) -# -xyguide.dvi: xyguide.dvips version.tex -xyrefer.dvi: xyrefer.dvips version.tex -xytest.dvi: xytest.dvips version.tex -# -xyguide.pdf: xyguide.dvips version.tex -xyrefer.pdf: xyrefer.dvips version.tex -xytest.pdf: xytest.dvips version.tex -# -version.tex: version.doc - $(LATEX) version.doc -# -.SUFFIXES: .pro -xy$(SHORTVERSION)dict.pro: xydocps.tex xypsdict.tex xypspatt.tex xyps-pro.tex - -$(RM) xy$(SHORTVERSION)dict.pro - $(TEX) xydocps.tex -# -# PostScript targets: -# -# DVIPS should be Tom Rokicki's dvips PostScript DVI driver as a filter. -DVIPS = dvips -D600 -f -# -.SUFFIXES: .ps -.dvips.ps:; $(DVIPS) < $< > $@ -# -xyguide.ps: xyguide.dvips $(PSRUN) -xyrefer.ps: xyrefer.dvips $(PSRUN) -# -manual.ps: xyguide.ps xyrefer.ps - - -# TeXNICAL DOCUMENTATION. -# -.PHONY: TeXnical -TeXnical: xysource.ps xysource.dvi xysource.pdf -# -TeXNICALSOURCES = xysource.man COPYING.patch xydoc.back -# -TeXNICALAUX = \ - TRAILER CATALOG README $(INSTALLSTAR) MAKE MANIFEST \ - COPYING.tex -# -xysource.dvips: xysource.man macros.tmp \ - macros fonts obsoletefonts $(ALLSOURCES) $(TeXNICALAUX) -xysource.ps: xysource.dvips -xysource.dvi: xysource.dvips -xysource.pdf: xysource.dvips -# -xywork.dvips: xywork.man macros.tmp \ - macros fonts obsoletefonts $(ALLSOURCES) $(TeXNICALAUX) -xywork.ps: xywork.dvips -xywork.dvi: xywork.dvips -xywork.pdf: xywork.dvips -# -COPYING.tex: COPYING COPYING.patch - patch COPYING -o COPYING.tex < COPYING.patch -# -FONTCOPYING.tex: FONTCOPYING FONTCOPYING.patch - patch FONTCOPYING -o FONTCOPYING.tex < FONTCOPYING.patch -# -# Macro index...requires GNU AWK (gawk) or (in a pinch) NAWK. -# -GAWK = gawk -# -macros.tmp: $(KERNELSOURCES) $(LATEXSTYLES) $(OPTIONSOURCES) $(METAFONTS) - -$(RM) macros.tmp - for f in $(KERNELSOURCES) $(LATEXSTYLES) $(OPTIONSOURCES) $(METAFONTS);\ - do $(GAWK) '\ - func err(s) { printf("%s,%d: %s\n",FILENAME,FNR,s) >>"/dev/stderr"};\ - func prt(s,i) { \ - printf("\\filelinedef{%s}{%d}\\index def{%s}\n",FILENAME,FNR,s) };\ - func prtdef(i) { t = substr($$0,i);\ - if (match(t,/[\\|][a-zA-Z@]*|\\.|[^\\|]|{([^{}]|\\{|\\})*}/) != 1) \ - err("Weird TeX token");\ - else prt(substr($$0,i,RLENGTH),i) };\ - func prtcsdef(i) { t = substr($$0,i);\ - if (match(t,/{([^{}]|\\{|\\})*}|{([^{}]|\\{|\\})*{([^{}]|\\{|\\})*}([^{}]|\\{|\\})*}/) != 1) \ - err("Weird TeX cs name token");\ - else prt(substr($$0,i+1,RLENGTH-2),i) };\ - /^\\let[^A-Za-z@]/ ||\ - /^\\def[^A-Za-z@]/ { prtdef(5); next };\ - /^\\gdef[^A-Za-z@]/ ||\ - /^\\edef[^A-Za-z@]/ ||\ - /^\\xdef[^A-Za-z@]/ { prtdef(6); next };\ - /^\\newif[^A-Za-z@]/ { prtdef(7); next };\ - /^\\xydef@[^A-Za-z@]/ ||\ - /^\\xylet@[^A-Za-z@]/ { prtdef(8); next };\ - /^\\xyfont@[^A-Za-z@]/ { prtdef(9); next };\ - /^\\global\\let[^A-Za-z@]/ { prtdef(12); next };\ - /^\\xywarnifdefined[^A-Za-z@]/ { prtdef(17); next };\ - /^\\ifx\\undefined[^A-Za-z@]/ { prtdef(15); next };\ - /^\\xynew@{[^{}]*}/ { prtdef(index($$0,"}")+1); next };\ - /^\\xydefcsname@{/ { prtcsdef(14); next };\ - /^\\xyletcsnamecsname@{/ { prtcsdef(20); next }' $$f;\ - done | sed -e 's,\\{,\\\\otherebgroup,' -e 's,\\},\\\\otheregroup,' \ - > macros.tmp - -###printf("\\macroentry{%s}{%s}{%d}\n",s,FILENAME,FNR) };\ - - -# Xy-pic the MOVIE :) -# -.SUFFIXES: .texmovie .gif -# -.texmovie.gif: - $(LATEX) '\documentclass[dvips]{movie}' \ - '\usepackage[all]{xy}' \ - '\begin{document}' \ - '\input{$*.texmovie}' \ - '\end{document}' - @-[ -f texput.dvi ] && $(MV) texput.dvi $*.dvi && $(MV) texput.size $*.size - @-[ -f movie.cls.dvi ] && $(MV) movie.cls.dvi $*.dvi && $(MV) movie.cls.size $*.size - @-[ -f movie.dvi ] && $(MV) movie.dvi $*.dvi && $(MV) movie.size $*.size - ./dvitogif89a $*.dvi -# -.texmovie.dvi: - $(LATEX) '\documentclass{article}' \ - '\usepackage[movie,all]{xy}' \ - '\begin{document}' \ - '\title{Storyboard for ``$*.''}' \ - '\maketitle' \ - '\input{$*.texmovie}' \ - '\end{document}' -# -dragon.gif: dragon.texmovie movie.cls dvitogif89a -dragon.dvi: dragon.texmovie movie.cls -# -sesam.gif: sesam.texmovie movie.cls dvitogif89a -sesam.dvi: sesam.texmovie movie.cls -# -gasket.dvi: gasket.texmovie movie.cls dvitogif89a -gasket.gif: gasket.texmovie movie.cls - - -# DISTRIBUTION TREE. -# -DISTDIR = $(FTPROOT)/xy-$(VERSION) -DISTFONTDIR = $(DISTDIR)/$(PK)fonts/$${mode}$${dpi} -# -# Files: -# -SOURCES = $(MACROSOURCES) $(FONTSOURCES) $(MANUALSOURCES) $(SUPPORT) -# -# Commands: -# -# TAR <files> output tar archive with <files> -# GZIP compression filter -# GZ filename extension appropriate for compressed files -# -# TODO: change compression to proper GNU gzip once everyone supports it... -# -TAR = tar cvf - -GZIP = gzip -v9 -GZ = .gz -# -# Targets: -# -.PHONY: dist dist-$(VERSION) distsrc distrun distdoc -# -dist dist-$(VERSION): - cd $(DISTDIR);\ - find . -type f -print | sed 's,^./,,' | sort > MANIFEST - $(INSTALL) README $(DISTDIR)/README -# -distsrc: $(DISTDIR)/src -# -distrun: $(DISTDIR)/CATALOG \ - $(DISTDIR)/TRAILER \ - $(DISTDIR)/README \ - $(DISTDIR)/INSTALL \ - $(DISTDIR)/VERSIONS \ - $(DISTDIR)/texinputs \ - $(DISTDIR)/texfonts \ - $(DISTDIR)/mfinputs \ - $(DISTDIR)/$(PK)fonts \ - $(DISTDIR)/doc/xyguide.dvi \ - $(DISTDIR)/doc/xyrefer.dvi \ - $(DISTDIR)/doc/xysource.dvi \ - $(DISTDIR)/ps \ - $(DISTDIR)/type1 \ - $(DISTDIR)/pfm \ - $(DISTDIR)/afm \ - $(DISTDIR)/COPYING \ - $(DISTDIR)/support -# -distdoc: $(DISTDIR)/doc/xyguide.dvips \ - $(DISTDIR)/doc/xyguide.ps \ - $(DISTDIR)/doc/xyguide.pdf \ - $(DISTDIR)/doc/xyrefer.dvips \ - $(DISTDIR)/doc/xyrefer.ps \ - $(DISTDIR)/doc/xyrefer.pdf \ - $(DISTDIR)/doc/xysource.dvips \ - $(DISTDIR)/doc/xysource.ps -#### CURRENTLY BROKEN: -# $(DISTDIR)/doc/xyguide-html \ -# -# Explanation targets: -# -# CATALOG is automatically generated: -# -$(DISTDIR)/CATALOG: CATALOG $(DISTDIR) - $(INSTALL) CATALOG $(DISTDIR)/CATALOG -# -CATALOG: CATALOG.doc - $(LATEX) CATALOG.doc - mv -f CATALOG.out CATALOG - -$(DISTDIR)/TRAILER: TRAILER $(DISTDIR) - $(INSTALL) TRAILER $(DISTDIR)/TRAILER - -$(DISTDIR)/README: README $(DISTDIR) - $(INSTALL) README $(DISTDIR)/README - -$(DISTDIR)/VERSIONS: VERSIONS $(DISTDIR) - $(INSTALL) VERSIONS $(DISTDIR)/VERSIONS - -$(DISTDIR)/INSTALL: $(INSTALLSTAR) $(DISTDIR) - for f in $(INSTALLSTAR); do if test -f "$$f"; then \ - $(INSTALL) $$f $(DISTDIR)/$$f; else :; fi; done - -$(DISTDIR)/COPYING: COPYING $(DISTDIR) - $(INSTALL) COPYING $(DISTDIR)/COPYING - -$(DISTDIR)/FONTCOPYING: FONTCOPYING $(DISTDIR) - $(INSTALL) FONTCOPYING $(DISTDIR)/FONTCOPYING -# -# Directory targets: -# -$(DISTDIR): - -test -d $(DISTDIR) || $(MKDIR) $(DISTDIR) - -$(DISTDIR)/src: $(SOURCES) MANIFEST VERSIONS ChangeLog $(DISTDIR) - -test -d $(DISTDIR)/src || $(MKDIR) $(DISTDIR)/src - for f in $(SOURCES); do echo $$f; done | sort -fu |\ - while read u; do $(INSTALL) $$u $(DISTDIR)/src/$$u; done - echo '' > xydoc.back - $(INSTALLW) xydoc.back $(DISTDIR)/src - $(INSTALLW) MANIFEST VERSIONS ChangeLog $(DISTDIR)/src - -xydoc.back: - echo '' > xydoc.back -# -# The MANIFEST in src is just a list of the distributed source files. -# -MANIFEST: $(SOURCES) - ls -alg `for f in $(SOURCES); do echo $$f; done | sort -fu` >MANIFEST -# -# The VERSIONS is just a list of the RCS versions. -# -VERSIONS: $(SOURCES) - sed -n 's/^.*\([$$]Id[:][^$$]*[$$]\).*$$/\1/p' \ - `for f in $(SOURCES); do echo $$f; done | sort -u` >VERSIONS - -$(DISTDIR)/texinputs: macros $(DISTDIR) - -test -d $(DISTDIR)/texinputs \ - || $(MKDIR) $(DISTDIR)/texinputs - for f in $(MACRORUN) $(LATEXSTYLES); \ - do $(INSTALL) $$f $(DISTDIR)/texinputs/$$f; done - -$(DISTDIR)/texfonts: texfonts obsoletefonts $(DISTDIR) - -test -d $(DISTDIR)/texfonts \ - || $(MKDIR) $(DISTDIR)/texfonts - for f in $(TEXFONTRUN) $(OBSOLETETEXFONTRUN); \ - do $(INSTALL) $$f $(DISTDIR)/texfonts/$$f; done - -$(DISTDIR)/mfinputs: mfinputs $(OBSOLETEMETAFONTS) $(DISTDIR) - -test -d $(DISTDIR)/mfinputs || $(MKDIR) $(DISTDIR)/mfinputs - for f in $(METAFONTS) $(OBSOLETEMETAFONTS); \ - do $(INSTALL) $$f $(DISTDIR)/mfinputs/$$f; done - -$(DISTDIR)/$(PK)fonts: $(PK)fonts $(DISTDIR) - -test -d $(DISTDIR)/$(PK)fonts || $(MKDIR) $(DISTDIR)/$(PK)fonts - : - for mode in $(MODES); do for mag in $(MAGS); do \ - $(RM) xytest.*gf xytest.*tfm;\ - $(MF) "\\mode=$$mode; mag=magstep($$mag); input xytest";\ - dpi="`expr xytest.*gf : 'xytest\.\([0-9]*\)gf'`";\ - for f in $(TEXFONTRUN); do \ - f="`expr $$f : '\([a-z0-9]*\)\.tfm'`.$${dpi}$(PK)" ;\ - if [ ! -f $$f ]; then echo "ERROR: FONT $$f NOT GENERATED";\ - else test -d "$(DISTFONTDIR)" || $(MKDIR) $(DISTFONTDIR);\ - $(INSTALL) $$f $(DISTFONTDIR)/$$f; fi; done; done; done - -$(DISTDIR)/ps: xy$(SHORTVERSION)dict.pro xypic.map $(DISTDIR) - -test -d $(DISTDIR)/ps || $(MKDIR) $(DISTDIR)/ps - $(INSTALL) xy$(SHORTVERSION)*dict.pro $(DISTDIR)/ps - $(INSTALL) xypic.map $(DISTDIR)/ps - -$(DISTDIR)/type1: $(TYPE1FONTS) $(DISTDIR) - -test -d $(DISTDIR)/type1 || $(MKDIR) $(DISTDIR)/type1 - for f in $(TYPE1FONTS) ; \ - do $(INSTALL) $$f $(DISTDIR)/type1/$$f; done - -$(DISTDIR)/pfm: $(PFMFONTS) $(DISTDIR) - -test -d $(DISTDIR)/pfm || $(MKDIR) $(DISTDIR)/pfm - for f in $(PFMFONTS) ; \ - do $(INSTALL) $$f $(DISTDIR)/pfm/$$f; done - -$(DISTDIR)/afm: $(AFMFONTS) $(DISTDIR) - -test -d $(DISTDIR)/afm || $(MKDIR) $(DISTDIR)/afm - for f in $(AFMFONTS) ; \ - do $(INSTALL) $$f $(DISTDIR)/afm/$$f; done - -$(DISTDIR)/pdftex: $(DISTDIR) xypic.map - -test -d $(DISTDIR)/pdftex || $(MKDIR) $(DISTDIR)/pdftex - $(INSTALL) xypic.map $(DISTDIR)/pdftex - -$(DISTDIR)/support: $(SUPPORT) - -test -d $(DISTDIR)/support || $(MKDIR) $(DISTDIR)/support - for f in $(SUPPORT) ; \ - do $(INSTALLX) $$f $(DISTDIR)/support/$$f; done - -# Document targets: -# -$(DISTDIR)/doc/xyguide.dvi: xyguide.dvi $(DISTDIR)/doc - $(INSTALL) xyguide.dvi $(DISTDIR)/doc - -$(DISTDIR)/doc/xyguide.dvips: xyguide.dvips $(DISTDIR)/doc - $(INSTALL) xyguide.dvips $(DISTDIR)/doc - -$(DISTDIR)/doc/xyguide.pdf: xyguide.pdf $(DISTDIR)/doc - $(INSTALL) xyguide.pdf $(DISTDIR)/doc - -$(DISTDIR)/doc/xyguide.ps: xyguide.ps $(DISTDIR)/doc - $(INSTALL) xyguide.ps $(DISTDIR)/doc - -$(DISTDIR)/doc/xyguide-html: xyguide-html $(DISTDIR)/doc - tar cf - xyguide-html | (cd $(DISTDIR)/doc; tar xpvf -) - -$(DISTDIR)/doc/xyrefer.dvi: xyrefer.dvi $(DISTDIR)/doc - $(INSTALL) xyrefer.dvi $(DISTDIR)/doc - -$(DISTDIR)/doc/xyrefer.dvips: xyrefer.dvips ross.eps kris.eps import1.eps \ - $(DISTDIR)/doc - $(INSTALL) xyrefer.dvips ross.eps kris.eps import1.eps $(DISTDIR)/doc - -$(DISTDIR)/doc/xyrefer.pdf: xyrefer.pdf ross.eps kris.eps import1.eps \ - $(DISTDIR)/doc - $(INSTALL) xyrefer.pdf $(DISTDIR)/doc - -$(DISTDIR)/doc/xyrefer.ps: xyrefer.ps $(DISTDIR)/doc - $(INSTALL) xyrefer.ps $(DISTDIR)/doc - -$(DISTDIR)/doc/xyrefer-html: xyrefer-html $(DISTDIR)/doc - $(INSTALL) xyrefer-html $(DISTDIR)/doc - -$(DISTDIR)/doc/xysource.dvi: xysource.dvi $(DISTDIR)/doc - $(INSTALL) xysource.dvi $(DISTDIR)/doc - -$(DISTDIR)/doc/xysource.dvips: xysource.dvips ross.eps kris.eps import1.eps \ - $(DISTDIR)/doc - $(INSTALL) xysource.dvips ross.eps kris.eps import1.eps $(DISTDIR)/doc - -$(DISTDIR)/doc/xysource.ps: xysource.ps $(DISTDIR)/doc - $(INSTALL) xysource.ps $(DISTDIR)/doc - -$(DISTDIR)/doc: - -test -d $(DISTDIR)/doc || $(MKDIR) $(DISTDIR)/doc - - -# FTP'ABLE DISTRIBUTION. -# -FTPROOT = $$HOME/public_ftp/TeX -FTPDOCDIR = $(FTPROOT)/xy-$(VERSION)/doc -# -.PHONY: ftp ftp-$(VERSION) ftpsrc ftprun ftpdoc ftpunpacked -# -ftp ftp-$(VERSION): ftpsrc ftprun ftpdoc ftpunpacked - $(INSTALL) TRAILER $(FTPROOT)/xy$(SHORTVERSION).TRAILER -# -ftpsrc $(FTPROOT)/xy$(SHORTVERSION)src.tar$(GZ): distsrc - cd $(DISTDIR)/.. ;\ - $(TAR) xy-$(VERSION)/src \ - | $(GZIP) > $(FTPROOT)/xy$(SHORTVERSION)src.tar$(GZ) -# -ftpdoc $(FTPROOT)/xy$(SHORTVERSION)doc.tar$(GZ): distrun distdoc - cd $(DISTDIR)/.. ;\ - $(TAR) xy-$(VERSION)/doc \ - | $(GZIP) > $(FTPROOT)/xy$(SHORTVERSION)doc.tar$(GZ) - $(GZIP) < xyguide.dvi > $(FTPROOT)/xyguide.dvi$(GZ) - $(GZIP) < xyguide.dvips > $(FTPROOT)/xyguide.dvips$(GZ) - $(GZIP) < xyguide.ps > $(FTPROOT)/xyguide.ps$(GZ) - $(GZIP) < xyguide.pdf > $(FTPROOT)/xyguide.pdf$(GZ) - $(GZIP) < xyrefer.dvi > $(FTPROOT)/xyrefer.dvi$(GZ) - $(GZIP) < xyrefer.dvips > $(FTPROOT)/xyrefer.dvips$(GZ) - $(GZIP) < xyrefer.ps > $(FTPROOT)/xyrefer.ps$(GZ) - $(GZIP) < xyrefer.pdf > $(FTPROOT)/xyrefer.pdf$(GZ) - $(GZIP) < xysource.dvi > $(FTPROOT)/xysource.dvi$(GZ) - $(GZIP) < xysource.dvips > $(FTPROOT)/xysource.dvips$(GZ) - $(GZIP) < xysource.ps > $(FTPROOT)/xysource.ps$(GZ) -# $(TAR) xyguide-html | $(GZIP) > $(FTPROOT)/xyguide-html.tar.gz -# -ftprun $(FTPROOT)/xy$(SHORTVERSION)run.tar$(GZ): distrun - cd $(DISTDIR)/.. ;\ - $(TAR) \ - `for f in $(TRAILERRUN); do echo xy-$(VERSION)/$$f; done` \ - xy-$(VERSION)/texinputs xy-$(VERSION)/mfinputs \ - xy-$(VERSION)/texfonts xy-$(VERSION)/$(PK)fonts \ - xy-$(VERSION)/ps xy-$(VERSION)/type1 xy-$(VERSION)/pfm \ - xy-$(VERSION)/afm \ - xy-$(VERSION)/support \ - | $(GZIP) > $(FTPROOT)/xy$(SHORTVERSION)run.tar$(GZ) -# -ftpunpacked: dist - test $(DISTDIR) = $(FTPROOT)/xy-$(VERSION) || \ - (cd $(DISTDIR)/.. ; tar cf - xy-$(VERSION) |(cd $(FTPROOT); tar xvf -)) - cd $(FTPROOT); rm -f xy; ln -fs xy-$(VERSION) xy - - -# WWW/HTML DOCUMENTATION & HYPE. -# -WWWDIR = $$HOME/public_html -# -WWWSOURCES = Xy-pic.html Xy.doc Xy.xy \ - man2html.gawk man2html-post.gawk .latex2html-init -# -.PHONY: guide.html www install.www -# -LATEX2HTML = latex2html -# -LATEX2HTMLICONDIR = $$HOME/src/latex2html-96.1/icons -LATEX2HTMLICONDIR2 = $$HOME/CV -# -man2html = $(GAWK) -f man2html.gawk -man2htmlpost = $(GAWK) -f ../man2html-post.gawk -# -guide.html: xyguide-html -# -xyguide-html.tex: xyguide.dvips xyguide.man $(WWWSOURCES) - $(man2html) <xyguide.aux >xyguide-html.aux - $(man2html) <xyguide.bbl >xyguide-html.bbl - @-$(CP) xyguide.man.ans xyguide.ans - @-$(CP) xyguide.man.idx xyguide.idx - @-$(CP) xyguide.man.ind xyguide.ind - $(man2html) <xyguide.ans >xyguide-html.ans - $(man2html) <xyguide.idx >xyguide-html.idx - $(man2html) <xyguide.ind | sed 's/"/|/g' >xyguide-html.ind - $(man2html) <xyguide.man >xyguide-html.tex -# -xyguide-html-act: xyguide-html.tex version.tex - echo "\\xyoption{dvips}\xyoption{ps}" > xydoc.back - $(LATEX2HTML) xyguide-html.tex -# -xyguide-html: xyguide-html.tex xyguide-html-act - (cd xyguide-html; \ - for f in *.html; do mv $$f $$f~; \ - $(man2htmlpost) <$$f~ \ - | sed -e 's/``/"/g' -e "s/''/\"/g" -e 's/ [>] />/g' >$$f; done; \ - (cd $$HOME/W3; tar cf - COPYING) | tar xpf - ) - : - cp "$(LATEX2HTMLICONDIR2)/18pt.html" xyguide-html - cat xyguide-html/*.html \ - | tr '"' "\n" \ - | sed -n 's;[.][/]\([a-z_]*[.]gif\);\1;p' | sort -u \ - | while read f ;\ - do if [ -f "$(LATEX2HTMLICONDIR2)/$$f" ]; \ - then echo "[$$f]"; cp $(LATEX2HTMLICONDIR2)/$$f xyguide-html ; \ - elif [ -f "$(LATEX2HTMLICONDIR)/$$f" ]; \ - then echo "[$$f]"; cp $(LATEX2HTMLICONDIR)/$$f xyguide-html ; \ - fi ; done - : - (cd xyguide-html; \ - $(RM) .I* .O* *.ppm *.xyc *.ans *.aux *.idx *.bbl *.log *.tex *~) -# -Xy.tex: Xy.doc -Xy.dvi: Xy.tex Xy.xy macros; $(LATEX) Xy -Xy.ps: Xy.dvi; $(DVIPS) Xy.dvi -oXy.ps -# -PNMCROP = ./pnmrawtopcropwhite | pnmcrop -PGMTOGIF = pgmtoppm rgbi:1/1/1 | ppmtogif -interlace -transparent rgbi:1/1/1 -# -Xy.gif: Xy.ps pnmrawtopcropwhite - echo '' | \ - gs -sDEVICE=pbmraw -r300 \ - -sOutputFile='|$(PNMCROP) >Xy.pbm' \ - -q - Xy.ps - cat Xy.pbm | $(PGMTOGIF) >Xy.gif -# -pnmrawtopcropwhite: pnmrawtopcropwhite.c -# -www: Xy-pic.html Xy.gif -####BROKEN##### guide.html -# -install.www: www - $(INSTALL) Xy-pic.html Xy.gif $(WWWDIR) -# $(RM) $(WWWDIR)/xyguide-html -# $(MKDIR) $(WWWDIR)/xyguide-html -# tar -cf - xyguide-html | (cd $(WWWDIR); tar xvpf -) - - -# ANNOUNCEMENTS. -# -MAILSOURCES = TRAILER Users mail.Users -# -.PHONY: announce -announce: $(MAILSOURCES) - @./mail.Users - - -# TAGS for Emacs. -# -TAGS: $(SOURCES) - -$(RM) TAGS - for f in `for ff in $(SOURCES); do echo $$ff; done |sort -u`;\ - do\ - $(GAWK) '\ - func err(s) { printf("%s,%d: %s\n",FILENAME,FNR,s) >>"/dev/stderr"};\ - func prt(s,n) { printf("%s\177%d,%d\n",s,FNR,c+n) };\ - func prtdef(i) { t = substr($$0,i);\ - if (match(t,/[\\|][a-zA-Z@]*|\\.|[^\\|]|{([^{}]|\\{|\\})*}/) != 1) \ - err("Weird TeX token");\ - else prt(substr($$0,1,i+RLENGTH),i) };\ - func prtcsdef(i) { t = substr($$0,i);\ - if (match(t,/{([^{}]|\\{|\\})*}|{([^{}]|\\{|\\})*{([^{}]|\\{|\\})*}([^{}]|\\{|\\})*}/) != 1) \ - err("Weird TeX cs name token");\ - else prt(substr($$0,1,i+RLENGTH),i) };\ - func fin() { c += length($$0) + 1; next };\ - BEGIN { c = 0 };\ - /^\\let[^A-Za-z@]/ ||\ - /^\\def[^A-Za-z@]/ { prtdef(5); fin() };\ - /^\\gdef[^A-Za-z@]/ ||\ - /^\\edef[^A-Za-z@]/ ||\ - /^\\xdef[^A-Za-z@]/ { prtdef(6); fin() };\ - /^\\newif[^A-Za-z@]/ { prtdef(7); fin() };\ - /^\\xydef@[^A-Za-z@]/ ||\ - /^\\xylet@[^A-Za-z@]/ { prtdef(8); fin() };\ - /^\\xyfont@[^A-Za-z@]/ { prtdef(9); fin() };\ - /^\\global\\let[^A-Za-z@]/ { prtdef(12); fin() };\ - /^\\xywarnifdefined[^A-Za-z@]/ { prtdef(17); fin() };\ - /^\\ifx\\undefined[^A-Za-z@]/ { prtdef(15); fin() };\ - /^\\xynew@{[^{}]*}/ { prtdef(index($$0,"}")+1); fin() };\ - /^\\xydefcsname@{/ { prtcsdef(14); fin() };\ - /^\\xyletcsnamecsname@{/ { prtcsdef(20); fin() };\ - /\?\?\=\[/ { s = $$0; i = 0;\ - while (first = index(s, "\?\?=[")) {\ - s = substr(s,first+4); i += first+4;\ - if (j = index(s, "]")) prt(substr($$0,1,i+j-1),i);\ - else printf("Unmatched []s") }; fin() };\ - /^@[A-Za-z]*{/ { prt($$0,index($$0,"{")+1); fin() };\ - { fin() }' $$f >TAGS.tmp ;\ - wc -c TAGS.tmp|$(GAWK) '{printf "\f\n%s,%s\n","'"$$f"'",$$1}'>>TAGS;\ - cat TAGS.tmp >>TAGS ;\ - done - $(RM) TAGS.tmp - - -# RCS STUFF: -# -.PHONY: ci ci-$(VERSION) cici rcscheck \ - rcslist rcslockedlist rcsunlockedlist \ - rcscleanlist rcsuncleanlist rcsclean rcsdep -# -ALLSOURCES = $(TRAILERSOURCES) $(SOURCES) $(MANUALSOURCES) $(TeXNICALSOURCES) \ - $(WWWSOURCES) $(MAILSOURCES) $(OBSOLETEMETAFONTS) $(TYPE1FONTS) \ - $(SUPPORT) xypic.map -# -ROSSSOURCES = INSTALL.OzTeX INSTALL.Textures import1.eps ross.eps \ - xy16textures.doc xy17oztex.doc xy2cell.doc xyarc.doc \ - xycolor.doc xycrayon.doc xycurve.doc \ - xydvips.doc xyimport.doc xyknot.doc xyline.doc \ - xymacpat.xyp xyoztex.doc xypoly.doc xyps-c.doc xyps-col.doc \ - xyps-f.doc xyps-l.doc xyps-pro.doc xyps-ps.doc xyps-r.doc \ - xyps-s.doc xyps-t.doc xyps.doc xypsdict.doc xypspatt.doc xyrotate.doc \ - xytextures.doc xytile.doc xytpic.doc xyemtex.doc xyweb.doc \ - xydvidrv.doc xyxdvi.doc xydvitops.doc xytp-f.doc xycmactex.doc -# -YANDYSOURCES = \ - xyatip10.pfa xybsql10.pfa xybtip10.pfa xycirc10.pfa xycmat10.pfa \ - xycmbt10.pfa xydash10.pfa xyeuat10.pfa xyeubt10.pfa \ -# -ci ci-$(VERSION): $(ALLSOURCES) cici Makefile -cici: - -rcs -l `for f in $(ALLSOURCES); do echo $$f; done | sort -u` - -ci -u$(VERSION) `$(MAKE) rcslockedlist` -# -rcscheck: $(ALLSOURCES) - @locked="`$(MAKE) rcslockedlist`"; \ - unlocked="`$(MAKE) rcsunlockedlist`"; \ - echo "Missing write permission on locked files:"; \ - for f in $$locked; do [ -w "$$f" ] || echo ' '$$f; done; \ - echo "Wrong write permission on unlocked files:"; \ - for f in $$unlocked; do [ -w "$$f" ] && echo ' '$$f; done; \ - echo "Wrong/missing locks on ross's files:"; \ - for f in $(ROSSSOURCES); \ - do lock=; \ - for ff in $$locked; \ - do if [ "$$f" = "$$ff" ]; then lock=' ross'; fi; done; \ - fgrep -s " ross Exp$$lock "'$$' $$f \ - ||(/bin/echo ' '$$f': \c' && grep 'Id[:].* Exp ' $$f || echo '?'); \ - done; \ - echo "Wrong/missing locks on krisrose's files:"; \ - for f in `$(MAKE) rcslist`; \ - do for ff in $(ROSSSOURCES); \ - do if [ "$$f" = "$$ff" ]; then continue 2; fi; done; \ - lock=; \ - for ff in $$locked; \ - do if [ "$$f" = "$$ff" ]; then lock=' krisrose'; fi; done; \ - fgrep -s " krisrose Exp$$lock "'$$' $$f \ - || (/bin/echo ' '$$f' \c' && grep 'Id[:].* Exp ' $$f || echo ''); \ - done -# -rcslist: - -@rlog -R `for f in $(ALLSOURCES); do echo $$f; done | sort -u` \ - 2>/dev/null | sed 's;RCS/\(.*\),v;\1;' -# -rcslockedlist: - -@rlog -R -L `for f in $(ALLSOURCES); do echo $$f; done | sort -u` \ - 2>/dev/null | sed 's;RCS/\(.*\),v;\1;' -# -rcsunlockedlist: - -@locked="`$(MAKE) rcslockedlist`"; \ - $(MAKE) rcslist | while read f; \ - do echo=echo; for ff in $$locked; \ - do if [ "$$f" = "$$ff" ]; then echo=:; fi; done; \ - $$echo $$f; done -# -rcscleanlist: - -@$(MAKE) rcslist \ - | while read f; do if test -w "$$f" -o "$$f" = Makefile; then :; \ - else echo $$f; fi; done -# -rcsuncleanlist: - -@$(MAKE) rcslist \ - | while read f; do if test -w "$$f" -o "$$f" = Makefile; \ - then echo $$f; fi; done -# -rcsclean: - -@$(MAKE) rcscleanlist | while read f; do $(RM) $$f; done -# -# Dependencies... -# -rcsdep: - $(MAKE) rcslist | while read f; do \ - echo "$$f: RCS/$$f,v; test -d RCS && co $$f || :"; done - -.late2html-init:; test -d RCS -a -f RCS/.late2html-init,v && co .late2html-init || : -CATALOG.doc:; test -d RCS -a -f RCS/CATALOG.doc,v && co CATALOG.doc || : -COPYING.patch:; test -d RCS -a -f RCS/COPYING.patch,v && co COPYING.patch || : -COPYING:; test -d RCS -a -f RCS/COPYING,v && co COPYING || : -FONTCOPYING.patch:; test -d RCS -a -f RCS/FONTCOPYING.patch,v && co FONTCOPYING.patch || : -FONTCOPYING:; test -d RCS -a -f RCS/FONTCOPYING,v && co FONTCOPYING || : -INSTALL.OzTeX:; test -d RCS -a -f RCS/INSTALL.OzTeX,v && co INSTALL.OzTeX || : -INSTALL.Textures:; test -d RCS -a -f RCS/INSTALL.Textures,v && co INSTALL.Textures || : -INSTALL:; test -d RCS -a -f RCS/INSTALL,v && co INSTALL || : -MAKE:; test -d RCS -a -f RCS/MAKE,v && co MAKE || : -Makefile:; test -d RCS -a -f RCS/Makefile,v && co Makefile || : -README:; test -d RCS -a -f RCS/README,v && co README || : -TRAILER:; test -d RCS -a -f RCS/TRAILER,v && co TRAILER || : -Users:; test -d RCS -a -f RCS/Users,v && co Users || : -Xy-pic.blurb:; test -d RCS -a -f RCS/Xy-pic.blurb,v && co Xy-pic.blurb || : -Xy-pic.html:; test -d RCS -a -f RCS/Xy-pic.html,v && co Xy-pic.html || : -Xy-pic.xbm:; test -d RCS -a -f RCS/Xy-pic.xbm,v && co Xy-pic.xbm || : -Xy.doc:; test -d RCS -a -f RCS/Xy.doc,v && co Xy.doc || : -Xy.xy:; test -d RCS -a -f RCS/Xy.xy,v && co Xy.xy || : -YandY_xy_fonts.zip:; test -d RCS -a -f RCS/YandY_xy_fonts.zip,v && co YandY_xy_fonts.zip || : -doc2tex.com:; test -d RCS -a -f RCS/doc2tex.com,v && co doc2tex.com || : -dvitogif89a:; test -d RCS -a -f RCS/dvitogif89a,v && co dvitogif89a || : -gasket.texmovie:; test -d RCS -a -f RCS/gasket.texmovie,v && co gasket.texmovie || : -import1.eps:; test -d RCS -a -f RCS/import1.eps,v && co import1.eps || : -install-tds:; test -d RCS -a -f RCS/install-tds,v && co install-tds || : -kris.eps:; test -d RCS -a -f RCS/kris.eps,v && co kris.eps || : -latin1.sty:; test -d RCS -a -f RCS/latin1.sty,v && co latin1.sty || : -mail.Users:; test -d RCS -a -f RCS/mail.Users,v && co mail.Users || : -man2html-post.gawk:; test -d RCS -a -f RCS/man2html-post.gawk,v && co man2html-post.gawk || : -man2html.gawk:; test -d RCS -a -f RCS/man2html.gawk,v && co man2html.gawk || : -movie.cls:; test -d RCS -a -f RCS/movie.cls,v && co movie.cls || : -pnmrawtopcropwhite.c:; test -d RCS -a -f RCS/pnmrawtopcropwhite.c,v && co pnmrawtopcropwhite.c || : -ross.eps:; test -d RCS -a -f RCS/ross.eps,v && co ross.eps || : -version.doc:; test -d RCS -a -f RCS/version.doc,v && co version.doc || : -xy.doc:; test -d RCS -a -f RCS/xy.doc,v && co xy.doc || : -xy.sty:; test -d RCS -a -f RCS/xy.sty,v && co xy.sty || : -xy16textures.doc:; test -d RCS -a -f RCS/xy16textures.doc,v && co xy16textures.doc || : -xy17oztex.doc:; test -d RCS -a -f RCS/xy17oztex.doc,v && co xy17oztex.doc || : -xy2cell.doc:; test -d RCS -a -f RCS/xy2cell.doc,v && co xy2cell.doc || : -xyall.doc:; test -d RCS -a -f RCS/xyall.doc,v && co xyall.doc || : -xyamslatex.ini:; test -d RCS -a -f RCS/xyamslatex.ini,v && co xyamslatex.ini || : -xyarc.doc:; test -d RCS -a -f RCS/xyarc.doc,v && co xyarc.doc || : -xyarrow.doc:; test -d RCS -a -f RCS/xyarrow.doc,v && co xyarrow.doc || : -xyatip10.mf:; test -d RCS -a -f RCS/xyatip10.mf,v && co xyatip10.mf || : -xybsql10.mf:; test -d RCS -a -f RCS/xybsql10.mf,v && co xybsql10.mf || : -xybtip10.mf:; test -d RCS -a -f RCS/xybtip10.mf,v && co xybtip10.mf || : -xycirc10.enc:; test -d RCS -a -f RCS/xycirc10.enc,v && co xycirc10.enc || : -xycirc10.mf:; test -d RCS -a -f RCS/xycirc10.mf,v && co xycirc10.mf || : -xycm.mf:; test -d RCS -a -f RCS/xycm.mf,v && co xycm.mf || : -xycmactex.doc:; test -d RCS -a -f RCS/xycmactex.doc,v && co xycmactex.doc || : -xycmat10.mf:; test -d RCS -a -f RCS/xycmat10.mf,v && co xycmat10.mf || : -xycmat11.mf:; test -d RCS -a -f RCS/xycmat11.mf,v && co xycmat11.mf || : -xycmat12.mf:; test -d RCS -a -f RCS/xycmat12.mf,v && co xycmat12.mf || : -xycmbt10.mf:; test -d RCS -a -f RCS/xycmbt10.mf,v && co xycmbt10.mf || : -xycmbt11.mf:; test -d RCS -a -f RCS/xycmbt11.mf,v && co xycmbt11.mf || : -xycmbt12.mf:; test -d RCS -a -f RCS/xycmbt12.mf,v && co xycmbt12.mf || : -xycmtip.doc:; test -d RCS -a -f RCS/xycmtip.doc,v && co xycmtip.doc || : -xycolor.doc:; test -d RCS -a -f RCS/xycolor.doc,v && co xycolor.doc || : -xycrayon.doc:; test -d RCS -a -f RCS/xycrayon.doc,v && co xycrayon.doc || : -xycurve.doc:; test -d RCS -a -f RCS/xycurve.doc,v && co xycurve.doc || : -xyd.enc:; test -d RCS -a -f RCS/xyd.enc,v && co xyd.enc || : -xyd.mf:; test -d RCS -a -f RCS/xyd.mf,v && co xyd.mf || : -xyd2.enc:; test -d RCS -a -f RCS/xyd2.enc,v && co xyd2.enc || : -xyd2.mf:; test -d RCS -a -f RCS/xyd2.mf,v && co xyd2.mf || : -xydash10.mf:; test -d RCS -a -f RCS/xydash10.mf,v && co xydash10.mf || : -xydoc.bib:; test -d RCS -a -f RCS/xydoc.bib,v && co xydoc.bib || : -xydoc.sty:; test -d RCS -a -f RCS/xydoc.sty,v && co xydoc.sty || : -xydocps.doc:; test -d RCS -a -f RCS/xydocps.doc,v && co xydocps.doc || : -xydriver.doc:; test -d RCS -a -f RCS/xydriver.doc,v && co xydriver.doc || : -xydummy.doc:; test -d RCS -a -f RCS/xydummy.doc,v && co xydummy.doc || : -xydvidrv.doc:; test -d RCS -a -f RCS/xydvidrv.doc,v && co xydvidrv.doc || : -xydvips.doc:; test -d RCS -a -f RCS/xydvips.doc,v && co xydvips.doc || : -xydvitops.doc:; test -d RCS -a -f RCS/xydvitops.doc,v && co xydvitops.doc || : -xyemtex.doc:; test -d RCS -a -f RCS/xyemtex.doc,v && co xyemtex.doc || : -xyeuat10.mf:; test -d RCS -a -f RCS/xyeuat10.mf,v && co xyeuat10.mf || : -xyeuat11.mf:; test -d RCS -a -f RCS/xyeuat11.mf,v && co xyeuat11.mf || : -xyeuat12.mf:; test -d RCS -a -f RCS/xyeuat12.mf,v && co xyeuat12.mf || : -xyeubt10.mf:; test -d RCS -a -f RCS/xyeubt10.mf,v && co xyeubt10.mf || : -xyeubt11.mf:; test -d RCS -a -f RCS/xyeubt11.mf,v && co xyeubt11.mf || : -xyeubt12.mf:; test -d RCS -a -f RCS/xyeubt12.mf,v && co xyeubt12.mf || : -xyeuler.doc:; test -d RCS -a -f RCS/xyeuler.doc,v && co xyeuler.doc || : -xyframe.doc:; test -d RCS -a -f RCS/xyframe.doc,v && co xyframe.doc || : -xygraph.doc:; test -d RCS -a -f RCS/xygraph.doc,v && co xygraph.doc || : -xyguide.man:; test -d RCS -a -f RCS/xyguide.man,v && co xyguide.man || : -xyidioms.doc:; test -d RCS -a -f RCS/xyidioms.doc,v && co xyidioms.doc || : -xyimport.doc:; test -d RCS -a -f RCS/xyimport.doc,v && co xyimport.doc || : -xyknot.doc:; test -d RCS -a -f RCS/xyknot.doc,v && co xyknot.doc || : -xylatex.ini:; test -d RCS -a -f RCS/xylatex.ini,v && co xylatex.ini || : -xyline.doc:; test -d RCS -a -f RCS/xyline.doc,v && co xyline.doc || : -xyline10.mf:; test -d RCS -a -f RCS/xyline10.mf,v && co xyline10.mf || : -xymacpat.xyp:; test -d RCS -a -f RCS/xymacpat.xyp,v && co xymacpat.xyp || : -xymatrix.doc:; test -d RCS -a -f RCS/xymatrix.doc,v && co xymatrix.doc || : -xymisc10.mf:; test -d RCS -a -f RCS/xymisc10.mf,v && co xymisc10.mf || : -xymovie.doc:; test -d RCS -a -f RCS/xymovie.doc,v && co xymovie.doc || : -xyoztex.doc:; test -d RCS -a -f RCS/xyoztex.doc,v && co xyoztex.doc || : -xypic.doc:; test -d RCS -a -f RCS/xypic.doc,v && co xypic.doc || : -xypic.map:; test -d RCS -a -f RCS/xypic.map,v && co xypic.map || : -xypic.sty:; test -d RCS -a -f RCS/xypic.sty,v && co xypic.sty || : -xypoly.doc:; test -d RCS -a -f RCS/xypoly.doc,v && co xypoly.doc || : -xyps-c.doc:; test -d RCS -a -f RCS/xyps-c.doc,v && co xyps-c.doc || : -xyps-col.doc:; test -d RCS -a -f RCS/xyps-col.doc,v && co xyps-col.doc || : -xyps-dto.doc:; test -d RCS -a -f RCS/xyps-dto.doc,v && co xyps-dto.doc || : -xyps-dvi.doc:; test -d RCS -a -f RCS/xyps-dvi.doc,v && co xyps-dvi.doc || : -xyps-f.doc:; test -d RCS -a -f RCS/xyps-f.doc,v && co xyps-f.doc || : -xyps-l.doc:; test -d RCS -a -f RCS/xyps-l.doc,v && co xyps-l.doc || : -xyps-one.doc:; test -d RCS -a -f RCS/xyps-one.doc,v && co xyps-one.doc || : -xyps-oz.doc:; test -d RCS -a -f RCS/xyps-oz.doc,v && co xyps-oz.doc || : -xyps-pro.doc:; test -d RCS -a -f RCS/xyps-pro.doc,v && co xyps-pro.doc || : -xyps-ps.doc:; test -d RCS -a -f RCS/xyps-ps.doc,v && co xyps-ps.doc || : -xyps-pub.doc:; test -d RCS -a -f RCS/xyps-pub.doc,v && co xyps-pub.doc || : -xyps-r.doc:; test -d RCS -a -f RCS/xyps-r.doc,v && co xyps-r.doc || : -xyps-s.doc:; test -d RCS -a -f RCS/xyps-s.doc,v && co xyps-s.doc || : -xyps-t.doc:; test -d RCS -a -f RCS/xyps-t.doc,v && co xyps-t.doc || : -xyps-txo.doc:; test -d RCS -a -f RCS/xyps-txo.doc,v && co xyps-txo.doc || : -xyps-txt.doc:; test -d RCS -a -f RCS/xyps-txt.doc,v && co xyps-txt.doc || : -xyps-wdo.doc:; test -d RCS -a -f RCS/xyps-wdo.doc,v && co xyps-wdo.doc || : -xyps.doc:; test -d RCS -a -f RCS/xyps.doc,v && co xyps.doc || : -xypsdict.doc:; test -d RCS -a -f RCS/xypsdict.doc,v && co xypsdict.doc || : -xypspatt.doc:; test -d RCS -a -f RCS/xypspatt.doc,v && co xypspatt.doc || : -xyqc10.mf:; test -d RCS -a -f RCS/xyqc10.mf,v && co xyqc10.mf || : -xyrecat.doc:; test -d RCS -a -f RCS/xyrecat.doc,v && co xyrecat.doc || : -xyrefer.man:; test -d RCS -a -f RCS/xyrefer.man,v && co xyrefer.man || : -xyrotate.doc:; test -d RCS -a -f RCS/xyrotate.doc,v && co xyrotate.doc || : -xysmart.doc:; test -d RCS -a -f RCS/xysmart.doc,v && co xysmart.doc || : -xysource.man:; test -d RCS -a -f RCS/xysource.man,v && co xysource.man || : -xystyle.doc:; test -d RCS -a -f RCS/xystyle.doc,v && co xystyle.doc || : -xytech.mf:; test -d RCS -a -f RCS/xytech.mf,v && co xytech.mf || : -xytest.mf:; test -d RCS -a -f RCS/xytest.mf,v && co xytest.mf || : -xytex.ini:; test -d RCS -a -f RCS/xytex.ini,v && co xytex.ini || : -xytextures.doc:; test -d RCS -a -f RCS/xytextures.doc,v && co xytextures.doc || : -xytile.doc:; test -d RCS -a -f RCS/xytile.doc,v && co xytile.doc || : -xytips.doc:; test -d RCS -a -f RCS/xytips.doc,v && co xytips.doc || : -xytp-f.doc:; test -d RCS -a -f RCS/xytp-f.doc,v && co xytp-f.doc || : -xytpic.doc:; test -d RCS -a -f RCS/xytpic.doc,v && co xytpic.doc || : -xyv2.doc:; test -d RCS -a -f RCS/xyv2.doc,v && co xyv2.doc || : -xyweb.doc:; test -d RCS -a -f RCS/xyweb.doc,v && co xyweb.doc || : -xyxdvi.doc:; test -d RCS -a -f RCS/xyxdvi.doc,v && co xyxdvi.doc || : - - -# DEVELOPMENT TARGETS: -# -.PHONY: Install.macros Install Ftpsrc Ftpdoc Ftp World Minor - -Install.macros: - $(MAKE) USR=$$HOME/pub install.macros - -Install: - $(MAKE) USR=$$HOME/pub install - -Ftpsrc: - $(MAKE) MODES='ljfour cx' \ - MAGS='0 0.5 1 2' \ - FTPROOT=$$HOME/public_ftp/TeX ftpsrc - -Ftpdoc: - $(MAKE) MODES='ljfour cx' \ - MAGS='0 0.5 1 2' \ - FTPROOT=$$HOME/public_ftp/TeX ftpdoc - -Ftp: - $(MAKE) MODES='ljfour cx' \ - MAGS='0 0.5 1 2' \ - FTPROOT=$$HOME/public_ftp/TeX ftp - -Www: - $(MAKE) WWWROOT=$$HOME/public_html install.www - -World: - $(MAKE) LATEX='time latex' \ - MODES='ljfour cx' \ - MAGS='0 0.5 1 2' world - mv make.world make.World - -TMPFTPROOT = $$HOME/tmp/new-ftp-root - -Minor: - $(MKDIR) $(TMPFTPROOT) - $(MAKE) LATEX='time latex' \ - MODES='ljfour cx' \ - MAGS='0 0.5 1 2' \ - FTPROOT=$(TMPFTPROOT) world - mv make.world make.Minor -# - @echo "Making patch:";\ - cd $(TMPFTPROOT); \ - diff -urN $(FTPROOT)/xy-$(VERSION) xy-$(VERSION) > FIX; \ - n=`cd $(FTPROOT);ls xy$(SHORTVERSION)fix* | wc -w 2>/dev/null`; \ - n=`expr $$n + 1`; \ - fix=$(FTPROOT)/xy$(SHORTVERSION)fix`printf '%.2d' $$n`; \ - cp -vf FIX $$fix; gzip -v9 $$fix -# - @echo "Updating real ftp archive $(FTPROOT):";\ - cd $(TMPFTPROOT); \ - find xy* -type f -print \ - | while read f;\ - do cmp -s $$f $(FTPROOT)/$$f\ - || { echo $$f; $(MKDIR) `dirname $(FTPROOT)/$$f`;\ - if [ -w $$f ]; then $(INSTALLW) $$f $(FTPROOT)/$$f;\ - else $(INSTALL) $$f $(FTPROOT)/$$f;\ - fi; };\ - done - $(RM) $(TMPFTPROOT) - - -# LOG -# -# $Log: Makefile,v $ -# Revision 3.7 1999/02/16 15:12:50 krisrose -# Interim release (Y&Y fonts now free). -# -# Revision 3.6 1998/03/06 01:28:05 krisrose -# Releasing (with Y&Y fonts). -# -# Revision 3.5 1997/05/28 13:05:01 krisrose -# Fixed missing breaks bug. -# -# Revision 3.4 1997/05/18 03:04:44 krisrose -# Essential bugfixes. -# And movies now included! -# -# Revision 3.3 1996/12/19 17:05:13 krisrose -# Maintenance release! -# -# Revision 3.2 1995/09/19 18:22:27 kris -# Bug fix release. -# -# Revision 3.1 1995/09/05 20:31:32 kris -# Releasing! -# -# Revision 3.0 1995/07/07 20:14:21 kris -# Major release w/new User's Guide! -# -# Revision 2.14 1995/07/06 02:56:02 kris -# Buglets... -# -# Revision 2.13 1995/07/04 15:10:01 kris -# Ready to release v3? -# -# Revision 2.12 1994/10/25 11:46:25 kris -# Interim release just before v3 [works with AMS-LaTeX 1.2]... -# -# Revision 2.11 1994/07/05 10:37:32 kris -# Third 3beta release [bug fixes]. -# Experimental graph feature included (for ECCT-94 presentation). -# -# Revision 2.10 1994/06/15 13:35:19 kris -# Second 3beta release [bug fixes]. -# -# Revision 2.9 1994/06/09 14:53:07 kris -# Release 3beta. -# -# Revision 2.8 1994/04/08 04:30:00 kris -# Second (bug fix) 3alpha release. -# -# Revision 2.7 1994/03/08 02:06:01 kris -# Release 3alpha. -# -# Revision 2.6.9.1 1994/03/07 04:22:46 kris -# Last internal 3alpha and pre-2.7 release. -# -# MAJOR REORGANISATION for version 2.7... -# -# Revision 2.6 1992/06/24 01:23:34 kris -# Ready to release v.2.6. -# -# Revision 2.5 1992/02/24 03:30:54 kris -# Default magsteps now just 0, 0.5, 1, and 2. -# -# Revision 2.3 1992/01/13 02:12:28 kris -# Fixed installation instructions and other details. -# -# Revision 2.1 1992/01/02 14:54:07 kris -# Release version. -# -# Revision 1.6 1991/12/17 04:51:16 kris -# Version distributed with `final draft' on Usenet. - -# Tell Emacs that this is a Makefile and how it is formatted: -# Local Variables: -# mode:fundamental -# fill-prefix:"# " -# fill-column:77 -# End: diff --git a/Master/texmf-dist/source/generic/xypic/README b/Master/texmf-dist/source/generic/xypic/README deleted file mode 100644 index 9cb813a4cb6..00000000000 --- a/Master/texmf-dist/source/generic/xypic/README +++ /dev/null @@ -1,106 +0,0 @@ --*-text-*- $Id: README,v 3.6 1998/03/06 01:28:05 krisrose Exp $ - - ====================================================== - THE Xy-pic PACKAGE FOR TYPESETTING GRAPHS AND DIAGRAMS - ====================================================== - -Xy-pic is a package for typesetting graphs and diagrams with TeX. - -It works with most formats, including LaTeX (both 2.09 and 2e), -AMS-LaTeX, AMS-TeX, and plain TeX. - -It has been used to typeset complicated diagrams from many application -areas including category theory, automata theory, algebra, neural -networks, and database theory. - - - o - - -See below in this file for an overview of the structure and features! -See CATALOG for up to date version information! -See TRAILER for author and accessibility information! -See COPYING for the conditions for redistribution and modification! -See MANIFEST for a complete file list! -See VERSIONS for the exact list of the versions of all source files! -See the various INSTALL files for how to install Xy-pic on your system! -See the W3 <URL: http://www.ens-lyon.fr/~krisrose/Xy-pic.html> for news! - - - o - - -Xy-pic is structured as a `kernel' and several orthogonal modules called -`options', each defining a custom notation for a particular kind of -graphical object or structure. - -These (combinable) structures are available: - -* A graph combinator mode where diagrams are specified the way they are - composed as graphs. - -* A matrix-like mode where the dimensions of the drawing are computed by - aligning diagram entries in rows and columns (this is the `diagram' - mode Xy-pic version 2 users are used to). - -* A polygon mode where diagrams shaped as regular polygons are entered - in a simple way. - -* A mode for typesetting beautiful knots and links. - -* A general object-oriented `turtle graphic' drawing language for - specifying graphs with objects and connections between them in a - manner independent of orientation. - -The following objects may be used: - -+ Positions can be given in variety of formats (extendable) including - user defined coordinates (x,y) and relative to previous positions, - objects, object edges, and points on connections. - -+ Objects may be circular, elliptic, or rectangular (more shapes can be - added) and adjusted in several ways. - -+ Large library of objects with mnemonic names. - -+ Objects that orient themself along a connection when placed relative - to it, e.g., `\dir{|-}' is like \vdash but thus oriented; new such - objects can be defined in a convenient way. - -+ TeX `boxes', i.e., text and mathematical formulae. - -+ Includes circle segments and optionally arbitrary elliptical, - quadratic, and cubic arcs. - -+ Connections are aligned between the reference points of objects but - start and end on the edges. - -+ Any object can be used to build a connection (using `diagonal - filling'); library objects provide common line types. - -+ Flexible notation for drawing arrows and general paths with tail, - stem, and head built from any object(s). Special support for arrows - that cross each other, arrows that `go by' other entries, paired - arrows (including support for 2-cells), curved arrows, and arrows with - bends. - -+ Library of frames and braces. - -+ Special notation for rotation, scaling, colour, and line thickness. - The correct typesetting of these features requires a backend that - supports it (i.e., PostScript) but even when this is not available - Xy-pic tries to approximate what is requested such that at least the - picture size is stable (and thus page breaks). - -+ Output can use PostScript for drawing (several \special formats are - supported: dvips, Textures, and OzTeX -- more are being added - continuously: contact Ross Moore <ross@mpce.mq.edu.au> for the current - list). Notation for inclusion of literal PostScript is available. - -* Other graphics can be imported and then `decorated' using Xy-pic. - -All object forms may be used with all structures. - - - o - - -Finally, enjoy Xy-pic! - -Sincerely, - Kristoffer H. Rose <krisrose@ens-lyon.fr> - Ross Moore <ross@mpce.mq.edu.au> diff --git a/Master/texmf-dist/source/generic/xypic/TRAILER b/Master/texmf-dist/source/generic/xypic/TRAILER deleted file mode 100644 index 0910c672a83..00000000000 --- a/Master/texmf-dist/source/generic/xypic/TRAILER +++ /dev/null @@ -1,91 +0,0 @@ --*-text-*- $Id: TRAILER,v 3.7 1999/02/16 15:12:50 krisrose Exp $ - -======================================================================= - ANNOUNCING the Xy-pic version 3.7 DIAGRAM TYPESETTING PACKAGE -======================================================================= - -This is to announce a release of my diagram typesetting package Xy-pic. - -With version 3.7 we explicitly grant permission to use the unmodified -Xy-pic fonts and specials in distributed documents. - ------------------------------------------------------------------------ - GENERAL ------------------------------------------------------------------------ - -Xy-pic is a package for typesetting a variety of graphs and diagrams -with TeX. Xy-pic works with most formats (including LaTeX, AMS-LaTeX, -AMS-TeX, and plain TeX), in particular Xy-pic is provided as a LaTeX2e -`supported package' (following the `CTAN LaTeX2e bundle' standard). - -Further specifics of the package are in the distribution README file. - ------------------------------------------------------------------------ - NEWS ------------------------------------------------------------------------ - -The primary purpose of release 3.7 is the granting of special permission -to copy the Xy-pic fonts and graphic specials inside documents, for -example in DVI, PostScript, and PDF files. This has no practical -significance except making current (reasonable) practice explicitly -legal. - -Release 3.7 furthermore fixes a few bugs in release 3.6 and adds a few -features: a "smart turning path" feature and an extension with macro -expansion in kernel expressions and polygon shapes by George C. Necula, -and the beginnings of an emulation of LaTeX picture mode proposed by -Paul Burchard and Bill Richter. - -Special thanks to George Necula for the bug fixes and impressive -extensions, to Bill Richter for extending Paul Burchard's pb-diagram to -use Xy-pic as a backend and for contributing the `picture' feature, to -Berthold Horn of Y&Y Inc. for releasing the copyright on their -PostScript fonts, and to Pieter Donche and Marcelo Cunha dos Santos for -the bug reports. - ------------------------------------------------------------------------ - AVAILABILITY ------------------------------------------------------------------------ - -Xy-pic can be retrieved through the World Wide Web Xy-pic `home page': - - URL: http://www.ens-lyon.fr/~krisrose/Xy-pic.html - -as well as by anonymous ftp from - - CTAN: macros/generic/diagrams/xypic - -Check the README file in each location for specifics, in particular -check that you have reached a version 3.7 copy (some archives take a -while to mirror the latest files)! - ------------------------------------------------------------------------ - HISTORY & CREDITS ------------------------------------------------------------------------ - -The first public release (version 1.40) of Xy-pic was created by -Kristoffer H. Rose, DIKU, U of Copenhagen (now ENS-Lyon, France) and -distributed via Usenet on December 19, 1991. This quickly became -version 2 of which version 2.6 was the stable for sevarl years. - -The thorough rewrite that became version 3 is a continued -collaboration with Ross Moore, Macquarie U, Sydney, initiated through -a visit to Macquarie (Jan-May 1994 supported by the Australian -Research Council, Macquarie University, and using donated DEC -equipment). However, full backwards compatibility is maintained -(except for the unavoidable but fully documented obscure cases). - -Xy-pic is Copyright (c) 1991-1998 by Kristoffer H. Rose and 1994-1998 -by Ross Moore under GNU COPYLEFT (GPL) which means that you can use -the package for any purpose but if you provide the macros or any code -derived from them to a third party then you are obliged to include the -entire Xy-pic package (full details in the file COPYING). The -PostScript fonts are additionally Copyright (c) 1997 Y&Y Inc. The -FONTCOPYING file details the special permissions to distribute fonts -without the full requirements of the GPL. - ------------------------------------------------------------------------ - - This is the end of the announcement. Enjoy Xy-pic! - ------------------------------------------------------------------------ diff --git a/Master/texmf-dist/source/generic/xypic/VERSIONS b/Master/texmf-dist/source/generic/xypic/VERSIONS deleted file mode 100644 index 8dd98c1cd2e..00000000000 --- a/Master/texmf-dist/source/generic/xypic/VERSIONS +++ /dev/null @@ -1,103 +0,0 @@ -$Id: CATALOG.doc,v 3.6 1998/03/06 04:29:05 krisrose Exp $ -$Id: INSTALL,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: INSTALL.OzTeX,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: INSTALL.Textures,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: MAKE,v 3.5 1997/05/28 22:40:26 krisrose Exp $ -$Id: Makefile,v 3.7 1999/02/16 15:12:50 krisrose Exp krisrose $ -$Id: README,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: TRAILER,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: dvitogif89a,v 3.5 1997/05/28 13:05:01 krisrose Exp $ -$Id: install-tds,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: latin1.sty,v 3.4 1997/05/18 03:04:44 krisrose Exp $ -$Id: movie.cls,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -$Id: pnmrawtopcropwhite.c,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: pnmrawtopcropwhite.c,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xy.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xy.sty,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xy16textures.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -$Id: xy17oztex.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -$Id: xy2cell.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -$Id: xyall.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xyarc.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: xyarrow.doc,v 3.5 1997/05/28 13:05:01 krisrose Exp $ -$Id: xyatip.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyatip10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xybsql10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xybtip.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xybtip10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycirc10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycm.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmactex.doc,v 3.3 1996/12/18 08:54:25 ross Exp $ -$Id: xycmat10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmat11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmat12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmbt10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmbt11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmbt12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xycmtip.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xycolor.doc,v 3.3 1996/12/19 03:50:08 ross Exp $ -$Id: xycrayon.doc,v 3.3 1996/12/18 08:58:16 ross Exp $ -$Id: xycurve.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyd.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyd2.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xydash10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xydoc.bib,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xydoc.sty,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xydocps.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xydummy.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xydvidrv.doc,v 3.3 1996/12/18 09:12:40 ross Exp $ -$Id: xydvips.doc,v 3.3 1996/12/18 09:13:14 ross Exp $ -$Id: xydvitops.doc,v 3.3 1996/12/18 09:14:36 ross Exp $ -$Id: xyemtex.doc,v 3.3 1996/12/18 09:18:00 ross Exp $ -$Id: xyeuat10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeuat11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeuat12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeubt10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeubt11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeubt12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyeuler.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyframe.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xygraph.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyguide.man,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xyidioms.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -$Id: xyimport.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xyknot.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: xylatex.ini,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xyline.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -$Id: xyline10.mf,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xymacpat.xyp,v 3.3 1996/12/18 09:25:21 ross Exp $ -$Id: xymatrix.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -$Id: xymisc10.mf,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xymovie.doc,v 3.5 1997/05/28 13:05:01 krisrose Exp $ -$Id: xyoztex.doc,v 3.3 1996/12/18 09:26:26 ross Exp $ -$Id: xypic.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xypic.map,v 3.7 1999/02/16 15:12:50 krisrose Exp krisrose $ -$Id: xypic.sty,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xypoly.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-c.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-col.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-f.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-l.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-pro.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-ps.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-r.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-s.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps-t.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyps.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xypsdict.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xypspatt.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyqc10.mf,v 3.0 1995/07/07 20:14:21 kris Exp $ -$Id: xyrecat.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xyrefer.man,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xyrotate.doc,v 3.3 1996/12/18 09:40:16 ross Exp $ -$Id: xytech.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -$Id: xytest.mf,v 3.3 1996/12/19 04:33:25 krisrose Exp $ -$Id: xytex.ini,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -$Id: xytextures.doc,v 3.3 1996/12/18 09:41:45 ross Exp $ -$Id: xytile.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -$Id: xytips.doc,v 3.3 1996/12/19 04:12:13 krisrose Exp $ -$Id: xytp-f.doc,v 3.3 1996/12/18 09:49:07 ross Exp $ -$Id: xytpic.doc,v 3.3 1996/12/18 09:50:38 ross Exp $ -$Id: xyv2.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -$Id: xyweb.doc,v 3.3 1996/12/18 09:52:11 ross Exp $ -$Id: xyxdvi.doc,v 3.3 1996/12/18 09:53:22 ross Exp $ diff --git a/Master/texmf-dist/source/generic/xypic/doc2tex.com b/Master/texmf-dist/source/generic/xypic/doc2tex.com deleted file mode 100644 index c8d8f04f8be..00000000000 --- a/Master/texmf-dist/source/generic/xypic/doc2tex.com +++ /dev/null @@ -1,114 +0,0 @@ -$!+++ -$! -$! DOC2TEX.COM -$! -$! This procedure creates the *.TEX files from the *.DOC files of the XYpic -$! package. It must be run from the XYpic source directory. -$! -$! R.Gaertner, based on personal communication with K.H.Rose -$! -$!--- -$ set noon -$! -$! loop over all files -$! -$file_loop: -$ file = f$search("*.doc",1) -$ if file .nes. "" -$ then -$ write sys$output "processing ''file' ..." -$ ! -$ ! get the filename and open a temporary work file -$ ! -$ name = f$parse(file,,,"NAME") -$ open/write tmp 'name'.tmp -$ open/read src 'file' -$ ! -$ ! set control flags -$ ! -$ hdr = "TRUE" -$ skip = "FALSE" -$ ! -$ ! loop through the source file -$ ! -$ line = "" -$loop: -$ read/end=end_loop src line -$ if hdr -$ then ! copy the lines from start to the first "\DOCMODE" line -$ if (f$length(line) .ge. 8) .and. (f$extract(0,8,line) .eqs. "\DOCMODE") -$ then hdr = "FALSE" -$ skip = "TRUE" ! stop copying -$ goto loop -$ endif -$ ! the first \DOCMODE-line may also indicate the start of the body part -$ if (f$length(line) .ge. 9) .and. (f$extract(0,9,line) .eqs. "\DOCMODE(") -$ then skip = "FALSE" ! start copying -$ goto loop -$ endif -$ else ! extract the lines between "\DOCMODE(" and "\DOCMODE)" -$ if (f$length(line) .ge. 9) .and. (f$extract(0,9,line) .eqs. "\DOCMODE(") -$ then skip = "FALSE" ! start copying -$ goto loop -$ endif -$ if (f$length(line) .ge. 9) .and. (f$extract(0,9,line) .eqs. "\DOCMODE)") -$ then skip = "TRUE" ! stop copying -$ goto loop -$ endif -$ endif -$ ! -$ ! skip empty lines -$ ! -$ if f$edit(line,"COLLAPSE") .eqs. "" then goto loop -$ ! -$ ! skip comment lines (starting with a single percent character) -$ ! -$ if (line .eqs. "%") .or. - - ((f$length(line) .ge. 2) .and. - - (f$extract(0,1,line) .eqs. "%") .and. - - (f$extract(1,1,line) .nes. "%")) then goto loop -$ ! -$ ! all preprocessing & checks done, copy the input line -$ ! -$ if .not. skip then write tmp line -$ goto loop -$ ! -$ ! close source & work file -$ ! -$end_loop: -$ close tmp -$ close src -$ ! -$ ! convert the work file to standard text format and delete the work file -$ ! -$ if f$search("text.fdl",2) .eqs. "" -$ then create text.fdl -SYSTEM - SOURCE OpenVMS - -FILE - ORGANIZATION sequential - -RECORD - BLOCK_SPAN yes - CARRIAGE_CONTROL carriage_return - FORMAT variable - SIZE 0 - -$ endif -$ convert/fdl=text.fdl 'name'.tmp 'name'.tex -$ delete/nolog 'name'.tmp;* -$ ! -$ ! process the next source -$ ! -$ goto file_loop -$ endif -$ write sys$output "all done" -$! -$! clean up -$! -$ delete/nolog text.fdl;* -$ -$ exit -$! -$! End of DOC2TEX.COM diff --git a/Master/texmf-dist/source/generic/xypic/import1.eps b/Master/texmf-dist/source/generic/xypic/import1.eps deleted file mode 100644 index 8f0b61238b3..00000000000 --- a/Master/texmf-dist/source/generic/xypic/import1.eps +++ /dev/null @@ -1,1550 +0,0 @@ -%!PS-Adobe-2.0 EPSF-1.2 -%%BoundingBox: 0 0 261 261 -%%Creator: Macintosh Mathematica Notebook Front End Version 2.2 -%%Title: Clipboard -%%CreationDate: Thursday, 29 June 1995 7:24:17 PM -%%EndComments -150 dict begin -/Mfixwid true def -/Mrot 0 def -/Mpstart { - MathPictureStart -} bind def -/Mpend { - MathPictureEnd -} bind def -/Mscale { - 0 1 0 1 - 5 -1 roll - MathScale -} bind def -/Plain /Courier findfont def -/Bold /Courier-Bold findfont def -/Italic /Courier-Oblique findfont def -/MathPictureStart { - /Mimatrix - matrix currentmatrix - def - gsave - newpath - Mleft - Mbottom - translate - 1 -1 scale - /Mtmatrix - matrix currentmatrix - def - Plain - Mfontsize scalefont - setfont - 0 setgray - 0 setlinewidth -} bind def -/MathPictureEnd { - grestore -} bind def -/MathSubStart { - Momatrix - Mgmatrix Mtmatrix - Mleft Mbottom - Mwidth Mheight - 9 -2 roll - moveto - Mtmatrix setmatrix - currentpoint - Mgmatrix setmatrix - 11 -2 roll - moveto - Mtmatrix setmatrix - currentpoint - 2 copy translate - /Mtmatrix matrix currentmatrix def - /Mleft 0 def - /Mbottom 0 def - 3 -1 roll - exch sub - /Mheight exch def - sub - /Mwidth exch def -} bind def -/MathSubEnd { - /Mheight exch def - /Mwidth exch def - /Mbottom exch def - /Mleft exch def - /Mtmatrix exch def - dup setmatrix - /Mgmatrix exch def - /Momatrix exch def -} bind def -/Mdot { - moveto - 0 0 rlineto - stroke -} bind def -/Mtetra { - moveto - lineto - lineto - lineto - fill -} bind def -/Metetra { - moveto - lineto - lineto - lineto - closepath - gsave - fill - grestore - 0 setgray - stroke -} bind def -/Mistroke { - flattenpath - 0 0 0 - { - 4 2 roll - pop pop - } - { - 4 -1 roll - 2 index - sub dup mul - 4 -1 roll - 2 index - sub dup mul - add sqrt - 4 -1 roll - add - 3 1 roll - } - { - stop - } - { - stop - } - pathforall - pop pop - currentpoint - stroke - moveto - currentdash - 3 -1 roll - add - setdash -} bind def -/Mfstroke { - stroke - currentdash - pop 0 - setdash -} bind def -/Mrotsboxa { - gsave - dup - /Mrot - exch def - Mrotcheck - Mtmatrix - dup - setmatrix - 7 1 roll - 4 index - 4 index - translate - rotate - 3 index - -1 mul - 3 index - -1 mul - translate - /Mtmatrix - matrix - currentmatrix - def - grestore - Msboxa - 3 -1 roll - /Mtmatrix - exch def - /Mrot - 0 def -} bind def -/Msboxa { - newpath - 5 -1 roll - Mvboxa - pop - Mboxout - 6 -1 roll - 5 -1 roll - 4 -1 roll - Msboxa1 - 5 -3 roll - Msboxa1 - Mboxrot - [ - 7 -2 roll - 2 copy - [ - 3 1 roll - 10 -1 roll - 9 -1 roll - ] - 6 1 roll - 5 -2 roll - ] -} bind def -/Msboxa1 { - sub - 2 div - dup - 2 index - 1 add - mul - 3 -1 roll - -1 add - 3 -1 roll - mul -} bind def -/Mvboxa { - Mfixwid - { - Mvboxa1 - } - { - dup - Mwidthcal - 0 exch - { - add - } - forall - exch - Mvboxa1 - 4 index - 7 -1 roll - add - 4 -1 roll - pop - 3 1 roll - } - ifelse -} bind def -/Mvboxa1 { - gsave - newpath - [ true - 3 -1 roll - { - Mbbox - 5 -1 roll - { - 0 - 5 1 roll - } - { - 7 -1 roll - exch sub - (m) stringwidth pop - .3 mul - sub - 7 1 roll - 6 -1 roll - 4 -1 roll - Mmin - 3 -1 roll - 5 index - add - 5 -1 roll - 4 -1 roll - Mmax - 4 -1 roll - } - ifelse - false - } - forall - { stop } if - counttomark - 1 add - 4 roll - ] - grestore -} bind def -/Mbbox { - 1 dict begin - 0 0 moveto % str - /temp (T) def - { gsave - currentpoint newpath moveto - temp 0 3 -1 roll put temp - false charpath flattenpath currentpoint - pathbbox - grestore moveto lineto moveto} forall - pathbbox - newpath - end -} bind def -/Mmin { - 2 copy - gt - { exch } if - pop -} bind def -/Mmax { - 2 copy - lt - { exch } if - pop -} bind def -/Mrotshowa { - dup - /Mrot - exch def - Mrotcheck - Mtmatrix - dup - setmatrix - 7 1 roll - 4 index - 4 index - translate - rotate - 3 index - -1 mul - 3 index - -1 mul - translate - /Mtmatrix - matrix - currentmatrix - def - Mgmatrix setmatrix - Mshowa - /Mtmatrix - exch def - /Mrot 0 def -} bind def -/Mshowa { - 4 -2 roll - moveto - 2 index - Mtmatrix setmatrix - Mvboxa - 7 1 roll - Mboxout - 6 -1 roll - 5 -1 roll - 4 -1 roll - Mshowa1 - 4 1 roll - Mshowa1 - rmoveto - currentpoint - Mfixwid - { - Mshowax - } - { - Mshoway - } - ifelse - pop pop pop pop - Mgmatrix setmatrix -} bind def -/Mshowax { - 0 1 - 4 index length - -1 add - { - 2 index - 4 index - 2 index - get - 3 index - add - moveto - 4 index - exch get - show - } for -} bind def -/Mshoway { - 3 index - Mwidthcal - 5 1 roll - 0 1 - 4 index length - -1 add - { - 2 index - 4 index - 2 index - get - 3 index - add - moveto - 4 index - exch get - [ - 6 index - aload - length - 2 add - -1 roll - { - pop - Strform - stringwidth - pop - neg - exch - add - 0 rmoveto - } - exch - kshow - cleartomark - } for - pop -} bind def -/Mwidthcal { - [ - exch - { - Mwidthcal1 - } - forall - ] - [ - exch - dup - Maxlen - -1 add - 0 1 - 3 -1 roll - { - [ - exch - 2 index - { - 1 index - Mget - exch - } - forall - pop - Maxget - exch - } - for - pop - ] - Mreva -} bind def -/Mreva { - [ - exch - aload - length - -1 1 - {1 roll} - for - ] -} bind def -/Mget { - 1 index - length - -1 add - 1 index - ge - { - get - } - { - pop pop - 0 - } - ifelse -} bind def -/Maxlen { - [ - exch - { - length - } - forall - Maxget -} bind def -/Maxget { - counttomark - -1 add - 1 1 - 3 -1 roll - { - pop - Mmax - } - for - exch - pop -} bind def -/Mwidthcal1 { - [ - exch - { - Strform - stringwidth - pop - } - forall - ] -} bind def -/Strform { - /tem (x) def - tem 0 - 3 -1 roll - put - tem -} bind def -/Mshowa1 { - 2 copy - add - 4 1 roll - sub - mul - sub - -2 div -} bind def -/MathScale { - Mwidth - Mheight - Mlp - translate - scale - /yscale exch def - /ybias exch def - /xscale exch def - /xbias exch def - /Momatrix - xscale yscale matrix scale - xbias ybias matrix translate - matrix concatmatrix def - /Mgmatrix - matrix currentmatrix - def -} bind def -/Mlp { - 3 copy - Mlpfirst - { - Mnodistort - { - Mmin - dup - } if - 4 index - 2 index - 2 index - Mlprun - 11 index - 11 -1 roll - 10 -4 roll - Mlp1 - 8 index - 9 -5 roll - Mlp1 - 4 -1 roll - and - { exit } if - 3 -1 roll - pop pop - } loop - exch - 3 1 roll - 7 -3 roll - pop pop pop -} bind def -/Mlpfirst { - 3 -1 roll - dup length - 2 copy - -2 add - get - aload - pop pop pop - 4 -2 roll - -1 add - get - aload - pop pop pop - 6 -1 roll - 3 -1 roll - 5 -1 roll - sub - div - 4 1 roll - exch sub - div -} bind def -/Mlprun { - 2 copy - 4 index - 0 get - dup - 4 1 roll - Mlprun1 - 3 copy - 8 -2 roll - 9 -1 roll - { - 3 copy - Mlprun1 - 3 copy - 11 -3 roll - /gt Mlpminmax - 8 3 roll - 11 -3 roll - /lt Mlpminmax - 8 3 roll - } forall - pop pop pop pop - 3 1 roll - pop pop - aload pop - 5 -1 roll - aload pop - exch - 6 -1 roll - Mlprun2 - 8 2 roll - 4 -1 roll - Mlprun2 - 6 2 roll - 3 -1 roll - Mlprun2 - 4 2 roll - exch - Mlprun2 - 6 2 roll -} bind def -/Mlprun1 { - aload pop - exch - 6 -1 roll - 5 -1 roll - mul add - 4 -2 roll - mul - 3 -1 roll - add -} bind def -/Mlprun2 { - 2 copy - add 2 div - 3 1 roll - exch sub -} bind def -/Mlpminmax { - cvx - 2 index - 6 index - 2 index - exec - { - 7 -3 roll - 4 -1 roll - } if - 1 index - 5 index - 3 -1 roll - exec - { - 4 1 roll - pop - 5 -1 roll - aload - pop pop - 4 -1 roll - aload pop - [ - 8 -2 roll - pop - 5 -2 roll - pop - 6 -2 roll - pop - 5 -1 roll - ] - 4 1 roll - pop - } - { - pop pop pop - } ifelse -} bind def -/Mlp1 { - 5 index - 3 index sub - 5 index - 2 index mul - 1 index - le - 1 index - 0 le - or - dup - not - { - 1 index - 3 index div - .99999 mul - 8 -1 roll - pop - 7 1 roll - } - if - 8 -1 roll - 2 div - 7 -2 roll - pop sub - 5 index - 6 -3 roll - pop pop - mul sub - exch -} bind def -/intop 0 def -/inrht 0 def -/inflag 0 def -/outflag 0 def -/xadrht 0 def -/xadlft 0 def -/yadtop 0 def -/yadbot 0 def -/Minner { - outflag - 1 - eq - { - /outflag 0 def - /intop 0 def - /inrht 0 def - } if - 5 index - gsave - Mtmatrix setmatrix - Mvboxa pop - grestore - 3 -1 roll - pop - dup - intop - gt - { - /intop - exch def - } - { pop } - ifelse - dup - inrht - gt - { - /inrht - exch def - } - { pop } - ifelse - pop - /inflag - 1 def -} bind def -/Mouter { - /xadrht 0 def - /xadlft 0 def - /yadtop 0 def - /yadbot 0 def - inflag - 1 eq - { - dup - 0 lt - { - dup - intop - mul - neg - /yadtop - exch def - } if - dup - 0 gt - { - dup - intop - mul - /yadbot - exch def - } - if - pop - dup - 0 lt - { - dup - inrht - mul - neg - /xadrht - exch def - } if - dup - 0 gt - { - dup - inrht - mul - /xadlft - exch def - } if - pop - /outflag 1 def - } - { pop pop} - ifelse - /inflag 0 def - /inrht 0 def - /intop 0 def -} bind def -/Mboxout { - outflag - 1 - eq - { - 4 -1 - roll - xadlft - leadjust - add - sub - 4 1 roll - 3 -1 - roll - yadbot - leadjust - add - sub - 3 1 - roll - exch - xadrht - leadjust - add - add - exch - yadtop - leadjust - add - add - /outflag 0 def - /xadlft 0 def - /yadbot 0 def - /xadrht 0 def - /yadtop 0 def - } if -} bind def -/leadjust { - (m) stringwidth pop - .5 mul -} bind def -/Mrotcheck { - dup - 90 - eq - { - yadbot - /yadbot - xadrht - def - /xadrht - yadtop - def - /yadtop - xadlft - def - /xadlft - exch - def - } - if - dup - cos - 1 index - sin - Checkaux - dup - cos - 1 index - sin neg - exch - Checkaux - 3 1 roll - pop pop -} bind def -/Checkaux { - 4 index - exch - 4 index - mul - 3 1 roll - mul add - 4 1 roll -} bind def -/Mboxrot { - Mrot - 90 eq - { - brotaux - 4 2 - roll - } - if - Mrot - 180 eq - { - 4 2 - roll - brotaux - 4 2 - roll - brotaux - } - if - Mrot - 270 eq - { - 4 2 - roll - brotaux - } - if -} bind def -/brotaux { - neg - exch - neg -} bind def -/Mabsproc { - 0 - matrix defaultmatrix - dtransform idtransform - dup mul exch - dup mul - add sqrt -} bind def -/Mabswid { - Mabsproc - setlinewidth -} bind def -/Mabsdash { - exch - [ - exch - { - Mabsproc - } - forall - ] - exch - setdash -} bind def -/MBeginOrig { Momatrix concat} bind def -/MEndOrig { Mgmatrix setmatrix} bind def -/sampledsound where -{ pop} -{ /sampledsound { -exch -pop -exch -5 1 roll -mul -4 idiv -mul -2 idiv -exch pop -exch -/Mtempproc exch def -{ Mtempproc pop } -repeat -} bind def -} ifelse -% Here are the short operators -/g { setgray} bind def -/k { setcmykcolor} bind def -/m { moveto} bind def -/p { gsave} bind def -/r { setrgbcolor} bind def -/w { setlinewidth} bind def -/C { curveto} bind def -/F { fill} bind def -/L { lineto} bind def -/P { grestore} bind def -/s { stroke} bind def - -/MFill { - 0 0 moveto - Mwidth 0 lineto - Mwidth Mheight lineto - 0 Mheight lineto - fill -} bind def - -/MPlotRegion { - 3 index - Mwidth mul - 2 index - Mheight mul - translate - exch sub - Mheight mul - /Mheight - exch def - exch sub - Mwidth mul - /Mwidth - exch def -} bind def - -/Mcharproc -{ - currentfile - (x) - readhexstring - pop - 0 get - exch - div -} bind def - -/Mshadeproc -{ - dup - 3 1 - roll - { - dup - Mcharproc - 3 1 - roll - } repeat - 1 eq - { - setgray - } - { - 3 eq - { - setrgbcolor - } - { - setcmykcolor - } ifelse - } ifelse -} bind def - -/Mrectproc -{ - 3 index - 2 index - moveto - 2 index - 3 -1 - roll - lineto - dup - 3 1 - roll - lineto - lineto - fill -} bind def - -/Mcolorimage -{ - 7 1 - roll - pop - pop - matrix - invertmatrix - concat - 2 exch exp - 1 sub - 3 1 roll - 1 1 - 2 index - { - 1 1 - 4 index - { - dup - 1 sub - exch - 2 index - dup - 1 sub - exch - 7 index - 9 index - Mshadeproc - Mrectproc - } for - pop - } for - pop pop pop pop -} bind def - -/Mimage -{ - pop - matrix - invertmatrix - concat - 2 exch exp - 1 sub - 3 1 roll - 1 1 - 2 index - { - 1 1 - 4 index - { - dup - 1 sub - exch - 2 index - dup - 1 sub - exch - 7 index - Mcharproc - setgray - Mrectproc - } for - pop - } for - pop pop pop -} bind def - -/Mnodistort true def -/colorimage {Mcolorimage} bind def -/image {Mimage} bind def -/Mleft 0.000000 def -/Mbottom 261.000000 def -/Mwidth 261.000000 def -/Mheight 261.000000 def -/Mfontsize 12 def -/Plain /Courier findfont def -0 Mbottom Mheight neg add 2 mul Mheight add translate -1 -1 scale -%! -%%Creator: Mathematica -%%AspectRatio: 1 -MathPictureStart -%% Graphics -/Courier findfont 10 scalefont setfont -% Scaling calculations -0.378378 0.27027 0.378378 0.27027 [ -[ -0.001 -0.001 0 0 ] -[ 1.001 1.001 0 0 ] -] MathScale -% Start of Graphics -1 setlinecap -1 setlinejoin -newpath -[ ] 0 setdash -0 g -p -p -.002 w -.10811 .37838 m -.10811 .38463 L -s -P -p -.002 w -.24324 .37838 m -.24324 .38463 L -s -P -p -.002 w -.51351 .37838 m -.51351 .38463 L -s -P -p -.002 w -.64865 .37838 m -.64865 .38463 L -s -P -p -.002 w -.78378 .37838 m -.78378 .38463 L -s -P -p -.002 w -.91892 .37838 m -.91892 .38463 L -s -P -p -.002 w -0 .37838 m -1 .37838 L -s -P -p -.002 w -.37838 .10811 m -.38463 .10811 L -s -P -p -.002 w -.37838 .24324 m -.38463 .24324 L -s -P -p -.002 w -.37838 .51351 m -.38463 .51351 L -s -P -p -.002 w -.37838 .64865 m -.38463 .64865 L -s -P -p -.002 w -.37838 .78378 m -.38463 .78378 L -s -P -p -.002 w -.37838 .91892 m -.38463 .91892 L -s -P -p -.002 w -.37838 0 m -.37838 1 L -s -P -P -0 0 m -1 0 L -1 1 L -0 1 L -closepath -clip -newpath -p -p -p -p -p -.006 w -s -s -s -s -s -s -s -0 .95591 m -.04471 .93809 L -s -.04471 .93809 m -.10223 .92042 L -.16426 .90735 L -.22976 .89945 L -.29759 .89604 L -.36661 .89539 L -.43563 .89515 L -.50347 .89293 L -.56897 .88661 L -.631 .87445 L -.68851 .85514 L -.74051 .82769 L -.78612 .79131 L -.82454 .74525 L -.85514 .68851 L -.87737 .61911 L -.89086 .53158 L -.89539 .38059 L -s -P -P -p -p -.006 w -.89539 .37617 m -.89664 .27804 L -.90039 .21894 L -.90657 .16913 L -.91507 .12436 L -.92574 .08289 L -.93841 .0438 L -.95286 .00657 L -s -.9558 0 m -.95286 .00657 L -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -P -P -P -P -p -p -p -p -p -.002 w -s -s -s -s -s -s -s -s -s -s -s -s -s -s -s -.69595 1 m -.77208 .69545 L -s -.77208 .69545 m -.85135 .37838 L -.92484 .08443 L -s -.94595 0 m -.92484 .08443 L -s -s -s -s -s -s -s -s -P -P -P -p -p -p -.002 w -s -s -s -s -s -s -0 .93436 m -.03574 .92926 L -s -.03574 .92926 m -.10219 .91976 L -.17568 .90927 L -.25494 .89794 L -.33864 .88599 L -.42532 .8736 L -.51351 .861 L -.60171 .8484 L -.68839 .83602 L -.77208 .82407 L -.85135 .81274 L -.92484 .80224 L -.99129 .79275 L -s -1 .79151 m -.99129 .79275 L -s -s -s -s -s -s -s -P -P -P -p -p -p -.002 w -s -s -s -s -s -s -.02703 1 m -.03574 .99129 L -s -.03574 .99129 m -.10219 .92484 L -.17568 .85135 L -.25494 .77208 L -.33864 .68839 L -.42532 .60171 L -.51351 .51351 L -.60171 .42532 L -.68839 .33864 L -.77208 .25494 L -.85135 .17568 L -.92484 .10219 L -.99129 .03574 L -s -1 .02703 m -.99129 .03574 L -s -s -s -s -s -s -s -P -P -P -p -p -p -.002 w -s -s -s -s -s -s -s -s -s -s -s -s -s -.56757 1 m -.60171 .96586 L -s -.60171 .96586 m -.68839 .87918 L -.77208 .79548 L -.85135 .71622 L -.92484 .64273 L -.99129 .57628 L -s -1 .56757 m -.99129 .57628 L -s -s -s -s -s -s -s -P -P -P -p -p -p -.002 w -s -s -s -s -s -s -s -s -.15505 1 m -.17568 .97937 L -s -.17568 .97937 m -.25494 .90011 L -.33864 .81641 L -.42532 .72973 L -.51351 .64154 L -.60171 .55334 L -.68839 .46666 L -.77208 .38297 L -.85135 .3037 L -.92484 .23021 L -.99129 .16376 L -s -1 .15505 m -.99129 .16376 L -s -s -s -s -s -s -s -P -P -P -P -P -.02 w -.10811 .91892 Mdot -.91892 .10811 Mdot -.73874 .82883 Mdot -.82883 .73874 Mdot -.25747 .89758 Mdot -.89758 .25747 Mdot -P -% End of Graphics -MathPictureEnd -%%PSTrailer -end - -%%EPS Trailer diff --git a/Master/texmf-dist/source/generic/xypic/kris.eps b/Master/texmf-dist/source/generic/xypic/kris.eps deleted file mode 100644 index 173f4e20770..00000000000 --- a/Master/texmf-dist/source/generic/xypic/kris.eps +++ /dev/null @@ -1,587 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: /net/tyr/home/tyr1/kris/Kris/pictures/kris-icon.ps -%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley -%%BoundingBox: 0 0 66 86 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%BeginPreview: 92 119 1 119 -% 5490000000003fffffffffff -% 5249000080123fffffffffff -% a924000124085fffffffffff -% 5210800041412fffffffffff -% 55450005bebb5bffffffffff -% a810802af7fed5ffffffffff -% 52a20017ffff7affffffffff -% 550840b5ffffedffffffffff -% 905100afffff573fffffffff -% 550485bffffffeefffffffff -% a950417fffffff5fffffffff -% 920217dffffffd7fffffffff -% 54a88abfffffb2afffffffff -% a90457fffffffc7fffffffff -% 52522efffffffffaffffffff -% 94809fffffffffffbff7524f -% 29143ffffffffffffffc000f -% a522d5fffffffffffffa800f -% 284977fffffffffff4fe040f -% a510adffffffffffdd3f010f -% 2a4357fffffffffff36fa00f -% 512a57ffffa75ffebcbf800f -% 5484b6ffff54af53febf400f -% 89156affff454dedd56fc00f -% 522aedfffe9256b6ff9fe00f -% 95456bfffd44894d766fe40f -% 201b72fff5505202addfe00f -% 048a7fdffa0204295b37708f -% 0014eabfd550008255dbb22f -% 000afd57a02008095137a88f -% 005cbd3fe808000254afd00f -% 005aa92a80020000a12ad00f -% 003ab555e1002204a84fd00f -% 005e2ea1000000414801a88f -% 0078f50a480000045257500f -% 00fb9ae000000002a002f80f -% 00f6fc90000000080883524f -% 00fff54000000012a029f5bf -% 01fff948000001200003bfff -% 03fef42000000000a909ffff -% 03fff940000000804005efff -% 07fd7a12000000000883ffff -% 03fdfc40000000001003f7ff -% 07fff11000000000452cffff -% 07fffa40000000001242bfff -% 07fff9900000000000a8dfff -% 07fffb400000000008053fff -% 07ffffa0000000000000afff -% 03fd6ba00000000000023fff -% 03dcffc20000000040005fff -% 039836d0000000000080bfff -% 03525f800000001000093fff -% 03009f1a0000490000003fff -% 0300bf06800914000002bfff -% 03102c41d0402a4800007fff -% 030055003401ff0200b73fff -% 050001000c0755a0022d7fff -% 020004200304022009ffffff -% 05000100008bc89003efffff -% 03000000006282004f80ffff -% 05000100002280081650ffff -% 03008400002022400d667fff -% 050000400000080819ccf3ff -% 01000004002000080886ffff -% 004000000040000010097fff -% 02800400000000080920ffff -% 008001000020000000047fff -% 00c0000000211012044107ff -% 006000040020000010100fff -% 00e000000000000001000fff -% 007001000010008008020fff -% 007808000008000000405fff -% 047c0000000401200408bfff -% 003e0000000294000402ffff -% 007c8100000000000301ffff -% 003c000000000000014bffff -% 007c0800000000080010ffff -% 003e0020000000000200ffff -% 003c0200000000800444ffff -% 001c0000000000010800ffff -% 002c0000000000083401ffff -% 00090000000000015013ffff -% 00180200002000004505ffff -% 00040000000800001043ffff -% 00080800002080000007ffff -% 001a0100000210045427ffff -% 000c000000100121000fffff -% 003c000000000004680fffff -% 003d040000040011c00fffff -% 003e010000008000201fffff -% 002f000000000000809fffff -% 002f000000022001403fffff -% 003b80000000000a803fffff -% 001fc10000000002417fffff -% 000ca0400000012080ffffff -% 000ce0000000000502ffffff -% 000350000000000011ffffff -% 0002a8000000002487ffffff -% 0000d4100000000007ffffff -% 0200aa00000000010fffffff -% 00004504000000841fffffff -% 00002a81000000201fffffff -% 00001540000020013fffffff -% 00000540400000043fffffff -% 00000a50000000007fffffff -% 000000a810000000ffffffff -% 0000010200200004ffffffff -% 0000008a02000000ffffffff -% 0000001480080401ffffffff -% 0000002540020007ffffffff -% 0000000aa0800017fffffdff -% 000000012001508ffffa00ff -% 0000000290040b7fffd100ff -% 000000002000eafffff400ff -% 00000000200255ffffc840ff -% 00000000500082fdfff512ff -% 00000000200000fffffb55ff -% 00000000000003ffefffffff -% 000000000000077fffffffff -%%EndPreview -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% define space for color conversions -/grays 92 string def % space for gray scale line -/npixls 0 def -/rgbindx 0 def - -% lower left corner -0 0 translate - -% size of image (on paper, in 1/72inch coords) -66.24000 85.68000 scale - -% define the colormap -/cmap 256 string def - - -% load up the colormap -currentfile cmap readhexstring -00 01 02 03 04 05 06 07 08 09 -0a 0b 0c 0d 0e 0f 10 11 12 13 -14 15 16 17 18 19 1a 1b 1c 1d -1e 1f 20 21 22 23 24 25 26 27 -28 29 2a 2b 2c 2d 2e 2f 30 31 -32 33 34 35 36 37 38 39 3a 3b -3c 3d 3e 3f 40 41 42 43 44 45 -46 47 48 49 4a 4b 4c 4d 4e 4f -50 51 52 53 54 55 56 57 58 59 -5a 5b 5c 5d 5e 5f 60 61 62 63 -64 65 66 67 68 69 6a 6b 6c 6d -6e 6f 70 71 72 73 74 75 76 77 -78 79 7a 7b 7c 7d 7e 7f 80 81 -82 83 84 85 86 87 88 89 8a 8b -8c 8d 8e 8f 90 91 92 93 94 95 -96 97 98 99 9a 9b 9c 9d 9e 9f -a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 -aa ab ac ad ae af b0 b1 b2 b3 -b4 b5 b6 b7 b8 b9 ba bb bc bd -be bf c0 c1 c2 c3 c4 c5 c6 c7 -c8 c9 ca cb cc cd ce cf d0 d1 -d2 d3 d4 d5 d6 d7 d8 d9 da db -dc dd de df e0 e1 e2 e3 e4 e5 -e6 e7 e8 e9 ea eb ec ed ee ef -f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 -fa fb fc fd fe ff -pop pop % lose return values from readhexstring - - -% rlecmapimage expects to have 'w h bits matrix' on stack -/rlecmapimage { - /buffer 1 string def - /rgbval 3 string def - /block 384 string def - - % proc to read a block from file, and return RGB data - { currentfile buffer readhexstring pop - /bcount exch 0 get store - bcount 128 ge - { % it's a non-run block - 0 1 bcount 128 sub - { currentfile buffer readhexstring pop pop - - % look up value in gray map - /rgbval cmap buffer 0 get 1 getinterval store - - % and put it in position i in block - block exch rgbval putinterval - } for - block 0 bcount 127 sub getinterval - } - - { % else it's a run block - currentfile buffer readhexstring pop pop - - % look up value in graymap - /rgbval cmap buffer 0 get 1 getinterval store - - 0 1 bcount { block exch rgbval putinterval } for - - block 0 bcount 1 add getinterval - } ifelse - } % end of proc - image -} bind def - - -92 119 8 % dimensions of data -[92 0 0 -119 0 119] % mapping matrix -rlecmapimage - -887b857f84988b9c96988b989d999ab1bbbca8bde2efee01ee8ef4f2f1dfe1e0ddccb1ab -aac7dbe0cb83cbcccdcc8dcca5bab0b5b7bf945b020403000283020001001f00 -8a768378809e99989c9ea29889989cafb6b7b1bfd8f0ee01ee8eeff1f0dfe1dad7c9b6a9 -bdc8cfd1cc8ecccdced0cca6b0adb6bbba8f6a080004008103001f00 -847f787283948a949993a7a69a9b9dabacad84adb9deefee01ee9eedefebe0dcdddacaa7 -969aadb9beaeb7c3c9cdc0a5acafb4b6bd91740a08008400030502002000 -9482897a8a96959996ab9aa39da5aeaaaba6bcd9f1ee01eea1f1e9e3e0ddd8c3b4928999 -a5b5cab4a8a0a9b7b6a3a2a9aaa6aea58a8169412d10002200 -01800177909899989da8a299a0aaacaaabaab6d1ebee96eeeff2d9e2cfb0b4a594757173 -5d7278616c6d6374696c8f6c88728d9c84776d6859563428320600010082020100830002 -01001600 -8e8e82817e96989a9eaca3a4aca8abaa01aaacb4cfeaf0eeeddcd3cfae9f968877725049 -2e4e58413b12275a182c5844564d656b776f73868e593225000b0e0001008102001900 -8f8081837f9a959a99a89f9ea4a5aaabaa9baab1cce8f0ece0dec0c59d7f6a65575c2317 -0914230b1306253f000d960d3b091c53516a4e606b807231432903060100010e09001800 - -8f898a8d849d979c98a696abaaa3aaabaaa3aab0cae8ece2d7c3a97d6c75887354200403 -000100010400030100090004012345476a6682666b6685665d45310400870003010a0009 -16001600 -a086958b8c9a9c9a96aca9a7a9aaacabada9b3cdeadad5a9957173816e433b3300028102 -000b009a4b77736f576c53656e706252583a37223005150a0d0005040002001100 -8986818c83988e9597a5a901a995a8aaacb6ada9c8e0c9a79173706f5c4b3b1b06020900 -0b009b022c60413c4d502b535774716d585c3d300610323f4b00020a0204001100 -a184998d869a9c9e979b9fa6a9a4a9aeb7b0a8c1c9a496806d69424d571e0d030b040009 -0001020100824811008f00333f5b5567635a6b31170002001100010083081e0e001200 -81848783878b949998999caea9a5b0aaaba7abada9b4ab9a7e736e585566401929000d00 -81020083001f36048b0433536d68706255452e01008100010301840f2b260c0085000301 -000200030084030002010082000401 -908f8487898f9b9998a79fa9a59faab1b9ac01ac8b99806162427177591a0003000d0001 -019108103d4166767d9998747162560a130001000300870900051e180b06000800850102 -00010401 -8282838882888d9997999aaba0a499a3abadb2aca09b956f43415e6647090001000e0081 -02008700100d22466a8b9c849c756a545f895f4f463c281b030100048604000c18305e00 -82000200040081010001008102000000 -9c8e8287898f9b9896a4a6aaa0abadaaaeaa9c8e84493b495929160306000f0001028200 -04009c0003060d0b0a0604082f55686a675d36050401030008110c284f1f050481040302 -03870b1710191f2e2f36 -86898b8981909a999799a7a6a3a79eabafaca39587692c445e33110018003d17001b0089 -03072a38423e634a0f00900003000102123e565365697c898b90958f858f9294929ea5 -9b938f908993999a999fa9ac9da7aeb9b499836e4d353f4d25002a4e0282021a001b0001 -0294002a1a343a2b23162d190f000530366273799faab888b8bbb7bcc4c9c3cbc900c9 -8e999790889b97989aa9a8a999aaada98fa97d7155506c754a241130191e0007001b0081 -03000100921e31324443556f35310423000435608ba7bece01ce86cbcdcfcecfcdcf00cf - -9e89938c879398969aacad9b9a9faba89472635f586266333f0002052a00030081000181 -010004008c03060100010004000100010300830001050002009c09000110222741486460 -857832160007121f5395c4cbcecbcccbcac9cc01cc00ce -a0898e838a9c9d9896a2aba6989aaa9d857f7b777977525f180600082604000102038103 -0005008603050d0002000301038105010101820003009e00080b040300023e514d466974 -948f987852300d3c3563c5cccbc7cccbcacc81cccb81cbcc -988b8f878e9897969aada6aea3a9a3837c897e8482686b2f010081000383030002008100 -018101000100910500060b0416461700204124140302010002810200980006010e062f19 -4b3c4e426f797781808273624a352c3493cb82cbcecd01cd84d0cdcecfcb -9e8c9c85899799979aabaea5a7978582a28b8d797b845b0c2c2d03002429040181010381 -03000200b5030a56697fa1683047748492696809061831394c4146524660535b5a442a62 -6b828d75654c4e4a1600426ea1d3d6d9dadbdad9dde2dd -858880858689999a9996a4a89d9e8e8b8e9887826c628747467c21001758310c00010003 -00b61c002f768295a69563827c7b928184443f474b5963607081513a5369555335536070 -8589695150152510226087c8d0ded8dbd4dadfd4d7 -8a9794928d9c9a969eaca9a197a19e85977e7a6e2d8166688b961706034a180902000402 -008e00085035668e8fa7aca57b8c957b89a28986674b504642525e696a696e3631495149 -545169718f785d4f2e1924122d60b7d9d086d0e1dadcd7cadc -9d9095948e8f9a989aa8aa9d9c84816c8b754f237f4f8596540c214a2101008200010002 -00b70b614e748192a5aaa4918d989188909967656f7e6765676067625b6d272b51453943 -5d70818872643d3505140324a9c6d9d0ddded7d0cbcf -9d8a968a9190969b99afab9ba08c5c7c78634d387b7a9c5b462d00080006008100018201 -2100b8003c667f667d8398b4b99e9687a0a79e91888e84968c8a858a7879855d5f3a6758 -5b525a7170847163242146130a216fd3d5cddadde0d4cbd9 -b1989e9d9aa09ca0a7afa9ae9775848075844a425b8d88453c4d200c143b0d000218341d -42556b9596938b97929da9b2b1aa9aa79aa891a698aeb3b4bca997958a887c785f617c4e -546178678c64531d0a2e4f2e3d90cfd5d7e0d0dd81ddd0 -babcbebfc0bcbfc1beb2b1a59c6e82689b8852223773625475251e542c54000600114c53 -4f7a628b97b09cabb2a8aab9c0c8c1bdba9a989da9aabdbba0bb929798908788786c866e -4c4d985e616c6f26031b7344267ecdcac8c5cad0cdc5 -96eeedf3f5e9eaebe8ddcdbc977072989d783e2e645b5468bf68676b615e4a0f00021a42 -655f9b9597a1a9a6999fc6cfd9dad3cdd3c3b0abadbeaebab7b0a9a1999d8a7c7f719188 -835475745d5663720a1167714467a8aaae84aeaca1a0a9 -dbeeedf3f6ebecede5dbcfc587727ca89a62223a414b5669819b8470575f150e083b646c -939db5b8aeac9d999ccddddbdcdad2dcd0c1c4d1cac8bac1bba5aa9d94837e7b769a9b97 -7d78766c5f665b4b004b896f6aa5afb0b4b0b3b8bd -afebecedecefeeebdab089975c648a9895545e662f49608f90999c6b4a434c5037456287 -9aafbdc4cec4bcc2c3bcc0d2dea5dedbd2d4c7c6dbdccfcdc7caa8aba5949285898f92af -a7a07e877b66564b5339047e8a7ababb85bbc0bfbdbbc3 -02f09aefedeee9daaa807a4e6188809b787e6155698e94929f94746a686592655f3a889f -b0cdc8cec9cfcdd2dacdbbb9c7db8bdbcccfd4c7d8ded9e0dfd1b198b1ac9e8d7a8d9c90 -b0c0b39e8f958c66564a57125a9f77bccd82cdcecd82cdcfd1 -aae4dae9f0edf1e8d9a88e6a376e687e8fa188566389878a838788718b91856973536ba7 -cdcad2ced3cbd6dbb0dbdfdcd1c4b7c3c2c8e0cbd5d8d6d9ded1bbaea9978487899b91ae -bebaa9a1a297695d675c425a8674b6d0ded6cccacdde -a6dabce8ebecedddd2b4926c353e5494a99b8267716a5e78828c8f97a2a398847a939d91 -adbecdcc82ccdedf82dfdbdd94dddbd9d1cad3dee1d9d1d2d8d3dbd9bcadaa9599898489 -9299b9bb94bbb8a9a7ac99776b4968588d7baed0cdd7cfd2cfd4 -acdab1e6edebecddd1a0643c184477a39a837d776a50736f7f95aaa5aaa9a3aca3afb9bc -b8bcb7d0cadbdce2e0de02de9ad9dadfd9dbe1d6c8ced7e0dac0aea19a968b868da4bbc2 -c4b8b4aa90aa9d7f6e576b598370b2cacdcbcfcdcfcd -a5e3d5edebedefdbc368241c2f6b7e6a65567865396a7d8b8f6a7093a3b3bccbd3c7d6d3 -dee1de81dee387e3dedce4dee8f0ec85ece5e4f2e6df93dfddd1cfc3b9a698979d8a8e9b -9cb3bdb8c6bebb91bbbfb59d33597d51674aa3cbc8ccc7cdcccd -9fe6dbecedf2efe6ba2a0e2d1f536e6a6c63573c445a67a3946c8592a4bac3cbd688d6e1 -dcdfdee8e9ecf19ef1e9e3edefebe1edecf0ebeeefe5e3ddd9bcc09baa9f9b9496a0acb4 -cac2bc93bcbdb7c9c1ab5a49796671468bbdb9bbb9bbb8b9 -84e6d8eaedf29cf2d88f000400063052483c472c2b3c5076ad858782a0b1becac9d4dedb -81dbde01de87e8f0e9e5f1efeae7a2e7edeee7e8f1efeee4dccebcccb79ea8abb8a3adaa -a8b8bdd0c3b4bfb8bfbcc38628528a526655747c726a686a6760 -a0e3d4e8edefdcc25f0c00070035131f184207182e4b92b78c848da9b1c5cfcbceda86da -dbdee1e6eaeeb2eee4ecedf1f0eeedeeebdfdee0ded4c4c5bda79ba4b2c0d1aaaca7aebd -cdc9bfb6bbb9bfb4aa90132841513f480d00010001000000 -88eedae9eee8bb6808000100960301032d660f1423027095a79d8b9a95b9bdcfcededadd -83dde1e7ef88efeeeceeecedf1f0ee89eeeff0ecdcccbfb2acaa84aab7c1d3dc97dccdb2 -9da5a9becad3c1babcb7ab9c958a6b0b06425256058105000300 -87ebdee9f3dfaa28000200960100385966323c121171969ba69899a5b8c3d0cedadfdb86 -dbdae9e3ebedee06ee81edef9eefe8d6c7b7bec8cddcdbdddee0d8bf96a6a5bbc5cacbbb -cccac8be9d9c330086003d554d0301000300 -a9f0e0e5f6cd823000150200012d49666a55493201648baeb0ac94a9adc1cdcad9dddcdf -e1eeecf0eeedee05ee86edeeeae0d5ccd485d4dddbdddbdc85dcdedbcba79c889cb1b7ca -d0c2c5cbc98ac9ae5e000d0325475a02000400 -89efe0e5eed4830900190001008e42566862534b3849558dadb6b79eaa8eaabdcdcedfdd -dfdce3ede9edecf0ee06ee8bedece6e9efe5dedbdcdedfde92dedbddc6be9d98a2a8b9cf -cacdcec5b78139188618070e556908000400 -86ece3e5e9c84e0002009b0108121f454845000a416eb0a1adbbabb2abc8ced5dbdfdee2 -f0f6ed82edeaee02ee86edeff0edefeeef85efedf2e5dedb82dbdcdd03dd93c0cfbbada8 -948d97becab4a089918f933b42004083400002000300 -88f0dfe4ebad4f0701008200030085000b231b19009500357db58483b2a5aaa9d0ddd9dc -dedcedecedf2ebee09ee01ef87edeee2dcdfdedcdd01dd97dbdecccbc9baa9b49e8a8f99 -9899979ea79e5467425224018101000300 -88f3dde7efb94a1f01000100850a06110607008d00191370aa65679f8dacbbd7e3de8ade -dddcf4e6dae4e5f0e2ee01ee8fefeeeceaedf0edf0eeefecede3dfdedd02dd81dacc01cc -8db6acb8b5aa969d9a999497a597758375644a058105000400 -86f1dee2e8bf2e00820004008200120001009a010200140a4c974e278178a9b9ccdcdedd -dedfe4ebece1e8eee9ee01ee88edefebe1ebf1ecf0ee86eeefeeeae1d9dd03dd81c5cd94 -cdcfbbbdb7b6bec7bec0a9a09c94868070650001000400 -8af1e1d8f3d4522d0e0006009300030007110c1f0f3c2c6750017778a5bbe2d7dd02dd83 -e3e8e3e48fe4f6e4e9f1f0ebeeefe3e8f1eeedefeca1eceef0eaddd8e1dbdfdebcd1cbcc -d1d6cdbebbcdcacdc5ba9e979e8a7772090203000300 -9ef1eae0f1db7c2205010b381a00176e574359427a56594c044f6d96b7d2dfdd04dd89e6 -eadbe8e1dbe7e4f0ed85edecefeaefed81edff83fff6eeef82efe4dc9adcdeddd3caccca -d8dcdececddbd9cdccc4afa5ac986855000201000300 -81efee85eeebe8a5340096005c7c1c1571b4d36e4538347156400f22749abad1d6dd02dd -01e081dfde84dee5dcdbe682e6edef88efe0e9f0ecf0f8feff92ffefeeefdce0dbdfddd9 -cbd1cfd8dbdedad5dd85ddd2c9bfb1ab84ab97574300820003000300 -9eeef1f0eceabd240b2d8994324c94bfe186695903550065701475a0bbcfccdd03dd86e6 -ded9e0dde0dd8addedeeefeee2dee2efeced83edfaffef9eeff0dfdedcdddee0dddfe0de -e0dbdecedde0dcd1bfafa8a789361d010001000300 -01eea5ecefecbb560269afae6f8eb9acbb9a927f3c2901002192a1acc5c6cad7dbe0e3df -dee5dddedd84dde1e2eae08ae0d9d3dfdbd8e1dee1e8eb85ebecebdbdfdd06dd8fe1e0e1 -d4dbdadccec3b1a5aa936211000600 -01eebcecefe8ba6301b4cfcdbbbfb7a095acba8c660c0004599db6a862509bb9e1dfddde -dbdfdee7deddded3d1d2c9cbcec2b9baa9bbb8babdcfdce9d9dadbdd06dd83dfdbcedd01 -dd83cbc7b0a984a98a7201000600 -01eeacecefe6ae5329c8d2cabddfddc99c8981603c2b43407bb2bdcebf8549477bcce3de -dbdfdadeddd7d3c9c7c5c4bf8fbfb4a69b8c949eabbbc3c1bec6c5d9dd05dd01da8dd0ca -d5d8e0ccbdaca9a2825c01000600 -89eceef2efe3a74a47dbdab7dac8dfdad9baad79655733578885b8c9cad1cac3a1653a8d -b7d4e3e0d9dac8ccbdc3bdc7b7b8a9a37f8c868289a6bac7aab9c3cfd6dfe0de86dedfda -e3d0cbcc01cc88c4b7ae9baca57e19000700 -acf9f5f0efe098595cdde0d7c9dcded5c7abb29697757e8c87b2c7d1d0d2dddbc5946b3f -67c4bfd1cdc6d6dadbcf93cfbe7f34190c110b15326ab0b7bcbea8b6ccdedc81dcdb8fdb -ddd1ccc0b8ae9c84987678919f7a000800 -a8f0ecf0efd7976f6cdcdfd4d5ece3e2d1bbc7c0bbac9daa9dc5cecbdadddedfded8c1ad -714a60b2d3d9aad9e0e5d0824d5d86958980746f7561529fbfbbbcc3cee1dfdddfd8d7bf -bba39f988a664b677a86957f04000700 -9fecfdf3f0cb988d8adedbd3e0f1e5d6ced2e3d0d6cbb3ac9dbec9cccedddfe0deaadee1 -e2dfcaa46463cadcdadf876493a7a4ada8a5b19c9ea3b28d5db8d4dddfdee5d9d4ccc6a8 -9973492d07890709023743524b0002000600 -8df1f2f1eebb8f7f70e5dbe0eee0dd03dd8adacfc9bb9d9ac2cecbd0dd04ddb2dadee5dd -c9979fbce2d69e774d8e718fc4ada2aba1aab4b2988cdbdde2f3e6d4d0caae7b53270a27 -58755a3b330500150001000600 -98f7eff5efb88a774edfdee9e4d7e1dfe1dbded3c9cfbaa6a3c985c9d2d7dddedd03dd93 -e4dfdeddd08f6d77d5b19d5789739ddef4b2a9a89da8bebdc1a2d9deebe0ccc4b9ae8471 -10047794a1b5b9ada96e37040201000600 -88f6eef2eeac8b753fdb93dbe2d7e7eff0ded6ded4d6d8c9b9b8c7cadfdcde81dedd02dd -81dbed9bedf2dddbcdc067a2c5b6896b7cb3f1e1cfaea5b7d0c4cab6acdddedc95dcc4b4 -7b9d47248d9f999da2afbbc0ae6200010001000500 -9bfdebeae8a08e7537d5dddeddeeedf2e8cdd4e7dad7c8b5bccccfdadd05dd97d9deebec -efeae2cb6dc7dbdde0d6cac3b9c1b6bebcc9cecc9cccd198ccdce1ddd4bc95635a78857a -4fa0af718a91b1770706014903000400 -95fff8ecd9a2958547ccdddadcedefeceed8e0eee0dcca02ca82d7dedd05ddafd7deeef2 -eae8dda885d1dfdddfe0cecac0b8b3b8bec9dddacec988cbdcdedddac36366b68b58335c -aad3756587957a048504018d9b54000300 -9bf1e9eddbc1b6a96fc6dbdde6e4f2edefdde9f1e0dbc9cfcaccdbd6dd05dd8dd9e4f0ec -e5eeeaa3acdedcdbd8cc88cccecabfb7bfccd8db98dbd2b286d3dddcdddec35b79aea49c -768ebcc382685e977b038403005a44000400 -82f0eee996e9dac9c69aa5d6dce3dde4e1e5d9ecf0ded3d0c9cccfda81dadd05dd8adfea -e9eeefeee3a2aae0dc01dca8d5cdcac4c8d0d9dfe1d6deddcc95c2dcdedddccb769fbdcb -d2baa9afad9f978aa778040500040005000300 -01ee8beff0e1dcc8b37accdfd6ddec87ecddc7e6f0decacc8fcccad0d7dfded4ccdbe0dc -dee0edeff08df0e8deaeabdcdad6cbcdd4dedcde95dedcddd6d4dddcc8a7cdd8dddcd6c8 -a5b4babeb8b9bc01bc8bb0aab6b9440e2300170004000300 -01ee01ef89e9dbd0c05e99d4dde4f091f0ebd3eeefe5cacccbcad0d2d9d6d0cdd9dc83dc -dde0edb2edecf2e8e6b08fdee3dad3dadfdedfdadbdedacededddbb1c1cdcfd9ddd7cfa9 -b4babcbbb4bbb9b7adb0bcb8685a720f5b01000400 -02ee01ea89dbd3c35f50c0e0ecf0ed8cedd9ecede1cbcccbcdd0ddd9d588d5d3dddee9e8 -edf1f0b2f0eee7dcc976d2dddeddd0dcdad3ccdcdddbcedcded9a1c6d7d1d8e0ded1b2b0 -bbc8c2babbbab8c2bebcb6b0c4c683840002000300 -01ee96f0eaecdbd7ca81088bdaeeefecf2deecf1dfcbcccacbd881d8de86decad0dcdef0 -ef81efeb8aebeff1ddf0e26cc4ddd9de84dedfdad4e08ce0dbdfd8d9e4dda5c9dbe0dfdd -83ddcfb8bc83bcc0cdbb02bb8acdcec9bdd6f9fbe04603000400 -02ee8aeff1eee1ce890927bce7ef97efeaefe1efdfcdc9c6cedddbdce0ccd8dce2dfe4e9 -e6e8ef87efece5d8a69edfde82dedbd085d0cbdfe0dbe1a0e1dcedcbd2dae0d8d1d8d3d1 -c6afc2c7beb6bec3c9cdc7bfc2f3fdffe84d0004000300 -05ee8bdecfa6010035d0e0dcdeebf08bf0e0c9cabccadfdce0dbcddda2dde5eee0dee8f0 -efeeedefe9daa4d8e0dbded5d4d7dfecf0f3dec5b0d5e1dbe1dedadc95dcd5c9afb7c9ce -cac2c6bfc4c9b9c0fcebcfbd0003000400 -01ee88ecefe5e0d7ceab320092008dd2dfdeebecf1dfc9cecacdd4deddded8df92dfdeee -def0f4e2eaedefedf6e8daa0d5dcdfda98dae0dde5e0dcbcb3cbcfd1cbd4dee0dedfdad8 -aeb9c8cbcacc8bccc9bcccc4b996a0ab4907000500 -01ee88eff2d2acd2cbb476028b021589c9deeee9f4d9dfd2cabccadadce2e0d9e2eadcdd -e3e6f0dde8edf0edeceee9b896c9dfdbdcd6dfddd9a09dcecdc7cdcad7dbdedfdadcd7b5 -adcbcacbcecbcac0b9bca84f964e000700 -01fc89fdffdbbae0dabd8d0c008c00389accdce1dfddd3cdc6d1dd8fdddcdddbdfe1e4f0 -efeeede6ebeceeef81eff08ff0e7ba898cbccabdbc969bb9cccec9cd99cdd6dfdadcdfd8 -dcd8bd67bdc9ccc8cbcacbc0b89d79320004000600 -01fe01ff82e2bede8adec38e07040132b3bab8bb94bbc9cbcdcacbd4dedfdbdddcdee0ed -eeecf1e7eeef02ef8eeee9e7dcd6c8bbbcc7ced8c1c6dddc85dcded0daddde95deede5dd -d7cba3678dc6cecbcacbc1ac6a00060007000600 -01ff89feffebcde3dcbf8c0d008b003bb3cadde0dfcac9cdcacc84ccd8dcdedd9adddbe2 -f1edeff0ebedf0f1ecedeadde2dbcad0dfe6f2e0e4cacedf01df90dbdedde0dcdbf3eadd -d5ccaeb07f8faab685b6a185505f0082000d000700 -03ff90e7cde1dac4810a070041a9cbdcddded2cd01cd8ccad9e0dddbdedde4ebedefeaef -02ef8ce4dfdde2dfd2cad4daedebefdd87ddd9cbdbe0dbdcdd95dddee0e2efecd9ddc8ac -b9ccaf968b7f8ba2aeaf03018101000700 -03ff90ebd6e6dfd09811010044adccdbdadedbcda8cdcac9dedcdddcdee2eaf0eeede4e6 -f1ebeee4eae9ddd9c9d1e0def1ecede2dce0d3c5ced8dbdadfdc82dce3ef8fefdde1c9a6 -b4cacfd5cdc8c9ceb8ab028102000800 -03ffc5ecd3e5dcc9b143000449b3c6dddcdddec7cec9cad9dcdddcdee0e6eff1f0e6dde1 -e0e4eee0dcd1c8d4d9dfdaecf0eadadedce0dbc6cfcec0cad2d9e0e2e3dcdbb999a6cacc -ce88ced3ccc8b7ae0003000800 -01ff98f4f6ecdae2dbc7bf93320576acc8dddbe1dcc0c9cecbd9dddc91dce4e8f0f4ebef -e3f6e7dddee0c9cad4dedd01dd8be4f6eee3dbebdee1dedcddd985d9bec4c0bed090d0cb -b8738dbdcccacdcecccecab5a802000900 -90fefdf7fdecdbeaddcdc0a1810582b7c9dc90dce0dcc5cccfced7dcdedcdee6efedefec -90ecf0ebdbe1cddad9dbdfdddbdfe0e4dfeb96ebeee5e4dbd9decdcfcdc2b4bdc5b49161 -92acc3ccc9cb87cbcdcbbcad5502000900 -01ff98fbffecdff3e5d8bab6883d92b6ccdadddfddc5cbcccfd6dbdf8fdfdde4efebede3 -e1e2eadfd9cde0dedc02dca3dedddee1f3efeeedefebd9e2d6cccdbeaaa5947e6885a9b7 -bdc7cbcccdc7bcb2a51501000900 -92fafffdffecdfeeeadad0bb886e98bbc6d8dedd83ddc3cacc8eccd8dcdde2e7e4eaf0ef -eddfeeefdc84dcd5ced5dba0dbd9e2dadfe6e3ecf0efecf3eddcdedbceccc8d4c2aea3a6 -95afacb9c2cccbc2bb84bbae7a07000a00 -03ff8cede1f0eedfdac19d86afc4d1dc84dcdeddc0cb88cbcdd0dedcdeebe7ee02ee99f0 -ede8e1d9d3c0bcbbced6dbdadfd8dbdfe6e7edefedf0dedad981d9ce92ceccc1bab2a6a5 -aebabdc9bcbbb9b39f0f01000a00 -82fcfdff8effeddff0eee4deccae629dbccfdfdc8cdcdbbfc3cccbd4dedcdadcddee04ee -8defe2dbdecec2a19db0b6b7c0c7cb86cbcedee0e3dfd983d9e4dfd692d6cbccc9b7b4ab -afb9bcbac3bdbcc1bb7307000b00 -82fbfdff99ffeddef1edeae4cea23397bad0d8dddfdac9c4cfcbd2dae0dae381e3ee02ee -a0f1efedf1e3dadeccb0afc2b3aeaab9b7bcc9cdcfd0cbd0cecadbd4d1c7ccc0b7ac84ac -aebec4ca88cac4bfd1aa1b0003000a00 -03ff95edddf2ecede1d165238cbdcbdddbdedfd0c5cec7dade02de81e0ee02ee01ec01ee -a7eadce8e7d4bce1d3dfd0cac0babecacecbcdc2bdbac0bdbbbcabac9b9d9aa6bfccd7c9 -cbd0cb9300820008000a00 -02ff84fde8dfeff089f0df9121236bb6d2d6de90deddd8c8cbcdd7dde0dddfebf0f1efed -ee02ee92ecdbefeee9d4cbc3e7deddd5e4ead5dbd2bbc382c3b5a891a8aba69a8c88858f -b7cdddd6cfc7d5bf1300820004000a00 -03ff83ecdfeff08ef0db54072327a8cacedcdfded8c8cb83cbd3dade87dedbe6e3f0efea -ee01eeabefece0efedf0e4bdbbc8c9dbd7e3f1e3efeadef0e8d4b6bfb0a390685e8bbcdc -dddee0c9cdbfb702050002000a00 -87fdfbfffeeddfeff091f0ba3550082b55b4cad8dcdfdccecccdd9df88dfdcdbdcdff0ee -edee01ee01eb8ee5eaedeeecd0c2bbb6c9cae1efeeef90efecfffaeedfe9deb5c37b98ab -c6dcdedc85dcc9c4be8800820002000b00 -82fefbff97ffe8dff7f5eb95409e322f359acfdeddf2dbd5c7cbd8ddde87dedddbe9eff1 -eaee01ee95ecf3ebedeff0ecd9cac4bcb9bccfdddeefeceefbfaed8aedf3dac8b9889eb6 -d0dedc01dc84c8b8aa39000e00 -81fbff01ff92f2e6fbf4f09c2f5c324c2651d5d0dbece2d9cc88ccd8dddedfdae3d7e882 -e8f0ee02ee85f0e9efeeefed98eddbcec4bac0cdcabfdbe1e8eceee8f0edc5988a8f97ba -d7de86dedcd7c1b288000f00 -82fbfcff97fff6eaf1faf0b9552e2c54293c69d1d8dfead8d4cedadedd82dddbe584e5de -f1ebee01ee84efedecefeea2eeefeeebe3dacac5cfd8cfc8cecfcdd2d3c7af988f988f9a -c8dedddcdecdaaa90201000e00 -81f8ff93fffeeef2edfde1cba24a162e39315180d9deeedb8cdbd0dadedddbdedddbdee8 -f0ee01ee01ec83eeecf0ee98eeedf1ece0dbd5d0ddd9d4d3bbbec3c0c4b7aa9a8d8ea9cf -dd88dde0d4b7a50f000a000e00 -82f8fcff95ffeeebf1efc9dfdd943d509ba0545b8becdfe8dacedb82dbe0dd01dd88e3e2 -ecefeee1eeefee82eef0ee01ee81f0ee8ceee8e4dddcddd8cdc9b8bab8b987b9acab9e90 -98b8ce87cedbd6b9a05505001000 -9bfcfffefff1eff2eed5e4e3d46863a999545260a6f0ede6e0d9dbdcdd01dd87ded9e6ed -f0e1e5ef01ef81edee02ee9bedefeae1dedcdfdbdad2cacdcac2b4ada0908d9dc3cecfcd -b7a19a00820003000f00 -81feff01ff96fbeaefdbedf0ebf1d682656d72637367d5e8efdfced8dd02dd8ad8dee2da -dfebe3e8ecf0ee02ee81efec87eceaf0eadcdedfdd94dde1cccecbceb8b7adabb8bccacb -c6ac980a0601001000 -81feffa2fffef9e9dacbe0dfdde6e7c3747f6c767b7d90bcfaf5dcdedddadddedfdedbde -dfe0da81daef8eeff2eff0eedbeae6eeefedeadfdbde91dedccccbc9cec1bac2b6bfbdd4 -cba9a11b028102001100 -81fcff01ff88f2dbc2c6ede0c6d2f090f0b97769748779747bbcf8e4ddd3d7d8dd01dd01 -de8ce1e2dde1deefedeeeceee2eef081f0ee97eef0eddcdeddcccbc3cfcdc1bbb9b0bccc -d1ce89150002001200 -a5f7fefffce9dcc7d8eddfdbeadcf3f4ad7277829a777b88c2feedd8d4dee0e2dddfdbdf -e0dddc8bdce4eff1ecf2e3e4e7f1eeec87eceedcdedcd5cdcc8cccc9bebac0bfc2cbcac1 -3005001400 -89fcfdf5edddccd9c9dfd99ad9f3eef4feeb7f7d93ea977b8284dffff3e3cecdd6cedcde -dcdddc8fdcdfdee7f0edf0dae0dce8edf0eceedd89dddbcecccacccabfbcba85bacbccc0 -9d00820001028102001100 -81f0eca2ecf2d9ddd6d1ead8e0f0f3edf1fef19a89907672778c87bbfffbf3d5cecad4e1 -dedcdd03dd01ef8dedeee4dfdcdfe4dddfdbdfd7c8ca8bcac4c7c8bfbbbcd1cca0100016 -00 -82efebeda1ede5ece2ddece0eeeadee8f1f9ffe999837b7a7d748e87bdfcf5f2d6cdcecc -d9dfdd03dd84e1ecefdddb82dbdfdd85dddadfdcded981d9cb01cb88c5bcbeb8c3cebc68 -001700 -02ef9dfadbdcdde9f1e4f5e8e9e2ebf5f8f9f09c878c827e878398b0fffbffd8cb84cbd0 -dddcdd02dd8bdce0efdfdbe1dfdedddedfdd88dddcdfd1cfcccdbfae87aec8c7a8000801 -001500 -8eeff5fcfdf3e6dcdfe1d7f4f6e1dbf181f1ff01ff85ee8f9c88828785878a8dbff7ff86 -ffddd1ccd1dedd02dd8edadddff0e5f0e2dcdddedbdedddedb8ddbddd7d2c8bcb8bcba76 -0a0007001500 -04ff81f7ec8aecf0d3d4d8ecf0e1f0eefdaffdffefaa8f9087998b8c849bc2f7faf4dbc7 -d5dddfd9d2d9dedfdbdde7eae2e0e3e2e1dfdddadddedddaccc3babb81001900 -01fd02ff8cfce6ddf9d8f2ebe1e8f4f7f1ff01ff99fcf3b08d93e2de9b968c9ab8fafffa -dacbcfd9d4dcd2c9d1dddc8adce7ebe9efede7dbdddcde84dedde0c9c183c1af50001900 - -03ff87fefffadef0dcecfb87fbecedf8f2fffeff8dfffafeb194d5da98918d869ee3ff94 -fff6d0cbcecacfcbcfced7e1dcdeecefeef0e2dcdd83dddfdedd87ddd5c1b0be00080018 -00 -05ff8ffef9f7deefecfff9eff1eff5fffdfffd93fdfaaa9d9b9295848f8290d5fdffe9ce -c8ccc6cd86cdcbc7d9dfdbdd91dddfdedadedde1dce0dbdfc4b89f5b0005000500010183 -02000200860001000100010001008302000600 -06ff8cfeffe1faffefeaf1edd5dae6ff81fffe88fefcfbe1a7958d868b818b8c838c9cde -fc84fce2cccace86cec7babec6d0e082e0dee081e0da8adadddfd9ded2bb992407000c00 -820102008200030003008304000300 -08ff8ce8fae5e9e0f1ecd9e9e7e9feff02ff85fde8af93898585858c8586b0ff90fff8e3 -ccc9ceccbcbabdbfcccfcdd4d1cf8ccfd7d0ced3bea2320c04000a000100030181030001 -0084030408253d833d5d63718371650001810100 -07ff8dfdebf1edebdcf0ece2ebfdfffdff01ff8cfbfffefaa79c9686838d88a9ff01ff91 -f5ddd2c9cfbebbbaaeabb1b0babcc7ccbcbd84bdb1a321008400026b020001000301900b -294c667d8699a0acbab8bfccc3b214000100 -08ff85fae0f7eeeaef84efe0e6fdff82fffaff04ff90e4b59189a5aa8b9afefffdffede3 -d4cfb9acb9b4afa19c968a868a87927c6367530a0100164a0402082a243e33273c6a7d95 -a4a9adb9bbc4cecdcfceca08000100 -09ff8aefdaf4f9eaf6e8e3ecefff05ffa3fcffeecc8febe6949ffffefffefffadecac2b8 -a69b867f778f86858a68405a27220003009a00030001000a280f0022435f7e96a0adb1c1 -c7c9cbccd0d2ca0001810100 -08ff81feff8bffdbebf4fef1f2f6f9ecf3ff03ff82fefdfe84fef39689868286f9ff01ff -93fefcffe7c1bdb2a88b6e8988918786622c2605008a000d0900040001000911088c0823 -4874829aa3acb9c5c7c9cb81cbcd85cdae01000300 -0bff8bfdf0ecedeefbf5e5ebfffcff05ff86feffe08e7271ff04ff90fefad1b7c0ac99a7 -c8c2a89e8d793e0e0001008559a516000100050090244f668695a1a7b4bbbebdbbb9bea5 -08000100 -0cff8afdfffde7f0fcf2e6eceeff05ff81fdff85ffefa687fbff05ff8defe4bfc4abd1f1 -ece8dec1850300020087236e070100021b0003008a03051a5460686d7a82888985898281 -4103000100 -0cff8aefe2f4e3d3eefedce4f2ff05ff81fdff01ff82fbc0ff05ff8efcfaebe4bfc2e7f0 -efeecf862f04000100810600820002008300057b00040081030003008406050301038403 -060001000100 -0cff8afaebefe7ebeae5f6f3eeff06ff81feff83fffcfdff03ff99fefffedfeef4dfceff -f3ed8335371d890602010201000a00010006008104008200010082000100820002000400 -810200 - -% -% Compression made this file 93.96% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/Master/texmf-dist/source/generic/xypic/latin1.sty b/Master/texmf-dist/source/generic/xypic/latin1.sty deleted file mode 100644 index c337fb139e9..00000000000 --- a/Master/texmf-dist/source/generic/xypic/latin1.sty +++ /dev/null @@ -1,242 +0,0 @@ -%% $Id: latin1.sty,v 3.4 1997/05/18 03:04:44 krisrose Exp $ -%% -%% TeX 3 support for ISO 8859-1 (Latin 1) characters. -%% Copyright (c) 1990-1997 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% This file is not part of the Xy-pic package for graphs and diagrams in -%% TeX but is distributed with it on the same conditions. -%% -%% 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. - -% NOTE: THIS FILE CONTAINS NON-ASCII 8BIT CHARACTERS! - -% USAGE: This should be input using the command -% -% \input latin1 -% -% This will then make those ISO 8859-1 (Latin 1) characters that are present -% in plain TeX available, and for AMS-TeX users, those available there as -% well (these are marked %%AMS below). - -% First we pull the standard trick of dropping out if already loaded or if -% this is not TeX 3... -% -\ifx\inputlineno\undefined - \errhelp{You may continue but some things will not typeset right.}% - \errmessage{latin1.sty requires TeX version 3---please update}% - \endinput\fi -\expandafter\ifx\csname latin1.tex\endcsname\relax -\else \message{[already loaded]}\endinput \fi -\expandafter\edef\csname latin1.tex\endcsname{% - \catcode`\noexpand\@\the\catcode`\@\space - \expandafter\let\csname latin1.tex\endcsname=\noexpand\empty} -\catcode`\@=11 -% -% Next we define some shorthands that users might like as well. -% -\def\forcemathdef#1#2{\gdef#1{\relax\ifmmode#2\else{$#2$}\fi}} -\def\forcemathchardef#1="#2#3#4#5{\forcemathdef#1{\mathchar"#2#3#4#5 }} -% -\def\mathtextdef#1#2#3{% - \gdef#1{\relax\ifmmode\def\next{#2}\else\def\next{#3}\fi\next}} -% -\def\missingchardef#1{\gdef#1{\space}} -% -% Code for slashed fractions [from TeXcercise 11.6]: -% -\def\slashedfrac#1#2{\hbox{\kern.1em % - \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.11em % - /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}} -% -% Assumes that columns 3-8 are already set up as ASCII. -% -% ISO 8859-1 column 10 -% -\catcode`\ =\active \let =~ -\catcode`\¡=\active \chardef¡='074 -\catcode`\¢=\active - \forcemathdef¢{\mathord{\mathpalette\c@ncel{\fam=0\mkern2mu c}}} -\catcode`\£=\active \forcemathchardef£="0424 -\catcode`\¤=\active \missingchardef¤ %%Missing: currency -\catcode`\¥=\active \def¥{\yen} %%AMS (msam) -\catcode`\¦=\active \missingchardef¦ %%Missing: brokenbar -\catcode`\§=\active \def§{\S} -\catcode`\¨=\active \mathtextdef¨\ddot\" -\catcode`\©=\active \def©{\copyright} -\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}} -\catcode`\ª=\active \forcemathdefª{^{\textrm{\b a}}} -\catcode`\«=\active \missingchardef« %%Missing: guillemotleft -\catcode`\¬=\active \forcemathchardef¬="023A -\catcode`\=\active \missingchardef -\catcode`\®=\active \def®{\circledR} %%AMS (msam) -\catcode`\¯=\active \mathtextdef¯\bar\B %%AMS -% -% ISO 8859-1 column 11 -% -\catcode`\°=\active \forcemathdef°{^\circ} -\catcode`\±=\active \forcemathchardef±="2206 -\catcode`\²=\active \forcemathdef²{^2} -\catcode`\³=\active \forcemathdef³{^3} -\catcode`\´=\active \let´=\' -\catcode`\µ=\active \forcemathchardefµ="0116 -\catcode`\¶=\active \def¶{\P} -\catcode`\·=\active \forcemathchardef·="2201 -\catcode`\¸=\active \let¸=\c -\catcode`\¹=\active \forcemathdef¹{^1} -\catcode`\º=\active \forcemathdefº{^{\textrm{\b o}}} -\catcode`\»=\active \missingchardef» %%Missing: guillemotright -\catcode`\¼=\active \def¼{\slashedfrac14} -\catcode`\½=\active \def½{\slashedfrac12} -\catcode`\¾=\active \def¾{\slashedfrac34} -\catcode`\¿=\active \chardef¿='076 -% -% ISO 8859-1 columns 12-15, by letter: -% -\catcode`\à=\active \defà{\`a} -\catcode`\À=\active \defÀ{\`A} -\ifx\inputlineno\undefined\else\uccode`\à=`\À \lccode`\À=`\à \fi -\catcode`\á=\active \defá{\'a} -\catcode`\Á=\active \defÁ{\'A} -\ifx\inputlineno\undefined\else\uccode`\á=`\Á \lccode`\Á=`\á \fi -\catcode`\â=\active \defâ{\^a} -\catcode`\Â=\active \defÂ{\^A} -\ifx\inputlineno\undefined\else\uccode`\â=`\Â \lccode`\Â=`\â \fi -\catcode`\ã=\active \defã{\~a} -\catcode`\Ã=\active \defÃ{\~A} -\ifx\inputlineno\undefined\else\uccode`\ã=`\Ã \lccode`\Ã=`\ã \fi -\catcode`\ä=\active \defä{\"a} -\catcode`\Ä=\active \defÄ{\"A} -\ifx\inputlineno\undefined\else\uccode`\ä=`\Ä \lccode`\Ä=`\ä \fi -\catcode`\å=\active \letå=\aa -\catcode`\Å=\active \letÅ=\AA -\ifx\inputlineno\undefined\else\uccode`\å=`\Å \lccode`\Å=`\å \fi -% -\catcode`\æ=\active \chardefæ="1A -\catcode`\Æ=\active \chardefÆ="1D -\ifx\inputlineno\undefined\else\uccode`\æ=`\Æ \lccode`\Æ=`\æ \fi -\uccode"1A="1D \lccode"1D="1A % Scandinavian... -% -\catcode`\ç=\active \defç{\c c} -\catcode`\Ç=\active \defÇ{\c C} -\ifx\inputlineno\undefined\else\uccode`\ç=`\Ç \lccode`\Ç=`\ç \fi -% -\catcode`\è=\active \defè{\`e} -\catcode`\È=\active \defÈ{\`E} -\ifx\inputlineno\undefined\else\uccode`\è=`\È \lccode`\È=`\è \fi -\catcode`\é=\active \defé{\'e} -\catcode`\É=\active \defÉ{\'E} -\ifx\inputlineno\undefined\else\uccode`\é=`\É \lccode`\É=`\é \fi -\catcode`\ê=\active \defê{\^e} -\catcode`\Ê=\active \defÊ{\^E} -\ifx\inputlineno\undefined\else\uccode`\ê=`\Ê \lccode`\Ê=`\ê \fi -\catcode`\ë=\active \defë{\"e} -\catcode`\Ë=\active \defË{\"E} -\ifx\inputlineno\undefined\else\uccode`\ë=`\Ë \lccode`\Ë=`\ë \fi -% -\catcode`\ì=\active \defì{\`\i} -\catcode`\Ì=\active \defÌ{\`I} -\ifx\inputlineno\undefined\else\uccode`\ì=`\Ì \lccode`\Ì=`\ì \fi -\catcode`\í=\active \defí{\'\i} -\catcode`\Í=\active \defÍ{\'I} -\ifx\inputlineno\undefined\else\uccode`\í=`\Í \lccode`\Í=`\í \fi -\catcode`\î=\active \defî{\^\i} -\catcode`\Î=\active \defÎ{\^I} -\ifx\inputlineno\undefined\else\uccode`\î=`\Î \lccode`\Î=`\î \fi -\catcode`\ï=\active \defï{\"\i} -\catcode`\Ï=\active \defÏ{\"I} -\ifx\inputlineno\undefined\else\uccode`\ï=`\Ï \lccode`\Ï=`\ï \fi -% -\catcode`\Ð=\active \missingchardefÐ %%Missing: Eth -\catcode`\ð=\active \missingchardefð %%Missing: eth -\ifx\inputlineno\undefined\else\uccode`\Ð=`\ð \lccode`\ð=`\Ð \fi -% -\catcode`\ñ=\active \defñ{\~n} -\catcode`\Ñ=\active \defÑ{\~N} -\ifx\inputlineno\undefined\else\uccode`\ñ=`\Ñ \lccode`\Ñ=`\ñ \fi -% -\catcode`\ò=\active \defò{\`o} -\catcode`\Ò=\active \defÒ{\`O} -\ifx\inputlineno\undefined\else\uccode`\ò=`\Ò \lccode`\Ò=`\ò \fi -\catcode`\ó=\active \defó{\'o} -\catcode`\Ó=\active \defÓ{\'O} -\ifx\inputlineno\undefined\else\uccode`\ó=`\Ó \lccode`\Ó=`\ó \fi -\catcode`\ô=\active \defô{\^o} -\catcode`\Ô=\active \defÔ{\^O} -\ifx\inputlineno\undefined\else\uccode`\ô=`\Ô \lccode`\Ô=`\ô \fi -\catcode`\õ=\active \defõ{\^o} -\catcode`\Õ=\active \defÕ{\^O} -\ifx\inputlineno\undefined\else\uccode`\õ=`\Õ \lccode`\Õ=`\õ \fi -\catcode`\ö=\active \defö{\"o} -\catcode`\Ö=\active \defÖ{\"O} -\ifx\inputlineno\undefined\else\uccode`\ö=`\Ö \lccode`\Ö=`\ö \fi -\catcode`\ø=\active \chardefø="1C -\catcode`\Ø=\active \chardefØ="1F -\ifx\inputlineno\undefined\else\uccode`\ø=`\Ø \lccode`\Ø=`\ø \fi -\uccode"1C="1F \lccode"1F="1C % I'm Danish! -% -\catcode`\ù=\active \defù{\`u} -\catcode`\Ù=\active \defÙ{\`U} -\ifx\inputlineno\undefined\else\uccode`\ù=`\Ù \lccode`\Ù=`\ù \fi -\catcode`\ú=\active \defú{\'u} -\catcode`\Ú=\active \defÚ{\'U} -\ifx\inputlineno\undefined\else\uccode`\ú=`\Ú \lccode`\Ú=`\ú \fi -\catcode`\û=\active \defû{\^u} -\catcode`\Û=\active \defÛ{\^U} -\ifx\inputlineno\undefined\else\uccode`\û=`\Û \lccode`\Û=`\û \fi -\catcode`\ü=\active \defü{\"u} -\catcode`\Ü=\active \defÜ{\"U} -\ifx\inputlineno\undefined\else\uccode`\ü=`\Ü \lccode`\Ü=`\ü \fi -% -\catcode`\Ý=\active \defÝ{\'Y} -\catcode`\ý=\active \defý{\'y} -\ifx\inputlineno\undefined\else\uccode`\Ý=`\ý \lccode`\ý=`\Ý \fi -\catcode`\ÿ=\active \defÿ{\"y} -% -\catcode`\Þ=\active \missingchardefÞ %%Missing: Thorn -\catcode`\þ=\active \missingchardefþ %%Missing: thorn -\ifx\inputlineno\undefined\else\uccode`\þ=`\Þ \lccode`\Þ=`\þ \fi -% -\catcode`\ß=\active \letß=\ss -% -% ISO 8859-1 columns 12-15, symbols: -% -\catcode`\×=\active \forcemathchardef×="2202 -\catcode`\÷=\active \forcemathchardef÷="2204 -% -\csname latin1.tex\endcsname - -% $Log: latin1.sty,v $ -% Revision 3.4 1997/05/18 03:04:44 krisrose -% Package, now... -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.8 1994/11/07 04:40:31 kris -% Abandoned. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% New for Xy-pic 2.7 based on latin1.doc of the XPPT distribution. diff --git a/Master/texmf-dist/source/generic/xypic/movie.cls b/Master/texmf-dist/source/generic/xypic/movie.cls deleted file mode 100644 index 7c3f29d73f6..00000000000 --- a/Master/texmf-dist/source/generic/xypic/movie.cls +++ /dev/null @@ -1,325 +0,0 @@ -%% $Id: movie.cls,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -*-latex-*- -%% -%% ``LaTeX Movie'' document class for DVI animations. -%% Copyright (c) 1994-1997 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% This file is part of the Xy-pic package for graphs and diagrams in TeX. -%% Copyright (c) 1991-1997 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 - -\NeedsTeXFormat{LaTeX2e} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Version. - -\def\next$#1: #2 #3${#2} -\edef\next{\noexpand\ProvidesClass{movie}% - [\next$Date: 1997/05/18 01:14:25 $ - Movies in LaTeX v.\next$Revision: 3.4 $.]}\next - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Options. - -% nocaption (omit caption at lower left; default) -% caption (include caption) -\newif\ifm@caption -\DeclareOption{nocaption}{\m@captionfalse} -\DeclareOption{caption}{\m@captiontrue} - -% nocount (omit count at lower left; default) -% count (include count) -\newif\ifm@count -\DeclareOption{nocount}{\m@countfalse} -\DeclareOption{count}{\m@counttrue} - -% notime (omit elapsed time in "seconds"; default) -% time (include elapsed time) -\newif\ifm@time -\DeclareOption{notime}{\m@timefalse} -\DeclareOption{time}{\m@timetrue} - -% loop (make the animation loop; default) -% once (don't loop) -\def\loop@@{-ns2} -\DeclareOption{loop}{\def\loop@@{-ns2}} -\DeclareOption{once}{\def\loop@@{-once}} - -% Paper size (ignored since result is never printed). -\DeclareOption{a4paper}{} -\DeclareOption{a5paper}{} -\DeclareOption{b5paper}{} -\DeclareOption{letterpaper}{} -\DeclareOption{legalpaper}{} -\DeclareOption{executivepaper}{} -\DeclareOption{landscape}{} - -%\vsize=9in \voffset=0in -%\hsize=7in \hoffset=0in % safe? :) - -\newdimen\textheight \textheight=\vsize -\newdimen\textwidth \textwidth=\hsize - -% Font size. -\renewcommand\normalsize{\fontsize{10}{12}\selectfont} -\DeclareOption{10pt}{\renewcommand\normalsize{\fontsize{10}{12}\selectfont}} -\DeclareOption{11pt}{\renewcommand\normalsize{\fontsize{11}{13}\selectfont}} -\DeclareOption{12pt}{\renewcommand\normalsize{\fontsize{12}{14}\selectfont}} - -% Driver (passed on to packages). -\DeclareOption{cmactex}{\OptionNotUsed} -\DeclareOption{dvips}{\OptionNotUsed} -\DeclareOption{dvitops}{\OptionNotUsed} -\DeclareOption{emtex}{\OptionNotUsed} -\DeclareOption{ln}{\OptionNotUsed} -\DeclareOption{oztex}{\OptionNotUsed} -\DeclareOption{textures}{\OptionNotUsed} -\DeclareOption{xdvi}{\OptionNotUsed} - -% ...remaining options are numeric assignments... -\def\m@keys{} -\def\add@m@keys#1{\expandafter\def\expandafter\m@keys\expandafter{\m@keys,#1}} -\DeclareOption*{\expandafter\add@m@keys\expandafter{\CurrentOption}} - -\ProcessOptions* - -\LoadClass{article} -\pagestyle{empty} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Dependencies. - -\RequirePackage{keyval} % key=value pair support -\input xy % Xy-pic kernel (not package to prevent clash) - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Parameters (set via options or the setup). - -% pixel=<dimen> (makes \pixels{<number>} a valid <dimen>; default: 1in/300) -% dpi=<number> (dots per inch ~ pixel=1in/number) -\newdimen\m@pixel \m@pixel=0.0033333333in -\define@key{movie}{pixel}{\m@pixel=#1\relax} -\define@key{movie}{dpi}{\m@pixel=1in \divide \m@pixel by #1\relax} - -% height=<dimen> -% width=<dimen> -\newdimen\m@height \m@height=2in -\newdimen\m@width \m@width=2in -\define@key{movie}{height}{\m@height=#1\relax} -\define@key{movie}{width}{\m@width=#1\relax} - -% tick=<fraction> (set the duration of each frame to <fraction> seconds) -% fps=<number> (frames per second ~ tick=1/number) -\newdimen\m@tick \m@tick=0.083333333pt -\define@key{movie}{tick}{\m@tick=#1pt\relax} -\define@key{movie}{fps}{\m@tick=1pt \divide \m@tick by #1\relax} - -\def\next#1{\setkeys{movie}{#1}} -\expandafter\next\expandafter{\m@keys} -\let\m@keys=\undefined - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Setting parameters explicitly... - -\def\MovieSetup#1{\setkeys{movie}{#1}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Internals. - -\def\m@caption{} - -\countdef\m@scene=1 % count1 = scene# -\countdef\m@frame=2 % count2 = frame# (in scene) - -\font\fiverm=cmr5 % safe small font - -\newdimen\m@total \m@total=0pt % total elapsed time - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% User accessible progress macros: - -\def\theFrame{0} -\def\theScene{0} - -\def\theF{0} -\def\theFr{1} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% User command: \scene [<fraction>] {...} -% -% Produce scene of <fraction> seconds (default: 1.0) with each frame produced -% by ... centered in vertical mode. - -\newif\iflastframe@ -\newdimen\m@length % duration of scene -\newdimen\m@init % start of zoom - -\newcommand\scene{% - \@ifnextchar*{\lastframe@true \DN@*{\scene@i}\next@}% - {\lastframe@false \scene@i}} - -\newcommand\scene@i[1][1]{\scene@ii{#1}} - -\def\setm@caption#1{\xdef\m@caption{#1}} - -\long\def\scene@ii#1#2{{% - \let\caption=\setm@caption - \global\advance\m@scene\@ne \edef\theScene{\the\m@scene}% - \global\m@frame=\z@ \m@length=#1pt \m@init=\z@ - \loop - \dimen@=\m@frame\m@tick - \ifdim\dimen@<\m@length - \scene@frame{#2}% - \repeat - \iflastframe@ \scene@frame{#2}\fi - \dimen@=#1pt \advance\dimen@ by -\m@frame\m@tick - \ifdim.1\m@tick<\ifdim\dimen@<\z@-\fi\dimen@ - \dimen@=\m@frame\m@tick - \@warning{scene \the\m@scene\space rounded from #1 to - \expandafter\unPT@\the\dimen@\space seconds}% - \fi}\ignorespaces} - -\def\scene@frame#1{\frame@compute - \null - \vfill - \hrule width\m@width - \hbox to\m@width{\hss - \vbox to\m@height{\hsize=\m@width \null\vfil{#1}\vfil\null}% - \hss}% - \setbox0=\hbox{% - \setbox0=\hbox to\m@width{\hss\fiverm\strut - \ifm@caption \m@caption \fi - \ifm@time \quad \m@nicetotal s \fi - \ifm@count \quad \the\m@scene.% - \ifnum\m@frame<100 0\ifnum\m@frame<10 0\fi\fi\the\m@frame\fi}% - \dimen0=\dp0 \ht0=0pt \dp0=0pt \raise\dimen0\box0}% - \ht0=0pt \dp0=0pt \box0\relax - \hrule width\m@width - \global\advance\m@frame\@ne - \global\advance\m@total\m@tick - \eject} - -\def\frame@compute{% - \edef\theFrame{\the\m@frame}% - \dimen@=\m@frame\m@tick \advance\dimen@-\m@init - \ifdim\dimen@<\z@ \dimen@=\z@ \fi - \ifdim\dimen@>\m@length \dimen@=\m@length \fi - \quotient@\theF\dimen@\m@length - \dimen@=-\dimen@ \advance\dimen@\m@length - \quotient@\theFr\dimen@\m@length} - -\def\m@nicetotal{% - \edef\tmp{\expandafter\removePT@\the\m@total}% - \expandafter\twodecimals@\tmp 00@} -\def\twodecimals@#1.#2#3#4@{#1.#2#3} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Triggers. -% -% Triggers are used to make the individual frames in a scene different! :) - -% \F{C} expands to C(F) where F = (#frames / frame#) ; 0.0 < F <= 1.0 . -% \Fr{C} expands to C(Fr) where Fr = 1 - F . - -\def\F{\expandafter\F@\expandafter{\theF}} -\def\Fr{\expandafter\F@\expandafter{\theFr}} - -\def\F@#1#2{#2(#1)} - -% \Zoom[A;B]{C} expands C zooming onto the interval [A;B], i.e., within C the -% interval [0;1] really denotes the (current) interval [A;B] ... - -% Specifically: F F inside [A;B] -% 0;A 0 -% A;B F-A / B-A -% B;1 1 - -\newcommand\Zoom[1][0;1]{\Zoom@#1;} -\def\Zoom@#1;#2;#3{{% - \dimen@=#1\m@length \advance\dimen@\m@init - \m@length=#2\m@length \advance\m@length\m@init - \advance\m@length-\dimen@ \m@init=\dimen@ - \frame@compute #3}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Preliminary FADING support... -% -% by Ross Moore; depends on Xy-pic `ps' backend... -% -% use as a <shape> modifier: \drop[<colour>][!\F\lighten]<object> -% use as a <shape> modifier: \drop[<colour>][!\F\darken}]<object> -% -% \lighten(1) = white \lighten(0) = natural colour -% \darken (1) = black \darken (0) = natural colour -% -\def\lighten@(#1){/@col #1 def{1 sub 1 @col sub mul 1 add}settransfer} -\def\darken@(#1){/@col #1 def{1 @col sub mul}settransfer} - -\xywithoption{ps}{\let\lighten=\lighten@ \let\darken=\darken@} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Dump size file. -% -\AtEndDocument{\dumpsizefile} - -\newwrite\m@write - -{\catcode`p=12 \catcode`t=12 \gdef\unPT@#1pt{#1}} - -\def\dumpsizefile{\immediate\openout\m@write=\jobname.size -% - \dimen@=1in \divide\dimen@\m@pixel - \immediate\write\m@write{dpi=\number\dimen@}% -% - \dimen@=\m@tick \multiply\dimen@ by 1000\advance\dimen@.5\m@tick - \divide\dimen@\p@ \immediate\write\m@write{delay=\number\dimen@}% -% - \immediate\write\m@write{loop=\loop@@}% -% - \immediate\closeout\m@write} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Misc. class-provided commands... - -\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} -\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} -\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} -\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} -\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} -\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} -\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% The End. - -\endinput - -% $Log: movie.cls,v $ -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 1.5 1997/05/13 12:36:26 krisrose -% Intermediate version; factors function nicely. -% -% Revision 1.4 1997/05/01 21:55:44 krisrose -% Works again. -% -% Revision 1.3 1997/02/11 04:20:19 krisrose -% Fits new dvitogif89a 1.1 :) -% -% Moved to Xy-pic hierarchy. diff --git a/Master/texmf-dist/source/generic/xypic/ross.eps b/Master/texmf-dist/source/generic/xypic/ross.eps deleted file mode 100644 index 53b25317b8f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/ross.eps +++ /dev/null @@ -1,397 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: /net/tyr/home/tyr1/kris/Kris/pictures/rmoore-icon.ps -%%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley -%%BoundingBox: 0 0 62 84 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% define string to hold a scanline's worth of data -/pix 86 string def - -% define space for color conversions -/grays 86 string def % space for gray scale line -/npixls 0 def -/rgbindx 0 def - -% lower left corner -0 0 translate - -% size of image (on paper, in 1/72inch coords) -61.92000 84.24000 scale - -86 117 8 % dimensions of data -[86 0 0 -117 0 117] % mapping matrix -{currentfile pix readhexstring pop} -image - -bac0d8d8c5c0c0c5988e7124241d4f63a87a637375c0dacac0c0987a638e9090baa8afaf -9898c5da8eba8e9ab1bac5c5c5b92438716971a284137138c038385a383c5a381d383838 -3c3c47697e696969696969695a5a -b9cfc5bac5c0c5b5b171713824244f4f71716f8c94d8d8cae1c0756d75988cc8bac8afb9 -af635a5a47987c9aa8a2c5a8a8cf5a2669386f908e3c6956718e1938383c4f5a5a233c3c -3c4f5a565a696d5a695a5a695a69 -9abababababaa89a8e7c5a3838324f5375759aafb9e9d7e9b198637ca8e9caccbecfc8ba -bc445a385a989a909abaa2baa8ba9c2638267e9ab198385a5a7e283838415a41325a383c -5a4f5a5a697e71697e7e69715a5a -afa0bac5a8a49aa873713cd8daeadac5ccf0f0ebf1d8f5f0f0f0f3f0d7f1d8d8ebd7ba4f -38c5afba7c63a28a8ea8babaa2c5e95a3871246da8a226385a23a82438415a5a45453c3c -413c4f4f5a637e7171697e715a6d -a2cabcba9aa88e8e7c6369455a4f5a5a4f71b1cce9f0ebddeaeaf0f0ddf1ddddebebf04f -4f5a6d6d69716d6f6f79b1b1b1babaa8328e245a8e982d135638562438385a5a6d71718e -7169715a5a7171717e718471716d -1d385a32382a3824241d243838384f4f383838384f325a5a909098b5cfd8ddeed8cd635a -5a5a696d715a715a697e718e8e8ea2a87169418e84a869244f3c3838385a1d1d1d1d1d38 -23715a717aa8a29aa8a2bca498a2 -a2c5a2a2b5a8a86f5a38383832381d241d1d1d381d38381d1d2a251d1d2a38385a4f415a -3838383c415a5a323c56699898a27a8e7e7e563c848e9098715a3c3869a8633838413853 -555a69715a71716f71716d8e6d90 -a8a8a8a8a29a8e8e5a3832381d32381d381d3838381d381d383838384141414f383c6956 -565a565a71717179845a413c38418e7e8e71715a8e8e8e71716d69697cbeafbaaf98af98 -a898afa8a8988ca89c8ea8a89aa8 -24242419242424381d1d38381d381d38382a3838383838383c3c4f4f4153565a413c2338 -38382d381d3841695a3c383c56716f6f8e8e71716956715a2425387cbebac5b998bab9c5 -baa2b998c5c5c0ccbabaa8985a5a -2a412a283838262424261d1d3232381d381d3823383c32413c53413c535a414124192441 -3c69714f5a3c382a385571413838698e718e7e71714f5a5a3c382a69635a695a5a5a5a5a -5a6d5a5a696d7e9090908e8e98a2 -382a38382a1d2426261d1a1d243824381d1d245a41414f4f41475a3c411d2a1d3c3c6969 -715a71715a715a69412a4171413c233c698e8e7169713c5a695a382a2426715a5a715a71 -5a715a6d6d7e71b1a890a88e8e98 -55987179719871415a5a32383c38383838381d383c4f3c38415a4138415a5a5a535a4f5a -4f5a5a5a5a3c41695a69413838411d2a382d4f90b17e41715a5a3c383824906d9075908e -7a8e907c8a7c908ea8a88e737175 -6971908e6d713c5a5a414f5a3238384f382424415a3c2d38413838415641414f41414f53 -5a4f5a3c3838383c3c41533c281d38382a38415a6da85a4f71565a413838a8ba9898b998 -a89c8a9aa8a0a0b7989498b9c8c8 -5a5a69695a5371716d711d5a5a5a5a5a381d413c41234141413c3c4f3c3c38413c413841 -5a3c414141411d1d3838254141411d4141382a3841415a8e324156715a475a7c907c9063 -636d6d634f7590a8a89890989875 -716971715a5a5a6d6d6d3c5a4f5a5a71383c3c383c3c41413c415a4f413c3c3c3c413c5a -3c413c2d1d41381d38383c3c234141253c25383828383c697141415a5a5a475a6d6d7171 -7c71906d6d6d8ea8989c8a9aa8a8 -7169716971416d7e7e5a5a3c6d5a5a4f3c414138413c2a416956413841414f412d381d1d -383841413c2a41381d413c3c3c3c3c3c3c413c2a41383c41697141554f41475a716d5a5a -6963714f636f6d909aa89aa8a4c0 -988ea898986d38715a7e715a5a5a4f3c382a3841414f4f413c411d414138254125384141 -3c41413c41413c41414f695a715a71717171713c4141413c413c71382a3c415a3c413819 -24243826242a24415a4f41474169 -8e8e9890987e5a6338383c566d71473838412a41534f415a1d242a3c3c2541414141413c -413c5641694f4f564f567171715e79799a5e79715656413c41383c413838413853234138 -1d242438242a38414147533c3c47 -719aa2908a8e5a4f6d715a4f32383838414138694f4f4141413c3c5a1d3856415a567171 -7171717e98798e8e7aa4a2a4baa4a4a4a2a4ba9a797e714f3c3c2d414141384141696938 -38382438242a243841533c534738 -6db1908e8e7e5a6d6d386d5a71381d38414f41413c5341413c4f4f38413c5a7171717179 -8aa2a4a2a2a2a4a2a4a2c0a8baa4c0bca4babaa4a27971714f3c41413c382538385a7156 -3838381d3824382a383c535a4147 -6da2908e987171696d5a4f5a32382a3c414f69533c5a2a414169413c415571988aa4a4a2 -a2a4c7a4c0a8bcc7c7c7c7c7c7c7c7bca4a6bcbca4a28e79714f4f413c3c4138383c695a -3241383824242a38383c53413824 -9a98a898908e69717138693823383c3c4f41474f4153414169414f717e7e92c0c7baccc7 -cccce0d8d7d8d8d8c2c2e0c3c3d7c7c7c7c3d7bcbcbca49a987171415a41414141415a71 -5a41415324241d1d38414f53a4a8 -a8558e8e8e715a32714f5a383838413c5a3c416969415a69715a417ea492c0c7cccce2d8 -d7d8c2d5d8d7d8d8d7c2c2d7c2d7c3c3d7c3c7c7bcc7a4a4a27e8e5a4141414f56413869 -695a5332382424242a41415ae1b5 -8e717e8e717e3c4f4f5a5a38384141533c4169697156557156716592c0aac7c3d8c3d8d8 -d8d8d8d8d8c3d7d8d7d7d7c2c2d7d7c7ccb9c3a6bcc7bcc7a4a4a27171565a4f5a695a69 -71695a3c38191d38262a1d28c5b5 -8e71719071695a4f5a5a381d41413c3c4f716956717171717171a4c0a4c3c3ccd8e2d8d7 -d8edd8d8d8d8d8d8d8c2d8d7c2c2c3c3c3b9bcbca6d7c7a6c0a4b59a71845a5a5a7e6d5a -5a69414f41795e7179865524d8c5 -8e90719098713c537e3838414141414171557171717171715ea2a4a8a8c2c2d5d8d8d7ed -d7d8d7ebebd8d7c2d8d7e0c2d7d7e0c3e0c3b9c3bcc7d7a6a4baa4a28e71715a695a7169 -5a5a4f41535620414f715519ccd2 -908e718e715a5a4732382a3c413c416971697179717171717ea4c0c3c7c2e5d8d7d8d8e6 -d7e5d8d8d7ebd7d8d8c2d8d8c2d7c3c3c3c7c3d7aac7c7bcbaa4c0baa29871564f5a715a -5a4f5a5a6971323c41887119d8b1 -8e986d8e847e714f5a2a41283c533c715671717198797171a2a4aac3c7d7d8d7e4ede4d7 -e4e4e6d7d7d8d8d8d8d8c2c2d8c2c3c3d7c3c3c7c3c3c3c7c7a4baa4b5a2717e5a4f695a -5a5a4f697171414153ad7119d8c2 -98a88e8e8e987169412423414141417198717e7e7e84718ea4aac3d8c3d8d7d8e6e4dde6 -e4eae4ead7e6d7d8d7d8d7c2d7c2d8d7ccc2d7d7ccc3c3c3b9bca4c0c0a2717e695a5a69 -5a5a4f4f565a694153b17e24c5c0 -a298a8b5b1b1905a1d3841383c414169717e798a9898717ec7ccd8d8ccd8d7edede6ddd8 -e4e4eae4edeaddeaead8e6d8d7d8d8c2c2c2c2ccd7ccc3c3c7a6bca492a298565a556971 -5a69566969416955539c692acfb5 -c5bac0b5c0c0715a38383c41384169567ea4a2a2a48e71a2ccccc2d8c3d7d7d7d7eadde4 -eae4e9e9e4e4e4eae4ddd8ebd8d7d8d8d8d8d7c2c3d7d7c3c7bcbc92c0c098717e565a71 -5a5a7169715a696941d5692deac2 -a2bab598c5c05a38413c414123415a71a2a4a4a48e7a98a4ccc2d8d8d8d7e4d8d7eaede4 -eae9e9e9e9e9eae6e6d7e6d8d7ebd8d7d8d8c3d7c2d7c3c3aad7c7bca4a2a4717171717e -715a69696971693c41e16938e9b5 -a8b1a271a8b53c383c3c3838383c5671a2a48ea4797179a4d8d8c2d8d8d7d7d8e4d8d8ea -edeaeae0eae4e9eadde4d8d7edd8c2c2d5d8c2d8d8c3e0c3c7aacdbcc0a28e987e556956 -715a3c71715a5a5a7ed26953cfcc -a8b5b169a89a38413c41381d253c71a4a4a4a4a4798e7acdc2d8d8d8c8d7ddd7eae0e0f5 -e0eae9e4e9e0eaeae4eae4e6d7d7d8d8d8c2d7d8ccd7c3d8e0c7c7c7c0a2799871716984 -7156695669696969a8d17741d8a2 -8e988e5a849a38385a383c2a233c7ea2c0a2a4a279797ec2d5c2d7edd8e4d8e4e4eae4eb -e9e9e4e9e9e9e0e0e9eaead8edede6d8d8c2d8d8c3d7c2d7c3c7bccdbaa27e9871717190 -717155717171716398ad3838e1a2 -909879715ab538383c38381d385aa4a4a4a4a4c0797aa4d8d8d7d7d8d7eaead7e4e0eae9 -e9e9e0e9e9e9e0fde9e4e0eaedd7d8d7d7d7f3d8c2d8d7ccc2c7bca8c0a48e7171846971 -9c718469717e7e7198d2413cd8d8 -98909a8e6998382338233838417ea4a4a4a4c7a47e86d7d8d7d7edead7eaece0e0e0efef -efefefefefefebefefe0f5e0e4e5d8d8d7d8d8d8d8d8d8c2c3c7aac0a4a47e8e71697171 -9c717171717171539cb5243cccb5 -b1a8b5a28471413c41382a2356a4a4a4a292d7c07ea4d8d7edd8e4d7ede9e9e9e9efefef -efeff5efeff5efefefe9edededd8d7d7ebe6d7d8d7d8c2d8c3ccc7bca2a48e7169717184 -7198717e90987147b1d22441cfb1 -b1a8a2b58e69384138381d3871a4a4a4bcc7c2a479aae5d8e4ede4d8e4e0e0efe0e0efef -eff5f5f5f5f5eff5fdebebe4e4d7d7edd7ebd7d8d8d8d8d8d7d7c7c7a4a271715a557156 -719898847198905addbc1d41e1b5 -a2b1b1c0a27e3c38381d3856a2a4c092c7c7d8a479ccd8d7d7edeaedede7e9e9e9efebef -efefeff5f5fdefefefe9e0d8edd7d8d7edd7e5d8d8d7d7e2c3e0c7c7a4a28e7141696956 -5671988471717153c2d5383cd8b1 -a898b1a8a8711d411d382a7ea4c0cdc7a6c3cca47ed5d8d8d7edd7d8e0e9efefefebefe9 -efeff5eff5f5efefede0e4ede4d7e5d7d7e6d8d7ebd8d8e0ccc3c3c7bca4715a4f41695a -697171986971698484d22469c0b5 -9a8ea898988e383c381d1da4a4a4a8c7c7ccc2a4bcd8e0d7edd8d8e6d8e0efe0efe9efeb -e9efefefefe9ebebebede0e0e4d8edd7edd7d8d8d7d8e0d8e2c3c7c0bca271693c416941 -41416984695a5a5a88b51d47d890 -8e798e8e8ea85a23381d3ca4a4a4a8c7c7c2e0cda8d8d8d8d7e6d8d7e4e9f5e9e9efefef -efe9efeffde7e0fde9e0edd7edd7ebd7e6d7ebd8d8d8d8d8d7ccd7c7baa48e563c41413c -534f55564153564190a88e84b571 -5353415a5a2338411d3841a4a4babcc7c7c3ccc7c2d8d5d8e5d8d7e6eae0e0e0efebeffd -efefebefe7e9e9e9e0e9e0e4d7edd7e6d8d8ddd8d8d8d7d8ccc3d7c0a4a4717141414138 -41415a556941564f90ccc0b5a898 -41383c413c53413c1d2371a4a4c0c7c7cce0e0e0ccd8d5d8d7d8edd7eaebece9eff5efef -efe0efebeff5e9e9efe9edd8edd7d7d8edd8ebd8ddd8d8d5c2d7c7bcc0c0a28e693c4153 -3c5341416971717190b1b1908e8e -3c4153473c3c473c38235aa2a4c0a8c7bac3c3ccc2d8c2d8d7d7d8ede0e0e9e9e0e9e9eb -efe0e9efefe9e9e0e9e0e9d7d7ededd7d8d8d7d7e2d8d8d8c3d7c3c7c7a4a27969414141 -41694153717e5e717e192a3c4138 -414141473c474141413c69a2a4a4bca8c7c3c2e0c3bcd8e2d8d7d7d7edf5e9e0e9e9e9ef -eff5efebefe0e9efeaedd8d7e6d8d8d7d8d7d8d7d8e5d8cce0c7ccbac0a4a29a694f3828 -3871557e7ea47e92a8c0b9c5baa8 -41533c5a41414f471d38567ea4a4bcc7c7aae0c3c2d8d8e5d7d7ddede4e9e0efefe0efef -f5efe0efefefebe0f5ede0d7d8d7edd8ebd8d8e2d8d8d8d7c3c7bcbcc0a4a47e55414138 -41556971867e7ea8a8bac5bab5ba -3838414147474f41382a5a79a2a4a4c7aac7c7cce0c2d8d8d7e6d8d7ede0e0efe0e9f5ef -f5ebefefebefeff5e0e4e5e5edddd8d7d8d8d8e2d8c3c3d7c3c7c7c7c0a4a49a56535a41 -23696956a4a47992aac0cfc5b9ba -413c533c3c47415a38383c7a86a2c0c7c7c7c7c3ccc2d8d8d7d7edd7eaebe9e9f5e0eae0 -e0ebe0e0eff5efeaf5d7eaebd8d8d7c3d7c7c7c2d8c2c3c3c7cccdc7a8a4a2a271693c25 -41416971c7a87aa8c2baa0c88a90 -4153414153413c6941384171a2a4bcbaa6c7aaaad7d8d5d8d8d7deded8ecebe9ebefeaed -e0e9efe0ebebebedd8e5ebd8d8d5c7c7baa4a4c3c7c3b9c3bcc7c0c0c0c0a4a271564141 -3c3c698ea8a88ea8c2bedddaddf0 -715a717171717a5a4138387179a4a4a2a4cdcdc3cce0c3e2d7d8e0d8d7e0e9ebefebd7e0 -e0f5eceadee0ebded8cdcda2a4a4cda8b5c7c0a4a6c7a4a8a8bcc7c0c0a4b5b5797a4141 -415571a29aaa92bad7e4d8baa88e -32383838325a3838843c38718e867979a4a4a4cdc7ccccd8d8d5d7d8d8e0e0e0ebe0d8ed -f5e0e5e4e5e5d8cce0a4a48e987ebacdbaa4a4c0c0a8c792a4cdc0c0c0c0c0a2987a6941 -254fa4bac7c3a8c7c3b1ccd8ddeb -38381d1d382a537171693871717e8e9879a2a2a4a4c3cce0d8ccd8d8e0d8f5e9e0e0e5e0 -e0e0d7d8e0d8a4a2a4985e715671c7a8bca4cda4a4c0cdc092c092a4c0c0a4b5a4718441 -416979c7aac3aaa8c37190717171 -24261326241d3841a2843c695671799898a28e8e8e8e989aa4c0c7c7d8d8d7e0e0e0d8ed -d7e5d8d8c3cd7171563c414156418e71797998798e86a2a4a4c0c0bac092a4c0a271692a -3856a4bac3bac2a4987198987169 -13262413262a5a717e5a3c416971798a7e7e79717171565a7e86a4bacdccc2d8eaead8e5 -edd8e2e0bac08e56565671715a56718e7171a4a4a4a486a4a492c0c0c0c0cda4a28e7138 -2556babac2c2c2a4798e98713c69 -988e247119388ea4a898713c5a56565e71717171715a4f413c3c5a71a2cdaad8d8e0edd7 -e0d8c2baa4a4bac092a4b5e9f5eb71716969697ea4a4a4a4a4bac7c7cdc7c7c0a2987141 -4155c2ded7cdd7a8719c98984171 -b5a2197e264190907c8e71415a414171987171717171717a71795e7171a4c0c3d7ead7d7 -e5d5e0a4a492c7a8a4a4cdffffffbcc25555717198a4cd92bac7cdccc3d7bcc7a4985e38 -3c56c0d7d7c2c8928ea2b1a25a71 -9ab1383226988e9ac5bab13c414f568e7171717aa47a9871a486a49a7e797ec7d7d8e0ed -e0c2babaa4cd9292c0a4e2ffffffe5f85a71717e71a4c7bac7d8ccd7c3d7c7c0a4a27141 -3c71a4c3c2c2c2a479b1b1b15a90 -a484412a3841718471715632568e797971715e71e4e288718a4184a4a4a49a7ed8d8e0ea -edd7c7a4cdbabaaabac2e5fdffff8888717aa4a4a292aac7ccc3e2d8e0c3c7bca27e7141 -388ebcc3bcc2c26571a4b1b17190 -b55a411d38698e8e908e9838568ea2988e563cd2e9d58855e94171b7a4cd7e86d7d7e0e0 -e4cca8a4baaac2a4cda6d1e5f5f5bca49cb7a28ea4c7ccc2c2d8d8d8c3d7bcc0b5a2843c -38c0c792a8c3c27e8498b1a25ab1 -c05a552438567e8e79988e4169797ea4714171cdd7bc98713c4171d5cdbaa479d8d7e4ed -dec3c7a4bac7cca8de8ea8aae0bacda4a4a492a4baccc3c2e2d8d8d7d8c3cda4a2a2713c -41d1d1c7bababa7171a2b1a269a2 -c024711a5369718e718e7169418e8ea48e71718aa2baa288a4a4a4a49292a4a2c3c2d8d7 -d8c3bca8a4bac2d1aa9292a8baa4c0a4bababac7c2c2d8ccd8d8d7d7c2e0babaa298563c -98cccdc2e2a4bc5a7198a2a269a2 -a82490266956718e8e8e8e715a71a4a47e7998a47e7ea4a2a4a4a4a4baa8a49aa8c2d7d7 -d8ccbabcbcc7d1bac7cdc7c3c3c2c2c2c2c3c3c3c3aad8d8d8d8d7f3d8e0c0a4a27a7155 -a2cdd1d7d8c792236990b1988498 -712d5a71718e8e8e8e98987e5a71a4a4a4a4a2a4a4a4aac0cda892a8baa47979c3bcd8d7 -c2aac2c7bca892cdc7cdaaaac3babaccc7d5ccd8d8d8d7d7edd7ebd8d8cca4b598988e98 -b7e0d8d8e2e0cd477198a29884a2 -413828384141414f697163905671a4a2a47ea4a4a4ba92bca892cda6c0a47979c3c2c8c8 -d8b9c3a6a8a6c7c7c7c3c7cdaae0d5e0d5d8ccd8d7d7d8d7d7ead8d8ccc3a4a479719898 -a4d1d8d8d8c2cd69908eb1b584a2 -412a242a2a382d2a2a2a38243869a4a4a2a2a2a492c092c0c792c792c079797ec2c2c2c8 -c2c3aac7bca6ccc2c3c2c2d5ccccd5d8ccd8d8d7d7d8eae4ebedead8d8e0c0a28e8e9898 -a4d5e2c2d7baa45a719ab1a271b1 -242a2a2a2a2d2a382a382a2a2a84a4cdcda4c0c0a4baa4a8c7a8c7bca48e8e7ec3c2d7c8 -d7c2a8c3a6c7c3c2d7d5d7d8d7d8d8d7d7d7c2d7d8d7edd8ead7edd8d8c7a49a798e7e8e -a4d8e0d5c7a498848ea8a2b1a8b5 -192a3c2d2a2a2a2a2d2a2d3c245aa4a4babaa492c0a8a8bcc7a8a8a892797e86a6c2d8c8 -d7c2c3a8c3a8c2c2d8d8e0d7d8d8d7d7d8d7d7d7ead7d8ead8edd7d8d8c7a479798e8e7e -cdc2c2c3a498a27e8ea890b18ea2 -19382841192a2a2a2d2a2a2a2471a492c7c7b9aac7aacda8aac7c2c7a6a47ea4a8c2e0d7 -c2c2c2c3c2aac2c2c2d7d7d7d8d8e0ede0e0e4ece0e5d7ead8e6d8d8d5d77e79988ea48a -c0c2cd928e8e9871a8a89a98a298 -2a2a2a2a382a2a2d2a2a2a2a2a71a4c0bac7c3ccc3aac3c7ccaac2c3a479a47e92d8d8d8 -d7c3c2c2c3c3aac2c2d7d8d8edeae0d8e9e0eaede0ededd7d8edd8d8ccba9a717ea4a498 -92d1a47e90a2a88e9898a898a88e -252d2a2a2a2a2a2a382a2a2a2498a492a8c3c7c3baccc3c2c3c3cca8a8a27ea2bcc2d8d7 -d7c3aac2c2c3c2c2c2d8d8edd7d7e4e0e0e0e9e0e0ecd7d7edd8d8cce0c77e717e989898 -a2868e8e8e90a271a8a298908e7a -1d2a2a191d192a2a2a2a2a2a2498b1a4a4a6c7aac3c2c2c2c3c2c3c7bca2a48ea8c2d7d7 -d7c3aab9c3c2c2c8d8d7d7d7d8e0e0e9ede0e4e4ead7d7edd8d8d8e0d7c779719aa49898 -a271699890a8988a98a88e718e8e -38192a2a24242424192a242a243f69a292c0aaccc2c2c2c2c3aac3c3c7a48e98a8c2d8d7 -c2ccc3a6c3c2c2d5c2d7d7e0e0d8e0e9e0e0ead8d7d7d8ddd8e2d7c7c7cd8e71a2989898 -a2798e988e8e988ea8a88e718e7e -382a2a2a2a2a2a2a2a2a2a382a2a3856a4cda6c3c2c2ccccc2adc2c2c3a49aa4c2c2e4d7 -d8c2c3c3bac7c3aac7c2d7d8d7d7e0e4ece0d8d8d7d8d8d8d8c7c3cdc0ba988ea498a2a4 -ba9a988e8e9a9090a88ea8717990 -2a2a242d192a2d2a2a2a2d2a2a3c3841a492c7aabac2c2c2a8c2bac2c779a4a4c2d7d8d8 -d8c2c3c3c7c2c3c7a8aad7c2c2d8d7d7d8ece0d7d7d7d7d8c3e0aabcc0c098798ea498a4 -a4a2908ea8988e8e8ea88e719869 -2d2a2a2a2a2a2a242a24382a2a411938a2c0a8c7c3c2c2c2c2bac2c3a4a47e92c2c2d8e0 -d8d5d8babac2c2c3c7c7ccccc3c2d7d7e0d7ede6d8ebd8c2e0c7c7c792c0987a8ea2a4a4 -c0a28e8e8e8e8e79a88e8e698e8e -2a2a3838192a25242a242a2a38532a3898a4a4a6c3c2ccc3aac7aaa4a4a2a4c3c2d8d7d8 -d8c2ccaaa8ccc2c2c7c2d8d7d8d8c2ccd7d8d8d8d8d8d8cccccdd7cda4a2989898a498a4 -a4a2a85e8e987190b1a89863908e -382a2a2a2a2a2a2a2a38192a2a382a38797e92a8aac2babaaac7aaa4a2a492c7c2d8d7e5 -d7d8d8c3aac2c2aac7d5d7edd7d7d5c2d8d5d8d8d8d8cce0c7c0c7a4b5c0987e9898a2a2 -baa28e7198a88e8ea2988e69a86f -242a192a2a192a2a1924242a24382a2a418ea4bac7bac7c2c7c2c3c0a47ea4c3d7d7deeb -e0d8c2c2c3c2c3c792d7e5e0d8d8d8d8d8d8d8ccccc2e2cccdc0cdc0a4b598988ea2a2a4 -b5ba7e63988e9090a2a2907e908e -1d242a2a382a2a2a242a2a2a242a2a2a3c717ea492c7c7c7ccc3aaa8a4a2a4c2c2d7ebef -e0c2c2cdc3c2baa4bad8d5d8d8d8e0d8d5e2e0cce0d1d8e0c7c0cdc0a4b59898a4a2a4a2 -c0bca28469847e9890a8717e7190 -2a241924131919242a242a2a2a382a2a386979a2c092c7c7c3bac792a479a4aac8d7efef -ded5c2baaababacdc2ccd5ccccc7cce0e0e0cce0cccdc3e0cdc0cdcdb7b57198a2a4b1a2 -a4a49a7a5353697e908e717e8e71 -3c38413c41233c413c2d413841382a3c383856a4a4a4a8c7cda4c0a4a4b7a4a4bac2cdcd -bac0a4a2bababac7bae0baccc3c7e0ccc7d7d1ccc3c7e0c7c0a4cdc0a4b57198a2a4e0a4 -c0c0a4a441536369698e6d719071 -4141413c4138382a38414141413c413c413c41a2a4b5c0aac0c0a4a4a2a4a4a4babacccd -c0a4cdbac7ccccbae0d1d5cccdbac2d1d1c2d1e0ccd7d5ccc0b5cdcda4b58e98a2b7cca2 -a4a4a2b57153696969845a90906d -382a381938285341262424241d2a23382d415a79a4a4b5a4a4a2a2a4a4a4a4bca4cdbccd -bad1cdcdd1c2d1cccccccccccdbaa8bac7cdbaccd8ccd5d7a4b5bac0b7a48ea4a4d1e0a2 -cda4baa48e695c535c843869715a -191a2a98a4903c84714138382424241d242a2d71a2b5a4a4a4a4a286a4a4b7a4a4bcbac2 -d5bad1bad5d5c2e0d5d5c2c2aacda2a492bac7a8c2e0d8ccc0a4c0b7a2a498a4b5e0d1a2 -cca4a2c069696969698438262624 -b5d2bc71533f5c53719c693c41532a2624242469a2a4a2a2a2a2a4a286a492a4bcbcd5d5 -d8d5bacdd5d7d7cdd5c2cccdbaa479a4a492cdc3d8d8d5d7a4c0c0b5b1a48ab1c3d8cda2 -e0c0a4927e695c69846941381d24 -413c3c3c41413c413c41535369555371719c69697ea4a4b5a2a4a47e7e7ea492a8aaccd1 -cdcdcdc2aacda8a4b7bccda47e8abaccccd7c7c2e2e0d1baa4a4b7b5a2a4a2b1d5e0a2c7 -ccc0ba98715c715c845c695c2a19 -533c53413c3c3c3c413c413c41533c2d383c534169b5c0a4a2a4a4cda47e79988ea4a4ba -92bacda49acdcde0e9d7e28e657ec2d8d5d1c2d5d8d8e0d1a4b5c0b5a48ea4a2d5c0a4c7 -c7cd7e715c715c5c5c5c69696941 -53413c3c3c3c413c2d3c5341413c41533c533c3c53a4a4a4c0b7a4bcba8a4171c0cdd1cd -babc9acdece5e4f0f5a4928ea4bad5d7c2ccc7cce2d8bac0b5a2a4b7a27a98b5e0c07ec2 -bcc771695c5c69845c84535c7ec5 -41533c3c533c533c3c533c3c2a5569698e8e798ea290a4a4bacda4c0bc86796b6b71cdd1 -dee9cdbce9e5798e869292c7c3d5d7d5c2bad5cccccccda4a4a2a4b79879bce2cda29ccc -c0c069555c5c695c5c695c698469 -53472d3c413c413c3c3f535341698ea4a28e989898698aa4cda4bca4a4a486656b658aa4 -a4c08671a48e798c92aabac2ccd8d8d5d8e0ccd1cce0cda4a4a4b5a27a98cdd5a4a4a4aa -c0a45355695c69695c5c5c5c535c -718441413c413c383c6990b5a2a8989a7e5a41262d418498b5a4a4a4a4a48686866b8c8c -a692929292aac3aabac2ccc2c3d8e2d8c3bac3cdcdbac0a4a4a2bc987aa2e0e0a47ecccd -cd7e5353695c6969695c7e4f5c7e -b1a4a2a29890848e989aa29aa8a2a85a2a415a98b1c09879a4a4c0a4a4a4a4a47e8ca692 -adadc2adc2c2c2c2c2c2cdccccccd5c2ccc7ccc7cccdc0a498a4a49c98b7d1cca2a2cccd -cd5569535c715c695369535c695c -a2a2b1a8a2a29898b198a8b59aa22a3c98b1b5a2c5c5b590a4a4a4a4a4a4a2868e8c92aa -adc2c2adc2c2c2c2c2c2aaaac2ccd5ccccccc7cdc7c0a4a29aa4a271a4cdd5c7a4c7d8bc -cd53555c695c5c5c5c535c69635c -a2a2a298a298b1a2a2cdc04169b5d8d8e9cfcc8456325a3c8e8aa4a4a4a4a48ea4a48c92 -9292aaaa92adbababababac3c2bac2ccccccc092c0c7a2a4b1a2a4a2e0e0cdc0c7d7e0cd -a25c695c69695c5c697e695c695c -416998a2b1989c90b5a869c2ead7e1e0474153694f383c3c717186a4a4baa27ea4a4a48c -a49aa49aa4a4bababaaac7bac2c2c2c3cccdcdcdc0baa48e7a9898cdcdd5d1a4ccd8c3c0 -6969534f5c5c69696969695c6984 -7e7169695353533c69a2c0d7d7e02a38535c69716d5a695a719098a2a4a4a4a48ca49292 -c0c0babac2c2aaaaccaac3bac3c3c3ccc7bacdc0a4b57a8e9871b7d5e0c3c0c0d8d8d771 -696953555c535c5c5c5c695c845c -d8cfc5716969697ec0e1d7d7e1b57198b5b5d2b5b59a906f7c8e718aa4b7a4a4a4a4c0ba -a492babad1c2ccbac2cdbaaaccbac3bac7c7cdc0a4a2717198bccde0d5d1cdbae5d8d169 -5c556953555c5c695c5c695c695c -d8d8bcc0d8c5a2d8e9d8ead7d8a2c5cdcfc0a28e715a7e715a71717ea4a4bca4a4a4baa4 -bababaaac2c2c2c3c2c2c2bac7c2e0aacdc092a4a4a471988acdbad1c2d7d1cce5d8c755 -69535c4f5c6953695c5c5c715c69 -d8c5c0bcd8d8d8d8c0d8e19090a2a8bad8cdd8383253694f98a8a28e7aa4a4a4a4a4c092 -cdbac7bac2c2c2cccdc7c2baccd1ccc7c7a4c0a47e7171a2ccc2d1d1d1cce0e2d8e08a55 -55555353695c555c5355535c6969 -c5c5c0d8c0c0d8d8d8d8cd90c0ccd7d8e1c0988ea2c0c56f1d5a4f717aa492b5a4a492c0 -a8aac2c2ccc2d8c2d5c2aac3c2c2bac7babca4a29871a4c0d1d1d1baccbac2edd7c07153 -53535c55534f5c5355535c555c53 -a8a2c5a2bab1c5a86f6990d8bcd8e9c09090b5c5c0c0bac03c412841718aa4a4a4a492a4 -baccc2d5c2d5ccd8c2c2d1c7aacdaac0c7b5a47a98a4babacce0bad1cdc2ecedd1693f53 -556953555c6953695c53555c5c69 -c0c2b5c2a8baa2cca2c5b5b5c5c0c5a89abac5c0d8c0c5b1413c3c3c418a86a2a4a4a4ba -bac2c2d5d5ccc2e0c2d5c2ccd1c2c7c0baa47e7ea4cdc7ccccd1ccc2d7d5edf38a556953 -554f5c5c5353555353555c5c6953 -c0c5c5c5b5c5c0a2b1c5c0c5c0c5c5c0c0c5c5c5c5c0c541413c3c3c418e8aa2b7a4bc92 -bac2c2c2c2d1c2d1c2c2d5c2cdbaba92c08698a4bca8aacdcccccdccccd8ecd884535355 -535c5553555c535c5553535c5353 -c5d2c5c0c0c0c0ccd8c5c0c5ccc5c0d8c0ccc5c0c598414141414141413f5698a4a4bcbc -baccc2c2ccd1ccccc2ccccbabac7a4b7a2a4b592c0bacdcdcccdccd5e5ebedd553535553 -554f5c555c53535c53555c5c5355 -5a4f6da8c0c0d8c0c0c0c0c0c0c5c0a2b1a89a8e9a5541283c2541254141417a86a4a4c0 -cdd1d1c2cdbabcbaccd1c2c7a4a4b7a48ea4bcc0cda492e0d1d1ccccd8edf3b555535355 -695553535c693f5353695c534153 -717171719071449a908e5a73b9afbaa2a2a88e557e3c3c3c3c2d533c3c41412a718a8aa4 -a4cdbaa4bcbcbac0baa8c0a48aa47ea4a4a4cdc0ba92baccd1d1c2d8d8e5cd415341535c -5553555353555355555353533f3f -5a5a6d8e8ea8e9d7dacfd7cdcccfb99869381d192441413c3c4128413c3c414155718a8a -a4a4a4bca4b7a49ab7b7a498a498a4a4a4cd92cdcdcdcdc7cccccce5d8d88e53534f5553 -535c4f5c55535c5353555355533f -26383871757cc5bac5cfcad7dad8d8da735a381d383c412841282d2841533c2d41537171 -79a49886a4a4a4a4a27a7e8a9ca4a4a4a4c0cda8cda8bacde0ccd8e2e5d8565353415353 -5c535c415c534f534f533f5c3c3f -4141532d2a2a24383c5a8ea8bac5ba4f7a9a8e3c41233c25284141413c413c413c41413c -3c4171a2a4a4a4a4a4a4a4a4a4a2a4a2a4a4a4a8cda8d1bad5d8e2d8f0d73f4f53415c55 -554f555c5c55534f41555c553c3c -a2c2a88ea8988e71534141718e8e7c6f902d242a283c2a282828283c53412a3c3c3c533c -3c536971a4a4a4b5b7a4a4a2a4a4a4b5bac0babac0c7baccd5e2d8e0d5cd53553f535553 -4f534f5c5553535369533c41282a -ccb5c5b5c5c0b5c5c5c0b1b5a2b1909c715a532d3c3c3c3c282d413c41413c413c41413f -3c414155987e8aa4a4a486a4a4a4b5b5a4a4cdbac7baccd5d8e2e2e2cd553f533f555553 -535c5553533c53553c3c3c383c41 -b5ccccc5c0b5c0ccb5b5b5b5b1b5b1a25a6d712a2d2828282828415328413c3c3c413f53 -3c41535671717988a48aa4a4a4a4a4c0a4cdbacdaae0e0d5e0d5e0e09c3c41535c53534f -5c535c3f2a5355533c3c2a2a5553 -c0b5ccccc0c0b5c0ccc2a2b5b5b1b1907e7171284141253c4141253c413c4141413c3c3c -282841555671987a86a4a4a4a4a2a4a4a492cdbacdd1e0d1e0e2d8cd7153533f53535555 -53553c2d555c53413f2a413f3f55 -8eb5bacde1cde1cfb5cca2b5b5b58e90636d7e1d2828282a3c2a284153412841413c3c28 -41254171717171987ea498a2a4a4b5a4c0c0c0cdaad7cce0e2e2e0563c4155535553535c -55555371533c3f282a3f41414141 -714f3c4f5a6f98adbcc2a2c5ccc08e71717e713c3c3c3c3c3c2d414128413c413c3f4128 -284155847171717e88a47e86a4b7a4b7a4cdbac7bacccce0e0c3cd5341535553535c555c -553f555c3c3f3c2a5c553f3f5641 - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/Master/texmf-dist/source/generic/xypic/xy.doc b/Master/texmf-dist/source/generic/xypic/xy.doc deleted file mode 100644 index 54ac9fca7d0..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xy.doc +++ /dev/null @@ -1,8324 +0,0 @@ -%% $Id: xy.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Basic Xy-pictures: Xy-pic bootstrap and kernel macros. -%% Copyright (c) 1991-1999 Kristoffer H. Rose <krisrose@ens-lyon.fr> -%% -%% This file is part of the Xy-pic package for graphs and diagrams in TeX. -%% Copyright (c) 1991-1999 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\else\message{not reloaded}\endinput\fi -\let\xyloaded=\relax - -% NOTE: Apart from the actual macros (as also found in xy.tex), this file -% contains both the Xy-pic kernel reference manual and TeXnical documentation. -% See xyrefer.man and xysource.man for how to typeset this information. - -\message{Bootstrap\string'ing\string:} - -{\catcode96 12\catcode`\#6\catcode`\.12\catcode`\:12\catcode`\'12\catcode`\@11 -\ifx\xywarnifdefined\undefined\else \immediate\write16{}% - \immediate\write16{Xy-pic Warning: \string\xywarnifdefined\space redefined.}% - \immediate\write16{}\fi -\gdef\xywarnifdefined#1{\ifx#1\undefined\else \immediate\write16{}% - \immediate\write16{Xy-pic Warning: `\string#1' redefined.}% - \immediate\write16{}\fi} -\xywarnifdefined\xydef@ \gdef\xydef@#1{\xywarnifdefined#1\gdef#1} -\xywarnifdefined\xylet@ \gdef\xylet@#1{\xywarnifdefined#1\global\let#1} -\xywarnifdefined\xynew@ - \gdef\xynew@#1#2{\xywarnifdefined#2\csname new#1\endcsname#2}} - -\message{catcodes\string,} - -\xywarnifdefined\xyuncatcodes -\xywarnifdefined\xyreuncatcodes \def\xyreuncatcodes{\edef\xyuncatcodes{% - \catcode92 0 \catcode123 1 \catcode125 2 \catcode37 14 - \catcode 9 \the\catcode 9 \catcode10 \the\catcode10 \catcode12 \the\catcode12 - \catcode35 \the\catcode35 \catcode36 \the\catcode36 \catcode38 \the\catcode38 - \catcode43 \the\catcode43 \catcode45 \the\catcode45 \catcode46 \the\catcode46 - \catcode47 \the\catcode47 - \catcode60 \the\catcode60 \catcode61 \the\catcode61 \catcode62 \the\catcode62 - \catcode64 \the\catcode64 \catcode96 \the\catcode96 - \newlinechar \the\newlinechar \endlinechar \the\endlinechar }} -\xyreuncatcodes - -\xywarnifdefined\xycatcodes \def\xycatcodes{% - \catcode 9 10 - \catcode 35 6 \catcode 36 3 \catcode 38 4 - \catcode 43 12 \catcode 45 12 \catcode 46 12 \catcode 47 12 - \catcode 60 12 \catcode 61 12 \catcode 62 12 - \catcode 64 11 \catcode 96 12 } - -\xycatcodes - -\message{docmode,} - -{\catcode`\|0 \xywarnifdefined|DOCMODE -\gdef|DOCMODE#1{\ifx(#1\relax \xycatcodes \expandafter\ignorespaces - \else \skipspecials@ \expandafter\docm@\fi}% - -\xywarnifdefined\skipspecials@ -\gdef\skipspecials@{% - \catcode`\\12 \catcode`\{12 \catcode`\}12 \catcode`\#12 \catcode`\%12 - \catcode`\^^L12 \endlinechar`\^^J }% - -\catcode`\/=12 \lccode`\/`\\% -\lccode`\D`\D \lccode`\O`\O \lccode`\C`\C \lccode`\M`\M \lccode`\E`\E -\lowercase{% -\xywarnifdefined\docm@ \gdef\docm@{\docm@i}% -\xywarnifdefined\docm@i \gdef\docm@i#1^^J{\docm@ii#1/DOCMODE\docm@iii}% -\xywarnifdefined\docm@ii - \gdef\docm@ii#1/DOCMODE{\def\next@{#1}\futurelet\next\docm@iii}% -\xywarnifdefined\docm@iii \gdef\docm@iii#1\docm@iii{% - \ifx\next\docm@iii \let\next\next@ \docecho@ \let\next@\docm@ - \else\ifx\next@\empty \let\next@\docfinish@ - \else \edef\next@{\noexpand\docm@iv\next@/DOCMODE#1\noexpand\docm@iv}% - \fi\fi \next@}% -\xywarnifdefined\docm@iv - \gdef\docm@iv#1/DOCMODE\docm@iv{\def\next{#1}\docecho@ \docm@}}% - -\xywarnifdefined\docecho@ \global\let\docecho@\relax -\xywarnifdefined\docfinish@ \gdef\docfinish@{\xyuncatcodes|DOCMODE\next}} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - After giving an overview of the \Xy-pic environment in \S??[env], - this \FILE\ document the basic concepts of \Xy-picture construction - in \S??[basics], including the maintained `graphic state'. The - following sections give the precise syntax rules of the main \Xy-pic - constructions: the position language in~\S??[pos], the object - constructions in~\S??[object], and the picture `decorations' - in~\S??[decor]. \S??[objectlib] presents the kernel repertoire of - objects for use in pictures; \S??[option] documents the interface to - \Xy-pic options like the standard `feature' and `extension' options. - -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - Details of the implementation are not discussed here but in the - complete \TeX\-nical documentation~\cite{RM95:Xy-picCSTC}. -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - Section \S??[algo] documents the more complicated algorithms used to - compute directions, edges, and connections. -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section{The \Xy-pic implementation} -??=[env] - - This section briefly discusses the various aspects of the present - \Xy-pic kernel implementation of which the user should be aware. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Loading \Xy-pic} -??=[env.loading]??w[loading] - - \Xy-pic is careful to set up its own environment in order to function - with a large variety of formats. For most formats a single line with - the command -$$ - ??c![\input xy] -$$ - in the preamble of a document file should load the kernel (see - `integration with standard formats' below for variations possible - with certain formats, in particular \LaTeX~\cite{L94:LaTeX}). - - The rest of this section describes things you must consider if you - need to use \Xy-pic together with other macro packages, style - options, or formats. The less your environment deviates from plain - \TeX\ the easier it should be. -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - Consult the \TeX\-nical documentation~\cite{RM95:Xy-picCSTC} for the - exact requirements for other definitions to coexist with \Xy-pic. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{File header:} -??w[file header] - - Here is what actually happens in the header of |xy.doc|. It contains - the copyright message, protection against ??w![loading] the file more - than once, and then bootstrap code to handle category codes and the - ??c![DOCMODE] format---we explain each separately below: - -\DOCHEADER - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Privacy:} -??w[privacy] - - \Xy-pic will warn about control sequences it redefines---thus you can - be sure that there are no conflicts between \Xy-pic-defined control - sequences, those of your format, and other macros, provided you - load??w[loading] \Xy-pic last and get no ??w![warning - messages] like -$$ - |Xy-pic Warning: `|\dots|' redefined.|??w[redefined] -$$ - In general the \Xy-pic kernel will check all control sequences it - redefines "except" that (1)~generic temporaries like ??c![\next] are - not checked, (2)~predefined font identifiers (see~\S??[env.fonts]) - are assumed intentionally preloaded, and (3)~some of the more exotic - control sequence names used internally (like |@{-}|) are only - checked to be different from ??c![\relax]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This is handled by ??c![\xywarnifdefined]---after we have ensured - that it is unique itself\footnote{This may seem paranoid but in fact - many inconvieniences in the \TeX\ world stem from the fact that - somebody copied somebody elses definition of, say, - {\tt\string\xywarnifdefined}, modified it, and then used it in - something that somehow got distributed! The `flat name space' - problem remains \TeX\ largest problem as a programming language in - this \TeX\ hackers opinion.}. ??c![\xydef@], ??c![\xylet@], and - |\xynew@{|<type>|}|??c[\xynew@] are abbreviations used to this end - throughout \Xy-pic instead of ??c![\let], ??c![\def], and the - |\new|<type> commands. - - Next some auxilliaries: |\xydefcsname@| is similar to |\xydef@| - except that it builds the control sequence with ??c![\csname] \dots\ - ??c![\endcsname] which means that it is |\relax| when undefined---there - is thus no way to prevent redefinition of control sequences bound to - ??c![\relax]~\frowny. - -\DOCMODE( -\xydef@\xydefcsname@#1{\DN@{#1}\DNii@##1{% - \ifx ##1\relax\else \xywarning@{\string`\string##1\string' redefined}\fi - \def##1}% - \expandafter\nextii@\csname\codeof\next@\endcsname} -\DOCMODE) - - |\xyletcsnamecsname@| is to ??c![\let] one weird control sequence - be the same as another using several |\expandafter|s: - -\DOCMODE( -\xydef@\xyletcsnamecsname@#1#2{\def\1{#1}\def\2{#2}\DN@##1##2{% - \ifx ##1\relax\else \xywarning@{`\string##1\string' redefined}\fi - \let##1=##2}% - \expandafter\expandafter\expandafter\next@ - \expandafter\csname\expandafter\codeof\expandafter\1\expandafter\endcsname - \csname\codeof\2\endcsname} -\DOCMODE) - - Finally ??c![\codeof]: a useful hack used to allow any characters in - control sequences: ??c![\codeof]<cs> expands to the characters of the - control sequence <cs> as a string of `other' characters, \ie, all of - category 12 and with a \verb*/ /$_{12}$ after every control sequence. - The <cs> must be a macro or it blows up. - -\DOCMODE( -\xywarnifdefined\codeof -\xywarnifdefined\codeof@ -{\catcode`\:=12 % to ensure that all of :-> and <-: are other :-) - \gdef\codeof#1{\expandafter\codeof@\meaning#1<-:} - \gdef\codeof@#1:->#2<-:{#2}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Category codes:\ } - - The situation is complicated by the flexibility of - \TeX's input format. The culprit is the `??w![category code]' - concept of \TeX\ (\cf~\cite[p.37]{K84:TeXbook}): when loaded \Xy-pic - requires the characters {\tt\char32}|\{}%| (the first is a space) to - have their standard meaning and all other printable characters to - have the "same category as when \Xy-pic will be used"---in particular - this means that (1)~you should surround the ??w![loading] of \Xy-pic - with ??c![\makeatother] \dots\ ??c![\makeatletter] when loading it - from within a \LaTeX\ package, and that (2)~\Xy-pic should be loaded - after files that change category codes like the ??c![german.sty] that - makes |"| active??w[active characters]. Some styles require that you - reset the catcodes for every diagram, \eg, with ??c![french.sty] you - should use the command |\english| before every |\xymatrix|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - We define ??c![\xyuncatcodes] to restore the current catcodes, and - ??c![\xycatcodes] to install our own. - - Here is an exact list of the category codes which \Xy-pic requires - (all standard in plain \TeX): -$$ -\vcenter{\tabskip=.5em plus1fil \halign to\displaywidth{#\hfil&&\hfil#\hfil\cr - character(s) &|\| &|{| &|}| &CR &TAB SP&|A|--|Z| |a|--|z| &|0|--|9| &|%| \cr - category code & 0 & 1 & 2 & 5 & 10 & 11 & 12 & 14 \cr} -}$$ - Furthermore none of the remaining printable ASCII characters -$$ - |!"#$&'()*,/:;?@[]^_`||~| -$$ - may be of category 0, 1, 2, 9, 14, or 15, because all should be - tokens allowed in the replacement text of a |\def|---this also means - that they may not be active characters defined to be ``|\outer|''! - - All other catcodes needed are established using ??c![\xycatcodes] - defined above---this is the reason the macros must be loaded at a - time where the category codes are stable (otherwise it will make them - stable!). - - Internally \Xy-pic enforces the following category codes: -$$ -\vcenter{\tabskip=.5em plus1fil \halign to\displaywidth{#\hfil&&\hfil#\hfil\cr - character &|#|&|$|&|&|&|'|&|+|&|-|&|.|&|<|&|=|&|>|&|@|&|`|\cr - ASCII code & 35& 36& 38& 39& 43& 45& 46& 60& 61& 62& 64& 96\cr - category code& 6 & 3 & 4 & 12& 12& 12& 12& 12& 12& 12& 11& 12\cr - abbreviation&|HASH|&|DOLL|&|AND|&|RQ|&|PLUS|&|DASH|&|DOT| - &|LT|&|EQ|&|GT|&|AT|&|LQ|\cr} -}$$ - with special control sequences named |\add|<abbreviation>|@| that - take an argument and expand to it followed by the original character - token, \ie, many tests throughout the program look like |\addDOT@| - |\ifx| |\next| \dots - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xywarnifdefined\addAT@ -\xywarnifdefined\addHASH@ -\xywarnifdefined\addDOLL@ -\xywarnifdefined\addAND@ -\xywarnifdefined\addRQ@ -\xywarnifdefined\addPLUS@ -\xywarnifdefined\addDASH@ -\xywarnifdefined\addDOT@ -\xywarnifdefined\addLT@ -\xywarnifdefined\addEQ@ -\xywarnifdefined\addGT@ -\xywarnifdefined\addLQ@ - -\xydef@\xymakeADD@#1#2 #3 {\ifnum\catcode#3=6 \def#1##1{##1#2#2}% - \else \def#1##1{##1#2}\fi} - -\xydef@\xyrecat@{\xymakeADD@\addAT@} -\xydef@\xyrecat{\xyrecat@} -\xydef@\xyresetcatcodes{\def\xyrecat{\xyrecat@}\xyreuncatcodes - \input xyrecat \relax \xyuncatcodes} - -\xyuncatcodes \xyresetcatcodes \xycatcodes - -\xydef@\testAND@{{\aftergroup\ifx - \addAND@\ifx\next\addFalse@\else\addTrue@\fi}} -\xydef@\addFalse@{\aftergroup\iffalse} -\xydef@\addTrue@{\aftergroup\iftrue} -\DOCMODE) - -\inputdoc!{xyrecat.doc} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The last block of the \Xy-pic header bootstraps the ``??c![DOCMODE] - format'' used in |.doc| variants of \Xy-pic macro files in order to - keep documentation and macros together in a literal programming style - (this is redundant in the |xy.tex| macro file where all instances of - |DOCMODE| have been eliminated (see chapter \S??g[:Makefile] for how - this is accomplished) but it is included anyway since users may load - options still in |DOCMODE| format). The details of |DOCMODE| are - described in |xydoc.sty|, a special \LaTeX\ package used to typeset - \Xy-pic documentation; please read it if you intend to write \Xy-pic - options. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Integration with standard formats} -??w[formats] -% - This is handled by the |xyidioms.tex| file and the integration as a - \LaTeX~\cite{L94:LaTeX} package by |xy.sty|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - We input |xyidioms.tex| from the kernel: - -\DOCMODE( -\input xyidioms -\DOCMODE) - -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{xyidioms.tex:} -??c[xyidioms.tex]% -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{xyidioms.doc:} -??c[xyidioms.doc]% -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\inputdoc!{xyidioms.doc} - -\paragraph{xy.sty:} -??c[xy.sty]% -%% - If you use ??w![\LaTeX] then this file makes it possible to - load??w[loading] \Xy-pic as a `??w![package]' using the - ??w![\LaTeXe]~\cite{L94:LaTeX} ??c![\usepackage] command: -% -\begin{defs1} -??c![\usepackage] |[|<option>|,|\dots|]| |{xy}| -\end{defs1} -\noindent\unskip -% - where the <option>s will be interpreted as if passed to - ??c![\xyoption] (\cf~\S??[option]). - - The only exceptions to this are the options having the same names as - those driver package options of \GROUP~??g[:drivers], which appear in - \cf~\cite[table 11.2, p.317]{GMS94:LaTeXC} or the \LaTeXe\ |graphics| - bundle. These will automatically invoke any backend extension - required to best emulate the \LaTeXe\ behaviour. (This means that, - \eg, ??C![dvips] and ??C![textures] can be used as options to the - ??c![\documentclass] command, with the normal effect.) - - The file also works as a \LaTeX~2.09~\cite{L86:LaTeX} `??w![style - option]' although you will then have to load options with the - |\xyoption| mechanism described in \S??[option]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Here is the raw source of |xy.sty|. - -\inputdoc0{xy.sty} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Logo, version, and messages} -??=[env.logo] - - Loading \Xy-pic prints a ??w![banner] containing the version and - author of the kernel; small progress ??w![messages] are printed when - each major division of the kernel has been loaded. Any options - loaded will announce themself in a similar fashion. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Of these, ??c![\stripRCS] is a very useful hack for extracting the - first component of an RCS |$|\dots|$| keyword value. - -\DOCMODE( -\xydef@\stripRCS$#1${\stripRCS@#1: @@ @@@} -\xydef@\stripRCS@#1: #2@ #3@@@{% - \ifx @#2\string?\else\ifx :#2\else\stripRCS@@#2\fi\fi} -\xydef@\stripRCS@@#1 #2: @{#1} - -\edef\next{\stripRCS$Revision: 3.7 $} -\xylet@\xyversion=\next - -\edef\next{\stripRCS$Date: 1999/02/16 15:12:50 $} -\xylet@\xydate=\next - -\xydef@\Xygreet@{% - \W@{}% - \W@{ Xy-pic version \xyversion\space<\xydate>}% - \W@{ Copyright (c) 1991-1998 by Kristoffer H. Rose <krisrose@ens-lyon.fr>}% - \W@{ Xy-pic is free software: see the User\string's Guide for details.}% - \W@{}} -\Xygreet@ -\expandafter\everyjob\expandafter{\the\everyjob\Xygreet@} - -\message{Loading kernel:} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - If you refer to \Xy-pic in your written text (please do~\smiley~) - then you can use the command ??c![\Xy]|-pic| to typeset the - ``??w![\Xy-pic]'' ??w![logo]. The ??w![version] of the kernel is - typeset by ??c![\xyversion] and the release date by ??c![\xydate] (as - found in the banner). By the way, the \Xy-pic "name"\footnote{No - description of a \TeX\ program is complete without an explanation of - its name.} originates from the fact that the first version was - little more than support for $(x,y)$ coordinates in a configurable - coordinate system where the main idea was that "all" operations could - be specified in a manner independent of the orientation of the - coordinates. This property has been maintained except that now the - package allows explicit absolute orientation as well. - -\DOCMODE( -\xydef@\Xy{\leavevmode - \hbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Messages that start with ``|Xy-pic| ??c![Warning]'' are indications - that something needs your attention; an ``|Xy-pic| ??c![Error]'' will - stop \TeX\ because \Xy-pic does not know how to proceed. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - We use the input line number if available and rudimentary help in the - form of a reference to the manual if no specific help string is - given. ??c![\newlinechar] is set locally to |^^J| while writing such - that messages of several lines can be written. - -\DOCMODE( -\message{messages;} - -\xywarnifdefined\thelineno@ -\ifx\inputlineno\undefined \edef\thelineno@{\string?} -\else \def\thelineno@{\the\inputlineno}\fi -\xydef@\xytracelineno@{ \string[\jobname:\thelineno@\string]} - -\xydef@\xywarning@#1{{\newlinechar=10 % - \W@{}\W@{Xy-pic Warning: #1\xytracelineno@.}\W@{}}} - -\xydef@\xyerror@#1#2{\if\inxy@\xy@{ERROR #1}{}\fi - {\def\2{#2}\newlinechar=10 % - \ifx\2\empty \errhelp{See the Xy-pic manual for further information.}% - \else \errhelp{#2}\fi - \errmessage{Xy-pic error: #1}}} -\DOCMODE) - - Finally one that I hope will never get expanded~\frowny - -\DOCMODE( -\xydef@\xybug@#1{{\newlinechar=10 % - \errhelp{This is a bug in Xy-pic and should not happen!^^J% -If it did then please send a bug report with the offending Xy-pic code^^J% -to the author of Xy-pic, krisrose@ens-lyon.fr.}% - \errmessage{Xy-pic BUG: #1 -- notify krisrose@ens-lyon.fr.}}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Fonts} -??=[env.fonts] - - The \Xy-pic kernel implementation makes its drawings using five - specially designed ??w![fonts]:% -% -??w[dashes]??w[tips]??w[circles]??w[hooks]??w[squiggles] -$$ -\begin{array}{\otherbar c\otherbar c\otherbar l\otherbar} -\hline - \hbox{Font} & \hbox{Characters} & \hbox{Default}\\ -\hline - ??c![\xydashfont]& \hbox{dashes} & ??c![xydash10]\\ - ??c![\xyatipfont]& \hbox{arrow tips, upper half} & ??c![xyatip10]\\ - ??c![\xybtipfont]& \hbox{arrow tips, lower half} & ??c![xybtip10]\\ - ??c![\xybsqlfont]& \hbox{quarter circles for\qquad} & ??c![xybsql10]\\ - & \hbox{\qquad hooks and squiggles} &\\ - ??c![\xycircfont]& \hbox{$1/8$ circle segments} & ??c![xycirc10]\\ -\hline -\end{array} -$$ - The first four contain variations of characters in a large number of - directions, the last contains 1/8 circle segments. - -\paragraph*{Note:} - The default fonts are not part of the \Xy-pic kernel "specification": - they just set a standard for what drawing capabilities should at - least be required by an \Xy-pic implementation. Implementations - exploiting capabilitites of particular output devices are in use. - Hence the fonts are only loaded by \Xy-pic if the control sequence - names are undefined---this is used to preload them at different sizes - or prevent them from being loaded at all. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - To be more precise, \Xy-pic requires ??c![\xydashfont] to be a - "??w![semidirectional]" font as \MF\ will generate with the driver - file ??c![xyd2.mf]---this is very important because the "??w![italic - corrections]" of the characters in this particular font are used to - approximate trigonometric computations, so if you replace - ??c![\xydashfont] be sure to replace it with another semidirectional - font! Similarly, the three fonts ??c![\xyatipfont], - ??c![\xybtipfont], and ??c![\xybsqlfont] should be - "??w![directional]" as \MF\ will generate with the driver file - ??c![xyd.mf]. - - Finally, ??c![\xycircfont] should contain $1/8$ circle segments of - various radii as described in |xycirc10.mf|. - - The following code loads the fonts "unless it was already loaded" and - defines some associated dimensions for ??c![\xydashfont] and - ??c![\xybsqlfont]: for each of these $f$ we define $f_\ell$ as the - length of a unit in the current direction (used when juxtaposing for - connections), $f_h$ as the height of the unit (used for several - parallel connections), and $f_w$ as the `line width' of the unit (to - know how to interface to rules). - -\DOCMODE( -\message{fonts;} - -\xydef@\xyfont@#1{\ifx#1\undefined \DN@{\global\font#1}\expandafter\next@ - \else \xywarning@{Using previously loaded \string#1\space font}\fi} - -\xyfont@\xydashfont=xydash10 -\xydef@\xydashl@{\fontdimen6\xydashfont} -\xydef@\xydashh@{\fontdimen5\xydashfont} -\xydef@\xydashw@{\fontdimen8\xydashfont} - -\xyfont@\xyatipfont=xyatip10 -\xyfont@\xybtipfont=xybtip10 - -\xyfont@\xybsqlfont=xybsql10 -\xydef@\xybsqll@{\fontdimen6\xybsqlfont} -\xydef@\xybsqlh@{\fontdimen5\xybsqlfont} -\xydef@\xybsqlw@{\fontdimen8\xybsqlfont} - -\xyfont@\xycircfont=xycirc10 -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Allocations} -??=[env.alloc]??w[allocation] - - One final thing that you must be aware of is that \Xy-pic allocates a - significant number of dimension registers and some counters, token - registers, and box registers, in order to represent the state and do - computations. The current kernel allocates 4~counters, - 28~dimensions, 2~box registers,4~token registers, 1~read channel, and - 1~write channel (when running under \LaTeX; some other formats use - slightly more because standard generic temporaries are used). - Options may allocate further registers (currently loading - "everything" loads 6~dimen-, 3~toks-, 1~box-, and 9~count-registers - in addition to the kernel ones). - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\message{allocations:} -\DOCMODE) - - See \S??[env.loading] for scratch register allocations. - -\paragraph*{Picture state:} - - These realise the picture state as described in \S??[basics.state]: - $c$, $p$, the "base", and the picture size: - -\DOCMODE( -\message{state,} - -\xynew@{dimen}\X@c -\xynew@{dimen}\Y@c -\xynew@{dimen}\U@c -\xynew@{dimen}\D@c -\xynew@{dimen}\L@c -\xynew@{dimen}\R@c -\xynew@{toks}\Edge@c - -\xynew@{dimen}\X@p -\xynew@{dimen}\Y@p -\xynew@{dimen}\U@p -\xynew@{dimen}\D@p -\xynew@{dimen}\L@p -\xynew@{dimen}\R@p -\xynew@{toks}\Edge@p - -\xynew@{dimen}\X@origin \X@origin=\z@ -\xynew@{dimen}\Y@origin \X@origin=\z@ -\xynew@{dimen}\X@xbase \X@xbase=1mm -\xynew@{dimen}\Y@xbase \Y@xbase=\z@ -\xynew@{dimen}\X@ybase \X@ybase=\z@ -\xynew@{dimen}\Y@ybase \Y@ybase=1mm - -\xynew@{dimen}\X@min -\xynew@{dimen}\Y@min -\xynew@{dimen}\X@max -\xynew@{dimen}\Y@max -\DOCMODE) - -\paragraph*{Drop and connect:} - - |\lastobjectbox@| stores the most recently dropped - object.??c[\lastobject] - -\DOCMODE( -\xynew@{box}\lastobjectbox@ -\DOCMODE) - - |\zerodotbox@|??c[\zerodot] is of zero size with a `dot' in the form - of a rule the width and height as the line width of the line font; - ??c![\zz@] is `almost-zero-check'. - -\DOCMODE( -\xynew@{box}\zerodotbox@ -\setbox\zerodotbox@=\hbox{\dimen@=.5\xydashw@ - \kern-\dimen@ \vrule width\xydashw@ height\dimen@ depth\dimen@} -\wd\zerodotbox@=\z@ \ht\zerodotbox@=\z@ \dp\zerodotbox@=\z@ - -\xynew@{dimen}\almostz@ \almostz@=50sp -\xydef@\zz@#1{\ifdim#1<\z@-\fi#1<\almostz@\relax} - -\xynew@{if}\iftmp@ -\DOCMODE) - -\paragraph*{Direction state:} - - The ??w![direction] state is rather complicated and described in - detail in~\S??[algo.direction]. - -\DOCMODE( -\message{direction,} - -\xynew@{dimen}\d@X -\xynew@{dimen}\d@Y -\xydef@\sd@X{} -\xydef@\sd@Y{} - -\xynew@{count}\K@ \K@=1024 -\xynew@{count}\KK@ \KK@=32 - -\xynew@{count}\Direction -\xynew@{dimen}\K@dXdY -\xynew@{dimen}\K@dYdX - -\xydef@\cosDirection{} -\xydef@\sinDirection{} - -\xywarnifdefined\DirectionChar -\xywarnifdefined\SemiDirectionChar -\DOCMODE) - -\paragraph*{Miscellaneous:} - - Finally some generic allocations used in the following: - -\DOCMODE( -\xynew@{read}\xyread@ % for `safe input' -\xynew@{write}\xywrite@ % for `saving' to .xyc file - -\xynew@{count}\csp@ % for `control stack pointer' -\xynew@{dimen}\quotPTK@ % for `fractions' -\DOCMODE) - - The required temporaries are defined by |xyidioms.tex|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Utility macros} -??=[env.util] - - Finally we define some utility macros. - -\DOCMODE( -\message{utility macros;} -\DOCMODE) - -\paragraph*{Simple queue:} -??w[queue] - - Just appending to the ??c![\toks@] list. - -\DOCMODE( -\xydef@\addtotoks@#1{\toks@=\expandafter{\the\toks@#1}} -\DOCMODE) - -\paragraph*{Safe input:} - - Check that file is available before input. Tries the alternate - extension |.doc| in case the |.tex| file is not there. The second is - the lowest level function used when the desired files cannot be - preloaded and do not exist in |.doc| form. - -\DOCMODE( -\xydef@\xyinputorelse@#1#2{% - \expandafter\let\expandafter\next@\csname#1loaded\endcsname - \ifx\next@\empty \else - \DN@{\xyinputorelse@@{#1}{\xyinputorelse@@{#1.doc}{#2}}}% - \fi \next@} - -\xydef@\xyinputorelse@@#1#2{\openin\xyread@=#1 % - \ifeof\xyread@ \DN@{#2}\else \DN@{\closein\xyread@\input#1 }\fi \next@} -\DOCMODE) - -\paragraph*{Continuation stack:} - - This is used to `??w![enter]' a new ??w![context] and `??w![leave]' - to the previous context. It works as a stack defining a control - sequence for each level, thus using a counter as the stack pointer. - Defines the following -% -\begin{defs} - |\csp@| & `Continuation Stack Pointer' \cr - |\enter@{|<code>|}| & Enter new block with <code> expanded as continuation\cr - |\nter@{|<code>|}| & Enter new block with<code> as continuation\cr - |\dontleave@| & Execute continuation without leaving block\cr - |\unenter@| & Leave block without executing its continuation\cr - |\leave@| & Leave block (execute its continuation)\cr -\end{defs} - - So |\enter@{}\leave@| is a noop and |\leave@| is the same as - |\dontleave@\unenter@|. - -\DOCMODE( -\global\csp@=\z@ - -\xydef@\enter@#1{\global\advance\csp@\@ne - \expandafter\xdef\csname cs@\number\csp@\endcsname{#1}\ignorespaces} - -\xydef@\nter@#1{\global\advance\csp@\@ne - \expandafter\gdef\csname cs@\number\csp@\endcsname{#1}\ignorespaces} - -\xydef@\dontleave@{\csname cs@\number\csp@\endcsname} - -\xydef@\unenter@{\global\advance\csp@\m@ne} - -\xydef@\leave@{\expandafter\unenter@\csname cs@\number\csp@\endcsname} -\DOCMODE) - -\paragraph*{Fractions:} -??w[fraction computation] - - Below we often use a factor on the form of a quotient $A/B$. Here is - a hack to get it; it is not very precise but suffices for our needs. -% -\begin{defs} - |\quotient@| <cs> |{|$A$|}| |{|$B$|}| & - Defines <cs> to expand (immediately) to the factor corresponding to - $A/B$; $A$, $B$ must be dimensions where $\abs{A}\lt|\maxdimen|/|KK|$ - and $\abs{B}\gt|KK|$ -\cr - |\quotient@@| <cs> |{|$A$|}| |{|$B$|}| & - Same, but uses $8|KK|$ for |KK|. -\cr -\end{defs} -% - "Notes": (1) If |\c| is a count register, then |{1\c}| is a legal - dimension. (2) Really computes -$$ - \left((A*\abs{|KK|}) / (B/\abs{|KK|})\right) * \left(|1pt|/\abs{|K|}\right) -$$ - and then defines <cs> to expand to the resulting |pt| value. This - means that results are only reasonable for - $\abs{A}\ll|\maxdimen|/|KK|$ and $\abs{B}\gg|KK|$. - -\DOCMODE( -\quotPTK@=\p@ \divide\quotPTK@\K@ -\xylet@\quotsign@@=\empty -\xywarnifdefined\removePT@ -{\catcode`p=12 \catcode`t=12 \gdef\removePT@#1pt{#1}} - -\xydef@\quotient@#1#2#3{\A@=#2\relax \B@=#3\relax - \ifdim\A@<\z@\def\quotsign@@{-}\else\def\quotsign@@{+}\fi - \ifdim\quotsign@@\A@<15pt \multiply\A@\K@ - \else\ifdim\quotsign@@\A@<511pt \multiply\A@\KK@ - \advance\B@\ifdim\B@<\z@-\fi 16sp \divide\B@\KK@ - \else - \advance\B@\ifdim\B@<\z@-\fi 512sp \divide\B@\K@ - \fi\fi - \ifdim\ifdim\B@<\z@-\fi\B@<\quotPTK@ \xywarning@{division overflow}% - \else \advance\A@.5\B@ \divide\A@\B@ \fi - \multiply\A@\quotPTK@ \edef#1{\expandafter\removePT@\the\A@}} - -\xydef@\quotient@@#1#2#3{\A@=#2\relax \B@=#3\relax \multiply\A@\KK@ - \advance\B@\ifdim\B@<\z@-\fi 128sp \divide\B@\KK@ \divide\B@ 8 % - \ifdim\B@=\z@\else \advance\A@.5\B@ \divide\A@\B@ \fi - \B@=.125\quotPTK@ \multiply\A@\B@ \edef#1{\expandafter\removePT@\the\A@}} -\DOCMODE) - -\paragraph*{Loops:} - - \Xy-pic uses its own |\loop@| to avoid interference with plain - ??c![\loop]. - -\DOCMODE( -\xydef@\loop@#1\repeat@{\def\body@{#1}\iterate@}\xylet@\repeat@=\fi -\xydef@\iterate@{\body@\expandafter\iterate@\else\fi} -\DOCMODE) - -\paragraph*{Execution:} - - All ??w![execution] of \Xy-commands should be `indirect', \ie, - execute -$$ - |\xy@{|<source>|}{|<internal commands>|}| -$$ - where the <internal commands> directly do the desired operation(s). - This is used for tracing and can be used to separate parsing and - execution by changing |\xy@|; |\oxy@| is kept stable such that - |\let\xy@=\oxy@| will reestablish a sane state; it should only be - changed with |\change@oxy@| to make this easy to verify. - -\DOCMODE( -\xydef@\xyinitial@#1#2{\DN@{#1}% - \xyerror@{command used out of context: \codeof\next@}{}} - -\xylet@\xy@=\xyinitial@ -\xylet@\oxy@=\xy@ - -\xydef@\change@oxy@#1{\let\oxy@=#1\relax -% \W@{*OXY@:=\meaning\oxy@}% -} -\DOCMODE) - - This is also used to check whether an \Xy-picture is already - active; use as |\if\inxy@|\dots|\else|\dots|\fi|: - -\DOCMODE( -\xydef@\inxy@{T\ifx\xy@\xyinitial@ F\else T\fi} -\DOCMODE) - - The final execution command is a trick used to put bits of the user's - input inside the |\next@| scratch macro "with the user's catcodes - intact": |\xy@@ix@{|\dots|}| is the same as - |\xy@@{\global\toks9={|\dots|}}| except for the category codes used - for the \dots. - -\DOCMODE( -\xydef@\xyxy@@ix@{\begingroup - \xyuncatcodes\afterassignment\endgroup\global\toks9=} -\DOCMODE) - - This to save some tokens -- maybe not worth it: - -\DOCMODE( -\xydef@\xy@@{\xy@{}} -\DOCMODE) - - Finally this to establish a sane state -- only use within a group! - -\DOCMODE( -\xydef@\plainxy@{\let\xy@=\xyxy@ \change@oxy@\xy@ \let\xy@@ix@=\xyxy@@ix@} -\DOCMODE) - - \TODO: Clean up all uses of these such that <source> is always that - and only that. Define a method for `inner' \aka\ `implied' <source> - that doesn't really count in that it is a consequence of some other - source\dots - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section{Picture basics} -??=[basics] - - The basic concepts involved when constructing \Xy-pictures are - positions and objects, and how they combine to form the state used by - the graphic engine. - - The general structure of an \Xy-picture is as follows: -% -\begin{defs1} -% - ??c![\xy] <pos> <decor> ??c![\endxy] \cr -% -\end{defs1} -\noindent\unskip -% - builds a box with an \Xy-picture (\LaTeX\ users may substitute - |\begin{xy}| \dots\ |\end{xy}| if they prefer). - - <pos> and <decor> are components of the special `graphic language' - which \Xy-pictures are specified in. We explain the language - components in general terms in this \S\ and in more depth in the - following \S\S. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The code for the |\xy|\dots|\endxy| command is presented last in this - section. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Positions} -??=[basics.pos] - - All "??w![positions]" may be written |<|$X$|,|$Y$|>| where ??w![$X$] - is the \TeX\ dimension distance "right" and ??w![$Y$] the distance - "up" from the "??w![zero position]" ??c![0] of the \Xy-picture (|0| - has coordinates |<0mm,0mm>|, of course). The zero position of the - \Xy-picture determines the box produced by the - ??c![\xy]\dots??c![\endxy] command together with the four parameters - ??w![$X_{\min}$], ??w![$X_{\max}$], ??w![$Y_{\min}$], and - ??w![$Y_{\max}$] set such that all the objects in the picture are - `contained' in the following rectangle: -$$ -\xy.(-13,-12).(25,15)="b"*\frm{-}*@{o}, - "b"+<2pc,-.8pc>*{|0|};"b"*{}**@{.}, - "b"+L+<-2pc,-.8pc>*!UR\txt{\TeX\ reference point};"b"+L*@{*}**@{.}, - "b"+0; - "b"+L **@{-} ?>*@{>} ?*++!U{X_{\min}}, - "b"+R **@{-} ?>*@{>} ?(.7)*++!U{X_{\max}}, - "b"+D **@{-} ?>*@{>} ?(.7)*++!L{Y_{\min}}, - "b"+U **@{-} ?>*@{>} ?*++!L{Y_{\max}} -\endxy -$$ - where the distances follow the ``up and right~$\gt0$'' principle, - \eg, the indicated \TeX\ reference point has coordinates - |<|$X_{\min}$|,0pt>| within the \Xy-picture. The zero position does - not have to be contained in the picture, but $X_{\min} \le X_{\max} - \land Y_{\min} \le Y_{\max}$ always holds. The possible positions - are described in detail in~\S??[pos]. - - When an \Xy-picture is entered in "??w![math mode]" then the - reference point becomes the ``vcenter'' instead, \ie, we use the - point |<|$X_{\min}$|,-\the\fontdimen22>| as reference point. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Objects} -??=[basics.object] - - The simplest form of putting things into the picture is to `drop' an - "??w![object]" at a position. An object is like a \TeX\ box except - that it has a general "??w![Edge]" around its reference point---in - particular this has the "??w![extents]" (\ie, it is always contained - within) the dimensions ??w![$L$], ??w![$R$], ??w![$U$], and ??w![$D$] - away from the reference point in each of the four directions left, - right, up, and down. Objects are encoded in \TeX\ boxes using the - convention that the ??w![\TeX\ reference point] of an object is at - its left edge, thus shifted |<|${-}L$|,0pt>| from the center---so a - \TeX\ box may be said to be a rectangular object with $L=|0pt|$. - Here is an example: -$$ - \let\objectstyle=\scriptstyle - \xy(0,0).(-10,-5).(15,8)*\frm{-}="box"*@{o}+0; - "box"+L*{}**@{.}?*{L}, - "box"+R*{}**@{.}?*{R}, - "box"+D*{}**@{.}?*{D}, - "box"+U*{}**@{.}?*{U}, - "box"+L+<-2pc,-.8pc>*!UR\hbox{\TeX\ reference point}; - "box"+L*{\bullet}*{}**@{.}, - \endxy -$$ - The object shown has a rectangle edge but others are available even - though the kernel only supports rectangle and circle edges. It is - also possible to use entire \Xy-pictures as objects with a rectangle - edge, |0| as the reference point, $L={-X_{\min}}$, $R={X_{\max}}$, - $D={-Y_{\min}}$, and $U={Y_{\max}}$. The commands for objects are - described in~\S??[object]. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Connections} -??=[basics.connect] - - Besides having the ability to be dropped at a position in a picture, - all objects may be used to "??w![connect]" the two current objects of - the state, \ie, $p$ and $c$. For most objects this is done by - `filling' the straight line between the centers with as many copies - as will fit between the objects: -$$ - \let\objectstyle=\scriptscriptstyle - \xy*=<12pt>[o]{p}="P"*\cir{} ; (60,15)*=<18pt,8pt>{c}="C"*\frm{-}**@{--} -% - **\xybox{(0,0).(-3,-2).(2,3)*\frm{.}="box"*@{o}+0; - "box"+L**@{.}?*{L}, - "box"+R**@{.}?*{R}, - "box"+D**@{.}?*{D}, - "box"+U**@{.}?*{U}}, - \endxy -$$ - The ways the various objects connect are described along with the - objects. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Decorations} -??=[basics.decor] - - When the ??c![\xy] command reaches something that can not be - interpreted as a continuation of the position being read, then it is - expected to be a "??w![decoration]", \ie, in a restricted set of - \TeX\ commands which add to pictures. Most such commands are - provided by the various "user options" (\cf~\S??[option])---only a - few are provided within the kernel to facilitate programming of such - options (and user macros) as described in~\S??[decor]. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{The \Xy-pic state} -??=[basics.state] - - Finally we summarise the user-accessible parts of the - ??w![\Xy-picture state] of two positions together with the - last object associated with each: the "previous", ??w![$p$], is the - position |<|??w![$X_p$]|,| ??w![$Y_p$]|>| with the object - ??w![$L_p$], ??w![$R_p$], ??w![$D_p$], ??w![$U_p$], ??w!["Edge$_p$"], - and the "current", ??w![$c$], is the position |<|??w![$X_c$]|,| - ??w![$Y_c$]|>| with the object ??w![$L_c$], ??w![$R_c$], ??w![$D_c$], - ??w![$U_c$], ??w!["Edge$_c$"]. - - Furthermore, \Xy-pic has a configurable "??w![cartesian coordinate - system]" described by an "origin" position - |<|??w![$X_"origin"$]|,|??w![$Y_"origin"$]|>| - and two "base vectors" |<|??w![$X_"xbase"$]|,|??w![$Y_"xbase"$]|>| - and~|<|??w![$X_"ybase"$]|,|??w![$Y_"ybase"$]|>| - accessed by the usual notation using parentheses: -$$ -\arraycolsep=.25em \begin{array}{rclll} - |(|x|,|y|)| & = & |<| & X_"origin" + x*X_"xbase" + y*X_"ybase" & |,| \\ - & & & Y_"origin" + x*Y_"xbase" + y*Y_"ybase" & |>| \\ -\end{array} -$$ - This is explained in full when we show how to set the base in - note~??[base] of \S??[pos]. - - Finally typesetting a connection will setup a ``??w![placement - state]'' for referring to positions on the connection that is - accessed through a special |?| position construction; this is also - discussed in detail in \S??[pos]. - - The \Xy-pic "??w![state]" consists of all these parameters - together. They are initialised to zero except for - $X_"xbase"=Y_"ybase"=|1mm|$. - -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - The edges are not directly available but points on the edges may be - found using the different <corner> forms described in \S??[pos]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - The edges are are available to the programmer as token lists; see - \S??[algo.edge] for details. - -\subparagraph*{Procedure:} - - ??c![\xy]\ \dots\ ??c![\endxy] builds an object from an \Xy-pic <pos> - <decor> sequence as follows: (??_[xy1])~|\xy| starts the |\hbox| to - contain the \Xy-picture, (??_[xy2])~starts an inner box to be resized - appropriately later, sets |\xy@| to just execute immediately, and - makes a fresh scope for global internal names, and - (??_[xy3])~initialises the \Xy-pic state (setting the size to a - ridiculously large negative value), and finally passes control to - the <pos> parser. - - Some care is taken to `lift' the diagram a bit to `vcenter' it when - in math mode, and ??c![\mathsurround] is set to zero to make changes - into math mode safe. - -\DOCMODE( -\message{pictures: \string\xy,} - -\xydef@\xy{\ifmmode\expandafter\xymath@\else\expandafter\xynomath@\fi} -\xydef@\xymath@{\hbox\bgroup \dimen@=\the\fontdimen22\textfont\tw@ \xyinside@} -\xydef@\xynomath@{\hbox\bgroup \dimen@=\z@ \xyinside@} - -\xydef@\xyinside@{% - \saveXyStyle@ \aftergroup\xycheck@end %?*[xy1] - \setboxz@h\bgroup %?*[xy2] - \plainxy@ - \X@c=\z@ \Y@c=\z@ \czeroEdge@ %?*[xy3] - \X@p=\z@ \Y@p=\z@ \U@p=\z@ \D@p=\z@ \L@p=\z@ \R@p=\z@ \Edge@p={\zeroEdge}% - \X@min=\hsize \X@max=-\hsize \Y@min=\hsize \Y@max=-\hsize - \mathsurround=\z@ - \expandafter\POS\everyxy@@} - -\xydef@\czeroEdge@{\U@c=\z@ \D@c=\U@c \L@c=\U@c \R@c=\U@c \Edge@c={\zeroEdge}} - -\xydef@\xyxy@#1#2{#2} - -\xywarnifdefined\everyxy -\expandafter\def\addEQ@\everyxy#1{\def\everyxy@@{#1}\ignorespaces} - -\xylet@\everyxy@@=\empty -\DOCMODE) - - When finished |\endxy| does a |\relax| to disable any parser still - active and (??_[endxy1])~resets the size of the generated box to zero - if no (unhidden) objects were inserted, and (??_[endxy2])~defines a - command to end both the temporary and the `proper' box and set its - size correctly---this uses ??c![\edef] to expand the required - dimensions used within the temporary box before leaving the two - groups (namely the temporary box and the `proper' box). - -\DOCMODE( -\xydef@\endxy{\if\inxy@\else\xyerror@{Unexpected \string\endxy}{}\fi - \relax - \dimen@=\Y@max \advance\dimen@-\Y@min %?*[endxy1] - \ifdim\dimen@<\z@ \dimen@=\z@ \Y@min=\z@ \Y@max=\z@ \fi - \dimen@=\X@max \advance\dimen@-\X@min - \ifdim\dimen@<\z@ \dimen@=\z@ \X@min=\z@ \X@max=\z@ \fi - \edef\tmp@{\egroup %?*[endxy2] - \setboxz@h{\kern-\the\X@min\boxz@}% - \ht\z@=\the\Y@max \dp\z@=-\the\Y@min \wdz@=\the\dimen@ - \noexpand\maybeunraise@ \raise\dimen@\boxz@ - \noexpand\recoverXyStyle@ \egroup \noexpand\xy@end - \U@c=\the\Y@max \D@c=-\the\Y@min \L@c=-\the\X@min \R@c=\the\X@max}\tmp@} - -\xydef@\maybeunraise@{\if\inxy@\else \dimen@ii=\dp\z@ - \ifdim\dimen@ii<\z@ \advance\dimen@\dimen@ii \fi\fi} -\DOCMODE) - - If an |\xy| is not properly closed by an |\endxy| then the error - message is produced. This happens if (a)~too many |\xy|s or (b)~too - many |\endxy|s or (c)~if there is the correct number of each but the - grouping becomes unbalanced due to a misplaced |}| or |\egroup|. - -\DOCMODE( -\xydef@\xycheck@end{\xyFN@\xycheck@end@} -\xydef@\xycheck@end@{\ifx\next\xy@end\DN@\xy@end{}\else\DN@{\xy@end}\fi\next@} -\xydef@\xy@end{% - \xyerror@{An \string\xy\space environment is not closed correctly.}% - {I expected \string\endxy. You probably have an umatched {} grouping.}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - It is possible to insert an `initial' piece of <pos> <decor> at the - start of every \Xy-picture with the declaration -% -\begin{defs1} -|\everyxy={| <text> |}| -\end{defs1} -\noindent\unskip -% - This will act as if the <text> was typed literally right after each - ??c![\xy] command, parsing the actual contents as if it follows this - -- thus it is recommended that <text> has the form <pos>|,| such that - users can continue with <pos> <decor>. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section{Positions} -??=[pos] - -\DOCMODE( -\message{positions,} -\DOCMODE) - - A <pos>ition is a way of specifying locations as well as dropping - objects at them and decorating them---in fact any aspect of the - \Xy-pic state can be changed by a <pos> but most will just change the - coordinates and/or shape of~$c$. - -\begin{figure*}[tp]\SQUEEZE -\vss -\begin{syntax} - ??w![<pos>] - &\iss & <coord> - & $c\from<coord>$ -\cr - &\orr & <pos> ??c![+] <coord> - & $c \from <pos> + <coord>$??^[arithmetic] -\cr - &\orr & <pos> ??c![-] <coord> - & $c \from <pos> - <coord>$??^[arithmetic] -\cr - &\orr & <pos> ??c![!] <coord> - & $c\from<pos>$ then ??!^[skew] $c$ by <coord> -\cr - &\orr & <pos> ??c![.] <coord> - & $c\from<pos>$ but also ??!^[covering] $<coord>$ -\cr - &\orr & <pos> ??c![,] <coord> - & $c\from<pos>$ then $c\from<coord>$ -\cr - &\orr & <pos> ??c![;] <coord> - & $c\from<pos>$, swap $p$ and $c$, $c\from<coord>$ -\cr - &\orr & <pos> ??c![:] <coord> - & $c\from<pos>$, set ??!^[base], $c\from<coord>$ -\cr - &\orr & <pos> ??c![::] <coord> - & $c\from<pos>$, $"ybase"\from c-"origin"$, $c\from<coord>$ -\cr - &\orr & <pos> ??c![*] <object> - & $c\from<pos>$, ??!^[drop] <object> -\cr - &\orr & <pos> ??c![**] <object> - & $c\from<pos>$, ??!^[connect] using <object> -\cr - &\orr & <pos> ??c![?] <place> - & $c\from<pos>$, $c\from\hbox{??!^[<place>]}$ -\cr - &\orr & <pos> ??c![@] <stacking> - & $c\from<pos>$, do <stacking>??^[stack] -\cr - &\orr & <pos> ??c![=] <saving> - & $c\from<pos>$, do <saving>??^[save] -\cr -\noalign{\smallbreak} -% - ??w![<coord>] - &\iss & <vector> - & <pos> is <vector> with zero size -\cr - &\orr & <empty> \orr\ ??c![c] - & reuse last $c$ (do nothing) -\cr - &\orr & ??c![p] - & $p$ -\cr - &\orr & ??c![x] \orr\ ??c![y] - & ??!^[axis intersection] with $\overline{pc}$ -\cr - &\orr & ??c![s]<digit> \orr\ |s{|<number>|}| - & ??!^[stack] position <digit> or <number> below the top -\cr - &\orr & |"|<id>|"| - & restore what was ??!^[saved] as <id> earlier -\cr - &\orr & |{| <pos> <decor> |}| - & the $c$ resulting from interpreting the ??!^[group] -\cr -\noalign{\smallbreak} -% - ??w![<vector>] - &\iss & ??c![0] - & zero -\cr - &\orr & |<| <dimen> |,| <dimen> |>| - & absolute??c[<>] -\cr - &\orr & |<| <dimen> |>| - & absolute with equal dimensions -\cr - &\orr & |(| <factor> |,| <factor> |)| - & in current ??!^[base]??c[()] -\cr - &\orr & ??c![a] |(| <number> |)| - & ??!^[angle in current base] -\cr - &\orr & <corner> - & from reference point to <corner> of $c$ -\cr - &\orr & <corner> |(| <factor> |)| - & The <corner> multiplied with <factor> -\cr - &\orr & |/| <direction> <dimen> |/| - & vector <dimen> ??!^[in <direction>]??c[//] -\cr -\noalign{\smallbreak} -% - ??w![<corner>] - &\iss & ??c![L]\orr??c![R]\orr??c![D]\orr??c![U] - & ??!^[offset] to left, right, down, up side -\cr - &\orr & ??c![CL]\orr??c![CR]\orr??c![CD]\orr??c![CU]\orr??c![C] - & ??!^[offset] to center of side, true center -\cr - &\orr & ??c![LD]\orr??c![RD]\orr??c![LU]\orr??c![RU] - & ??!^[offset] to actual left/down, \dots\ corner -\cr - &\orr & ??c![E]\orr??c![P] - & ??!^[offset] to nearest/proportional edge point to $p$ -\cr -\noalign{\smallbreak} -% - ??w![<place>] - &\iss & ??c![<] <place> \orr\ ??c![>] <place> - & ??!^[shave] ??c![(0)]/??c![(1)] to edge of $p$/$c$, $f \from |0|/|1|$ -\cr - &\orr & |(| <factor> |)| <place> - & $f \from <factor>$ -\cr - &\orr & <slide> - & ??!^[pick place] and apply <slide> -\cr - &\orr & ??c![!] |{|<pos>|}| <slide> - & ??!^[intercept] with line setup by <pos> and apply <slide> -\cr -\noalign{\smallbreak} -% - ??w![<slide>] - &\iss & |/| <dimen> |/| - & ??!^[slide] <dimen> further along connection -\cr - &\orr & <empty> - & no slide -\cr -\end{syntax} -\unskip\vskip-1em -\caption{\protect<pos>itions.}??=[f.pos] -\vfill -\end{figure*} - - All possible positions are shown in figure~??[f.pos] with explanatory - notes below. - -\begin{exercise} - Which of the positions |0|, |<0pt,0pt>|, |<0pt>|, |(0,0)|, and - |/0pt/| is different from the others? -\answertext{In the default setup they are all denote the reference point of - the \Xy-picture but the cartesian coordinate <pos> ??c![(0,0)] - denotes the point "origo" that may be changed to something else using - the |:| operator.} -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Parsing:} - - First the ??c![\POS] and ??c![\afterPOS] <decor>ations, and similar - ??c![\afterCOORD] and ??c![\afterVECTORorEMPTY] ones. They handle - parsing of <pos>, <coord>, and <vector>; parsing of <corner> and - <place> is presented along with note~??[corner] and~??[<place>] - explaining them. - -\DOCMODE( -\xydef@\POS{\afterPOS{}} - -\xydef@\afterPOS#1{% - \DN@##1{\def\afterPOS@{\def\afterPOS@{##1}#1}}% - \expandafter\next@\expandafter{\afterPOS@}% - \afterCOORD{\xyFN@\POS@}} - -\xylet@\afterPOS@=\empty - -\xydef@\afterCOORD#1{% - \DN@##1{\def\afterCOORD@{\def\afterCOORD@{##1}#1}}% - \expandafter\next@\expandafter{\afterCOORD@}% - \afterVECTORorEMPTY{\xy@@\czeroEdge@ \afterCOORD@}{\xyFN@\COORD@}} - -\xylet@\afterCOORD@=\empty - -\xydef@\afterVECTORorEMPTY#1#2{% - \DN@##1{\def\afterVECTOR@{\def\afterVECTOR@{##1}% - \ifVECTORempty@\DN@{#2}\else\DN@{#1}\fi \next@}}% - \expandafter\next@\expandafter{\afterVECTOR@}% - \xyFN@\VECTOR@} - -\xynew@{if}\ifVECTORempty@ -\xylet@\afterVECTOR@=\empty -\DOCMODE) - - The ??c![\afterVECTORorEMPTY] command is special in that it takes two - arguments: the `continuation' if a <vector> was found and the - continuation if <empty> was found (this is not applicable to the - other two since <empty> is a legal <coord> and thus also a legal - <pos>). - - Next we proceed with the actual parsing primitives: |\COORD@|, - |\POS@|, and |\VECTOR@|. These are bound to |\xyCOORD@|, |\xyPOS@|, - and |\xyVECTOR@| in order to be extendable, \eg, the |matrix| option - extends <coord> to support the |[|"row"|,| "column"|]| format by - redefining |\COORD@| to first test for this new format and then call - |\xyCOORD@|. - - The parsing commands above are set up such that they all first call - the |\VECTOR@| command. <coord> and <pos> parsing then proceeds with - calling the |\COORD@| if there was no <vector>. <pos> parsing then - calls |\POS@| to continue the <pos> (in both cases). - - First <vector>s: - -\DOCMODE( -\xydef@\xyVECTOR@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\VECTOR@}%gobble spaces - \else \ifcat A\noexpand\next \let\next@=\VECTOR@letter - \else \let\next@=\VECTOR@other \fi\fi \next@} - -\xylet@\VECTOR@=\xyVECTOR@ -\DOCMODE) - - All letters used for <vector>s are uppercase <corner>s except for |a| - used for angles (where the main code is in note~??[angle in current - base]); this is also where we introduce the auxiliary - |\notrelaxorelse@| that takes two control sequences and expands the - first unless it is relax in which case it expands the second: - -\DOCMODE( -\def\notrelaxorelse@#1#2{\ifx#1\relax \expandafter#2\else\expandafter#1\fi} - -\xydef@\VECTOR@letter{% - \ifx a\next \expandafter\VECTOR@a \else \expandafter\CORNER@ \fi} - -\xydef@\VECTOR@a a(#1){\xy@{a(#1)}{\vfromcartesianangle@{#1}}% - \VECTORempty@false \afterVECTOR@} -\DOCMODE) - - The <corner> trick is to do nothing when there is nothing and - initialise both $X$ and $Y$ in all other cases. - -\DOCMODE( -\xydef@\CORNER@{% - \xy@{}{\A@=-.5\L@c \advance\A@.5\R@c \B@=-.5\D@c \advance\B@.5\U@c - \let\nextii@=\zeroit@}% - \VECTORempty@true\CORNER@i} - -\xydef@\zeroit@#1{#1=\z@} - -\xydef@\CORNER@i{% - \ifx D\next \DN@ D{\xy@{D}{\Y@c=-\D@c \nextii@\X@c \B@=\Y@c}\CORNER@ii}% - \else\ifx U\next \DN@ U{\xy@{U}{\Y@c= \U@c \nextii@\X@c \B@=\Y@c}\CORNER@ii}% - \else\ifx L\next \DN@ L{\xy@{L}{\X@c=-\L@c \nextii@\Y@c \A@=\X@c}\CORNER@ii}% - \else\ifx R\next \DN@ R{\xy@{R}{\X@c= \R@c \nextii@\Y@c \A@=\X@c}\CORNER@ii}% - \else\ifx C\next \DN@ C{\xy@{C}{\X@c= \A@ \Y@c= \B@}\CORNER@ii}% - \else\ifx E\next \DN@ E{\xy@{E}{% - \A@=\X@c \B@=\Y@c \the\Edge@c\z@ \advance\X@c-\A@ \advance\Y@c-\B@}% - \CORNER@ii}% - \else\ifx P\next \DN@ P{\xy@{P}{% - \A@=\X@c \B@=\Y@c \the\Edge@c\thr@@ \advance\X@c-\A@ \advance\Y@c-\B@}% - \CORNER@ii}% - \else\ifx (\next %) - \DN@(##1){\xy@{(##1)}{\X@c=##1\X@c \Y@c=##1\Y@c}\afterVECTOR@}% - \else \let\next@=\afterVECTOR@ - \fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\CORNER@ii{\xy@@{\let\nextii@=\eat@}% - \VECTORempty@false \xyFN@\CORNER@i} -\DOCMODE) - - |\CORNER@i| recognises the |(|<factor>|)| also; this does no harm as - it was never called if the first character was a |(|. - - The remaining <vector> forms just set $X$ and $Y$. - -\DOCMODE( -\xydef@\VECTOR@other{% - \addLT@\ifx \next - \addGT@{\addLT@\DN@##1}{\xy@{<##1>}{\vfromabsolute@{##1}}% - \VECTORempty@false\afterVECTOR@}% - \else\ifx (\next %) - \DN@({\xyFN@\VECTOR@other@open}%) - \else\ifx /\next %/ - \DN@/##1/{\xy@@ix@{{##1}}% - \xy@{/##1/}{\expandafter\vfromslide@\the\toks9 }% - \VECTORempty@false\afterVECTOR@}% - \else\ifx 0\next - \DN@ 0{\xy@{0}{\X@c=\z@ \Y@c=\z@}\VECTORempty@false\afterVECTOR@}% - \else - \DN@{\VECTORempty@true\afterVECTOR@}% - \fi\fi\fi\fi \next@} -\DOCMODE) - - \HACK: escape out in case of the special |(*| introducer\dots picked - up by the <coord> parser, then. - -\DOCMODE( -\xydef@\VECTOR@other@open{% - \ifx *\next \DN@{\VECTORempty@true \xyFN@\afterVECTOR@(}%) - \else - \DN@##1){\xy@{(##1)}{\vfromcartesian@{##1}}\VECTORempty@false\afterVECTOR@}% - \fi \next@} -\DOCMODE) - - Next <coord>inates that are not <vector>s: - -\DOCMODE( -\xydef@\xyCOORD@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\COORD@}%gobble spaces - \else \ifcat A\noexpand\next \let\next@=\xyCOORD@letter - \else \let\next@=\xyCOORD@other \fi\fi \next@} - -\xylet@\COORD@=\xyCOORD@ - -\xydef@\xyCOORD@letter{% - \ifx c\next - \DN@ c{\xy@{c}{}\afterCOORD@}% - \else\ifx p\next - \DN@ p{\xy@{p}\cfromp@ \afterCOORD@}% - \else\ifx x\next - \DN@ x{\xy@{x}{\R@c=\X@xbase \U@c=\Y@xbase \intersect@}\afterCOORD@}% - \else\ifx y\next - \DN@ y{\xy@{y}{\R@c=\X@ybase \U@c=\Y@ybase \intersect@}\afterCOORD@}% - \else\ifx s\next - \DN@ s##1{\xy@{s{##1}}{\cfroms@{##1}}\afterCOORD@}% - \else \let\next@=\afterCOORD@ \fi\fi\fi\fi\fi \next@} - -\xydef@\xyCOORD@other{% - \ifx "\next %" - \DN@"##1"{\xy@{"##1"}{\cfromid@{##1}}\afterCOORD@}% - \else\ifx \bgroup\next - \DN@##1{\xy@{{##1}}{\enter@{\pfromthep@\basefromthebase@}}% - \silencexy@ \POS##1\relax \unsilencexy@ \xy@@\leave@ \afterCOORD@}% - \else\ifx (\next %) - \DN@({\xyFN@\xyCOORD@other@open}%) - \else \let\next@=\afterCOORD@ \fi\fi\fi \next@} - -\xynew@{if}\ifsilentxy@ - -\xydef@\silencexy@{% - \ifsilentxy@ \nter@{}% - \else \nter@{\silentxy@false \let\xy@=\unsilent@@xy@} - \silentxy@true \let\unsilent@@xy@=\xy@ \def\xy@##1##2{\unsilent@@xy@{}{##2}}% - \fi} - -\xydef@\unsilencexy@{\leave@} - -\xydef@\xyCOORD@other@open{% - \ifx *\next - \DN@*##1*){\xy@{(*}{\enter@{\pfromthep@\basefromthebase@}}% - \POS##1\relax \xy@{*)}\leave@ \afterCOORD@}% - \else \DN@{\xyFN@\afterCOORD@(}%) - \fi \next@} -\DOCMODE) - - Finally <pos> parsing after <coord> (possibly <vector>) is - interpreted: - -\DOCMODE( -\xydef@\xyPOS@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\POS@}%gobble spaces - \else\addPLUS@\ifx \next - \addPLUS@\DN@{\xy@+{\enter@\cplusthec@}% - \afterCOORD{\xy@@\leave@ \xyFN@\POS@}}% - \else\addDASH@\ifx \next - \addDASH@\DN@{\xy@-{\enter@\cplusthec@}% - \afterCOORD{\xy@@{\X@c=-\X@c \Y@c=-\Y@c\leave@}\xyFN@\POS@}}% - \else\ifx !\next - \DN@ !{\xy@!{\enter@\cskewthec@}\afterCOORD{\xy@@\leave@ \xyFN@\POS@}}% - \else\addDOT@\ifx \next - \addDOT@\DN@{\xy@.{\enter@\cmergethec@}% - \afterCOORD{\xy@@\leave@ \xyFN@\POS@}}% - \else\ifx ,\next - \DN@ ,{\xy@,{\comma@@}\afterCOORD{\xyFN@\POS@}}% - \else\ifx ;\next - \DN@ ;{\xy@;{\swap@}\afterCOORD{\xyFN@\POS@}}% - \else\ifx :\next - \DN@ :{\xyFN@\POS@colon}% - \else\addEQ@\ifx \next - \addEQ@\DN@{\xyFN@\saveid@}% - \else\ifx *\next - \DN@ *{\xyFN@\POS@star}% - \else \ifx ?\next - \DN@?{\xy@?{}\afterPLACE{\xyFN@\POS@}}% - \else \addAT@\ifx \next - \addAT@\DN@{\xyFN@\STACK@}% - \else - \let\next@=\afterPOS@ - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xylet@\comma@@=\relax - -\xylet@\POS@=\xyPOS@ -\DOCMODE) - - |\comma@@| is a hook used to change the operation of |,|, \eg, when - reading a stack setup where it means `push'. - - The final functions serve only to distinguish between the single - character |:|/|*| and dual character |::|/|**| operators: - -\DOCMODE( -\xydef@\POS@colon{\DNii@{\afterCOORD{\xyFN@\POS@}}% - \ifx :\next \xy@{::}{\setbase@@\X@c\Y@c}\DN@:{\nextii@}% - \else \xy@:{\setbase@\X@p\Y@p\X@c\Y@c}\let\next@=\nextii@ \fi - \next@} - -\xydef@\POS@star{% - \ifx *\next - \DN@*##1##{\nextii@{##1}}% - \DNii@##1##2{\xy@@ix@{{##1}{##2}}% - \xy@{**##1{##2}}{\expandafter\connect@\the\toks9 }\xyFN@\POS@}% - \else - \DN@##1##{\nextii@{##1}}% - \DNii@##1##2{\xy@@ix@{{##1}{##2}}% - \xy@{*##1{##2}}{\expandafter\drop@\the\toks9 }\xyFN@\POS@}% - \fi - \next@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Simple actions:} - - Next follow the simplest actions; the complicated ones are explained - along with their notes below. - -\DOCMODE( -\xydef@\cfromp@{\X@c=\X@p \Y@c=\Y@p \U@c=\U@p \D@c=\D@p \L@c=\L@p \R@c=\R@p - \Edge@c=\expandafter{\the\Edge@p}} - -\xydef@\pfromc@{\X@p=\X@c \Y@p=\Y@c \U@p=\U@c \D@p=\D@c \L@p=\L@c \R@p=\R@c - \Edge@p=\expandafter{\the\Edge@c}} - -\xydef@\swapdimen@#1#2{\dimen@=#1\relax #1=#2\relax #2=\dimen@} - -\xynew@{toks}\swaptoks@@ - -\xydef@\swap@{\swapdimen@\X@c\X@p \swapdimen@\Y@c\Y@p - \swapdimen@\U@c\U@p\swapdimen@\D@c\D@p \swapdimen@\L@c\L@p\swapdimen@\R@c\R@p - \swaptoks@@=\Edge@c \Edge@c=\Edge@p \Edge@p=\swaptoks@@} -\DOCMODE) - - Next the parsing of coordinate pairs in |<>|: - -\DOCMODE( -\xydef@\vfromabsolute@#1{\vfromabsolute@@#1,@} - -\xydef@\vfromabsolute@@#1,#2@{\X@c=#1\relax - \DN@{#2}\ifx\next@\empty \Y@c=\X@c - \else \DN@##1,{\Y@c=##1}\next@#2\relax \fi -% \advance\X@c 1sp \advance\Y@c 1sp %HACK -} -\DOCMODE) - - The next group of commands are used to store on the control stack - with the |\enter@| command, so they "expand" to something useful: - -\DOCMODE( -\xydef@\cfromthec@{\X@c=\the\X@c \Y@c=\the\Y@c - \U@c=\the\U@c \D@c=\the\D@c \L@c=\the\L@c \R@c=\the\R@c - \Edge@c={\expandafter\noexpand\the\Edge@c}} - -\xydef@\cfromthep@{\X@c=\the\X@p \Y@c=\the\Y@p - \U@c=\the\U@p \D@c=\the\D@p \L@c=\the\L@p \R@c=\the\R@p - \Edge@c={\expandafter\noexpand\the\Edge@p}} - -\xydef@\pfromthep@{\X@p=\the\X@p \Y@p=\the\Y@p - \U@p=\the\U@p \D@p=\the\D@p \L@p=\the\L@p \R@p=\the\R@p - \Edge@p={\expandafter\noexpand\the\Edge@p}} - -\xydef@\pfromthec@{\X@p=\the\X@c \Y@p=\the\Y@c - \U@p=\the\U@c \D@p=\the\D@c \L@p=\the\L@c \R@p=\the\R@c - \Edge@p={\expandafter\noexpand\the\Edge@c}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notes} - -\note??=[arithmetic] -% - When doing arithmetic with |+| and |-| then the resulting current - object inherits the size of the <coord>, \ie, the right - argument---this will be zero if the <coord> is a <vector>. - -\begin{exercise} - How do you set $c$ to an object the same size as the saved object - |"ob"| but moved |<|$X$|,|$Y$|>|? -\answertext{Use the <pos>ition |<|$X$|,|$Y$|>+"ob"|.} -\end{exercise} - -\DOCMODE( -\xydef@\cplusthec@{\advance\X@c\the\X@c \advance\Y@c\the\Y@c} -\DOCMODE) - -\note??=[skew] -% - "Skewing" using |!| just means that the reference point of $c$ is - moved with as little change to the shape of the object as possible, - \ie, the edge of~$c$ will remain in the same location except that it - will grow larger to avoid moving the reference point outside~$c$. -% -\begin{exercise} - What does the <pos> \dots|!R-L| do? -\answertext{It first sets $c$ according to ``\dots''. Then it changes $c$ to - the point right of $c$ at the same distance from the right edge of - $c$ as its width, $w$, \ie, -$$ -\xy - *+\hbox{The \dots}="it" *\frm{_\}}!D-U*{w} - ,{"it"+RD}.{"it"+RU}.{"it"!R-L*{\times}+0}!C *\frm{_\}}!D-U*{w} -\endxy -$$} -\end{exercise} -% - \BUG: The result of |!| is always a rectangle currently. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Procedure:} - - |!| moves the center of $c$ by a temporarily read $c'$ and then - readjusts the extents: -$$ -\begin{array}{rclcl} - D_c &:=& Y'+Y_c - \min(Y'-D', Y'+Y_c) &=& \max(Y_c+D',0)\\ - U_c &:=& \max(Y'+U', Y'+Y_c) - (Y'+Y_c) &=& \max(U'-Y_c,0)\\ - Y_c &:=& Y'+Y_c\\ - L_c &:=& X'+X_c - \min(X'-L', X'+X_c) &=& \max(X_c+L',0)\\ - R_c &:=& \max(X'+R', X'+X_c) - (X'+X_c) &=& \max(R'-X_c,0)\\ - X_c &:=& X'+X_c\\ -\end{array} -$$ - -\DOCMODE( -\xydef@\cskewthec@{% - \noexpand\cskew@{\the\Y@c}{\the\X@c}{\the\D@c}{\the\U@c}{\the\L@c}{\the\R@c}} - -\xydef@\cskew@#1#2#3#4#5#6{% - \D@c=#3\advance\D@c \Y@c \ifdim\D@c<\z@ \D@c=\z@ \fi - \U@c=#4\advance\U@c-\Y@c \ifdim\U@c<\z@ \U@c=\z@ \fi - \advance\Y@c#1% - \L@c=#5\advance\L@c \X@c \ifdim\L@c<\z@ \L@c=\z@ \fi - \R@c=#6\advance\R@c-\X@c \ifdim\R@c<\z@ \R@c=\z@ \fi - \advance\X@c#2% - \Edge@c={\rectangleEdge}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[covering] -% - A <pos> "covers" another if it is a rectangle with size sufficiently - large that the other is ``underneath''. The |.| operation - ``extends'' a <pos> to cover an additional one---the reference point - of $c$ is not moved but the shape is changed to a rectangle such that - the entire $p$ object is covered. - - \BUG: non-rectangular objects are first ``translated'' into a - rectangle by using a diagonal through the object as the diagonal of - the rectangle. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Procedure:} - - |.| takes a temporary object $c'$ and adjusts the extents of $c$ such - that it is covered. -$$ -\begin{array}{rclcl} - L_c &:=& X' - \min(X'-L_c, X-L) &=& \max(L_c, A+L)\\ - R_c &:=& \max(X'+R_c, X+R) - X' &=& \max(R_c, -A+R)\\ - D_c &:=& Y' - \min(Y'-D_c, Y-D) &=& \max(D_c, B+D)\\ - U_c &:=& \max(Y'+U_c, Y+U) - Y' &=& \max(U_c, -B+U)\\ -\end{array} -$$ - with $|<|A|,|B|>| = |<|X'-X|,|Y'-Y|>|$. First method~2 of the object - is used to convert it into a rectangle. - -\DOCMODE( -\xydef@\cmergethec@{% - \noexpand\cmerge@{\the\Y@c}{\the\X@c}{\the\D@c}{\the\U@c}{\the\L@c}{\the\R@c}} - -\xydef@\cmerge@#1#2#3#4#5#6{\the\Edge@c4% - \A@=#2\advance\A@-\X@c \B@=#1\advance\B@-\Y@c - \dimen@=#5\advance\L@c \A@ \ifdim\L@c<\dimen@ \L@c=\dimen@ \fi - \dimen@=#6\advance\R@c-\A@ \ifdim\R@c<\dimen@ \R@c=\dimen@ \fi - \dimen@=#3\advance\D@c \B@ \ifdim\D@c<\dimen@ \D@c=\dimen@ \fi - \dimen@=#4\advance\U@c-\B@ \ifdim\U@c<\dimen@ \U@c=\dimen@ \fi - \advance\X@c\A@ \advance\Y@c\B@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[base] -% - The operations |:| and |::| set the "base" used for <coord>inates - having the form $|(|x|,|y|)|$. The |:| operation will set - |<|$X_"origin"$|,| $Y_"origin"$|>| to~$p$, |<|$X_"xbase"$|,| - $Y_"xbase"$|>| to $c-"origin"$, and~|<|$X_"ybase"$|,| $Y_"ybase"$|>| - to |<|${-}Y_"xbase"$|,| $X_"xbase"$|>| (this ensures that it is a - usual square coordinate system). The |::| operation may then be used - afterwards to make nonsqare bases by just setting "ybase" to - $c-"origin"$. Here are two examples: firstly |0;<1cm,0cm>:| sets the - coordinate system -$$ -\xy - <0cm,0cm>*@{o};<1cm,0cm>: - (0,0);{(1,0)**@{-}?>*@{>}},{(0,1)**@{-}?>*@{>}}, - (0,0)*+!UR\hbox{\small"origin"}, - (1,0)*+!LC\hbox{\small"xbase"}, - (0,1)*!D\hbox{\small"ybase"}, - (1,1)*{*}*++!CL{|(1,1)|}+0;(0,1)**@{.},(1,0)**@{.} -\endxy -$$ - while~|<1cm,.5cm>;<2cm,1.5cm>:<1cm,1cm>::|\hfil defines -$$ -\xy - <0cm,0cm>*@{o}, <1cm,.5cm>;<2cm,1.5cm>: -% - (0,0);{(0,1)**@{--}?(1)*@{>}}, - (0,1)*+!R\txt\small{"ybase"\\before\\{\tt::}}, -% - <1cm,1cm>:: - (0,0);{(1,0)**@{-}?(1)*@{>}},{(0,1)**@{-}?(1)*@{>}}, - (0,0)*+!LU\txt\small{"origin"}, - (1,0)*+!LC\txt\small{"xbase"}, - (0,1)*!D\txt\small{"ybase"}, - (1,1)*{*}*++!CL{|(1,1)|}+0;(0,1)**@{.},(1,0)**@{.} -\endxy -$$ - where in each case the $\circ$ is at |0|, the base vectors have been - drawn and the $\times$ is at |(1,1)|. - - When working with cartesian coordinates these three special <factor>s - are particularly useful: -% -\begin{defs} - ??c![\halfroottwo] & $0.70710678\approx{1\over2}\sqrt2$ \cr - ??c![\partroottwo] & $0.29289322\approx 1-{1\over2}\sqrt2$ \cr - ??c![\halfrootthree] & $0.86602540\approx{1\over2}\sqrt3$ \cr -\end{defs} -\noindent\unskip -% - More can be defined using |\def| (or |\newcommand| in \LaTeX). - -\DOCMODE( -\xydef@\halfroottwo{.70710678} -\xydef@\partroottwo{.29289322} -\xydef@\halfrootthree{.8660254} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Procedure:} - - The code chosen by the parsing is very simple; the only tricky bit is - to ensure that |\basefromthebase@| always expands to set the current - base. - -\DOCMODE( -\xydef@\vfromcartesian@#1{\vfromcartesian@@#1@} - -\xydef@\vfromcartesian@@#1,#2@{% - \X@c=\X@origin \advance\X@c#1\X@xbase \advance\X@c#2\X@ybase - \Y@c=\Y@origin \advance\Y@c#1\Y@xbase \advance\Y@c#2\Y@ybase} - -\xydef@\setbase@#1#2#3#4{% - \X@origin=#1\relax \Y@origin=#2\relax - \X@xbase=#3\relax \advance\X@xbase-\X@origin - \Y@xbase=#4\relax \advance\Y@xbase-\Y@origin - \X@ybase=-\Y@xbase \Y@ybase=\X@xbase} - -\xydef@\setbase@@#1#2{% - \X@ybase=#1\relax \advance\X@ybase-\X@origin - \Y@ybase=#2\relax \advance\Y@ybase-\Y@origin} - -\xydef@\basefromthebase@{\X@origin=\the\X@origin \Y@origin=\the\Y@origin - \X@xbase=\the\X@xbase \Y@xbase=\the\Y@xbase - \X@ybase=\the\X@ybase \Y@ybase=\the\Y@ybase} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[angle in current base] -% - An "angle" $\alpha$ in \Xy-pic is the same as the coordinate pair - $|(|\cos\alpha|,|\sin\alpha|)|$ where $\alpha$ must be an integer - interpreted as a number of degrees. Thus the <vector> |a(0)| is the - same as |(1,0)| and |a(90)| as |(0,1)|, etc. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The translation involves several steps: (??_[ang1])~Normalise the - argument to be within $[0^\circ:360^\circ[$. (??_[ang2])~Flip angle - around $x$-axis and then $y$-axis to ensure it is in the first - quadrant, \ie, within $[0^\circ:90^\circ[$. (??_[ang3])~Flip around - diagonal to ensure angle within $[0^\circ:45^\circ[$. - (??_[ang4])~Find values $\phi\le\alpha\lt\psi$ from the table in - figure~??[f.angles] (using recursive table lookup -- at most 3 tests - needed). (??_[ang5])~build vector $(x,y)$ interpolated between the - sin/cos values for $\phi$ and $\psi$ using the formula -$$ - \left(\cos\phi + k(\cos\psi-\cos\phi) , - \sin\phi + k(\sin\psi-\sin\phi) \right) ~, - \quad\hbox{where}~k = \frac{\alpha-\phi}{\psi-\phi} -$$ - (??_[angx])~build the chosen vector. - -\begin{figure*}[tp] - \noindent Vectors for angles in $[0^\circ:45^\circ]$: contains all - angles required to typeset fractions up to $\frac{n}{12}\times2\pi$, - $\frac1{16}\times2\pi$, and $\frac1{24}\times2\pi$ exactly, and two - extra low ones to ensure that all gaps are less than $5^\circ$ and - the precision of all sine/cosines better than $\frac1{1000}$. - $$ - \small - \def"{\vphantom{\frac()}\frac} - \begin{array}{\otherbar l\otherbar r@{~}l\otherbar c\otherbar c\otherbar} - \hline - ~\alpha & (\cos\alpha, & \sin\alpha) & \hbox{fractions of $2\pi$} & - \hbox{flipped fractions of $2\pi$} \\ - \hline - ~0&(1,&0) & "0{n} - & "12,"14,"24,"28,"34,"36,"3{12},"48,"5{10},"68,"6{12},"9{12} \\ - ~4.090909 & (.99677570, & .08023846) & - & - \\ - ~6 & (.99452190, & .10452846) & - & - \\ - ~8.181818 & (.98982144, & .14231484) & "3{11} & "8{11} \\ - 10 & (.98480775, & .17364818) & "79 & "29 \\ - 12.857143 & (.97492791, & .22252093) & "27 & "57 \\ - 15 & (.96592583, & .25881905) & "1{24} & \\ - 16.363636 & (.95949297, & .28173256) & "6{11} & "5{11} \\ - 18 & (.95105652, & .30901699) & "3{10},"45,"8{10} & "15,"2{10},"7{10} \\ - 20 & (.93969262, & .34202014) & "59 & "49 \\ - 22.5 & (.92387953, & .38268343) & "1{16} & \\ - 24.545455 & (.90963200, & .41541501) & "9{11} & "2{11} \\ - 25.714286 & (.90096887, & .43388374) & "47 & "37 \\ - 30 & (.86602540, & .5) & "13,"1{12},"26,"39,"4{12},"56,"7{12},"{10}{12} - & "16,"23,"2{12},"46,"5{12},"69,"8{12},"{11}{12} \\ - 32.727273 & (.84125353, & .54064082) & "1{11} & "{10}{11} \\ - 36 & (.80901699, & .58778525) & "1{10},"35,"6{10} & "25,"4{10},"9{10} \\ - 38.571429 & (.78183148, & .62348980) & "67 & "17 \\ - 40 & (.76604444, & .64278761) & "19 & "89 \\ - 40.909091 & (.75574957, & .65486073) & "4{11} & "7{11} \\ - 45 & (.70710678, & .70710678) & "18,"38,"58,"78 & - \\ - \hline - \end{array} - $$ - \caption{Computing angle vectors} - ??=[f.angles] -\end{figure*} - -\DOCMODE( -\xydef@\vfromcartesianangle@#1{\enter@\basefromthebase@ \R@=#1\p@ - \B@=360\p@ %?*[ang1] - \loop@ \ifdim\R@<\z@ \advance\R@\B@ \repeat@ - \loop@ \ifdim\R@>\B@ \advance\R@-\B@ \repeat@ - \ifdim\R@<.5\B@\else \R@=-\R@ \advance\R@\B@ %?*[ang2] - \X@ybase=-\X@ybase \Y@ybase=-\Y@ybase \fi - \B@=180\p@ - \ifdim\R@<.5\B@\else \R@=-\R@ \advance\R@\B@ - \X@xbase=-\X@xbase \Y@xbase=-\Y@xbase \fi - \B@=90\p@ %?*[ang3] - \ifdim\R@<.5\B@ \let\nextiii@=\literal@ - \else \R@=-\R@ \advance\R@\B@ \def\nextiii@##1,##2@{##2,##1@}\fi - \dimen@=\z@ \DN@{1,0@}% %?*[ang4] - \dimen@ii=45\p@ \DNii@{.70710678,.70710678@}% - \chooseangleinterval@ - {\chooseangleinterval@ - {\chooseangleinterval@ - {\chooseangleinterval@ - {\chooseangleinterval@ - {}% - {4.090909}{.99677570,.08023846@}% - {}}% - {6}{.99452190,.10452846@}% - {\chooseangleinterval@ - {}% - {8.181818}{.98982144,.14231484@}% - {}}}% - {10}{.98480775,.17364818@}% - {\chooseangleinterval@ - {}% - {12.857143}{.97492791,.22252093@}% - {}}}% - {15}{.96592583,.25881905@}% - {\chooseangleinterval@ - {\chooseangleinterval@ - {}% - {16.363636}{.95949297,.28173256@}% - {}}% - {18}{.95105652,.30901699@}% - {\chooseangleinterval@ - {}% - {20}{.93969262,.34202014@}% - {}}}}% - {22.5}{.92387953,.38268343@}% - {\chooseangleinterval@ - {\chooseangleinterval@ - {\chooseangleinterval@ - {}% - {24.545455}{.90963200,.41541501@}% - {}}% - {25.714286}{.90096887,.43388374@}% - {}}% - {30}{.86602540,.5@}% - {\chooseangleinterval@ - {\chooseangleinterval@ - {}% - {32.727273}{.84125353,.54064082@}% - {}}% - {36}{.80901699,.58778525@}% - {\chooseangleinterval@ - {\chooseangleinterval@ - {}% - {38.571429}{.78183148,.62348980@}% - {}}% - {40.909091}{.75574957,.65486073@}% - {\chooseangleinterval@ - {}% - {40}{.76604444,.64278761@}% - {}}}}}% - \A@=\R@ \advance\A@-\dimen@ %?*[ang5] - \ifdim\ifdim\A@<\z@-\fi\A@<.01\p@ \edef\next@{\expandafter\nextiii@\next@}% - \else \B@=\dimen@ii \advance\B@-\R@ - \ifdim\A@<\B@ \dimen@=\toradians@\A@ - \edef\next@{\next@ \expandafter\removePT@\the\dimen@ @}% - \else \dimen@=-\toradians@\B@ - \edef\next@{\nextii@ \expandafter\removePT@\the\dimen@ @}% - \fi - \expandafter\interpolatepoint@\next@ - \edef\next@{\expandafter\nextiii@\next@}% - \fi - \expandafter\vfromcartesian@@\next@ %?*[angx] - \leave@} - -\xydef@\chooseangleinterval@#1#2#3#4{% - \B@=#2\p@ \def\next{#3}% - \ifdim\R@<\B@ \dimen@ii=\B@ \let\nextii@=\next #1% - \else \dimen@=\B@ \let\next@=\next \ifdim\B@<\R@ #4\fi\fi} - -\xydef@\interpolateinterval@#1,#2@#3,#4@{% - \A@=#1\p@ \dimen@=#3\p@ \advance\dimen@-\A@ \advance\A@\next\dimen@ - \B@=#2\p@ \dimen@=#4\p@ \advance\dimen@-\B@ \advance\B@\next\dimen@ - \edef\next@{\expandafter\removePT@\the\A@,\expandafter\removePT@\the\B@ @}} - -\xydef@\toradians@{0.01745329} - -\xydef@\interpolatepoint@#1,#2@#3@{% - \A@=#1\p@ \dimen@ii=#3\A@ \dimen@ii=-.5\dimen@ii \advance\A@#3\dimen@ii - \dimen@=-#2\p@ \advance\A@#3\dimen@ - \B@=#2\p@ \dimen@ii=#3\B@ \dimen@ii=-.5\dimen@ii \advance\B@#3\dimen@ii - \dimen@=#1\p@ \advance\B@#3\dimen@ - \edef\next@{\expandafter\removePT@\the\A@,\expandafter\removePT@\the\B@ @}} -\DOCMODE) - - Figure~\ref{f.alldirections} shows all directions. - -\begin{figure}[ht] -\begin{center}\leavevmode -\def\a#1(#2){\save"o";a(#2)**@{-}*+__!P{\scriptscriptstyle#1#2}\restore} -\def\ad(#1){\save"o",a(#1)*{\cdot}\restore} -% -\newcount\n \newcount\m -\xy (50,0):0*{\kern.7pt\scriptstyle\ddot\smile}*[o]\cir<4pt>{}="o"\relax -\n=0 % -\loop - \expandafter\a\expandafter(\the\n)% - \advance\n1 \expandafter\ad\expandafter(\the\n)% - \advance\n1 \expandafter\ad\expandafter(\the\n)% - \advance\n1 \expandafter\ad\expandafter(\the\n)% - \advance\n1 \expandafter\ad\expandafter(\the\n)% - \advance\n1 \ifnum360>\n\relax \repeat -\a~, (360)% -\endxy -\end{center} -\caption{All directions.}\label{f.alldirections} -\end{figure} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[drop] -% - To "drop" an <object> at $c$ with |*| means to actually physically - typeset it in the picture with reference position at $c$---how this - is done depends on the <object> in question and is described in - detail in~\S??[object]. The intuition with a drop is that it - typesets something at $|<|X_c|,|Y_c|>|$ and sets the edge of $c$ - accordingly. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subparagraph*{Procedure:} - - (??_[drop1])~sets up the direction to allow for directionals and - builds the requested <object> in the (global) |\lastobjectbox@| box, - (??_[drop2])~adjust the picture size unless it is a hidden object, - setting $|\dimen@| = X_c-L_c$, and (??_[drop3])~drop the object in - the picture at the right point by setting |box0| and using the - |\Drop@@| method. - -\DOCMODE( -\xydef@\drop@#1#2{%*[drop1] - \global\setbox\lastobjectbox@=\object#1{#2}% - \ifHidden@ \dimen@=\X@c \advance\dimen@-\L@c \else %?*[drop2] - \dimen@=\Y@c \advance\dimen@ \U@c \ifdim\Y@max<\dimen@ \Y@max=\dimen@ \fi - \dimen@=\Y@c \advance\dimen@-\D@c \ifdim\dimen@<\Y@min \Y@min=\dimen@ \fi - \dimen@=\X@c \advance\dimen@ \R@c \ifdim\X@max<\dimen@ \X@max=\dimen@ \fi - \dimen@=\X@c \advance\dimen@-\L@c \ifdim\dimen@<\X@min \X@min=\dimen@ \fi - \fi - \ifInvisible@\else %?*[drop3] - \setboxz@h{\kern\dimen@ \raise\Y@c\box\lastobjectbox@}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ {\Drop@@}\fi} -\DOCMODE) - - \NOTE: All typesetting into a picture should use or emulate |\drop@|! - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[connect] -% - The "connect" operation |**| will first compute a number of internal - parameters describing the direction from~$p$ to~$c$ and then typesets - a connection filled with copies of the <object> as illustrated - in~\S??[basics.connect]. The exact details of the connection depend - on the actual <object> and are described in general in~\S??[object]. - The intuition with a connection is that it typesets something - connecting $p$ and $c$ and sets the |?| <pos> operator up accordingly. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subparagraph*{Procedure:} - - Set up the direction to allow for directional objects, then save - $c$, build the <object> in |\lastobjectbox@|, restore $c$, and perform - the |\Connect@@| method to connect using |\lastobjectbox@|. - -\DOCMODE( -\xydef@\connect@#1#2{\setupDirection@ \enter@{\cfromthec@}% - \global\setbox\lastobjectbox@=\object#1{#2}\leave@ - \Connect@@} - -\xydef@\preconnect@#1#2{\setupDirection@ \enter@{\cfromthec@}% - \global\setbox\lastobjectbox@=\object#1{#2}\leave@ \connectStore@ - \ifInvisible@ \Connect@@ \else \Invisible@true\Connect@@\Invisible@false \fi} -\DOCMODE) - - The |\preconnect| command is for internal use by arrow \dots\ it - makes use of the following: - -\DOCMODE( -\xynew@{box}\connectobjectbox@@ -\xylet@\connectDrop@@=\empty -\xylet@\connectpreXY@style@=\empty -\xylet@\connectpostXY@style@=\empty - -\xylet@\connectRest@@=\empty - -\xydef@\connectStore@{% - \global\setbox\connectobjectbox@@=\copy\lastobjectbox@ - \let\connectDrop@@=\Drop@@ - \let\connectpreXY@style@ =\preXY@style@ - \let\connectpostXY@style@=\postXY@style@ - \xdef\connectRest@@{% - \def\noexpand\Upness@{\Upness@}% - \def\noexpand\Leftness@{\Leftness@}% - \ifInvisible@ \noexpand\Invisible@true \else \noexpand\Invisible@false \fi - \ifHidden@ \noexpand\Hidden@true \else \noexpand\Hidden@false \fi}} - -\xydef@\connectRestore@{% - \ifvbox\connectobjectbox@@ - \setbox\lastobjectbox@=\copy\voidb@x - \else - \global\setbox\lastobjectbox@=\copy\connectobjectbox@@ - \fi - \let\Drop@@=\connectDrop@@ - \global\let\preXY@style@ =\connectpreXY@style@ - \global\let\postXY@style@=\connectpostXY@style@ - \connectRest@@} -\DOCMODE) - - See note `??w![define <shape>]' for the use of |\preXY@style@| and - |\postXY@style@| to apply special <style>s, specified via - <object-modifier>s; being saved here by |\connectStore@| as - |\connectpreXY@style@| and |\connectpostXY@style@| to be reset by - |\connectRestore@|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[shave]??=[pick place]??=[<place>] -% - Using |?| will ``pick a place'' along the most recent connection - typeset with |**|. What exactly this means is determined by the - object that was used for the connection and by the modifiers - described in general terms here. - - The ``shave'' modifiers in a <place>, |<| and |>|, change the default - <factor>, $f$, and how it is used, by `moving' the positions that - correspond to |(0)| and |(1)| (respectively): These are initially set - equal to~$p$ and~$c$, but shaving will move them to the point on the - edge of $p$ and $c$ where the connection ``leaves/enters'' them, and - change the default $f$ as indicated. When one end has already been - shaved thus then subsequent shaves will correspond to sliding the - appropriate position(s) a \TeX\ ??c![\jot] (usually equal to |3pt|) - further towards the other end of the connection (and past it). - Finally the "pick" action will pick the position located the fraction - $f$ of the way from |(0)| to |(1)| where $f=|0.5|$ if it was not set - (by |<|, |>|, or explicitly). - - All this is probably best illustrated with some examples: each - $\otimes$ in figure~??[f.places] is typeset by a sequence of the form - $p$|;| $c$ |**@{.}| |?|<place> |*{\oplus}| where we indicate the - |?|<place> in each case. (We also give examples of <slide>s.) - -\begin{figure*}[tb] -$$ - \def\[#1]#2{\def\2{#2}% - \POS "p";"c"**{} - #2*+=[o]{\oplus}="x"*=<5em,3em>{}-#1*!#1\hbox{{\tt\codeof\2}}; - "x"**@{-}?>*@{>}\ignorespaces}% - % -\xy - <0pt,110pt>*[o]=<20pt>{}="p"*\frm{oo}+L*!RC\hbox{$p$ is circular:~}, - <270pt,0pt>*=<4em>\txt<4em>{$c$ is a square text!}="c"*\frm{-,}, - "p";"c"**@{--}\relax - % - \[UR]{?(0)} - \[UR]{?(1)} - \[UR]{?} - \[UR]{?(.7)} - % - \[D]{?<>(.5)} - \[DL]{?<>(.2)(.5)} - \[DL]{?<} - \[UR]{?<<<} - \[UR]{?<<</1cm/} - \[D]{?<(0)} - \[DL]{?>} - \[D]{?>>>>} - % - \[DL]{?<>(.7)} - \[D]{?>(.7)} -\endxy -$$ -\caption{Example \protect<place>s}??=[f.places] -\end{figure*} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Procedure:} - - The code for parsing <place> is the following. To get first |<>| to - move to edge and the remaining to move a ??c![\jot] we have both - initial and continuing versions for each, the idea being that the - second and following go to the edge of a small temporary object with - radius |\jot|. - - \NOTE: This parser tests the "new parsing principle" that |\xy@| - should always be called as |\xy@{| "source" |}{| "target" |}|! - -% \HACK: `Helps' the `arrow' feature: in the procedure for path -% sub-segments, it is necessary to know the value of |\PLACEf@| both at -% the (possibly delayed) time when the sub-segments are being typeset -% and also at the time when the subsegments are being processed (and -% packaged to be delayed by the |\xy@@|). Thus it is necessary for any -% changes to the value of |\PLACEf@| to be both immediate and -% delayed. The reason is that |\bstartPLACE@| and |\bendPLACE@| read -% values from |\PLACEf@| and are themselves delayed by calls to |\xy@@| -% -- these delayed calls need to know what |\PLACEf@| will be when they -% are used. - -\DOCMODE( -\xydef@\afterPLACE#1{% - \DN@##1{\def\afterPLACE@{\xy@@\leave@ \def\afterPLACE@{##1}#1}}% - \expandafter\next@\expandafter{\afterPLACE@}% - \def\PLACEf@{{.5}}% - \xy@@{\enter@{\pfromthep@}% - \Creset@@ \def\PLACEf@{{.5}}% - \let\PLACEedgep@@=\PLACEedgep@ \let\PLACEedgec@@=\PLACEedgec@}% - \xyFN@\PLACE@} - -\xydef@\PLACEf@{} - -\xydef@\PLACEedgep@@{} -\xydef@\PLACEedgec@@{} - -\xydef@\PLACEedgep@{\Cshavep@@ \def\PLACEedgep@@{\Cslidep@@\jot}} -\xydef@\PLACEedgec@{\Cshavec@@ \def\PLACEedgec@@{\Cslidec@@{-\jot}}} - -\xylet@\afterPLACE@=\empty - -\xydef@\PLACE@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PLACE@}%gobble spaces - \else\addLT@\ifx \next - \addLT@\DN@{\addLT@\xy@{\def\PLACEf@{{0}}\PLACEedgep@@}\xyFN@\PLACE@}% - \else\addGT@\ifx \next - \addGT@\DN@{\addGT@\xy@{\def\PLACEf@{{1}}\PLACEedgec@@}\xyFN@\PLACE@}% - \else\ifx (\next %) - \DN@(##1){\def\PLACEf@{{##1}}\xy@{(##1)}{\def\PLACEf@{{##1}}}\xyFN@\PLACE@}% - \else\ifx !\next - \DN@!{\xyFN@\PLACE@intercept}% - \else - \DN@{\xy@@{\expandafter\Calong@@\PLACEf@ \czeroEdge@}\PLACE@@}% - \fi\fi\fi\fi\fi \next@} - -\xydef@\PLACE@intercept{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PLACE@intercept}%gobble spaces - \else\ifx \bgroup\next - \DN@##1{\xy@{!{##1}}{}\PLACE@intercept@{##1}}% - \else\ifx (\next %) - \DN@(*##1*){\xy@{!(*##1*)}{}\PLACE@intercept@{##1}}% - \else \DN@{\xyerror@{{<pos>} expected after ! in <place>}{}}% - \fi\fi\fi \next@} - -\xydef@\PLACE@intercept@#1{% - \xy@@{\enter@{\pfromthep@\basefromthebase@}\begingroup}% - \xy@@ix@{#1}\xy@@{\plainxy@ \expandafter\POS\the\toks9\relax - \edef\next@{\endgroup - \X@c =\the\X@c \Y@c=\the\Y@c \X@p=\the\X@p \Y@p=\the\Y@p}% - \next@ \Cintercept@@ \leave@}% - \PLACE@@} - -\xydef@\PLACE@@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PLACE@@}%gobble spaces - \else\ifx /\next \DN@/##1/{\xy@{/##1/}{\Cslidec@@{##1}}\afterPLACE@}% - \else \let\next@=\afterPLACE@ - \fi\fi \next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[slide] -% - A <slide> will move the position a dimension further along the - connection at the picked position. For straight connections (the - only ones kernel \Xy-pic provides) this is the same as adding a - vector in the tangent direction, \ie, $|?|\dots|/|A|/|$ is the same - as $|?|\dots|+/|A|/|$. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[intercept] -% - This special <place> finds the point where the last connection - intercepts with the line from $p$ to $c$ as setup by the <pos>, thus - usually this will have the form |!{|<coord>|;|<coord>|}|\footnote{The - braces can be replaced by |(*|\dots|*)| "once", \ie, there can be no - other braces nested inside it.}, for example, - \BUG: Only works for straight arrows at present. -% -\begin{code} -\xy <1cm,0cm>: - (0,0)*=0{+}="+" ; - (2,1)*=0{\times}="*" **@{.} , - (1,0)*+{A} ; (2,2)*+{B} **@{-} - ?!{"+";"*"} *{\bullet} -\endxy -\end{code} -\displaycode\noindent -% - will typeset -% -$$\docode$$ - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[axis intersection] -% - The positions denoted by the "axis intersection" - <coord>inates~??c![x] and~??c![y] are the points where the line - through $p$ and $c$ intersects with each axis. The following figure - illustrates this: -$$ - \xy;<1cm,.5cm>:<-.5cm,.5cm>:: - (0,0)*+!UR{"origin"}; - (1,0)*+!DR{"xbase"}**@{-}?>*@{>}, - (0,0);(0,1)*+!DR{"ybase"}**@{-}?>*@{>}, - (0.5,-1)="p"*@{o}*!LU\hbox{~$p$}; - p+<.25cm,.5cm>="c"*@{o}*!LU\hbox{~$c$}*{}?(1), - % - "p";"c",x*+!LD{|x|}*@{*}*{}**@{.};(1,0)**@{.}, - "p";"c",y*!U{\strut|y|}*@{*}*{}**@{.};(0,0)**@{.}, - \endxy -$$ - -\begin{exercise} -% - Given predefined points $A$, $B$, $C$, and $D$ (stored as objects - |"A"|, |"B"|, |"C"|, and |"D"|), write a <coord> specification that - will return the point where the lines $\overline{AB}$ and - $\overline{CD}$ cross (the point marked with a large circle here): -% -\begin{code} -\xy - % - % set up and mark A, B, C, and D: - (0,0)="A" *\cir<1pt>{}*+!DR{A}, - (7,10)="B" *\cir<1pt>{}*+!DR{B}, - (13,8)="C" *\cir<1pt>{}*+!DL{C}, - (15,4)="D" *\cir<1pt>{}*+!DL{D}, - % - % goto intersection and name+circle it: - {"A";"B":"C";"D",x} ="I" *\cir<3pt>{}, - % - % make dotted lines: - "I";"A"**{} +/1pc/;-/1pc/ **@{..}, - "I";"D"**{} +/1pc/;-/1pc/ **@{..} - % -\endxy -\end{code} -$$\docode$$ -% -\answertext{The <coord> ``|{"A";"B":| |"C";"D",| |x}|'' returns the cross - point. Here is how the author typeset the diagram in the exercise:} -\answercode -\answertext{\displaycode\noindent A |?!|\dots\ <place> could also have been - used.} -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Procedure:} - - We solve the following equation in $a,b$: -$$ - "origin" + a*|<|R_c|,|U_c|>| = c - b*(c-p) -$$ - and then set -$$ - |<|X_c|,|Y_c|>| := |<|X_c|,|Y_c|>| - b*(c-p) - \quad\textrm{with zero size}\quad - D_c,U_c,L_c,R_c := 0,0,0,0. -$$ - The code uses $c=(X_c,Y_c,D_c,U_c,L_c,R_c)$ and $A,B$ as temporaries - and computes: -$$ -\begin{array}{rcl} - |<|dX|,|dY|>| &:=& |<|X_c|,|Y_c|>| - |<|X_p,Y_p|>| \\[1pt] - |<|A|,|B|>| &:=& |<|X_c|,|Y_c|>| - |<|X_"origin"|,|Y_"origin"|>| \\[1pt] - |<|D_c|,|L_c|>| &:=& |<| \Det{R& dX\\U&dY} |,| - \Det{R&A\\U&B} |>| \\[1pt] - |<|X_c|,|Y_c|>| &:=& |<|X_c|,|Y_c|>| - (L_c/D_c)*|<|dX|,|dY|>| -\end{array} -$$ - where we really do $D := (R/|pt|)dY - (U/|pt|)dX$ and similarly for - $L$. - -\DOCMODE( -\xydef@\intersect@{%?*[intersect@] - \d@X=\X@c \advance\d@X-\X@p \d@Y=\Y@c \advance\d@Y-\Y@p - \A@=\X@c \advance\A@-\X@origin \B@=\Y@c \advance\B@-\Y@origin - \edef\next@{\expandafter\removePT@\the\R@c}% - \edef\nextii@{\expandafter\removePT@\the\U@c}% - \D@c=\next@\d@Y \advance\D@c-\nextii@\d@X \divide\D@c\KK@ - \L@c=\next@\B@ \advance\L@c-\nextii@\A@ \divide\L@c\KK@ - \ifdim\D@c=\z@\zeroDivide@\else \quotient@\next@\L@c\D@c \fi - \advance\X@c-\next@\d@X \advance\Y@c-\next@\d@Y - \czeroEdge@} -\DOCMODE) - - When there is no intersection point a wrong answer is returned, - accompanied by a warning message. This behaviour can be altered by - assigning a different value to the hook: |\zeroDivide@|. This macro - must store a number in |\next@|. - -\DOCMODE( -\xydef@\zeroDivide@@{\zeroDivide@message{\intersect@}{treated as 0}\DN@{0}} -\xydef@\zeroDivide@message#1#2{\xywarning@{division by 0 in \string#1, #2}} -\xylet@\zeroDivide@=\zeroDivide@@ - -\xydef@\zeroDivideLimit@@{\ifdim\L@c=\z@ \DN@{0}% - \else\ifdim\L@c<\z@\DN@{-\zeroDivide@Limit}% - \else\DN@{\zeroDivide@Limit}\fi\fi - \zeroDivide@message{\intersect@}{replaced by \zeroDivide@Limit}} -\xydef@\zeroDivideLimit@#1{\edef\zeroDivide@Limit{#1}% - \let\zeroDivide@=\zeroDivideLimit@@} -\xylet@\zeroDivideLimit=\zeroDivideLimit@ -\DOCMODE) - - By specifying |\zeroDivideLimit{|<num>|}| the user can locally - establish that ${x\over0} = \sgn(x)$<num>, whenever such a division - by zero would otherwise occur in an intersection calculation. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[group] -% - A <pos> <decor> "grouped" in |{}|-braces\footnote{One can use - |(*|\dots|*)| instead also here.} is interpreted in a local scope in - the sense that any $p$ and "base" built within it are forgotten - afterwards, leaving only the $c$ as the result of the <coord>. - \NOTE: Only $p$ and "base" are restored -- it is not a \TeX\ group. - -\begin{exercise} - What effect is achieved by using the <coord>inate ``|{;}|''? -\answertext{To copy the $p$ value to $c$, \ie, equivalent to ``|p|''.} -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The code is inside |\POS@|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[in <direction>] -% - The vector $|/|Z|/|$, where $Z$ is a <dimen>sion, is the same as the - vector $|<|Z\cos\alpha|,|Z\sin\alpha|>|$ where $\alpha$ is the angle - of the last direction set by a connection (\ie, with |**|) or - subsequent placement (|?|) position. - -\DOCMODE( -\xydef@\vfromslide@#1{\enter@\DirectionfromtheDirection@ \begingroup - \plainxy@\afterDIRECTIONorEMPTY\vfromslide@i\vfromslide@i#1@} - -\xydef@\vfromslide@i#1@{\DN@{#1}% - \edef\next{\endgroup - \ifx\next@\empty \dimen@=.5pc \else \dimen@=#1\relax \fi - \X@c=\cosDirection\dimen@ \Y@c=\sinDirection\dimen@}\next - \leave@} -\DOCMODE) - - It is possible to give a <direction> as described in the next section - (figure~??[f.object], note~??[direction] in particular) that will - then be used to set the value of $\alpha$. It is also possible to - omit the <dimen> in which case it is set to a default value of - |.5pc|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[offset]??=[corner] -% - A <corner> is an offset from the current $|<|X_c|,|Y_c|>|$ position - to a specific position on the edge of the $c$ object (the two-letter - ones may be given in any combination): -$$ -\def\[#1]{\POS"box"+#1="x";"box" - **{} ?</-2em/*+\hbox{\tt#1};"x",**@{-}?>*@{>}} -% -\xy.(-5,-4).(15,9)*\frm{-}="box"*{c}="c"; - "box"+L**@{.}, "box"+R**@{.}, "box"+D**@{.}, "box"+U**@{.} -% - \[L] \[R] \[D] \[U] - \[LD]\[RD]\[LU]\[RU] - \[CL]\[CR]\[DC]\[UC] \[C] \[P] - \POS"box"+(-20,-8)*{p}="p";"c"**@{.},"box"**{}\[E] -\endxy -$$ - The `edge point' |E| lies on the edge along the line from $p$ to the - centre of the object, in contrast to the `proportional' point |P| - which is also a point on the edge but computed in such a way that the - object looks as much `away from $p$' as possible. - - Finally, a following $|(|f|)|$ suffix will multiply the offset vector - by the <factor> $f$. - -\begin{exercise} - What is the difference between the <pos>itions |c?<| and |c+E|? -\answertext{When using the kernel connections that are all straight there is - no difference, \eg, |**{}?<| and |**{}+E| denote exactly the same - position. However, for other connections it is not necessarily the - case that the point where the connection enters the current object, - denoted by |?<|, and the point where the straight line from $p$ - enters the object, denoted by |+E|, coincide.} -\end{exercise} - -\begin{exercise} -\begin{code} -\xy *=<3cm,1cm>\txt{Box}*\frm{-} - !U!R(.5) *\frm{..}*{\bullet} \endxy -\end{code} -% - What does this typeset? -% -\displaycode -\noindent - "Hint": ??c![\frm] is defined by the frame extension and just - typesets a frame of the kind indicated by the argument. -% -\answercode -\answertext{The code typesets the picture $$\docode$$} -\end{exercise} - - \BUG: Currently only the single-letter corners (??c![L], ??c![R], - ??c![D], ??c![U], ??c![C], ??c![E], and ??c![P]) will work for any - shape---the others silently assume that the shape is rectangular. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[stack]??=[<stack op>eration] -% - The "stack" is a special construction useful for storing a sequence - of <pos>itions that are accessible using the special - <coord>inates~|s|$n$, where $n$~is either a single digit or a - positive integer in |{}|s: |s0| is always the `top' element of the - stack and if the stack has depth $d$ then the `bottom' element of the - stack has number |s{|$d-1$|}|. The stack is said to be `empty' when - the depth is~$0$ and then it is an error to access any of the |s|$n$ - or `pop' which means remove the top element, shifting what is in |s1| - to |s0|, |s2| to |s1|, etc. Similarly, `push~$c$' means to shift - |s0| to |s1|, etc., and then insert the $c$ as the new |s0|. - - The stack is manipulated as follows: -% -\begin{defs} - |@|<stacking> & Action \cr -\noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak}% - ??c![@+]<coord> & push $<coord>$ \cr - ??c![@-]<coord> & $c\from<coord>$ then pop \cr - ??c![@=]<coord> & load stack with <coord> \cr - ??c![@@]<coord> & do $<coord>$ for $c\from$ stack \cr - ??c![@i] & initialise \cr - ??c![@(] & enter new frame \cr - ??c![@)] & leave current frame \cr -\end{defs} -\noindent\unskip -% - To `load stack', means to load the entire stack with the positions - set by <coord> within which |,| means `push $c$'. - - To `do <coord> for all stack elements' means to set $c$ to each - element of the stack in turn, from the bottom and up, and for each - interpret the <coord>. Thus the first interpretation has $c$ set to - the bottom element of the stack and the last has $c$ set to~|s0|. If - the stack is empty, the <coord> is not interpreted at all. - - These two operations can be combined to repeat a particular <coord> - for several points, like this: -% -\begin{code} -\xy - @={(0,-10),(10,3),(20,-5)} @@{*{P}} -\endxy -\end{code} -\displaycode\noindent -% - will typeset -% -$$\docode$$ - - Finally, the stack can be forcibly cleared using |@i|, however, this - is rarely needed because of |@(|, which saves the stack as it is, and - then clears it, such when it has been used (and is empty), and |@)| - is issued, then it is restored as it was at the time of the~|@(|. - -\begin{exercise} - How would you change the example above to connect the points as shown - below? -% -\begin{code} -\xy - @={(0,-10),(10,3),(20,-5)}, - s0="prev" @@{;"prev";**@{-}="prev"} -\endxy -\end{code} -% -$$\docode$$ -% -\answercode -\answertext{This does the job, saving each point to make the previous point - available for the next piece:\displaycode\noindent Notice how we - close the line by first saving |s0|, the last point visited, such - that the first point will be connected to it.} -% -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - First the stack top and bottom, both initially~$-1$: - -\DOCMODE( -\xydef@\s@bot{-1} -\xydef@\s@top{-1} -\DOCMODE) - - Next the function to set $c\from|s|n$, \ie, test that $"bot"\lt - n+"bot"\lt "top"$ and then run the associated stack element. - -\DOCMODE( -\xydef@\cfroms@#1{\tests@{#1}\runs@\outofranges@} - -\xydef@\tests@#1#2#3{\DN@{#3}% - \count@=\s@top \advance\count@-#1\relax - \ifnum\count@>\s@bot\relax \ifnum\count@>\s@top\else\DN@{#2}\fi\fi - \next@} - -\xydef@\runs@{\csname S@\the\count@\endcsname} - -\xydef@\outofranges@{\count@=\s@top \advance\count@-\s@bot - \xyerror@{stack index out of range (should be 0..\the\count@)}{}} -\DOCMODE) - - Finally the actual code to do the stack operations: it depends on the - `code' passed after |@|; spaces are not allowed: - -\DOCMODE( -\xydef@\STACK@{% - \addPLUS@\ifx\next - \addPLUS@\DN@{\xy@{@+}{}\afterCOORD{\xy@@\spushc@ \xyFN@\POS@}}% - \else\addDASH@\ifx\next - \addDASH@\DN@{\xy@{@-}{}\afterCOORD{\xy@@\spop@ \xyFN@\POS@}}% - \else \ifx i\next \DN@ i{\xy@{@i}\sinit@ \xyFN@\POS@}% - \else \ifx (\next \DN@ ({\xy@{@(}\senter@ \xyFN@\POS@}% - \else \ifx )\next \DN@ ){\xy@{@)}\sleave@ \xyFN@\POS@}% - \else\addEQ@\ifx\next \addEQ@\DN@{\STACK@load}% - \else\addAT@\ifx\next \addAT@\DN@{\xy@{@@}{}\smap@}% - \else \DN@##1{\xyerror@{illegal stack command ##1}{}\afterCOORD{\xyFN@\POS@}}% - \fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\STACK@load{\xy@{@=}{% - \if\sempty@\else \xywarning@{loading on top of non-empty stack}\sinit@ \fi - \let\comma@@=\spushc@}% - \afterCOORD{\xy@@{\spushc@ \let\comma@@=\relax}\xyFN@\POS@}} - -\xydef@\spushc@{% - \count@=\s@top \advance\count@\@ne \edef\s@top{\the\count@}% - \expandafter\edef\csname S@\s@top\endcsname{\cfromthec@}} - -\xydef@\spushid@#1{\DNii@{#1}\edef\nextii@{\codeof\nextii@}% - \expandafter\let\expandafter\next@\csname Q@\nextii@\endcsname - \ifx\next@\relax \xyerror@{<pos> \string"\nextii@\string" not defined}{}% - \else - \count@=\s@top \advance\count@\@ne \edef\s@top{\the\count@}% - \DNii@##1{\expandafter\def\csname S@\s@top\endcsname{##1}}% - \expandafter\nextii@\expandafter{\next@}% - \fi} - -\xydef@\idfroms@#1#2{% - \tests@{#2}{\DN@{\idfromxy@{#1}}% - \expandafter\expandafter\expandafter\next@ - \expandafter\expandafter\expandafter{\csname S@\the\count@\endcsname}% - }\outofranges@} - -\xydef@\spop@{\count@=\s@top - \ifnum\count@>\s@bot \advance\count@\m@ne \edef\s@top{\the\count@}% - \else \xyerror@{nothing to pop from stack}{}\fi} - -\xydef@\sinit@{\edef\s@top{\s@bot}} - -\xydef@\senter@{% - \count@=\s@top \advance\count@\@ne - \expandafter\edef\csname S@\the\count@\endcsname{\s@bot}% - \edef\s@bot{\the\count@}\edef\s@top{\the\count@}} - -\xydef@\sleave@{% - \ifnum\s@bot=\s@top\else \xywarning@{leaving non-empty stack}\sinit@ \fi - \ifnum\s@bot>\m@ne \edef\s@bot{\csname S@\s@top\endcsname}% - \count@=\s@top \advance\count@\m@ne \edef\s@top{\the\count@}% - \edef\sbot{\the\count@}\fi} - -\xydef@\sempty@{\ifnum\s@top=\s@bot TT\else TF\fi} -\DOCMODE) - - |\smap@| maps a <coord> over a stack: - -\DOCMODE( -\xydef@\xytotoks@#1#2{\addtotoks@{#2}} -\xydef@\xytotoks@@toksix@#1{\addtotoks@{\toks9={#1}}} - -\xydef@\smap@{% - \begingroup \toks@={}\let\xy@=\xytotoks@ \change@oxy@\xy@ - \let\xy@@ix@=\xytotoks@@toksix@ - \afterCOORD{\expandafter\endgroup - \expandafter\smapxy@@\expandafter{\the\toks@}\xyFN@\POS@}} - -\xydef@\smapxy@@#1{\xy@@{\edef\smapp@@{\s@bot}\smapxy@i{#1}}} - -\xylet@\smapp@@=\empty - -\xydef@\smapxy@i#1{% - \ifnum\smapp@@<\s@top - \count@=\smapp@@ \advance\count@\@ne \edef\smapp@@{\the\count@}% - \DN@{\csname S@\smapp@@\endcsname #1\relax \smapxy@i{#1}}% - \else \let\next@=\relax - \fi \next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[save]??=[saved] -% - It is possible to define new <coord>inates on the form |"|<id>|"| by - "saving" the current $c$ using the \dots|="|<id>|"| <pos>ition form. - Subsequent uses of |"|<id>|"| will then reestablish the $c$ at the - time of the saving. - - Using a |"|<id>|"| that was never defined is an error, however, - saving into a name that was previously defined just replaces the - definition without warning, \ie, |"|<id>|"| always refers to the last - thing saved with that <id>. - - However, many other things can be `saved': in general |@|<saving> has - either of the forms -% -\begin{defs} - |@:"|<id>|"| & |"|<id>|"| restores current "base" \cr - |@|<coord>|"|<id>|"| & |"|<id>|"| reinterprets <coord> \cr - |@@"|<id>|"| & |@="|<id>|"| reloads this stack \cr -\end{defs} -\noindent\unskip -% - The first form defines |"|<id>|"| to be a macro that restores the - current "base". - - The second does not depend on the state at the time of definition at - all; it is a macro definition. You can pass parameters to such a - macro by letting it use coordinates named |"1"|, |"2"|, etc., and - then use |="1"|, |="2"|, etc., just before every use of it to set the - actual values of these. \NOTE: it is not possible to use a <coord> - of the form |"|<id>|"| directly: write it as |{"|<id>|"}|. -% -\begin{exercise} - Write a macro |"dbl"| to double the size of the current~$c$ object, - \eg, changing it from the dotted to the dashed outline in this - figure: -% -\begin{code} -\xy ={.{+DL(2)}.{+UR(2)}}"dbl", - *+<3pc,2pc>{+}*\frm{.}, "dbl"*\frm{--} -\endxy -\end{code} -$$ -\docode -$$ -\answercode -\answertext{The author used \displaycode\noindent to typeset the figure in - the exercise.} -\end{exercise} - - The final form defines a special kind of macro that should only be - used after the |@=| stack operation: the entire current stack is - saved such that the stack operation |@="|<id>|"| will reload it. - - \NOTE: There is no distinction between the `name spaces' of <id>s - used for saved coordinates and other things. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This parser distinguishes between the cases: - -\DOCMODE( -\xydef@\saveid@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\saveid@}%gobble spaces - \else \ifx "\next\DN@"##1"{\xy@{="##1"}{\idfromc@{##1}}\xyFN@\POS@}% - \else \ifx :\next\DN@:##1"##2"{\xy@{=:"##2"}{\idfrombase@{##2}}\xyFN@\POS@}% - \else\addAT@\ifx\next - \addAT@\DN@"##1"{\xy@{=@"##1"}{\idfromstack@{##1}}\xyFN@\POS@}% - \else \ifx s\next - \DN@ s##1"##2"{\xy@{=s##1"##2"}{\idfroms@{##2}{##1}}\xyFN@\POS@}% - \else\addEQ@\ifx\next \let\saveid@COORD@@=\saveid@COORDii - \addEQ@\DN@{\xyFN@\saveid@COORD}% - \else \let\saveid@COORD@@=\saveid@COORDi \let\next@=\saveid@COORD - \fi\fi\fi\fi\fi\fi \next@} - -\xylet@\saveid@COORD@@=\relax -\DOCMODE) - - Here is the code for saving/restoring a position and a base. - -\DOCMODE( -\xydef@\idfromc@#1{\DN@{#1}% - \expandafter\edef\csname Q@\codeof\next@\endcsname{\cfromthec@}} - -\xydef@\idfrombase@#1{\DN@{#1}% - \expandafter\edef\csname Q@\codeof\next@\endcsname{\basefromthebase@}} - -\xydef@\idfromstack@#1{% - \toks@={\if\sempty@\else - \xywarning@{loading on top of non-empty stack}\sinit@ \fi}% - \count@=\s@bot \advance\count@\@ne - \ifnum\count@>\s@top\else - \loop@ - \expandafter\let\expandafter\next@\csname S@\the\count@\endcsname - \expandafter\addtotoks@\expandafter{\next@}% - \ifnum\count@<\s@top \advance\count@\@ne \addtotoks@{\spushc@}\repeat@ - \fi - \DN@{#1}\edef\next@##1{% - \def\expandafter\noexpand\csname Q@\codeof\next@\endcsname{##1}}% - \expandafter\next@\expandafter{\the\toks@}} - -\xydef@\saveid@COORD{% - \begingroup \toks@={}\let\xy@=\xytotoks@ \change@oxy@\xy@ - \let\xy@@ix@=\xytotoks@@toksix@ - \afterCOORD{\expandafter\saveid@COORDi\expandafter{\the\toks@}}} - -\xydef@\saveid@COORDi#1#2"#3"{\endgroup \xy@@{\idfromxy@{#3}{#1}}\xyFN@\POS@} -\xydef@\saveid@COORDii#1#2"#3"{\endgroup \xy@@{\idfromcxy@{#3}{#1}}\xyFN@\POS@} - -\xydef@\idfromxy@#1#2{\DN@{#1}% - \expandafter\def\csname Q@\codeof\next@\endcsname{#2}} - -\xydef@\idfromcxy@#1#2{\DN@{#1}% - \expandafter\edef\csname Q@\codeof\next@\endcsname{\cfromthec@#2}} - -\xydef@\cfromid@#1{\DNii@{#1}\edef\nextii@{\codeof\nextii@}% - \expandafter\let\expandafter\next@\csname Q@\nextii@\endcsname - \ifx\next@\relax \xyerror@{<pos> \string"\nextii@\string" not defined}{}% - \else \expandafter\next@\fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section{Objects} -??=[object] - -\DOCMODE( -\message{objects,} -\DOCMODE) - - Objects are the entities that are manipulated with the |*| and |**| - <pos> operations above to actually get some output in \Xy-pictures. - As for <pos>itions the operations are interpreted strictly from left - to right, however, the actual object is built "before" all the - <modifier>s take effect. The syntax of objects is given in - figure~??[f.object] with references to the notes below. \REMARK: It - is "never" allowed to include braces |{}| inside <modifier>s! In - case you wish to do something that requires |{|\dots|}| then check in - this manual whether you can use |(*|\dots|*)| instead. If not then - you will have to use a different construction! - -\begin{figure*}[tp] -\begin{syntax} -% - ??w![<object>] - &\iss & <modifier> <object> - & apply <modifier> to <object> -\cr - &\orr & <objectbox> - & build <objectbox> then apply its <modifier>s -\cr -\noalign{\smallbreak} -% -\cr - ??w![<objectbox>] - &\iss & |{| <text> |}| - & ??!^[build default] object -\cr - &\orr & <library object> \orr\ |@|<dir> - & use <library object> or <dir>ectional (see~\S??[objectlib]) -\cr - &\orr & <\TeX\ box> |{| <text> |}| - & ??!^[build box] object with <text> using the given <\TeX\ box> - command, \eg, ??c![\hbox] -\cr - &\orr & ??c![\object] <object> - & wrap up the <object> as a ??!^[finished object box] -\cr - &\orr & ??c![\composite] |{| <composite> |}| - & build ??!^[composite object box] -\cr - &\orr & ??c![\xybox] |{| <pos> <decor> |}| - & package ??!^[entire \Xy-picture as object] -\cr -\noalign{\smallbreak} -% - ??w![<modifier>] - &\iss & |!| <vector> - & <object> has its reference point ??!^[shifted] by <vector> -\cr - &\orr & |!| - & <object> has the original reference point reinstated -\cr - &\orr & <add op> <size> - & change ??!^[<object> size] -\cr - &\orr & ??c![h] \orr\ ??c![i] - & <object> is ??!^[hidden], ??!^[invisible] -\cr - &\orr & |[| <shape> |]| - & <object> is given the specified ??!^[<shape>] -\cr - &\orr & ??c![[=] <shape> |]| - & ??!^[define <shape>] to reestablish ??w![current object style] -\cr - &\orr & <direction> - & set current direction for this <object> -\cr -\noalign{\smallbreak} -% - ??w![<add op>] - &\iss & |+| \orr\ |-| \orr\ |=| \orr\ |+=| \orr\ |-=| - & grow, shrink, set, grow to, shrink to -\cr -\noalign{\smallbreak} -% - ??w![<size>] - &\iss & <empty> - & ??!^[default size] -\cr - &\orr & <vector> - & size as sides of rectangle covering the <vector> -\cr -\noalign{\smallbreak} -% - ??w![<direction>] - &\iss & <diag> - & <diag>onal ??!^[direction] -\cr - &\orr & ??c![v] <vector> - & ??!^[direction] of <vector> -\cr - &\orr & ??c![q]|{| <pos> <decor> |}| - & ??!^[direction] from $p$ to $c$ after <pos> <decor> -\cr - &\orr & <direction> ??c![:] <vector> - & vector relative ??!^[to <direction>] -\cr - &\orr & <direction> |_| \orr\ <direction> |^| - & $90^\circ$ clockwise/anticlockwise ??!^[to <direction>] -\cr -% - ??w![<diag>] - &\iss & <empty> - & last used direction (not necessarily ??!^[diagonal]) -\cr - &\orr & |l|\orr|r|\orr|d|\orr|u| - & left, right, down, up ??!^[diagonal] -\cr - &\orr & |ld|\orr|rd|\orr|lu|\orr|ru| - & left/down, \dots\ ??!^[diagonal] -\cr -\noalign{\smallbreak} -% - ??w![<composite>] - &\iss & <object> - & first object is required -\cr - &\orr & <composite> |*| <object> - & add <object> to ??!^[composite object box] -% -\end{syntax} -\caption{\protect<object>s.} -??=[f.object] -\end{figure*} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - We first discuss the parser and then summarise the required methods. - The entry point to use of objects is ??c![\object] described in note - ??[finished object box]. This should always be used because it - initialises the token list and redefines |\xy@| to be |\addtotoks@| - such that we can use <pos> parser routines within the <object>! - -\paragraph*{Parsing:} - - The <object> parser |\OBJECT@| will first parse the <modifier>s, - storing the action of each in sequence on the |\toks@| token list. - When there are no more modifiers we insert ??c![\objectbox] if we have - reached the |{| otherwise we just assume that the rest of the - <object> is some kind of box construction. - - "Note": The <modifier> actions doing shifts are implemented by having - an independent vector for the shift: $|<|R_p|,|U_p|>|$ always - contains the vector from the current to the original \TeX\ reference - point; furthermore the initial $L_c$ is saved as $L_p$ such that we - can retrieve the original (\Xy-pic) reference point again. Modifying - the $p$ values is safe because all actual changes are done in a local - scope after the entire <object> is parsed and we have built the - object box (in |\OBJECT@@|). - - The <modifier>s changing the direction are executed while parsing to - make sure that the direction used when building the <object> is - right, and restored in the right sequence while evaluating the - <modifier>s afterwards. - -\DOCMODE( -\xydef@\OBJECT@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\OBJECT@}%gobble spaces - \else\ifcat A\noexpand\next \let\next@=\OBJECT@letter - \else \let\next@=\OBJECT@other \fi\fi \next@} - -\xydef@\OBJECT@letter{% - \ifx i\next \DN@ i{\addtotoks@\Invisible@true \xyFN@\OBJECT@}% - \else\ifx h\next\DN@ h{\addtotoks@\Hidden@true \xyFN@\OBJECT@}% - \else\ifx o\next\DN@ o{\xywarning@{Obsolete o modifier used}\OBJECT@shape{o}}% - \else\ifx x\next\DN@ x{\xywarning@{Obsolete x modifier used}\OBJECT@shape{}}% - \else\ifx @\next\DN@ @##1##{% -% -\xywarning@{Impossible @ (letter) should not be here!!} -% - \OBJECT@@{\dir##1}}% - \else \let\next@=\OBJECT@direction - \fi\fi\fi\fi\fi \next@} - -\xydef@\OBJECT@other{% - \ifx !\next \DN@!{\OBJECT@shift}% - \else\addPLUS@\ifx \next \DN@{\OBJECT@change}% - \else\addDASH@\ifx \next \DN@{\OBJECT@change}% - \else\addEQ@\ifx \next \DN@{\OBJECT@set}% - \else\ifx [\next %] - \DN@[##1]{\xy@{[##1]}{\OBJECT@shape{##1}}}% - \else\ifx ^\next \let\next@=\OBJECT@direction - \else\ifx _\next \let\next@=\OBJECT@direction - \else\ifx :\next \let\next@=\OBJECT@direction - \else\ifx ?\next - \DN@ ?{\xywarning@{\string? modifier used}\xyFN@\OBJECT@direction}% - \else\ifx (\next %) - \let\next@=\OBJECT@direction - \else\addAT@\ifx\next \addAT@\DN@##1##{\OBJECT@@{\dir##1}}% - \else \DN@##1##{\OBJECT@@{##1}}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} -\DOCMODE) - - |\OBJECT@@| is where we actually build the box by first - ??_[OBJ0]~saving the previous edge in case it is needed, then - ??_[OBJ1]~setting the defaults (including temporarily resetting - |\xy@| to execute in case any |\xy@|s are used internally), - ??_[OBJ2]~building the object box (which might change them) using - ??c![\objectbox] if no other command specified and setting the - $D,U,L,R$ dimensions ad required using the |\Leftness@| and - |\Upness@| methods, and finally ??_[OBJ3]~setting up the $R_p,U_p$ - dimensions (as discussed above) and applying the <modifier>s stored - in |\toks@| and dumping the modified box. - -\DOCMODE( -\xydef@\prevEdge@@{\zeroEdge} - -\xydef@\OBJECT@@#1#2{% - \expandafter\def\expandafter\prevEdge@@\expandafter{\the\Edge@c}%?*[OBJ0] - \expandafter\Edge@c\expandafter{\objectEdge}%?*[OBJ1] - \Invisible@false\Hidden@false - \def\Leftness@{.5}\def\Upness@{.5}% - \gdef\preXY@style@{}\gdef\postXY@style@{}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\relax}% - \DN@{#1}\ifx\next@\empty \DNii@{#2}%?*[OBJ2] - \ifx\nextii@\empty \DN@{\hbox\bgroup\no@}\else \let\next@=\objectbox \fi\fi - \setbox\z@=\next@{#2}\L@c=\Leftness@\wdz@ \R@c=\wdz@ \advance\R@c-\L@c - \D@c=\dp\z@ \advance\D@c\ht\z@ \U@c=\Upness@\D@c \advance\D@c-\U@c - \R@p=\z@ \L@p=\L@c \U@p=\U@c \advance\U@p-\ht\z@ \D@p=-\U@p %?*[OBJ3] - \the\toks@\toks@={}\setboxz@h{\kern\R@p \raise\U@p\boxz@}% - \checkZeroEdge@ - \dimen@=\L@c \advance\dimen@\R@c \wdz@=\dimen@ \ht\z@=\U@c \dp\z@=\D@c \boxz@ - \OBJECT@x} - -\xydef@\adjustLR@{% - \ifdim\zz@\wdz@ \L@c=\z@ \R@c=\z@ \dimen@=\Leftness@\p@ - \ifdim\dimen@<\z@ \L@c=\dimen@ \R@c=-\L@c - \else\ifdim\dimen@>\p@ \L@c=\dimen@ \advance\L@c-\p@ \R@c=-\L@c \fi\fi - \else \L@c=\Leftness@\wdz@ \R@c=\wdz@ \advance\R@c-\L@c \fi} - -\xydef@\adjustUD@{\dimen@=\ht\z@ \advance\dimen@\dp\z@ - \ifdim\zz@\dimen@ \U@c=\z@ \D@c=\z@ \dimen@=\Upness@\p@ - \ifdim\dimen@<\z@ \U@c=\dimen@ \D@c=-\L@c - \else\ifdim\dimen@>\p@ \U@c=\dimen@ \advance\U@c-\p@ \D@c=-\L@c \fi\fi - \else \D@c=\dimen@ \U@c=\Upness@\dimen@ \advance\D@c-\U@c \fi} - -\def\checkZeroEdge@{% - \DN@{}% - \ifdim\zz@\L@c \ifdim\zz@\R@c \ifdim\zz@\U@c \ifdim\zz@\D@c - \DN@{\Edge@c={\zeroEdge}}\fi\fi\fi\fi - \next@} -\DOCMODE) - - As an optimisation |\OBJECT@@| sets the edge type of all zero-sized - objects to ??c![\zeroEdge]. - - |\OBJECT@x| cleans up the object by ensuring that it defines all the - required methods: Essentially it terminates the box with the sequence - ``|}| |\def\Drop@@{|\dots|}| |\def\Connect@@{|\dots|}| |\D@c=|\dots\ - |\U@c=|\dots\ |\L@c=|\dots\ |\R@c=|\dots\ | \Invisible@|\dots - |\Hidden@|\dots\ |\def\Leftness@{|\dots|}| |\def\Upness@{|\dots|}|'' - where each \dots\ is set to the method defined within the object - creation environment (started with |\hbox{| in |\OBJECT@@| or - possibly elsewhere). We use rather heavy expansion hacking with - |\toks@| to create the sequence so please look the other - way\dots\smiley - -\DOCMODE( -\xydef@\OBJECT@x{\toks@={\egroup\def\Drop@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\Drop@@}\def\Connect@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\Connect@@}}% - \edef\tmp@{\D@c=\the\D@c \U@c=\the\U@c \L@c=\the\L@c \R@c=\the\R@c - \Edge@c={\expandafter\noexpand\the\Edge@c}% - \ifInvisible@\noexpand\Invisible@true\else\noexpand\Invisible@false\fi - \ifHidden@\noexpand\Hidden@true\else\noexpand\Hidden@false\fi - \def\noexpand\Leftness@{\Leftness@}\def\noexpand\Upness@{\Upness@}}% - \expandafter\addtotoks@\expandafter{\tmp@}\the\toks@} -\DOCMODE) - -\paragraph*{Methods:} -??w[object methods] - - In addition to the ``current object properties'' for $c$ - (\cf~??[basics.state]) the following methods are set up by all - objects: - -\begin{defs} - |\Invisible@true| or |\Invisible@false| & whether object is ??!^[invisible]\cr - |\Hidden@true| or |\Hidden@false| & whether object is ??!^[hidden]\cr - |\def\Leftness@{|<factor>|}| & the desired $L/(L+R)$\cr - |\def\Upness@{|<factor>|}| & the desired $U/(D+U)$\cr - |\def\Drop@@{|\dots|}| & code that outputs the object, assuming |\boxz@| is - of zero size and has the object displaced $|<|X|,|Y|>|$ - inside---usually just |\def|'d to |\styledboxz@|\cr - |\def\Connect@@{|\dots|}| & code that builds a connection from $p$ to $c$, - assuming |\last|\-|object|\-|box@| contains the object\cr -\end{defs} - - It is important to |\def| and not |\let| the last four methods since - the \TeX\-nique used in |\OBJECT@x| (and elsewhere) of passing them - to surrounding scopes depends on it. The |\Connect@@| method should - in turn setup several submethods as described in detail in - ??[algo.connection]. - - Suitable defaults are set up by |\OBJECT@@| above which is why any - box generating command can be used to construct objects as explained - in note ??[build default] below. - - Here are the declarations: - -\DOCMODE( -\xynew@{if}\ifInvisible@ -\xynew@{if}\ifHidden@ - -\xydef@\Leftness@{} -\xydef@\Upness@{} - -\xydef@\Drop@@{\styledboxz@} -\xydef@\Connect@@{} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notes} -% -\note??=[build default] -% - An <object> is built using |\object|\-|box|??c[\objectbox] - |{|<text>|}|. |\object|\-|box| is initially defined as -% -\begin{code} -\def\objectbox#1{% - \hbox{$\objectstyle{#1}$}} -\let\objectstyle=\displaystyle -\end{code} -\displaycode -% - but may be redefined by options or the user. The <text> should thus - be in the mode required by the ??c![\objectbox] command---with the - default |\objectbox| shown above it should be in math mode. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - Actually it is - -\DOCMODE( -\xydef@\objectbox#1{\hbox{$\m@th\objectstyle{#1}$}} - -\xylet@\objectstyle=\textstyle -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[build box] -% - An <object> built from a \TeX\ box with dimensions $w*(h+d)$ will - have $L_c=R_c=w/2$, $U_c=D_c=(h+d)/2$, thus initially be equipped - with the adjustment |!C| (see note~??[shifted]). In particular: in - order to get the reference point on the (center of) the base line of - the original <\TeX~box> then you should use the <modifier> |!|; to - get the reference point identical to the \TeX\ reference point use - the modifier |!!L|. - - \TeX\-nical remark: Any macro that expands to something that starts - with a <box> may be used as a <\TeX~box> here. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - This is done by the parsing above. -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[finished object box] -% - Takes an object and constructs it, building a box; it is then - processed according to the preceeding modifiers. This form makes it - possible to use any <object> as a \TeX\ box (even outside of - \Xy-pictures) because a finished object is always also a box. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This macro is the main entry point to the <object> parser. It - furthermore initialises the modifier list and the previous object - edge. - -\DOCMODE( -%\xydef@\object{\hbox\bgroup\object@} -\xydef@\object{\hbox\bgroup\resetStyle@\object@} - -\xydef@\object@{% - \edef\next@{={\DirectionfromtheDirection@}}\expandafter\toks@\next@ -% \resetStyle@\plainxy@ \xyFN@\OBJECT@} - \plainxy@ \xyFN@\OBJECT@} -\DOCMODE) - - The initial value of |\toks@| <modifier> list is explained in - note~??[direction] below. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[composite object box] -% - Several <object>s can be combined into a single object using the - special command ??c![\composite] with a list of the desired objects - separated with |*|s as the argument. The resulting box (and object) - is the least rectangle enclosing all the included objects. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - First we collect all the objects smash on top of each other in box0 - while we maintain the maximal extents in $(DULR)_p$. Then we reset - box0 to contain the same but with the right spacing around. - -\DOCMODE( -\xydef@\composite#1#{\hbox\bgroup\composite@{#1}} - -\xydef@\composite@#1#2{% - \DN@{#1}\ifx\next@\empty\else\xywarning@{no variants of - \string\composite\space allowed}\fi - \global\setbox9=\hbox\bgroup - \D@p=-\maxdimen \U@p=-\maxdimen \L@p=-\maxdimen \R@p=-\maxdimen - \xyFN@\composite@i#2@} - -\xydef@\composite@i{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\composite@i}%gobble spaces - \else\ifx *\next \DN@ *{\xyFN@\composite@i}% - \else\ifx @\next \DN@ @{\composite@x}% - \xyerror@{<composite> object expected}{}\czeroEdge@ - \else \DN@{\composite@ii}\fi\fi\fi \next@} - -\xydef@\composite@ii#1#{\composite@iii{#1}} - -\xydef@\composite@iii#1#2{% - \setbox\z@=\object#1{#2}% - \ifInvisible@ \setboxz@h{}\else - \setboxz@h{\kern-\L@c \boxz@}\ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ {\Drop@@}\fi - \ifHidden@\else - \ifdim\U@p<\U@c \U@p=\U@c \fi \ifdim\D@p<\D@c \D@p=\D@c \fi - \ifdim\R@p<\R@c \R@p=\R@c \fi \ifdim\L@p<\L@c \L@p=\L@c \fi - \fi - \xyFN@\composite@iv} - -\xydef@\composite@iv{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\composite@iv}%gobble spaces - \else \ifx @\next \DN@ @{\composite@x}% - \else \let\next@=\composite@i \fi\fi \next@} - -\xydef@\composite@x{% - \edef\tmp@{\egroup - \D@c=\the\D@p \U@c=\the\U@p \L@c=\the\L@p \R@c=\the\R@p}\tmp@ - \setboxz@h{\kern\L@c\box9}\ht\z@=\U@c \dp\z@=\D@c - \dimen@=\L@c \advance\dimen@\R@c \wdz@=\dimen@ - \Edge@c={\rectangleEdge}\computeLeftUpness@ \boxz@ - \OBJECT@x} - -\xydef@\computeLeftUpness@{% - \dimen@=\L@c \advance\dimen@\R@c - \ifdim\zz@\dimen@ \def\Connect@@{\straight@{\dottedSpread@\jot}}% - \ifdim\zz@\L@c\else - \DN@{\zeroEdge}\expandafter\DNii@\expandafter{\the\Edge@c}% - \ifx\next@\nextii@\Edge@c={\rectangleEdge}\fi\fi - \else \quotient@\Leftness@\L@c\dimen@ \fi - \dimen@=\U@c \advance\dimen@\D@c - \ifdim\zz@\dimen@ \def\Connect@@{\straight@{\dottedSpread@\jot}}% - \ifdim\zz@\U@c\else - \DN@{\zeroEdge}\expandafter\DNii@\expandafter{\the\Edge@c}% - \ifx\next@\nextii@\Edge@c={\rectangleEdge}\fi\fi - \else \quotient@\Upness@\U@c\dimen@ \fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note ??=[entire \Xy-picture as object] -% - Take an entire \Xy-picture and wrap it up as a box as described - in~\S??[basics.pos]. Makes nesting of \Xy-pictures possible: the - inner picture will have its own zero point which will be its - reference point "in" the outer picture when it is placed there. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This is simple exploiting the fact that |\endxy| actually sets up the - extents of the `object': - -\DOCMODE( -\xydef@\xybox#1{\xy#1\endxy \Edge@c={\rectangleEdge}\computeLeftUpness@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[shifted] -% - An object is "shifted" a <vector> by moving the point inside it which - will be used as the reference point. This effectively pushes the - object the same amount in the opposite direction. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Shifting uses the special value of $R_p$ and $U_p$ used while - evalutaing the <modifier>s. The fact that shifts like |!C| refer to - the initial object's size means that we should parse the <vector> - such that its actions happen at modification time\dots hence - |\xytotoks@| is used to delay execution. - -\DOCMODE( -\xydef@\OBJECT@shift{% - \let\xy@=\xytotoks@ \afterVECTORorEMPTY - {\OBJECT@shift@}% - {\addtotoks@{\X@c=-\L@c \advance\X@c\R@p \advance\X@c\L@p \Y@c=\U@p}% - \OBJECT@shift@}} - -\xydef@\OBJECT@shift@{% - \addtotoks@{\advance\U@p-\Y@c - \advance\L@c\X@c \advance\R@c-\X@c \advance\D@c\Y@c \advance\U@c-\Y@c - \computeLeftUpness@}% - \let\xy@=\oxy@ \xyFN@\OBJECT@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{exercise} - What is the difference between the <pos>itions |0*{a}!DR| and - |0*!DR{a}|? -\answertext{The first typesets ``$a$'' centered around |0| and then moves $c$ - to the lower right corner, the second typesets ``$a$'' above the |0| - point and does not change $c$. With a ``$+$'' at |0| they look like - this: $\vcenter{\xy*{+}*{a}!DR\endxy}$ and - $\vcenter{\xy*{+}*!DR{a}\endxy}$.}% -\end{exercise} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[<object> size]??=[change size]??=[<size>]??=[default size] -% - A <size> is a pair $|<|W|,|H|>|$ of the width and height of a - rectangle. When given as a <vector> these are just the vector - coordinates, \ie, the <vector> starts in the lower left corner and - ends in the upper right corner. The possible <add op>erations that - can be performed are described in the following table. -$$ -\begin{array}{\otherbar c\otherbar l\otherbar} -\hline - \hbox{<add op>} & \hbox{description} \\ -\hline - |+| & \hbox{grow} \\ - |-| & \hbox{shrink} \\ - |=| & \hbox{set to} \\ - |+=| & \hbox{grow to at least} \\ - |-=| & \hbox{shrink to at most} \\ -\hline -\end{array} -$$ - In each case the <vector> may be omitted which invokes the ``default - size'' for the particular <add op>: -$$ -\begin{array}{\otherbar c\otherbar l\otherbar} -\hline - \hbox{<add op>} & \hbox{default}\\ -\hline - |+| & |+<|2*"objectmargin"|>| \\ - |-| & |-<|2*"objectmargin"|>| \\ - |=| & |=<|"objectwidth"|,|"objectheight"|>| \\ - |+=| & |+=<|\max(L_c+R_c,D_c+U_c)|>| \\ - |-=| & |-=<|\min(L_c+R_c,D_c+U_c)|>| \\ -\hline -\end{array} -$$ - The defaults for the first three are set with the commands -% -\begin{defs1} - ??c![\objectmargin] <add op> |{|<dimen>|}| \cr - ??c![\objectwidth] <add op> |{|<dimen>|}| \cr - ??c![\objectheight] <add op> |{|<dimen>|}| \cr -\end{defs1} -\noindent\unskip -% - where <add op> is interpreted in the same way as above. - -\DOCMODE( -\xylet@\objectmargin@=\jot -\xylet@\objectwidth@=\z@ -\xylet@\objectheight@=\z@ - -\xydef@\objectmargin{\afterADDOP{\Addop@@\objectmargin@}} -\xydef@\objectwidth{\afterADDOP{\Addop@@\objectwidth@}} -\xydef@\objectheight{\afterADDOP{\Addop@@\objectheight@}} -\DOCMODE) - - The defaults for |+=|/|-=| are such that the resulting object will be - the smallest containing/largest contained square. - -\begin{exercise} - How are the objects typeset by the <pos>itions ``|*+UR{\sum}|'' and - ``|*+DL{\sum}|'' enlarged? -\answertext{They have the outlines - $$\xy*+UR{\sum}*\frm{-}*{+}\endxy - \quad\textrm{and}\quad - \xy*+DL{\sum}*\frm{-}*{+}\endxy$$ - because the first is enlarged by the positive offset to the upper - right corner and the second by the negative offset to the lower left - corner.} -\end{exercise} - - \BUG: Currently changing the size of a circular object is buggy---it - is changed as if it is a rectangle and then the change to the $R$ - parameter affects the circle. This should be fixed probably by a - generalisation of the |o| shape to be ovals or ellipses with - horizontal/vertical axes. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The three cases distinguished by the parsing above are handled - similarly: they insert the parsed/default vector into $X,Y$ in the - modifications and then perform the operation at that time using the - |\xytotoks@| trick described in note~??[shifted]: - -\DOCMODE( -\xydef@\OBJECT@change{% - \afterADDOP{% - \addEQ@\ifx \next - \addtotoks@{\X@c=\D@c \advance\X@c\U@c \Y@c=\L@c \advance\Y@c\R@c}% - \else - \addtotoks@{\X@c=\objectmargin@ \advance\X@c\X@c \Y@c=\X@c}% - \fi - \let\xy@=\xytotoks@ - \afterVECTORorEMPTY\OBJECT@change@\OBJECT@change@}} - -\xydef@\OBJECT@set{% - \afterADDOP{% - \let\xy@=\xytotoks@ \afterVECTORorEMPTY\OBJECT@change@ - {\addtotoks@{\X@c=\objectwidth@ \Y@c=\objectheight@}\OBJECT@change@}}} -\DOCMODE) - - The real work is done by the following command: a hack using - expansion tricks to make use of the |\Addop@@| known now on the - values in $X,Y$ at modification time. - -\DOCMODE( -\xydef@\OBJECT@change@{% - \addtotoks@{\advance\R@c\L@c \advance\R@p-\L@c \let\tmp@=\R@c}% - \expandafter\addtotoks@\expandafter{\Addop@@\tmp@\X@c\R@c=\tmp@ - \L@c=\Leftness@\R@c \advance\R@p\L@c \advance\R@c-\L@c}% - \addtotoks@{\advance\D@c\U@c \let\tmp@=\D@c}% - \expandafter\addtotoks@\expandafter{\Addop@@\tmp@\Y@c\D@c=\tmp@ - \U@c=\Upness@\D@c \advance\D@c-\U@c}% - \let\xy@=\oxy@ \xyFN@\OBJECT@} -\DOCMODE) - - It is clearly crucial that |\Addop@@| expands to its action - immediately! Also note that enlarging changes the initial box offset - in the horizontal direction only, \ie, $R_p$. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Finally the code to interpret an <add op> used above: This - simply parses it and creates a macro |\Addop@@| that takes a - control sequence and a parameter <dimen> as arguments, and - expands directly to commands that perform the <add op> of the - <dimen> on the control sequence: -$$ -\begin{array}{\otherbar c\otherbar l\otherbar} -\hline - \hbox{<add op>} & \hbox{effect of |\Addop@@| "cs" $D$} \\ -\hline - |+| & "cs" \from "cs"+D \\ - |-| & "cs" \from "cs"-D \\ - |=| & "cs" \from D \\ - |+=| & "cs" \from \left\{ - \begin{array}{cc} D & \hbox{if $D\le"cs"$} \\ - "cs" & \hbox{if $D\gt"cs"$} \end{array}\right. - \\[1pt] - |-=| & "cs" \from \left\{ - \begin{array}{cc} D & \hbox{if $D\ge"cs"$} \\ - "cs" & \hbox{if $D\lt"cs"$} \end{array}\right. - \\[1pt] -\hline -\end{array} -$$ - Furthermore ??c![\afterADDOP] leaves the |\next| token set to |=| in - the last three cases only (this is used to determine the right - default value in the size changes above). - - The ??c![\afterADDOP] macro is relatively simple because <add op>s - don't nest: - -\DOCMODE( -\xydef@\afterADDOP#1{\def\afterADDOP@{#1}\xyFN@\ADDOP@} - -\xylet@\afterADDOP@=\empty - -\xydef@\ADDOP@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\ADDOP@}%gobble spaces - \else\addPLUS@\ifx \next \addPLUS@\DN@{\xyFN@\ADDOP@plus}% - \else\addDASH@\ifx \next \addDASH@\DN@{\xyFN@\ADDOP@minus}% - \else\addEQ@\ifx \next - \addEQ@\DN@{\def\Addop@@{\Addop@0+=}\afterADDOP@}% - \else - \DN@{\def\Addop@@{\Addop@0+=}\afterADDOP@}% - \fi\fi\fi\fi \next@} - -\xydef@\ADDOP@plus{% - \addEQ@\ifx \next - \addEQ@\DN@{\def\Addop@@{\Addop@0+<}\afterADDOP@}% - \else - \DN@{\def\Addop@@{\Addop@1+=}\afterADDOP@}% - \fi \next@} - -\xydef@\ADDOP@minus{% - \addEQ@\ifx \next - \addEQ@\DN@{\def\Addop@@{\Addop@0+>}\afterADDOP@}% - \else - \DN@{\def\Addop@@{\Addop@1-=}\afterADDOP@}% - \fi \next@} -\DOCMODE) - - The work is done by the general |\Addop@| |{|$f$|}| |{|$\pm$|}| - |{|$\bowtie$|}| |{|"cs"|}| $D$ that defines -$$ -"cs" \equiv \left\{ - \begin{array}{ll} - f*"cs"~{\pm}~D & \hbox{if $\lnot ((f*"cs"~{\pm}~D)~{\bowtie}~D)$} \\ - "cs" & \hbox{otherwise} \end{array}\right. -$$ - and also leaves the dimension in |\dimen@|. - -\DOCMODE( -\xydef@\Addop@#1#2#3#4#5{% - \dimen@=#4\relax \edef#4{\the\dimen@}% - \dimen@=#1\dimen@ \advance\dimen@#2#5\relax %\advance\dimen@ 1sp %HACK - \ifdim\dimen@#3#4\else \edef#4{\the\dimen@}\fi - \ifx\xy@\xyinitial@\else \DN@##1{\xy@@{\edef#4{##1}\checkZeroEdge@}}% - \expandafter\next@\expandafter{#4}\fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[hidden] -% - A "hidden" object will be typeset but hidden from \Xy-pic in that it - won't affect the size of the entire picture as discussed - in~\S??[basics.pos]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - This is handled by the |\ifHidden@| conditional allocated with the - methods. -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[invisible] -% - An "invisible" object will be treated completely normal except that - it won't be typeset, \ie, \Xy-pic will behave as if it was. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - This is handled by the |\ifInvisible@| conditional allocated with the - methods. -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[<shape>] -% - Setting the "shape" of an object forces the shape of its edge to be - as indicated. The kernel provides three shapes that change the edge, - namely ??C![.], ??C![], and ??C![o], corresponding to the outlines -$$ -\let\objectstyle=\scriptstyle -\xy*{*}\endxy -\quad -\textrm{,} -\quad -\xy(0,0).(-10,-4).(15,7)*\frm{-}="box"*{*}+0; - "box"+L*{}**@{.}?*{L}, - "box"+R*{}**@{.}?*{R}, - "box"+D*{}**@{.}?*{D}, - "box"+U*{}**@{.}?*{U} -\endxy -\quad -\textrm{, and} -\quad -\xy*[o]=<40pt>{*}="box"*\cir{}+0; - "box"+L*{}**@{.}?*{L}, - "box"+R*{}**@{.}?*{R}, - "box"+D*{}**@{.}?*{D}, - "box"+U*{}**@{.}?*{U} -\endxy -$$ - where the $*$ denotes the point of the reference position in the - object (the first is a point). Extensions can provide more shapes, - however, all shapes set the extent dimensions $L$, $R$, $D$, - and $U$. - - The default shape for objects is ??C![] and for plain coordinates it - is ??C![.]. - -\DOCMODE( -\xydef@\objectEdge{\rectangleEdge} -\DOCMODE) - - Furthermore the <shape>s ??C![r], ??C![l], ??C![u], and ??C![d], are - defined for convenience to adjust the object to the indicated side by - setting the reference point such that the reference point is the same - distance from the opposite of the indicated edge and the two - neighbour edges but never closer to the indicated side than the - opposite edge, \eg, the object |[r]\hbox{Wide text}| has reference - point at the $*$ in $\xy*[r]\hbox{Wide text}*\frm{-}*{*}\endxy$ but - the object |[d]\hbox{Wide text}| has reference - point at the $*$ in $\xy*[d]\hbox{Wide text}*\frm{-}*{*}\endxy$. - Finally, ??C![c] puts the reference point at the center. - -\DOCMODE( -\xydefcsname@{shape [r]}{\advance\U@p\D@c \centerobject@ - \ifdim\L@c>\D@c - \advance\R@c\L@c \L@c=.5\U@c \advance\L@c.5\D@c \advance\R@c-\L@c \fi - \advance\U@p-\D@c} -\xydefcsname@{shape [l]}{\advance\U@p\D@c \centerobject@ - \ifdim\L@c>\D@c - \advance\L@c\R@c \R@c=.5\U@c \advance\R@c.5\D@c \advance\L@c-\R@c \fi - \advance\U@p-\D@c} -\xydefcsname@{shape [u]}{\advance\U@p\D@c \centerobject@ - \ifdim\D@c>\L@c - \advance\U@c\D@c \D@c=.5\L@c \advance\D@c.5\R@c \advance\U@c-\D@c \fi - \advance\U@p-\D@c} -\xydefcsname@{shape [d]}{\advance\U@p\D@c \centerobject@ - \ifdim\D@c>\L@c - \advance\D@c\U@c \U@c=.5\L@c \advance\U@c.5\R@c \advance\D@c-\U@c \fi - \advance\U@p-\D@c} -\xydefcsname@{shape [c]}{\advance\U@p\D@c \centerobject@ \advance\U@p-\D@c} - -\xydef@\centerobject@{% - \advance\D@c\U@c \D@c=.5\D@c \U@c=\D@c \advance\L@c\R@c \L@c=.5\L@c \R@c=\L@c} -\DOCMODE) - - \NOTE: Extensions can add new <shape> object <modifier>s which are - then called <style>s. These will always be either of the form - |[|<keyword>|]| or |[|<character> <argument>|]|. Some of these - <style>s do other things than set the edge of the object. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - A ``simple shape'' is just a control sequence |\shape [|<shape>|]| - setting the appropriate edge. When such a |[|<shape>|]| modifier is - encountered then we expand this control sequence onto the modifier - queue, unless a control sequence |\style [|<shape>|]| exists: then - that is expected to do it (and whatever else is required). - -\DOCMODE( -\xydef@\OBJECT@shape#1{\DN@{shape [#1]}% - \expandafter\let\expandafter\nextii@\csname\codeof\next@\endcsname - \ifx\nextii@\relax\DN@{style [#1]}% - \expandafter\let\expandafter\nextii@\csname\codeof\next@\endcsname - \ifx\nextii@\relax \DN@{\OBJECT@shapei[#1]}% - \else\DN@{\nextii@\xyFN@\OBJECT@}\fi - \else \expandafter\addtotoks@\expandafter{\nextii@}% - \DN@{\xyFN@\OBJECT@}% - \fi \next@} - -\xydefcsname@{shape []}{\the\Edge@c5\relax}% -\xydefcsname@{shape [Outer]}{\the\Edge@c5\relax}% -\xydefcsname@{shape [Inner]}{\the\Edge@c4\relax}% -\xydefcsname@{shape [o]}{\Edge@c={\circleEdge}\the\Edge@c5\relax - \Edge@c={\circleEdge}\def\prevEdge@@{\circleEdge}} -\xydefcsname@{shape [.]}{\czeroEdge@} -\DOCMODE) - - Add more simple shapes by defining more commands like these and - proceed with coding the |\|\dots|Edge| command as described - in~\S??[algo.edge]. - - Alternatively it is a ``complex shape'' of which none are defined in - the kernel but some options like more variation\dots It is - characterised by its first token and the rest of the contents of the - ??C![]s is the argument (remember: no |{}[]| characters!); it is - searched for as control sequence |\[|<shape>|...]| overridden - in the same way by |\*stylechar@|<shape>|@|. - -\DOCMODE( -\def\OBJECT@shapei[#1#2]{\DN@{shape [#1...]}% - \expandafter\let\expandafter\next\csname\codeof\next@\endcsname - \ifx\next\relax\DN@{*stylechar@#1@}% - \expandafter\let\expandafter\next\csname\codeof\next@\endcsname - \ifx\next\relax\DNii@{shape [#1#2]}% - \xywarning@{illegal [<shape>] ignored: \codeof\nextii@\space not defined}% - \DN@{\xyFN@\OBJECT@}% - \else% Delete this: \expandafter\addtotoks@\expandafter{\next{#2}}% - \DN@{\next{#2}\xyFN@\OBJECT@}% - \fi - \else - -\expandafter\addtotoks@\expandafter{\next{#2}}\DN@{\next{#2}\xyFN@\OBJECT@}% - \fi \next@} -\DOCMODE) - - \BUG: The above is messy! - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[define <shape>] -% - While typesetting an object, some of the properties are considered - part of the `??w![current object style]??w[style]'. Initially this - means nothing but some of the <style>s defined by extensions have - this status, \eg, colours |[red]|, |[blue]| say, using the |xycolor| - extension, or varying the width of lines using |xyline|. Such styles - are processed "left-to-right"; for example, -$$ -|*[red][green][=NEW][blue]{A}| -$$ - will typeset a blue |A| and define |[NEW]| to set the colour to green - (all provided that |xycolor| has been loaded, of course). - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The method of requesting a special effect is via the <shape> - modifiers. However the code required for implementation is quite - different. In particular it must allow for the different ways in - which the <driver> may implement the |\special|s required to - activate, and turn off, the effect. Another difficulty is that the - <style> applies also to nested sub-parts of any <object>. This means - that the code cannot be wholly delayed until after the <object> has - been constructed. - - Usually some value has to be stored, so as to be accessible to - sub-parts, though the |\special| commands cannot be fully constructed - until the <object> is completely known and ready to be |\Drop@@| or - |\Connect@@|'ed. - - Finally, the overhead in using |\special| commands can be quite high - with some |dvi|-drivers. Thus it is not best that every <style> - request generate a |\special| command; indeed {\it two} |\special| - commands, since each style-change also requires a command to revert - to the previous style, after the change is no longer applicable. - - Thus, as with <shape>s, all the style-change requests are stored - until the <object> is ready to be |\Drop@@|'ed. This also helps with - getting the sequencing correct when later requests compound on, or - override, earlier requests. - - When the <style> requests are processed, after the <object> has been - constructed, information of the form <control-word>|{|<data>|}| is - added to a global list called |\preXY@style@|. Similar information is - added to another global list |\postXY@style@|, for the purpose of - reverting the style parameters, within the <driver>-file, to their - previous values prior to the current <object>. - - Both lists are initially <empty> at the start of an <object>. The - contents of these lists are processed when the macros - |\xypre@Style@@| and |\xypost@Style@@| are encountered in the - expansion of |\styledboxz@|. - -\DOCMODE( -\xydef@\preXY@style@{} -\xydef@\postXY@style@{} - -\xydef@\resetStyle@{\gdef\preXY@style@{}\gdef\postXY@style@{}} -\DOCMODE) - - The <data> contains the code needed to implement the requested - style-change, with the particular <driver> being used. - - The <control-word> is a macro whose expansion could be fixed, or - could depend upon what other style-change requests are made for this - <object>. Its purpose is to decide whether or not the <data> is - actually required. If so, it is added to the token-list - |\styletoks@| for later use. - - Whether the <control-word>|{|<data>|}| tokens are prepended or - appended to the global lists depends upon the nature of the - style-change requested. For example, with |*[red][green]|<object> - the information |\|<set-color>|{|<green>|}| could be appended to - |\preXY@style@|, with |\|<revert-to-color>|{|<red>|}| prepended to - |\postXY@style@|. Then the dvi-output would set the color to <red> - then <green> and restore it first to <red> then <black>. - - \TODO: A more sophisticated implementation could instead prepend - |\|<set-color>|{|<green>|}| to |\preXY@style@| and append - |\|<revert-to-color>|{|<red>|}| to |\postXY@style@|. Now the first - |\|<set-color> encountered adds its <data> to |\styletoks@| then - rebinds |\|<set-color> to |\eat@|, to ignore subsequent occurrences. - Similarly |\|<revert-to-color> is rebound so that only the is - restoration to <black> is retained. - - This latter strategy is preferred when the overhead for a |\special| - command is high, within the <driver>'s output. Indeed the \PS\ - back-end is even more efficient. Since \PS\ is itself a programming - language, the <data> can be just the \PS\ code. A single |\special| - command is sufficient to accommodate {\it all\/} the style-changes - for an individual <object>. This is achieved by rebinding - |\xydoprestyles@@| and |\xydopoststyles@@| to include the <data> - within an appropriately prepared |\special| command. - -\DOCMODE( -\xynew@{toks}{\styletoks@} -\xydef@\addtostyletoks@#1{% - \expandafter\styletoks@\expandafter{\the\styletoks@#1}} -\DOCMODE) - - The <data> to be used is collected in the token-list |\styletoks@|. - If this is <empty> for an <object> then the style processing is - skipped completely. For safety, in case multiple occurences of - |\xypre@Style@| have somehow slipped into the token stream, these and - |\xypost@Style@@| are bound to |\relax| until the <object> is - finished. Indeed |\xypost@Style@@| is always bound to |\relax| unless - |\styletoks@| is non-empty. - -\DOCMODE( -\xydef@\styledboxz@{% -% -%\W@{STYLED BOX:}% -%\W@{: PRE={\meaning\xypre@Style@@}}% -% - \xypre@Style@@ -% -%{\expandafter\DN@\expandafter{\the\styletoks@}\W@{: STYLTOKS={\codeof\next@}}}% -% - \boxz@ -% -%\W@{: POST={\meaning\xypost@Style@@}}% -% - \xypost@Style@@} - -\xydef@\xypre@Style@{\styletoks@={}\saveXyStyle@\preXY@style@ - \expandafter\DN@\expandafter{\the\styletoks@}% - \ifx\next@\empty \DN@{\let\xypre@Style@@=\relax - \let\xypost@Style@@=\relax \xypre@skipStyle@}% - \else - \let\xypre@Style@@=\relax \let\xypost@Style@@=\xypost@Style@ - \DN@{\expandafter\xydoprestyles@\expandafter{\the\styletoks@}}% - \fi \next@ } - -\xydef@\xypost@Style@{\styletoks@={}\postXY@style@ - \expandafter\xydopoststyles@\expandafter{\the\styletoks@}% - \let\xypost@Style@@=\relax \let\xypre@Style@@=\xypre@Style@ } - -\xydef@\xypre@skipStyle@#1\xypost@Style@@{#1\relax - \let\xypre@Style@@=\xypre@Style@ } - -\xydef@\xydoprestyles@@{\literal@} -\xydef@\xydopoststyles@@{\literal@} -\xylet@\xydoprestyles@=\xydoprestyles@@ -\xylet@\xydopoststyles@=\xydopoststyles@@ -\DOCMODE) - - Some extensions use the following macros to add style <data> to the - global macros. Here code is added sequentially to |\preXY@style@| so - that it is acted upon in the order of occurrence (FIFO) of the - <shape> modifiers. Code is added to |\postXY@style@| in reverse order - (LIFO), so that each addition to |\preXY@style@| can be closed off, - if necessary, in correctly nested sequence. - -\DOCMODE( -\xydef@\modXYstyle@{% - \ifx\xy@style@\empty\resetStyle@\fi \checkXyStyle@ - \expandafter\expandafter\expandafter\DN@ - \expandafter\expandafter\expandafter{\preXYstyle@@}% - \ifx\next@\empty\else\DN@{\modXYstyle@@}\fi \next@ } - -\xydef@\modXYstyle@@{% - \DN@##1{\expandafter\def\expandafter\tmp@\expandafter{##1}}% - \expandafter\next@\expandafter{\preStyle@@}% - \DN@##1{\expandafter\gdef\expandafter\preXY@style@\expandafter{% - \preXY@style@ ##1}}\expandafter\next@\expandafter{\tmp@}% - \DN@##1{\expandafter\def\expandafter\tmp@\expandafter{##1}}% - \expandafter\next@\expandafter{\postStyle@@}% - \DN@##1{\expandafter\gdef\expandafter\postXY@style@\expandafter{% - \tmp@ ##1}}\expandafter\next@\expandafter{\postXY@style@}} - -\xydef@\xy@style@{} -\xydef@\checkXyStyle@{\ifx\xy@style@\empty\resetStyle@\fi - \let\xy@style@=\relax} -\DOCMODE) - - The |\preStyle@| and |\postStyle@| temporarily hold style <data>. - The macro |\preXYstyle@@| is used to check whether there is any - <data> to process. Normally this is just an alias for |\preStyle@@|, - but some back-ends may use the two control-names differently. - -\DOCMODE( -\xydef@\preStyle@@{} -\xydef@\postStyle@@{} -\xydef@\preXYstyle@@{\relax} - -\xydef@\loadxystyle@{% - \let\xypre@Style@@=\xypre@Style@ \def\preXYstyle@@{\preStyle@@}} - -\loadxystyle@ -\DOCMODE) - - Initially styles are activated but can be suppressed using - |\Unloadstyle@|. - -\DOCMODE( -\xydef@\Unloadstyle@{% - \let\xypre@Style@@=\relax \let\xypost@Style@@=\relax - \def\preXYstyle@@{\relax}} -\DOCMODE) - - Global macros are used, so that the same styles can be reused by - successive objects without having to re-interpret <shape> modifiers, - as described next. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Saving styles:\ } - - Once specified for an <object>, the collection of <style>s can be - assigned a name, using ??c![[=]<word>|]|. Then |[|<word>|]| becomes a - new <style>, suitable for use with the same or other <objects>s. Use - a single <word> built from ordinary letters. If |[|<word>|]| already - had meaning the new definition will still be imposed, but the - following type of warning will be issued: -$$ -|Xy-pic Warning: Redefining style [|<word>|]| -$$ - The latter warning will appear if the definition occurs within an - ??c![\xymatrix]. This is perfectly normal, being a consequence of the - way that the matrix code is handled. Similarly the message may appear - several times if the style definition is made within an ??c![\ar]. - -\begin{code} - \setbox0=\hbox{% - \xy\drop[OrangeRed][=A]{}\endxy} -\end{code} - -\noindent - The following illustrates how to avoid these messages by defining the - style without typesetting anything. - -\displaycode - - \NOTE{~1:} The current colour is regarded as part of the style for - this purpose. - - \NOTE{~2:} Such namings are global in scope. They are intended to - allow a consistent style to be easily maintained between various - pictures and diagrams within the same document. - -\DOCMODE( -\xydefcsname@{shape [=...]}#1{\checkXyStyle@ \addtotoks@{\xynamestyle@{#1}}} - -\xydef@\xynamestyle@#1{\checkXyStyle@ - \expandafter\DNii@\expandafter{\csname shape [#1]\endcsname}% - \expandafter\ifx\nextii@\relax %%\xywarning@{Defining new style [#1]}% - \else\xywarning@{Redefining style [#1]}\fi - \expandafter\xynamestyle@@\csname shape [#1]\endcsname } - -\xydef@\xynamestyle@@#1{% - \expandafter\def\expandafter\tmp@\expandafter{\preXY@style@}% - \DN@##1{\def\tmp@{\checkXyStyle@\gdef\preXY@style@{##1}}}% - \expandafter\next@\expandafter{\preXY@style@}% - \DN@##1{\expandafter\gdef\expandafter#1\expandafter{\tmp@ - \gdef\postXY@style@{##1}}}% - \expandafter\next@\expandafter{\postXY@style@}\DN@{}} -\DOCMODE) - - If the same <style> is intended for several <object>s occurring - in succession, the |[||*]| <modifier> can be used on the later - <object>s. This only works when |[||*]| precedes any other <style> - modifiers; it is local in scope, recovering the last <style>s used - at the same level of \TeX\ grouping. - -\DOCMODE( -\xydef@\prevXypreStyle@@{} -\xydef@\prevXypostStyle@@{} - -\xydef@\saveXyStyle@{\expandafter - \def\expandafter\prevXypreStyle@@\expandafter{\preXY@style@}% - \expandafter\def\expandafter\prevXypostStyle@@\expandafter{% - \postXY@style@}} - -\xydef@\recoverXyStyle@{\expandafter - \gdef\expandafter\preXY@style@\expandafter{\prevXypreStyle@@}% - \expandafter\gdef\expandafter\postXY@style@\expandafter{% - \prevXypostStyle@@}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Defining new effects} - - Allow new effects to be declared and a default action provided. The - name is constructed from |#1| and the action to be taken is passed as - |#2|. If |#3| is non-empty then overwrite any existing definition for - a control sequence of the same name. - -\DOCMODE( -\xydef@\newxystyle#1#2#3{% - \DN@{#3}\ifx\next@\empty - \xydefcsname@{shape [#1]}{\csname xyshape@#1@\endcsname}% - \else \expandafter\def\csname shape [#1]\endcsname{% - \csname xyshape@#1@\endcsname}\fi - \DN@{#2}\ifx\next@\empty - \expandafter\def\csname xyshape@#1@\endcsname{% - \xyundefinedStyle@{#1}{}@@}% - \else \expandafter\def\csname xyshape@#1@\endcsname{#2}\fi} - -\xydef@\xyundefinedStyle@#1#2@@{% - \xywarning@{style #1 not defined, nothing to apply}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Support for a new <style> takes the following form, in which - |\thestyle@| expands to the current value of the <style> information - to be maintained. If this is kept in a <count> or <dimen> register, - named |\xystyle@| say, then replace |\thestyle@| by - |\the\style@|. (However due to the large number of <dimen>s already - allocated, it is preferable to keep a text form of the value in - |\thestyle@|.) - -\begin{code} -\xyshape@stylechange@{\modifystyle@{<how>}} -\xydef@\modifystyle@#1{\checkXyStyle@ - \edef\prevstyle@{\thestyle@}\modifystyle@@{#1}% - \let\prestyle@=\prestyle@@ \let\poststyle@=\poststyle@@ - \applystyle@\prestyle@{\thestyle@}\poststyle@{\prevstyle@}} -\xydef@\resetstyle@@#1{\def\thestyle@{#1}\outputstyle@{#1}} -\xydef@\outputstyle@#1{\transformstyle@{#1}% - \expandafter\stylespecial@\expandafter{\next@}} -\xylet@\transformstyle@@=\DN@ -\xylet@\transformstyle@=\transformstyle@@ -\end{code} -\displaycode - - In the above the macros |\modifystyle@@| and |\stylespecial@| are - adapted to the particular <style> information, see below. Typically - <how> is actual \TeX\ code and |\modifystyle@@| is simply |\literal@| - to execute this code. Typesetting is done by |\stylespecial@#1| - which is typically of the form |\special{|<key> |#1}|. - - The |\transformstyle@| is required in case a dvi-<driver> needs - information in a form that is different to how \Xy-pic maintains it - in |\thestyle@|. A <driver> file should define |\|<driver>|@style@@| - to perform the transformation and place its result in |\next@|. - Install this macro using |\let\transformstyle@=\|<driver>|@style@@| - within the <driver> installation macro. - -\medskip - - Next we discuss |\applystyle@|; which uses |\prestyle@|, - |\prestyle@@|, |\poststyle@| and |\poststyle@@|. There are two - strategies here, affecting how much information is placed into the - dvi-file, indicated by the alternative expansions given above. The - appropriateness for a given style must be decided by the author of - the style-option. - - Suppose several modifications are made to a particular style - parameter. We must build a list of commands |\prestyle@{|<value>|}|, - to be executed later, which will recover the required value. Also we - build a list of commands |\poststyle@{|<value>|}| to reset to the - previous value. - - In most cases it is only the result of the modifications that need be - placed into the dvi-file. Since we do not know how many, if any, more - modifications follow we could store each new result {\em after} the - previous, so that its effect will override the previous value. This - is building a FIFO list for the |\prestyle@| commands, with a FILO - list for the |\poststyle@| commands: - -\DOCMODE( -\xydef@\applyFIFOstyle@#1#2#3#4{\bgroup - \styletoks@={\egroup\gdef\preXY@style@}% - \expandafter\toks@\expandafter{\preXY@style@}% - \expandafter\addtotoks@\expandafter{\expandafter#1\expandafter{#2}}% - \expandafter\addtostyletoks@\expandafter{\expandafter{\the\toks@}% - \gdef\postXY@style@}% - \expandafter\toks@\expandafter{\expandafter#3\expandafter{#4}}% - \expandafter\addtotoks@\expandafter{\postXY@style@}% - \expandafter\addtostyletoks@\expandafter{\expandafter{\the\toks@}}% - \the\styletoks@ } -\DOCMODE) -% -\noindent - Use this via: - |\applyLIFOstyle@\prestyle@{\thestyle@}\poststyle@{\prevstyle@}|. - \newline With this method each modification places two entries into - the dvi-file; there is no need for separate |\prestyle@| and - |\prestyle@@| macros. - - Perhaps a more efficient strategy is to build a LIFO list for the - |\prestyle@| commands. This way the required value is encountered - first. This first instance should then cancel all subsequent - instances of |\prestyle@|. This is where the need comes for a - |\prestyle@@|. Accompanying this is a FIFO list for the - |\poststyle@| commands, with a corresponding |\poststyle@@| to kill - subsequent instances: - -\DOCMODE( -\xydef@\applyLIFOstyle@#1#2#3#4{\bgroup - \styletoks@={\egroup\gdef\preXY@style@}% - \expandafter\toks@\expandafter{\expandafter#1\expandafter{#2}}% - \expandafter\addtotoks@\expandafter{\preXY@style@}% - \expandafter\addtostyletoks@\expandafter{\expandafter{\the\toks@}% - \gdef\postXY@style@}% - \expandafter\toks@\expandafter{\postXY@style@}% - \expandafter\addtotoks@\expandafter{\expandafter#3\expandafter{#4}}% - \expandafter\addtostyletoks@\expandafter{\expandafter{\the\toks@}}% - \the\styletoks@ } -\DOCMODE) - -\noindent - Use this via: - |\applyLIFOstyle@\prestyle@{\thestyle@}\poststyle@{\prevstyle@}|. - \newline The advantage here is that only two pieces of data need be - output to the dvi-file, no matter how many modifications are - requested. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[diagonal]??=[direction]??=[<direction>] -% - Setting the current direction is simply pretending for the - typesetting of the object (and the following <modifier>s) that some - connection set it -- the <empty> case just inherits the previous - direction. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The code just calls the general <direction> parser below: - -\DOCMODE( -\xydef@\OBJECT@direction{\afterDIRECTIONorEMPTY{% - \edef\next@{{\DirectionfromtheDirection@}}\expandafter\addtotoks@\next@ - \xyFN@\OBJECT@}% - {\xyFN@\OBJECT@}} -\DOCMODE) - - Here is the <direction> parser: first the parts parsing the <diag> - part then the parts parsing the <trailer> part: - -\DOCMODE( -\xydef@\afterDIRECTIONorEMPTY#1#2{% - \DN@##1{\def\afterDIRECTION@{\def\afterDIRECTION@{##1}% - \ifDIRECTIONempty@\DN@{#2}\else\DN@{#1}\fi \next@}}% - \expandafter\next@\expandafter{\afterDIRECTION@}% - \xyFN@\DIRECTION@} - -\xylet@\afterDIRECTION@=\empty -\xynew@{if}\ifDIRECTIONempty@ - -\xydef@\DIRECTION@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\DIRECTION@}%gobble spaces - \else\ifx v\next \DN@ v{\DIRECTION@v}% - \else\ifx \bgroup\next \let\next@=\DIRECTION@group - \else\ifx (\next \DN@({\xyFN@\DIRECTION@open}%)) - \else - \DN@{\count@=8 % - \afterDIAG{\ifnum\count@=8 \DN@{\DIRECTIONempty@true \xyFN@\DIRECTION@i}% - \else \DN@{\xy@@{\dimen@=\xydashl@}\Directionfromdiag@}\fi \next@}}% - \fi\fi\fi\fi \next@} - -\xydef@\DIRECTION@open{% - \ifx *\next \DN@*##1*){\DIRECTION@group{##1}}% - \else \DN@{\xyerror@{(* <pos> *) expected}{} \xyFN@\DIRECTION@i}% - \fi \next@} -\DOCMODE) - -\paragraph*{Diagonal directions.} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - It is particularly easy to set <diag>onal directions: -$$ -\xy *[o]\cir<1pc>{}="c", - "c"; (-1,-1)**{},p+/4pc/ *+{|dl|=|ld|} **@{-}?>*@{>}, - "c"; ( 0,-1)**{},p+/4pc/ *+{|d|} **@{-}?>*@{>}, - "c"; ( 1,-1)**{},p+/4pc/ *+{|dr|=|rd|} **@{-}?>*@{>}, - "c"; ( 1, 0)**{},p+/4pc/ *+{|r|} **@{-}?>*@{>}, - "c"; ( 1, 1)**{},p+/4pc/ *+{|ur|=|ru|} **@{-}?>*@{>}, - "c"; ( 0, 1)**{},p+/4pc/ *+{|u|} **@{-}?>*@{>}, - "c"; (-1, 1)**{},p+/4pc/ *+{|ul|=|lu|} **@{-}?>*@{>}, - "c"; (-1, 0)**{},p+/4pc/ *+{|l|} **@{-}?>*@{>}, -\endxy -$$ - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - More to the point, <diag>onals are stored internally as -$$ -\xy *\cir<1pc>{}="c", - "c"; (-1,-1)**{},p+/3pc/ *+{|0|} **@{-}?>*@{>}, - "c"; ( 0,-1)**{},p+/3pc/ *+{|1|} **@{-}?>*@{>}, - "c"; ( 1,-1)**{},p+/3pc/ *+{|2|} **@{-}?>*@{>}, - "c"; ( 1, 0)**{},p+/3pc/ *+{|3|} **@{-}?>*@{>}, - "c"; ( 1, 1)**{},p+/3pc/ *+{|4|} **@{-}?>*@{>}, - "c"; ( 0, 1)**{},p+/3pc/ *+{|5|} **@{-}?>*@{>}, - "c"; (-1, 1)**{},p+/3pc/ *+{|6|} **@{-}?>*@{>}, - "c"; (-1, 0)**{},p+/3pc/ *+{|7|} **@{-}?>*@{>}, -\endxy -$$ - Expanding |\afterDIAG{|<stuff>|}|<diag> will result in |\count@| - being set to the <diag> code (not changed in case the <diag> is - <empty>) before expanding <stuff>. - -\DOCMODE( -\def\afterDIAG#1{\def\afterDIAG@{#1}\xyFN@\DIAG@} - -\xydef@\DIAG@{% - \ifx d\next \DN@ d{\count@=1 \xyFN@\DIAG@@}% - \else\ifx r\next \DN@ r{\count@=3 \xyFN@\DIAG@@}% - \else\ifx u\next \DN@ u{\count@=5 \xyFN@\DIAG@@}% - \else\ifx l\next \DN@ l{\count@=7 \xyFN@\DIAG@@}% - \else \let\next@=\afterDIAG@ - \fi\fi\fi\fi \next@} - -\xydef@\DIAG@@{\ifcase\count@ \or -%\count@=1 3 5 7 - \DIAG@@@ l0r2\or\or \DIAG@@@ d2u4\or\or \DIAG@@@ r4l6\or\or \DIAG@@@ u6d0% - \else\xybug@{impossible <diag> number}\fi - \next@} - -\xydef@\DIAG@@@#1#2#3#4{% - \ifx #1\next \count@=#2\DN@#1{\afterDIAG@}% - \else \ifx #3\next \count@=#4\DN@#3{\afterDIAG@}% - \else \let\next@=\afterDIAG@ \fi\fi} -\DOCMODE) - - The action in case of a <diag> is simply to pick the right direction - setup routine according to the encoding, getting the <diag> from - |\count@| and the length of the $d$ vector from |\dimen@|: - -\DOCMODE( -\xydef@\Directionfromdiag@{\ifcase\count@ - \xy@@{\dlDirection@\dimen@}% - \or \xy@@{\dDirection@\dimen@}% - \or \xy@@{\drDirection@\dimen@}% - \or \xy@@{\rDirection@\dimen@}% - \or \xy@@{\urDirection@\dimen@}% - \or \xy@@{\uDirection@\dimen@}% - \or \xy@@{\ulDirection@\dimen@}% - \or \xy@@{\lDirection@\dimen@}% - \or % 8 is legal and means change nothing - \else\xybug@{impossible <diag>}\fi - \DIRECTIONempty@false \xyFN@\DIRECTION@i} -\DOCMODE) - -\paragraph*{Vector directions.} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Alternatively |v|<vector> sets the direction as if the connection - from |0| to the <vector> had been typeset except that the "origin" is - assumed zero such that directions $|v(|x|,|y|)|$ mean the natural - thing, \ie, is the direction of the connection from |(0,0)| to - $|(|x|,|y|)|$. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The action for a |v| reads a <vector> and sets the direction - accordingly using some expansion hackery to propagate it out. The - "origin" is cleared locally to make |v(|$x$|,|$y$|)| behave as it - should. - -\DOCMODE( -\xydef@\DIRECTION@v{% - \xy@{v}{\enter@{\cfromthec@ \X@origin=\the\X@origin \Y@origin=\the\Y@origin - \X@p=\the\X@p \Y@p=\the\Y@p}% - \X@origin=\z@ \Y@origin=\z@}% - \afterVECTORorEMPTY - {\xy@@{\X@p=\z@ \Y@p=\z@ \setupDirection@ \leave@}% - \DIRECTIONempty@false \xyFN@\DIRECTION@i}% - {\xy@@\leave@ \xyerror@{<vector> expected after v}{}% - \DIRECTIONempty@false \xyFN@\DIRECTION@i}} -\DOCMODE) - -\paragraph*{Complex direction.} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - In case the direction is not as simple, you can construct - |{| <pos> <decor> |}| that sets up $p$ and $c$ such that - $\overline{pc}$ has the desired direction. \NOTE: that you must use - the |(*|\dots|*)| form if this is to appear in an object <modifier>! - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The code for this is rather like the one for <vector>s. - -\DOCMODE( -\xydef@\DIRECTION@group#1{% - \xy@@{\begingroup}\xy@@ix@{#1}\xy@@{\plainxy@\expandafter\POS\the\toks9\relax - \setupDirection@\edef\next@{\endgroup \DirectionfromtheDirection@}\next@}% - \DIRECTIONempty@false \xyFN@\DIRECTION@i} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{exercise} - What effect is achieved by using <modifier>s |v/1pc/| and |v/-1pc/|? -\answertext{The first has no effect since the direction is set to be that of - a vector in the current direction, however, the second reverses the - current direction.} -\end{exercise} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[to <direction>] -% - Once the initial direction is established as either the last one or - an absolute one then the remainder of the <direction> is interpreted. - - Adding a single |^| or |_| denotes the result of rotating the default - direction a right angle in the positive and negative direction, \ie, - anti-/clockwise, respectively. \NOTE: Do \emph{not} use |^|\relax|^| - but only |__| to reverse the direction! - - A trailing |:|<vector> is like |v|<vector> but uses the - <direction> to set up a standard square base such that |:(0,1)| and - |:(0,-1)| mean the same as |:a(90)| and |:a(-90)| and as |^| and |_|, - respectively. - -\DOCMODE( -\xydef@\DIRECTION@i{% - \ifx ^\next \DN@ ^{\xy@^{\aboveDirection@\xydashl@}% - \DIRECTIONempty@false \xyFN@\DIRECTION@i}% - \else\ifx _\next \DN@ _{\xy@_{\belowDirection@\xydashl@}% - \DIRECTIONempty@false \xyFN@\DIRECTION@i}% - \else\ifx :\next \DN@ :{% - \xy@{:}{\enter@{\cfromthec@ \basefromthebase@ \X@p=\the\X@p \Y@p=\the\Y@p}% - \X@origin=\z@ \Y@origin=\z@ - \X@xbase=\cosDirection\xydashl@ \Y@xbase=\sinDirection\xydashl@ - \X@ybase=-\Y@xbase \Y@ybase=\X@xbase}% - \afterVECTORorEMPTY - {\xy@@{\X@p=\z@ \Y@p=\z@ \setupDirection@ \leave@}% - \DIRECTIONempty@false \xyFN@\DIRECTION@i}% - {\xy@@\leave@ \xyerror@{<vector> expected after :}{}% - \DIRECTIONempty@false \xyFN@\DIRECTION@i}}% - \else - \let\next@=\afterDIRECTION@ - \fi\fi\fi \next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{exercise} - What effect is achieved by using <modifier>s |v/1pc/:(1,0)| and - |v/-1pc/__|? -\answertext{None in both cases.} -\end{exercise} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section{Decorations} -??=[decor] - -\DOCMODE( -\message{decorations;} -\DOCMODE) - - <Decor>ations are actual \TeX\ macros that decorate the current - picture in manners that depend on the state. They are allowed "after" - the <pos>ition either of the outer ??c![\xy]\dots??c![\endxy] or inside - |{|\dots|}|. The possibilities are given in figure~??[f.decor] with - notes below. - -\begin{figure*}[tp] -\vss -\begin{syntax} - ??w![<decor>] - &\iss & <command> <decor> - & either there is a command\dots -\cr - &\orr & <empty> - & \dots or there isn't. -\cr - ??w![<command>] - &\iss & ??c![\save] <pos> - & save ??!^[state], then do <pos> -\cr - &\orr & ??c![\restore] - & restore ??!^[state] saved by matcing |\save| -\cr - &\orr & ??c![\POS] <pos> - & interpret <pos> -\cr - &\orr & ??c![\afterPOS] |{| <decor> |}| <pos> - & interpret <pos> and then perform <decor> -\cr - &\orr & ??c![\drop] <object> - & drop <object> as the <pos> |*| operation -\cr - &\orr & ??c![\connect] <object> - & connect with <object> as the <pos> |**| operation -\cr - &\orr & ??c![\relax] - & do nothing -\cr - &\orr & <\TeX\ commands> - & any ??!^[\TeX\ commands] and user-defined macros \hfil\break - that neither generates output (watch out for stray - \hfil\break spaces!), nor changes the grouping, may be used -\cr - &\orr & ??c![\xyverbose]\orr??c![\xytracing]\orr??c![\xyquiet]\kern-1pc - &\kern1pc ??!^[tracing] commands -\cr - &\orr & ??c![\xyignore] |{|<pos> <decor>|}| - & ??!^[ignore] \Xy-code -\cr - &\orr & ??c![\xycompile] |{|<pos> <decor>|}| - & ??!^[compile] to file <prefix><no>|.xyc| -\cr - &\orr & ??c![\xycompileto]|{|<name>|}{|<pos><decor>|}|\kern-1pc - &\kern1pc ??!^[compile] to file <name>|.xyc| -\cr -\end{syntax} -\caption{\protect<decor>ations.} -??=[f.decor] -\vfill -\end{figure*} - - Most options add to the available <decor>, in particular the |v2| - option loads many more since \Xy-pic versions prior to 2.7 provided - most features as <decor>. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Simple decorations:} - - ??c![\POS] and ??c![\afterPOS] have already been defined; the - following are just simple applications of previously defined - commands: - -\DOCMODE( -\xydef@\drop#1#{\DN@##1{\xy@@ix@{{#1}{##1}}% - \xy@{\drop#1{##1}}{\expandafter\drop@\the\toks9 }\ignorespaces}\next@} - -\xydef@\connect#1#{\DN@##1{\xy@@ix@{{#1}{##1}}% - \xy@{\connect#1{##1}}{\expandafter\connect@\the\toks9 }\ignorespaces}\next@} - -\xydef@\preconnect#1#{\DN@##1{\xy@@ix@{{#1}{##1}}% - \xy@{\connect#1{##1}}{\expandafter\preconnect@\the\toks9 }\ignorespaces}\next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notes} -% -\note??=[state] -% - Saving and restoring allows `excursions' where lots of things are - added to the picture without affecting the resulting \Xy-pic state, - \ie, $c$, $p$, and "base", and without requiring matching |{}|s. The - independence of |{}| is particularly useful in conjunction with the - ??c![\afterPOS] command, for example, the definition - -\begin{code} -\def\ToPOS{\save\afterPOS{% - \POS**{}?>*@2{>}**@{-}\restore};p,} -\end{code} -\gdocode -\displaycode - - will cause the code |\ToPOS|<pos> to construct a double-shafted arrow - from the current object to the <pos> (computed relative to it) such - that -% -\begin{code} -\xy *{A} \ToPOS +<10mm,2mm> \endxy -\end{code} -% - \thecode\ will typeset the picture \docode. - -\paragraph*{Note:} - Saving this way in fact uses the same state as the |{}| `grouping', - so the code $p_1$|,| |{|$p_2$|\save},| \dots\ |{\restore}| will have - $c=p_1$ both at the \dots\ and at the end! - -\DOCMODE( -\xydef@\save{\relax\saveC} -\xydef@\saveC{\xy@\save\save@ \POS} - -\xydef@\save@{\enter@{\cfromthec@ \pfromthep@ \basefromthebase@}} - -\xydef@\restore{\xy@\restore\leave@ \ignorespaces} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[\TeX\ commands] -% - One very tempting kind of \TeX\ commands to perform as <decor> is - arithmetic operations on the \Xy-pic state. This will work in simple - \Xy-pictures as described here but be warned: "it is not portable" - because all \Xy-pic execution is indirect, and this is used by - several options in nontrivial ways. Check the \TeX-nical - documentation~\cite{RM95:Xy-picCSTC} for details about this! - - Macros that expand to <decor> will always do the same, though. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - \TeX\ hackers like the author may enjoy changing the \Xy-pic state - directly using <decor> of the form |\xy@{|<id>|}{|<code>|}|\dots - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[tracing] -% - ??c![\xyecho] will turn on echoing of all interpreted \Xy-pic <pos> - characters. \BUG: Not completely implemented yet. ??c![\xyverbose] - will switch on a tracing of all \Xy-pic commands executed, with line - numbers. ??c![\xytracing] traces even more: the entire \Xy-pic state - is printed after each modification. ??c![\xyquiet] restores default - quiet operation. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The trick is to replace the |\xy@| command such that it calls the - `normal' one between writing out a trace message and the state. - -\DOCMODE( -\xydef@\xyecho{% - \xy@\xyecho{\let\xy@=\xyecho@ \message{\string\xyecho}}\POS} - -\xydef@\xyecho@#1#2{{\def\1{#1}\ifx\1\empty\else\message{\codeof\1}\fi}% - \oxy@{#1}{#2}} - -\xydef@\xyverbose{% - \xy@\xyverbose{\let\xy@=\xyverbose@ - \W@{Xy: \string\xyverbose\xytracelineno@}}\POS} - -\xydef@\xyverbose@#1#2{% - {\def\1{#1}\ifx\1\empty\else\W@{Xy: \codeof\1\xytracelineno@}\fi}% - \oxy@{#1}{#2}} - -\xydef@\xytracing{% - \xy@\xytracing{\let\xy@=\xytracing@ - \W@{Xy TRACE: \string\xytracing\xytracelineno@}\xystatus@:}\POS} - -\xydef@\xytracing@#1#2{{\def\1{#1}\def\2{#2}% - \W@{Xy TRACE: \codeof\1 {\codeof\2}\xytracelineno@}}\oxy@{#1}{#2}\xystatus@:} - -\xydef@\xystatus@#1{\xystatus@cp{#1}% - \W@{#1 d=<\the\d@X,\the\d@Y> - Direction=\the\Direction=\string(\cosDirection,\sinDirection\string)}% - \W@{#1 base=<\the\X@origin,\the\Y@origin>+% - <\the\X@xbase,\the\Y@xbase>x+<\the\X@ybase,\the\Y@ybase>y}% - \W@{#1 min/max=<\the\X@min,\the\Y@min>/<\the\X@max,\the\Y@max> - S=\the\csp@}} - -\xydef@\xystatus@cp#1{% - \W@{#1 c=<\the\X@c,\the\Y@c> \expandafter\string\the\Edge@c - \string[\the\L@c+\the\R@c,\the\D@c+\the\U@c\string] - \ifInvisible@ I\fi\ifHidden@ H\fi}% - \W@{#1 p=<\the\X@p,\the\Y@p> \expandafter\string\the\Edge@p - \string[\the\L@p+\the\R@p,\the\D@p+\the\U@p\string]}} - -\xydef@\xystatus@c#1{% - \W@{#1<\the\X@c,\the\Y@c> \expandafter\string\the\Edge@c - \string[\the\L@c+\the\R@c,\the\D@c+\the\U@c\string]}} - -\xydef@\xyquiet{\xy@\xyquiet{\let\xy@=\oxy@}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[ignore] -% - Ignoring means that the <pos> <decor> is still parsed the usual way - but nothing is typeset and the \Xy-pic state is not changed. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - We ignore in a group to ensure that nothing done inside `leaks' to - the outside. - -\DOCMODE( -\xydef@\xyignore#1{\xy@\xyignore{\xyignore@{#1}}\ignorespaces} - -\xydef@\xyignore@#1{{\let\xy@=\xyeat@ \change@oxy@\xy@ \POS#1\relax}} - -\xydef@\xyeat@#1#2{} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[compile] -% - It is possible to save an intermediate form of commands that generate - parts of an \Xy-picture to a file such that subsequent typesetting of - those parts is significantly faster: this is called - "??w![compiling]". The produced file contains code to check that the - compiled code still corresponds to the same <pos><decor> as well as - efficient \Xy-code to redo it; if the <pos><decor> has changed then - the compilation is redone. - - There are two ways to use this. The direct is to invent a <name> for - each diagram and then embrace it in - |\xycompileto{|<name>|}||{|\dots|}| -- this dumps the compiled code - into the file <name>|.xyc|. - - When many diagrams are compiled then it is easier to add - ??c![\xycompile]|{|\dots|}| around the <pos><decor> to be compiled. - This will assign file names numbered consecutively with a <prefix> - which is initially the expansion of |\jobname-| but may be set with -% -\begin{defs1} -??c![\CompilePrefix]|{|<prefix>|}| -\end{defs1} -\noindent\unskip -% - This has the disadvantage, however, that if additional compiled - \Xy-pictures are inserted then all subsequent pictures will have to - be recompiled. One particular situation is provided, though: when - used within constructions that typeset their contents more than once - (such as most ??w![\AMS-\LaTeX] equation constructs) then the - declaration -% -\begin{defs1} -??c![\CompileFixPoint]|{|<id>|}| -\end{defs1} -\noindent\unskip -% - can be used inside the environment to fix the counter to have the - same value at every passage. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - It is done by just writing all |\xy@|-commands to the file. The file - establishes the correct input mode through use of the appropriate - commands itself. - -\DOCMODE( -\xydef@\xycompile@@{\jobname-} -\xydef@\xycompileno@@{0} - -\xydef@\CompilePrefix#1{% - \def\xycompile@@{#1}\xdef\xycompile@@{\codeof\xycompile@@}% - \xdef\xycompileno@@{0}} - -\xydef@\xycompile{% - \count@=\xycompileno@@ \advance\count@\@ne - \xdef\xycompileno@@{\ifnum10>\count@ 0\fi \the\count@}% - \edef\next{\noexpand\xycompileto{\xycompile@@\xycompileno@@}}\next} - -\xylet@\compilename@@=\empty -\xylet@\xyrecompile@@=\relax - -\xydef@\xycompileto#1#2{% - \if\inxy@ \DN@{\xy@@{\nter@{}}}% - \else \DN@{\xy \xy@@{\nter@{\endxy}}}\fi \next@ - \ifxysaving@ \xyerror@{Compilations can not be nested}{}\fi - \DN@{#1}\edef\compilename@@{\codeof\next@}\DNii@{#2}% - \def\xyrecompile@@{recompiling TRUNCATED}% - \expandafter\xyinputorelse@@\expandafter{\compilename@@.xyc}% - {\def\xyrecompile@@{compiling to}}% - \ifx\xyrecompile@@\relax \else \expandafter\xyrecompile@ \fi - \xy@@\leave@ \ignorespaces} -\DOCMODE) - - Recompilation is done by just writing all |\xy@|-commands to the - file. The file establishes the correct input mode and terminates - itself; after it has been finished it is simply reread to actually - get the drawing done in the document. - -\DOCMODE( -\xydef@\xyrecompile@{% - \message{(\xyrecompile@@\space\string`\compilename@@.xyc\string'}% - \DN@{\immediate\openout\xywrite@=}\expandafter\next@\compilename@@.xyc - \immediate\write\xywrite@{% - \string\xycompiled{\compilename@@}% - {\the\year/\the\month/\the\day\string:\the\time\xytracelineno@}% - {Xy-pic \xyversion}\xycomment@}% - \immediate\write\xywrite@{{\codeof\nextii@}\relax}% - {\xysaving@ \expandafter\POS\nextii@ \relax}% - \immediate\write\xywrite@{\string\xyendcompiled}% - \immediate\closeout\xywrite@ \message{done)}% - \expandafter\input\compilename@@.xyc - \outlines@@\writeoutline@\writeoutline@} - -\xydef@\xysaving@{\let\xy@=\xysave@ \change@oxy@\xy@ - \let\xy@@ix@=\xysave@@toksix@ \xysaving@true} - -\xynew@{if}\ifxysaving@ \xysaving@false - -\xydef@\xysave@#1#2{{\DN@{{#1}{#2}}% - \immediate\write\xywrite@{\string\xy@\codeof\next@\xycomment@}}} - -\xydef@\xysave@@toksix@#1{{\DN@{{#1}}% - \immediate\write\xywrite@{\string\xy@@ix@\codeof\next@\relax}}} - -\xywarnifdefined\xycomment@ -{\catcode`\%=12 \catcode`\(=1 \catcode`\)=2 \gdef\xycomment@(%)} -\DOCMODE) - - \HACK{1:} The |\ifxysaving@| can never be locally switched off! - Anyway it is used to allow a gross hack avoiding building a queue in - the matrix option that will generate too long lines!! - - \HACK{2:} |\xysave@@toksix@| is not doing the catcode jive because it - can never be invoked while loading a file (knock, knock~\smiley~). - - The initial command in all |.xyc| files check that this is the right - file and that neither the version of \Xy-pic nor the user's code has - changed: - -\DOCMODE( -\xydef@\xycompiled#1#2#3#4{\DN@{#1}\edef\next@{\codeof\next@}% - \ifx\next@\compilename@@\else - \xywarning@{This file does not contain the result of - \string\xycompileto{\compilename@@}{...}^^J% - but of \string\xycompileto{\next@}}\fi - \edef\next{Xy-pic \xyversion}\DN@{#3}\ifx\next\next@ - \DN@{#4}\ifx\next@\nextii@ \xycatcodes \outlines@@\relax\readoutline@ - \else \def\xyrecompile@@{recompiling to}\endinput \fi - \else \def\xyrecompile@@{Xy-pic version change - recompiling}\endinput \fi} - -\xydef@\xyendcompiled{\let\xyrecompile@@=\relax \xyuncatcodes\endinput} -\DOCMODE) - - Finally the fix-point thing. - -\DOCMODE( -\xydef@\CompileFixPoint#1{% - \expandafter\ifx\csname#1FIX@@\endcsname\relax - \expandafter\xdef\csname#1FIX@@\endcsname{\xycompileno@@}% - \else - \xdef\xycompileno@@{\csname#1FIX@@\endcsname}\fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Finally, when many `administrative typesetting runs' are needed, \eg, - readjusting \LaTeX\ cross references and such, then it may be an - advantage to not typeset any \Xy-pictures at all during the - intermediate runs. This is supported by the following declarations - which for each compilation creates a special file with the extension - ??c![.xyd] containing just the size of the picture: -% -\begin{defs1} -??c![\MakeOutlines]\cr -??c![\OnlyOutlines]\cr -??c![\ShowOutlines]\cr -??c![\NoOutlines]\cr -\end{defs1} -\noindent\unskip -% - The first does no more. The second uses the file to typesets a - dotted frame of the appropriate size instead of the picture (unless - the picture has changed and is recompiled, then it is typeset as - always and the |.xyd| file is recreated for subsequent runs). The - third shows the outlines as dotted rectangles. The last switches - outline processing completely off. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The implementation is all handled by |\outlines@@| which is called at - strategic places in the compilation macros above. It just expands to - nothing when the state is `No', the first argument when it is `Make', - and the second when it is `Only'. - -\DOCMODE( - -\xydef@\outlines@no#1#2{} -\xydef@\outlines@make#1#2{#1} -\xydef@\outlines@only#1#2{#2} - -\xylet@\outlines@@=\outlines@no -\xylet@\writeoutline@@=\relax -\xylet@\readoutline@@=\relax - -\xydef@\MakeOutlines{\let\outlines@@=\outlines@make} - -\xydef@\OnlyOutlines{\xywarning@{Compiled pictures only shown as outlines}% - \let\outlines@@=\outlines@only} - -\xydef@\ShowOutlines{\let\readoutline@@=\typesetoutline@} - -\xydef@\NoOutlines{\let\outlines@@=\outlines@no} - -\xydef@\writeoutline@{% - \DN@{\immediate\openout\xywrite@=}\expandafter\next@\compilename@@.xyd - \immediate\write\xywrite@{\xycomment@\space\compilename@@.xyd} - \immediate\write\xywrite@{% - \string\X@min=\the\X@min \string\X@max=\the\X@max - \string\Y@min=\the\Y@min \string\Y@max=\the\Y@max \string\relax}% - \writeoutline@@ - \immediate\closeout\xywrite@} - -\xynew@{if}\ifoutlineread@ - -\xydef@\readoutline@{\outlineread@true - \expandafter\xyinputorelse@@\expandafter{\compilename@@.xyd}% - {\def\xyrecompile@@{outline missing - recompiling to}\outlineread@false}% - \ifoutlineread@ \readoutline@@ - \writeoutline@\expandafter\xyendcompiled\fi} - -\xydef@\typesetoutline@{% - \xy@@{\czeroEdge@ \U@p=\z@ \D@p=\z@ \L@p=\z@ \R@p=\z@ \Edge@p={\zeroEdge}% - \X@p=\X@min \Y@p=\Y@min \X@c=\X@min \Y@c=\Y@max \connect@\dir{.}% - \X@p=\X@c \Y@p=\Y@c \X@c=\X@max \Y@c=\Y@max \connect@\dir{.}% - \X@p=\X@c \Y@p=\Y@c \X@c=\X@max \Y@c=\Y@min \connect@\dir{.}% - \X@p=\X@c \Y@p=\Y@c \X@c=\X@min \Y@c=\Y@min \connect@\dir{.}}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section{Kernel object library} -??=[objectlib] - -\DOCMODE( -\message{kernel objects:} -\DOCMODE) - - In this section we present the "library objects" provided with the - kernel language---several options add more library objects. They fall - into three types: Most of the kernel objects (including all those - usually used with |**| to build connections) are "directionals", - described in \S??[objectlib.directionals]. The remaining kernel - library objects are "circles" of \S??[objectlib.circles] and "text" - of \S??[objectlib.text]. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Directionals} -??=[objectlib.directionals] - -\DOCMODE( -\message{directionals,} -\DOCMODE) - - The kernel provides a selection of "directionals": objects that - depend on the current direction. They all take the form -% -\begin{defs1} -% - ??c![\dir]<dir> \cr -% -\end{defs1} -\noindent\unskip -% - to typeset a particular <dir>ectional object. All have the structure -% -\begin{defs1} -% - <dir> \iss\ <variant>|{|<main>|}| \cr -% -\end{defs1} -\noindent\unskip -% - with <variant> being <empty> or one of the characters |^_23| and - <main> some mnemonic code. - - We will classify the directionals primarily intended for building - connections as "connectors" and those primarily intended for - placement at connection ends or as markers as "tips". - -\begin{figure*}[tp] - % - \def\Dx#1#2{\hbox{\def\1{#1{#2}}\enspace\tt\string\dir\codeof\1}} - % - \def\DC#1#{\DCx{#1}} - \def\DCx#1#2{ \Dx{#1}{#2} & \vcenter{\xy - 0*\cir<5pt>{} ; (16,5)*=<10.1pt>{}*\frm{-} **\dir#1{.} **h\dir#1{#2} - \endxy}} - % - \def\DT#1#{\DTx{#1}} - \def\DTx#1#2{\Dx{#1}{#2} & \vcenter{\xy - -(4,2.5)*{} ; (4,0)*{} **{} ?>*\dir#1{#2} **\dir#1{.} - \endxy}} - % - \def\Darray#1#2{{\let\\=\cr \tabskip=0pt plus 1fil % - \halign to\hsize{&\hfil$##$&$##$\hfil\\ - \noalign{\hbox to\hsize{\hss#1\hss}\smallskip}#2\crcr}\bigskip}} -% -\Darray{??!^[Dummy]}{\hbox{\tt\string\dir\string{\string}}} -% -\Darray{??!^[Plain connectors]}{% - \DC{-} &\DC2{-} &\DC3{-} \\ - \DC{.} &\DC2{.} &\DC3{.} \\ - \DC{~} &\DC2{~} &\DC3{~} \\ - \DC{--} &\DC2{--} &\DC3{--} \\ - \DC{~~} &\DC2{~~} &\DC3{~~} \\ -} -\bigskip -\Darray{??!^[Plain tips]}{% - \DT{>} &\DT^{>} &\DT_{>} &\DT2{>} &\DT3{>} \\ - \DT{<} &\DT^{<} &\DT_{<} &\DT2{<} &\DT3{<} \\ - \DT{|} &\DT^{|} &\DT_{|} &\DT2{|} &\DT3{|} \\ - \DT{(} &\DT^{(} &\DT_{(} \\ - \DT{)} &\DT^{)} &\DT_{)} \\ - & &\DT^{`} &\DT_{`} \\ - & &\DT^{'} &\DT_{'} -} -\bigskip -\Darray{??!^[Constructed tips]}{% - \DT{>>} &\DT^{>>} &\DT_{>>} &\DT2{>>} &\DT3{>>} \\ - \DT{<<} &\DT^{<<} &\DT_{<<} &\DT2{<<} &\DT3{<<} \\ - \DT{||} &\DT^{||} &\DT_{||} &\DT2{||} &\DT3{||} \\ - \DT{|-} &\DT^{|-} &\DT_{|-} &\DT2{|-} &\DT3{|-} \\ - \DT{>|} &\DT{>>|} &\DT{|<} &\DT{|<<} &\DT{*} \\ - \DT{+} &\DT{x} &\DT{/} &\DT{//} &\DT{o} -} -\caption{Kernel library \protect<dir>ectionals}??=[f.dir] -\end{figure*} - - Figure~??[f.dir] shows all the <dir>ectionals defined by the kernel - with notes below; each <main> type has a line showing the available - <variant>s. Notice that only some variants exist for each - <dir>---when a nonexisting variant of a <dir> is requested then the - <empty> variant is used silently. Each is shown in either of the two - forms available in each direction as applicable: connecting a - $\bigcirc$ to a $\Box$ (typeset by |**\dir|<dir>) and as a tip at the - end of a dotted connection of the same variant (\ie, typeset by the - <pos> |**\dir|<variant>|{.}| |?>| |*\dir|<dir>). - - As a special case an entire <object> is allowed as a <dir> by - starting it with a |*|: |\dir*| is equivalent to ??c![\object]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Setup:} - - ??c![\dir] starts an <object> and passes control to a `finisher' named - |\dir|<variant>|{|<main>|}| otherwise to the one corresponding to an - <empty> <variant>. The kernel ones described here have in common - that they make use of the generic |\straight@| defined - in~\S??[algo.connection]. - -\DOCMODE( -\xydef@\dir{\hbox\bgroup\xyFN@\dir@i} - -\xydef@\dir@i{\ifx *\next \DN@*{\resetStyle@\object@}% - \else \let\next@=\dir@ii \fi \next@} - -\xydef@\dir@ii#1#{\dir@{#1}} - -\xydef@\dir@#1#2{\DN@{dir#1{#2}}% - \expandafter\let\expandafter\next\csname\codeof\next@\endcsname - \ifx\next\relax \DN@{dir{#2}}% - \expandafter\let\expandafter\next\csname\codeof\next@\endcsname - \ifx\next\relax \DN@{\dir#1{#2}}% - \xyerror@{illegal <dir>: \codeof\next@\space not defined}{}% - \let\next=\no@ \fi\fi \next} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notes} - -\note??=[Dummy] - - You may use |\dir{}| for a ``dummy'' directional object (in fact this - is used automatically by |**{}|). This is useful for a uniform - treatment of connections, \eg, making the |?| <pos> able to find a - point on the straight line from $p$ to $c$ without actually - typesetting anything. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Uses an empty droppping, the |\no@@| connection. All the variants - are defined for optimisation reasons and it is also named |\dir{ }| - to allow spurious spaces: - -\DOCMODE( -\xydefcsname@{dir{}}{\no@} - -\xyletcsnamecsname@{dir0{}}{dir{}} -\xyletcsnamecsname@{dir1{}}{dir{}} -\xyletcsnamecsname@{dir^{}}{dir{}} -\xyletcsnamecsname@{dir_{}}{dir{}} -\xyletcsnamecsname@{dir2{}}{dir{}} -\xyletcsnamecsname@{dir3{}}{dir{}} - -\xyletcsnamecsname@{dir{ }}{dir{}} - -\xydef@\no@{\egroup \czeroEdge@ %\Invisible@false \Hidden@false %%%%HACK? - \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\setbox\z@=\copy\voidb@x}\def\Connect@@{\no@@}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[Plain connectors] - - The "plain connectors" group contains basic directionals that lend - themself to simple connections. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The bulk of the code is in fact in the description of these. First - each of the three types---lines, dots, and squiggles---then the code - for doubling and tripling. - -\paragraph*{Lines:} - - A single |\dir{-}| object is a dash in the current direction: build - box with character $C$ of the semidirectional ??c![\xydashfont]; use - the characters natural width $w$ and construct a height/depth from $d - = \abs{\sin(|\Direction|)}|em|$ (where |1em| is the dash length, - \cf~|xydash10.mf|) as follows: -$$ -\begin{array}{cccccc} - C & L & R & D & U & "flip if" \\ - 0\ldots30 & 0 & w & 0 & d & dY \lt 0 \\ - 31\ldots63 & 0 & w & d & 0 & dY \gt 0 \\ - 64\ldots95 & 0 & w & d & 0 & dX \lt 0 \\ - 96\ldots127 & 0 & w & 0 & d & dX \lt 0 \\ -\end{array} -$$ - where "flip" means shift the box opposite vertically and - horizontally, \ie, $(L,R,D,U) := (R,L,U,D)$, and then lower the box - $D-U$. - - "Procedure": (??_[line1])~Compute $d$, (??_[line2])~set $D,U$, and - flip condition, (??_[line3])~build box to get $w,L,R$, - (??_[line4])~dump box that is flipped if condition holds, and - (??_[line5])~finally setup the required parameters properly. - -\DOCMODE( -\xydefcsname@{dir1{-}}{\line@} -\xydefcsname@{dir2{-}}{\line@ \double@\xydashh@} -\xydefcsname@{dir3{-}}{\line@ \triple@\xydashh@} -\xyletcsnamecsname@{dir0{-}}{dir{}} -\xyletcsnamecsname@{dir{-}}{dir1{-}} -\xyletcsnamecsname@{dir{=}}{dir2{-}} - -\xydef@\line@{\dimen@=\sd@Y\sinDirection\xydashl@ %?*[line1] - \ifnum\SemiDirectionChar<31 \D@c=\z@ \U@c=\dimen@ \DN@{\d@Y<\z@}% %?*[line2] - \else\ifnum\SemiDirectionChar<64 \D@c=\dimen@ \U@c=\z@ \DN@{\z@<\d@Y}% - \else\ifnum\SemiDirectionChar<96 \D@c=\dimen@ \U@c=\z@ \DN@{\d@X<\z@}% - \else \D@c=\z@ \U@c=\dimen@ \DN@{\d@X<\z@}\fi\fi\fi - \setboxz@h{\line@@}\ht\z@=\U@c \dp\z@=\D@c %?*[line3] - \L@c=\z@ \R@c=\wdz@ - \ifdim\next@ \dimen@=\R@c \R@c=\L@c \L@c=\dimen@ %?*[line4] - \dimen@=\U@c \U@c=\D@c \D@c=\dimen@ \advance\dimen@-\U@c - \lower\dimen@\boxz@ - \else \boxz@ \fi -% -%\ifnum\SemiDirectionChar=31\relax -% \W@{LINE@(\the\SemiDirectionChar): WH=<\the\L@c+\the\R@c,\the\D@c+\the\U@c>; -% d=<\the\d@X,\the\d@Y>}\fi -% - \edef\tmp@{\egroup \U@c=\the\U@c \D@c=\the\D@c \L@c=\the\L@c \R@c=\the\R@c}% %?*[line5] - \tmp@ - \Edge@c={\rectangleEdge}%%%%%\Invisible@false\Hidden@false - \ifdim\z@<\U@c \def\Upness@{1}\else \def\Upness@{0}\fi - \ifdim\z@<\L@c \def\Leftness@{1}\else \def\Leftness@{0}\fi - \def\Drop@@{\styledboxz@}\def\Connect@@{\solid@}} - -\xydef@\line@@{{\xydashfont\SemiDirectionChar\/}} -\DOCMODE) - - \BUG: |\line@| should allow the size of the object to be changed - after typesetting---this should make |\Connect@@| do dashing. Hm. - - As mentioned above a dash will `Connect' to make lines by using rules - when strictly horizontal or vertical. This is controlled by enabling - or disabling the test |\ifjusthvtest@| discussed below. - -\DOCMODE( -\xydef@\solid@{% -% -%\W@{SOLID}\xystatus@:% -% - \checkXy@rules@\solidhrule@\solidvrule@{\straight@\solidSpread@}} - -\xydef@\checkXy@rules@#1#2#3{% - \dimen@=\Y@c \advance\dimen@-\Y@p - \ifjusthvtest@.05pt>\ifdim\dimen@<\z@-\fi\dimen@ \DN@{#1}% - \else \dimen@=\X@c \advance\dimen@-\X@p - \ifjusthvtest@.05pt>\ifdim\dimen@<\z@-\fi\dimen@ \DN@{#2}% - \else \DN@{#3}\fi\fi \next@} -\DOCMODE) - - Finally, we give the algorithm for `spreading' the dashes along a - solid line: just add an extra dash so they always overlap - (see~\S??[algo.connection] for a proper defintion of the requirements - to spreading). - -\DOCMODE( -\xydef@\solidSpread@{\ifnum\z@<\count@@ \advance\count@@\@ne \fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - By default \Xy-pic will typeset horizontal and vertical |\dir{-}| - connections using \TeX\ rules. Unfortunately rules is the feature of - the DVI format most commonly handled wrong by DVI drivers. Therefore - \Xy-pic provides the <decor>ations -% -\begin{defs1} -% - ??c![\NoRules] \cr - ??c![\UseRules] \cr -% -\end{defs1} -\noindent\unskip -% - that will switch the use of such off and on. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - They simply redefine the conditional used to select typesetting - with rules in |\solid@| above: - -\DOCMODE( -\xylet@\ifjusthvtest@=\ifdim - -\xydef@\NoRules{\let\ifjusthvtest@=\iffalse} -\xydef@\UseRules{\let\ifjusthvtest@=\ifdim} -\DOCMODE) - - The actual typesetting essentially means calling |\drop@| to box with - a rule of the appropriate length and with line width set to that of - ??c![\xydashfont] (as stored in |\xydashw@|). - -\DOCMODE( -\xydef@\solidvrule@{\no@@ \solidvrule@typeset \ifHidden@\else\noinsert@\fi - \solidvrule@pre} - -\xydef@\solidvrule@pre{% -% -%\W@{VRULE SETUP}% -% - \def\Cbreak@@{% -% -%\W@{VRULE Cbreak}% -% - \connectRestore@ \swap@\lastbreak@@\swap@ - \solidvrule@typeset \edef\lastbreak@@{\cfromthec@}\Creset@@}% - \def\Clast@@{% -% -%\W@{VRULE Clast}% -%\let\Clast@@=\undefined -% - \connectRestore@ \Creset@@\swap@\lastbreak@@\swap@ - \solidvrule@typeset \Creset@@ \edef\lastbreak@@{\cfromthep@}}% -} - -\xydef@\solidvrule@typeset{% -% -%\W@{VRULE TYPESET}\xystatus@cp:% -% - \ifInvisible@ \let\next@=\relax \else \let\next@=\solidvrule@typeset@ \fi - \checkoverlap@@ \next@} - -\xydef@\solidvrule@typeset@{{% -% - \advance\X@c\X@p \X@c=.5\X@c \X@p=\X@c - \advance\X@c-.5\xydashw@ \advance\X@p.5\xydashw@ -% - \ifdim\Y@c<\Y@p \advance\Y@c\U@c \advance\Y@p-\D@p - \else \swapdimen@\Y@c\Y@p \advance\Y@c\U@p \advance\Y@p-\D@c \fi -% - \Droprule@}} - -\xydef@\solidhrule@{\no@@ \solidhrule@typeset \ifHidden@\else\noinsert@\fi - \solidhrule@pre} - -\xydef@\solidhrule@pre{% -% -%\W@{HRULE SETUP}% -% - \def\Cbreak@@{% -% -%\W@{HRULE Cbreak}% -% - \connectRestore@ \swap@\lastbreak@@\swap@ - \solidhrule@typeset \edef\lastbreak@@{\cfromthec@}\Creset@@}% - \def\Clast@@{% -% -%\W@{HRULE Clast}% -%\let\Clast@@=\undefined -% - \connectRestore@ \Creset@@\swap@\lastbreak@@\swap@ - \solidhrule@typeset \Creset@@ \edef\lastbreak@@{\cfromthep@}}% -} - -\xydef@\solidhrule@typeset{% -% -%\W@{HRULE TYPESET}\xystatus@cp:% -% - \ifInvisible@ \let\next@=\relax \else \let\next@=\solidhrule@typeset@ \fi - \checkoverlap@@ \next@} - -\xydef@\solidhrule@typeset@{{% - \ifdim\X@c<\X@p \advance\X@c\R@c \advance\X@p-\L@p - \else \swapdimen@\X@c\X@p \advance\X@c\R@p \advance\X@p-\L@c \fi - \advance\Y@c\Y@p \Y@c=.5\Y@c \Y@p=\Y@c - \advance\Y@c-.5\xydashw@ \advance\Y@p.5\xydashw@ - \Droprule@}} -\DOCMODE) - - |\Droprule@| puts the actual ink on the page: with lower left corner - at $c$ and upper right corner at~$p$. - -\DOCMODE( -\xydef@\Droprule@{\advance\X@p-\X@c -% -%\W@{: kern\the\X@c\space width\the\X@p\space depth-\the\Y@c\space -% height\the\Y@p}% -% - \setboxz@h{\kern\X@c \vrule width\X@p depth-\Y@c height\Y@p}% - \ht\z@=\z@ \wd\z@=\z@ \dp\z@=\z@ \Drop@@} -\DOCMODE) - -\paragraph*{Dots:} - - |\dir{.}| creates a very boring dot when used as an <object>, but - interesting dotted lines when used to connect. ??c![\zerodot] should - expand to a zero-sized box with a dot (initialised to use - |\zero|\-|dotbox@|); the <object> is built using |\pointlike@| <text> - <spread-dimen> that we will use again later. - -\DOCMODE( -\xydef@\zerodot{\copy\zerodotbox@} - -\xydefcsname@{dir1{.}}{\point@} -\xydefcsname@{dir2{.}}{\point@ \double@\xydashh@} -\xydefcsname@{dir3{.}}{\point@ \triple@\xydashh@} -\xyletcsnamecsname@{dir0{.}}{dir{}} -\xyletcsnamecsname@{dir{.}}{dir1{.}} -\xyletcsnamecsname@{dir{:}}{dir2{.}} - -\xydef@\point@{\pointlike@\zerodot\p@} - -\xydef@\pointlike@#1#2{% - \setboxz@h{#1}\wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@\egroup -% \Invisible@false \Hidden@false - \def\Leftness@{.5}\def\Upness@{.5}\ctipEdge@ - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@{#2}}}} -\DOCMODE) - - This is reflected by the rather complicated spreading routine: - `Dotting' is the art of putting zero-sized objects together with - equal distance independent of the chosen direction. So we must - recompute the number of segments $N$ (likely to be very big or - ${-}1$) with trigonometry; using "radius" for the individual dots - this becomes -$$ -\begin{array}{lc} - ??_[dottedspread] - & A := \abs{\cos{|\Direction|}}*"radius"\\ - & B := \abs{\sin{|\Direction|}}*"radius"\\ - ??_[dottedspread1] - & "if"~A+B \gt \abs{|\d@X|}+\abs{|\d@Y|}~"then"~N=0~"and exit" \\ - ??_[dottedspread2] - & |<|A|,|B|>| := 2*|<|A|,|B|>|\\ - & "Filler" := <box with the original filler centered...>\\ - ??_[dottedspread3] - & |<\d@X,\d@Y>| := |<\d@X,\d@Y>| + |<\sd@X|*A|,\sd@Y|*B|>|\\ - & |<|X|,|Y|>| := |<|X|,|Y|>| + |<\sd@X|*A/2|,\sd@Y|*B/2|>|\\ - ??_[dottedspread4] - & N := \floor{"if"~\abs{|\d@X|}\gt\abs{|\d@Y|} - ~"then" \abs{|\d@X|}/A else \abs{|\d@Y|}/B} + 1 -\end{array} -$$ - as realised below: - -\DOCMODE( -\xydef@\dottedSpread@#1{%\setupDirection@ %?*[dottedspread] - \dimen@=#1\relax \DN@{\A@=2\A@ \B@=2\B@ \dottedSpread@i}% - \A@=\sd@X\cosDirection\dimen@ \B@=\sd@Y\sinDirection\dimen@ - \dimen@=\A@ \advance\dimen@\B@ %?*[dottedspread1] - \dimen@ii=\sd@X\d@X \advance\dimen@ii\sd@Y\d@Y - \ifdim\dimen@>\dimen@ii \DN@{\count@@=\z@}\fi - \next@} - -\xydef@\dottedSpread@i{%\setupDirection@ %?*[dottedspread2] - \global\setbox8=\hbox to\A@{\hss - \kern.5\A@\box\lastobjectbox@\kern.5\A@\hss}\dp8=.5\B@ \ht8=.5\B@ - \advance\d@X\sd@X\A@ \advance\d@Y\sd@Y\B@ %?*[dottedspread3] - \advance\X@c\sd@X.5\A@ \advance\Y@c\sd@Y.5\B@ - \ifdim\sd@Y\d@Y<\sd@X\d@X \dimen@=\sd@X\d@X %?*[dottedspread4] - \ifdim\zz@\A@\else \divide\dimen@\A@ \fi \count@@=\dimen@ - \else \dimen@=\sd@Y\d@Y - \ifdim\zz@\B@\else \divide\dimen@\B@ \fi \count@@=\dimen@ - \fi \advance\count@@\@ne} -\DOCMODE) -% -\noindent - A particular aspect of this is that we have to enlarge and recenter - the actual box used for the typesetting (|\lastobjectbox@|). - -\paragraph*{Squiggles:} - - These are just a lot of box maneuvering using the directional - characters of ??c![\xybsqlfont] (see~|xybsql10.mf| for details): - -\DOCMODE( -\xydefcsname@{dir1{~}}{\squiggle@} -\xydefcsname@{dir2{~}}{\squiggle@ \double@\xybsqlh@} -\xydefcsname@{dir3{~}}{\squiggle@ \triple@\xybsqlh@} -\xyletcsnamecsname@{dir0{~}}{dir{}} -\xyletcsnamecsname@{dir{~}}{dir1{~}} - -\xydef@\squiggle@{\xybsqlfont - \dimen@=\sd@X\cosDirection\xybsqll@ \advance\dimen@.1\p@ - \dimen@ii=\sd@Y\sinDirection\xybsqll@ - \kern\dimen@\squiggle@@ - \edef\tmp@{\egroup \U@c=\the\dimen@ii \L@c=\the\dimen@}\tmp@ - \wdz@=2\L@c \R@c=\L@c \ht\z@=\U@c \D@c=\U@c \dp\z@=\U@c - \Edge@c={\rectangleEdge}% -% \Invisible@false \Hidden@false - \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\squiggledSpread@}} - -\xydef@\squiggle@@{\DirectionChar \count@=\DirectionChar - \advance\count@-64 \ifnum\count@<\z@ \advance\count@128 \fi \char\count@} -\DOCMODE) - - The interesting bit is that they spread by not spreading, \ie, by - centering between the endpoints---this means -$$ -\begin{array}{ll} - X := X - d/2, dX := dX - d - &\hbox{where}~ d = |\sd@X|(\abs{dX} - N*A + |.1pt|)\\ - Y := Y - d/2, dY := dY - d - &\hbox{where}~ d = |\sd@Y|(\abs{dY} - N*B + |.1pt|)\\ -\end{array} -$$ - -\DOCMODE( -\xydef@\squiggledSpread@{% - \dimen@=\d@X \advance\dimen@-\sd@X\count@@\A@ \advance\dimen@\sd@X.3\p@ - \advance\X@c-.5\dimen@ \advance\d@X-\dimen@ - \dimen@=\d@Y \advance\dimen@-\sd@Y\count@@\B@ \advance\dimen@\sd@Y.3\p@ - \advance\Y@c-.5\dimen@ \advance\d@Y-\dimen@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Double and triple directionals:} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - As can be seen by the last two columns, these (and most of the other - connectors) also exist in double and triple versions with a |2| or a - |3| prepended to the name. For convenience |\dir{=}| and |\dir{:}| - are synonyms for |\dir2{-}| and |\dir2{.}|, respectively; similarly - |\dir{==}| is a synonym for |\dir2{--}|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This is very simple, really: |\double@| and |\triple@| do the work by - redefining the |\Drop@@| method to do its job twice and thrice. - \TODO: should probably extend any already defined |\Drop@@| method? - -\DOCMODE( -%\xydef@\double@#1{\edef\Drop@@{\dimen@=#1\relax -% \dimen@=.5\dimen@ \A@=-\sinDirection\dimen@ \B@=\cosDirection\dimen@ -% \setbox2=\hbox{\kern\A@\raise\B@\copy\z@}\dp2=\z@ \ht2=\z@ \wd2=\z@ \box2 % -% \setbox2=\hbox{\kern-\A@\raise-\B@\boxz@}\dp2=\z@ \ht2=\z@ \wd2=\z@ \box2 }} - -%\xydef@\triple@#1{\edef\Drop@@{\dimen@=#1\relax -% \A@=-\sinDirection\dimen@ \B@=\cosDirection\dimen@ -% \setbox2=\hbox{\kern\A@\raise\B@\copy\z@}\dp2=\z@ \ht2=\z@ \wd2=\z@ \box2 % -% \setbox2=\hbox{\kern-\A@\raise-\B@\copy\z@}\dp2=\z@ \ht2=\z@ \wd2=\z@ \box2 -% \dp\z@=\z@ \ht\z@=\z@ \wdz@=\z@ \boxz@}} - -\xydef@\double@#1{\edef\Drop@@{\dimen@=#1\relax - \dimen@=.5\dimen@ \A@=-\sinDirection\dimen@ \B@=\cosDirection\dimen@ - \setboxz@h{\setbox2=\hbox{\kern\A@\raise\B@\copy\z@}% - \dp2=\z@ \ht2=\z@ \wd2=\z@ \box2 % - \setbox2=\hbox{\kern-\A@\raise-\B@ \noexpand\boxz@}% - \dp2=\z@ \ht2=\z@ \wd2=\z@ \box2 }% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \noexpand\styledboxz@}} - -\xydef@\triple@#1{\edef\Drop@@{\dimen@=#1\relax - \A@=-\sinDirection\dimen@ \B@=\cosDirection\dimen@ - \setboxz@h{\setbox2=\hbox{\kern\A@\raise\B@\copy\z@}% - \dp2=\z@ \ht2=\z@ \wd2=\z@ \box2 % - \setbox2=\hbox{\kern-\A@\raise-\B@\copy\z@}% - \dp2=\z@ \ht2=\z@ \wd2=\z@ \box2 % - \dp\z@=\z@ \ht\z@=\z@ \wdz@=\z@ \noexpand\boxz@}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \noexpand\styledboxz@}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Dashing directionals:} - - First traditional dashing: - -\DOCMODE( -\xydefcsname@{dir1{--}}{\dash@} -\xydefcsname@{dir2{--}}{\dash@ \double@\xydashh@} -\xydefcsname@{dir3{--}}{\dash@ \triple@\xydashh@} -\xyletcsnamecsname@{dir0{--}}{dir{}} -\xyletcsnamecsname@{dir{--}}{dir1{--}} -\xyletcsnamecsname@{dir{==}}{dir2{--}} - -\xydef@\dash@{\line@ \wdz@=2\wdz@ \ht\z@=2\ht\z@ \dp\z@=2\dp\z@ - \multiply\D@c\tw@ \multiply\U@c\tw@ \multiply\L@c\tw@ \multiply\R@c\tw@ - \def\Connect@@{\straight@\dashedSpread@}} -\DOCMODE) - - Since the dashes should reach the endpoints we do this: -$$ -\begin{array}{l} - "if"~ N\gt 0 ~"then"~ N := N+1\\ - dX := dX + d/2 ~"where"~ d = |\sd@X|A\\ - dY := dY + d/2 ~"where"~ d = |\sd@Y|B\\ - "if"~ dX\gt 0 ~"then"~ X := X + A/2\\ - Y := Y + |\sd@Y|A/2\\ -\end{array} -$$ -\DOCMODE( -\xydef@\dashedSpread@{\ifnum\z@<\count@@ \advance\count@@\@ne \fi - \advance\d@X\sd@X.5\A@ \advance\d@Y\sd@Y.5\B@ - \ifdim\z@<\d@X \advance\X@c.5\A@ \fi \advance\Y@c\sd@Y.5\B@} -\DOCMODE) - - Dashed dashing of squiggled lines are simpler since squiggles are - symmetric: - -\DOCMODE( -\xydefcsname@{dir1{~~}}{\dashsquiggle@} -\xydefcsname@{dir2{~~}}{\dashsquiggle@ \double@\xybsqlh@} -\xydefcsname@{dir3{~~}}{\dashsquiggle@ \triple@\xybsqlh@} -\xyletcsnamecsname@{dir0{~~}}{dir{}} -\xyletcsnamecsname@{dir{~~}}{dir1{~~}} - -\xydef@\dashsquiggle@{\squiggle@ - \multiply\D@c\tw@ \multiply\U@c\tw@ \multiply\L@c\tw@ \multiply\R@c\tw@ - \dimen@=\L@c \advance\dimen@\R@c \wdz@=\dimen@ \ht\z@=\U@c \dp\z@=\D@c - \def\Connect@@{\straight@\dashsquiggledSpread@}} -\DOCMODE) - - The spreading of squiggles is similarly simpler: we just shave $1/4$ - squiggle size of each end of the conection in order to eliminate the - blank space at both ends: - -\DOCMODE( -\xydef@\dashsquiggledSpread@{\ifnum\z@<\count@@ \advance\count@@\@ne \fi - \advance\X@c.5\A@ \advance\d@X.5\A@ \advance\Y@c.25\B@ \advance\d@Y.5\B@} -\DOCMODE) - - Finally ``dashed dotting'' synonyms: - -\DOCMODE( -\xyletcsnamecsname@{dir1{..}}{dir{.}} -\xyletcsnamecsname@{dir2{..}}{dir2{.}} -\xyletcsnamecsname@{dir3{..}}{dir3{.}} -\xyletcsnamecsname@{dir{..}}{dir1{.}} -\xyletcsnamecsname@{dir{::}}{dir2{.}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[Plain tips] - - The group of "plain tips" contains basic objects that are useful as - markers and arrowheads making connections, so each is shown at the - end of a dotted connection of the appropriate kind. - - They may also be used as connectors and will build dotted - connections. \eg, |**@{>}| typesets -$$ - \xy 0*++{}; (10,3)*++{} **@{>} \endxy -$$ - -\begin{exercise} - Typeset the following two $+$s and a tilted square: -\begin{code} -$$\xy - *{+}; p+(6,3)*{+} **{} ?(1) - *@{-} *!/-5pt/^\dir{-} - *^\dir{-} *!/^-5pt/\dir{-} -\endxy$$ -\end{code} -\docode -% - "Hint": the dash created by |\dir{-}| has the length |5pt| (here). -% -\answercode -\answertext{One way is} -\answertext\displaycode -\answertext{Thus we first create the two $+$s as $p$ and $c$ and connect them - with the dummy connection |**{}| to setup the direction parameters. - Then we move `on top of $c$' with |?(1)| and position the four sides - of the square using |^| and |_| for local direction changes and - |/|<dimen>|/| for skewing the resulting object by moving its - reference point in the opposite direction.}% -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xylet@\ctipEdge@=\czeroEdge@ -\DOCMODE) - - \TODO: Change tips to have a tiny size of 2sp which may be taken as - an indication that it is a tip (this can be used by some features, - \eg, `arrow'). - -\paragraph*{Arrow heads:} - - The ones intended for single connections are just characters from - ??c![\xyatipfont] and ??c![\xybtipfont]. - -\DOCMODE( -\xydefcsname@{dir1{>}}{\tip@} -\xydefcsname@{dir^{>}}{\atip@} -\xydefcsname@{dir_{>}}{\btip@} -\xyletcsnamecsname@{dir0{>}}{dir{}} -\xyletcsnamecsname@{dir{>}}{dir1{>}} - -\xydefcsname@{dir1{<}}{\reverseDirection@\tip@} -\xydefcsname@{dir^{<}}{\reverseDirection@\btip@} -\xydefcsname@{dir_{<}}{\reverseDirection@\atip@} -\xyletcsnamecsname@{dir0{<}}{dir{}} -\xyletcsnamecsname@{dir{<}}{dir1{<}} - -\xydef@\tip@{\tip@x\tip@@} -\xydef@\atip@{\tip@x\atip@@} -\xydef@\btip@{\tip@x\btip@@} - -\xydef@\tip@x#1{#1\egroup - \ctipEdge@ %\Invisible@false \Hidden@false - \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}} - -\xydef@\tip@@{\atip@@\btip@@} -\xydef@\atip@@{\xyatipfont\DirectionChar} -\xydef@\btip@@{\xybtipfont\DirectionChar} -\DOCMODE) - - Double and triple tips are realised by taking the two halfs and - `wringing them apart'; as the naming indicates they are meant to be - put at the end of |2|- and |3|-connections. This is currently done - the slightly hacky (but efficient) way of adding directly to - ??c![\DirectionChar]; maybe this should be using |\vDirection@|? - -\DOCMODE( -\xydefcsname@{dir2{>}}{\Tip@} -\xydefcsname@{dir2{<}}{\reverseDirection@\Tip@} - -\xydef@\Tip@{\kern2.5pt \vrule height2.5pt depth2.5pt width\z@ - \Tip@@ \kern2.5pt \egroup - \U@c=2.5pt \D@c=2.5pt \L@c=2.5pt \R@c=2.5pt \Edge@c={\circleEdge}% -% \Invisible@false \Hidden@false - \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}} - -\xydef@\Tip@@{\count@=\DirectionChar - \advance\count@-4 \ifnum\count@<\z@ \advance\count@128 \fi - \xyatipfont\char\count@ - \advance\count@ 8 \ifnum127<\count@ \advance\count@-128 \fi - \xybtipfont\char\count@} - -\xydefcsname@{dir3{>}}{\Ttip@} -\xydefcsname@{dir3{<}}{\composite@{}{:(-1,0)\dir3{>}}} - -\xydef@\Ttip@{\kern3.2pt \vrule height3.2pt depth3.2pt width\z@ - \Ttip@@ \kern3.2pt \egroup - \U@c=3.2pt \D@c=3.2pt \L@c=3.2pt \R@c=3.2pt \Edge@c={\circleEdge}% -% \Invisible@false \Hidden@false - \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}} - -\xydef@\Ttip@@{% - \setboxz@h\bgroup\reverseDirection@\line@ \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ - \kern-\L@c \boxz@ \kern\L@c - {\vDirection@(1,-.31)\xydashl@ \xyatipfont\char\DirectionChar}% - {\vDirection@(1,+.31)\xydashl@ \xybtipfont\char\DirectionChar}} -\DOCMODE) - -\paragraph*{Stopper:} - - |\dir{||}| makes a `stopper' using just the appropriate - ??c![\xydashfont] character rotated $90^\circ$ and centered; the |^| - and |_| variants are just shifted appropriately and two are used to - make the |2| and |3| variants longer. - -\DOCMODE( -\xydefcsname@{dir1{|}}{\stopper@} -\xydefcsname@{dir^{|}}{\aboveDirection@\xydashl@ - \shiftdir@\line@\z@ \pointlike@{}\xydashh@} -\xydefcsname@{dir_{|}}{\belowDirection@\xydashl@ - \shiftdir@\line@\z@ \pointlike@{}\xydashh@} -\xydefcsname@{dir2{|}}{\stopper@ \double@\xydashh@} -\xydefcsname@{dir3{|}}{\stopper@ \double@{2\xydashh@}} - -\xyletcsnamecsname@{dir0{|}}{dir{}} -\xyletcsnamecsname@{dir{|}}{dir1{|}} - -\xydef@\stopper@{\tip@x\stopper@@} - -\xydef@\stopper@@{\setboxz@h{\count@=\SemiDirectionChar \advance\count@64 % - \ifnum127<\count@ \advance\count@-128 \fi \xydashfont\char\count@\/}% - \setboxz@h{\kern-.5\wdz@ \dimen@=\sd@Y\cosDirection\xydashl@ - \ifnum\SemiDirectionChar=95 \dimen@=\sd@X\sd@Y\dimen@ \fi - \raise.5\dimen@\boxz@}% - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@} -\DOCMODE) - -\paragraph*{Hooks:} - - These are halfcircles opening towards or opposite ??c![\Direction] and - fastened by their center or either endpoint. Build by lots of box - manipulation with the ??c![\xybsqlfont] quarter circles\dots\smiley - -\DOCMODE( -\xydefcsname@{dir1{(}}{\hook@} -\xydefcsname@{dir^{(}}{\ahook@} -\xydefcsname@{dir_{(}}{\bhook@} -\xyletcsnamecsname@{dir0{(}}{dir{}} -\xyletcsnamecsname@{dir{(}}{dir1{(}} - -\xydefcsname@{dir1{)}}{\reverseDirection@\hook@} -\xydefcsname@{dir^{)}}{\reverseDirection@\bhook@} -\xydefcsname@{dir_{)}}{\reverseDirection@\ahook@} -\xyletcsnamecsname@{dir0{)}}{dir{}} -\xyletcsnamecsname@{dir{)}}{dir1{)}} - -\xydef@\hook@{\tip@x\hook@@} -\xydef@\hook@@{\setboxz@h{\xybsqlfont - \vDirection@(1,-1){.707107\xybsqll@}% - \hbox{\DirectionChar - \kern-\d@Y\raise\d@X\hbox{\count@=\DirectionChar \advance\count@-32 % - \ifnum\count@<\z@ \advance\count@128 \fi \char\count@}}}% - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@} - -\xydef@\ahook@{\tip@x\ahook@@} -\xydef@\ahook@@{\setboxz@h{\xybsqlfont - \vDirection@(1,-1){.707107\xybsqll@}\kern-\d@X - \lower\d@Y\hbox{\DirectionChar - \kern-\d@Y\raise\d@X\hbox{\count@=\DirectionChar \advance\count@-32 % - \ifnum\count@<\z@ \advance\count@128 \fi \char\count@}}}% - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@} - -\xydef@\bhook@{\tip@x\bhook@@} -\xydef@\bhook@@{\setboxz@h{\xybsqlfont - \vDirection@(-1,-1){.707107\xybsqll@}\DirectionChar - \kern\d@X\raise\d@Y\hbox{\count@=\DirectionChar \advance\count@-96 % - \ifnum\count@<\z@ \advance\count@128 \fi \char\count@}}% - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@} -\DOCMODE) - -\paragraph*{Quarter turns:} - - These are quarter circles fastened by their start or end point in - ??c![\Direction]. Build by box manipulation of the ??c![\xybsqlfont] - quarter circles. The intention is that the |`'| directionals are - half the corresponding |()| directional. - -\DOCMODE( -\xydefcsname@{dir^{'}}{\reverseDirection@\bturn@} -\xydefcsname@{dir_{'}}{\reverseDirection@\aturn@} - -\xydefcsname@{dir^{`}}{\aturn@} -\xydefcsname@{dir_{`}}{\bturn@} - -\xydef@\aturn@{\tip@x\aturn@@} -\xydef@\aturn@@{\setboxz@h{\xybsqlfont - \vDirection@(1,-1){.707107\xybsqll@}\kern-\d@X - \lower\d@Y\hbox{\DirectionChar}}% - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@} - -\xydef@\bturn@{\tip@x\bturn@@} -\xydef@\bturn@@{\setboxz@h{\xybsqlfont - \vDirection@(-1,-1){.707107\xybsqll@}\DirectionChar}% - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[Constructed tips] - - These tips are combinations of the plain tips provided for - convenience (and optimised for efficiency). New ones can be - constructed using ??c![\composite] and by declarations of the form -% -\begin{defs1} -% - ??c![\newdir] <dir> |{|<composite>|}|\cr -% -\end{defs1} -\noindent\unskip -% - which defines ??c![\dir]<dir> as the <composite> (see note~??[composite - object box] for the details). - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - ??c![\newdir] is simple: - -\DOCMODE( -\xydef@\newdir#1#{\newdir@{#1}} - -\xydef@\newdir@#1#2#3{\xydefcsname@{dir#1{#2}}{\composite@{}{#3}}} -\DOCMODE) - - Then the somewhat more efficient |\shiftdir@| used internally for - moving a tip in the current direction---it does so by making a local - hbox within which the argument tip is constructed and subsequently - shifted and made of zero size. Use as -$$ - |\shiftdir@|<tip@><dimen><tip@> -$$ - where <tip@> means a tip command without the leading |\hbox{|. - -\DOCMODE( -\xydef@\shiftdir@#1#2{% - \setbox\z@=\hbox\bgroup#1\relax - \setboxz@h{\dimen@ii=#2\relax - \dimen@=-\cosDirection\dimen@ii \advance\dimen@-\L@c - \kern\dimen@ \lower\sinDirection\dimen@ii\boxz@}% - \wdz@\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@} -\DOCMODE) - - Then the tips, with the |\tipjot@| hook allowing changing the spacing - of tips used for single lines. - -\DOCMODE( -\xylet@\tipjot@=\jot - -\xydefcsname@{dir1{>>}}{\shiftdir@\tip@\tipjot@ \tip@} -\xydefcsname@{dir^{>>}}{\shiftdir@\atip@\tipjot@ \atip@} -\xydefcsname@{dir_{>>}}{\shiftdir@\btip@\tipjot@ \btip@} -\xydefcsname@{dir2{>>}}{\composite@{}{h!/\tipjot@/\dir2{>}*\dir2{>}}} -\xydefcsname@{dir3{>>}}{\composite@{}{h!/\tipjot@/\dir3{>}*\dir3{>}}} -\xyletcsnamecsname@{dir0{>>}}{dir{}} -\xyletcsnamecsname@{dir{>>}}{dir1{>>}} - -\xydefcsname@{dir1{<<}}{\reverseDirection@ \shiftdir@\tip@\tipjot@ \tip@} -\xydefcsname@{dir^{<<}}{\reverseDirection@ \shiftdir@\btip@\tipjot@ \btip@} -\xydefcsname@{dir_{<<}}{\reverseDirection@ \shiftdir@\atip@\tipjot@ \atip@} -\xydefcsname@{dir2{<<}}{\composite@{}{h!/-\tipjot@/\dir2{<}*\dir2{<}}} -\xydefcsname@{dir3{<<}}{\composite@{}{h!/-\tipjot@/\dir3{<}*\dir3{<}}} -\xyletcsnamecsname@{dir0{<<}}{dir{}} -\xyletcsnamecsname@{dir{<<}}{dir1{<<}} - -\xydefcsname@{dir1{||}}{\shiftdir@\stopper@\xydashh@ \shiftdir@\stopper@\z@ - \pointlike@{}\jot} -\xydefcsname@{dir^{||}}{\shiftdir@{\aboveDirection@\xydashl@\line@}\xydashh@ - \shiftdir@{\aboveDirection@\xydashl@\line@}\z@ \pointlike@{}\jot} -\xydefcsname@{dir_{||}}{\shiftdir@{\belowDirection@\xydashl@\line@}\xydashh@ - \shiftdir@{\belowDirection@\xydashl@\line@}\z@ \pointlike@{}\jot} -\xydefcsname@{dir2{||}}{\shiftdir@\stopper@\xydashh@ \shiftdir@\stopper@\z@ - \pointlike@{}\jot \double@\xydashh@} -\xydefcsname@{dir3{||}}{\shiftdir@\stopper@\xydashh@ \shiftdir@\stopper@\z@ - \pointlike@{}\jot \double@{2\xydashh@}} -\xyletcsnamecsname@{dir0{||}}{dir{}} -\xyletcsnamecsname@{dir{||}}{dir1{||}} - -\xydefcsname@{dir1{>|}}{\shiftdir@\stopper@\z@ \tip@} -\xydefcsname@{dir2{>|}}{\composite@{}{\dir2{>}*\dir2{|}}} -\xydefcsname@{dir3{>|}}{\composite@{}{\dir3{>}*\dir3{|}}} -\xyletcsnamecsname@{dir0{>|}}{dir{}} -\xyletcsnamecsname@{dir{>|}}{dir1{>|}} - -\xydefcsname@{dir1{>>|}}{\shiftdir@\stopper@\z@ \shiftdir@\tip@\tipjot@ \tip@} -\xydefcsname@{dir2{>>|}}{\composite@{}{h!/\tipjot@/\dir2{>}*\dir2{>}*\dir2{|}}} -\xydefcsname@{dir3{>>|}}{\composite@{}{h!/\tipjot@/\dir3{>}*\dir3{>}*\dir3{|}}} -\xyletcsnamecsname@{dir0{>>|}}{dir{}} -\xyletcsnamecsname@{dir{>>|}}{dir1{>>|}} - -\xydefcsname@{dir1{|<}}{\reverseDirection@ \shiftdir@\stopper@\z@ \tip@} -\xydefcsname@{dir2{|<}}{\reverseDirection@ \shiftdir@\stopper@\z@ \Tip@} -\xydefcsname@{dir3{|<}}{\reverseDirection@ \shiftdir@\stopper@\z@ \Ttip@} -\xyletcsnamecsname@{dir0{|<}}{dir{}} -\xyletcsnamecsname@{dir{|<}}{dir1{|<}} - -\xydefcsname@{dir1{|<<}}{\reverseDirection@ - \shiftdir@\stopper@\z@ \shiftdir@\tip@\tipjot@ \tip@} -\xydefcsname@{dir2{|<<}}{% - \composite@{}{h!/-\tipjot@/\dir2{<}*\dir2{<}*\dir2{|}}} -\xydefcsname@{dir3{|<<}}{% - \composite@{}{h!/-\tipjot@/\dir3{<}*\dir3{<}*\dir3{|}}} -\xyletcsnamecsname@{dir0{|<<}}{dir{}} -\xyletcsnamecsname@{dir{|<<}}{dir1{|<<}} - -\xydefcsname@{dir1{|-}}{\shiftdir@\stopper@\z@ - \shiftdir@\line@\z@ \pointlike@{}\jot} -\xydefcsname@{dir^{|-}}{\shiftdir@{\aboveDirection@\xydashl@ \line@}\z@ - \shiftdir@\line@\z@ \pointlike@{}\jot} -\xydefcsname@{dir_{|-}}{\shiftdir@{\belowDirection@\xydashl@ \line@}\z@ - \shiftdir@\line@\z@ \pointlike@{}\jot} -\xydefcsname@{dir2{|-}}{\shiftdir@\stopper@\z@ - \shiftdir@\line@\z@ \pointlike@{}\jot \double@\xydashh@} -\xydefcsname@{dir3{|-}}{\shiftdir@\stopper@\z@ - \shiftdir@\line@\z@ \pointlike@{}\jot \triple@\xydashh@} -\xyletcsnamecsname@{dir0{|-}}{dir{}} -\xyletcsnamecsname@{dir{|-}}{dir1{|-}} -\xyletcsnamecsname@{dir{|=}}{dir2{|-}} - -\xydefcsname@{dir{+}}{% - \DN@##1{\composite@{}{##10\dir{|}*!C##10\dir{-}}}\addEQ@\next@} -\xyletcsnamecsname@{dir0{+}}{dir{}} - -\xydefcsname@{dir{x}}{\vDirection@(1,1)\jot - \DN@##1{\composite@{}{##10\dir{|}*!C##10\dir{-}}}\addEQ@\next@} -\xyletcsnamecsname@{dir0{x}}{dir{}} - -\xydefcsname@{dir{/}}{\vDirection@(1,-.3)\jot \stopper@} -\xyletcsnamecsname@{dir0{/}}{dir{}} - -\xydefcsname@{dir{//}}{\vDirection@(1,-.3)\jot - \shiftdir@\stopper@\xydashh@ \stopper@} -\xyletcsnamecsname@{dir0{//}}{dir{}} - -\xydefcsname@{dir{*}}{\solidpoint@} -\xydef@\solidpoint@{% - \pointlike@{\kern-1.8pt\lower1.8pt\hbox{$\scriptstyle\bullet$}}\jot} -\xyletcsnamecsname@{dir0{*}}{dir{}} - -\xydefcsname@{dir{o}}{\hollowpoint@} -\xydef@\hollowpoint@{% - \pointlike@{\kern-1.8pt\lower1.8pt\hbox{$\scriptstyle\circ$}}\jot} -\xyletcsnamecsname@{dir0{o}}{dir{}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{figure*}[ht] -\vss -\begin{syntax} -% - \multispan3|\cir| <radius> |{| <cir> |}|\hfil - & <cir>cle segment with <radius> -\cr -\noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} -% - ??w![<radius>] - &\iss & <empty> - & use $R_c$ as the radius -\cr - &\orr & <vector> - & use $X$ of the <vector> as radius -\cr -\noalign{\smallbreak} -% - ??w![<cir>] - &\iss & <empty> - & full circle of <radius> -\cr - &\orr & <diag> <orient> <diag> - & partial circle from first <diag>onal through to the - second <diag>onal in the <orient>ation -\cr -\noalign{\smallbreak} -% - ??w![<orient>] - &\iss & |^| - & anticlockwise -\cr - &\orr & |_| - & clockwise -\cr -\end{syntax} -\caption{\protect<cir>cles.} -??=[f.cir] -\vfill -\end{figure*} - - -\subsection{Circle segments} -??=[objectlib.circles] - -\DOCMODE( -\message{circles,} -\DOCMODE) - - Circle <object>s are round and typeset a segment of the circle - centered at the reference point. The syntax of circles is described - in figure~??[f.cir] with explanations below. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The |\cir| command is the hub: it parses the optional <radius> (to - |\R@|, default from $R_c$) and |{|<cir>|}|, bailing out with a - |\zerodot| if the radius is to small: - -\DOCMODE( -\xydef@\cir#1#{\hbox\bgroup - \afterVECTORorEMPTY{\xy@@{\R@=\X@c}\cir@}{\xy@@{\R@=\R@c}\cir@}#1@} - -\xydef@\cir@#1@#2{% - \DN@{#1}\ifx\next@\empty\else \xyerror@{illegal circle <radius>: must be - <vector> or <empty>}{}\fi - \afterCIRorDIAG{\xyFN@\cir@cir}{\xyFN@\cir@diag}#2@} -\DOCMODE) - - The code to actually typeset the <cir> just parsed starts by checking - that the <cir> was immediately followed by the |@| we put there in - |\cir|: - -\DOCMODE( -\xydef@\cir@cir{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\cir@cir}%gobble spaces - \else \ifx @\next \DN@ @{\cir@i}% - \else \xyerror@{illegal <cir>: must have form <diag><orient><diag> or - <empty>}{}% - \fi\fi \next@} -\DOCMODE) - - Similarly when an <empty> one was given---the parser will recognise - this as a <diag> but we hack that here: - -\DOCMODE( -\xydef@\cir@diag{% - \DN@{\xyerror@{illegal <cir>: must have form <diag><orient><diag> or - <empty>}{}}% - \ifx @\next \ifnum\count@=8 % - \DN@ @{\def\CIRin@@{0}\def\CIRorient@@{\CIRfull@}\def\CIRout@@{7}\cir@i}% - \fi\fi \next@} -\DOCMODE) - - \dots and then use the constructed methods to build it: - -\DOCMODE( -\xydef@\cir@i{% - \ifnum\CIRin@@=8 \xyerror@{incomplete <cir> specification}{% -The <cir> you specified as <diag><orient><diag> is not sufficiently specific.}% - \def\CIRin@@{0}\fi - \ifdim\R@<.5\p@ \R@=\z@ \zerodot - \else \CIRorient@@ \cirbuild@ \fi - \L@c=\R@ \R@c=\R@ \D@c=\R@ \U@c=\R@ \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\relax}% - \Edge@c={\circleEdge}\OBJECT@x} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Parsing:} - - The |\afterCIRorDIAG| parser handles the parsing: it either -% -\begin{itemize} - -\item - parses the <cir> and sets "in", "orient", and "out", and passes - control to the first argument continuation, or - -\item - parses the single <diag> specified, store it in |\count@| (as |8| if - an <empty> one given), and pass control to the second continuation - argument, - -\end{itemize} -% - where the <diag> internal representation number of note~??[diagonal] - of is used. An <empty> circle is treated as an <empty> diagonal; - specifying an <empty> first <diag> of a <cir> is equivalent to using - the value of the "in" method at call time. - - The parser is very simple, setting methods stored in the usual - |@@|-terminated control sequences (\TODO: Rename all non-method - control sequences that end in |@@|\dots to use |@|<romannumeral> - suffixes\dots): - -\DOCMODE( -\xydef@\CIRin@@{3} -\xydef@\CIRout@@{3} -\xylet@\CIRorient@@=\empty - -\xydef@\afterCIRorDIAG#1#2{\def\afterCIR@{#1}\def\afterCIRDIAG@{#2}\xyFN@\CIR@} - -\xylet@\afterCIR@=\empty -\xylet@\afterCIRDIAG@=\empty - -\xydef@\CIR@{\count@=8 \afterDIAG{\edef\CIRin@@{\the\count@}\xyFN@\CIR@@}} - -\xydef@\CIR@@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\CIR@@}%gobble spaces - \else\ifx ^\next - \DN@ ^{\def\CIRorient@@{\CIRacw@}% - \afterDIAG{\edef\CIRout@@{\the\count@}\afterCIR@}}% - \else\ifx _\next - \DN@_{\def\CIRorient@@{\CIRcw@}% - \afterDIAG{\edef\CIRout@@{\the\count@}\afterCIR@}}% - \else - \DN@{\def\CIRorient@@{\relax}\afterCIRDIAG@}% - \fi\fi\fi \next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The default is to generate a "full circle" with the specified radius, - \eg, -$$ -\def\quotesmash#1{\setbox0=\hbox{``$\vcenter{#1}$''}\ht0=8pt \dp0=3pt \box0} -\begin{array}{ccc} - |\xy*\cir<4pt>{}\endxy| - &\hbox{typesets}& \quotesmash{\xy*\cir<4pt>{}\endxy} -\cr - |\xy*{M}*\cir{}\endxy| - &\hbox{---}& \quotesmash{\xy*{M}*\cir{}\endxy} -\end{array} -$$ - All the other circle segments are subsets of this and have the shape - that the full circle outlines. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Finally we present the "orient" methods. They use these `internal - methods' to actually draw the circles - -\DOCMODE( -\xylet@\CIRtest@@=\relax -\xydef@\CIRlo@@{0} -\xydef@\CIRhi@@{0} -\DOCMODE) - - Below we call them "lo", "hi", and "test"; the first two are coded as - described in note ??[diagonal] and the last takes two arguments: a - dimension and something to do if the test succeeds. |\count@@| and - |\count@| should be set to "in" and "out" internally as well in case - |\cirbuild@| and friends below should be used. - - The dummy "orient" used for simple circles is the simplest: - -\DOCMODE( -\xydef@\CIRfull@{\def\CIRtest@@##1##2{##2}} -\DOCMODE) - - The kernel |\cirbuild@| builds the actual <object> using characters - from the ??c![\xycircfont] assumed coded like |xycirc10.mf|: - |\cirrestrict@@| choses a group and adjusts the radius |\R@| to fit it - exactly. The group is multiplied by 8 to get the group character - offset [|\count@|]. - -\DOCMODE( -\xydef@\cirbuild@{\cirrestrict@@ \multiply\count@8 % - \circhar@0\circhar@7\kern\dimen@ - \circhar@1\circhar@6\kern\dimen@ - \circhar@2\circhar@5\kern\dimen@ - \circhar@3\circhar@4\kern\dimen@} - -\xydef@\circhar@#1{% - \setboxz@h{\circhar@@{#1}}\dimen@=\wdz@ \wdz@=\z@ \ht\z@=\R@ \dp\z@=\R@ - \CIRtest@@#1{\styledboxz@}\setbox\z@=\copy\voidb@x} - -\xydef@\circhar@@#1{{\xycircfont \advance\count@#1\relax \char\count@}} -\DOCMODE) - - |\cirrestrict@@| computes the group $g$ [|\count@|] of circle segments - to use from the radius $r$ [|\R@|] using the formula (the reverse of - the one in |xycirc10.mf|) -$$ -\def\arraystretch{1} -g = \left\{ \begin{array}{ll} - \floor{r\over1|pt|}-1 &\textrm{if}~ 1|pt|\le r\lt 8|pt|\\ - \floor{r\over2|pt|}+3 &\textrm{if}~ 8|pt|\le r\lt 16|pt|\\ - \floor{r\over4|pt|}+7 &\textrm{if}~16|pt|\le r\lt 32|pt|\\ - 15 &\textrm{if}~32|pt|\le r \end{array} -\right. -$$ - (where we know from |\cir@i| that $r\ge\frac12|pt|$), and then - adjusts the radius to be exactly the one chosen through the use of - group $g$ using the formula in |xycirc10.mf|\dots this is necessary - because of the restriction on |tfm| files that they can only have 15 - different nonzero heights and depths. Subsequent calls to - |\cirrestrict@@| should compute the same values. - -\DOCMODE( -\xydef@\cirrestrict@@{\begingroup \dimen@=\R@ - \setboxz@h{\xycircfont\char\z@\char\@ne}\A@=\wdz@ - \ifdim\R@<8\A@ \count@=\dimen@ \divide\count@\A@ \advance\count@\m@ne - \else\ifdim\R@<16\A@ \count@=\dimen@ - \dimen@=2\A@ \divide\count@\dimen@ \advance\count@3 % - \else\ifdim\R@<32\A@ \count@=\dimen@ - \dimen@=4\A@ \divide\count@\dimen@ \advance\count@7 % - \else \count@=15 \fi\fi\fi - \R@=\A@ - \ifnum\count@<8 \multiply\R@\count@ \advance\R@\A@ - \else\ifnum\count@<12 \multiply\R@\count@ \multiply\R@\tw@ \advance\R@-6\A@ - \else\ifnum\count@<16 \multiply\R@\count@ \multiply\R@ 4 \advance\R@-28\A@ - \else \multiply\R@ 32 \fi\fi\fi - \edef\@tmp{\endgroup \R@=\the\R@ \count@=\the\count@}\@tmp} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - "Partial circle segments" with <orient>ation are the part of the full - circle that starts with a tangent vector in the direction of the - first <diag>onal (see note~??[diagonal]) and ends with a tangent - vector in the direction of the other <diag>onal after a clockwise - (for |_|) or anticlockwise (for |^|) turn, \eg, -$$ -\def\quotesmash#1{\setbox0=\hbox{``$\vcenter{#1}$''}\ht0=8pt \dp0=3pt \box0} -\begin{array}{ccc} - |\xy*\cir<4pt>{l^r}\endxy| - &\hbox{typesets}& \quotesmash{\xy*\cir<4pt>{l^r}\endxy} -\\ - |\xy*\cir<4pt>{l_r}\endxy| - &\hbox{---}& \quotesmash{\xy*\cir<4pt>{l_r}\endxy} -\\ - |\xy*\cir<4pt>{dl^u}\endxy| - &\hbox{---}& \quotesmash{\xy*\cir<4pt>{dl^u}\endxy} -\\ - |\xy*\cir<4pt>{dl_u}\endxy| - &\hbox{---}& \quotesmash{\xy*\cir<4pt>{dl_u}\endxy} -\\ - |\xy*+{M}*\cir{dr_ur}\endxy| - &\hbox{---}& \quotesmash{\xy*+{M}*\cir{dr_ur}\endxy} -\end{array} -$$ - If the same <diag> is given twice then nothing is typeset, \eg, -$$ -\def\quotesmash#1{\setbox0=\hbox{``$\vcenter{#1}$''}\ht0=8pt \dp0=3pt \box0} -\begin{array}{ccc} - |\xy*\cir<4pt>{u^u}\endxy| - &\hbox{typesets}& \quotesmash{\xy*\cir<4pt>{u^u}\endxy} -\end{array} -$$ - Special care is taken to setup the <diag>onal defaults: -% -\begin{itemize} - -\item - After |^| the default is the diagonal $90^\circ$ anticlockwise from - the one before the |^|. - -\item - After |_| the default is the diagonal $90^\circ$ clockwise from the - one before the |_|. - -\end{itemize} -% - The <diag> before |^| or |_| is required for ??c![\cir] <objects>. - -\begin{exercise} - Typeset the following shaded circle with radius |5pt|: -% -\begin{code} -$$\xy - *\cir<5pt>{} - *!<-.2pt,.2pt>\cir<5pt>{dr^ul} - *!<-.4pt,.4pt>\cir<5pt>{dr^ul} - *!<-.6pt,.6pt>\cir<5pt>{dr^ul} -\endxy$$ -\end{code} -\docode -% -\answertext{One way is to add extra half circles skewed such that they create - the illusion of a shade:} -\answercode -\answertext\displaycode -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - These two macros implement the defaults and setup of "lo" and "hi" - for anticlockwise and clockwise segments. Here is what they set: -$$ -\begin{array}{\otherbar c\otherbar cc\otherbar l\otherbar} -\hline - ??w![<cir>] & "lo" & "hi" & "test"(s) \\ -\hline - d_1|^|d_2, d_1\le d_2 & d_1 -_8 1 & d_2 -_8 1 & {"lo"\le s}\wedge{s\lt "hi"}\\ - d_1|^|d_2, d_1\gt d_2 & d_2 -_8 1 & d_1 -_8 1 & {s \lt"lo"} \vee {"hi"\le s}\\ - d_1|_|d_2, d_1\lt d_2 & d_1 +_8 3 & d_2 +_8 3 & {s \lt"lo"} \vee {"hi"\le s}\\ - d_1|_|d_2, d_1\ge d_2 & d_2 +_8 3 & d_1 +_8 3 & {"lo"\le s}\wedge{s\lt "hi"}\\ -\hline -\end{array} -$$ - where $+_8$ and $-_8$ are $+$ and $-$ modulo 8; $d_1$ and $d_2$ are - in |\count@@| and |\count@|, respectively. - -\DOCMODE( -\xydef@\CIRacw@{\count@@=\CIRin@@ \count@=\CIRout@@ - \ifnum\count@=8 \count@=\count@@ - \ifnum\count@<6 \advance\count@\tw@ \else \advance\count@-6 \fi \fi - \ifnum\count@@<\@ne \advance\count@@7 \else \advance\count@@\m@ne \fi - \ifnum\count@<\@ne \advance\count@7 \else \advance\count@\m@ne \fi - \ifnum\count@@>\count@ \let\CIRtest@@=\CIRtest@outside - \edef\CIRlo@@{\the\count@}\edef\CIRhi@@{\the\count@@}% - \else \let\CIRtest@@=\CIRtest@inside - \edef\CIRlo@@{\the\count@@}\edef\CIRhi@@{\the\count@}% - \fi} - -\xydef@\CIRcw@{\count@@=\CIRin@@ \count@=\CIRout@@ - \ifnum\count@=8 \count@=\count@@ - \ifnum\count@>\@ne \advance\count@-\tw@ \else \advance\count@6 \fi \fi - \ifnum\count@@<5 \advance\count@@\thr@@ \else \advance\count@@-5 \fi - \ifnum\count@<5 \advance\count@\thr@@ \else \advance\count@-5 \fi - \ifnum\count@@<\count@ \let\CIRtest@@=\CIRtest@outside - \edef\CIRlo@@{\the\count@@}\edef\CIRhi@@{\the\count@}% - \else \let\CIRtest@@=\CIRtest@inside - \edef\CIRlo@@{\the\count@}\edef\CIRhi@@{\the\count@@}% - \fi} - -\xydef@\CIRtest@inside#1#2{\let\next@=\relax - \ifnum\CIRlo@@>#1\else \ifnum#1<\CIRhi@@\DN@{#2}\fi\fi \next@} - -\xydef@\CIRtest@outside#1#2{\let\next@=\relax - \ifnum\CIRlo@@>#1\DN@{#2}\else \ifnum#1<\CIRhi@@\else\DN@{#2}\fi\fi \next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Text} -??=[objectlib.text] - -\DOCMODE( -\message{text;} -\DOCMODE) - - Text in pictures is supported through the <object> construction -% -\begin{defs1} -??c![\txt] <width> <style> |{|<text>|}|\cr -\end{defs1} -\noindent\unskip -% - that builds an object containing <text> typeset to <width> using - <style>; in <text> |\\| can be used as an explicit line break; all - lines will be centered. <style> should either be a font command or - some other stuff to do for each line of the <text> and <width> should - be either |<|<dimen>|>| or <empty>. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The code just parses the <width> defaulting it to |<\maxdimen>| which - is recognised as `free form'. - -\DOCMODE( -\xydef@\txt{\hbox\bgroup \xyFN@\txt@} - -\xydef@\txt@{% - \addLT@\ifx\next \addGT@{\addLT@\DN@##1}{\A@=##1\txt@i}% - \else \DN@{\A@=\maxdimen \txt@i}\fi \next@} - -\xydef@\txt@i#1#{% - \setboxz@h{#1\mathstrut}\dimen@=\ht\z@ \advance\dimen@\dp\z@ - \baselineskip=1.1\dimen@ \lineskip=.2\dimen@ \lineskiplimit=\lineskip - \def\txtline@@##1{\txtline@{#1}{##1}}\object@\txt@ii} - -\xylet@\txtline@@=\eat@ -\xydef@\txtline@#1#2{\relax\setboxz@h{#1{\ignorespaces #2\unskip}}% - \ifdim\A@<\wdz@ \setboxz@h{\hsize=\A@ - \leftskip=0pt plus4em \rightskip=\leftskip - \parfillskip=0pt \parindent=0pt % - \spaceskip=.3333em \xspaceskip=.5em % - \pretolerance=9999 \tolerance=9999 % - \hyphenpenalty=9999 \exhyphenpenalty=9999 % - \vbox{#1\noindent\ignorespaces #2\unskip}}% - \else\ifdim\A@<\maxdimen\setboxz@h to\A@{\hfil\boxz@\hfil}\fi\fi - \boxz@} - -\xydef@\txt@ii#1{\vbox{% - \let\\=\cr - \tabskip=\z@skip \halign{\relax\hfil\txtline@@{##}\hfil\cr\leavevmode#1\crcr}}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section{\Xy-pic options} -??=[option] -% - \NOTE: \LaTeXe\ users should also consult the paragraph on ``xy.sty'' - in~\S??[env.loading]. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Loading} -??=[option.loading] -% - \Xy-pic is provided with a growing number of options supporting - specialised drawing tasks as well as exotic output devices with - special graphic features. These should all be loaded using this - uniform interface in order to ensure that the \Xy-pic environment is - properly set up while reading the option. -% -\begin{defs1} -% - ??c![\xyoption] |{| <option> |}| \cr - ??c![\xyrequire] |{| <option> |}| -% -\end{defs1} -\noindent\unskip -% - ??c![\xyoption] will cause the loading of an \Xy-pic option file - which can have one of several names. These are tried in sequence: - |xy|<option>|.tex|, |xy|<option>|.doc|, |xy|<short>|.tex|, and - |xy|<short>|.doc|, where <short> is <option> truncated to 6 (six) - characters to conform with the TWG-TDS~\cite{TWG-TDS}. - - ??c![\xyrequire] is the same except it is ignored if an option with - the same name is already present (thus does not check the version - etc.). - -\DOCMODE( -\message{options;} - -\xylet@\xyoption@@=\relax - -\xydef@\xyoption#1{\DN@{#1}\edef\next@{\codeof\next@}% - \csname xyeveryrequest@\next@ @\endcsname - \xyinputorelse@{xy#1}{\xyoption@truncated#1@@@@@@@@@,#1@}% - \def\xyoption@@{#1}\edef\xyoption@@{\codeof\xyoption@@} - \expandafter\let\expandafter\next@\csname xy\xyoption@@ version\endcsname - \expandafter\let\csname xy\xyoption@@ loaded\endcsname=\next@ - \runxywith@ \ignorespaces} - -\xydef@\xyoption@truncated#1#2#3#4#5#6#7@#8,#9@{% - \DN@{#7}\ifx\next@\empty \DN@##1##2{##2}\else\let\next@=\xyinputorelse@ \fi - \next@{xy#1#2#3#4#5#6}% - {\DN@{#1#2#3#4#5#6}\edef\next@{\codeof\next@}% - \xyerror@{No `\next@' option}{% -Your \xyoption{#9} request could not be granted: the required^^J% -file `xy#9.tex' could not be located. Please make sure that it is^^J% -properly installed before continuing.}}} - -\xydef@\xyrequire#1{\DN@{#1}\edef\next@{\codeof\next@}% - \csname xyeveryrequest@\next@ @\endcsname - \expandafter\let\expandafter\next@\csname xy\codeof\next@ loaded\endcsname - \ifx \next@\relax \DN@{\xyoption{#1}}\else \DN@{\ignorespaces}\fi \next@} -\DOCMODE) - - Sometimes some declarations of an option or header file or whatever - only makes sense after some particular other option is loaded. In - that case the code should be wrapped in the special command -% -\begin{defs1} - ??c![\xywithoption] |{| <option> |}| |{| <code> |}| \cr -\end{defs1} -\noindent\unskip -% - which indicates that if the <option> is already loaded then <code> - should be executed now, otherwise it should be saved and if <option> - ever gets loaded then <code> should be executed afterwards. \NOTE: - The <code> should allow more than one execution; it is saved with the - catcodes at the time of the ??c![\xywithoption] command. - -\DOCMODE( -\xylet@\xywith@@=\empty - -\xydef@\runxywith@{\let\xywithdo@@=\xywithtest@ \xywith@@} - -\xydef@\xywithoption#1#2{\DN@{#1}\edef\next@{\codeof\next@}% - \expandafter\let\expandafter\nextii@\csname xy\next@ loaded\endcsname - \ifx \nextii@\relax - \expandafter\def\expandafter\xywith@@\expandafter{\xywith@@ - \xywithdo@@{#1}{#2}}% - \else \expandafter\xywithrun@\expandafter{\next@}{#2}\fi} - -\xydef@\xywithtest@#1#2{\DN@{#1}\edef\next@{\codeof\next@}% - \ifx\next@\xyoption@@ \expandafter\xywithrun@\expandafter{\next@}{#2}\fi} - -\xydef@\xywithrun@#1#2{\csname xyeverywithoption@#1@\endcsname #2} -\DOCMODE) - - Finally, it is possible to declare <code> as some commands to be - executed before every actual execution of - ??c![\xywithoption]\-|{|<option>|}|\-|{|\dots|}|, and similarly - <code> to be executed before every |\xyoption{|<option>|}| and - |\xyrequire{|<option>|}| (collectively called `requests'):: -% -\begin{defs1} - ??c![\xyeverywithoption] |{| <option> |}| |{| <code> |}| \cr - ??c![\xyeveryrequest] |{| <option> |}| |{| <code> |}| \cr -\end{defs1} -\noindent\unskip -% - This is most often used by an option to activate some hook every time - it is requested itself. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - These last two use the usual expansion trickery to define or append - to the control sequences named |\xyevery|\-|request@|\-<option>|@| - and |\xyevery|\-|withoption@|\-<option>|@| used in the definitions - above. - -\DOCMODE( -\xydef@\xyevery@#1#2#3{\DN@{#2}\edef\next@{\codeof\next@}% - \expandafter\ifx\csname xyevery#1@\next@ @\endcsname\relax - \expandafter\let\csname xyevery#1@\next@ @\endcsname=\empty \fi - \DNii@##1{\expandafter\def\expandafter##1\expandafter{##1#3}}% - \expandafter\nextii@\csname xyevery#1@\next@ @\endcsname} - -\xydef@\xyeveryrequest{\xyevery@{request}} -\xydef@\xyeverywithoption{\xyevery@{withoption}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Option file format} -??=[option.fileformat] -% - Option files must have the following structure: - -\begin{quote} - |%%| <identification> \\ - |%%| <copyright, \etc> - - |\ifx\xyloaded\undefined \input xy \fi| - - |\xyprovide{|<option>|}{|<name>|}{|<version>|}%| \\ - \null\qquad\qquad |{|<author>|}{|<email>|}{|<address>|}| - - ??w![<body of the option>] - - ??c![\xyendinput] -\end{quote} -% - The 6 arguments to ??c![\xyprovide] should contain the following: -% -\begin{description} - -\item[<option>] - Option load name as used in the ??c![\xyoption] command. This should - be safe and distinguishable for any operating system and is thus - limited to characters chosen among the lowercase letters (|a|--|z|), - digits (|0|--|9|), and dash (|-|), and all options should be uniquely - identifiable by the first 6 (six) characters only. - -\item[<name>] - Descriptive name for the option. - -\item[<version>] - Identification of the version of the option. - -\item[<author>] - The name(s) of the author(s). - -\item[<email>] - The electronic mail address(es) of the author(s) "or" the affiliation - if no email is available. - -\item[<address>] - The postal address(es) of the author(s). - -\end{description} -% - This information is used not only to print a nice banner but also to - (1)~silently skip loading if the same version was preloaded and - (2)~print an error message if a different version was preloaded. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The ??c![\xyprovide] command checks that the option is not already - loaded and that the loaded version is the same as the preloaded one - by checking the existence and contents of the macro - |\xy|<option>|loaded|. Finally it calls ??c![\xycatcodes] such that - the option internals are loaded in `\TeX\ programming mode'. - ??c![\xyendinput] undoes this. - -\DOCMODE( -\xydef@\xyprovide#1#2#3#4#5#6{% - \def\xyoption@@{#1}\edef\xyoption@@{\codeof\xyoption@@}\edef\next@{#3}% - \message{ Xy-pic option: #2 v.\next@}% - \expandafter\let\expandafter\nextii@\csname xy\xyoption@@ loaded\endcsname - \ifx \next@\nextii@ \message{not reloaded}\endinput - \else - \ifx \nextii@\relax\else \xyerror@{Option `\xyoption@@' version mismatch}{% -You previously loaded, or the format has preloaded, a different version^^J% -of this option. Just continue to try to load this version instead (and^^J% -be prepared for a lot of warnings about redefinitions).}% - \fi - \expandafter\let\csname xy\xyoption@@ version\endcsname=\next@ - \expandafter\let\expandafter\xyenddocmode@\csname DOCMODE\endcsname - \expandafter\let\csname DOCMODE\endcsname\xyprovidedocmode@ - \xycatcodes - \fi \ignorespaces} - -\xydef@\xyendinput{\expandafter\let\csname DOCMODE\endcsname=\xyenddocmode@ - \message{loaded}\xyuncatcodes\endinput} -\DOCMODE) - - The above is futher complicated because an option may loaded in its - |DOCMODE| form (ending in |.doc|). So we make sure that the mode - that skips documentation, defined in the |xy.tex| file header, is - active now. - -\DOCMODE( -\expandafter\xylet@\expandafter\xyprovidedocmode@\csname DOCMODE\endcsname -\xylet@\xyenddocmode@=\relax -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The `dummy' option described in~\S??g[:dummy] is a minimal option - using the above features. It uses the special |DOCMODE| format to - include its own documentation for this document (like all official - \Xy-pic options) but this is not a requirement. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Driver options} -??=[option.drivers] -% - The ??w![<driver>] options described in \GROUP~??g[:drivers] require - special attention because each driver can support several - ??w![extension] options, and it is sometimes desirable to change - <driver> or even mix the support provided by several.\footnote{The - kernel support described here is based on the (now defunct) - |xydriver| include file by Ross Moore.} - - A <driver> option is loaded as other options with - |\xyoption{|<driver>|}| (or through \LaTeXe\ class or package options - as described in~\S??[env.loading]). The special thing about a - <driver> is that loading it simply declares the name of it, - establishes what extensions it will support, and selects it - temporarily. Thus the special capabilities of the driver will only - be exploited in the produced DVI file if some of these extensions are - also loaded and if the driver is still selected when output is - produced. Generally, the order in which the options are loaded is - immaterial. (Known exceptions affect only internal processing and - are not visible to the user in terms of language and expected output.) - In particular one driver can be preloaded in a format and a different - one used for a particular document. - - The following declarations control this: -% -\begin{defs} -??c![\UseSingleDriver] & forces one driver only \cr -??c![\MultipleDrivers] & allows multiple drivers \cr -??c![\xyReloadDrivers] & resets driver information \cr -\end{defs} -\noindent\unskip -% - The first command restores the default behaviour: that ony one - <driver> is allowed, \ie, each loading of a <driver> option cancels - the previous. The second allows consecutive loading of drivers such - that when loading a <driver> only the extensions actually supported - are selected, leaving other extensions supported by previously - selected drivers untouched. Beware that this can be used to create - DVI files that cannot be processed by any actual DVI driver program! - - The last command is sometimes required to reset the \Xy-pic <driver> - information to a sane state, for example, after having applied one of - the other two in the middle of a document, or when using simple - formats like plain \TeX\ that do not have a clearly distinguished - preamble. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Driver database.} - - The main structure, the list of `loaded' and `selected' <driver>s - (ordered by age), is implemented as traditional \TeX\ `|\do|-lists' - (applications of |\do{|<driver>|}| to each element). - -\DOCMODE( -\xydef@\xydriversloaded@@{\do{unload}} -\xylet@\xydriversselected@@=\empty -\DOCMODE) -% - This is used to provide entry points into a secondary structure that - lists for each <driver> the extensions supported by that driver. As - should be apparent from the above, only the |unload| <driver> is - present initially: it represents the implementation technique used - for the extension when no <driver> is selected. Every extension must - add an entry which reestablishes the default implementation of the - extension: - -\DOCMODE( -\xylet@\xydriver@unload@support@@=\empty -\DOCMODE) -% - All <driver>s will have a similar structure named - |\xydriver@|\-<driver>\-|@support@@| which contains the extensions - supported by that particular <driver>: the `signature' of each driver - as |\doii|-list with two arguments (hence the |ii|~\smiley~): the - extension and the command to install the <driver>-extension - combination. - - The two selection principles differ significantly. When only a - single <driver> is selectable then all extensions need to be unloaded - "before" the selection. When multiple <driver>s are allowed then - only the added support needs to be executed. - -\DOCMODE( -\xydef@\selectdriver@#1{\DN@{#1}\edef\next@{\codeof\next@}% - \expandafter\selectdriver@@\expandafter{\next@}} - -\xydef@\selectdriver@single#1{\xysetup@@{\def\xydriversselected@@{\do{#1}}% - \xyLoadDrivers@}\let\selectdriver@@=\changedriver@single} - -\xydef@\changedriver@single#1{\xysetup@@{\def\xydriversselected@@{\do{#1}}% - \xyReloadDrivers@}} - -\xydef@\selectdriver@multiple#1{\expandafter\xysetup@@\expandafter{% - \expandafter\def\expandafter\xydriversselected@@\expandafter{% - \xydriversselected@@ \do{#1}}% - \let\do=\activatedriver@ \xydriversselected@@}} - -\xydef@\UseSingleDriver{\let\selectdriver@@=\selectdriver@single} -\xydef@\MultipleDrivers{\let\selectdriver@@=\selectdriver@multiple} - -\xydef@\xyLoadDrivers@{\let\do=\activatedriver@ \xydriversselected@@} -\xydef@\xyReloadDrivers@{\activatedriver@{unload}\xyLoadDrivers@} -\xylet@\xyReloadDrivers=\xyReloadDrivers@ - -\xydef@\activatedriver@#1{% - \let\doii=\activatedriversupport@ \csname xydriver@#1@support@@\endcsname} - -\xydef@\activatedriversupport@#1#2{% - \expandafter\ifx\csname xy#1loaded\endcsname\relax\DN@{}% - \else\DN@{#2}\fi \next@} - -\UseSingleDriver -\DOCMODE) - - Finally we define the following to get complete independence of load - sequence: at every loading of an extension option known to be - supported, we run through the list of presently selected drivers to - activate any support for it, using the following: - -\DOCMODE( -\xydef@\xyselectoptionsupport@{\let\do=\activatedriver@ \xydriversselected@@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - As the above suggests it sometimes makes sense to load <driver>s in - the actual textual part of a document, however, it is recommended - that only drivers "also" loaded in the preamble are reloaded later, - and that ??c![\xyReloadDrivers] is used when there is doubt about the - state of affairs. In case of confusion the special command - ??c![\xyShowDrivers] will list all the presently supported and - selected driver-extension pairs to the \TeX\ log. - -\DOCMODE( -\xydef@\xyShowDrivers{{\W@{Loaded:}\let\do=\doShow \xydriversloaded@@ - \let\next@=\empty - \def\do##1{\ifx\next@\empty \DN@{##1}% - \else \expandafter\DN@\expandafter{\next@, ##1}\fi}% - \xydriversselected@@\W@{Selected: \next@.}}} - -\def\doShow#1{\let\next@=\empty - \def\doii##1##2{\ifx\next@\empty \DN@{##1}% - \else \expandafter\DN@\expandafter{\next@, ##1}\fi}% - \csname xydriver@#1@support@@\endcsname - \W@{ <driver> #1 supports \next@.}} -\DOCMODE) - -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - It is not difficult to add support for additional <driver>s; how is - described in the \TeX\-nical documentation. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Driver internals.} - - A <driver> option files must have the following structure: - -\begin{quote} - |%%| <identification> \\ - |%%| <copyright, \etc> - - |\ifx\xyloaded\undefined \input xy \fi| - - |\xyprovide{|<option>|}{|<name>|}{|<version>|}%| \\ - \null\qquad\qquad |{|<author>|}{|<email>|}{|<address>|}| - - |\newdriver{%|\\ - |\xyaddsupport{|<extension>|}|<cs>\\ - \vdots\\ - |}| - - <body of the {<driver>} option> - - ??c![\xyendinput] -\end{quote} -% - There should be an ??c![\xyaddsupport] command for each supported - <extension> which specicifies the <cs> (control sequence) with which - the indicated support is "activated". - - The ??c![\newdriver] command first establishes the `support' list for - the <driver> (running the argument), then adds the <driver> to the - `loaded' list, and finally selects it now and for every subsequent - request of this <driver> option. - - It is important that the <cs> that "activates" each driver/extension - combination only does "rebinding of hooks". In order to see what - hooks are available for an extension, look for declarations of the - form -% -\begin{defs1} - ??c![\xyaddunsupport] |{|<extension>|}| <cs> -\end{defs1} -\noindent\unskip -% - and see what rebindings that <cs> does: those are the - hokks. "because" they are the ones that will be safely reestablished! - This should be adherede to because both activation and deactivation - <cs>s may be executed many times. - - The procedure is as follows: (??_[newdr1])~add the driver and clear - its support control sequence unless it is already defined, - (??_[newdr2])~execute the support commands, and (??_[newdr3])~setup - to select it after loading. - -\DOCMODE( -\xydef@\newdriver#1{% - \def\nextiii@##1{%?*[newdr1] - \expandafter\def\expandafter\xydriversloaded@@ - \expandafter{\xydriversloaded@@\do{##1}}% - \expandafter\let\csname xydriver@\xyoption@@ @support@@\endcsname=\empty}% - \def\do##1{\DNii@{##1}\ifx\xyoption@@\nextii@ \let\nextiii@=\eat@ \fi}% - \xydriversloaded@@ \expandafter\nextiii@\expandafter{\xyoption@@}% - #1\relax %?*[newdr2] - \DN@##1{\xywithoption{##1}{%?*[newdr3] - \selectdriver@{##1}\xyeveryrequest{##1}{\selectdriver@{##1}}}}% - \expandafter\next@\expandafter{\xyoption@@}\ignorespaces} -\DOCMODE) - - The support commands merely add to the support |\do|-lists which in - turn (??_[adddr1])~adds |\doii{|<extension>|}{|\dots|}| to the - |\xydriver@|<driver>|@support@@| control sequence and adds a check - for when to apply it every time that <extension> is requested! - - -\DOCMODE( -\xydef@\xyaddsupport{\expandafter\xyadddriversupport@\expandafter{\xyoption@@}} -\xydef@\xyaddunsupport{\xyadddriversupport@{unload}} - -\xydef@\xyadddriversupport@#1#2#3{% - \DNii@{#1}\edef\nextii@{\codeof\nextii@}% - \def\nextiii@{#2}\edef\nextiii@{\codeof\nextiii@}% -% -% CHECK that the <driver> is loaded! -\def\next{\xybug@{<driver> \nextii@\space not loaded}}% -\def\do##1{\DN@{##1}\edef\next@{\codeof\next@}% - \ifx\next@\nextii@ \let\next=\relax \fi}\xydriversloaded@@ \next -% -% CHECK that the specified <extension> is not already supported! -\def\next{\xybug@{<driver> \nextii@\space already supports \nextiii@}}% -\def\doii##1##2{\DN@{##1}\edef\next@{\codeof\next@}% - \ifx\next@\nextiii@ \let\next=\relax \fi}\xydriversloaded@@ \next -% - \DN@##1##2{\ifx##1\relax \let##1=\empty \fi %?*[adddr1] - \expandafter\def\expandafter##1\expandafter{##1\doii{##2}{#3}}}% - \expandafter\expandafter\expandafter\next@ - \expandafter\expandafter\csname xydriver@\nextii@ @support@@\endcsname - \expandafter{\nextiii@}% - \DN@##1{\expandafter\xyeverywithoption\expandafter{\nextiii@}{% - \xytestforsupport@{##1}}}% - \expandafter\next@\expandafter{\nextii@}\xydriversloaded@@ - \ignorespaces} - -\xydef@\xytestforsupport@#1{\def\do##1{\DN@{##1}\DNii@{#1}% - \ifx\next@\nextii@ \expandafter\xyselectoptionsupport@ \fi}} -\DOCMODE) - -\paragraph*{Driver related messages.} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Most extensions will print a warning when a capability is used which - is not supported by the presently loaded <driver>. Such messages are - only printed once, however, (for some formats they are repeated at - the end). Similarly, when the support of an extension that exploits - a particular <driver> is used a warning message will be issued that - the DVI file is not portable. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This is implemented by defining a control sequence for each such - warning and repeat it at the end. Warnings should be issued using - one of -% -\begin{defs1} -|\xyununsupportwarning@| |{|<extension>|}| |{|<message>|}|\cr -|\xyunsupportwarning@| |{|<driver>|}| |{|<extension>|}| \cr -\end{defs1} - -\DOCMODE( -\xynew@{if}\ifunsupportwarnings@ - -\xydef@\xyunsupportwarning@#1#2{{% - \DN@{#1}\edef\next@{\codeof\next@} - \expandafter\ifx\csname xywarn@unload@\next@ @\endcsname\relax - \expandafter\gdef\csname xywarn@unload@\next@ @\endcsname{}% - \ifunsupportwarnings@ \xyclosedown@@\xyunsupportwarnings@@ \fi - \global\unsupportwarnings@true - \expandafter\gdef\expandafter\xyunsupportwarnings@@\expandafter{% - \xyunsupportwarnings@@ \W@{ #2.}}% - \W@{}% - \W@{Xy-pic Warning: `\next@' reproduction is NOT EXACT\xytracelineno@:}% - \W@{ #2.}% - \W@{}% - \fi}} - -\xydef@\xyunsupportwarnings@@{\W@{}% - \W@{Xy-pic Warning: The produced DVI file is NOT EXACT:}} - -\xynew@{if}\ifsupportwarnings@ - -\xydef@\xysupportwarning@#1#2{{% - \DN@{#1}\edef\next@{\codeof\next@}\DNii@{#2}\edef\nextii@{\codeof\nextii@}% - \expandafter\ifx\csname xywarn@\next@ @\nextii@ @\endcsname\relax - \expandafter\gdef\csname xywarn@\next@ @\nextii@ @\endcsname{}% - \ifsupportwarnings@ \xyclosedown@@\xysupportwarnings@@ \fi - \global\supportwarnings@true - \expandafter\gdef\expandafter\xysupportwarnings@@\expandafter{% - \xysupportwarnings@@ \driverextensioncomplain@{#1}{#2}}% - \W@{}% - \W@{Xy-pic Warning: The produced DVI file is NOT PORTABLE\xytracelineno@:}% - \driverextensioncomplain@{#1}{#2}% - \W@{}% - \fi}} - -\xydef@\xysupportwarnings@@{% - \W@{Xy-pic Warning: The produced DVI file is NOT PORTABLE:}} - -\xydef@\driverextensioncomplain@#1#2{% - \DN@{#1}\edef\next@{\codeof\next@}\DNii@{#2}\edef\nextii@{\codeof\nextii@}% - \W@{ It contains <driver> `\next@' \string\special s for the `\nextii@' - extension.}} -\DOCMODE) - - Backwards compatibility\dots - -\DOCMODE( -\xydef@\dvimessage@#1#2{\xysupportwarning@{#1}{#2}} - -\xynew@{if}\ifxydrivernoloads@ -\xydef@\xydrivernoload@#1{\xyerror@{Could not load xy#1.tex}{}% - \xydrivernoloads@true} - -\xydef@\xydriverfail@#1{\xyerror@{Sorry, #1 not supported.}{}} - -\xydef@\xyunload@#1{\xywarning@{Unloading #1.}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section{Algorithms} -??=[algo] - - This section presents the more complicated algorithms used in - \Xy-pic. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Directions} -??=[algo.direction] - -\DOCMODE( -\message{algorithms: directions,} -\DOCMODE) - - The "direction state" is described by the following parameters: -% -\begin{defs} -"Direction" & `angle' of the direction on $]-4K\dots4K]$ unit square \cr -"dX","dY" & the vector $c-p$ \cr -"sdX","sdY" & sign of "dX" and "dY" \cr -|\K@dXdY|,|\K@dYdX| & quotients $K\frac{"dX"}{"dY"}$ and - $K\frac{"dY"}{"dX"}$ (as dimensions in sp) \cr -"DirectionChar","SemiDirectionChar" & |\chardefs| for directional - and semidirectional fonts \cr -"cosDirection","sinDirection" & factors in the range $]-1\dots1]$ - corresponding to cos and sin of Direction \cr -\end{defs} -% - where the ``$]-4K\dots4K]$ unit square'' has the following angles: -$$ -\xy *[]=<3pc>{}="c"*\frm{-}, - "c"; (-1,-1)**{},p+/4pc/ *+{0} **@{-}?>*@{>}, - "c"; ( 0,-1)**{},p+/4pc/ *+{K} **@{-}?>*@{>}, - "c"; ( 1,-1)**{},p+/4pc/ *+{2K} **@{-}?>*@{>}, - "c"; ( 1, 0)**{},p+/4pc/ *+{3K} **@{-}?>*@{>}, - "c"; ( 1, 1)**{},p+/4pc/ *+{4K} **@{-}?>*@{>}, - "c"; ( 0, 1)**{},p+/4pc/ *+{{-}3K} **@{-}?>*@{>}, - "c"; (-1, 1)**{},p+/4pc/ *+{{-}2K} **@{-}?>*@{>}, - "c"; (-1, 0)**{},p+/4pc/ *+{{-}K} **@{-}?>*@{>}, -\endxy -$$ - where the intermediate $K$ angle in each interval correspond to - equidistant points on the unit square. Thus only for - $n\in\{-3,2,1,0,1,2,3,4\}$ the angle of direction $n*K$ is exactly - $n*45^\circ - 135^\circ$ ($0^\circ$ being the direction straight - right). - - As usual |\DirectionfromtheDirection@| expands to code setting the - current direction. - -\DOCMODE( -\xydef@\DirectionfromtheDirection@{\noexpand\Direction=\the\Direction - \noexpand\d@X=\the\d@X \noexpand\d@Y=\the\d@Y - \def\noexpand\sd@X{\sd@X}\def\noexpand\sd@Y{\sd@Y}% - \noexpand\K@dXdY=\the\K@dXdY \noexpand\K@dYdX=\the\K@dYdX - \chardef\noexpand\DirectionChar=\the\DirectionChar - \chardef\noexpand\SemiDirectionChar=\the\SemiDirectionChar - \def\noexpand\cosDirection{\cosDirection}% - \def\noexpand\sinDirection{\sinDirection}% - \noexpand\resetupDirection@} -\DOCMODE) - - The actual direction computation is done using - |\setupDirection@|. - -\paragraph*{Procedure:} -% - Is really not so complicated. [??_[Dir1]]~"dX" and "dY" are computed - from $c-p$ and we skip if the current setting is based on these (this - is stored in the internal |\Directiontest@@| method); - [??_[Diri1]]~if the direction is one of the principal ones then - proceed with an optimised special case for those; otherwise proceed - with the generic code. - -\DOCMODE( -\xydef@\Directiontest@@#1#2{#2} - -\xydef@\setupDirection@{% - \d@X=\X@c\advance\d@X-\X@p \d@Y=\Y@c\advance\d@Y-\Y@p %?*[Dir1] - \Directiontest@@\relax\setupDirection@i} - -\xydef@\setupDirection@i{\DN@{\setupDirection@ii}%?*[Diri1] - \ifdim\d@X=\d@Y - \ifdim\zz@\d@Y \DN@{}% - \else\ifdim\d@X<\z@ \DN@{\dlDirection@{-1.4142\d@X}}% - \else \DN@{\urDirection@{1.4142\d@X}}\fi\fi - \else\ifdim\d@X<\d@Y - \ifdim\zz@\d@X \DN@{\uDirection@\d@Y}% - \else\ifdim\zz@\d@Y \DN@{\lDirection@{-\d@X}}% - \else\ifdim-\d@X=\d@Y \DN@{\ulDirection@{-1.4142\d@X}}\fi\fi\fi - \else - \ifdim\zz@\d@X \DN@{\dDirection@{-\d@Y}}% - \else\ifdim\zz@\d@Y \DN@{\rDirection@\d@X}% - \else\ifdim\d@X=-\d@Y \DN@{\drDirection@{1.4142\d@X}}\fi\fi\fi - \fi\fi \next@} -\DOCMODE) - - The procedures for the special <diag>onal cases are summarised in - this table: -$$ -\let\|=\otherbar -\begin{array}{\|c\|r\|rl\|c\|rl\|} -\hline -\mbox{<diag>onal} & "Direction" & \cos("Direction"),& \sin("Direction") - & "sign"("dX","dY") & "Char" & "Semi" \\ -\hline - |dl| & 0 & {-\sqrt{\frac12}},& {-\sqrt{\frac12}} & -,- & 127 & 127 \\ - |d| & K & 0,& -1 & +,- & 15 & 31 \\ - |dr| & 2K & {\sqrt{\frac12}},& {-\sqrt{\frac12}} & +,- & 31 & 63 \\ - |r| & 3K & 1,& 0 & +,+ & 47 & 95 \\ - |ur| & 4K & {\sqrt{\frac12}},& {\sqrt{\frac12}} & +,+ & 63 & 127 \\ - |u| &-3K & 0,& 1 & +,+ & 79 & 31 \\ - |ul| &-2K & {-\sqrt{\frac12}},& {\sqrt{\frac12}} & -,+ & 95 & 63 \\ - |l| & -K & -1,& 0 & -,+ & 111 & 95 \\ -\hline -\end{array} -$$ - In each case the argument is used as the unit circle, \ie, non-zero - of "dX" and "dY", and $|<|K\frac{"dX"}{"dY"}|,|K\frac{"dY"}{"dX"}|>| - := "KK"*|<|"dX"|,|"dY"|>|$\dots - -\DOCMODE( -\xydef@\dlDirection@{\Direction=\z@ - \def\cosDirection{-.7071}\def\sinDirection{-.7071}\def\sd@X{-}\def\sd@Y{-}% - \chardef\DirectionChar=127\relax\chardef\SemiDirectionChar=127\relax - \K@dXdY=1\K@ \K@dYdX=1\K@ \fixedDirection@} - -\xydef@\dDirection@{\Direction=\K@ - \def\cosDirection{0}\def\sinDirection{-1}\def\sd@Y{-}%\def\sd@X{+} - \edef\sd@X{\ifdim\X@c<\X@p-\else+\fi}% - \chardef\DirectionChar=15\relax\chardef\SemiDirectionChar=31\relax - \K@dXdY=\z@ \K@dYdX=\KK@\K@ \fixedDirection@} - -\xydef@\drDirection@{\dimen@ii=2\K@ \Direction=\dimen@ii - \def\cosDirection{+.7071}\def\sinDirection{-.7071}\def\sd@X{+}\def\sd@Y{-}% - \chardef\DirectionChar=31\relax\chardef\SemiDirectionChar=63\relax - \K@dXdY=-1\K@ \K@dYdX=-1\K@ \fixedDirection@} - -\xydef@\rDirection@{\dimen@ii=3\K@ \Direction=\dimen@ii - \def\cosDirection{+1}\def\sinDirection{0}\def\sd@X{+}%\def\sd@Y{+}% - \edef\sd@Y{\ifdim\Y@c<\Y@p-\else+\fi}% - \chardef\DirectionChar=47\relax\chardef\SemiDirectionChar=95\relax - \K@dXdY=\KK@\K@ \K@dYdX=\z@ \fixedDirection@} - -\xydef@\urDirection@{\dimen@ii=4\K@ \Direction=\dimen@ii - \def\cosDirection{+.7071}\def\sinDirection{+.7071}\def\sd@X{+}\def\sd@Y{+}% - \chardef\DirectionChar=63\relax\chardef\SemiDirectionChar=127\relax - \K@dXdY=1\K@ \K@dYdX=1\K@ \fixedDirection@} - -\xydef@\uDirection@{\dimen@ii=-3\K@ \Direction=\dimen@ii - \def\cosDirection{0}\def\sinDirection{+1}\def\sd@Y{+}%\def\sd@X{+} - \edef\sd@X{\ifdim\X@c<\X@p-\else+\fi}% - \chardef\DirectionChar=79\relax\chardef\SemiDirectionChar=31\relax - \K@dXdY=\z@ \K@dYdX=\KK@\K@ \fixedDirection@} - -\xydef@\ulDirection@{\dimen@ii=-2\K@ \Direction=\dimen@ii - \def\cosDirection{-.7071}\def\sinDirection{+.7071}\def\sd@X{-}\def\sd@Y{+}% - \chardef\DirectionChar=95\relax\chardef\SemiDirectionChar=63\relax - \K@dXdY=-1\K@ \K@dYdX=-1\K@ \fixedDirection@} - -\xydef@\lDirection@{\Direction=-\K@ - \def\cosDirection{-1}\def\sinDirection{0}\def\sd@X{-}%\def\sd@Y{+}% - \edef\sd@Y{\ifdim\Y@c<\Y@p-\else+\fi}% - \chardef\DirectionChar=111\relax\chardef\SemiDirectionChar=95\relax - \K@dXdY=\KK@\K@ \K@dYdX=\z@ \fixedDirection@} - -\xydef@\fixedDirection@#1{\dimen@ii=#1\relax - \d@X=\cosDirection\dimen@ii \d@Y=\sinDirection\dimen@ii - \resetupDirection@} -\DOCMODE) - - Here is the procedure for the generic code. -% -\begin{itemize} - -\item[{??_[Dirii1]}] - Make sign variables and slopes: $"sdX" := "sign"("dX")$, $"sdY" := - "sign"("dY")$, $K\frac{"dX"}{"dY"} := - "sdX"*"sdY"*\floor{\abs{"KK"*"dX"} / \abs{"dY"/"KK"}}$, and - $K\frac{"dY"}{"dX"} := "sdX"*"sdY"*\floor{\abs{"KK"*"dY"} / - \abs{"dX"/"KK"}}$, where the somewhat exotic computation method is - used to ensure that the `native' floor function provided by \TeX\ - |\divide| can be used (it only acts predictably for positive - numbers), that overflow is avoided even for large $"dX","dY"$, and - that it is reasonable to use the convention of |\quotient@| that - division by zero is like multiplying with one\dots Also takes care - not to multiply too big dimensions with each other. - -\item[{??_[Dirii2]}] - If ${-K} \le K\frac{"dX"}{"dY"} \le K$ then the direction is mostly - up or down: if $"dY"\lt0$ [down, ??_[Dirii2a]]: $"Direction" := - - K\frac{"dX"}{"dY"} + 1K$; else [up, ??_[Dirii2b]]: $"Direction" := - - K\frac{"dX"}{"dY"} - 3K$. - -\item[{??_[Dirii3]}] - If ${-K} \lt K\frac{"dY"}{"dX"} \lt K$ then direction is mostly left - or right: if $"dX"\lt0$ [left, ??_[Dirii3a]]: $"Direction" := - K\frac{"dY"}{"dX"} - K$; else [right, ??_[Dirii3b]]: $"Direction" := - K\frac{"dY"}{"dX"} + 3K$. - -\item[{??_[Dirii4]}] - Compute character codes for direction and semidirection fonts. - [??_[Dirii4a]]: $"DirectionChar" := (8K+"Direction"+K/32) - \hbox{~div~} (K/16) - 1$; while $"DirectionChar" \gt 127: - "DirectionChar" -:= 128$. [??_[Dirii4b]]: $"SemiDirectionChar" := - (8K+"Direction"+K/64) \hbox{~div~} (K/32) - 1$; while - $"SemiDirectionChar" \gt 127: "SemiDirectionChar" -:= 128$. In both - cases the $8K$ are added to ensure that \TeX\ will round down. - \HACK: The |16|, |\KK@|, and |64| in these lines are really $K/64$, - $K/32$, and $K/16$\dots - -\item[{??_[Dirii5]}] - Build "cosDirection" and "sinDirection" from appropriate characters - in the |\xydashfont|. [??_[Dirii5]]: $"cosDirection" := - "wd"(|\xydashfont| "SemiDirectionChar")$. [??_[Dirii5b]] $C := - "SemiDirectionChar"-64$, if $C\lt0$: $C := C+128$, $"sinDirection" := - "wd"(|\xydashfont| C)$. - -\item[{??_[Dirii6]}] - Register this "dX","dY" for next time. - -\end{itemize} - -\DOCMODE( -\xydef@\setupDirection@ii{% - \ifdim\d@X<\z@ \def\sd@X{-}\else \def\sd@X{+}\fi %?*[Dirii1] - \ifdim\d@Y<\z@ \def\sd@Y{-}\else \def\sd@Y{+}\fi - \K@dXdY=\sd@X\d@X \ifdim\K@dXdY<500pt \multiply\K@dXdY\KK@ \fi - \dimen@=\sd@Y\d@Y -% \advance\dimen@.5\KK@ \divide\dimen@\KK@ - \advance\dimen@\ifdim\dimen@<\z@-\fi.5\KK@ \divide\dimen@\KK@ - \ifdim\dimen@=\z@\else %\count@=\dimen@ \divide\count@\tw@ - \advance\K@dXdY by.5\dimen@\relax \divide\K@dXdY\dimen@ - \fi \K@dXdY=\sd@X\sd@Y\K@dXdY - \K@dYdX=\sd@Y\d@Y \ifdim\K@dYdX<500pt \multiply\K@dYdX\KK@ \fi - \dimen@=\sd@X\d@X -% \advance\dimen@.5\KK@ \divide\dimen@\KK@ - \advance\dimen@\ifdim\dimen@<\z@-\fi.5\KK@ \divide\dimen@\KK@ - \ifdim\dimen@=\z@\else %\count@=\dimen@ \divide\count@\tw@ - \advance\K@dYdX by.5\dimen@\relax \divide\K@dYdX\dimen@ - \fi \K@dYdX=\sd@X\sd@Y\K@dYdX - \Direction=\maxdimen - \ifnum\K@dXdY<-\K@ \else \ifnum\K@<\K@dXdY \else %?*[Dirii2] - \ifdim \d@Y<\z@ %?*[Dirii2a] - \Direction=\K@ \advance\Direction-\K@dXdY - \else %?*[Dirii2b] - \Direction=\K@ \multiply\Direction-\thr@@ \advance\Direction-\K@dXdY - \fi\fi\fi - \ifnum-\K@<\K@dYdX \ifnum\K@dYdX<\K@ %?*[Dirii3] - \ifdim \d@X<\z@ %?*[Dirii3a] - \Direction=-\K@ \advance\Direction\K@dYdX - \else %?*[Dirii3b] - \Direction=\K@ \multiply\Direction\thr@@ \advance\Direction\K@dYdX - \fi\fi\fi - \ifnum\Direction=\maxdimen - \Direction=\K@dYdX \advance\Direction-\K@dXdY - \advance\Direction\ifnum\Direction<\z@-\fi\@ne \divide\Direction\tw@ - \ifnum\K@dXdY<\z@ \advance\Direction\K@ \advance\Direction\K@ - \else \advance\Direction-\K@ \advance\Direction-\K@ \fi - \fi - \imposeDirection@i - \resetupDirection@ %?*[Dirii6] - } - -\xydef@\imposeDirection@{\count@@=\Direction - \loop@\ifnum\count@@>4096 \advance\count@@-8192 \repeat@ - \loop@\ifnum\count@@<-4096 \advance\count@@8192 \repeat@ - \def\sd@X{+}\ifnum\count@@<\K@ \relax - \ifnum\count@@>-3072 \def\sd@X{-}\fi\fi - \def\sd@Y{+}\ifnum\count@@<3072 \relax - \ifnum\count@@>-\K@ \relax\def\sd@Y{-}\fi\fi - \imposeDirection@i - \d@X=\cosDirection\xydashl@ \d@Y=\sinDirection\xydashl@ - \resetupDirection@} - -\xydef@\imposeDirection@i{% - \count@@=\K@ \multiply\count@@ by8 \advance\count@@\Direction %?*[Dirii4] - \count@=\count@@ \advance\count@\KK@ \divide\count@64 \advance\count@\m@ne %?*[Dirii4a] - \loop@\ifnum127<\count@ \advance\count@-128 \repeat@ - \chardef\DirectionChar\count@ - \advance\count@@16 \divide\count@@\KK@ \advance\count@@\m@ne %?*[Dirii4b] - \loop@\ifnum127<\count@@ \advance\count@@-128 \repeat@ - \chardef\SemiDirectionChar\count@@ - \setbox8=\hbox{\xydashfont\SemiDirectionChar\/}% %?*[Dirii5] - \quotient@@\cosDirection{\sd@X\wd8}\xydashl@ - \setbox8=\hbox{\xydashfont\count@=\SemiDirectionChar\advance\count@-64 %?*[Dirii5b] - \ifnum\count@<\z@ \advance\count@128 \fi \char\count@\/}% - \quotient@@\sinDirection{\sd@Y\wd8}\xydashl@} - -\xydef@\getxyDirection@#1{\xy@@\bgroup\xy@@ix@{#1}% - \xy@@{\expandafter\POS\the\toks9\relax\setupDirection@ - \edef\next@{\egroup \Direction=\the\Direction}\next@ \imposeDirection@ }} -\DOCMODE) - - Finally some special cases used by the <direction>s and directional - library objects. All manipulate the Direction dependent parameters - and then call |\resetupDirection@|: |\reverseDirection| reverses it; - |\above|- and |\belowDirection@| are for |^| and |_|, and - $|\vDirection@(|x|,|y|){|L|}|$ is for $|:(|x|,|y|)|$, \ie, computes - a new direction as the vector -$$ - |<| X - x*\cos\alpha*L - y*({-}\sin\alpha)*L |,| - Y - x*\sin\alpha*L - y*\cos\alpha*L |>| -$$ - where $\alpha$ is the previous direction angle. - -\DOCMODE( -\xydef@\reverseDirection@{% - \d@X=-\d@X \d@Y=-\d@Y - \ifdim\d@X<\z@ \def\sd@X{-}\else \def\sd@X{+}\fi - \ifdim\d@Y<\z@ \def\sd@Y{-}\else \def\sd@Y{+}\fi - \dimen@=4\K@ \ifnum\Direction<\z@ \advance\Direction\dimen@ - \else \advance\Direction-\dimen@ \fi - \count@=\DirectionChar \ifnum\count@<64 \advance\count@64 % - \else \advance\count@-64 \fi \chardef\DirectionChar=\count@ - \edef\cosDirection{\if-\cosDirection\else-\cosDirection\fi}% - \edef\sinDirection{\if-\sinDirection\else-\sinDirection\fi}% - \resetupDirection@} - -\xydef@\aboveDirection@#1{% - \dimen@=\d@X \d@X=-\d@Y \d@Y=\dimen@ - \dimen@=\K@dXdY \K@dXdY=-\K@dYdX \K@dYdX=-\dimen@ - \ifdim\d@X<\z@ \def\sd@X{-}\else \def\sd@X{+}\fi - \ifdim\d@Y<\z@ \def\sd@Y{-}\else \def\sd@Y{+}\fi - \dimen@=2\K@ \ifdim 1\Direction<\dimen@\else \dimen@=-6\K@ \fi - \advance\Direction\dimen@ - \count@=\DirectionChar \ifnum\count@<96 \advance\count@32 % - \else \advance\count@-96 \fi \chardef\DirectionChar=\count@ - \count@=\SemiDirectionChar \ifnum\count@<64 \advance\count@64 % - \else \advance\count@-64 \fi \chardef\SemiDirectionChar=\count@ - \let\tmp@=\cosDirection - \edef\cosDirection{\if-\sinDirection\else-\sinDirection\fi}% - \let\sinDirection=\tmp@ - \dimen@=#1\relax \d@X=\cosDirection\dimen@ \d@Y=\sinDirection\dimen@ - \resetupDirection@} - -\xydef@\belowDirection@#1{% - \dimen@=\d@X \d@X=\d@Y \d@Y=-\dimen@ - \dimen@=\K@dXdY \K@dXdY=-\K@dYdX \K@dYdX=-\dimen@ - \ifdim\d@X<\z@ \def\sd@X{-}\else \def\sd@X{+}\fi - \ifdim\d@Y<\z@ \def\sd@Y{-}\else \def\sd@Y{+}\fi - \dimen@=-2\K@\ifdim 1\Direction<\dimen@\dimen@=6\K@\fi - \advance\Direction\dimen@ - \count@=\DirectionChar \ifnum\count@<32 \advance\count@96 % - \else \advance\count@-32 \fi \chardef\DirectionChar=\count@ - \count@=\SemiDirectionChar \ifnum\count@<64 \advance\count@64 % - \else \advance\count@-64 \fi \chardef\SemiDirectionChar=\count@ - \let\tmp@=\sinDirection - \edef\sinDirection{\if-\cosDirection\else-\cosDirection\fi}% - \let\cosDirection=\tmp@ - \dimen@=#1\relax \d@X=\cosDirection\dimen@ \d@Y=\sinDirection\dimen@ - \resetupDirection@} - -\xydef@\vDirection@(#1,#2)#3{\dimen@ii=#3\relax - \dimen@=#1\dimen@ii \dimen@ii=#2\dimen@ii - \d@X=\cosDirection\dimen@ \advance\d@X-\sinDirection\dimen@ii - \d@Y=\sinDirection\dimen@ \advance\d@Y \cosDirection\dimen@ii - \X@p=\X@c \advance\X@p-\d@X \Y@p=\Y@c \advance\Y@p-\d@Y - \setupDirection@\ignorespaces} -\DOCMODE) - - The above all make use of the following; use them also when the - direction state is known to be correct: |\resetDirection@| should be - called when $p$ and/or $c$ are moved along the line $\vec{pc}$, - |\resetupDirerection| when the entire direction state is changed in a - consistent manner. - -\DOCMODE( -\xydef@\resetDirection@{% - \d@X=\X@c\advance\d@X-\X@p \d@Y=\Y@c\advance\d@Y-\Y@p - \let\next@=\resetupDirection@ - \ifdim\sd@X\d@X<\z@ \let\next@=\setupDirection@i \fi - \ifdim\sd@Y\d@Y<\z@ \let\next@=\setupDirection@i \fi - \next@} - -\xydef@\resetupDirection@{% - \edef\Directiontest@@##1##2{\noexpand\DN@{##2}% - \noexpand\ifdim\noexpand\d@X=\the\d@X\relax - \noexpand\ifdim\noexpand\d@Y=\the\d@Y\relax \noexpand\DN@{##1}% - \noexpand\fi\noexpand\fi \noexpand\next@}} - -\xydef@\unsetupDirection@{\def\Directiontest@@##1##2{##2}} -\DOCMODE) - - Finally the initial direction: up! - -\DOCMODE( -\uDirection@\xydashl@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Edges} -??=[algo.edge] - - An "Edge" is a token list describing the edge of an object. It must - have the form |{|<expandable token> <unexpandable tokens>|}|. - To find the edge of an object then first make it the current object - and then do -$$ - |\the\Edge@c|<code> -$$ - where <code> determines what should be done: -% -\begin{itemize} - -\item[0] - $c$ is changed to be equal to the point on the edge intersecting with - the line segment from $p$ (for ??c![E] <corner>, also this was the - v2.6 behaviour). - - \NOTE: This should not change any of $A$, $B$, or any component of - the state except $X_c$ and $Y_c$! - -\item[1] - Test whether the center of $p$, \ie, $|<|X_p|,|Y_p|>|$, is `inside' - the $c$ object (or on the edge). Sets the test |\ifInside@| - accordingly. - -\item[2] - Set |\dimen@| to the distance from the center to the edge towards~$p$ - (as set with code~0). - - \NOTE: This is only positive in the direction towards $p$ - (thus negative-sized circles and rectangles make it negative). - -\item[3] - $c$ is changed to be equal to the point on the edge furthest in the - direction towards $p$ (for ??c![P] <corner>). - - \NOTE: This should not change any of $A$, $B$, or any component of - the state except $X_c$ and $Y_c$! - -\item[4] - Replace $c$ with rectangle with corners where the line from $p$ - intersects with the edge of $c$ (thus this is the inner rectangle - with corners as the current direction dictates). - -\item[5] - Replace $c$ with smallest rectangle that encloses the current object - completely. - -\end{itemize} -% - (if this reminds the reader of a `dictionary' as used by - object-oriented programming languages then they probably share this - author's regret that \TeX\ is not object-oriented :-) - -\DOCMODE( -\message{edges,} - -\xynew@{if}\ifInside@ -\DOCMODE) - -\paragraph*{Points:} - - The simplest shape is none at all -- a point. - -\DOCMODE( -\xydef@\zeroEdge#1{% - \ifcase#1\relax \or \Inside@false \or \dimen@=\z@ - \or \else \Edge@c={\rectangleEdge}\fi} -\DOCMODE) - -\paragraph*{Circles and Ellipses:} - - Next we define round things, with several special cases for the - individual variants described below: centered circular, centered - elliptical, and general elliptical. The only `intelligent' choice - is for the `Under' method where the object is forced to be a centered - variant before applying either the circular or elliptical version. - -\DOCMODE( -\xydef@\circleEdge#1{\ifcase#1\expandafter\circleEdge@ - \or \expandafter\circleUnder@ \or \dimen@=\R@c - \or \expandafter\circleProp@ \or \expandafter\circleInner@ - \else \expandafter\circleOuter@ \fi} - -\xydef@\circleEdge@{\DN@{\ellipseEdge@}% - \ifdim\R@c=\L@c\relax \ifdim\U@c=\D@c\relax - \ifdim\R@c=\U@c\DN@{\circlecentredEdge@}% - \else\DN@{\ellipsecentredEdge@}\fi - \fi\fi \next@} - -\xydef@\circleProp@{\DN@{\reverseDirection@\ellipseEdge@}% - \ifdim\R@c=\L@c\relax \ifdim\U@c=\D@c\relax - \ifdim\R@c=\U@c\DN@{\reverseDirection@\circlecentredEdge@}% - \else\DN@{\reverseDirection@\ellipsecentredEdge@}\fi - \fi\fi \next@} - -\xydef@\circleUnder@{\Inside@false - \ifdim\X@p=\X@c \relax \ifdim\Y@p=\Y@c \Inside@true \fi \fi - \ifInside@ \else \expandafter \circleCentre@ \fi} - -\xydef@\circleCentre@{{% - \ifdim\L@c=\R@c \relax\else - \dimen@=\R@c\advance\dimen@-\L@c \divide\dimen@\tw@ - \advance\X@c\dimen@ \advance\R@c-\dimen@ \fi - \d@X=\X@c \advance\d@X-\X@p \d@X=\ifdim\d@X<\z@-\fi\d@X - \ifdim\U@c=\D@c\relax \else - \dimen@=\U@c\advance\dimen@-\D@c \divide\dimen@\tw@ - \advance\Y@c\dimen@ \advance\U@c-\dimen@ \fi - \d@Y=\Y@c \advance\d@Y-\Y@p \d@Y=\ifdim\d@Y<\z@-\fi\d@Y - \DN@{}\ifdim\d@X>\R@c \relax \else \ifdim\d@Y>\U@c \relax - \else \ifdim\U@c=\R@c \DN@{\circlecentredUnder@}% - \else \DN@{\ellipsecentredUnder@}\fi - \fi\fi \next@}} - -\xydef@\circleInner@{\DN@{\ellipseInner@}% - \ifdim\R@c=\L@c\relax \ifdim\U@c=\D@c\relax - \ifdim\R@c=\U@c\DN@{\circlecentredInner@}% - \else\DN@{\ellipsecentredInner@}\fi - \fi\fi \next@} - -\xydef@\circleOuter@{\DN@{\ellipseOuter@}% - \ifdim\R@c=\L@c\relax \ifdim\U@c=\D@c\relax - \ifdim\R@c=\U@c\DN@{\circlecentredOuter@}% - \else\DN@{\ellipsecentredOuter@}\fi - \fi\fi \next@} -\DOCMODE) - -\subparagraph*{True circles, centered:} Code~0 moves $|<|X_c|,|Y_c|>|$ to the - point $|<|X_c - R_c*\cos\alpha|,| Y_c - R_c*\sin\alpha|>|$ where - $\alpha$ is the current direction angle, code~1 tests whether the - $p$ center is located between those two points., code~2 just returns - the radius, code~3 is as code~0 and code~4 is the only nontrivial - one, replacing with the inner symmetric rectangle with corner at the - point of code~0. - -\DOCMODE( -\xydef@\circlecentredEdge@{% - \dimen@=-\cosDirection\R@c \advance\X@c\dimen@ - \dimen@=-\sinDirection\R@c \advance\Y@c\dimen@} - -\xydef@\circlecentredUnder@{% - \loop\ifdim\R@c>100\p@ \circlescale@ \repeat - \edef\tmp@{\expandafter\removePT@\the\R@c}\dimen@=\tmp@\R@c - \edef\tmp@{\expandafter\removePT@\the\d@X}\advance\dimen@-\tmp@\d@X - \edef\tmp@{\expandafter\removePT@\the\d@Y}\advance\dimen@-\tmp@\d@Y - \ifdim\dimen@>\z@ \aftergroup\Inside@true \fi} - -%%\xydef@\circlescale@{\divide\R@c\KK@ \divide\d@X\KK@ \divide\d@Y\KK@ } -\xydef@\circlescale@{\divide\R@c\KK@ \divide\d@X\KK@ \divide\d@Y\KK@ } - -\xydef@\circlecentredInner@{% - \L@c=\sd@X\cosDirection\R@c \D@c=\sd@Y\sinDirection\R@c - \R@c=\L@c \U@c=\D@c \Edge@c={\rectangleEdge}} - -\xydef@\circlecentredOuter@{% - \L@c=\R@c \D@c=\R@c \U@c=\D@c \Edge@c={\rectangleEdge}} -\DOCMODE) - -\subparagraph*{Ellipsis, centered:} When $c$ is at the centre of an - elliptical object, first rescale the axes to make the object - circular. Rescale $dX$ and $dY$ appropriately, reset the direction - and move to the edge as previously. Then scale back to - the original shape, adjusting $X_c$ and $Y_c$ appropriately. - -\DOCMODE( -\xydef@\ellipsecentredEdge@{\bgroup \X@p=\X@c \Y@p=\Y@c - \ifdim\U@c>\R@c - \X@c=\cosDirection\U@c \Y@c=\sinDirection\U@c - \quotient@\tmp@\U@c\R@c \X@c=\tmp@\X@c \R@c=\U@c - \else - \X@c=\cosDirection\R@c \Y@c=\sinDirection\R@c - \quotient@\tmp@\R@c\U@c \Y@c=\tmp@\Y@c - \fi - \advance\X@c\X@p \advance\Y@c\Y@p - \setupDirection@ \X@c=\X@p \Y@c=\Y@p \circlecentredEdge@ - \d@X=\X@c \advance\d@X-\X@p \d@Y=\Y@c \advance\d@Y-\Y@p - \ifdim\U@c>\L@c \quotient@\tmp@\L@c\U@c \d@X=\tmp@\d@X - \else \quotient@\tmp@\U@c\R@c \d@Y =\tmp@\d@Y \fi - \X@c=\X@p \advance\X@c\d@X \Y@c=\Y@p \advance\Y@c\d@Y - \edef\next@{\egroup \X@c=\the\X@c \Y@c=\the\Y@c}\next@ }% - -\xydef@\ellipsecentredUnder@{% - \ifdim\R@c>64\p@ \circlescale@ \divide\U@c\KK@ - \else \ifdim\U@c>64\p@ \circlescale@ \divide\U@c\KK@ \fi\fi - \edef\tmp@{\expandafter\removePT@\the\R@c}\d@Y=\tmp@\d@Y - \edef\tmp@{\expandafter\removePT@\the\U@c}\d@X=\tmp@\d@X - \R@c=\tmp@\R@c \circlecentredUnder@ } -\DOCMODE) - - For elliptical objects the Outer-rectangle retains all the - extents, so just change the edge-type. - -\DOCMODE( -\xydef@\ellipsecentredOuter@{\Edge@c={\rectangleEdge}} -\DOCMODE) - - For elliptical objects the Inner-rectangle needs to - be calculated for each direction. This is done by - first finding the edge, using |\ellipseEdge@| or - |\ellipsecentredEdge@| when appropriate. - -\DOCMODE( -\xydef@\ellipsecentredInner@{% - \bgroup \X@p=\X@c \Y@p=\Y@c \ellipsecentredEdge@ -% \advance\X@c-\X@p \L@c=\ifdim\X@c<\z@-\fi\L@c - \advance\X@c-\X@p \L@c=\ifdim\X@c<\z@-\fi\X@c -% \advance\Y@c-\Y@p \D@c=\ifdim\Y@c<\z@-\fi\D@c - \advance\Y@c-\Y@p \D@c=\ifdim\Y@c<\z@-\fi\Y@c - \edef\next@{\egroup \L@c=\the\L@c \D@c=\the\D@c}\next@ - \R@c=\L@c \U@c=\D@c \Edge@c={\rectangleEdge}} -\DOCMODE) - -\subparagraph*{Non-centered variants:} The code for the more general - |\ellipseEdge@| uses a Newton iteration to solve a quadratic - equation. - - First locate the actual centre of the ellipse and - the lengths of the major axis $a$ and minor axis $b$. - Let $(x,y)$ denote the displacement of the required - edge point from the centre of the ellipse, - so that ${x^2\over a^2}+{y^2\over b^2}=1$. - Now let $(dx,dy)$ be the displacement from the centre - to the reference point; then $x=dx+s \cos\theta$ and - $y=dy+s\sin\theta$ where $s$ is the distance to $(x,y)$ - in the required direction $\theta$. - We must find the value of $s$, presumed to satisfy $s\ge0$. - - If $a\lt b$ we search for a root of -\begin{eqnarray*} -f\left({s\over a}\right) &= \;\; -\left(\tilde{dx}+{s\over a}\cos\theta\right)^2 -+\left(\tilde{dy}+{s\over a}{a\over b}\sin\theta\right)^2 & \cr -f'\left({s\over a}\right) &= \;\; -2\left(\tilde{dx}+{s\over a}\cos\theta\right)\cos\theta -+ 2\left(\tilde{dy}+{s\over a}{a\over b}\sin\theta\right) -{a\over b}\sin\theta -\end{eqnarray*} - where $\tilde{dx} = dx/a$ and $\tilde{dy} = dy/b$. - By choosing a starting value $s_0=2a+2b$ the Newton-iteration - converges rapidly to the correct root, provided $b\gt0$. -\smallskip -\noindent - If $a\gt b$ then we solve a similar quadratic in ${s\over b}$. - - \TODO: - The case of $a=0$ or $b=0$, so that the ellipse degenerates - to a line segment, should be trapped earlier. - Such an object would be more easily handled as a degenerate - case of a rectangle. - - \TODO: - In the case when the reference point lies outside the ellipse - the Newton iteration is not guaranteed to converge. - A simple test --- $s$ growing rather than decreasing in size --- - detects possible converge problems and exits the iteration. - The following message is issued \dots - $$|Xy-pic warning: poor convergence.|$$ - Often, particularly when the reference point is on or near - the edge of the ellipse, - an acceptable approximation to the edge has been found anyway. - -\DOCMODE( -\xydef@\ellipseEdge@{\bgroup - \A@=\R@c \B@=\U@c - \ifdim\R@c=\L@c \d@X=\z@ - \else \d@X=.5\R@c \advance\d@X-.5\L@c - \advance\A@\L@c \divide\A@\tw@ \fi - \ifdim\U@c=\D@c \d@Y=\z@ - \else \d@Y=.5\U@c \advance\d@Y-.5\D@c - \advance\B@\D@c \divide\B@\tw@ \fi - \bgroup - \L@c=\A@ \U@c=\B@ - \R@p=\U@c \advance\R@p\L@c \multiply\R@p\tw@ - \ifdim\B@<\A@ \quotient@\tmp@\U@c\L@c \R@c=\tmp@\p@ \D@c=\p@ - \quotient@\tmp@\R@p\L@c \R@p=\tmp@\p@ - \else - \ifdim\A@<\B@ \quotient@\tmp@\L@c\U@c \D@c=\tmp@\p@ \R@c=\p@ - \quotient@\tmp@\R@p\U@c \R@p=\tmp@\p@ - \else - \R@c=\p@ \D@c=\p@ \quotient@\tmp@\R@p\U@c \R@p=\tmp@\p@ - \fi\fi - \quotient@\sd@X\d@X\L@c \d@X=\sd@X\p@ - \quotient@\sd@Y\d@Y\U@c \d@Y=\sd@Y\p@ - \loop - \bgroup \U@p=-\p@ \D@p=\z@ - \ifdim\R@c<\p@ - \edef\tmp@{\expandafter\removePT@\the\R@c}\dimen@=\tmp@\R@p - \advance\d@X\cosDirection\dimen@ - \else \advance\d@X\cosDirection\R@p \fi - \edef\sd@X{\expandafter\removePT@\the\d@X}% - \advance\U@p\sd@X\d@X - \ifdim\R@c<\p@ - \edef\tmp@{\expandafter\removePT@\the\R@c}\dimen@=\tmp@\d@X - \advance\D@p\cosDirection\dimen@ - \else \advance\D@p\cosDirection\d@X \fi -% - \ifdim\D@c<\p@ - \edef\tmp@{\expandafter\removePT@\the\D@c}\dimen@=\tmp@\R@p - \advance\d@Y\sinDirection\dimen@ - \else \advance\d@Y\sinDirection\R@p \fi - \edef\sd@Y{\expandafter\removePT@\the\d@Y}% - \advance\U@p\sd@Y\d@Y - \ifdim\D@c<\p@ - \edef\tmp@{\expandafter\removePT@\the\D@c}\dimen@=\tmp@\d@Y - \advance\D@p\sinDirection\dimen@ - \else \advance\D@p\sinDirection\d@Y \fi - \multiply\D@p\tw@ - \dimen@=\ifdim\U@p<\z@-\fi\U@p - \ifdim\dimen@<.01\p@ \U@p=\z@ - \else - \quotient@\tmp@\U@p\D@p \U@p=\tmp@\p@ - \ifdim\U@p<\z@\xywarning@{poor convergence}\U@p=\z@ - \else \advance\R@p-\U@p \U@p=\ifdim\U@p<\z@-\fi\U@p - \fi \fi - \edef\next@{\egroup \R@p=\the\R@p \U@p=\the\U@p \D@p=\the\D@p}\next@ - \ifdim\U@p>\z@ \repeat - \edef\next@{\egroup \dimen@=\the\R@p}\next@ - \edef\tmp@{\expandafter\removePT@\the\dimen@}% - \ifdim\B@<\A@ \dimen@=\tmp@\B@ \else \dimen@=\tmp@\A@ \fi - \dimen@=-\dimen@ - \advance\X@c\cosDirection\dimen@ - \advance\Y@c\sinDirection\dimen@ - \edef\next@{\egroup \X@c=\the\X@c \Y@c=\the\Y@c}\next@ }% -\DOCMODE) - - The `Under' procedure is identical to the centered version. - -\DOCMODE( -\xydef@\ellipseOuter@{\Edge@c={\rectangleEdge}} - -\xydef@\ellipseInner@{% - \bgroup \X@p=\X@c \Y@p=\Y@c \ellipseEdge@ - \d@X=\X@c\advance\d@X-\X@p - \ifdim\d@X>\z@ \R@p=\d@X \L@p=\R@p - \ifdim\L@c=\R@c\else\advance\L@p\L@c \advance\L@p-\R@c \fi - \else \L@p=-\d@X \R@p=\L@p - \ifdim\L@c=\R@c \else\advance\R@p\R@c \advance\R@p-\L@c \fi - \fi - \d@Y=\Y@c\advance\d@Y-\Y@p - \ifdim\d@Y>\z@ \U@p=\d@Y \D@p=\U@p - \ifdim\D@c=\U@c\else\advance\D@p\D@c \advance\D@p-\U@c \fi -%\else \D@p=-\d@X \R@p=\D@p - \else \D@p=-\d@Y \U@p=\D@p % <<<<<<======== - \ifdim\D@c=\U@c\else\advance\U@p\U@c \advance\U@p-\D@c \fi - \fi - \edef\next@{\egroup - \L@c=\the\L@p \D@c=\the\D@p \R@c=\the\R@p \U@c=\the\U@p}% - \next@ \Edge@c={\rectangleEdge}} -\DOCMODE) - -\paragraph*{Rectangles:}\leavevmode - - Rectangles intersection is slightly more complicated and handled - separately for the horizontal and vertical case. - -\DOCMODE( -\xydef@\rectangleEdge#1{\ifcase#1\expandafter\rectangleEdge@ - \or \expandafter\rectangleUnder@ \or \expandafter\rectangleDist@ - \or \expandafter\rectangleProp@ %%%\or \expandafter\rectangleInner@ BUG! - \else \relax \fi} -\DOCMODE) - - \BUG: no `Inner' for rectangles! - -\DOCMODE( -% \rectangleEdge@ -% Sets <X,Y> to the intersection of a line from <X-dX,Y-dY> to <X,Y> -% and the rectangle from <X-L,Y-D> to <X+R,Y+U>: -% -% %1a dY<0, dX<0: X := X + min{R, U*|dX/dY|}, -% Y := Y + min{U, R*|dY/dX|}; -% b dY<0, dX=0: Y := Y + U; -% c dY<0, dX>0: X := X - min{L, U*|dX/dY|}, -% Y := Y + min{U, L*|dY/dX|}; -% -% %2a dY=0, dX<0: X := X + R; -% b dY=0, dX=0: ; -% c dY=0, dX>0: X := X - L; -% -% %3a dY>0, dX<0: X := X + min{R, D*|dX/dY|}, -% Y := Y - min{D, R*|dY/dX|}; -% b dY>0, dX=0: Y := Y - D; -% c dY>0, dX>0: X := X - min{L, D*|dX/dY|}, -% Y := Y - min{D, L*|dY/dX|}; -% -% %4 \resetupDirection@ to register that even though dX,dY changed all -% Direction parameters are is still valid! -% -% NOTE: d=0 really means |d| < .05pt. -% -\xydef@\rectangleEdge@{% - \ifdim\d@Y<-.05\p@ \rectangleEdge@i %1 - \else\ifdim\d@Y<.05\p@ \rectangleEdge@ii %2 - \else \rectangleEdge@iii\fi\fi - \resetupDirection@} - -\xydef@\rectangleEdge@i{% - \ifdim\d@X<-.05\p@ - \settomin@\X@c+\R@c\U@c\d@X\d@Y \settomin@\Y@c+\U@c\R@c\d@Y\d@X%1a - \else\ifdim\d@X<.05\p@ \advance\Y@c\U@c %1b - \else \settomin@\X@c-\L@c\U@c\d@X\d@Y \settomin@\Y@c+\U@c\L@c\d@Y\d@X %1c - \fi\fi} - -\xydef@\rectangleEdge@ii{% - \ifdim\d@X<-.05\p@ \advance\X@c\R@c %2a - \else\ifdim\d@X<.05\p@ %2b - \else \advance\X@c-\L@c %2c - \fi\fi} - -\xydef@\rectangleEdge@iii{% - \ifdim\d@X<-.05\p@ - \settomin@\X@c+\R@c\D@c\d@X\d@Y \settomin@\Y@c-\D@c\R@c\d@Y\d@X%3a - \else\ifdim\d@X<.05\p@ \advance\Y@c-\D@c %3b - \else \settomin@\X@c-\L@c\D@c\d@X\d@Y \settomin@\Y@c-\D@c\L@c\d@Y\d@X %3c - \fi\fi} - -\xydef@\settomin@#1#2#3#4#5#6{% - % Perform d := #2 min{#3, #4*|#5/#6|}; #1 := #1+d ... - \edef\nextii@{\A@=\the\A@ \B@=\the\B@}\quotient@\next@{#5}{#6}\nextii@ - \dimen@=\sd@X\sd@Y\next@#4\relax - \ifdim#3<\dimen@ \dimen@=#3\fi \advance#1#2\dimen@} -\DOCMODE) - - Checking that $p$ is under is simpler: Normally it is not but - if $c=p$ or ($-L_c \lt X_p-X_c \lt R_c$ and $-D_c \lt Y_p-Y_c \lt - U_c$) then it is. - -\DOCMODE( -\xydef@\rectangleUnder@{\Inside@false - \ifdim\X@p=\X@c \ifdim\Y@p=\Y@c \Inside@true \fi\fi - \ifInside@ \else - \dimen@=\X@p \advance\dimen@-\X@c - \ifdim \dimen@>-\L@c \relax \ifdim\dimen@<\R@c - \dimen@=\Y@p \advance\dimen@-\Y@c - \ifdim \dimen@>-\D@c \relax \ifdim\dimen@<\U@c - \Inside@true - \fi\fi\fi\fi\fi } -\DOCMODE) - - Calculating the width is like computing the edge point, just simpler: - (??_[rDist])~Set $A$ to the horizontal and $B$ to the vertical - distance applicable; if either is zero (or close) use the other - unmodified . (??_[rDisti])~If both nonzero use - $\min(A/\cos\alpha,B/\sin\alpha)$ where $\alpha$ is the current angle. - -\DOCMODE( -\xydef@\rectangleDist@{\let\next@=\rectangleDist@i %?*[rDist] - \ifdim\d@X<-.05\p@ \dimen@=\R@c - \else\ifdim\d@X<.05\p@ \dimen@=\z@ \DN@{\dimen@=\dimen@ii}% - \else \dimen@=\L@c \fi\fi - \ifdim\d@Y<-.05\p@ \dimen@ii=\U@c - \else\ifdim\d@Y<.05\p@ \DN@{}% - \else \dimen@ii=\D@c \fi\fi - \next@} - -\xydef@\rectangleDist@i{%?*[rDisti] - \begingroup \quotient@\next\p@{\sd@X\cosDirection\p@}% - \edef\next{\endgroup \dimen@=\next\dimen@}\next - \begingroup \quotient@\next\p@{\sd@Y\sinDirection\p@}% - \edef\next{\endgroup \dimen@ii=\the\dimen@ii}\next - \ifdim\dimen@ii<\dimen@ \dimen@=\dimen@ii \fi} -\DOCMODE) - - Setting $c$ to the `proportional edge point' is straight out of - v2.6's |\setlabel@@| macro\dots - -\DOCMODE( -% First rotate to opposite direction. - -% Then compute Leftf,Upf [\next@,\nextii@]: -% 0,(D-2K)/2K for 2K < D <= 4K [right] -% (2K-D)/2K,0 for 0 < D <= 2K [down] -% 1,-D/2K for -2K < D <= 0 [left] -% (D+4K)/2K,1 for -4K < D <= -2K [up] - -% Finally set <X,Y> to -% < X - L + Leftf*(R+L) , Y + U - Upf*(D+U) > - -\xydef@\rectangleProp@{% - \enter@{\A@=\the\A@ \B@=\the\B@ \DirectionfromtheDirection@}% - \reverseDirection@ - \dimen@=1\Direction \count@=\K@ \multiply\count@\tw@ - \ifnum \Direction>\count@ - \DN@{0}% - \advance\dimen@-2\K@ \quotient@\nextii@{\dimen@}{2\K@}% - \else\ifnum \Direction>\z@ - \dimen@=-\dimen@ \advance\dimen@2\K@ \quotient@\next@{\dimen@}{2\K@}% - \DNii@{0}% - \else\ifnum \Direction>-\count@ - \DN@{1}% - \quotient@\nextii@{-\dimen@}{2\K@}% - \else - \advance\dimen@4\K@ \quotient@\next@{\dimen@}{2\K@}% - \DNii@{1}% - \fi\fi\fi - \advance\X@c-\L@c \dimen@=\L@c \advance\dimen@\R@c - \ifdim\dimen@=\z@ \advance\X@c 2\L@c \else \advance\X@c\next@\dimen@ \fi - \advance\Y@c+\U@c \dimen@=\D@c \advance\dimen@\U@c - \ifdim\dimen@=\z@ \advance\Y@c-2\U@c \advance\Y@c\Upness@\U@c - \else \advance\Y@c-\nextii@\dimen@ \fi - \leave@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Connections} -??=[algo.connection] - -\DOCMODE( -\message{connections;} -\DOCMODE) - - Connections describe how a particular <object> may be used to connect - $p$ to $c$. The following parameters and methods are defined by any - connection; they should be used in the indicated - sequence:??w[connection methods] -% -\begin{description} - -\item[|\Invisible@@|, |\Hidden@@|, and |\Drop@@|:] as for <object>. - -\item[|\Creset@@|:] - (Re)set the connection parameters to allow use of the following to - move to a point on the connection (this is what the interpretation of - <pos> |?| does first). All effects obtained by the following methods - are undone: |\Creset@@| reestablishes the state to what it was just - after the |\Connect@@| every time. - -\item[|\Cshavep@@| or |\Cshavec@@|:] - Change $p$ or $c$ to a zero-sized object at the start or finish of - the connection (the first |<| and |>| <place> components). - -\item[|\Calong@@{|<factor>|}|:] - Move $c$ to point the <factor> along the connection and set the - direction parameters as a tangent to it in this point (the - |(|<factor>|)| <place> component). - -\item[|\Cslidep@@{|<dimen>|}| or |\Cslidec@@{|<dimen>|}|:] - Move $p$ or $c$ the <dimen>sion further in the current direction. - Can be used both before and after the |\Calong@@| method (these - handle subsequent |<| and |>| as well as the |/|<slide>|/| <place> - component). - -\item[|\Cintercept@@|:] - Set $c$ to a zerosized object at the point where the connection - crosses the straight line from $p$ to $c$ (the |!{|\dots|}| <place> - component). - -\item[|\Cbreak@@| and |\Clast@@|:] - These support typesetting of the connection in several `subsegments' - as used by the arrow option. The idea is the following, using the - internal "lastbreak" and "nextbreak" positions: -\begin{enumerate} - -\item |\Connect@@| sets $"lastbreak":=p$ and $"nextbreak":=c$ - -\item The commands |\Cslidec@@|, |\Cslidep@@|, and |\Cintercept@@|, set - "nextbreak" logically to the position that is obtained by the - manipulation. - -\item |\Cbreak@@| retypesets the connection except only the piece - from "lastbreak" to the current $c$ object, which "must" be at on top - of "nextbreak", is typeset. Afterwords it sets - $"lastbreak":="nextbreak"$ and $"nextbreak":=c$ (where $c$ is the - original $c$ of the connection). - -\item The command |\Clast@@| typesets from "lastbreak" and the remainder of - the connection, and resets $"lastbreak":=p$ and $"nextbreak":=c$. - -\end{enumerate} -\end{description} -% - Notice that it is not necessary for "nextbreak" to actually exist, in - fact in the kernel it is just an alias for $c$ at the time - |\Cbreak@@| is called. - - These are the defaults for basic \Xy-pictures that only has straight - connections hence the macros all starting with |\no|\dots are rather - simple -- in particular they just merge with zerosized objects at the - locations cutoff locations (this was inherited from the broken - |arrow| code~\smiley~). - -\DOCMODE( -\xydef@\Creset@@{} -\xydef@\Cshavep@@{\noCshavep@@} -\xydef@\Cshavec@@{\noCshavec@@} -\xydef@\Cslidep@@{\noCslidep@@} -\xydef@\Cslidec@@{\noCslidec@@} -\xydef@\Calong@@{\noCalong@@} -\xydef@\Cintercept@@{\noCintercept@@} -\xydef@\Cbreak@@{\noCbreak@@} -\xydef@\Clast@@{\noClast@@} - -\xylet@\lastbreak@@=\empty - -\xydef@\noCshavep@@{\setupDirection@ - \enter@{\cfromthec@ \DirectionfromtheDirection@}% - \reverseDirection@ \cfromp@ \the\Edge@c\z@ - \pfromc@ \leave@ \resetDirection@} - -\xydef@\noCshavec@@{\setupDirection@ \the\Edge@c\z@ \resetDirection@} - -\xydef@\noCslidep@@#1{\dimen@=#1\relax - \advance\X@p\cosDirection\dimen@ \advance\Y@p\sinDirection\dimen@ - \resetDirection@} - -\xydef@\noCslidec@@#1{\dimen@=#1\relax - \advance\X@c\cosDirection\dimen@ \advance\Y@c\sinDirection\dimen@ - \resetDirection@} - -\xydef@\noCalong@@#1{% - \d@X=#1\d@X \d@Y=#1\d@Y \X@c=\X@p \Y@c=\Y@p \advance\X@c\d@X \advance\Y@c\d@Y - \resetupDirection@} -\DOCMODE) - - Next the intercept method that just uses |\intersect@|. - -\DOCMODE( -\xydef@\noCintercept@@{\enter@{\pfromthep@}% - \begingroup\Creset@@ \edef\tmp@{\endgroup - \X@origin=\the\X@p \Y@origin=\the\Y@p \R@c=\the\d@X \U@c=\the\d@Y}\tmp@ - \loop@\dimen@=\ifdim\R@c<\z@-\fi\R@c \advance\dimen@\ifdim\U@c<\z@-\fi\U@c - \ifdim\dimen@>10\p@ \advance\R@c \ifdim\R@c<\z@-\fi 16sp \divide\R@c\KK@ - \advance\U@c \ifdim\U@c<\z@-\fi 16sp \divide\U@c\KK@ \repeat@ - \intersect@ \leave@} -\DOCMODE) - - And finally the dummy `break' method which of course does nothing - except the required shifting. - -\DOCMODE( -\xydef@\noCbreak@@{\edef\lastbreak@@{\cfromthec@}} -\xydef@\noClast@@{\Creset@@ \edef\lastbreak@@{\cfromthep@}} -\DOCMODE) - - The kernel only defines one kind of connection which is used by - default: `filling' many copies of the connect object on the straight - line from $p$ to $c$. - - First the `dummy' connection type |no| used for <object>s where it - doesn't really make sense to `connect', and used to provide defaults - for easy operations: - -\DOCMODE( -\xydef@\no@@{\setupDirection@ \edef\lastbreak@@{\cfromthep@}% - \enter@{\cfromthec@\pfromthep@\DirectionfromtheDirection@}% - \edef\Creset@@{\cfromthec@ \pfromthep@ \DirectionfromtheDirection@}% - \edef\next@{{\sd@X}{\sd@Y}}\expandafter\straightcheckoverlap@\next@ - \setupDirection@ \the\Edge@c\z@ - \swap@\reverseDirection@\the\Edge@c\z@\swap@\reverseDirection@ - \resetDirection@ - \edef\Cshavep@@{\DirectionfromtheDirection@ - \pfromthep@\noexpand\resetDirection@}% - \edef\Cshavec@@{\DirectionfromtheDirection@ - \cfromthec@\noexpand\resetDirection@}% - \leave@ - \def\Cslidep@@{\noCslidep@@}\def\Cslidec@@{\noCslidec@@}% - \def\Calong@@{\noCalong@@}\def\Cintercept@@{\noCintercept@@}% - \def\Cbreak@@{\noCbreak@@}\def\Clast@@{\noClast@@}\noinsert@} - -\xydef@\noinsert@{\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} -\DOCMODE) - - Next `straight' connections that use the following special parameters - to customises how to repeat a `filler' object as many times as needed - to draw the connection: -% -\begin{description} - -\item[|\lastobjectbox@|:] box to fill with; assumed to be `trimmed' to have - only the size needed for the filler; size is $w*(h+d)$). - -\end{description} -% - The method is called as |\straight@{|<spread>|}| where <spread> is a - macro to expand "after" the number of fillers $N$ (in |\count@@|) is - known and with $A=w$ and $B=d+h$ but "before" any filling is done. - May change $N$ as well as $"dX","dY",X,Y,w,d,h$ in order to affect - the filling. - -\subparagraph*{Procedure:} -% - [??_[Strgt1]] setup direction parameters, clear the break state, and - define the |\Creset@@| macro to reestablish this initial state; - [??_[Strgt2]] build macro to discover if the edges of the objects - overlap (it edges were removed); [??_[Strgt3]] move both $p,c$ to the - edges of the objects\dots and define the |\Cshave*@@| macros - accordingly; [??_[Strgt4]] choose either to ignore the connection if - requested or there is overlap between the objects of choose either - vbox or hbox version (see below)\dots; and [??_[Strgt5]] build - |\Calong@@|, |\Cbreak@@|, and |\Clast@@| macros, and reset $pc$. - - \NOTE: Assumes that the direction is not tampered with between Creset - is defined and used\dots - -\DOCMODE( -\xydef@\Spread@@{} -\xydef@\checkoverlap@@{} - -\xydef@\straight@#1{\setupDirection@ \def\Spread@@{#1}% %?*[Strgt1] - \edef\Creset@@{\cfromthec@ \pfromthep@ \DirectionfromtheDirection@}% - \edef\lastbreak@@{\cfromthep@}% - \edef\next@{{\sd@X}{\sd@Y}}\expandafter\straightcheckoverlap@\next@ %?*[Strgt2] - \setupDirection@ \the\Edge@c\z@ - \swap@\reverseDirection@\the\Edge@c\z@\swap@\reverseDirection@ - \resetDirection@ - \edef\Cshavep@@{\DirectionfromtheDirection@ - \pfromthep@\noexpand\resetDirection@}% - \edef\Cshavec@@{\DirectionfromtheDirection@ - \cfromthec@\noexpand\resetDirection@}% - \noinsert@ %?*[Strgt3b] - \straight@typeset %?*[Strgt4] - \def\Cbreak@@{\straightCbreak@}\def\Clast@@{\straightClast@}% -% \DN@{\solidSpread@}\ifx\next@\Spread@@ -% \checkXy@rules@\solidhrule@pre\solidvrule@pre\relax -% \fi - \def\Cslidep@@{\noCslidep@@}\def\Cslidec@@{\noCslidec@@}%?*[Strgt5] - \def\Calong@@{\noCalong@@}\def\Cintercept@@{\noCintercept@@}% - \Creset@@} - -\xydef@\straightcheckoverlap@#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}} - -\xydef@\straight@typeset{% - \ifInvisible@ \let\next@=\relax - \else\ifdim 1\Direction<-2\K@ \DN@{\straightv@}% - \else\ifdim 1\Direction<\z@ \DN@{\straighth@}% - \else\ifdim 1\Direction<2\K@ \DN@{\straightv@}% - \else \DN@{\straighth@}% - \fi\fi\fi\fi \checkoverlap@@ \next@} -\DOCMODE) - - The methods |\straightCbreak@| and |\straightClast@| implement the - break method parametrised on the `typeset' primitive which is usually - |\straight@typeset| which is a simplified version of |\straight@| - that does not initialise. This relies on the connection being - straight: the |Cbreak@@| method executes $p,c := - p|.|"lastbreak",c|.|"nextbreak"$ and |Clast@@| executes $p,c := - p|.|"lastbreak",c$, where in both cases the |[Inner]| modifier is - applied just before the merging to make sure the edge is respected by - the merged object. - -\DOCMODE( -\xylet@\nextbreak@@=\empty - -\xydef@\straightCbreak@{\connectRestore@ - \edef\nextbreak@@{\cfromthec@}% - \Creset@@ \swap@ \the\Edge@c4\enter@{\cmergethec@}\lastbreak@@ \leave@ - \swap@ \the\Edge@c4\enter@{\cmergethec@}\nextbreak@@ \leave@ - \setupDirection@ - \the\Edge@c\z@ - \swap@ \reverseDirection@ \the\Edge@c\z@ \swap@ \reverseDirection@ - \resetDirection@ \noinsert@ \straight@typeset - \Creset@@ \let\lastbreak@@=\nextbreak@@} - -\xydef@\straightClast@{\connectRestore@ - \Creset@@ \swap@ \the\Edge@c4\enter@{\cmergethec@}\lastbreak@@ \leave@ - \swap@ - \setupDirection@ - \the\Edge@c\z@ - \swap@\reverseDirection@ \the\Edge@c\z@ \swap@\reverseDirection@ - \resetDirection@ \noinsert@ \straight@typeset - \Creset@@ \edef\lastbreak@@{\cfromthep@}} -\DOCMODE) - - Now for the typesetting -- to summarise: these are parametrised on - direction parameters and use $X,Y$: endpoint of connection - (`Direction end'). $"dX","dY"$: connection distance (`Direction - vector'). |\Leftness@| of <object>. |\lastobjectbox@| to fill with; - assumed to be `trimmed'. |\Spread@@| to expand to modify the default - spreading used. |\Drop@@| to expand to actually typeset the finished - connection when it is in box0! \NOTE: Must make box0 void to avoid - `box leaks'. - - Two variants exist: one for mostly horisontal and one for mostly - vertical filling. We detail the `mostly horisontal' one: - - [??_[StrH0]] start box; -% - [??_[StrH1]] compute initial adjustment ($X$ right and $Y$ up) and - $A := w$, $B := h+d$, $N = \floor(\abs{"dX"} / A)$, - and run user supplied Spread; -% - [??_[StrH2]] adjust first filler position horizontally: - if $dX\gt0$ then $X := X-w$; -% - [??_[StrH4]] adjust first filler vertically: $Y := Y - - "sdX"*L*("dY"/"dX")*w$ where $L = \textup{if} dX>0 \textup{then} - (1-Leftness) \textup{else} Leftness$; -% - [??_[StrH3]] recompute the move dimensions ($A$ right and $B$ up): - $A := -"sdX"(\abs{dX} - w) / (N-1)$, - $B := "sdY"\abs{"sdX"(w)*"dY"/"dX" - dY} / (N-1)$, - and set the filler box to have $w := A$; -% - [??_[StrH5]] output first filler adjusted $X,Y$ and the following $N-1$ - each $A$ further right and raised $B$ more than the previous; -% - and finally end object with usual bravour! - -\DOCMODE( -\xydef@\straighth@{\setbox\z@=\hbox{% - \setbox8=\copy\lastobjectbox@ - \A@=\wd8\relax \B@=\dp8\relax \advance\B@\ht8\relax %?*[StrH1] - \ifdim \A@=\z@ \count@@=\m@ne - \else \dimen@=\sd@X\d@X \divide\dimen@\A@ \count@@=\dimen@ \fi - \Spread@@ - \ifdim\d@X>\z@ \advance\X@c-\wd8\relax\fi %?*[StrH2] - \dimen@=-\sd@X\wd8\relax %?*[StrH4] - \multiply\dimen@\K@dYdX \divide\dimen@\K@ - \ifdim\d@X>\z@ \advance\Y@c\dimen@ \advance\Y@c-\Leftness@\dimen@ - \else \advance\Y@c\Leftness@\dimen@ \fi - \dimen@=\wd8\relax \A@=\sd@X\d@X \advance\A@-\dimen@ %?*[StrH3] - \B@=\sd@X\dimen@ \multiply\B@\K@dYdX \divide\B@\K@ - \advance\B@-\d@Y \B@=\sd@Y\B@ - \count@=\count@@ \advance\count@\m@ne - \ifnum\z@<\count@ \divide\A@\count@ \divide\B@\count@ \fi - \A@=-\sd@X\A@ \B@=\sd@Y\B@ \wd8=\A@ - \kern\X@c \count@=\z@ %?*[StrH5] - \loop@\ifnum\count@<\count@@ \advance\count@\@ne - \raise\Y@c\copy8\relax \advance\Y@c\B@ \repeat@}% - \ht\z@=\z@ \wd\z@=\z@ \dp\z@=\z@ {\Drop@@}} -\DOCMODE) - - The mosly vertical is analogous. \BUG: |\dimen@| holds the unadjusted - $h+d$ throughout -- somehow it works anyway! - -\DOCMODE( -\xydef@\straightv@{\setbox\z@=\vtop{% - \setbox8=\copy\lastobjectbox@ - \A@=\wd8\relax \B@=\dp8\relax \advance\B@\ht8\relax - \ifdim \B@=\z@ \count@@=\m@ne - \else \dimen@=\sd@Y\d@Y \divide\dimen@\B@ \count@@=\dimen@ \fi - \Spread@@ - \dimen@=\dp8\relax \advance\dimen@\ht8\relax - \B@=\sd@Y\d@Y \advance\B@-\dimen@ - \A@=\sd@Y\dimen@ \multiply\A@\K@dXdY \divide\A@\K@ \advance\A@-\d@X - \A@=\sd@X\A@ \count@=\count@@ \advance\count@\m@ne - \ifnum\z@<\count@ \divide\B@\count@ \divide\A@\count@ \fi - \B@=\sd@Y\B@ \A@=\sd@X\A@ \ht8=\B@ \dp8=\z@ - \ifdim\d@Y<\z@ - \advance\Y@c\dimen@ \advance\Y@c\Upness@\B@ - \else - \advance\dimen@\Upness@\B@ \advance\Y@c-\dimen@ \advance\Y@c\B@ - \fi - \advance\Y@c\B@ - \ifdim\d@X<\z@ \else \advance\X@c-\wd8\relax \fi - \null \kern-\Y@c \count@=\z@ - \loop@\ifnum\count@<\count@@ \advance\count@\@ne - \nointerlineskip \moveright\X@c\copy8\relax \advance\X@c\A@ - \repeat@}% - \ht\z@=\z@ \wd\z@=\z@ \dp\z@=\z@ {\Drop@@}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - -\section*{End \& log} - - \Xy-pic ends with a message saying so. - -\DOCMODE( -\message{ Xy-pic loaded}\xyuncatcodes \endinput -\DOCMODE) - - \Xy-pic is maintained using the RCS ``Revision Control System'' by - Walther F.~Tichy. The following is the revision history since the - first release to Usenet. - -\DOCMODE( -% $Log: xy.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.6 1998/03/06 01:28:05 krisrose -% Releasing (with Y&Y fonts). -% -% Revision 3.5 1997/05/28 13:05:01 krisrose -% Fixed missing breaks bug. -% -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/05 22:20:09 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:55:12 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% Revision 2.8 1994/04/11 09:31:09 kris -% Second (bug fix) 3alpha release [corrected]. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% MAJOR REWRITE and REORGANISATION: -% File xypic.doc split into separate files: xy.doc for `kernel' and other -% files with the `extensions' and `features'. -% Documented in special DOCMODE LaTeX-based format supported by xydoc.sty. -% -% Revision 2.6.1.1 1992/07/01 07:08:24 kris -% Send to EuroTeX '92... -% -% Revision 2.6 1992/06/24 01:23:34 kris -% Added hooks using font xyqc10. -% Added new POSitions: * and !. -% Added triple lines \Ssolid and \Ddashed. -% -% Revision 2.5 1992/02/24 03:30:54 kris -% Fixed bugs in \Direction calculation logic... -% Added (FACTOR) to \rotate to allow arbitrary rotation. -% ` intermediate points now accept an optional /RADIUS argument. -% Added \Tip with wide tip. -% [See ChangeLog for further details]. -% -% Revision 2.4 1992/01/22 02:15:10 kris -% Fixed bugs [with thanks]: -% No spurious arrow heads with LaTeX: \pit now undefined [Werner Struckmann] -% \Solid works: sets \Density [Dave Bowen] -% Short diagonal lines work...major rewrite of \connectv@ [Eric Domenjoud] -% -% Revision 2.3 1992/01/13 23:28:12 kris -% Swapped definitions of \ddtoX and \uutoX [found by Nico Verwer]. -% Diagonal lines were wrong [Eric Domenjoud]. -% -% Revision 2.2 1992/01/09 04:05:40 kris -% Still problems with rules in frames and horizontal/vertical \solids. Grrr. -% -% Revision 2.1 1992/01/02 14:54:07 kris -% Release version. -% -% Revision 1.40 1991/12/17 04:53:23 kris -% Version distributed as `final draft' on Usenet. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% TeX-parse-self:nil -% LaTeX-indent-level:1 -% TeX-brace-indent-level:1 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xy.sty b/Master/texmf-dist/source/generic/xypic/xy.sty deleted file mode 100644 index 32867e52f57..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xy.sty +++ /dev/null @@ -1,103 +0,0 @@ -%% $Id: xy.sty,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -%% -%% ``Xy-pic as LaTeX 2.09 style option and LaTeX 2e package''. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. - -% Load Xy-pic with catcode of @ set as it will be in user text: -\count255=\the\catcode`\@ {\catcode`\@=11 \xdef\xystycatcode{\the\count255}} -\makeatletter - -% REPAIR bug of the 2e version of AMS-LaTeX where \makeatother is broken... -\ifx\@ifpackageloaded\undefined \makeatother -\else \@ifpackageloaded{amstex}{\catcode`\@=\active}{\makeatother}\fi - -\input xy - -% That is all unless this is called as a LaTeX2e `native mode' package. Is -% there an official way to check this? Anyway, this seems to work: -\makeatletter -\ifx\if@compatibility\undefined \catcode`\@=\xystycatcode \endinput \fi - -% Ensure that we are *really* running LaTeX2e...! -\NeedsTeXFormat{LaTeX2e} - -% This file provides the current version of Xy-pic! -\edef\next{% - \noexpand\ProvidesPackage{xy}[\xydate\space Xy-pic version \xyversion]}\next - -% Recognise some standard LaTeX2e class options (cf. `LaTeX Companion' p.317): -\DeclareOption{cmactex}{\xyoption{cmactex}} -\DeclareOption{dvips}{\xyoption{dvips}\xyoption{ps}} -\DeclareOption{dvitops}{\xyoption{dvitops}\xyoption{ps}} -\DeclareOption{emtex}{\xyoption{emtex}} -\DeclareOption{ln}{\xywarning@{`ln' DVI driver not yet fully supported}} -\DeclareOption{oztex}{\xyoption{oztex}} -\DeclareOption{textures}{\xyoption{textures}} -\DeclareOption{xdvi}{\xyoption{xdvi}} - -% This is special: -\DeclareOption{colour}{\xyoption{color}} % :-) - -% This (obsolete) cmtip style option should be activated after loading: -\DeclareOption{cmtip}{\xyoption{cmtip}\UseComputerModernTips} - -% Pass the desired tip size if defined -\DeclareOption{10pt}{\xywithoption{tips}{\def\tipsize@@{10}}} -\DeclareOption{11pt}{\xywithoption{tips}{\def\tipsize@@{11}}} -\DeclareOption{12pt}{\xywithoption{tips}{\def\tipsize@@{12}}} - -% Other options are just loaded. -\DeclareOption*{\edef\next{\noexpand\xyoption{\CurrentOption}}\next} - -% Reinstall catcode of @... -\catcode`\@=\xystycatcode - -% ... process the options, and that is all. -\ProcessOptions - -\endinput - -% $Log: xy.sty,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% New for version 2.7. diff --git a/Master/texmf-dist/source/generic/xypic/xy16textures.doc b/Master/texmf-dist/source/generic/xypic/xy16textures.doc deleted file mode 100644 index c4a7545746f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xy16textures.doc +++ /dev/null @@ -1,294 +0,0 @@ -%% $Id: xy16textures.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -%% -%% Xy-pic ``Textures v1.6'' 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{16textures}{Textures v1.6 driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This driver provides support for versions 1.5b and 1.6 of Blue Sky Research's -\Textures\ application for Macintosh\footnote{Macintosh is a trademark of -Apple Computer Inc.}. It incorporates support for \PS\ colour and the -\Xy-ps \PS\ back-end. This will {\em not} work with versions 1.7 and later; -these require the <driver> option |\xyoption{textures}|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE( -\xydef@\oldTextures@@#1{\dvimessage@{Textures v1.6}{#1}} - -\newdriver{% - \xyaddsupport{color}\oldtexturesColor@@ - \xyaddsupport{crayon}\oldtexturesCrayon@@ - \xyaddsupport{ps}\oldtexturesPS@@ - \xyaddsupport{rotate}\oldtexturesRotate@@ - \xyaddsupport{line}\oldtexturesLine@@ - \xyaddsupport{frame}\oldtexturesFrames@@ - \xyaddsupport{tile}\oldtexturesTiles@@ - \xyaddsupport{cmtip}\relax -} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Supported |\special| effects are... -% -\begin{itemize} - -\item colour, using \PS\ - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Textures v1.6 cannot manage colours, except within imported graphics. -It can put colours into the \PS\ output. - -\DOCMODE( -\xydef@\oldTexturesColours@{\oldtexturesPStypes@ - \let\xylocalColor@=\xyNoColor@@ \def\xycolor@{\xycolor@@}% - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}% - \installPScolor@ }\else\DN@{}\fi \next@ - \ifx\xycolor@@\xyNoColor@ \let\xycolor@@=\xycolor@raw@@\fi - \ifx\xycrayolaloaded\empty \DN@{\xystandardcolors@\oldtexturesCrayon@@{}}% - \else\let\next@=\xystandardcolors@ \fi \next@ - \let\xycolorwarning@=\relax - \let\oldtexturesColor@@=\relax - \let\UnloadColor@@=\NooldTexturesColor@ - } - -\xydef@\oldtexturesColor@@{\oldTexturesColours@} - -\xydef@\NooldTexturesColor@{% - \let\xylocalColor@=\xyNoColor@@ - \let\xycolor@=\xyNoColor@ - \let\xycolorwarning@=\xycolorwarning@@ - \let\oldtexturesColor@@=\oldTexturesColours@ - \let\UnloadColor@@=\UnloadColor@ - } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item crayon colours. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The 68 colours are those that |dvips| recognizes by name, -thanks to Tomas Rokicki. - -\DOCMODE( -\xydef@\oldtexturesCrayon@@{\oldtexturesColor@@\oldtexturesCrayon@} -\xydef@\oldtexturesCrayon@{\installCrayolaColors@}% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \PS\ back-end. -\DOCMODE( -\xydef@\oldtexturesPS@@{\oldtexturesPS@} - -\xydef@\oldtexturesPSunload@{\UnloadPS@ - \ifx\xyrealshipout@\undefined\else - \ifx\shipout\xyrealshipout@ - \else \let\shipout=\xyrealshipout@\fi\fi - \let\installxyps@@=\relax - \let\UnloadPS@@=\UnloadPS@ - \let\oldtexturesPS@@=\oldtexturesPS@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -We must return the binding of |\shipout| to its initial value. - -\medskip - -Early versions (1.5--1.6) of \Textures\ have two kinds of |\special|, -for inserting \PS\ code into the dvi-file and two more for reading -such code from a file: -% -\begin{itemize} -\item |\special{rawpostscript #1}| puts code directly into the \PS\ file. -\item |\special{postscript #1}| wraps the code within |sps|...|eps|, -which involves graphics state changes within a |gsave/grestore| pair. -\end{itemize} -Each of these has a corresponding version for reading the \PS\ commands -from a file. - -\DOCMODE( -\xydef@\oldTexturesSpecial@#1{\firstPS@@\special{postscript #1}} -\xydef@\oldTexturesMacro@#1{\special{postscript {#1}xy}} -\xydef@\oldTexturesInclude@#1{\firstPS@@\special{rawpostscriptfile #1}} -\xydef@\oldTexturesRaw@#1{\firstPS@@\special{rawpostscript #1}} - -\xydef@\oldtexturesPStypes@{% - \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \ifx\PSspecial@@\oldTexturesSpecial@\else - \let\PSspecial@@=\oldTexturesSpecial@ - \let\PSmacro@@=\oldTexturesMacro@ - \let\PSdict@@=\oldTexturesRaw@ - \let\PSraw@@=\oldTexturesRaw@ - \let\PSinclude@@=\oldTexturesInclude@ - \let\PSspecialdict@@=\oldTexturesRaw@ - \let\xyPSobeylines@@=\obeyoldTextureslines@ - \oldTextures@@{PostScript}% - \fi -% \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \oldtexturesCurrpt@ \@PSshipout } - -{\catcode`\^^M=\active % - \gdef\next{\catcode`\^^M=\active \let^^M=\par \obeyspaces}} -\xylet@\obeyoldTextureslines@=\next -\DOCMODE) - -The |currentpoint| is defined for the ``raw'' specials. -For Textures this is the same as |\xyPScurrpt@@@|, in |xyps-ps.doc|. - -\DOCMODE( -\xydef@\oldtexturesCurrpt@{\let\xyPScurrpt@@=\oldtexturesCurrpt@@}% -\xydef@\oldtexturesCurrpt@@{\PSspecial@@{xyi}\PSraw@@{userdict begin xyx end}} -\DOCMODE) - -The \PS\ operator called |xyx| is defined in |xyps-ps| for storing the -location placed on the stack by |xyi|. - -\medskip - -\Textures~v1.6 requires the \PS\ dictionary to be shipped-out with -every page. To achieve this efficiently we rebind |\shipout|, -as described in |xyps-ps.doc|. Next set the flag |\UsePSdict@@true| -after having rebound |\includePSmessage@| to gobble the attempt to load -the dictionary directly into the dvi-file. - -This installs the \PS\ backend. - -\DOCMODE( -\xydef@\oldtexturesPS@{\oldtexturesPStypes@ - \let\oldtexturesPS@@=\relax - \let\UnloadPS@@=\oldtexturesPSunload@ - \let\installxyps@@=\@PSshipout \installxyps@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item rotated/scaled diagrams and text, using \PS. - -\DOCMODE( -\xydef@\oldtexturesRotate@@{\oldtexturesRotate@} - -\xydef@\oldtexturesRotate@{\oldtexturesPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}% - \xyRotScale@@ \installPSrotscale@ }% - \else\DN@{\xydriverfail@{rotations are}\UnloadRotate@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item variable line-widths and poly-lines, using \PS. -\DOCMODE( -\xydef@\oldtexturesLine@@{\oldtexturesLine@} - -\xydef@\oldtexturesLine@{\oldtexturesPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \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@\oldtexturesFrames@@{\oldtexturesFrames@} - -\xydef@\oldtexturesFrames@{\oldtexturesPStypes@ - \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@\oldtexturesTiles@@{\oldtexturesTiles@} - -\xydef@\oldtexturesTiles@{\oldtexturesPStypes@ - \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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{itemize} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xy16textures.doc,v $ -% Revision 3.3 1996/12/18 14:21:23 ross -% Ross's version -% -% Revision 3.3.1.1 1996/12/18 08:45:28 ross -% *** empty log message *** -% -% Revision 3.2 1995/09/19 18:20:20 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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\endinput - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xy17oztex.doc b/Master/texmf-dist/source/generic/xypic/xy17oztex.doc deleted file mode 100644 index 41f1f80a9c3..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xy17oztex.doc +++ /dev/null @@ -1,301 +0,0 @@ -%% $Id: xy17oztex.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -%% -%% Xy-pic ``OzTeX v1.7'' 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{17oztex}{OzTeX v1.7 driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This option provides the necessary interface to support the \PS\ back-end and -other \PS\ effects when using the DVI driver of version 1.7 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>.} "Later versions -of \OzTeX\ should instead use the driver option |\xyoption{oztex}|." -Upgrading to version 1.9+ of\OzTeX\ is recommended. - -Does not support rotations, scaling and coloured text within diagrams and the -\PS\ dictionary must be available in a file called |global.ps|. - -\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 v1.7}{#1}} - -\newdriver{% - \xyaddsupport{color}\oldoztexColor@@ - \xyaddsupport{crayon}\oldoztexCrayon@@ - \xyaddsupport{ps}\oldoztexPS@@ - \xyaddsupport{rotate}\oldoztexRotate@@ - \xyaddsupport{line}\oldoztexLine@@ - \xyaddsupport{frame}\oldoztexFrames@@ - \xyaddsupport{tile}\oldoztexTiles@@ - \xyaddsupport{cmtip}\relax -} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Supported |\special| effects are... -% -\begin{itemize} - -\item colour, using \PS, but not of font-characters. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\oldoztexColor@@{\oldOzTeXColours@} - -\xydef@\oldOzTeXColours@{\oldOzTeXPStypes@ - \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@\oldOzTeXCrayon@@{}}% - \else\let\next@=\xystandardcolors@\fi \next@ - \let\xycolorwarning@=\relax - \let\oldoztexColor@@=\relax - \let\UnloadColor@@=\NooldOzTeXColor@ - } - -\xydef@\NooldOzTeXColor@{% - \let\xylocalColor@=\xyNoColor@@ - \let\xycolor@=\xyNoColor@ - \let\xycolorwarning@=\xycolorwarning@@ - \let\oldoztexColor@@=\oldOzTeXColours@ - \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@\oldOzTeXCrayon@@{\installCrayolaColors@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \PS\ back-end. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\oldoztexPS@@{\oldoztexPS@} - -\xydef@\oldoztexPSunload@{\UnloadPS@ - \def\xyPSdictname{}\UsePSdict@@false - \let\installxyps@@=\relax - \let\UnloadPS@@=\UnloadPS@ - \xyPSshapes@true - \let\oldoztexPS@@=\oldoztexPS@ } -\DOCMODE) - -\DOCMODE( -\xydef@\oldOzTeXSpecial@#1{\special{empty.ps {#1}xy}} -\xydef@\oldOzTeXMacro@#1{\special{empty.ps {#1}xy}} -\xydef@\oldOzTeXDict@#1{\special{empty.ps @obxy{#1}stopped pop @eoxy}} -\xydef@\oldOzTeXinclude@#1{\special{#1}} -\xydef@\oldOzTeXraw@#1{\special{empty.ps @boxy #1 @eoxy}}% - -\xydef@\oldOzTeXPStypes@{% - \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \ifx\PSspecial@@\oldOzTeXSpecial@\else - \let\PSspecial@@=\oldOzTeXSpecial@ - \let\PSmacro@@=\oldOzTeXMacro@ - \let\PSdict@@=\oldOzTeXDict@ - \let\PSraw@@=\oldOzTeXraw@ - \let\PSinclude@@=\oldOzTeXinclude@ - \let\xyPSobeylines@@=\obeyoldOzTeXlines@ - \let\PSspecialdict@@=\oldOzTeXDict@ - \oldOzTeX@@{PostScript}% - \fi -% \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \oldOzTeXCurrpt@ } - -{\catcode`\^^M=\active % - \gdef\next{\catcode`\^^M=\active \let^^M=\space \obeyspaces}} -\xylet@\obeyoldOzTeXlines@=\next -\DOCMODE) - -The \PS\ operators |@boxy| and |@eoxy| 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@\oldOzTeXCurrpt@{\let\xyPScurrpt@@=\OzTeXCurrpt@@}% -\xydef@\oldOzTeXCurrpt@@{} -\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@\oldoztexPS@@{\oldOzTeXPStypes@ - \let\installxyps@@=\old@OzTeX@PS@ - \installxyps@ } - -% The parameter |#1| in this next macro is to gobble the |\dumpPSdict@| -% which would otherwise dump the dictionary into the dvi-file. However -% if |\xyPSdictname| is defined then this dump must occur into a file. -% -%\xydef@\old@OzTeX@PS@#1{% -% \let\includePSmessage@=\xyoldOzTeXheader -% \ifx\undefined\xyPSdictname\DN@{}% -% \else\DN@{#1}\fi\next@ \UsePSdict@@true} - -\xydef@\old@OzTeX@PS@{\UsePSdict@@true - \let\includePSmessage@=\xyoldOzTeXheader - \ifx\undefined\xyPSdictname\def\xyPSdictname{global.ps}\fi} - -\xydef@\xyoldOzTeXheader#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@\oldoztexLine@@{\oldoztexLine@} - -\xydef@\oldoztexLine@{\oldOzTeXPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \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@\oldoztexFrames@@{\oldOzTeXFrames@} - -\xydef@\oldOzTeXFrames@{\oldOzTeXPStypes@ - \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@\oldoztexTiles@@{\oldOzTeXTiles@} - -\xydef@\oldOzTeXTiles@{\oldOzTeXPStypes@ - \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@\oldoztexRotate@@{\oldOzTeXRotate@} - -\xydef@\oldOzTeXRotate@{\oldOzTeXPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{%\XYpredict@ - \xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}% - \xyRotScale@@ \installPSrotscale@ \xyPSshapes@false }% - \else\DN@{\xydriverfail@{rotations are}\UnloadRotate@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\end{itemize} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xy17oztex.doc,v $ -% Revision 3.3 1996/12/18 14:21:23 ross -% Ross's version -% -% Revision 3.3.1.1 1996/12/18 08:47:45 ross -% *** empty log message *** -% -% Revision 3.2 1995/09/19 18:20:20 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: diff --git a/Master/texmf-dist/source/generic/xypic/xy2cell.doc b/Master/texmf-dist/source/generic/xypic/xy2cell.doc deleted file mode 100644 index 18bab67ac1f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xy2cell.doc +++ /dev/null @@ -1,1839 +0,0 @@ -%% $Id: xy2cell.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ -%% -%% Xy-pic ``2-cell'' feature. -%% Copyright (c) 1993-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 macro package; if not, write to the Free Software Foundation, -%% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -%% -\ifx\xyloaded\undefined \input xy \fi - -\xyprovide{2cell}{Two-cell feature}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent - This feature is designed to facilitate the typesetting of curved arrows, - either singly or in pairs, together with labels on each part and between. - The intended mathematical usage is for typesetting categorical ``2-cell'' - morphisms and ``pasting diagrams'', for which special features are provided. - These features also allow attractive non-mathematical effects. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The 2-cell feature makes use of facilities from the `curve' extension - which is therefore automatically loaded. - -\DOCMODE( -\xyrequire{curve}\xycatcodes -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Typesetting 2-cells in Diagrams} - -\noindent -Categorical -``2-cell'' morphisms are used in the study of tensor categories and elsewhere. -The morphisms are displayed as a pair of curved arrows, symmetrically -placed, together with an orientation indicated by a short broad arrow, -or {\it Arrow}. Labels may be placed on all three components. - -\DOCMODE( -\message{two-cells,} -\DOCMODE) - -\UseAllTwocells - -\BUG: This document still uses version~2-style commmands, as described in -appendix~??g[:v2]. - -\xyrequire{v2}\xycatcodes - -\xymatrixcolsep{5pc}% -\xymatrixrowsep{2pc}% - -\begin{code} -\diagram -A\rtwocell^f_g &B\\ -\enddiagram -\end{code} -$$ \docode $$ -\displaycode - -\begin{code} -\diagram -A\ruppertwocell^f{\alpha} - \rlowertwocell_h{\beta} - \rto_(.35)g & B\\ -\enddiagram -\end{code} -$$ \docode $$ -\displaycode - -These categorical diagrams frequently -have a matrix-like layout, as with commutative diagrams. -To facilitate this there are control sequences of the form: -|\rtwocell| , |\ultwocell| , |\xtwocell| , \dots\ -analogous to the names defined in |xyv2| for use -in diagrams produced using |xymatrix|. -As this involves the definition of 21 new control sequences, many of which -may never be used, these are not defined immediately upon loading |xy2cell|. -Instead the user must first specify |\UseTwocells|. - -As in the second example above, just the upper or lower curved -arrow may be set using control sequences of the form -|\..uppertwocell| and |\..lowertwocell|. -These together with the |\..compositemap| family, in which -two abutting arrows are set with an empty object at the join, -allow for the construction of complicated ``pasting diagrams'' -(see figure ??[f.pasting] for an example). - -The following initialise the families of control sequences -for use in matrix diagrams. - -\begin{defs} - |\UseTwocells| &\quad two curves \cr - |\UseHalfTwocells| &\quad one curve \cr - |\UseCompositeMaps| &\quad 2 arrows, end-to-end \cr - |\UseAllTwocells| &\quad (all the above) \cr -\end{defs} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\UseTwocells{\definesupermorphism{twocell}{% - \xy@{start of 2-cell}{\begingroup}% - \twocell@}} - -\xydef@\UseHalfTwocells{% - \definesupermorphism{uppertwocell}{% - \xy@{start of 2-cell}{\begingroup}% - \uppertwocell@}% - \definesupermorphism{lowertwocell}{% - \xy@{start of 2-cell}{\begingroup}% - \lowertwocell@}} - -\xydef@\UseCompositeMaps{\definesupermorphism{compositemap}{% - \xy@{start composite-map}{\begingroup}% - \compositemap@}} - -\xydef@\UseAllTwocells{% - \UseTwocells \UseHalfTwocells \UseCompositeMaps } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The families of connections are defined using the utility macro\dots -% - |\definesupermorphism| -% - which defines control sequences for morphisms between - neighbouring cells, and next-to-neighbouring cells. - - More distant cells use |\xtwocell|, |\xcompositemap|, etc. - with <hop>s e.g. - |\xtwocell[1,3]| and |\xtwocell[llddd]|. - -\DOCMODE( -\xydef@\supermorphism#1[#2]#3{\def\afterMORPHISM{[#2]#3}#1} -\xydef@\afterMORPHISM{} - -\xydef@\definesupermorphism#1#2{% - \expandafter\def\csname x#1\endcsname{\supermorphism{#2}}% - \expandafter\def\csname u#1\endcsname{\supermorphism{#2}[-1,0]{}}% - \expandafter\def\csname d#1\endcsname{\supermorphism{#2}[1,0]{}}% - \expandafter\def\csname l#1\endcsname{\supermorphism{#2}[0,-1]{}}% - \expandafter\def\csname r#1\endcsname{\supermorphism{#2}[0,1]{}}% - \expandafter\def\csname uu#1\endcsname{\supermorphism{#2}[-2,0]{}}% - \expandafter\def\csname dd#1\endcsname{\supermorphism{#2}[2,0]{}}% - \expandafter\def\csname ll#1\endcsname{\supermorphism{#2}[0,-2]{}}% - \expandafter\def\csname rr#1\endcsname{\supermorphism{#2}[0,2]{}}% - \expandafter\def\csname ur#1\endcsname{\supermorphism{#2}[-1,1]{}}% - \expandafter\def\csname ul#1\endcsname{\supermorphism{#2}[-1,-1]{}}% - \expandafter\def\csname dr#1\endcsname{\supermorphism{#2}[1,1]{}}% - \expandafter\def\csname dl#1\endcsname{\supermorphism{#2}[1,-1]{}}% - \expandafter\def\csname uul#1\endcsname{\supermorphism{#2}[-2,-1]{}}% - \expandafter\def\csname uur#1\endcsname{\supermorphism{#2}[-2,1]{}}% - \expandafter\def\csname ull#1\endcsname{\supermorphism{#2}[-1,-2]{}}% - \expandafter\def\csname urr#1\endcsname{\supermorphism{#2}[-1,2]{}}% - \expandafter\def\csname ddl#1\endcsname{\supermorphism{#2}[2,-1]{}}% - \expandafter\def\csname ddr#1\endcsname{\supermorphism{#2}[2,1]{}}% - \expandafter\def\csname dll#1\endcsname{\supermorphism{#2}[1,-2]{}}% - \expandafter\def\csname drr#1\endcsname{\supermorphism{#2}[1,2]{}}% - \expandafter\def\csname uull#1\endcsname{\supermorphism{#2}[-2,-2]{}}% - \expandafter\def\csname uurr#1\endcsname{\supermorphism{#2}[-2,2]{}}% - \expandafter\def\csname ddll#1\endcsname{\supermorphism{#2}[2,-2]{}}% - \expandafter\def\csname ddrr#1\endcsname{\supermorphism{#2}[2,2]{}}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\bigskip - -Alternatively 2-cells can be set directly in \Xy-pictures without using the -matrix feature. In this case the above commands are not needed. This is -described in~\S??[standard]. - -Furthermore a new directional |\dir{=>}| can be used to -place an ``Arrow'' anywhere in a picture, -after the direction has been established appropriately. -It is used with all of the 2-cell types. - -\DOCMODE( -\newdir{=>}{!/5pt/\dir{=}!/2.5pt/\dir{=}*!/-5pt/\dir2{>}} - -\xydef@\arrowobject#1{\def\Arrowobject@{#1}} -\xydef@\Arrowobject@{\dir{=>}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%{\obeylines\long\outer\gdef\Pastingexample{% -\begin{code} -\xymatrixrowsep{1.5pc} -\xymatrixcolsep{3pc} -\diagram - & & \relax\rtwocell<0>^{f_3^{}\;\;}{\omit} & \relax\ddtwocell<0>{\omit} - \drtwocell<0>^{\;\;f_4^{}}{<3>} - \ddrrtwocell<\omit>{<8>}\\ - & & & &\relax\drtwocell<0>^{\;\;f_5^{}}{\omit}\\ -A \uurrcompositemap<2>_{f_1^{}}^{f_2^{}}{<.5>} - \uurrlowertwocell<-6>{\omit}\relax - \drtwocell<0>_{g_1^{}\;}{\omit} - & & & \relax\urtwocell<0>{\omit} - & &\relax\rtwocell<0>^{f_6^{}\;}{\omit} - & \relax\rlowertwocell<-3>_{g_4^{}}{<-1>} - \rcompositemap<6>_{f_7^{}}^{f_8^{}}{\omit} & B \\ - & \relax\urrtwocell<0>{\omit} - \xcompositemap[-1,4]{}<-4.5>_{g_2^{}}^{g_3^{}}{\omit}\\ -\enddiagram -\end{code} - -\begin{figure*}[bt] -$$ \docode $$ -\caption{Pasting diagram.} -??=[f.pasting] -\end{figure*} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Default positions:} - - These set up default values for the parameters which - specify the position of each component - as well as the flags to indicate what type - of 2-cell is to be typeset. - -\begin{defs1} -\begin{tabular}{c l} - |\toks6| &position of control point, - normal to line $\overline{pc}$ at midpoint\\ - |\toks5| &position of central Arrow\\ - |\toks7| &position of |^| label\\ - |\toks8| &position of |_| label\\ - |\toks3| &flag for number of pieces... \\ - \quad |f| & \underline{f}ull: i.e. both curved arrows\\ - \quad |o| & \underline{o}ne: |\uppertwocell| or |\lowertwocell|\\ - \quad |t| & \underline{t}wo maps: |\compositemaps|\\ -\end{tabular} -\end{defs1} - -\noindent -|@| means to calculate from the value in |\toks6|, see |\tw@cell@@@|. - -\DOCMODE( -\xydef@\twocell@{\toks6={3.5}\toks5={@}\toks7={@}\toks8={@}\toks3={f}% - \tw@cell@ } -\xydef@\uppertwocell@{\toks6={7}\toks5={@}\toks7={@}\toks8={@}\toks3={o}% - \tw@cell@ } -\xydef@\lowertwocell@{\toks6={-7}\toks5={@}\toks7={@}\toks8={@}\toks3={o}% - \tw@cell@ } -\xydef@\compositemap@{\toks6={3.5}\toks5={@}\toks7={@}\toks8={@}\toks3={t}% - \tw@cell@ } -\DOCMODE) - - This collects together all the relevant data, and resolves the - default positions. - -\DOCMODE( -\xydef@\tw@cell@@@{% - \expandafter\ifx\the\toks6\omit\relax\toks6={}\else -% -% default position of label on upper arrow, -% relative to where it meets the perpendicular bisector -% - \expandafter\ifx\expandafter @\the\toks7\relax\expandafter\dimen@\the\toks6\p@ - \expandafter\if\the\toks3t\relax\dimen@=\p@ - \else\expandafter\if\the\toks3o\divide\dimen@\tw@ - \ifdim\dimen@<\z@ \dimen@ii-\p@ \advance\dimen@ii\dimen@ - \dimen@=\dimen@ii \else \dimen@\p@ \fi - \else\dimen@\p@ - \fi\fi - \edef\tmp@{\expandafter\removePT@\the\dimen@}% - \expandafter\toks\expandafter7\expandafter{\tmp@}\fi -% -% default position of label on lower arrow, -% relative to where it meets the perpendicular bisector -% - \expandafter\ifx\expandafter @\the\toks8\relax - \expandafter\dimen@\the\toks6\p@ - \expandafter\if\the\toks3t\relax\dimen@\p@ - \else\expandafter\if\the\toks3o\divide\dimen@\tw@ - \ifdim\dimen@<\z@ \dimen@ii-\p@ \advance\dimen@ii\dimen@ - \dimen@=\dimen@ii \else \dimen@\p@ \fi - \else\dimen@\p@ - \fi\fi - \edef\tmp@{\expandafter\removePT@\the\dimen@}% - \expandafter\toks\expandafter8\expandafter{\tmp@}\fi -% -% default position of the Arrow, relative to midpoint -% - \expandafter\ifx\expandafter @\the\toks5\relax - \expandafter\dimen@\the\toks6\p@ - \expandafter\if\the\toks3o\divide\dimen@ by-4\relax - \else\dimen@\z@\fi - \edef\tmp@{\expandafter\removePT@\the\dimen@}% - \expandafter\toks\expandafter5\expandafter{\tmp@}\fi - \fi -% -% possible modifications for module maps -% - \twocellmod@ -% -% pass all the parameters to |\twocell@@@@| -% - \expandafter\if\the\toks3t\relax -% -% composed maps: ^ : first map _ : second map -% - \edef\tmp@{.[\noexpand\twocell@@@@{\the\toks6}{\the\toks5}% - {\the\toks7}{\the\toks8}{\the\toks3}% - {\the\toks2}{\the\toks1}{\the\toks@}{\the\toks4}!!!].\afterMORPHISM}% - \else -% -% curved arrow(s) -% - \edef\tmp@{.[\noexpand\twocell@@@@{\the\toks6}{\the\toks5}% - {\the\toks7}{\the\toks8}{\the\toks3}% - {\the\toks1}{\the\toks2}{\the\toks@}{\the\toks4}!!!].\afterMORPHISM}% - \fi - \toks@={\endgroup}% - \expandafter\def\expandafter\next@\expandafter{% - \expandafter\def\expandafter\twocellhead@\expandafter{\twocellhead@}}% - \expandafter\addtotoks@\expandafter{\next@}% - \expandafter\def\expandafter\next@\expandafter{% - \expandafter\def\expandafter\twocelltail@\expandafter{\twocelltail@}}% - \expandafter\addtotoks@\expandafter{\next@}% - \expandafter\addtotoks@\expandafter{\expandafter\twocellPATH\tmp@}% - \the\toks@ }% -\DOCMODE) - - See below for the possible forms of |\twocellPATH|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Labels are placed labels on the upper and lower arrows, -more correctly `anti-clockwise' and `clockwise', using |^| and |_|. -These are entirely optional with the following token, or grouping, giving -the contents of the label. When used with -|\..compositemap| the |^| and |_| specify -labels for the first and second arrows, respectively. - -\DOCMODE( -\xydef@\twocellstyle{\scriptstyle} - -\xydef@\droptwocelllabel@#1{\xyFN@\droptwocelllabel@@#1@!} -\xydef@\droptwocelllabel@@{% - \ifx*\next\DN@*{\droptwocelldrop@}% - \else\DN@##1@!{\droptwocelltext@{##1}}% - \fi \next@ } - -{\xyuncatcodes \gdef\next#1{\drop+!C{\twocellstyle #1}}} -\xylet@\droptwocelltext@=\next - -\xydef@\droptwocelldrop@#1@!{\bgroup \let\xy@=\oxy@ - \let\objectstyle=\twocellstyle \drop#1{}% - \edef\tmp@{\egroup \X@min=\the\X@min \X@max=\the\X@max - \Y@min=\the\Y@min \Y@max=\the\Y@max}\tmp@ } -\DOCMODE) - -Normally the label is balanced text, set -in \TeX's math mode, with |\twocellstyle| setting the style. -The default definition is given by \dots - -|\def\twocellstyle{\scriptstyle}| - -\noindent -This can be altered using |\def| in versions of \TeX\ -or |\redefine| in \LaTeX. -However labels are not restricted to being simply text boxes. -Any effect obtainable using the \Xy-pic kernel language can be set -within an |\xybox| and used as a label. Alternatively if the first -character in the label is |*| then the label is set as an -\Xy-pic <object>, as if with |\drop<object>| or |*<object>| in -the kernel language. The current direction is tangential to -the curved arrows. Extra braces are needed to get a |*| as the label, -as in |^{{{*}}}| or |_{{}*}|. - -The position of a label normal to the tangential direction -can also be altered by {\em nudging} (see below). -Although it is possible to specify multiple labels, -only the last usage of each of |^| and |_| is actually set, -previous specifications being ignored. - -Similarly a label for the central Arrow must be given, -after the other labels, by enclosing it within braces |{...}|. -An empty group |{}| gives an empty label; this is necessary -to avoid misinterpretation of subsequent tokens. As above if the -first character is |*| then the label is set as an \XY-pic <object>, -the current direction being along the Arrow. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Parsing:} - - Open a new group so the following registers can be used locally... - |\toks@=\toks0|, |\toks1|, ..., |\toks8| - the final parameter set is stored briefly in |\tmp@| before being used. - - OPTIONS: -\begin{defs1} -\begin{tabular}{c c l} - && spaces are ignored \\ - |<| & |<num>| &determines position of curves control point\\ - & |<0>| &uses a single solid line,\\ - & |<\omit>| &causes only the central Arrow (with label) to be set\\ -\noalign{\smallskip} - |\omit| &&omits the curved arrows, but allows their labels\\ - |^| &&place ``above'' label (more correctly ``anti-clockwise'')\\ - |_| &&place ``below'' label (more correctly ``clockwise'')\\ - |~'| &&change the arrowhead \\ - |~`| &&place/change the arrowtail\\ -\end{tabular} -\end{defs1} - - Label data e.g. |^{#1}| |_{#1}| - is stored temporarily in |\toks@| then passed via |\tw@@cell@@| - to |\tw@cell@@| for further parsing, as: |\the\toks@ @| - - |~'| and |~`| change the values of |\twocellhead@| and |\twocelltail@| - Normally |\twocelltail@| is |{}|, so |~`| also changes a flag to - indicate that |\twocelltail@| is indeed required. - - When the next token is a grouping |{...}| - then it gives the label for the central Arrow. - No other label specifications may follow. - - - Default head and tail ornaments... - -\DOCMODE( -\xydef@\twocellhead#1{\def\twocellhead@{#1}} -\xydef@\twocelltail#1{\def\twocelltail@{#1}} -\xydef@\twocellhead@{\dir{>}} -\xydef@\twocelltail@{} -\DOCMODE) - - clear |\toks..| registers for the new connection labels. - -\DOCMODE( -\xywarnifdefined\twocellmod@ -\xydef@\tw@cell@{\begingroup - \toks@={{}}\toks1={{}}\toks2={{}}\toks4={{}}% - \def\twocellmod@{}\xyFN@\tw@@cell@}% - -\xydef@\tw@@cell@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\tw@@cell@}% - \else\ifx\bgroup\next \let\next@=\toks@\afterassignment\tw@@cell@@ - \else\ifx ^\next \DN@^##1{\toks@={##1}\nudgepos@71\tw@@cell@}% - \else\ifx _\next \DN@_##1{\toks@={##1}\nudgepos@82\tw@@cell@}% - \else\addLT@\ifx \next \addGT@{\addLT@\DN@##1}{% - \toks6={##1}\ifx\omit##1\relax\toks3={t}\toks5={0}\fi\xyFN@\tw@@cell@}% - \else\ifx\omit\next \DN@\omit{\omitarrows@\xyFN@\tw@@cell@}% - \else\ifx~\next \DN@~{\xyFN@\whichCurveObject@}% - \else \DN@{\xyFN@\tw@cell@@\empty @}% - \fi\fi\fi\fi\fi\fi\fi% - \next@ } - -\xydef@\whichCurveObject@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\whichCurveObject@}% - \else\ifx\next^\DN@^##1{\xy@{~^{##1}}{\uppercurveobject{##1}}\xyFN@\tw@@cell@}% - \else\ifx\next_\DN@_##1{\xy@{~_{##1}}{\lowercurveobject{##1}}\xyFN@\tw@@cell@}% - \else\addRQ@\ifx\next \addRQ@\DN@##1{% - \xy@{~'{##1}}{\def\twocellhead@{##1}}\xyFN@\tw@@cell@}% - \else\addLQ@\ifx\next \addLQ@\DN@##1{% - \xy@{~`{##1}}{\def\twocelltail@{##1}}\xyFN@\tw@@cell@}% - \else\ifx!\next \DN@!{\xyFN@\checkmodmap@}% - \else\ifx\next\bgroup\DN@##1{\xy@{~{##1}}{\curveobject{##1}}\xyFN@\tw@@cell@}% - \else\DN@##1{\xy@{~##1}{\curveobject{##1}}\xyFN@\tw@@cell@}% - \fi\fi\fi\fi \fi\fi\fi - \next@ } - -\xydef@\checkmodmap@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\checkmodmap@}% - \else \def\twocellmod@{\modmap@}% - \ifx\next!\DN@!##1{% - \xy@{~!!{##1}}{\def\modmapobject@{##1}}\xyFN@\tw@@cell@}% - \else \DN@{\xyFN@\tw@@cell@}\fi - \fi \next@ } -\DOCMODE) - - With no arrows, still allow labels: - default positions are at $0$, $+X$, $-X$, with $X=${\em default value}. - These values are altered by ``nudging''. - -\DOCMODE( -\xydef@\omitarrows@{\toks5={0}\toks6={}\toks7={0}\toks8={0}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{figure*}[tp] -\begin{syntax} -% -<twocell> - &\iss & <2-cell><switches><Arrow> - & typeset <2-cell> with the <switches> and <Arrow> -\cr -\noalign{\smallskip} -% -<2-cell> &\iss & |\..twocell| - & typeset two curved arrows -\cr - &\orr & |\..uppertwocell| - & typeset upper curved arrow only -\cr - &\orr & |\..lowertwocell| - & typeset lower curved arrow only -\cr - &\orr & |\..compositemap| - & use consecutive straight arrows -\cr -\noalign{\smallskip} -% -<Arrow> &\iss & |{|<tok><text>|}| - & specifies orientation and label -\cr - &\orr & |{|<nudge><text>|}| - & adjust position, use default orientation -\cr - &\orr & |{|<text>|}| - & use default position and orientation -\cr - &\orr & |{|<tok>*<object>|}| - & use <object> as the label -\cr - &\orr & |{|<nudge>*<object>|}| \orr |{|*<object>|}| -\cr -\noalign{\smallskip} -% -<tok> &\iss & |^| \orr |_| \orr |=| - & oriented anti-/clockwise/equality -\cr - &\orr & |\omit| - & no Arrow, default is clockwise -\cr - &\orr & |`| \orr |'| \orr |"| \orr |!| - & no Arrow; tips on two curved arrows as:\\ - anti-/clockwise/double-headed/none -\cr -\noalign{\smallskip} -% -<switches> &\iss & <switch><switches> - & list of optional modifications -\cr -\noalign{\smallskip} -% -<switch> &\iss & <empty> - & use defaults -\cr -% - &\orr & |^| <label> - & place <label> on the upper arrow -\cr - &\orr & |_| <label> - & place <label> on the lower arrow -\cr - &\orr & <nudge> - & set the curvature, based on <nudge> value -\cr - &\orr & |\omit| - & do not set the curved arrows -\cr - &\orr & \ |!| - & place |\modmapobject| midway along arrows -\cr - &\orr & |~| <what> |{| <object> |}| - & use <object> in place specified by <what> -\cr -\noalign{\smallskip} -% -<what> &\iss & <empty> - & set curves using the specified <object> -\cr - &\orr & |^| \orr |_| - & use <object> with upper/lower curve -\cr - &\orr & |`| \orr |'| - & use <object> for arrow head/tail -\cr -% -\noalign{\medskip} -% -<label> &\iss & <text>\ \orr\ <nudge> <text> - & set <text>, displaced by <nudge> -\cr - &\orr & *<object>\ \orr\ <nudge>*<object> - & set <object>, displaced by <nudge> -\cr -\noalign{\smallskip} -% -<nudge> &\iss & |<|<number>|>| & use <number> in an appropriate way, - \eg, to position object or label along a fixed axis -\cr - &\orr & |<\omit>| & do not typeset the object/label -\cr -% -\end{syntax} -\caption{\protect<twocell\protect>s} -??=[f.twocell] -\end{figure*} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Standard Options}??=[Arrow] -The orientation of the central Arrow may be reversed, -turned into an equality, or omitted altogether. -In each case a label may still be specified, so in effect the -Arrow may be replaced by anything at all. - -These effects are specified by the first token in the central label, -which thus has the form: |{|<tok><label>|}| -where <tok> may be one of \dots - -\begin{defs1} -\begin{tabular}{ c l } - |_| & Arrow points clockwise \cr - |^| & Arrow points anti-clockwise \cr - |=| & no tip, denotes equality \cr -|\omit|& no Arrow at all. \cr -\end{tabular} -\end{defs1} - -\noindent -When none of these occurs then the default of |_| is assumed. -If the label itself starts with one of these characters then -specify |_| explicitly, or enclose the label within a group |{...}|. -See {\em Extra Options~1}, for more values of <tok>. -Also note that |*| has a special role when used as the first character; -however it is considered to be part of the <label>, see above. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - OPTIONS for the central Arrow: - -\begin{defs}{c l} - & ignore spaces\cr - |^| & points anti-clockwise\cr - |_| & points clockwise (default)\cr - |=| & no |\Tip|, equality\cr - |\omit|& no Arrow at all, just squine(s) or composed arrows\cr - |'| & no Arrow, opposite squine reversed\cr - |`| & no Arrow, forward squine reversed\cr - |"| & no Arrow, tips on both ends\cr - |!| & no Arrow, no tips on squines\cr -\end{defs} - - the position of the Arrow is determined by ``nudging'' (see below) - e.g. - |{^<num>label}|, where the actual dimen is |<num>\xydashl@| - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{code} -\xymatrixcolsep{4pc} -\xymatrixrowsep{1pc} -\diagram -A \rtwocell{_\alpha} & B \rtwocell{^\beta} & -C \rtwocell{=\gamma} & D \rtwocell{\omit\Psi} & E \\ -\enddiagram -\end{code} -$$ \docode $$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph{Parsing of the Arrow's label} - -\DOCMODE( -\xydef@\tw@@cell@@{\expandafter\xyFN@\expandafter\tw@cell@@\the\toks@ @} - -\xydef@\tw@cell@@{\ifx \space@\next\expandafter\DN@\space{\xyFN@\tw@cell@@}% - \else\ifx ^\next - \DN@^##1@{\toks@={##1}\toks4={^}\nudgepos@50\tw@cell@@@}% - \else\addEQ@\ifx\next - \addEQ@\DN@##1@{\toks@={##1}\toks4={=}\nudgepos@50\tw@cell@@@}% - \else\ifx _\next - \DN@_##1@{\toks@={##1}\toks4={_}\nudgepos@50\tw@cell@@@}% - \else\addLT@\ifx \next - \DN@##1@{\toks@={##1}\toks4={_}\nudgepos@50\tw@cell@@@}% - \else\ifx\omit\next \DN@\omit##1@{\toks4={@}\toks@={##1}\tw@cell@@@}% - \else\addRQ@\ifx\next \addRQ@\DN@##1@{\toks4={@}\toks3={/}\toks@={##1}% - \nudgepos@50\tw@cell@@@}% - \else\addLQ@\ifx\next \addLQ@\DN@##1@{\toks4={@}\toks3={b}\toks@={##1}% - \nudgepos@50\tw@cell@@@}% - \else\ifx"\next \DN@"##1@{\toks4={@}\toks3={B}\toks@={##1}% - \nudgepos@50\tw@cell@@@}% - \else\ifx!\next \DN@!##1@{\toks4={@}\toks3={@}\toks@={##1}% - \nudgepos@50\tw@cell@@@}% - \else\ifx\next\empty\DN@##1@{\toks@={{}}\toks4={_}\tw@cell@@@}% - \else\DN@##1@{\toks@={##1}\toks4={_}\tw@cell@@@}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Nudging} -Positions of all labels may be adjusted, -as can the amount of curvature for the curved arrows. -The way this is done is by specifying a ``nudge'' factor <num> -at the beginning of the label. -Here <num> is a number which specifies the actual position of the label -in units of |\xydashl@| (the length of a single dash, normally 5pt) -except with |\..compositemap|, see below. -Movement is constrained to the perpendicular bisector -of the line $\overline{cp}$. -When nudging the label for the central Arrow -it is the whole Arrow which is moved, along with its label. - -Curvature of the arrows themselves is altered by -a nudge of the form |\..twocell|<num>.... -The separation of the arrows, along the bisector, -is set to be <num>|\xydashl@|. -When <num> is zero, that is |\..twocell<0>...|, -the result is a single straight arrow, -its mid-point being the origin for nudging labels. -A negative value for <num> is also acceptable; -but check the orientation on the Arrow -and which of |^| and |_| correspond to which component. - -The origin for nudging labels is where the arrow -crosses the bisector. Positive nudges move -the label outwards while negative nudges move towards $\overline{pc}$ -and possibly beyond. -The default position of a label is on the outside, with edge at the origin. - -The origin for nudging the Arrow is at the midpoint of $\overline{pc}$. -A positive nudge moves in the clockwise direction. -This will be the direction of the arrowhead, -unless it has been reversed using |^|. - -\smallskip - -Labels on a |\..compositemap| are placed relative to the midpoint -of the component arrows. Nudges are in units of 1pt. -Movement is in the usual \Xy-pic {\em above} and {\em below} directions, -such that a positive nudge is always outside the triangle formed -by the arrows and line $\overline{pc}$. - -\medskip - -The special nudge value |<\omit>| typesets just the Arrow, -omitting the curved arrows entirely. -When used with labels, the nudge value |<\omit>| causes the following label -to be ignored. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{exercise} -Give code to typeset figure ??[f.pasting]. - -\noindent -Such code is relatively straight-forward, using ``nudging'' -and |\omit| to help position the arrows, curves and Arrows. -It also uses an {\em excursion}, -as described below in the subsection {\em Extra Options~3}. - -% code from the earlier ``Pasting diagram'' example. -%\Pastingexample\gdef\Pastingexample{}% -% -\begin{code} -\xymatrixrowsep{1.5pc} -\xymatrixcolsep{3pc} -\diagram - &&\relax\rtwocell<0>^{f_3^{}\;\;}{\omit} - &\relax\ddtwocell<0>{\omit} - \drtwocell<0>^{\;\;f_4^{}}{<3>} - \ddrrtwocell<\omit>{<8>}\\ -&&&&\relax\drtwocell<0>^{\;\;f_5^{}}{\omit}\\ -A \uurrlowertwocell<-6>{\omit}\relax -\uurrcompositemap<2>_{f_1^{}}^{f_2^{}}{<.5>} - \drtwocell<0>_{g_1^{}\;}{\omit} - &&&\relax\urtwocell<0>{\omit} - &&\relax\rtwocell<0>^{f_6^{}\;}{\omit} - &\relax\rlowertwocell<-3>_{g_4^{}}{<-1>} - \rcompositemap<6>_{f_7^{}}^{f_8^{}}{\omit} - & B \\ - &\relax\urrtwocell<0>{\omit} - \xcompositemap[-1,4]{}% - <-4.5>_{g_2^{}}^{g_3^{}}{\omit}\\ -\enddiagram -\end{code} - -\answertext{Here is the code used to typeset the {\em pasting diagram} in -figure~??g[xy2cell.doc:f.pasting].} -\answercode -\answertext\displaycode - -\answertext{\smallskip\noindent -For the straight arrows, it would have been simpler to use |\..to| -provided |xyarrow| has been loaded. Instead |\..twocell<0>...{\omit}| -was used to illustrate the versatility of nudging and |\omit|; -thus |xy2cell| can completely handle a wide range of diagrams, -without requiring |xyarrow|. Note also the use of |\relax| at the start -of each new cell, to avoid premature expansion of a complicated macro, -which can upset the compiling mechanism.} -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph{NUDGE } position of labels - -\DOCMODE( -\xywarnifdefined\whichnudge -\xywarnifdefined\whichinfo -\xywarnifdefined\afternudge -\xydef@\nudgepos@#1#2#3{\def\whichnudge{\toks#1}\def\whichinfo{\toks#2}% - \def\afternudge{#3}\expandafter\xyFN@\expandafter\nudgepos@@\the\toks@ @} -\DOCMODE) - -\begin{defs1} -\begin{tabular}{c l} - |#1| & which token register to store nudge amount\cr - |#2| & which token register to store label\cr - |#3| & what to do next, after parsing \cr -\end{tabular} -\end{defs1} - -\paragraph{Parsing: } -% - <num><label>|@|, <num> = nudge amount, as multiple of |\xydashl@|. - -\DOCMODE( -\xydef@\nudgepos@@{\ifx \space@\next\expandafter\DN@\space{\xyFN@\nudgepos@}% - \else\addLT@\ifx \next - \addGT@{\addLT@\DN@##1}##2@{% - \ifx\omit##1\relax\whichnudge={0}\whichinfo={}% - \else\whichnudge={##1}\whichinfo={##2}\fi\xyFN@\afternudge}% - \else \DN@##1@{\whichinfo={##1}\xyFN@\afternudge}% - \fi\fi \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Extra Options} -The following features are useful in non-mathematical applications. - -\subsubsection*{1. no Arrow} -This is determined by special values for <tok> as the -first (or only) character in the central label, as in the above -description of the standard switches. - -\begin{defs1} -\begin{tabular}{c l} - |'| & arrowheads pointing clockwise;\cr - |`| & arrowheads pointing anti-clockwise;\cr - |"| & arrow tips on both ends;\cr - |!| & no tips at all.\cr -\end{tabular} -\end{defs1} - -\noindent -The central Arrow is omitted, leaving symmetrically placed -curved connections with arrowheads at the specified ends. -A label can be placed where the Arrow would have been. - -If a special arrowhead is specified using |~'{..}| -(see Extra Options~2, below) -then this will be used instead of the standard |\dir{>}|. - -\ifx\undefined\mathbf\def\mathbf{\boldmath}\fi -\begin{code} -\xymatrixcolsep{5pc} -\diagram - \relax\txt{Clouds }\rtwocell<10> - _{\hbox{\tiny evaporation }} - ^{\hbox{\tiny precipitation }} -{'{\mathbf{H_2 O}}} -&\relax\txt{Oceans}\\ -\enddiagram -\end{code} -$$ \docode $$ -\displaycode - -\begin{code} -\xymatrixcolsep{5pc} -\diagram -\relax\txt{\llap{Math}ematics }\rtwocell -_{\hbox{\tiny experiment }} -^{\hbox{\tiny theory }}{"} -& \relax\txt{Physics} \\ -\enddiagram -\end{code} -$$ \docode $$ -\displaycode - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{2. Changing Tips and Module Maps } -The following commands are provided for specifying the <object> -to be used when typesetting various parts of the twocells. - -\medskip -\noindent -\begin{tabular}{l c} -\noalign{\hrule} -\noalign{\smallskip} -{\em command} \hfill & {\em default} \cr -\noalign{\smallskip} -\noalign{\hrule} -\noalign{\smallskip} - |\modmapobject{|<object>|}| & |\dir{|$\vert$|}| \cr - |\twocellhead{|<object>|}| & |\dir{>}| \cr - |\twocelltail{|<object>|}| & |\dir{}| \cr - |\arrowobject{|<object>|}| & |\dir{=>}| \cr -\noalign{\smallskip} - |\curveobject{|<object>|}| & \cr - |\uppercurveobject{|<object>|}| & |{}| \cr - |\lowercurveobject{|<object>|}| & |{}| \cr -\noalign{\smallskip} -\noalign{\hrule} -\end{tabular} -\medskip - - -These commands set the object to be used for all subsequent -2-cells at the same level of \TeX\ grouping. -|\curveobject| specifies both of the upper- and lower-curve objects. -For some of these there is also a way to change the object for the -current 2-cell only. -This requires a |~|-<switch> which is described below, -except for the |\..curveobject| types, which are discussed in -{\em Extra Options~4}. - -\medskip - -These effects are specified by placing switches -after the |\..twocell| control sequence, -\eg\ |\rtwocell| {\em switches\/} {\em labels\/}\dots~. -Each switch is either a single token <tok>, or a -|~|<tok> with a single argument: |~|<tok>|{|{\em arg\/}|}|. -Possibilities are listed in the following table, -in which |{..}| denotes the need for an argument. - -\begin{defs1} -\begin{tabular}{c l} - |\omit| & no arrows, Arrow and label only;\cr - |!| & place module-map indicator;\cr -|~'{..}| & change arrow-head to |{..}|;\cr -|~`{..}| & place/change tail on arrow(s);\cr -|~{..}| & change object used to set curves;\cr -|~^{..}| & use object |{..}| to set upper curve;\cr -|~_{..}| & use object |{..}| to set lower curve;\cr -\end{tabular} -\end{defs1} - -\noindent -Here we discuss the use of |!|, |~'|, |~`| and |\omit|. -The description of |~^|, |~_| and |~{..}| is given in {\em Extra Options~4}. - -\medskip -The default module map indicator places a single -dash crossing the arrow at right-angles, -located roughly midway along the actual printed portion of the arrow, -whether curved or straight. -This takes into account the sizes of the objects being connected, -thereby giving an aesthetic result when these sizes differ markedly. -This also works with |\..compositemap| where an indicator is placed -on each arrow. The actual object can be changed using |\modmapobject|. - -\medskip -Any of the standard \Xy-pic tips may be used for arrow-heads. -This is done using |~'{..}|, -for example |~'{\dir{>>}}| gives double-headed arrows. -Similarly |~`{..}| can be used to place an arrow-tail. -Normally the arrow-tail is {}, so is not placed; -but if a non-empty tail has been specified then it will -be placed, using |\drop|. -No guarantee is offered for the desired result being obtained -when an arrow-tail is mixed with the features of {\em Extra Options~1}. - -\begin{code} -\modmapobject{\objectbox{\otimes}} -\xymatrixcolsep{5pc} -\diagram -P\rtwocell~!~'{\dir{>>}}~`{\dir{|}} - ^{<1.5>M}_{<1.5>M'}{=f} & S \\ -\enddiagram -\end{code} -$$ \docode $$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - switch for module maps... - ...places decoration called |\modmapobject| half way along arrows - -\DOCMODE( -\xydef@\modmap@{% - \expandafter\ifx\the\toks4@\toks4={!}% - \else\expandafter\ifx\the\toks4=\toks4={H}% - \else\expandafter\ifx\the\toks4^\toks4={A}% - \else\expandafter\ifx\the\toks4_\toks4={V}\fi\fi\fi\fi - \expandafter\DN@\expandafter{\the\toks6}% - \ifx\next@\empty\relax\else\expandafter\moddefs@\fi} -\DOCMODE) - - also adjust curvature and label positions - -\DOCMODE( -\xydef@\moddefs@{% - \expandafter\dimen@\the\toks6\p@ - \ifdim\dimen@=\z@\relax - \expandafter\dimen@\the\toks7\p@ - \ifdim\dimen@<\z@\advance\dimen@.5\p@\else\advance\dimen@-.5\p@\fi - \edef\tmp@{\noexpand\toks7={\expandafter\removePT@\the\dimen@}}\tmp@ - \expandafter\dimen@\the\toks8\p@ - \ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi - \expandafter\ifx\the\toks3t\advance\dimen@-1\p@\fi - \edef\tmp@{\noexpand\toks8={\expandafter\removePT@\the\dimen@}}\tmp@ - \else - \ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi - \edef\tmp@{\noexpand\toks6={\expandafter\removePT@\the\dimen@}}\tmp@ -% \expandafter\dimen@\the\toks5\p@ -% \ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi -% \edef\tmp@{\noexpand\toks5={\expandafter\removePT@\the\dimen@}}\tmp@ - \expandafter\dimen@\the\toks7\p@ - \ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi - \expandafter\ifx\the\toks3t\advance\dimen@-2\p@\fi - \edef\tmp@{\noexpand\toks7={\expandafter\removePT@\the\dimen@}}\tmp@ - \expandafter\dimen@\the\toks8\p@ - \ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi - \expandafter\ifx\the\toks3t\advance\dimen@-2\p@\fi - \edef\tmp@{\noexpand\toks8={\expandafter\removePT@\the\dimen@}}\tmp@ - \fi }% - -%\def\moddefs@{} -\DOCMODE) - - default object is |\stop|, user can change this with |\modmapobject#1| - -\DOCMODE( -\xydef@\modmapobject#1{\def\modmapobject@{#1}} -\xydef@\modmapobject@{\dir{|}} -\xydef@\@modmapobject@{{\if\@mod@\relax\expandafter\empty - \else\expandafter\modmapobject@\fi}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{3. Excursions} -Syntax for |\xcompositemap| and |\x..twocell| types -is a little different to -what might be expected from that for |\xto|, |\xline|, etc. -For example, -% -\begin{defs1} -|\xtwocell[|<hop>|]{|<displace>|}...| -\end{defs1} -% -\noindent -connects to the <pos> displaced by <displace> from -the relative cell location specified by <hop>. -The displacement can be any string of valid \Xy-pic commands, -but they must be enclosed within a group |{...}|. -When the cell location is the target, -a~null grouping |{}| {\em must} be given. - -When used with the |<\omit>| nudge, such excursions allow a labelled Arrow -to be placed anywhere within an \Xy-pic diagram; -furthermore the Arrow can be oriented to point in any direction. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\curveobject#1{\def\ucurveObject@{~*#1}\def\dcurveObject@{~*#1}} -\xydef@\uppercurveobject#1{\def\ucurveObject@{~*#1}} -\xydef@\lowercurveobject#1{\def\dcurveObject@{~*#1}} -\xydef@\ucurveObject@{} -\xydef@\dcurveObject@{} -\DOCMODE) - -The empty object gives the default of closely spaced tiny dots, -resulting in a ``smooth'' curve. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The following macro is used in conjunction with compiling diagrams, -to include the global parameters in the compiled file. - -\DOCMODE( -\xydef@\savetwocellobjects{% - \xy@{twocell objects}{% - \expandafter\uppercurveobject\expandafter{\ucurveObject@}% - \expandafter\lowercurveobject\expandafter{\dcurveObject@}% - \expandafter\modmapobject\expandafter{\modmapobject@}% - \expandafter\twocellhead\expandafter{\twocellhead@}% - \expandafter\twocelltail\expandafter{\twocelltail@}% - \expandafter\arrowobject\expandafter{Arrowobject@}% - }} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{4. Fancy curves} -By specifying |\curveobject| an arbitrary object may be used to -construct the curved arrows. Indeed with a -|\..twocell| different objects can be used with -the upper and lower curves by specifying -|\uppercurveobject| and |\lowercurveobject|. - -These specifications apply to all 2-cells subsequently constructed at -the same level of \TeX\ grouping. -Alternatively using a |~|-switch, as in {\em Extra Options~2}, -allows such a specification for a single 2-cell or curved part. - -Objects used to construct curves can be of two types. -Either a single <object> is set once, with copies placed along the curve. -Alternatively a directional object can be aligned with -the tangent along the curve. In this case use a specification takes the -form: - -|\curveobject{|<spacer>|~**|<object>|}|. - -\noindent -Here <spacer> may be any <object> of non-zero size. -Typically it is empty space, \eg\ |+|<dimen>|{}|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{exercise} -Give code to typeset the following diagrams. - -\begin{code} -{\uppercurveobject{{?}} - \lowercurveobject{{\circ}} -\xymatrixcolsep{5pc} -\xymatrixrowsep{2pc} -\diagram - \relax\txt{ FUn }\rtwocell<8>{!\&} - & \relax\txt{ gaMES } - \enddiagram} -\end{code} -$$\docode$$ - -\answertext{Here is the code -used by the author to set the first diagram.} -\answercode -\answertext\displaycode - -\begin{code} -\xymatrixcolsep{2.5pc} -\xymatrixrowsep{4pc} -\diagram - \relax\txt<1.5cm>{\bf Ground State} - \rrtwocell<12>~^{+{}~**!/-2.5pt/\dir{>}} - ~_{++{}~**!/5pt/\dir{<<}} - ^{<1.5>\txt{\small continuous power}} - _{<1.5>\txt{\small pulsed emission}}{!} -& \relax\;\; N\!i\,C\!d\;\; \Circled -& \relax\txt<1.50cm>{\bf Excited State} -\enddiagram -\end{code} -$$\docode$$ - -\answertext{Here is the code -used for the second diagram.} -\answercode -\answertext\displaycode - -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{After Parsing...} - - Values for |\twocellPATH|, depends on the mode of picture/diagram - as to whether the |@c| and |@p| are known yet, or still have - to be read. - -\DOCMODE( -\xydef@\twocell@path.[#1].{% - \expandafter\ifx\csname Q@@c\endcsname\relax - \DN@{\enter@{\cfromthec@ \pfromthep@ \basefromthebase@}% - \xy@{}{\expandafter\edef\csname Q@@\endcsname{\cfromthec@}}% - \afterPOS{\xy@{}% - {\expandafter\edef\csname Q@@c\endcsname{\cfromthec@}}% - \xy@{}% - {\cfromid@{@}\expandafter\edef\csname Q@@p\endcsname{\cfromthec@}}% - \xy@{twocell #1}{#1}\leave@\aftertwoCELL};p,}% - \else - \DN@{\enter@{\cfromthec@ \pfromthep@ \basefromthebase@}% - \xy@{twocell #1}{#1}\leave@\aftertwoCELL}% - \fi \next@ } - -\xydef@\twocellpath.[#1].{% - \expandafter\edef\csname Q@@p\endcsname{\cfromthec@}% - \xy@{}{\enter@{\pfromthep@}}% - \xy@{}{\enter@{\cfromthec@ \pfromthep@ \basefromthebase@}% - \enter@{\pfromthec@}}% - \afterPOS{\xy@{}{\leave@\setupDirection@}#1\restore\restore - \xy@{end of 2-cell}\xysaveMinMax@ }}% - -\xydef@\xysaveMinMax@{\edef\tmp@{\endgroup - \noexpand\ifdim\X@max<\the\X@max \X@max=\the\X@max\noexpand\fi - \noexpand\ifdim\X@min>\the\X@min \X@min=\the\X@min\noexpand\fi - \noexpand\ifdim\Y@max<\the\Y@max \Y@max=\the\Y@max\noexpand\fi - \noexpand\ifdim\Y@min>\the\Y@min \Y@min=\the\Y@min\noexpand\fi - }\tmp@ } -\DOCMODE) - -\DOCMODE( -\xylet@\twocellPATH=\twocellpath -\xydef@\aftertwo@CELL{\let\twocellPATH=\twocellpath \def\aftertwoCELL{}} -\xydef@\aftertwoCELL{} -\DOCMODE) - - It remains to collect everything together and place it on the queue. - -\DOCMODE( -\xydef@\twocell@@@@#1!!!{\xy@{twocell #1}{\twocell@@#1!!!}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{2-cells in general \Xy-pictures} -??=[standard] -Two-cells can also be set directly within any \Xy-picture, without the -matrix feature, using either |\drop| or |\connect|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\let\xystatus=\xystatus@ -\xydef@\twocell{\hbox\bgroup\@twocell} -\xydef@\uppertwocell{\hbox\bgroup\@uppertwocell} -\xydef@\lowertwocell{\hbox\bgroup\@lowertwocell} -\xydef@\compositemap{\hbox\bgroup\@compositemap} - -\xydef@\twocelll#1#{\hbox\bgroup\xy@\save\save@\@twocelll{#1}} -\xydef@\@twocelll#1#2{% - \afterPOS{\@twocelll@\xyFN@\twocell@#1{#2}}} - -\xydef@\uppertwocelll#1#{\hbox\bgroup\xy@\save\save@\@uppertwocelll{#1}} -\xydef@\@uppertwocelll#1#2{% - \afterPOS{\@twocelll@\xyFN@\uppertwocell@#1{#2}}} - -\xydef@\lowertwocelll#1#{\hbox\bgroup\xy@\save\save@\@lowertwocelll{#1}} -\xydef@\@lowertwocelll#1#2{% - \afterPOS{\@twocelll@\xyFN@\lowertwocell@#1{#2}}} - -\xydef@\compositemapp#1#{\hbox\bgroup\xy@\save\save@\@compositemapp{#1}} -\xydef@\@compositemapp#1#2{% - \afterPOS{\@twocelll@\xyFN@\compositemap@#1{#2}}} -% -\xydef@\@twocelll@{% -% \idfromc@{@c}\swap@\idfromc@{@p}\swap@ - \expandafter\edef\csname Q@@c\endcsname{\cfromthec@}\swap@ - \expandafter\edef\csname Q@@p\endcsname{\cfromthec@}\swap@ - \let\twocellPATH=\twocell@path -% \def\aftertwoCELL{\twocell@DONE}} - \def\aftertwoCELL{\twocell@DONE \xy@\restore \leave@ -% \cfromid@{@c}\no@@ \xystatus@{end: } - }} - -\xydef@\@twocell#1{\DN@{\@twocell@\twocell@}\xyFN@\next@[#1]} -\xydef@\@uppertwocell#1{\DN@{\@twocell@\uppertwocell@}\xyFN@\next@[#1]} -\xydef@\@lowertwocell#1{\DN@{\@twocell@\lowertwocell@}\xyFN@\next@[#1]} -\xydef@\@compositemap#1{\DN@{\@twocell@\compositemap@}\xyFN@\next@[#1]} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{code} -\def\myPOS#1{\POS}\def\goVia#1{% - \afterPOS{\connect#1\myPOS}} -\xy - *+{A}="A",+<1cm,1.5cm>*+{B}="B", - +<2.0cm,0pt>*+{C}="C", - +<1cm,-1.5cm>*+{D}="D", -"A";\goVia{\uppertwocell^\alpha{}}"B"{} -;\goVia{\twocell^\zeta_\xi{\gamma}}"C"{} -;\goVia{\compositemap{}}"D"{}, -"A";\goVia{\lowertwocell{}}"D"{} -\endxy -\end{code} - -\displaycode -%\begin{figure}[hbt] -$$\docode$$ -%??=[f.xypic] -%\caption{2-cells in \protect\Xy-pictures} -%\end{figure} - -\begin{code} -\xy *+{A}="A",+<1cm,1.5cm>*+{B}="B", - +<2cm,0pt>*+{C}="C", - +<1cm,-1.5cm>*+{D}="D", -"A";"B",{\uppertwocell^\alpha{}}, -"B";"C",{\twocell^\zeta_\xi{\gamma}}, -"C"; \afterPOS{\drop\compositemap{}}"D" -\POS "A"; - \afterPOS{\drop\lowertwocell{}}"D" -\endxy -\end{code} - -The code shown is a compact way to place a chain -of 2-cells within a picture. -It illustrates a standard technique for using -|\afterPOS| to find a <pos> to be used for part of -a picture, then subsequently reuse it. -Also it is possible to use |\drop| or <decor>s -to specify the 2-cells, giving the same picture. - -\displaycode - -The |\connect| variant is usually preferable -as this maintains the size of the object at $c$, -while the |\drop| variant leaves -a rectangular object having $p$ and $c$ on opposite sides. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This is used outside of diagrams. - -\DOCMODE( -\xydef@\@twocell@#1{\ifx\next[\DN@[{\toks@={#1}\xyFN@\@@twocell@}% - \else\DN@{#1{}}\fi -%% -% \idfromc@{@c}\swap@\idfromc@{@p}\swap@ - \expandafter\edef\csname Q@@c\endcsname{\cfromthec@}\swap@ - \expandafter\edef\csname Q@@p\endcsname{\cfromthec@}\swap@ - \let\twocellPATH=\twocell@path - \def\aftertwoCELL{\twocell@DONE}\next@} -\DOCMODE) - -This hack is necessary, since |\DN@[##1]{#1##1}| will strip braces. - -\DOCMODE( -\xydef@\@@twocell@{\ifx\next\bgroup\DN@##1]{\the\toks@{##1}}% - \else\DN@##1]{\the\toks@##1}\fi\next@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\TODO: - These are supposed to allow |\dir\...twocell{...}| to work. - At present it seems to be impossible to do this. - -\DOCMODE( -% \expandafter\xydefcsname@\expandafter{\codeof\twocell}{\@twocell} -% \expandafter\xydefcsname@\expandafter{\codeof\uppertwocell}{\@uppertwocell} -% \expandafter\xydefcsname@\expandafter{\codeof\lowertwocell}{\@lowertwocell} -% \expandafter\xydefcsname@\expandafter{\codeof\compositemap}{\@compositemap} -%% \DN@{\twocell}% -%% \expandafter\def\csname*dir@@\codeof\next@ @\endcsname{\@twocell} -%% \DN@{\uppertwocell}% -%% \expandafter\def\csname*dir@@\codeof\next@ @\endcsname{\@uppertwocell} -%% \DN@{\lowertwocell}% -%% \expandafter\def\csname*dir@@\codeof\next@ @\endcsname{\@lowertwocell} -%% \DN@{\compositemap}% -%% \expandafter\def\csname*dir@@\codeof\next@ @\endcsname{\@compositemap} -\DOCMODE) - -...since the contents of |{..}| is variable. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Finish off the box, set up the object size, - establish the |\Drop@@| and |\Connect@@| methods. - -\DOCMODE( -\xydef@\twocell@DONE{% - \edef\tmp@{\egroup \X@min=\the\X@min \X@max=\the\X@max - \Y@min=\the\Y@min \Y@max=\the\Y@max}\tmp@ - \L@c=\X@c \advance\L@c-\X@min \R@c=\X@max \advance\R@c-\X@c - \D@c=\Y@c \advance\D@c-\Y@min \U@c=\Y@max \advance\U@c-\Y@c - \ht\z@=\U@c \dp\z@=\D@c \dimen@=\L@c \advance\dimen@\R@c \wdz@=\dimen@ - \computeLeftUpness@ -% -\setboxz@h{\kern-\X@p \raise-\Y@c\boxz@ }% -\dimen@=\L@c \advance\dimen@\R@c \wdz@=\dimen@ \ht\z@=\U@c \dp\z@=\D@c -% - \Edge@c={\rectangleEdge}\Invisible@false \Hidden@false - \edef\Drop@@{\noexpand\drop@Twocell - \noexpand\def\noexpand\Leftness@{\Leftness@}% - \noexpand\def\noexpand\Upness@{\Upness@}}% - \edef\Connect@@{\noexpand\connect@Twocell - \noexpand\ifdim\X@max<\the\X@max \X@max=\the\X@max\noexpand\fi - \noexpand\ifdim\X@min>\the\X@min \X@min=\the\X@min\noexpand\fi - \noexpand\ifdim\Y@max<\the\Y@max \Y@max=\the\Y@max\noexpand\fi - \noexpand\ifdim\Y@min>\the\Y@min \Y@min=\the\Y@min\noexpand\fi }}% -\DOCMODE) - - modified |\Drop@@| and |\Connect@@| - -\DOCMODE( -\xydef@\drop@Twocell{\boxz@ } - -\xydef@\connect@Twocell{% - \setboxz@h{\kern\X@p \raise\Y@c\box\lastobjectbox@ }% - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \Drop@@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -|\twocell@@| is the main switching engine, taking 9 parameters determining - which pieces to set and where to position them. This includes - curvature of the squines, whether to draw two squines - or only one, or to use straight lines, - whether to have a central Arrow and its orientation, - contants of labels and their positions. - - The current p and c are the extents of the connection - these are stored as |"@p"| and |"@c"| for repeated use; - -\begin{defs1} -\begin{tabular}{c l} - |#1| & determines location of control point |"@m"|\cr - |#2| & location of |=>|, as multiple of |\xydashl@| from |"@m"|\cr - |#3| & location of |_| label (source arrow)\cr - |#4| & location of |^| label (target arrow)\cr - |#5| & flag for how many squines to draw \& which tips\cr - |#6| & label for source arrow\cr - |#7| & label for target arrow\cr - |#8| & label for |=>| (2-cell morphism)\cr - |#9| & determines orientation of 2-cell \cr -\end{tabular} -\end{defs1} - -The following tokens may appear as parameters in |#9|: -|!|, |^|, |_|, |=|, |A|, |V|, |H| - -\DOCMODE( -\xywarnifdefined\@mod@ -\xywarnifdefined\Arrowtok@ - -\xydef@\twocell@@#1#2#3#4#5#6#7#8#9!!!{% - \def\@mod@{@}\DN@{#9}% - \ifx #9!\def\Arrowtok@{@}\else\ifx #9A\def\Arrowtok@{^}% - \else\ifx #9V\def\Arrowtok@{_}\else\ifx #9H\def\Arrowtok@{=}% - \else\def\@mod@{\relax}% - \ifx #5/\def\Arrowtok@{@}\else\ifx #5b\def\Arrowtok@{@}% - \else\ifx #5B\def\Arrowtok@{@}\else\ifx #5@\def\Arrowtok@{@}% - \else\def\Arrowtok@{#9}% - \fi\fi\fi\fi\fi\fi\fi\fi - \addEQ@\ifx #9\def\Arrowtok@{=}\fi - \DN@{\omit}\ifx\next@\Arrowtok@\def\Arrowtok@{}\else - \edef\Arrowtok@{\codeof\Arrowtok@}\fi - \save@ \idfromc@{@c}\swap@\idfromc@{@p}\swap@ - \cfromid@{@c}\no@@ -% - \ifdim \X@c<\X@p \X@min=\X@c \X@max=\X@p \else \X@min=\X@p \X@max=\X@c \fi - \ifdim \Y@c<\Y@p \Y@min=\Y@c \Y@max=\Y@p \else \Y@min=\Y@p \Y@max=\Y@c \fi -% - \Calong@@{.5}\idfromc@{@m}\idfromc@{@m1}\idfromc@{@m2}% -% - \ifx #5t\relax - \enter@{\cplusthec@\pfromthep@}% - \enter@\DirectionfromtheDirection@ \begingroup\aboveDirection@ \xydashl@ - \DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\fi - \ifdim\dimen@=\z@ \DN@{\vfromslide@i{\xydashl@}@}\relax - \else\DN@{\vfromslide@i{#1\xydashl@}@}\fi \next@ - \czeroEdge@ \leave@ \no@@ \drop@{+}{}\idfromc@{@m1}% - \DN@{#1}\ifx\next@\empty\DN@{\no@@}\else\DN@{\connect@{\dir}{-}}\fi - \else - \DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\fi - \ifdim\dimen@=\z@ \enter@{\cplusthec@\pfromthep@}% - \enter@\DirectionfromtheDirection@ \begingroup\aboveDirection@\xydashl@ - \vfromslide@i{\xydashl@}@\czeroEdge@ \leave@ \idfromc@{@m1}% - \cfromid@{@p}\swap@\cfromid@{@c}% - \DN@{#1}\ifx\next@\empty\DN@{\no@@}\else\DN@{\connect@{\dir}{-}}\fi - \else \DN@{\enter@\cplusthec@ - \enter@\DirectionfromtheDirection@ \begingroup\aboveDirection@ \xydashl@ - \vfromslide@i{#1\xydashl@}@\czeroEdge@ \leave@ - \idfromc@{@m1}\cfromid@{@p}\swap@\cfromid@{@c}% - \edef\next@{\codeof\ucurveObject@}% - \ifx\next@\empty\DN@{\connect@\crv{"@m1"}}% - \else - \DNii@####1{\connect@\crv{####1}}\expandafter\DN@\expandafter{% - \expandafter\nextii@\expandafter{\ucurveObject@"@m1"}}% - \fi \next@ }% -%% \ifx\next@\empty\def\ucurveObject@{.}\fi -%% \enter@\cfromthec@\sinit@\cfromid@{@m1}\senter@\leave@ -%% \expandafter\connect@\expandafter\crvs\expandafter{\ucurveObject@}% -%% \sinit@\sleave@ }% - \fi - \fi \next@ -% - \DN@{#1}\ifx\next@\empty\relax\else - \if\@mod@ @\relax - \enter@\pfromthep@ \Creset@@ - \ifx #5t\relax - \PLACEedgec@ \PLACEedgep@ \def\PLACEf@{{.5}}% - \else \def\next@{\crvreset@}% - \ifx\next@\Creset@@ - \gettwocelledges@ \edef\PLACEf@{{\expandafter\removePT@\the\dimen@}}% - \else \PLACEedgec@ \PLACEedgep@ \def\PLACEf@{{.5}}\fi - \fi - \expandafter\Calong@@\PLACEf@ \czeroEdge@ \leave@ - \edef\tmp@{\codeof\modmapobject@}% - \ifx\tmp@\empty \DN@{\drop@{\dir}{|}}% - \else \DNii@##1##{\drop@{##1}}% - \DN@{\expandafter\nextii@\modmapobject@{}}% - \fi \next@ - \fi\fi -% - \DN@{#6}\ifx\next@\empty\DN@{\relax}\else - \DNii@{{}}\ifx\next@\nextii@\DN@{\relax}\else - \ifx @#3\relax\DN@{\relax}\else - \DN@{\enter@\pfromthep@ \Creset@@ - \Calong@@{.5}\czeroEdge@ \leave@ - \enter@\cplusthec@ - \enter@\DirectionfromtheDirection@\begingroup - \DN@{#1}\ifx\next@\empty\dimen@\z@\else\dimen@=#1\p@\fi - \ifdim\dimen@<\z@ \belowDirection@ \xydashl@ - \else \aboveDirection@ \xydashl@ \fi -% \vfromslide@i{#3\xydashl@}@\czeroEdge@ \leave@ -% \droptwocelllabel@{#6}}% - \dimen@=#3\p@ \if\@mod@ @\relax - \advance\dimen@\ifdim\dimen@<\z@-\fi.5\p@\fi - \edef\next@{\expandafter\removePT@\the\dimen@}% - \expandafter\vfromslide@i\expandafter{\next@\xydashl@}@\leave@ - \droptwocelllabel@{#6}}% - \fi\fi\fi \next@ -% -% - \DN@{#1}\ifx\next@\empty\relax\else - \ifx #5b\relax % tip at start only - \enter@ {\pfromthep@ }\Creset@@ \PLACEedgep@ - \Calong@@{0}\czeroEdge@ \leave@ - \edef\next@{\codeof\twocelltail@}% - \ifx\next@\empty \DN@{\dir{>}}% - \ifx\next@\twocellhead@\drop@{\dir}{<}% - \else - \reverseDirection@ \DNii@##1##{\drop@{##1}}% - \expandafter\nextii@\twocellhead@{}\reverseDirection@ - \fi - \else - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}% - \fi - \else\ifx #5@\relax % no tips at all - \else % tip at end... - \enter@\pfromthep@ \Creset@@ \PLACEedgec@ - \Calong@@{1}\czeroEdge@ \leave@ - \edef\next@{\codeof\twocellhead@}% - \ifx\next@\empty\drop@{\dir}{>}% - \else - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocellhead@{}% - \fi - \ifx #5B\relax % ... and also at start. - \enter@ {\pfromthep@ }\Creset@@ \PLACEedgep@ - \Calong@@{0}\czeroEdge@ \leave@ - \edef\next@{\codeof\twocelltail@}% - \ifx\next@\empty \DN@{\dir{>}}% - \ifx\next@\twocellhead@\drop@{\dir}{<}% - \else - \reverseDirection@\DNii@##1##{\drop@{##1}}% - \expandafter\nextii@\twocellhead@{}\reverseDirection@ - \fi - \else - \DNii@##1##{\drop@{##1}}\expandafter\drop\twocelltail@{}% - \fi - \else\ifx #5/\relax - \else \edef\next@{\codeof\twocelltail@}% - \ifx\next@\empty\relax\else - \enter@\pfromthep@ \Creset@@ \PLACEedgep@ - \Calong@@{0}\czeroEdge@ \leave@ - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}% - \fi\fi\fi - \fi\fi\fi -% - \cfromid@{@p}\swap@\cfromid@{@c}\no@@ \cfromid@{@m}% - \ifx #5t\relax - \idfromc@{@m2}\cfromid@{@m1}\swap@ \cfromid@{@c}\no@@ - \DN@{#1}\ifx\next@\empty\DN@{\no@@}\else\DN@{\connect@{\dir}{-}}\fi - \else\ifx #5o\relax - \idfromc@{@m2}\DN@{}% - \else % second curved arrow - \DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\fi - \ifdim\dimen@=\z@ - \enter@{\cplusthec@\pfromthep@}% - \enter@\DirectionfromtheDirection@ \begingroup \belowDirection@\xydashl@ - \vfromslide@i{\xydashl@}@\czeroEdge@ \leave@ \idfromc@{@m2}% - \DN@{\cfromid@{@p}\swap@\cfromid@{@c}\no@@}% - \else \DN@{\enter@\cplusthec@ - \enter@\DirectionfromtheDirection@ \begingroup \belowDirection@ \xydashl@ - \vfromslide@i{#1\xydashl@}@\czeroEdge@ \leave@ - \idfromc@{@m2}\cfromid@{@p}\swap@\cfromid@{@c}% - \edef\next@{\codeof\dcurveObject@}% - \ifx\next@\empty\DN@{\connect@\crv{"@m2"}}% - \else - \DNii@####1{\connect@\crv{####1}}\expandafter\DN@\expandafter{% - \expandafter\nextii@\expandafter{\dcurveObject@"@m2"}}% - \fi \next@ }\fi -%% \enter@\cfromthec@\sinit@\cfromid@{@m2}\senter@\leave@ -%% \expandafter\connect@\expandafter\crvs\expandafter{\dcurveObject@}% -%% \sinit@\sleave@ -%% }\fi - \fi\fi \next@ -% - \DN@{#1}\ifx\next@\empty\relax\else \ifx #5o\relax\else - \if\@mod@ @\DN@{\enter@\pfromthep@ \Creset@@ - \ifx #5t\relax - \PLACEedgec@ \PLACEedgep@ \def\PLACEf@{{.5}}% - \else \def\next@{\crvreset@}% - \ifx\next@\Creset@@ - \gettwocelledges@ \edef\PLACEf@{{\expandafter\removePT@\the\dimen@}}% - \else \PLACEedgec@ \PLACEedgep@ \def\PLACEf@{{.5}}\fi - \fi - \expandafter\Calong@@\PLACEf@ \czeroEdge@ \leave@ - \edef\tmp@{\codeof\modmapobject@}\ifx\tmp@\empty\DN@{\drop@{\dir}{|}}% - \else \DNii@####1####{\drop@{####1}}% - \DN@{\expandafter\nextii@\modmapobject@{}}\fi - \next@ }\else\DN@{\relax}\fi - \next@ \fi\fi -% - \DN@{#7}\ifx\next@\empty\DN@{\relax}\else - \DNii@{{}}\ifx\next@\nextii@\DN@{\relax}\else - \ifx @#4\relax\DN@{\relax}\else - \DN@{\enter@\pfromthep@ \Creset@@ - \Calong@@{.5}\czeroEdge@ \leave@ - \enter@\cplusthec@ - \enter@\DirectionfromtheDirection@ \begingroup - \DN@{#1}\ifx\next@\empty\dimen@\z@ \else\dimen@=#1\p@\fi - \ifx #5t\relax \ifdim\dimen@<\z@ \belowDirection@ \xydashl@ - \else \aboveDirection@ \xydashl@ \fi - \else \ifdim\dimen@<\z@ \aboveDirection@ \xydashl@ - \else \belowDirection@ \xydashl@ \fi - \fi \dimen@=#4\p@ \if\@mod@ @\relax - \advance\dimen@\ifdim\dimen@<\z@-\fi.5\p@\fi - \edef\next@{\expandafter\removePT@\the\dimen@}% - \expandafter\vfromslide@i\expandafter{\next@\xydashl@}@\leave@ - \droptwocelllabel@{#7}}% - \fi\fi\fi \next@ -% - \DN@{#1}\ifx\next@\empty\relax\else - \ifx #5o\relax - \else\ifx #5b\relax % tip at start only - \enter@ {\pfromthep@ }\Creset@@ \PLACEedgec@ - \Calong@@{1}\czeroEdge@ \leave@ - \edef\next@{\codeof\twocelltail@}% - \ifx\next@\empty \DN@{\dir{>}}% - \ifx\next@\twocellhead@\drop@{\dir}{>}% - \else - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocellhead@{}% - \fi - \else - \DNii@##1##{\drop@{##1}}\expandafter\drop\twocelltail@{}% - \fi - \else\ifx #5/\relax - \enter@{\pfromthep@}\Creset@@ \PLACEedgep@ - \Calong@@{0}\czeroEdge@ \leave@ - \edef\next@{\codeof\twocelltail@}% - \ifx\next@\empty \DN@{\dir{>}}% - \ifx\next@\twocellhead@\drop@{\dir}{<}% - \else - \reverseDirection@\DNii@##1##{\drop@{##1}}% - \expandafter\nextii@\twocellhead@{}\reverseDirection@ - \fi - \else - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}% - \fi - \else\ifx #5@\relax % no tips at all - \else % tip at end... - \enter@\pfromthep@ \Creset@@ \PLACEedgec@ - \Calong@@{1}\czeroEdge@ \leave@ - \edef\next@{\codeof\twocellhead@}% - \ifx\next@\empty\drop@{\dir}{>}% - \else - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocellhead@{}% - \fi - \ifx #5B\relax % ... and also at start. - \enter@ {\pfromthep@ }\Creset@@ \PLACEedgep@ - \Calong@@{0}\czeroEdge@ \leave@ - \edef\next@{\codeof\twocelltail@}% - \ifx\next@\empty\DN@{\dir{>}}% - \ifx\next@\twocellhead@\drop@{\dir}{<}% - \else - \reverseDirection@\DNii@##1##{\drop@{##1}}% - \expandafter\nextii@\twocellhead@{}\reverseDirection@ - \fi - \else - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}% - \fi - \else - \edef\next@{\codeof\twocelltail@}% - \ifx\next@\empty\relax\else - \enter@ {\pfromthep@ }\Creset@@ \PLACEedgep@ - \Calong@@{0}\czeroEdge@ \leave@ - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}% - \fi\fi - \fi\fi\fi - \fi\fi -% -% the Arrow -% - \DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\fi - \ifdim\dimen@<\z@ \cfromid@{@m2}\swap@\cfromid@{@m1}% - \else \cfromid@{@m1}\swap@\cfromid@{@m2}% - \fi \no@@ \cfromid@{@m}% -% - \ifx\Arrowtok@\empty -% - \else\DN@{_}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@ - \enter@{\pfromthep@ \cplusthec@}\dimen@=#2\xydashl@ - \enter@\DirectionfromtheDirection@ \begingroup - \expandafter\vfromslide@i\expandafter{\the\dimen@}@\czeroEdge@ - \leave@ \idfromc@{@m}% - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\Arrowobject@{}% -% \drop@{\dir}{=>}% -% - \else\DN@{^}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@ - \DN@{_}\edef\Arrowtok@{\codeof\next@}% - \enter@{\pfromthep@ \cplusthec@}\dimen@=#2\xydashl@ - \enter@\DirectionfromtheDirection@ \begingroup - \expandafter\vfromslide@i\expandafter{\the\dimen@}@\czeroEdge@ - \leave@ \idfromc@{@m}\reverseDirection@ - \DNii@##1##{\drop@{##1}}\expandafter\nextii@\Arrowobject@{}% -% \drop@{\dir}{=>}% -% - \else \DN@{=}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@ - \enter@{\pfromthep@ \cplusthec@}% - \dimen@=#2\xydashl@ \advance\dimen@\xydashl@ - \enter@\DirectionfromtheDirection@ \begingroup - \expandafter\vfromslide@i\expandafter{\the\dimen@}@\czeroEdge@ - \leave@ \idfromc@{@m2}% - \cfromid@{@m}% - \enter@{\pfromthep@ \cplusthec@}% - \dimen@=#2\xydashl@ \advance\dimen@-\xydashl@ - \enter@\DirectionfromtheDirection@ \begingroup - \expandafter\vfromslide@i\expandafter{\the\dimen@}@\czeroEdge@ - \leave@ \idfromc@{@m1}% - \cfromid@{@m2}\swap@\cfromid@{@m1}\connect@{\dir 2}{-}% - \fi\fi\fi\fi -% -% label on the Arrow -% - \DN@{#8}\ifx\next@\empty\DN@{}\else\DN@{% - \ifx\Arrowtok@\empty - \Calong@@{.5}% - \else\DN@{=}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@ - \Calong@@{.5}% - \else\DN@{_}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@ - \cfromid@{@m}% - \fi\fi\fi - \enter@\cplusthec@ - \enter@\DirectionfromtheDirection@ \begingroup \aboveDirection@\xydashl@ - \ifx\Arrowtok@\empty - \def\tmp@{0pt}% - \else\DN@{=}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@ - \def\tmp@{\xydashl@}% - \else\DN@{_}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@ - \def\tmp@{1.2\xydashl@}% - \else\def\tmp@{0pt}% - \fi\fi\fi - \expandafter\vfromslide@i\expandafter{\tmp@}@\czeroEdge@ \leave@ - \droptwocelllabel@{#8}% - }\fi \next@ - \leave@ }% -\DOCMODE) - -These are used to establish the location for -the module-map indicator, giving best aesthetic appeal. -It finds the location whose parameter value is -the average of half-way along the complete curve and -the average of parameter values at the the edges. - -\DOCMODE( -\xydef@\gettwocelledges@{% - \bgroup \the\crvpts@ - \edef\next@{\edges@}% - \expandafter\gettwocelledges@@\next@ } - -\xydef@\gettwocelledges@@#1;#2,#3;#4,{% - \dimen@=#2\advance\dimen@-#4\relax - \advance\dimen@ 2\p@ \divide\dimen@ by4 \relax - \edef\next@{\egroup\dimen@=\the\dimen@ }\next@}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xyendinput - -% $Log: xy2cell.doc,v $ -% Revision 3.3 1996/12/18 14:21:23 ross -% Ross's version -% -% Revision 3.3.1.1 1996/12/18 08:49:34 ross -% *** empty log message *** -% -% 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:11:25 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:04:51 ross -% Ready for release of v3. -% -% Revision 2.12 1994/10/25 03:01:14 ross -% Final 3beta release [bug fixes & AMS-LaTeX fitting]. -% -% Revision 2.10 1994/07/01 01:19:46 ross -% removed undefined references -% -% Revision 2.9 1994/06/09 12:51:27 ross -% Release 3beta. -% -% NEW for version 2.9 based on unreleased code for version 2.6+. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyall.doc b/Master/texmf-dist/source/generic/xypic/xyall.doc deleted file mode 100644 index d1a376d5dbc..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyall.doc +++ /dev/null @@ -1,93 +0,0 @@ -%% $Id: xyall.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -%% -%% Xy-pic ``All features'' option. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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{all}{All features}{\stripRCS$Revision: 3.3 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -As a special convenience, this feature loads a subset of -\Xy-pic,\footnote{The name `all' hints at the fact that these were all the - available options at the time `all' was added.} namely the extensions: -|curve| (\cf~\S??g[:curve]), |frame| (\S??g[:frame]), |cmtip| (\S??g[:tips]), -|line| (\S??g[:line]), |rotate| (\S??g[:rotate]), |color| (\S??g[:color]), -and the following features: |matrix| (\S??g[:matrix]), |arrow| -(\S??g[:arrow]), and |graph| (\S??g[:graph]). - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\DOCHEADER - -Here we go: - -\DOCMODE( -\xyrequire{curve} -\xyrequire{frame} -\xyrequire{cmtip} -\xyrequire{line} -\xyrequire{rotate} -\xyrequire{color} - -\xyrequire{matrix} -\xyrequire{arrow} -\xyrequire{graph} -\DOCMODE) - -That is all. - -\DOCMODE( -\xyendinput - -% $Log: xyall.doc,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% NEW file to go in version 2.9! -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyarc.doc b/Master/texmf-dist/source/generic/xypic/xyarc.doc deleted file mode 100644 index 5c392285b70..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyarc.doc +++ /dev/null @@ -1,1436 +0,0 @@ -%% $Id: xyarc.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -%% -%% Xy-pic ``Circles, Ellipses and Arcs'' feature. -%% Copyright (c) 1995-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@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{arc}{Circle, Ellipse, Arc feature}{\stripRCS$Revision: 3.4 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent -This feature provides a means to a specify circles of arbitrary radius, -drawn with a variety of line styles. Similarly ellipses may be specified, -having arbitrary major/minor axes aligned in any direction. -A circular arc joining two points can be constructed with specified -tangent direction at one end. - -All the curves described here---circles, ellipses and sectors of -these---are constructed using the curves from the |xycurve| extension. -As such any comments given there concerning memory requirements are -equally valid here, perhaps even more so. Use of the |xyps| \PS\ -back-end is highly recommended. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -The arcs are not truly circular or elliptical, but are approximations -given by cubic B\'ezier segments. Hence the |xycurve| feature must be loaded. - -\DOCMODE( -\xyrequire{curve} -\xycatcodes -\DOCMODE) - -The basic <object> defined here is |\arc|. -So far it is only implemented as a <decor>ation, -called |\ellipse|. - -\DOCMODE( -\xydef@\ellipse#1#{\xy@{ELLIPSE}{\hbox\bgroup\save@}% - \let\endarc@=\endellipse@@ \xyFN@\preARC@ #1@} - -\xydef@\endellipse@@{\xy@{endELLIPSE}{\leave@\origDirection@ - \edef\next@{\egroup \X@min=\the\X@min \X@max=\the\X@max - \Y@min=\the\Y@min \Y@max=\the\Y@max }\next@}\let\bstartPLACE@=\relax} - -\xydef@\preARC@{% - \ifx\next\space@ \expandafter\DN@\space{\xyFN@\preARC@}% - \else\ifx\next @\DN@{\xy@{ellipseARC}\ellipticARC@ \arc@}% - \else\ifx\next ~\DN@~##1{\tildeARC@{##1}}% - \else\DN@{\xy@{ellipticARC}\ellipticARC@ \arc@}% - \fi\fi\fi \next@ } - -%\xydef@\arc#1#{\xy@{ARC}{\hbox\bgroup\save@}% -% \let\endarc@=\endarc@@\arc@{#1}} -%\xydef@\endarc@@{\xy@{endARC}{\leave@\origDirection@ -\DOCMODE) - - -We start by recording the curve <style> and initialising -some methods and <pos> names, to be able to easily access -important <pos> and <direction> information. - -When the |...| in |\arc...{|<style>|}| is particularly simple, -e.g. <empty> or |^| or |_|, then we can branch immediately -to |\fullCircle@|. Otherwise more parsing is required. - -\DOCMODE( -\xydef@\arc@#1@#2{\DN@{#2}% - \ifx\next@\empty \xy@{arcSTYLE}{\def\arcSTYLE{-}}% - \else \xy@{arcSTYLE}{\def\arcSTYLE{#2}}\fi \arc@i - \DNii@{#1}% - \ifx\nextii@\empty \DN@{\fullCircle@}% - \else \DN@{_}% - \ifx\next@\nextii@ \xy@{_}{\def\arcOrient@@{_}}% - \let\arcOrient@@=\next@ \DN@{\fullCircle@}% - \else \DN@{^}% - \ifx\next@\nextii@ \xy@{^}{\def\arcOrient@@{^}}% - \let\arcOrient@@=\next@ \DN@{\fullCircle@}% - \else \DN@{\def\afterARCextents@@{% - \xy@{aftARCext}{\let\doCircleArc@=\doCircleArc@@}% - \ellipseArc@ \xy@{doCircARCs}{\doCircleArcs@}\endarc@ }% -% \xy@{doCircARCs}{\leave@ \doCircleArcs@}\endarc@ }% - \xyFN@\getarcparams@#1@}\fi\fi\fi - \next@ } -\DOCMODE) - -When further parsing is required, using |\getarcparams@|, then -an |@| token is used to mark the end of the relevant tokens. - -Before any parsing at all the current $p$ and $c$ are recorded as named -<pos>itions "0@p" and "0@c", as well as a point "0@m" along the line in the -current direction from $p$. A method |\origDirection@| is defined to -artificially re-impose this direction independent of the $p$ and $c$ -that may be current at the time. |\startDirection@| is initialised to -this method, though parsing may change its value. -Other methods are initialised, in particular the default orientation; -their values can be expected to change with subsequent parsing. - -\DOCMODE( -\xydef@\arc@i{\xy@{ARCi}{% - \save@\idfromc@{0@c}\cfromp@\idfromc@{0@p}% - \enter@\cplusthec@ \enter@\relax\begingroup\vfromslide@i{}@\czeroEdge@ - \leave@\idfromc@{0@m}\leave@ \zeroDivideLimit@{50}% - \edef\origDirection@{\Direction=\the\Direction - \relax\noexpand\imposeDirection@}% - \let\startDirection@=\origDirection@ \def\startDirection@@{}% - \def\endDirection@{}\def\endDirection@@{}\def\arcOrient@@{^}}% - \def\arcOrient@@{^}\let\processDirections@=\checkstartDirection@ - \def\arcRadius@{}\def\ellipseRatio@{}\def\arcScale@{\arcScale@@}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\message{circles,} -\DOCMODE) - -\subsection{Full Circles} - -The |xyarc| feature allows a much wider range of possibilities -for typesetting circles than is available with |\cir|. -Firstly the radius is no longer restricted to a finite collection of sizes. -Secondly fancy line (curve) styles are available, as with curved arrows. -Finally there are a variety of ways of specifying the desired radius, -relative to other parts of the picture being built, as in the following -example. - -\begin{code} -\xy 0;/r5pc/:*\dir{*}="p",*+!DR{p}; -p+(.5,-.5)*\dir{*}="c",*+++!L{c}**\dir{-} -,{\ellipse<>{:}},{\ellipse(.5){}} -,0;(.5,.5)::,"p";"c",{\ellipse(.5){.}} -,{\ellipse<5pt>{=}}\endxy -\end{code} -$$\docode$$ -\displaycode - -The following give circles centred at $c$. -\begin{defs} -|\ellipse<>{|<style>|}| & radius $ = \mathop{\hbox{dist}}(p,c)$ \cr -|\ellipse<|<dimen>|>{..}| & radius is the <dimen> \cr -|\ellipse(|<num>|){|<style>|}| & unit circle scaled <num>,\hfill\break -in the current basis. \cr -\end{defs}% -% -\noindent -Note that if the current basis is not square then the latter variant, -namely |\ellipse(|<num>|)|, will typeset an ellipse rather than a circle. -On the other hand the first two variants always specify true circles. -In the 2nd case, i.e. when <dimen> is <empty>, the size of the object -at $p$ is taken into account when drawing the circle; if this is not -desired then kill the size using a null object, e.g. |;*{};|. - -Currently the |\ellipse| macro works only as a <decor>. In future versions -there will be an <object> called |\arc| having elliptical shape, -via |\circleEdge| with possibly unequal extents. Also it will be possible -to |\connect\arc|, which will set the current connection so that any place -on the full ellipse, not just the visible sector, will be accessible using -an extension to the usual <place> mechanism. - -\TODO: make this be!! - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The simplest cases of full circles go straight to |\circleArc@|. - -\DOCMODE( -\xydef@\fullCircle@{\xy@{fullCIRC}{\let\endDirection@=\relax - \let\doCircleArc@=\doMergeEndArc@@}\circleArc@ }% -\DOCMODE) - -If the first non-space token following |\arc| is |<| then the current -$c$ is taken to be the centre of the circle or ellipse, or sector thereof. -The first parsing is done to interpret information concerning the radius, -(or axes of an ellipse) along with an orientation. This can be specified -either as absolute dimensions, enclosed in |<|\dots|>|, -or relative to the current basis by |(|\dots|)|, or based on the line -$\overline{pc}$ using |<>| or |<,|<dimen>|>| or |(,|<num>|)|. - -\DOCMODE( -\xydef@\getarcparams@{% - \ifx\space@\next \expandafter\DN@\space{\xyFN@\getarcparams@}%gobble spaces - \else\addLT@\ifx \next \xy@{<}{}% - \addGT@{\addLT@\DN@##1}{\splitRadius@dim##1,,@}% -% \else\ifx \next (\xy@{(}{}\DN@(##1){\splitRadius@##1,,@}% - \else\ifx\next (\DN@({\xyFN@\checkRadOpen@}% - \else\ifx\next @\xy@{@}{}\DN@ @{\fullEllipse@}% - \else \addLQ@\ifx \next \addLQ@\DN@{\xy@`{}\ARCturn@}% - \else \DN@{\getarcExtents@}% - \fi\fi\fi\fi\fi \next@ } - -\xydef@\checkRadOpen@{% - \ifx\next *\DN@{\xyFN@\getarcExtents@ (}% - \else \xy@{(}{}\DN@##1){\splitRadius@##1,,@}% - \fi \next@ } -\DOCMODE) - -The centre is now stored as |"0@0"|, since the value of |"0@c"| -will be changed to agree with |"0@p"|. This is so that start/finish -directions will agree, ensuring all four quadrants be drawn. -The following method is actually executed after all the radius/axes -information has been parsed. - -\DOCMODE( -\xydef@\fixedRadiusArc@{% - \xy@{fixRadArc}{\save@ \idfromc@{0@0}\cfromp@\idfromc@{0@c}\leave@}% - \xyFN@\fixedRadiusArc@i } - -\xydef@\fixedRadiusArc@i{% - \ifx\next\space@ \expandafter\DN@\space{\xyFN@\fixedRadiusArc@i}% - \else\ifx\next @\xy@{@}{}\DN@ @{\fullEllipse@}% - \else\DN@{\let\processDirections@=\processArcDirections@ - \def\afterARCextents@@{\xy@{aftARCext}{\let\doCircleArc@=\doCircleArc@@ - \ellipseSector@}}\xyFN@\getarcExtents@}% - \fi\fi \next@ } -\DOCMODE) - -When a full circle or ellipse is required then there are three methods -which must be invoked when establishing the local basis change. - -\begin{itemize} -\item[|\arcScale@|] -Initially this has value |\arcScale@@| which is based on $\overline{pc}$. -It is changed only by |(|<num>|)| and |(|<num>|,|<num>|)|; -see the code for |\splitRadius@| below. When executed, -this method will establish the required basis, at least partially. - -\DOCMODE( -\xydef@\arcScale@@{\xy@{arcSCALE@@}{\save@ - \cfromid@{0@0}\pfromc@\cfromid@{0@p}\setbase@\X@p\Y@p\X@c\Y@c}} -\DOCMODE) - -\item[|\arcRadius@|] -Initially <empty>, this changes with |<|<dimen>|,|<dimen>|>| and -|<|<dimen>|>| to |\arcScale@dim| which gets the radius by a <slide> -of given <dimen> along the line $\overline{pc}$. - -\DOCMODE( -\xydef@\arcScale@dim#1{\xy@{arcSCALEdim}{\save@ - \cfromid@{0@0}\pfromc@ \cfromid@{0@p}\setupDirection@\cfromp@ - \enter@\cplusthec@ \begingroup\vfromslide@i#1@% - \setbase@\X@p\Y@p\X@c\Y@c \idfromc@{0@p}}} -\DOCMODE) - - -\item[|\ellipseRatio@|] -Initially <empty>, this changes with |<|<dimen>|,|<dimen>|>| to -|\ellipseScale@dim| which establishs the $(|\X@basey|,|\Y@basey|)$ -by a <slide> perpendicular to the line $\overline{pc}$, -or to |\ellipseScale@| with |(,|<num>|)| to simply set the -perpendicular basis direction using <num> as a coordinate. - -\DOCMODE( -\xydef@\ellipseScale@dim#1{\xy@{ellSCALEdim}{\setupDirection@\cfromp@ - \enter@\cplusthec@ \aboveDirection@\xydashl@ \vfromslide@{#1}\leave@ - \setbase@@\X@c\Y@c}} - -\xydef@\ellipseScale@#1{\xy@{ellSCALE@}% - {\vfromcartesian@@0,#1@\setbase@@\X@c\Y@c}} -\DOCMODE) - -\end{itemize} - -The methods |\splitRadius@dim| and |\splitRadius@| complete the -interpretation of the radius/axes specification. They must determine -whether one or two pieces of information have been explicitly provided, -and act accordingly. - -\DOCMODE( -\xydef@\splitRadius@dim#1,#2,#3@{% - \DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\relax%\splinetracing - \expandafter\def\expandafter\arcRadius@ - \expandafter{\arcScale@dim{#1}}\fi - \DN@{#2}\ifx\next@\empty\dimen@ii=\z@\def\ellipseRatio@{}% - \else\dimen@ii=#2\relax \expandafter - \def\expandafter\ellipseRatio@\expandafter{\ellipseScale@dim{#2}}% - \fi \fixedRadiusArc@ } - -\xydef@\splitRadius@#1,#2,#3@{% - \DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\relax\fi - \DN@{#2}\ifx\next@\empty\dimen@ii=\z@\else\dimen@ii=#2\p@\relax\fi - \ifdim\dimen@=\z@ \ifdim\dimen@ii=\z@\else \expandafter - \def\expandafter\ellipseRatio@\expandafter{\ellipseScale@{#2}}\fi - \else - \ifdim\dimen@ii=\z@ - \def\arcScale@{\xy@{arcSCALE@}{\save@\cfromid@{0@0}% - \X@origin=\X@c \Y@origin=\Y@c - \X@xbase=#1\X@xbase \Y@xbase=#1\Y@xbase - \X@ybase=#1\X@ybase \Y@ybase=#1\Y@ybase - \advance\X@c\X@xbase \advance\Y@c\Y@xbase \czeroEdge@ - \idfromc@{0@p}\idfromc@{0@c}}}% - \else - \def\arcScale@{\xy@{arcSCALE@}{\save@\cfromid@{0@0}% - \X@origin=\X@c \Y@origin=\Y@c - \X@xbase=#1\X@xbase \Y@xbase=#1\Y@xbase - \X@ybase=#2\X@ybase \Y@ybase=#2\Y@ybase - \advance\X@c\X@xbase \advance\Y@c\Y@xbase \czeroEdge@ - \idfromc@{0@p}\idfromc@{0@c}}}% - \fi - \fi \fixedRadiusArc@ } - -\xydef@\baseOrient@{\DN@{_}\ifx\next@\arcOrient@@ - \X@ybase=-\X@ybase \Y@ybase=-\Y@ybase \fi } -\DOCMODE) - - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\message{ellipses,} -\DOCMODE) - -\subsection{Ellipses} - -There are several ways to specify an ellipse, apart from the method -illustrated above in which the basis must be changed from square. -Basically we must specify the lengths of the major and minor axes. -Also it is necessary to specify an alignment for one axis. - -\medskip -In the following, the ellipse is centred on $c$ and one axis is aligned -along the line $\overline{pc}$, except with the final variant where -it aligns with the current basis. When used <num> is treated -as a scale factor, multiplying an appropriate length. -% -\begin{defs} -|\ellipse<|<dimen>|,|<dimen>|>{|..|}| & given axes lengths \cr -|\ellipse<,|<dimen>|>{|<style>|}| & one axis is $\overline{pc}$ \cr -|\ellipse(,|<num>|){|<style>|}| & ...perp. axis scaled \cr -|\ellipse(|<num>|,|<num>|){|..|}| & scaled axes aligned\hfill\break -with basis. \cr -\end{defs} - -In the latter variant, if the second <num> is <empty> then -this is equivalent to both <num>s having the same value, -which is in turn equivalent to the final variant for circles. - -\begin{code} -\xy 0;/r5pc/:*\dir{*},*++!DR(.5){p} -*\frm{-};p+(.5,-.5)*\dir{*}="c", -**\dir{-},*+!UL{c},"c", -,{\ellipse(1,.4){:}},{\ellipse(,.75){}} -,{\ellipse<15pt,10pt>{=}} -;*{};{\ellipse<,10pt>{.}}\endxy -\end{code} -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -As with full circles, full ellipses require little preparation. - -\DOCMODE( -\xydef@\fullEllipse@{\xy@{fullELLIPSE}% - {\def\startDirection@{}\let\doCircleArc@=\doMergeEndArc@@}% - \ellipseArc@ - \xy@{doCIRCarcs}{\leave@ \doCircleArcs@}\endarc@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Drawing arcs} - -This method is common to full circles, ellipses and circular arcs. -It first executes the methods |\arcScale@|, |\arcRadius@|, |\ellipseRatio@| -where necessary, then examines |\arcOrient@@| to decide if the arc is to be -typeset clockwise or counter-clockwise. - -\DOCMODE( -\xydef@\ellipseArc@{% - \arcScale@ \arcRadius@ \ellipseRatio@ - \xy@{arcCONTROLS}{\baseOrient@ \arcControls@ \let\bstartPLACE@=\relax }} -\DOCMODE) - -Here is where the ``control points'' are defined, for each of the -four B\'ezier cubic segments, using coordinates in the constructed -basis. The endpoints of the segments---though, not necessarily -of the arc---are stored as "0p", "1c", "2c", "3c" and the tangential -control points are stored as "1m", "2m", \dots, "8m". - -\DOCMODE( -\xydef@\cubicARCcontrols@@{\czeroEdge@ - \vfromcartesian@@0,1@\idfromc@{1@c}% - \vfromcartesian@@-1,0@\idfromc@{2@c}% - \vfromcartesian@@0,-1@\idfromc@{3@c}% - \vfromcartesian@@1,\arcparam@ @\idfromc@{1@m}% - \vfromcartesian@@\arcparam@,1@\idfromc@{2@m}% - \vfromcartesian@@-\arcparam@,1@\idfromc@{3@m}% - \vfromcartesian@@-1,\arcparam@ @\idfromc@{4@m}% - \vfromcartesian@@-1,-\arcparam@ @\idfromc@{5@m}% - \vfromcartesian@@-\arcparam@,-1@\idfromc@{6@m}% - \vfromcartesian@@\arcparam@,-1@\idfromc@{7@m}% - \vfromcartesian@@1,-\arcparam@ @\idfromc@{8@m}% - } -\DOCMODE) - -Drawing the circle/ellipse/arc means tracing along the requisite cubic -segments. The method |\doCircleArc@@| is used for full circles/ellipses -when complete segments are to be typeset. -The methods |\doMergeStartArc@|, |\doMergeEndArc@@| and |\doMergeBothArc@| -are used when a segment is not complete. The work by ``merging'' the -initial/final point of the curved segment with the appropriate point -required to be at the extremity of the arc. Typesetting of the curve -should not take place within the region covered by this merged object. - -To overcome the difficulty of the curve leaving then re-entering this -region, a second merge is performed to extend it suitably. This is -the purpose of |\cfromcontrols@|. Due to the ``convex-hull property'' -of the B\'ezier cubic segment, a point can be constructed from -the end-points and control points which can be used to extend -the rectangle to cover a suitable portion of the curve. - -\DOCMODE( -\xydef@\doCircleArc@@#1#2{\save@ \ifcase#2\relax - \doCircleArc@@@{0@p}{1@m}{2@m}{1@c}{#1}\or - \doCircleArc@@@{1@c}{3@m}{4@m}{2@c}{#1}\or - \doCircleArc@@@{2@c}{5@m}{6@m}{3@c}{#1}\or - \doCircleArc@@@{3@c}{7@m}{8@m}{0@p}{#1}\or - \doCircleArc@@@{0@p}{1@m}{2@m}{1@c}{#1}\or - \doCircleArc@@@{1@c}{3@m}{4@m}{2@c}{#1}\or - \doCircleArc@@@{2@c}{5@m}{6@m}{3@c}{#1}\or - \doCircleArc@@@{3@c}{7@m}{8@m}{0@p}{#1}\fi \leave@ } - -\xydef@\doCircleArc@@@#1#2#3#4#5{% - \cfromid@{#1}\pfromc@\senter@ - \cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}% - \connect@\crvs{#5}\relax\sinit@\sleave@} - -\xydef@\doMergeEndArc@@#1#2{\save@\ifcase#2\relax - \doMergeEnd@@@{0@p}{1@m}{2@m}{1@c}{#1}\relax\or - \doMergeEnd@@@{1@c}{3@m}{4@m}{2@c}{#1}\relax\or - \doMergeEnd@@@{2@c}{5@m}{6@m}{3@c}{#1}\relax\or - \doMergeEnd@@@{3@c}{7@m}{8@m}{0@p}{#1}@\fi \leave@ } - -\xydef@\doMergeEnd@@@#1#2#3#4#5#6{% - \cfromid@{#1}\pfromc@\senter@ - \cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}% - \ifx#6\relax - \L@c=.1\p@ \R@c=\L@c \U@c=\L@c \D@c=\L@c \Edge@c={\rectangleEdge}\fi - \enter@\cmergethec@\cfromid@{0@c}\leave@ - \enter@\cmergethec@\cfromcontrols@{#1}{#2}{#3}{#4}\leave@ - \connect@\crvs{#5}\relax - \sinit@\sleave@} - -\xydef@\doMergeStartArc@#1#2{\save@\ifcase#2\relax - \doMergeStart@@{0@p}{1@m}{2@m}{1@c}{#1}@\or - \doMergeStart@@{1@c}{3@m}{4@m}{2@c}{#1}\relax\or - \doMergeStart@@{2@c}{5@m}{6@m}{3@c}{#1}\relax\or - \doMergeStart@@{3@c}{7@m}{8@m}{0@p}{#1}\relax\fi \leave@ } - -\xydef@\doMergeStart@@#1#2#3#4#5#6{% - \cfromid@{#1}\ifx#6\relax - \L@c=.1\p@ \R@c=\L@c \U@c=\L@c \D@c=\L@c \Edge@c={\rectangleEdge}\fi - \enter@\cmergethec@\cfromid@{0@x}\leave@ - \enter@\cmergethec@\cfromcontrols@{#4}{#3}{#2}{#1}\leave@ - \pfromc@ - \senter@ \cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}% - \connect@\crvs{#5}\relax\sinit@\sleave@} - -\xydef@\doMergeBothArc@#1#2{\save@\ifcase#2\relax - \doMergeBoth@@{0@p}{1@m}{2@m}{1@c}{#1}@\or - \doMergeBoth@@{1@c}{3@m}{4@m}{2@c}{#1}\relax\or - \doMergeBoth@@{2@c}{5@m}{6@m}{3@c}{#1}\relax\or - \doMergeBoth@@{3@c}{7@m}{8@m}{0@p}{#1}\relax\fi \leave@ } - -\xydef@\doMergeBoth@@#1#2#3#4#5#6{% - \cfromid@{#1}\ifx#6\relax - \L@c=.1\p@ \R@c=\L@c \U@c=\L@c \D@c=\L@c \Edge@c={\rectangleEdge}\fi - \enter@\cmergethec@\cfromid@{0@x}\leave@ - \enter@\cmergethec@\cfromcontrols@{#4}{#3}{#2}{#1}\leave@ - \pfromc@ - \senter@ \cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}% - \enter@\cmergethec@\cfromid@{0@c}\leave@ - \enter@\cmergethec@\cfromcontrols@{#1}{#2}{#3}{#4}\leave@ - \connect@\crvs{#5}\relax\sinit@\sleave@} - -\xydef@\doMergeEndArc@#1#2{\count@@=#2\relax - \ifnum\count@@>\thr@@ \advance\count@@-4\fi\relax - \doMergeEndArc@@{#1}\count@@ } - -\xydef@\doStraightArc@@#1{\xy@{STRAITarc}{\save@ - \cfromid@{0@p}\pfromc@\cfromid@{0@c}% - \senter@\connect@\crvs{#1}\sinit@\sleave@\leave@}} - -\xydef@\cfromcontrols@#1#2#3#4{\bgroup - \cfromid@{#1}\L@p=\X@c \U@p=\Y@c - \cfromid@{#4}\R@p=\X@c \D@p=\Y@c - \cfromid@{#3}\A@=\X@c \B@=\Y@c \cfromid@{#2}% - \ifdim\R@p>\L@p \ifdim\A@>\R@p \R@p=\A@ - \ifdim\X@c>\R@p \R@p=\X@c\fi\fi - \else \ifdim\A@<\R@p \R@p=\A@ - \ifdim\X@c<\R@p \R@p=\X@c\fi\fi - \fi - \ifdim\D@p>\U@p \ifdim\B@>\D@p \D@p=\B@ - \ifdim\Y@p>\D@p \D@p=\Y@p\fi\fi - \else \ifdim\B@<\D@p \D@p=\B@ - \ifdim\Y@p<\D@p \D@p=\Y@p\fi\fi - \fi - \edef\next@{\egroup \X@c=\the\R@p \Y@c=\the\D@p}\next@ } -\DOCMODE) - -The next method controls which segments are typeset. -It is rather primitive and could well be improved; e.g. to be more like -|\doEllipseSectors@| with |\forwardSectors@| and |\backwardSectors@|. - -First it calculates the |\startDirection@@| as a number, using the current -base. Next it calculates |\quadDirection@| which records the angle of -the $y$-axis in the current base. -Depending on the required orientation, read from |\arcOrient@@|, this -latter number is adjusted to be minimal greater than |\startDirection@@| -for a counter-clockwise arc, or maximal less than it for a clockwise one. -Similarly the value of |\endDirection@@| is made larger or smaller -than |\startDirection@@|, according to orientation, by adding $\pm8192$ -if necessary. - -Each required segment is typeset using |\doCircleArc@@| except that the -final segment uses the value of |\doCircleArc@|. When the end-point is -the original $c$ then this value is |\doMergeEndArc@@|, so that the arc will -stop at the edge of this <pos>, otherwise |\doCircleArc@@| is used. - -(The following macro can be shortened by making use of the methods -|\forwardSectors@| and |\backwardSectors@|, as in |\doEllipseSectors@|. - -\DOCMODE( -\xydef@\doCircleArcs@{\save@ - \cfromid@{0@0}\pfromc@\cfromid@{0@p}\setupDirection@ - \startDirection@ \edef\startDirection@@{\the\Direction}% - \cfromid@{1@c}\setupDirection@ \edef\quadDirection@{\the\Direction}\relax - \count@=\quadDirection@ \relax\def\nextii@{^}% - \let\preDirection@@=\startDirection@@ - \ifx\nextii@\arcOrient@@ - \ifnum\quadDirection@>\startDirection@@ \relax - \else \advance\count@ by8192 \relax\edef\quadDirection@{\the\count@}\fi - \ifx\endDirection@@\empty - \ifx\endDirection@\relax - \bgroup\cfromid@{0@c}\setupDirection@ - \edef\next@{\egroup \count@@=\the\Direction}\next@ \relax - \ifnum\count@@<\startDirection@@ \advance\count@@ 8192 \fi - \edef\endDirection@@{\the\count@@}% - \else - \count@@=\startDirection@@ - \advance\count@@ by8192 \edef\endDirection@@{\the\count@@}% - \fi - \else - \count@@=\endDirection@@ \relax\ifnum\count@@<\startDirection@@ \relax - \advance\count@@ by8192 \edef\endDirection@@{\the\count@@}\fi - \fi % \forwardSectors@ - \ifnum\endDirection@@>\quadDirection@ - \DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{0}}% - \else - \DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{0}}% - \fi -% - \else % \arcOrient@@ = _ -% - \ifnum\count@<\startDirection@@\relax\else\advance\count@ by-8192 \relax - \edef\quadDirection@{\the\count@}\fi - \ifx\endDirection@@\empty - \ifx\endDirection@\relax - \bgroup\cfromid@{0@c}\setupDirection@ - \edef\next@{\egroup \count@@=\the\Direction}\next@ \relax - \ifnum\count@@>\startDirection@@ \advance\count@@-8192 \fi - \edef\endDirection@@{\the\count@@}% - \else - \count@@=\startDirection@@ - \advance\count@@ by-8192 \edef\endDirection@@{\the\count@@}% - \fi - \else - \count@@=\endDirection@@ \relax \ifnum\count@@>\startDirection@@ - \advance\count@@ by-8192 \edef\endDirection@@{\the\count@@}\fi - \fi %\backwardSectors@ - \ifnum\endDirection@@<\quadDirection@ - \DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{0}}% - \else \DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{0}}\fi - \fi - \next@ \relax -% - \count@=\quadDirection@ \relax\def\nextii@{^}\DN@{}% - \ifx\nextii@\arcOrient@@ - \count@@=\startDirection@@ \advance\count@@ by4096 \relax - \ifnum \count@<\endDirection@@ \relax - \ifnum\endDirection@@>\count@@ - \DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{1}}% - \else \DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{1}}\fi - \fi - \else - \count@@=\startDirection@@ \advance\count@@ by-4096 \relax - \ifnum \count@>\endDirection@@ \relax - \ifnum\endDirection@@<\count@@ - \DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{1}}% - \else \DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{1}}\fi - \fi\fi - \next@ \relax -% - \ifx\next@\empty \else \relax - \count@=\startDirection@@ \relax\def\nextii@{^}\DN@{}% - \ifx\nextii@\arcOrient@@ \advance\count@ by4096 \relax - \count@@=\quadDirection@ \advance\count@@ by4096 \relax - \ifnum \count@<\endDirection@@ - \ifnum\endDirection@@>\count@@ - \DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{2}}% - \else \DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{2}}\fi - \fi - \else \advance\count@ by-4096 \relax - \count@@=\quadDirection@ \advance\count@@ by-4096 \relax - \ifnum \count@>\endDirection@@ \relax - \ifnum\endDirection@@<\count@@ - \DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{2}}% - \else \DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{2}}\fi - \fi\fi - \next@ \relax - \fi -% - \ifx\next@\empty \else \relax - \count@=\quadDirection@ \def\nextii@{^}\DN@{}% - \ifx\nextii@\arcOrient@@ \advance\count@ by4096 \relax - \ifnum \count@<\endDirection@@ - \DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{3}}\fi - \else \advance\count@ by-4096 \relax - \ifnum \count@>\endDirection@@ - \DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{3}}\fi - \fi \next@ \relax - \fi -% - \leave@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\message{elliptical arcs,} -\DOCMODE) - -\subsection{Circular and Elliptical Arcs} - -The |xyarc| feature handles arcs to be specified in two essentially -different ways, according to what information is provided by the user. -We call these the ``radius-unknown/end-points known'' and the -``radius-known/end-points unknown'' cases. - -\subsubsection*{radius unknown, end-points known} -The simplest case, though not necessarily the most common, is that of -a circular arc from $p$ to $c$, with radius and centre unspecified. -To uniquely specify the arc, the tangent direction at $p$ is taken -to be along the current direction, given by |\Direction|, as set by the -latest <connect>ion. If no connection has been used, then the default -<direction> is ``up''. -% -\begin{defs} -|\ellipse_{|<style>|}| & clockwise arc from $p$ to $c$ \cr -|\ellipse^{|<style>|}| & counter-clockwise arc \cr -|\ellipse{|<style>|}| & also counter-clockwise \cr -\end{defs} -% -With this information only, a unique circle can be found -whose radius and centre need not be specified in advance. -For a unique arc it is sufficient to specify the orientation -around the circle. - -The exception is when the current direction is from $p$ to $c$, -in which case no circle exists. Instead a straight line is typeset -accompanied by the following message: -$$ -|Xy-pic Warning: straight arc encountered | -$$ - -The following example shows how, given three points $o$, $p$ and $c$, -to continue the line $\overline{op}$ by a circular arc to $c$ joining -smoothly at $p$. - -\begin{code} -\xy 0;/r5pc/:*=+\dir{*}*+!UR{p}; -p+(.5,-.5)*\dir{*}="o",*+!UL{o} -,+(0,.81)*=<6.1pt>\dir{*}*\frm{-}="c" -,*+!DL{c},"o",**\dir{-}, -"c",{\ellipse_{}},{\ellipse^{.}} -% -,"o"+(1.5,.2)*\dir{*}="a"*+!UL{a} -,"o";p+/_1pc/,**{},"a",{\ellipse_{}} -\endxy -\end{code} -$$\docode$$ -\displaycode -% -\noindent -Note how the remainder of the circle can be specified separately. -The example also shows how to specify an arc which leaves a particular -point perpendicular to a specific direction. - -\medskip -Slightly more complicated is when the tangent direction at $p$ is specified, -but different from the current direction; a unique circular arc can still -be defined. More complicated is when a specific tangent direction is -required also at $c$. In this case the arc produced is a segment -of an ellipse. (If the required tangent at $p$ points to $c$ then a straight -segment is drawn, as in the circular case described above.) -% -\begin{defs} -|\ellipse|<dir>$_p$|,|<orient>|{..}| & circular \cr -|\ellipse|<dir>$_p$|,|<orient>|,|<dir>$_c$|{..}| & elliptical \cr -|\ellipse|<dir>$_p$|,|<orient><dir>$_c$|{..}| & elliptical\cr -|\ellipse|<dir>$_p$|,|<orient>,=<dir>$_c$|{..}| & elliptical\cr -|\ellipse`|<coord><orient>|{..}| & elliptical\cr -\end{defs} -% -In these cases <dir>$_p$ and <dir>$_c$ are <direction> specifications, -as in figure~??g[xy.doc:f.object] and note~??g[xy.doc:<direction>], -and <orient> must be either |^| or |_| -for anti-/clockwise respectively, defaulting to |^| if <empty>. -Beware that the |(*|<pos><decor>|*)| form {\em must\/} be used for this -<direction> variant, as if an object modifier. - -The second and third cases in the above table generally -give identical results. The second `|,|' is thus optional, except -in two specific situations: -\begin{itemize} -\item[1.] <orient> is empty and <dir>$_c$ has |^| or |_| as -the first token; -\item[2.] <orient> is |^| and <dir>$_c$ has |^| as first token. -Without the |,| then |^|{}|^| would be interpreted by \TeX\ as part of -a special ligature for a hexadecimal character code. -\end{itemize} -If both <orient> and <dir>$_c$ are <empty> then even the first `|,|' -can be omitted. -% -\begin{code} -\xy 0;/r5pc/:*=<8.1pt>\dir{*}="p",*\frm{-} -,*++!U{p},"p";p+(.5,-.5)*+\dir{*}="o" -,*+!UL{o},+(0,.81)*=<8.1pt>\dir{*}="c" -,*\frm{-},*++!L{c},"o"**\dir{-},"c" -,{\ellipse :a(50),_:0{:}} -,{\ellipse :a(30),_:a(-45){}} -,{\ellipse :a(40),_{.}}, -;*{};{\ellipse :a(20),^=_{=}}\endxy -\end{code} -$$\docode$$ -\displaycode -% -Note that only the slope of <dir>$_p$ and <dir>$_c$ is significant; -rotations by 180$^\circ$ being immaterial. - -\begin{code} -\xy 0;/r5pc/:*\dir{*}="p",*+!UR{p} -;p+(.5,-.5)*\dir{*}="o",*++!L{o}**\dir{-} -,p+(.5,.5)*\dir{*}="c",*++!D{c},"c" -;p+(1,.1)*\dir{*}="q",*++!L{q}**\dir{-} -,"o";"p",**{};"c" -,{\ellipse![["o";"p"]],_![["q";"c"]]{}} -,{\ellipse![["o";"p"]],![["c";"q"]]{.}} -\endxy -\end{code} -$$\docode$$ -\displaycode -% -The |=| variant establishes the <direction> parsing to begin with -the direction resulting from <dir>$_p$ instead of the original direction. -If <dir>$_c$ is required to be the original direction then use |:0|. -It cannot be <empty> since this is interpreted as requiring -a circular arc with unspecified tangent at $c$; see the example above. -However when <dir>$_p$ and <dir>$_c$ are parallel there is a -whole family\footnote{Indeed this is always so. The algorithm used for -the general case tends toward parallel lines---clearly unsuitable.} -of possible ellipses with the specified tangents. - -With no further hint available, a choice is made based on the distance -between $p$ and $c$. If the required direction is perpendicular to -$\overline{pc}$ this choice results in a circular arc. -The optional factor in |=(|<num>|)| is used to alter this choice; -the default |(1)| is assumed when nothing follows the |=|. -This factor is used to ``stretch'' the ellipse along the specified direction. -For a negative <num> the orientation reverses. -% -\begin{code} -\xy ;/r5pc/:*+=<10.1pt>\dir{*}="p";p*\frm{-} -,*++!UR{p},p+(.5,-.5)*\dir{*}="o",**\dir{-} -,*+!UL{o},+(0,.81)*=<8.1pt>\dir{*}="c" -,*\frm{-},*++!DL{c},"c" -,{\ellipse r,={}},{\ellipse r,=(2){.}} -,{\ellipse r,^=(3){.}},{\ellipse r,=(-2){}} -,{\ellipse r,=(-1){.}}\endxy -\end{code} -$$\docode$$ -\displaycode - -The final variant uses the directions from $p$ and $c$ to the -given <coord>. If <orient> is <empty> then the orientation is -determined to give the shortest path along the ellipse. Specifying -an <orient> of |^| or |_| will force the orientation, even if this -means travelling `the long way' around the ellipse. -For example, see next figure. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph{Alternative curves} -In some cases the circular or elliptic curve can be replaced by a curve with -different shape, having the same tangent directions at the end-points. -When a full circle/ellipse is specified then one gets instead a closed -curve constructed from 4 spline segments. Other variants use a single -segment, 2 or 3 segments, or some portion of all 4 segments. -Possibilities are given in the following table. -% -\begin{defs} -|\ellipse~e ...{|<..>|}| & elliptical, as above \cr -|\ellipse~q ...{|<..>|}| & parabolic segments \cr -|\ellipse~c ...{|<..>|}| & cubic segments \cr -|\ellipse~i ...{|<..>|}| & interpolating cubic \cr -|\ellipse~p ...{|<..>|}| & cuspidal cubic \cr -|\ellipse~c(|<num>|)...{|<..>|}|\kern-20pt &\kern20pt cubic segments, - \hfil\break with ``looseness''\cr -\end{defs}% -% -In the latter case the <num>, typically between 0 and 1, controls -how soon the curve begins to bend away from the tangent direction. -Smaller values give tighter curves --- 0 for straight lines --- -with |~c| being the same as |~c(1)| and |~q| is |~c(.66667)|, -that is <num>$={2\over3}$. - -The curve produced by the ``interpolating'' variant |~i| actually -passes through the control point |"x"|, with slope parallel -to the line $\overline{pc}$. Since the tangents at $p$ and $c$ -point toward |"x"| the curvature is quite gentle until near |"x"| -where the curve bends rapidly, yet smoothly. This is obtained also -by using |~c(1.33333)|, that is <num>$={4\over3}$. Since $|<num>|>1$ -the ``convex hull property'' does not hold; indeed the curve is entirely -outside the convex hull of $p$, $c$ and |"x"|, apart from those points -themselves. - -The `cuspidal' variant |~p| is equivalent to |~c(2)|. It exhibits a cusp. -For $|<num>|>2$ the curve is so ``loose'' that it exhibits loops. -(The author offers no guarantees on the usefulness of such curves -for any particular purpose; however they do look nice.~\smiley) - -\begin{code} -\xy 0;/r6pc/:*+\dir{*}="p",*+!UR{p},"p"; -p+(.5,-.5)*+\dir{*}="c",*+!UL{c} -,"p"+(.825,-.25)="x"*\dir{+},"c" -,{\xycompile{\ellipse`"x"{-}}} -,{\xycompile{\ellipse~q`"x"^{.}}} -,{\xycompile{\ellipse~c`"x"{.}}} -,{\xycompile{\ellipse~c(.3)`"x"^{:}}} -,{\xycompile{\ellipse~c(2.3)`"x"{-}}} -,{\xycompile{\ellipse~i`"x"^{.}}} -,{\xycompile{\ellipse~p`"x"^{-}}} -\endxy -\end{code} -$$\hss\docode\hss$$ -\displaycode - -{\bf Hint: } -When exploring to find the best location for the ``control-point'' -(e.g. the |"x"| in the above example), then use |\xycompile| as -shown, changing the location outside of the compilation. This speeds up -the reprocessing with the changed value. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Furthermore, the ellipses are not true ellipses, but are constructed from -four B\'ezier cubic curves, one for each quadrant of the circle or ellipse. -To do this it is sufficient to establish -the control points for each cubic segment. This is straightforward, using -the following ``magic number'', given a square basis such that the desired -circle is the unit circle, or rectangular basis for which the ``unit circle'' -is the desired ellipse. Thus |~e| is equivalent to |~c(.5517847)|. - -\DOCMODE( -\xydef@\arcmagic@@{0.5517847} -\xylet@\arcmagic=\arcmagic@@ -\DOCMODE) - -This is the magic number, exactly given by -${1\over12}\bigl(\sqrt{385}-13\bigr)$, -that helps construct the B\'ezier cubic curve -that best approximates a quarter-turn arc of a circle. -It does so with remarkable accuracy, -differing by at most .5\% of the radius at any angle; -the average deviation along the whole quadrant being less than .13\%. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\tildeARC@#1{% - \if q#1\DN@{\xy@{quadARC}\quadARC@ \arc@}% - \else\if c#1\DN@{\xyFN@\cubicARC@i}% - \else\if e#1\DN@{\xy@{ellipticARC}\ellipticARC@ \arc@}% - \else\if i#1\DN@{\xy@{interpARC}\interpARC@ \arc@}% - \else\if p#1\DN@{\xy@{cuspidalARC}\cuspidalARC@ \arc@}% - \else\xywarning@{unknown arc type: #1 }% - \DN@{\xy@{ellipticARC}\ellipticARC@ \arc@}% - \fi\fi\fi\fi\fi \next@ } - -\xydef@\cubicARC@i{% - \ifx\next\space@ \expandafter\DN@\space{\xyFN@\cubicARC@i}% - \else\ifx\next (\DN@(##1){\xy@{cubicARC(##1)}{\cubicARC@{##1}}\arc@}% - \else \DN@{\xy@{cubicARC(1)}{\cubicARC@{1}}\arc@}% - \fi\fi \next@ } -\DOCMODE) - -\DOCMODE( -\xydef@\ellipticARC@{\let\arcControls@=\cubicARCcontrols@@ - \edef\arcparam@{\arcmagic@@}} - -\xydef@\cubicARC@#1{\let\arcControls@=\cubicARCcontrols@@ - \dimen@=#1\p@ \edef\arcparam@{\expandafter\removePT@\the\dimen@}} - -\xydef@\quadARC@{\let\arcControls@=\cubicARCcontrols@@ - \def\arcparam@{.66667}} - -\xydef@\cuspidalARC@{\let\arcControls@=\cubicARCcontrols@@ - \def\arcparam@{2}} - -\xydef@\interpARC@{\let\arcControls@=\cubicARCcontrols@@ - \def\arcparam@{1.33333}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph{Avoiding overflows} -If <dir>$_p$ and <dir>$_c$ are intended to be equal then the method of -the previous paragraph should be used. However it may happen that -``nearly parallel'' directions may be specified, perhaps by accident. -There is then the possibility of ``numerical overflow'' or a ``division by -zero'' error. The latter may be accompanied by a warning message: -\begin{eqnarray*} -&|Xy-pic Warning: division by 0 in |\\ -&\qquad |\intersect@, replaced by 50| -\end{eqnarray*} -This indicates that the number 50 has been used as the result of a -division by zero. In many contexts this will produce an acceptable result. -However it may lead to an ``overflow'' in other situations, or to drawing -beyond the normal page boundary. This can be controlled using a <decor> -of type |,{\zeroDivideLimit{|<num>|}},| prior to specifying the |\ellipse|. -The value 50 will be replaced by <num> whenever a ``division by zero'' -would otherwise be encountered in an intersection calculation. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\ARCturn@{\xy@@\bgroup\afterCOORD{% - \xy@@{\edef\next@{\egroup \A@=\the\X@c \B@=\the\Y@c}\next@}\ARCturn@@}} - -\xydef@\ARCturn@@#1@{\DN@{#1}\DNii@{^}% - \ifx\next@\nextii@ \xy@{^}{\def\arcOrient@@{^}}% - \else\DNii@{_}\ifx\next@\nextii@ \xy@{_}{\def\arcOrient@@{_}}% - \else\xy@{}{\def\arcOrient@@{}}\fi\fi - \xy@@\ARCturn@@@ \processDirections@@ } - -\xydef@\ARCturn@@@{% - \bgroup\cfromid@{0@p}\X@p=\X@c \Y@p=\Y@c \X@c=\A@ \Y@c=\B@ - \setupDirection@ \edef\next@{\egroup\count@=\the\Direction}\next@\relax - \edef\startDirection@@{\the\count@ }% - \bgroup\cfromid@{0@c}\X@p=\A@ \Y@p=\B@ - \setupDirection@ \edef\next@{\egroup\count@=\the\Direction}\next@\relax - \edef\endDirection@@{\the\count@}% - \ifx\arcOrient@@\empty - \bgroup\cfromid@{0@p}\X@p=\X@c \Y@p=\Y@c \cfromid@{0@c}% - \setupDirection@ \edef\next@{\egroup\count@@=\the\Direction}\next@\relax - \count@=-\count@@ \advance\count@\startDirection@@ \relax \count@=-\count@ - \ifnum\count@>4096 \def\arcOrient@@{_}% - \else\ifnum\count@<-4096 \def\arcOrient@@{^}% - \else\ifnum\count@>\z@ \def\arcOrient@@{^}% - \else\def\arcOrient@@{_}\fi\fi\fi - \fi } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\circleArc@{% - \xy@{circARC@}{\cfromid@{0@p}\pfromc@\cfromp@\startDirection@ - \arcCenter@\idfromc@{0@0}% - \def\startDirection@{\bgroup - \cfromid@{0@0}\pfromc@\cfromid@{0@p}\setupDirection@ - \edef\next@{\egroup \Direction=\the\Direction}\next@ - \relax\imposeDirection@}}% - \ifx\endDirection@@\empty - \ifx\arcRadius@\empty \ifx\ellipseRatio@\empty\else - \DN@{\arcScale@@}\ifx\arcScale@\next@\else - \xy@@{\bgroup\cfromid@{0@0}\pfromc@\cfromid@{0@c}\setupDirection@ - \edef\next@{\egroup \Direction=\the\Direction}\next@ - \edef\endDirection@@{\the\Direction}}\fi\fi\fi\fi - \ellipseArc@ \xy@@{\leave@ \doCircleArcs@}\endarc@ } -% \ellipseArc@ \xy@@{\doCircleArcs@}\endarc@ } -\DOCMODE) - -The following methods calculate the centre of a circle using the -perpendicular to the required angle at $p$ and the perpendicular bisector -of the line $\overline{pc}$. - -\DOCMODE( -\xydef@\arcbisector{% - \cfromid@{0@p}\pfromc@\cfromid@{0@c}\setupDirection@ - \advance\X@c\X@p\divide\X@c\tw@ - \advance\Y@c\Y@p\divide\Y@c\tw@ \czeroEdge@ \pfromc@ - \enter@\cplusthec@ \enter@\relax\begingroup - \aboveDirection@\xydashl@ \vfromslide@i{}@\leave@ } - -\xydef@\arcCenter@{% - \cfromid@{0@p}\pfromc@\cfromid@{0@m}\setupDirection@ - \cfromp@\enter@\cplusthec@ \enter@\relax\begingroup - \aboveDirection@\xydashl@ \vfromslide@i{}@\leave@\no@@ - \arcCenter@i } - -\xydef@\arcCenter@i{% - \enter@{\pfromthep@}\setupDirection@ \Creset@@ - \let\PLACEedgep@@=\PLACEedgep@ \let\PLACEedgec@@=\PLACEedgec@ - \enter@{\pfromthep@\basefromthebase@}\bgroup - \arcbisector \edef\next@{\egroup - \X@c =\the\X@c \Y@c=\the\Y@c \X@p=\the\X@p \Y@p=\the\Y@p }% - \next@ \Cintercept@@ \leave@\leave@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{radius known, end-points unknown} -The language for these is a combination of most of that used above, -but the interpretation of the <direction>s is different... -% -\begin{defs1} -|\ellipse<|<radius>|>|<dir>$_1$|,|<orient>|,|<dir>$_2$|{..}|\cr -|\ellipse<|<radius>|>|<dir>$_1$|,|<orient>|,=|<dir>$_2$|{..}|\cr -\end{defs1} -% -where <radius> is one of the forms used above to describe a circle -or ellipse. Not all of the ellipse will be typeset---only that arc -starting with <dir>$_1$ as tangent vector, tracing via <orient> -until the tangent points in direction <dir>$_2$. -This effectively extends the notation used with |\cir| -in ??g[xy.doc:objectlib.circles]. -Note that rotating a given <dir>$_i$ by 180$^\circ$ specifies -a different arc on the same ellipse/circle. -Reversing the <orient> no longer gives the complementary arc, -but this complement rotated 180$^\circ$. -% -\begin{code} -\xy 0;/r5pc/:*\dir{*}="p",*+!DR{p}; -p+(.5,-.5)*\dir{*}="c",*+!UL{c}**\dir{-} -,"c",{\ellipse<15pt>_,=:a(45){=}} - ,{\ellipse<>__,=:a(30){-}} -,{\ellipse(1,.4){.}} - ,{\ellipse(1,.4)_,=:a(120){-}} -,{\ellipse(,.75){.}} - ,{\ellipse(,.75)_,^,^{-}}\endxy -\end{code} -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph{parsing of directions} - -\DOCMODE( -\xydef@\getarcExtents@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\getarcExtents@}% - \else\ifx\next @\xy@{@}{}\DN@ @{\fullEllipse@}% - \else\DN@{\xy@{arcEXTENTs}{\save@ - \def\startDirection@{\Direction=\startDirection@@ \imposeDirection@}}% - \xyFN@\getarcExtents@ii}\fi\fi \next@ } - -\xydef@\getarcExtents@ii{% - \ifx\next!\xy@{![[}{}\DN@![[##1]]{\getxyDirection@{##1}\getarcExtents@iv}% - \else\DN@{\getarcExtents@iv}\fi \next@ } - -\xydef@\getarcExtents@iv{\afterDIRECTIONorEMPTY - {\xy@{startDIR}{\edef\startDirection@@{\the\Direction}\leave@}% - \xyFN@\getarcOrientation@}% - {\xy@{startDIR}{\edef\startDirection@@{\the\Direction}\leave@}% - \xyFN@\getarcOrientation@}} - -\xydef@\getarcOrientation@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\getarcOrientation@}% - \else\ifx\next @\xy@{@}{}\DN@{\getEndDirection@x}% - \else\ifx\next,\xy@{,}{}\DN@,{\xyFN@\getarcOrientation@i}% - \else\DN@{\getarcOrientation@i}\fi\fi\fi \next@ }% - -\xydef@\getarcOrientation@i{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\getarcOrientation@i}% - \else\ifx\next @\xy@{@}{}\DN@{\getEndDirection@x}% - \else\ifx\next^{}\DN@##1{\xy@{^}{\def\arcOrient@@{^}}% - \def\arcOrient@@{^}\xyFN@\getEndDirection@}% - \else\ifx\next_\DN@##1{\xy@{_}{\def\arcOrient@@{_}}% - \def\arcOrient@@{_}\xyFN@\getEndDirection@}% - \else\DN@{\xyFN@\getEndDirection@}% - \fi\fi\fi\fi \next@ } - -\xydef@\getEndDirection@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\getEndDirection@}% - \else\ifx\next,\DN@,{\xy@{,}{}\xyFN@\getEndDirection@}% - \else\addEQ@\ifx\next\addEQ@\DN@{\xy@{=}{\save@\startDirection@}% - \xyFN@\getEqDirection@}% - \else \ifx\next!\DN@![[##1]]{\xy@{![[}{\save@}\getxyDirection@{##1}% - \xy@{endDIR}{\edef\endDirection@@{\the\Direction}}% - \xyFN@\getEndDirection@i}% - \else \DN@{\xy@{origDIR}{\save@\origDirection@}\getEndDirection@i}% - \fi\fi\fi\fi \next@ } - -\xydef@\getEqDirection@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\getEqDirection@}% - \else\ifx\next @\xy@{@}{}\DN@ @{% - \xy@{sameDIR}{\edef\endDirection@@{\startDirection@@}\leave@}% - \parEllipse@{1}{}}% -% \else\ifx\next (\DN@(##1)##2@{\xy@{()}{\leave@}\parEllipse@{##1}{##2}}% - \else\ifx\next (\DN@({\xyFN@\checkEqOpen@}% - \else \DN@{\getEndDirection@i}\fi\fi\fi \next@ } - -\xydef@\checkEqOpen@{% - \ifx\next *\DN@{\getEndDirection@i (}% - \else \DN@##1)##2@{\xy@{()}\leave@ \parEllipse@{##1}{##2}}% - \fi \next@ } - -\xydef@\getEndDirection@i{\afterDIRECTIONorEMPTY - {\xy@{endDIR}{\edef\endDirection@@{\the\Direction}\leave@}% - \getEndDirection@x }% - {\xy@{endDIR}\leave@ \getEndDirection@x }} - -\xydef@\getEndDirection@x#1@{% - \DN@{#1}\ifx\next@\empty\relax \else\xywarning@{\omittingTokens@}\fi - \processDirections@ } - -\xydef@\omittingTokens@{omitting unused tokens: \codeof\next@ } -\DOCMODE) - -\DOCMODE( -\xydef@\processDirections@@{% - \ifx\endDirection@@\empty \skewCircle@ - \else \skewEllipse@ \expandafter \afterARCextents@@ \fi } - -\xydef@\processArcDirections@{% - \xy@{ARCdirs}{\ifx\endDirection@@\empty - \origDirection@ \edef\endDirection@@{\the\Direction}\fi}% - \ellipseArc@ - \xy@{procARCdirs}\processArcDirections@@ - \let\arcScale@\ellsave@ \let\arcRadius@\ellsave@ \def\ellipseRatio@{}% - \xy@{circSECTORS}{\doCircleSectors@}\endarc@ } - -\xydef@\ellsave@{\xy@@{\save@}} - -\xydef@\processArcDirections@@{\save@ - \bgroup \cfromid@{0@0}\pfromc@ \Direction=\startDirection@@ - \DN@{_}\ifx\next@\arcOrient@@ - \advance\Direction \ifnum\Direction<\z@-\fi 4096 \relax\fi - \imposeDirection@ - \d@X=\cosDirection\Y@ybase \advance\d@X-\sinDirection\X@ybase - \d@Y=-\cosDirection\Y@xbase \advance\d@Y\sinDirection\X@xbase - \setupDirection@i - \d@X=-\cosDirection\X@ybase \advance\d@X\sinDirection\X@xbase - \d@Y=-\cosDirection\Y@ybase \advance\d@Y\sinDirection\Y@xbase - \enter@\cplusthec@\X@c=\d@X \Y@c=\d@Y \leave@ \czeroEdge@ - \setupDirection@i - \czeroEdge@ - \edef\next@{\egroup \cfromthec@ \count@=\the\Direction}\next@ - \edef\startDirection@@{\the\count@}\idfromc@{0@x}% -% - \bgroup \cfromid@{0@0}\pfromc@ \Direction=\endDirection@@ - \DN@{_}\ifx\next@\arcOrient@@ - \advance\Direction \ifnum\Direction<\z@-\fi 4096 \relax\fi - \imposeDirection@ - \d@X=\cosDirection\Y@ybase \advance\d@X-\sinDirection\X@ybase - \d@Y=-\cosDirection\Y@xbase \advance\d@Y\sinDirection\X@xbase - \setupDirection@i - \d@X=-\cosDirection\X@ybase \advance\d@X\sinDirection\X@xbase - \d@Y=-\cosDirection\Y@ybase \advance\d@Y\sinDirection\Y@xbase - \enter@\cplusthec@\X@c=\d@X \Y@c=\d@Y \leave@ - \czeroEdge@ - \setupDirection@i - \edef\next@{\egroup \cfromthec@ \count@=\the\Direction}\next@ - \edef\endDirection@@{\the\count@}\idfromc@{0@c}% -% - \count@=\startDirection@@ \relax \count@@=\endDirection@@ \relax - \DN@{^}\ifx\arcOrient@@\next@ - \ifnum\count@@>\count@ \else\advance\count@@ 8192 \relax\fi - \else - \ifnum\count@@<\count@ \else\advance\count@@-8192 \relax\fi\fi - \edef\startDirection@@{\the\count@}% - \edef\endDirection@@{\the\count@@}}% - -\xydef@\doCircleSectors@{% - \let\doCircleArc@=\doMergeEndArc@@ \leave@ \leave@ - \cfromid@{0@0}\pfromc@\cfromid@{0@p}\setupDirection@ - \count@=\Direction \DN@{^}\ifx\arcOrient@@\next@ - \ifnum\count@>\startDirection@@ \advance\count@-8192 \fi\relax - \count@@=\count@ \advance\count@@ 8192 \relax - \ifnum\count@@<\endDirection@@ \advance\count@@ 8192 \fi\relax - \else - \ifnum\count@<\startDirection@@ \advance\count@ 8192 \fi\relax - \count@@=\count@ \advance\count@@-8192 \relax - \ifnum\count@@>\endDirection@@ \advance\count@@-8192 \fi\relax - \fi \relax - \edef\preDirection@@{\the\count@}\edef\postDirection@@{\the\count@@}% - \cfromid@{1@c}\setupDirection@ \count@=\Direction - \def\nextii@{^}\ifx\nextii@\arcOrient@@ - \DN@{\forwardSectors@\doEllipseSectors@}% - \ifnum\count@<\preDirection@@ \advance\count@ 8192 \relax - \else \count@@=\count@\advance\count@-8192 \relax - \ifnum\count@@<\preDirection@@ \else\count@=\count@@ \fi\fi - \else - \DN@{\backwardSectors@\doEllipseSectors@}% - \ifnum\count@>\preDirection@@ \advance\count@-8192 \relax - \else \count@@=\count@\advance\count@ 8192 \relax - \ifnum\count@@>\preDirection@@ \else\count@=\count@@ \fi\fi - \fi \edef\quadDirection@{\the\count@}% - \next@ } - -\xydef@\forwardSectors@{% - \ifnum \startDirection@@<\quadDirection@ \def\startSector@@{0}% - \else\count@=\preDirection@@ \advance\count@ 4096 \relax - \ifnum \startDirection@@<\count@ \def\startSector@@{1}% - \else\count@=\quadDirection@ \advance\count@ 4096 \relax - \ifnum\startDirection@@<\count@ \def\startSector@@{2}% - \else \def\startSector@@{3}\fi\fi\fi -% - \ifnum\quadDirection@ <\endDirection@@ \relax - \count@=\preDirection@@ \advance\count@ 4096 \relax - \ifnum\count@<\endDirection@@ \relax - \count@=\quadDirection@ \advance\count@ 4096 \relax - \ifnum\count@<\endDirection@@ \relax - \count@=\preDirection@@ \advance\count@ 8192 \relax - \ifnum\count@<\endDirection@@ \relax - \count@=\quadDirection@ \advance\count@ 8192 \relax - \ifnum\count@<\endDirection@@ \relax - \count@=\preDirection@@ \advance\count@ 12288 \relax - \ifnum\count@<\endDirection@@ \relax - \count@=\quadDirection@ \advance\count@ 12288 \relax - \ifnum\count@<\endDirection@@ \def\endSector@@{7}% - \else \def\endSector@@{6}\fi - \else \def\endSector@@{5}\fi - \else \def\endSector@@{4}\fi - \else \def\endSector@@{3}\fi - \else \def\endSector@@{2}\fi - \else \def\endSector@@{1}\fi - \else \def\endSector@@{0}\fi } - -\xydef@\backwardSectors@{% - \ifnum \startDirection@@>\quadDirection@ \def\startSector@@{0}% - \else\count@=\preDirection@@ \advance\count@-4096 \relax - \ifnum \startDirection@@>\count@ \def\startSector@@{1}% - \else\count@=\quadDirection@ \advance\count@-4096 \relax - \ifnum\startDirection@@>\count@ \def\startSector@@{2}% - \else \def\startSector@@{3}\fi\fi\fi -% - \ifnum\quadDirection@>\endDirection@@ \relax - \count@=\preDirection@@ \advance\count@-4096 \relax - \ifnum\count@>\endDirection@@ \relax - \count@=\quadDirection@ \advance\count@-4096 \relax - \ifnum\count@>\endDirection@@ \relax - \count@=\preDirection@@ \advance\count@-8192 \relax - \ifnum\count@>\endDirection@@ \relax - \count@=\quadDirection@ \advance\count@-8192 \relax - \ifnum\count@>\endDirection@@ \relax - \count@=\preDirection@@ \advance\count@-12288 \relax - \ifnum\count@>\endDirection@@ \relax - \count@=\quadDirection@ \advance\count@-12288 \relax - \ifnum\count@>\endDirection@@ \def\endSector@@{7}% - \else \def\endSector@@{6}\fi - \else \def\endSector@@{5}\fi - \else \def\endSector@@{4}\fi - \else \def\endSector@@{3}\fi - \else \def\endSector@@{2}\fi - \else \def\endSector@@{1}\fi - \else \def\endSector@@{0}\fi } - -\xydef@\doEllipseSectors@{% - \ifx\startSector@@\endSector@@ - \DN@{\expandafter\doMergeBothArc@\expandafter{\arcSTYLE}{\endSector@@}}% - \else - \expandafter\doMergeStartArc@\expandafter{\arcSTYLE}{\startSector@@}% - \edef\countArcs@@{\startSector@@}% - \loop@ \count@=\countArcs@@ \relax \advance\count@\@ne - \ifnum \count@ < \endSector@@ \edef\countArcs@@{\the\count@}% - \bgroup\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{\countArcs@@}% - \egroup - \repeat@ - \DN@{\expandafter\doMergeEndArc@\expandafter{\arcSTYLE}{\endSector@@}}% - \fi \next@ } -\DOCMODE) - -When the starting direction is along the line $\overline{pc}$ then a -straight segment is typeset, ignoring any requested ending direction. - -\DOCMODE( -\xydef@\checkstartDirection@{% - \bgroup\no@@ \edef\next@{\egroup\count@@=\the\Direction}\next@\relax - \ifnum\count@@=\startDirection@@ \relax \DN@{\straightArc@}% - \else \advance\count@@-\startDirection@@ \relax - \ifnum\count@@=\ifnum\count@@<\z@-\fi 4096 \relax \DN@{\straightArc@}% - \else \DN@{\processDirections@@}\fi\fi \next@ } - -\xydef@\straightArc@{\xywarning@{straight arc encountered}% - \xy@@{\let\bstartPLACE@=\relax - \expandafter\doStraightArc@@\expandafter{\arcSTYLE}}\endarc@ }% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\skewEllipse@{\xy@@{\doskewEllipse@}% - \def\afterARCextents@@{\xy@{aftARCext}{\let\doCircleArc@=\doMergeEndArc@@}% - \ellipseArc@ \xy@{doCircARCs}{\doCircleArcs@}\endarc@ }% - \let\arcScale@=\relax \def\arcRadius@{}\def\ellipseRatio@{}} - -\xydef@\skewCircle@{\xy@@{\setupDirection@}% - \ifnum\Direction=\startDirection@@\relax\DN@{\halfEllipse@{1}}% - \else - \xy@@{\def\startDirection@{\Direction=\startDirection@@\imposeDirection@}% - \cfromid@{0@p}\enter@\cplusthec@ \startDirection@ - \enter@\relax\begingroup\vfromslide@i{}@\czeroEdge@\leave@\idfromc@{0@m}% - \let\endDirection@=\relax \let\doCircleArc@=\doMergeEndArc@@}% - \DN@{\circleArc@}% - \fi \next@ } - -\xydef@\doskewEllipse@{% - \def\startDirection@{\Direction=\startDirection@@ \relax - \imposeDirection@}\startDirection@ \cfromid@{0@p}% - \enter@\cplusthec@ \enter@\relax\begingroup\vfromslide@i{}@\leave@ - \idfromc@{0@x}% - \ifx\endDirection@@\empty \parallelDirection@ - \else - \def\endDirection@{\Direction=\endDirection@@ \relax - \imposeDirection@ }\endDirection@ \skewEllB@ - \bgroup\setupDirection@\edef\next@{\egroup\count@@=\the\Direction}\next@ - \edef\endDirection@@{\the\count@@}% - \fi - \cfromid@{0@p}\bgroup \setupDirection@ - \edef\next@{\egroup \count@@=\the\Direction}\next@ - \edef\startDirection@@{\the\count@@}} - -\xydef@\halfEllipse@#1{\xy@@{% - \cfromid@{0@p}\pfromc@\cfromid@{0@c}\no@@ - \edef\endDirection@@{\the\Direction}% - \advance\X@c\X@p \divide\X@c\tw@ \advance\Y@c\Y@p \divide\Y@c\tw@ - \idfromc@{0@0}\pfromc@ \cfromid@{0@p}\setbase@\X@p\Y@p\X@c\Y@c - \dimen@=\X@origin \advance\dimen@-\X@c \dimen@ii=\cosDirection\dimen@ - \dimen@=\Y@origin \advance\dimen@-\Y@c \advance\dimen@ii \sinDirection\dimen@ - \X@c=\X@origin \Y@c=\Y@origin \enter@\cplusthec@ - \dimen@=#1\p@ \ifdim\dimen@<\z@ \DN@{^}\dimen@ii=-#1\dimen@ii - \ifx\next@\arcOrient@@\def\arcOrient@@{_}\else\def\arcOrient@@{^}\fi - \else \dimen@ii=#1\dimen@ii\fi - \startDirection@ \enter@\relax\begingroup\expandafter - \vfromslide@i\expandafter{\the\dimen@ii}@\leave@ - \idfromc@{1@c}\setbase@@ \X@c \Y@c \adjustBaseOrient@ - \count@@=\endDirection@@ \relax - \DN@{^}\advance\count@@\ifx\arcOrient@@\next@\else-\fi 4096 \relax - \edef\startDirection@@{\the\count@@}% - \def\startDirection@{\Direction=\startDirection@@ \imposeDirection@ }% - \let\doCircleArc@=\doMergeEndArc@@ }% - \let\arcScale@=\relax \ellipseArc@ -% \xy@@{\leave@ \doCircleArcs@}\endarc@ } - \xy@@{\doCircleArcs@}\endarc@ } - -\xydef@\parallelDirection@{\show\parallelDirection@}% - -\xydef@\parEllipse@#1#2{\DN@{#2}\ifx\next@\empty - \else\xywarning@{\omittingTokens@ }\fi \halfEllipse@{#1}} - -\xydef@\skewEllB@{\cfromid@{0@c}\pfromc@\enter@\cplusthec@ - \enter@\relax\begingroup\vfromslide@i{}@\leave@ - \enter@{\pfromthep@\basefromthebase@}\no@@ - \bgroup \cfromid@{0@p}\pfromc@\cfromid@{0@x}\edef\next@{\egroup - \X@c =\the\X@c \Y@c=\the\Y@c \X@p=\the\X@p \Y@p=\the\Y@p }\next@ - \Cintercept@@\leave@ \idfromc@{0@x}\cfromid@{0@p}\enter@\cplusthec@ - \cfromid@{0@c}\leave@ \enter@\cplusthec@ \cfromid@{0@x}% - \X@c=-\X@c \Y@c=-\Y@c \leave@ \idfromc@{0@0}\pfromc@\cfromid@{0@p}% - \setbase@\X@p\Y@p\X@c\Y@c \cfromid@{0@c}\setbase@@\X@c\Y@c - \adjustBaseOrient@ } - -\xydef@\adjustBaseOrient@{% - \edef\tmp@{\expandafter\removePT@\the\X@xbase}\dimen@=\Y@ybase - \divide\dimen@ 64 \relax \dimen@ii=\tmp@\dimen@ - \edef\tmp@{\expandafter\removePT@\the\X@ybase}\dimen@=\Y@xbase - \divide\dimen@ 64 \relax \dimen@=\tmp@\dimen@ - \ifdim\dimen@>\dimen@ii \X@ybase=-\X@ybase \Y@ybase=-\Y@ybase \fi } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%\begin{code} -%\end{code} -%$$\docode$$ - -%\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xyarc.doc,v $ -% Revision 3.4 1997/05/18 01:13:24 ross -% Essential bugfixes. -% -% Revision 3.3 1996/12/18 14:21:23 ross -% Ross's version -% -% Revision 3.3.1.1 1996/12/18 08:50:58 ross -% *** empty log message *** -% -% Revision 3.2 1995/09/19 18:20:20 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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/source/generic/xypic/xyarrow.doc b/Master/texmf-dist/source/generic/xypic/xyarrow.doc deleted file mode 100644 index 203c877c451..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyarrow.doc +++ /dev/null @@ -1,1881 +0,0 @@ -%% $Id: xyarrow.doc,v 3.5 1997/05/28 13:05:01 krisrose Exp $ -%% -%% Xy-pic ``Arrows and Paths'' feature. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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@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{arrow}{Arrow and Path feature}{\stripRCS$Revision: 3.5 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This feature provides \Xy-pic with the arrow paradigm presented - in~\cite{R92:HowTPDAT}. - - \NOTE: |\PATH| command incompatibly changed for version 3.3 (the - |\ar| command is unaffected). - - The basic concept introduced is the "path": a connection that - "starts" from $c$ (the current object), "ends" at a specified object, - and may be split into several "segments" between intermediate - specified objects that can be individually labelled, change style, - have breaks, etc. - - \S??[path] is about the |\PATH| primitive, including the syntax of - paths, and \S??[arrow] is about the |\ar| customisation of paths to - draw arrows using \Xy-pic directional objects. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Paths} -??=[path] - -\DOCMODE( -\message{path,} -\DOCMODE) - - The fundamental commands of this feature are ??c![\PATH] and - ??c![\afterPATH] that will parse the <path> according to the grammar - in figure~??[f.path] with notes below. - -\begin{figure*}[tb] -\begin{syntax} -% - \multispan{3}{{\tt\string\PATH} <path>\hfil} - & interpret <path> -\cr -% - \multispan{3}{{\tt\string\afterPATH\string{<decor>\string}} <path>\hfil} - & interpret <path> and then run <decor> -\cr -\noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} -% - <path> - &\iss & ??c![~] <action> |{| <stuff> |}| <path> - & set ??!^[<action>] to <stuff> -\cr - &\orr & ??c![~] <which> |{| <labels> |}| <path> - & add ??!^[<labels> prefix for some segments] -\cr - &\orr & ??c![~] |{| <stuff> |}| <path> - & set ??!^[failure continuation] to <stuff> -\cr - &\orr & ??c!['] <segment> <path> - & make ??!^[straight segment] -\cr - &\orr & ??c![`] <turn> <segment> <path> - & make ??!^[turning segment] -\cr - &\orr & <segment> - & make ??!^[last segment] -\cr -\noalign{\smallskip} -% - <turn> - &\iss & <diag> <turnradius> - & ??!^[1/4 turn] starting in <diag> -\cr - &\orr & <cir> <turnradius> - & ??!^[explicit turn] -\cr -% - <turnradius> - &\iss & <empty> - & use default turn radius -\cr - &\orr & ??c![/] <dimen> - & set "turnradius" to <dimen> -\cr -\noalign{\smallskip} -% - <segment> - &\iss & <path-pos> <slide> <labels> - & ??!^[segment] with <slide> and <labels> -\cr -\noalign{\smallskip} -% - <slide> - &\iss & <empty> \orr\ ??c![<] <dimen> ??c![>] - & optional ??!^[slide]: <dimen> in the ``above'' direction -\cr -\noalign{\smallskip} -% - <labels> - &\iss & ??c![^] <anchor> <it> <alias> <labels> - & ??!^[label with <it>] "above" <anchor> -\cr - &\orr & ??c![_] <anchor> <it> <alias> <labels> - & ??!^[label with <it>] "below" <anchor> -\cr - &\orr & ??c![|] <anchor> <it> <alias> <labels> - & ??!^[break with <it>] at <anchor> -\cr - &\orr & <empty> - & no more labels -\cr -\noalign{\smallskip} -% - <anchor> - &\iss & ??c![-] <anchor> \orr\ <place> - & label/break placed relative to the <place> where ??c![-] is a synonym - for ??c![<>(.5)] -\cr -\noalign{\smallskip} -% - <it> - &\iss & <digit>\orr<letter>\orr|{|<text>|}|\orr<cs> - & <it> is a ??!^[default label] -\cr - &\orr & ??c![*] <object> - & <it> is an <object> -\cr - &\orr & ??c![@] <dir> - & <it> is a <dir>ectional -\cr - &\orr & |[| <shape> |]| <it> - & use |[|<shape>|]| for <it> -\cr -\noalign{\smallskip} -% - <alias> - &\iss & <empty> \orr\ ??c![=]|"|<id>|"| - & optional ??!^[name for label object] -\cr -\end{syntax} -\caption{\protect<path>s} -??=[f.path] -\end{figure*} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Parsing:} - - |\afterPATH| sets up |\afterPATH@| and initialise all the actions - (see note~??[<action>] below) before invoking the actual <path> - parser. |\PATH| is just a dummy interface. - -\DOCMODE( -\xydef@\PATH{\afterPATH{}} - -\xylet@\afterPATH@=\empty - -\xydef@\afterPATH#1{\save - \DN@##1{\def\afterPATH@{\restore \def\afterPATH@{##1}#1}}% - \expandafter\next@\expandafter{\afterPATH@}% - \let\PATHfail@@=\empty - \let\PATHbefore@@=\empty - \let\PATHafter@@=\empty - \let\PATHlabelsevery@@=\empty - \let\PATHlabelsnext@@=\empty - \let\PATHlabelslast@@=\empty - \xy@{\afterPATH{#1}}{\def\PATHslide@@{\z@}}% - \def\PATHcontinue@@{\xyFN@\PATH@}% - \xyFN@\PATH@} -\DOCMODE) - - |\PATH@| is the parser for <path>: it eats the <path> until it fails - and then calls the `failure continuation' which will eventually - become |\empty| which ends the parsing. \HACK: The - `|\ifPATHsingle@|' switch switches the <segment> parsing "off"; this - is used by the graph feature to parse stand-alone <slide> <labels> - sequences. - -\DOCMODE( -\xynew@{if}\ifPATHsingle@ - -\xydef@\PATH@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PATH@}% - \else\ifPATHsingle@ \let\next@=\PATH@single - \else \let\next@=\PATH@normal \fi\fi \next@} - -\xydef@\PATH@normal{% - \ifx ~\next \DN@ ~{\xyFN@\PATHsetting@}% - \else \addRQ@\ifx \next \addRQ@\DN@{\xy@'{}\xyFN@\PATHstraight@}% - \else \addLQ@\ifx \next \addLQ@\DN@{\xy@`{}\xyFN@\PATHturn@}% - \else\ifx \PATHfail@@\PATH@x \DN@{\xyFN@\PATHfinal@}% - \else - \DNii@{\let\PATHfail@@=\PATH@x \xyFN@\PATH@}% - \DN@{\expandafter\nextii@\PATHfail@@}% - \fi\fi\fi\fi \next@} -\DOCMODE) - - |\PATHsetting@| just reads an <action> or <which> determining which - action stuff to set and then does it---we treat the failure - continuation as an action here even though it is not, strictly - speaking. The four actions are explained in the appropriate notes - below. - -\DOCMODE( -\xylet@\PATHfail@@=\empty - -\xylet@\PATHbefore@@=\empty -\xylet@\PATHafter@@=\empty - -\xylet@\PATHlabelsevery@@=\empty -\xylet@\PATHlabelsnext@@=\empty -\xylet@\PATHlabelslast@@=\empty - -\xydef@\PATHsetting@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PATHsetting@}% - \else\ifx \bgroup\next - \DN@##1{\xy@{~{##1}}{}\def\PATHfail@@{##1}\xyFN@\PATH@}% - \else \addEQ@\ifx \next - \addEQ@\DN@##1{\xy@{~={##1}}{}\def\PATHbefore@@{##1}\xyFN@\PATH@}% - \else \addLT@\ifx \next - \addLT@\DN@##1{\xy@{~<{##1}}{}\def\PATHlabelsnext@@{##1}\xyFN@\PATH@}% - \else \addGT@\ifx \next - \addGT@\DN@##1{\xy@{~>{##1}}{}\def\PATHlabelslast@@{##1}\xyFN@\PATH@}% - \else \addPLUS@\ifx \next - \addPLUS@\DN@##1{\xy@{~+{##1}}{}\def\PATHlabelsevery@@{##1}\xyFN@\PATH@}% - \else \ifx /\next - \DN@/##1{\xy@{~/{##1}}{}\def\PATHafter@@{##1}\xyFN@\PATH@}% - \else \addDASH@\ifx \next - \xywarning@{Obsolete `-' PATH <action> translated to `='.}% - \addDASH@\DN@##1{\xy@{~-{##1}}{}\def\PATHbefore@@{##1}\xyFN@\PATH@}% - \else - \xyerror@{Unknown \string~ setting: \meaning\next}% - {See the Xy-pic arrow feature documentation for help.}% - \fi\fi\fi\fi\fi\fi\fi\fi \next@} -\DOCMODE) - - Next the setup for straight segments including the last: they set - |\PATHinit@@| to initialise, \ie, slide, |\PATHextra@@| to do what is - needed after the ??c![=] action, and finally |\PATHpost@@| is set to - any operations to be done after the entire segment is typeset but - before the next is read. |\PATHcontinue@@| is used internally to - distinguish the ordinary segments from the last. - -\DOCMODE( -\xylet@\PATHinit@@=\empty - -\xylet@\PATHextra@@=\empty -\xylet@\PATHpost@@=\empty -\xylet@\PATHcontinue@@=\empty - -\xydef@\PATHstraight@{% - \def\PATHinit@@{\PATHinitstraight@}% - \let\PATHextra@@=\empty - \let\PATHpost@@=\empty - \let\PATHlabelsextra@@=\relax - \xy@@\pfromc@ \PATHafterPOS{\xyFN@\PATHsegment@}} - -\xydef@\PATHfinal@{% - \def\PATHinit@@{\PATHinitstraight@}% - \def\PATHextra@@{\let\PATHcontinue@@=\afterPATH@}% - \let\PATHpost@@=\empty - \let\PATHlabelsextra@@=\PATHlabelsextralast@ - \xy@@\pfromc@ \PATHafterPOS{\xyFN@\PATHsegment@}} - -\xydef@\PATHlabelsextralast@{\let\PATHlabelsextra@@=\relax - \expandafter\xyFN@\expandafter\PATHlabels@\PATHlabelslast@@} - -\xydef@\PATHinitstraight@{\xy@@{\setupDirection@ \dimen@=\PATHslide@@ - \dimen@ii=-\sinDirection\dimen@ - \ifPATHomitslide@@\else\advance\X@p\dimen@ii\fi \advance\X@c\dimen@ii - \dimen@ii= \cosDirection\dimen@ - \ifPATHomitslide@@\else\advance\Y@p\dimen@ii\fi \advance\Y@c\dimen@ii - \PATHomitslide@@false \resetupDirection@}} -\DOCMODE) - - Setup for turning segments is in note~??[turning segment]. - - A <segment> is interpreted as follows after $p$ has been set to the - previous end object, $c$ to the <pos> given at the start of the - segment, and |\PATHslide@@| to the slide: - -\DOCMODE( -\xydef@\PATHslide@@{\z@} -\xynew@{if}\ifPATHomitslide@@ - -\xydef@\PATHsegment@{% - \addLT@\ifx\next - \addGT@{\addLT@\DN@##1}{% - \xy@{<##1>}{\dimen@=##1\relax \edef\PATHslide@@{\the\dimen@}}% - \xyFN@\PATHsegment@@}% - \else \let\next@=\PATHsegment@@ - \fi \next@} -\DOCMODE) - -\begin{enumerate} -\item - Expand |\PATHinit@@| (for straight segments this just sets up the - direction and applies the <slide>). -\item - Expand |\PATHaction={|<stuff>|}| as set using |~={|<stuff>|}|. -\item - Sets |\PATHcontinue@@| to any continuation set with |~{|<stuff>|}|). -\item - Construct list of <labels> specified by the user through |~|<which> - setup. Those applicable to the present segment are inserted before - the user's <labels> in the sequence |<>=|. -\item - Store $p,c$ as "start","end" of segment. -\item - Interpret <labels> (see below), including the ones added by the - |~|<when>\dots\ <setup>. -\end{enumerate} -% - |\PATHsegment@@| performs this except the last two points: - -\DOCMODE( -\xydef@\PATHsegment@@{\PATHinit@@ \addEQ@\PATHaction@\PATHbefore@@ \PATHextra@@ - \expandafter\toks@\expandafter{\PATHlabelsnext@@}\let\PATHlabelsnext@@=\empty - \expandafter\addtotoks@\expandafter{\PATHlabelsevery@@}% - \expandafter\def\expandafter\PATHlabels@@\expandafter{\the\toks@}% - \toks@={}\expandafter\xyFN@\expandafter\PATHlabels@\PATHlabels@@} -\DOCMODE) - - |\PATHlabels@| parses all <labels> of a <segment>. This sets - |\PATHlabelit@@| to the operation building the label in question. - Then some parsing stores the tokens ??c![<>(.5)] for each ??c![-] in - the <anchor> and finally passes control to the kernel <place> parser - with these tokens as the head. This then in turn calls |\PATHit@| - that parses <it> and applies the chosen operation. After the last we - continue with the accumulated subsegment actions. - -\DOCMODE( -\xylet@\PATHlabelit@@=\empty - -\xydef@\PATHlabels@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PATHlabels@}% - \else \ifx ^\next - \DN@##1{\xy@^{}\let\PATHlabelit@@=\PATHlabelabove@@ - \DNii@{}\xyFN@\PATHanchor@}% - \else \ifx _\next - \DN@##1{\xy@_{}\let\PATHlabelit@@=\PATHlabelbelow@@ - \DNii@{}\xyFN@\PATHanchor@}% - \else \ifx |\next - \DN@##1{\xy@|{}\let\PATHlabelit@@=\PATHlabelbreak@ - \DNii@{}\xyFN@\PATHanchor@}% - \else \let\next@=\PATHfinishsegments@ \fi\fi\fi\fi \next@} - -\xydef@\PATHanchor@{\begingroup \toks@={}\PATHanchor@i} - -\xydef@\PATHanchor@i{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PATHanchor@i}% - \else\addDASH@\ifx \next - \addDASH@\DN@{\expandafter\addtotoks@\expandafter{\PATHanchor@toks}% - \xyFN@\PATHanchor@i}% - \else - \DNii@##1{\endgroup\afterPLACE{\xyFN@\PATHit@}##1}% - \DN@{\expandafter\nextii@\expandafter{\the\toks@}}% - \fi\fi \next@} - -{\xyuncatcodes \gdef\next{<>(.5)}} -\xylet@\PATHanchor@toks=\next - -\xylet@\PATHitshapes@@=\empty - -\xydef@\PATHit@{\let\PATHitshape@@=\empty \xyFN@\PATHit@i} - -\xydef@\PATHit@i{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PATHit@i}% - \else \ifx *\next \DN@*##1##{\PATHlabelit@@{!C##1}}% - \else \addAT@\ifx\next \addAT@\DN@##1##{\PATHlabelit@@{\dir##1}}% - \else \ifx [\next \DN@[##1]{% - \expandafter\def\expandafter\PATHitshape@@\expandafter{\PATHitshape@@[##1]}% - \xyFN@\PATHit@i}% - \else \DN@{\PATHlabelit@@{}}% - \fi\fi\fi\fi \next@} -\DOCMODE) - - The individual operations bound to |\PATHlabelit@@| are discussed as - appropriate in the notes. - - After the last break and label we typeset the last piece of the - connection. - -\DOCMODE( -\xydef@\PATHfinishsegments@{% - \ifx\PATHlabelsextra@@\relax \expandafter\PATHfinishsegments@i - \else - \expandafter\PATHlabelsextra@@ \fi} - -\xydef@\PATHfinishsegments@i{% - \xy@@{\Clast@@}\the\toks@ \toks@={}% - \xy@@\setupDirection@ - \PATHpost@@ \PATHaction@/\PATHafter@@ - \PATHcontinue@@} -\DOCMODE) - - \BUG: The order of the breaks determines the order of the - subsegments. This is maybe a feature. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notes} - -\note??=[<action>] -% - An <action> can be either of the characters |=/|. The associated - <stuff> is saved and used to call -$$ - ??c![\PATHaction]<action>|{|<stuff>|}| -$$ - "before" and "after" each segment (including all <labels>) for - ??c![=] and ??c![/], respectively. - - The default ??c![\PATHaction] macro just expands to ``??c![\POS] - <stuff> |\relax|'' thus <stuff> should be of the form <pos> <decor>. - The user can redefine this---in fact the ??c![\ar] command described - in \S??[arrow] below is little more than a special ??c![\PATHaction] - command and a clever defaulting mechanism. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Here is the default ??c![\PATHaction]: - -\DOCMODE( -\xydef@\PATHaction@default#1#2{\xy@{PATHaction#1{#2}}{}\POS#2\relax} -\xylet@\PATHaction=\PATHaction@default -\DOCMODE) - - It is called using |\PATHaction@| to expand the action control - sequences back to their <stuff> first: - -\DOCMODE( -\xydef@\PATHaction@#1#2{\expandafter\PATHaction\expandafter#1\expandafter{#2}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[<labels> prefix for some segments] -% - It is possible to include a number of default <labels> "before" the - <labels> of the actual <segment> are interpreted, using - |~|<which>|{|<labels>|}|. The specified <which> determines for which - segments the indicated <labels> should be prefixed as follows: -$$ -\begin{tabular}{\otherbar c\otherbar l\otherbar} -\hline - <which> & applied to\dots \\ -\hline - ??c![<] & next segment only \\ - ??c![>] & last segment only \\ - ??c![=] & every segment \\ -\hline -\end{tabular} -$$ - (when several apply to the same segment they are inserted in the - sequence |<>+|). - - This is useful to draw connections with a `center marker' in - particular with arrows, \eg, the `mapsto' example explained below can - be changed into a `breakto' example: typing -% -\begin{code} -\xy*+{0}\PATH - ~={**\dir{-}} - ~>{|>*\dir{>}} - ~+{|*\dir{/}} - '(10,1)*+{1} '(20,-2)*+{2} (30,0)*+{3} -\endxy -\end{code} -\displaycode -\noindent\unskip -% - will typeset -$$ - \docode -$$ - Note, however, that what goes into |~+{|\dots|}| is <labels> and thus - not a <pos> -- it is not an action in the sense explained above. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[failure continuation] -% - Specifying |~{|<stuff>|}| will set the ``failure continuation'' to - <stuff>. This will be inserted when the last <segment> is - expected---it can even replace it or add more <segment>s, \ie, -% -\begin{code} -\xy *+{0} \PATH ~={**\dir{-}} - ~{'(20,-2)*+{2} (30,0)*+{3}} '(10,1)*+{1} -\endxy -\end{code} -\displaycode -% - is equivalent to -% -\begin{code} -\xy *+{0} \PATH ~={**\dir{-}} - '(10,1)*+{1} '(20,-2)*+{2} (30,0)*+{3} -\endxy -\end{code} -\displaycode -% - typesetting -$$ - \docode -$$ - because when |\endxy| is seen then the parser knows that the next - symbol is neither of the characters |~'`| and hence that the last - <segment> is to be expected. Instead, however, the failure - continuation is inserted and parsed, and the <path> is finished by - the inserted material. - - Failure continuations can be nested: -% -\begin{code} -\xy *+{0} \PATH ~={**\dir{-}} - ~{~{(30,0)*+{3}} - '(20,-2)*+{2}} '(10,1)*+{1} -\endxy -\end{code} -\displaycode -% - will also typeset the connected digits. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[straight segment] -% - A ``straight segment'' is interpreted as follows: -% -\begin{enumerate} -\item - First $p$ is set to the end object of the previous segment (for the - first segment this is $c$ just before the path command) and $c$ is - set to the <pos> starting the <segment>, and the current <slide> is - applied. -\item - Then the |=| and |<| "segment actions" are expanded (in that - sequence) and the |<| action is cleared. The resulting $p$ and $c$ - become the "start" and "end" object of the segment. -\item - Then all <labels> (starting with the ones defined as described in - note~??[<labels> prefix for some segments] below). -\end{enumerate} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - The code expanding the actions is part of the parsing above. -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[segment] -% - A "segment" is a part of a <path> between a previous and a new - "target" given as a <path-pos>: normally this is just a <pos> as - described in~\S??g[xy.doc:pos] but it can be changed to something - else by changing the control sequence ??c![\PATHafterPOS] to be - something other than ??c![\afterPOS]. - -\DOCMODE( -\xylet@\PATHafterPOS@default=\afterPOS -\xylet@\PATHafterPOS=\PATHafterPOS@default -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[turning segment]??=[1/4 turn]??=[explicit turn] -% - A "turning" segment is one that does not go all the way to the given - <pos> but only as far as required to make a turn towards it. The $c$ - is set to the actual turn object after a turning segment such that - subsequent turning or other segments will start from there, in - particular the last segment (which is always straight) can be used to - finish a winding line. - - What the turn looks like is determined by the <turn> form: -% -\begin{description} - -\item[<empty>] - Nothing between the ??c![`] and the <pos> is interpreted the same as - giving just the <diag> last used "out" of a turn. - -\item[<diag>] - Specifying a single <diag> $d$ is the same as specifying either of - the <cir>cles $d$??c![^] or $d$??c![_], depending on whether the specified - <pos> has its center `above' or `below' the line from $p$ in the - <diag>onal direction. - -\item[<cir>] - When a full explicit <cir>cle is available then the corresponding - <cir>cle object is placed such that its ingoing direction is a - continuation of a straight connection from $p$ and the outgoing - direction points such that a following straight (or last) segment - will connect it to $c$ (with the same slide). - -\end{description} -% - Here is an example using all forms of <turn>s: -% -\begin{code} -\xy <4pc,0pc>:(0,0) - *+\txt{base}="base" - \PATH ~={**\dir{-}?>*\dir{>}} - `l (-1,-1)*{A} ^a - ` (1,-1)*{B} ^b - `_ul (1, 0)*{C} ^c - `ul^l "base" ^d - "base" ^e -\endxy -\end{code} -$$ -\docode -$$ - was typeset by -% -\displaycode - - \BUG: Turns are only really resonable for paths that use straight - lines like the one above. - - \NOTE: Always write a valid <pos> after a <turn>, otherwise any - following ??c![^] or ??c![_] labels can confuse the parser. So if - you intend the |^r| in |`^r| to be a label then write |`,^r|, using a - dummy ??c![,] <pos>ition. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - We need to keep track of the current "in" and "out" <diag> - directions as well as the current radius. - -\DOCMODE( -\xydef@\PATHlastout@@{3} -\DOCMODE) - - The startup routine is just a selection of the two kinds of <turn>: - -\DOCMODE( -\xydef@\PATHturn@{\afterCIRorDIAG\PATHturn@cir\PATHturn@diag} -\DOCMODE) - - In both cases the trick is to set up a |\PATHinit@@| method that - typesets the right circle segment at the right location. The - simplest one is when there is a full <cir> available because that - should just be used directly. The only complication is that we - forbid $180^\circ$ turns: - -\DOCMODE( -\xydef@\PATHturn@cir{\toks@={\xy@@{% - \count@=\CIRin@@ \ifnum\count@<4\else\advance\count@-4\fi - \count@@=\CIRout@@ \ifnum\count@@<4\else\advance\count@@-4\fi - \ifnum\count@=\count@@ \xyerror@{<turn> cannot be half or full}{% -You asked for a <turn>ed segment with parallel in- and out-direction.^^J% -This is not allowed because it is not possible to position it uniquely.}\fi}}% - \edef\next@{{\CIRin@@}{\expandafter\noexpand\CIRorient@@}{\CIRout@@}}% - \expandafter\PATHturn@i\next@} -\DOCMODE) - - "Procedure for <diag> turns": Builds initial part of |\PATHinit@@| - that computes the missing "orient" and "out" from "in" and the $c$ - passed through the segment. This initial segment should set - "orient" as follows: -$$ - \xy <9mm,0mm>: <0mm,4mm>:: - ,(1,1) *+\dir{*}!D *!LU{p} - ,(0,0);(4,4)**\dir{-} - ?< *!/+\jot/\composite{{.}*!/+\jot/{.}*!/+2\jot/{.}} - ?> *!/-\jot/\composite{{.}*!/-\jot/{.}*!/-2\jot/{.}} - ?(.6)*!/1ex/\dir{>} *^!/-1ex/{|^|} *_!/-1ex/{|_|} - \endxy -$$ - \ie, as the sign of the inner product $\vec{pc} \cdot \hat{"in"}$, - and set "out" as for the <cir>cle "in" "orient". - -\DOCMODE( -\xydef@\PATHturn@diag{\toks@={\xy@@{% - \setupDirection@ \count@=\CIRin@@ \dimen@=\xydashl@ \ABfromdiag@ - \ifdim \sinDirection\A@>\cosDirection\B@ \def\CIRorient@@{\CIRacw@}% - \advance\count@\ifnum\count@<6 \tw@ \else -6\fi - \else \def\CIRorient@@{\CIRcw@}% - \advance\count@\ifnum\count@>\@ne -\tw@ \else 6\fi - \fi - \edef\CIRout@@{\the\count@}}}% - \edef\next@{{\CIRin@@}{}{}}% - \expandafter\PATHturn@i\next@} -\DOCMODE) - - |\PATHturn@i| is where |\PATHinit@@| is defined to do the following: -% -\begin{itemize} - -\item[{??_[turni1]}] - Setup the default "in", "orient", and "out" as defined by the call - from the above macros. Set "radius" parameter to the current - "turnradius" value. The commands in |\toks@| are run to do any - last-minute fixing of the defaults. - -\item[{??_[turni2]}] - The segment will leave $p$ in direction "in" and pretend to be - meeting $c$ in direction "out". Thus the center of the <cir>cle - object to be used for the actual <turn> object is located at the - intersection of the line through $p+"radius"\hat{v}_"in"$ in - direction $\vec{v}_"in"$ and the line through - $c+"radius"\hat{v}_"out"$ in direction $\vec{v}_"out"$. Here we - compute $p+R\hat{v}_"in"$ using $R="radius"$ if this is the initial - turn and $R="radius"\pm"slide"$ if it is a continuation turn. - -\item[{??_[turni2b]}] - Save $p$ and "base" for later. - -\item[{??_[turni3]}] - Compute $c+"radius"\hat{v}_"out"$ and use the kernel |\intersect@| - primitive to compute the turn circle segment center. - -\item[{??_[turni3b]}] - However, if the intersection point lies on the `wrong side' of $p$, - \ie, if $\vec{pc} \cdot "in"$ is negative, then we should not use the - intersection point but the point as close to $p$ as possible because - the connection from $p$ to the turn should at least have zero - length---in fact we set it to have 8sp length to make sure that a - sugsegment is typeset! - -\item[{??_[turni4]}] - Modify "radius" to use for the actual circle segment by the "slide": - either positively (for "orient" ??c![_]) or negatively (for "orient" - ??c![^]), and drop the circle segment (bypassing |\cir| to use the - internal settings from above). - -\item[{??_[turni5]}] - Store in |\PATHpostpos@@| the true end of the circle segment and code - to prevent the application of the "slide" for the start of the next - <segment>. - -\item[{??_[turni6]}] - Move $c$ to true beginning of the circle segment. - -\item[{??_[turni7]}] - Restore saved $p$ and "base", and slide $p$ finally. - -\end{itemize} - -\DOCMODE( -\xylet@\PATHpostpos@@=\empty - -\xydef@\PATHturn@i#1#2#3{% - \DN@##1{\def\PATHinit@@{\xy@@{% - \def\CIRin@@{#1}\def\CIRorient@@{#2}\def\CIRout@@{#3}%?*[turni1] - \ifnum\CIRin@@=8 \let\CIRin@@=\PATHlastout@@ \fi - \R@=\turnradius@ - ##1\relax}% - \xy@@{\count@=\CIRin@@ %?*[turni2] - \ifPATHomitslide@@ \dimen@=-\PATHslide@@ - \ABfromdiag@ \advance\X@p-\B@ \advance\Y@p\A@ \fi - \enter@{\pfromthep@ \basefromthebase@}}%?*[turni2b] - \xy@@{\dimen@=\expandafter\ifx\CIRorient@@\CIRcw@-\fi\R@ - \ABfromdiag@ \advance\X@p-\B@ \advance\Y@p\A@ - \X@origin=\X@p \Y@origin=\Y@p}%?*[turni3] - \xy@@{\dimen@=\xydashl@ \ABfromdiag@ \R@c=\A@ \U@c=\B@ - \count@=\CIRout@@ - \dimen@=\expandafter\ifx\CIRorient@@\CIRcw@-\fi\R@ - \ABfromdiag@ \advance\X@c-\B@ \advance\Y@c\A@ - \dimen@=\xydashl@ \X@p=\X@c \Y@p=\Y@c - \ABfromdiag@ \advance\X@p-\A@ \advance\Y@p-\B@ - \intersect@ - \count@=\CIRin@@ \dimen@=\p@ \ABfromdiag@}%?*[turni3b] - \xy@@{\edef\next@{\expandafter\removePT@\the\A@}% - \edef\nextii@{\expandafter\removePT@\the\B@}% - \A@=\X@c \advance\A@-\X@origin \B@=\Y@c \advance\B@-\Y@origin - \ifdim \next@\A@<-\nextii@\B@ - \dontleave@ \cfromp@ - \count@=\CIRin@@ \advance\count@\ifnum\count@<4 +4\else -4\fi - \dimen@=\xydashl@ \Directionfromdiag@ - \the\Edge@c\z@ - \count@=\CIRin@@ \dimen@=\expandafter\ifx\CIRorient@@\CIRcw@-\fi\R@ - \ABfromdiag@ \advance\X@c-\B@ \advance\Y@c\A@ - \dimen@=5sp \ABfromdiag@ \advance\X@c\A@ \advance\Y@c\B@ - \fi - \dimen@ii=\expandafter\ifx\CIRorient@@\CIRacw@-\fi\PATHslide@@ %?*[turni4] - \advance\R@\dimen@ii - \drop@\literal@{\hbox\bgroup\cir@i}}% - \xy@@{\X@p=\X@c \Y@p=\Y@c %?*[turni5] - \count@=\CIRout@@ - \dimen@=\expandafter\ifx\CIRorient@@\CIRacw@-\fi\R@c - \ABfromdiag@ \advance\X@p-\B@ \advance\Y@p\A@ - \edef\PATHpostpos@@{\X@c=\the\X@p \Y@c=\the\Y@p \noexpand\czeroEdge@ - \noexpand\PATHomitslide@@true}}% - \xy@@{\count@=\CIRin@@ %?*[turni6] - \dimen@=\expandafter\ifx\CIRorient@@\CIRacw@-\fi\R@c - \ABfromdiag@ \advance\X@c-\B@ \advance\Y@c\A@ \czeroEdge@}% - \xy@@{\leave@ %?*[turni7] - \count@=\CIRin@@ \dimen@=\PATHslide@@ - \ABfromdiag@ \advance\X@p-\B@ \advance\Y@p\A@ - \edef\PATHlastout@@{\CIRout@@}% - \count@=\CIRout@@ \dimen@=\xydashl@ \Directionfromdiag@}}}% - \expandafter\next@\expandafter{\the\toks@}\toks@={}% - \let\PATHextra@@=\empty - \def\PATHpost@@{\xy@@\PATHpostpos@@}% - \let\PATHlabelsextra@@=\relax - \xyFN@\PATHturn@ii} -\DOCMODE) - - The final macro takes care of the v2.6 format for changing - "turnradius": using ??c![/]<dimen> right after the <turn>. - -\DOCMODE( -\xydef@\PATHturn@ii{% - \ifx /\next - \DN@ /{\afterassignment\nextii@\dimen@=}% - \DNii@{% - \edef\next@{\noexpand\xy@@{\edef\noexpand\turnradius@{\the\dimen@}}}\next@ - \xy@@\pfromc@ \PATHafterPOS{\xyFN@\PATHsegment@}}% - \else \DN@{\xy@@\pfromc@ \PATHafterPOS{\xyFN@\PATHsegment@}}\fi - \next@} -\DOCMODE) - - This just stores a <diag> vector of the specified lenght in - $|<|A|,|B|>|$ thus acting as an optimised version of - |\Directionfromdiag@|: - -\DOCMODE( -\xydef@\ABfromdiag@{\ifcase\count@\relax - \A@=-.7071\dimen@ \B@=-.7071\dimen@ \or \A@=\z@ \B@=-\dimen@ - \or \A@=+.7071\dimen@ \B@=-.7071\dimen@ \or \A@=\dimen@ \B@=\z@ - \or \A@=+.7071\dimen@ \B@=+.7071\dimen@ \or \A@=\z@ \B@=+\dimen@ - \or \A@=-.7071\dimen@ \B@=+.7071\dimen@ \or \A@=-\dimen@ \B@=\z@ - \else\xybug@{impossible <diag>?}\fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The default used for "turnradius" can be set by the operation -% -\begin{defs1} - ??c![\turnradius] <add op> |{|<dimen>|}|\cr -\end{defs1} -\noindent\unskip -% - that works like the kernel ??c![\objectmargin] etc. commands; it defaults - to 10pt. - -\DOCMODE( -\xydef@\turnradius@{10pt} - -\xydef@\turnradius{\afterADDOP{\Addop@@\turnradius@}} -\DOCMODE) - -\begin{exercise} - Typeset -\begin{code} -\xy *+{A}*\cir<10pt>{}="me" - \PATH `ul^ur,"me" "me" |>*:(1,-.25)\dir{>} -\endxy -\end{code} -$$\docode$$ -% - using <turn>s. -% -\answertext{Here is what the author did:??c[\cir]} -\answercode -\answertext\displaycode -\answertext{The trick is getting the arrow head right: the |:| modifier to - the explicit {\tt\string\dir} <object> does that.} -\end{exercise} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[last segment] -% - The last segment is exactly as a straight one except that the ??c![>] - action (if any) is executed (and cleared) just after the ??c![<] - action. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - (The code implementing this is merged with the parsing.) -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[slide] -% - ``Sliding'' a segment means moving each of the $p,c$ objects in the - direction perpendicular to the current direction at each. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - (The code implementing this is merged with the parsing, using the - |\PATHslide@@| control sequence to hold the current slide.) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[label with <it>] -% - Labelling means that <it> is dropped relative to the current segment - using a ??c![?] <pos>ition. This thus depends on the user setting up - a connection with a ??c![**] <pos> as one of the actions---typically - the~??c![=] action is used for this (see note~??[straight segment] - for the details). The only difference between ??c![^] and ??c![_] is - that they shift the label in the ??c![^] respectively ??c![_] - direction; for straight segments it is placed in the ``superscript'' - or ``subscript'' position. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The operations used by |\PATHlabels@| to put labels above and below - (with ??c![^] and ??c![_]) are trivial, taking two arguments and - placing the label immediately; for convenience the |\drop| head are - named separately such that they may be redefined: - -\DOCMODE( -\xydef@\PATHlabelabove@#1#2{\droplabel@\belowDirection@{#1}{#2}% - \let\afteraliases@@=\empty \xyFN@\PATHlabelalias@} - -\xydef@\PATHlabelbelow@#1#2{\droplabel@\aboveDirection@{#1}{#2}% - \let\afteraliases@@=\empty \xyFN@\PATHlabelalias@} - -\xylet@\PATHlabelabove@@=\PATHlabelabove@ -\xylet@\PATHlabelbelow@@=\PATHlabelbelow@ - -\xydef@\droplabel@#1#2#3{\xy@@{\enter@\DirectionfromtheDirection@}% - \DN@{#2}\ifx\next@\empty - \expandafter\xy@@ix@\expandafter{\PATHitshape@@\labelbox{#3}}% - \else \expandafter\xy@@ix@\expandafter{\PATHitshape@@#2{#3}}\fi - \xy@@{\setbox\z@=\expandafter\object\the\toks9 % - \advance\L@c\labelmargin@ \advance\R@c\labelmargin@ - \advance\D@c\labelmargin@ \advance\U@c\labelmargin@ - \setboxz@h{\kern\labelmargin@\boxz@\kern\labelmargin@}% - \A@=\X@c \B@=\Y@c #1\xydashl@ \the\Edge@c\thr@@ - \advance\A@-\X@c \advance\B@-\Y@c \advance\X@c 2\A@ \advance\Y@c 2\B@ - \ht\z@=\U@c \dp\z@=\D@c \dimen@=\L@c \advance\dimen@\R@c \wd\z@=\dimen@ - \setbox\lastobjectbox@=\hbox{\X@c=\L@c \Y@c=\z@ \Drop@@}% - \drop@{\box\lastobjectbox@}{}% - \leave@}} - -\xydef@\PATHlabelbreak@#1#2{% - \DN@{#1}\ifx\next@\empty \drop\labelbox{#2}\else \drop#1{#2}\fi - \def\afteraliases@@{\xy@@\Cbreak@@}\xyFN@\PATHlabelalias@} -\DOCMODE) - - These emulate the effect of the <modifier>s |!C| - |+<|2"labelmargin"|>| <perp> |!P| <unperp> where <perp>,<unperp> are - |^|,|_| for |^|-labels and |_|,|^| for |_|-labels. The last hack - using |\lastobjectbox@| aims at both setting that right and setting - the label as an object (such that modifiers take effect) even though - its placement is peculiar. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Labels will be separated from the connection by the "label"\-"margin" - that you can set with the operation -% -\begin{defs1} - ??c![\labelmargin] <add op> |{|<dimen>|}| -\end{defs1} -\noindent\unskip -% - that works like the kernel ??c![\objectmargin] command; in fact - "labelmargin" defaults to use "objectmargin" if not set. - -\DOCMODE( -\xylet@\labelmargin@=\objectmargin@ - -\xydef@\labelmargin{\afterADDOP{\Addop@@\labelmargin@}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[break with <it>]??=[piece] -% - Breaking means to ``slice a hole'' in the connection and insert <it> - there. This is realized by typesetting the connection in question in - "subsegments", one leading to the break and one continuing after the - break as described in notes~??[<action>] and~??[straight segment]. - - The special control sequence ??c![\hole] is provided to make it easy to - make an empty break. - -\DOCMODE( -\xydef@\hole{\hbox{\dimen@=\objectmargin@ \kern2\dimen@ - \vrule height\dimen@ depth\dimen@ width\z@}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Subsegments are typeset using the `|\Cbreak@@|' method. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[default label] -% - Unless <it> is a full-fledged <object> (by using the ??c![*] form), - it is typeset using a ??c![\labelbox] object (initially similar to - ??c![\objectbox] of basic \Xy-pic but using ??c![\labelstyle] for the - style). - - \REMARK: You can only omit the |{}|s around single letters, digits, - and control sequences. - -\DOCMODE( -\xylet@\labelstyle=\scriptstyle -\xydef@\labelbox#1{\hbox{$\m@th\labelstyle{#1}$}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[name for label object] -% - A label is an object like any other in the \Xy-picture. Inserting an - <alias> ??c![=]|"|<id>|"| saves the label object as |"|<id>|"| for - later reference. - -\begin{exercise} - Typeset -% -\begin{code} -\xy(0,0) - \ar @{-->} (30,7) ^A="a" - \POS(10,12)*+\txt{label} \ar "a" -\endxy -\end{code} -$$\docode$$ -% -\answercode -\answertext{The author did \displaycode} -\end{exercise} - -\DOCMODE( -\xydef@\PATHlabelalias@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PATHlabelalias@}% - \else \addEQ@\ifx \next - \addEQ@\DN@"##1"{\savealias@{##1}\xyFN@\PATHlabelalias@}% - \else \DN@{\afteraliases@@\PATHlabels@}\fi\fi \next@} - -\xylet@\afteraliases@@=\empty - -%{\xyuncatcodes \gdef\next#1{\POS!C="#1"\relax}} -\xydef@\savealias@#1{\xy@@{\enter@\cfromthec@ - \advance\X@c-\L@c \advance\L@c\R@c \L@c=.5\L@c \R@c=\L@c \advance\X@c\L@c - \advance\Y@c-\D@c \advance\D@c\U@c \D@c=.5\D@c \U@c=\D@c \advance\Y@c\D@c - \idfromc@{#1}\leave@}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Arrows} -??=[arrow] - -\begin{figure*}[tb] -\vfil -\begin{syntax} -% - \multispan{3}{{\tt\string\ar} <arrow> <path>\hfil} - & make <arrow> along <path> -\cr -\noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} -% - <arrow> - &\iss & <form>\star - & <arrow> has the <form>s -\cr -\noalign{\smallskip} -% - <form> - &\iss & ??c![@] <variant> - & use <variant> of arrow -\cr - &\orr & ??c![@] <variant> |{| <tip> |}| - & ??!^[build arrow] using <variant> of a standard stem and <tip> for - the head -\cr - &\orr & ??c![@] <variant> |{| <tip> <conn> <tip> |}| - & ??!^[build arrow] using <variant> of <tip>, <conn>, <tip> - as arrow tail, stem, and head (in that order) -\cr - &\orr & ??c![@] <connchar> - & change stem to the indicated <connchar> -\cr - &\orr & ??c![@!] - & dash the arrow stem by doubling it -\cr - &\orr & ??c![@/] <direction> <dist> |/| - & ??!^[curve] arrow the <dist>ance towards <direction> -\cr - &\orr & ??c![@(] <direction> |,| <direction> |)| - & curve to fit with ??!^[in-out directions] -\cr - &\orr & ??c![@`] |{| <control point list> |}| - & ??!^[curve setup] with explicit control points -\cr - &\orr & |@[| <shape> |]| - & add |[|<shape>|]| to ??!^[object <modifier>s] for all objects -\cr - &\orr & ??c![@*] |{| <modifier>\star\ |}| - & add ??!^[object <modifier>s] for all objects -\cr - &\orr & ??c![@<] <dimen> |>| - & ??!^[slide arrow] the <dimen> -\cr - &\orr & ??c![|] <anchor> <it> - & break each segment at <anchor> with <it> -\cr - &\orr & ??c![^] <anchor> <it> \orr\ ??c![_] <anchor> <it> - & label each segment at <anchor> with <it> -\cr - &\orr & ??c![@?] - & ??!^[reverse meaning of above and below] -\cr -\noalign{\smallskip} -% - <variant> - &\iss & <empty> \orr\ ??c![^] \orr\ ??c![_] & \cr - & & \orr\ ??c![0] \orr\ ??c![1] \orr\ ??c![2] \orr\ ??c![3] - & <variant>: plain, above, below, double, or triple -\cr -\noalign{\smallskip} -% - <tip> - &\iss & <tipchar>\star - & directional named as the sequence of <tipchar>s -\cr - &\orr & <dir> - & ??!^[any <dir>ectional] -\cr -\noalign{\smallskip} -% - <tipchar> - &\iss & |<|\orr|>|\orr|(|\orr|)|\orr||||\orr|'|\orr|`|\orr|+|\orr|/| - & recognised tip characters -\cr - &\orr & <letter> \orr\ <space> - & more tip characters -\cr -\noalign{\smallskip} -% - <conn> - &\iss & <connchar>\star - & directional named as the sequence of <connchar>s -\cr - &\orr & <dir> - & ??!^[any <dir>ectional] -\cr -\noalign{\smallskip} -% - <connchar> - &\iss & |-|\orr|.|\orr|~|\orr|=|\orr|:| - & recognised connector characters -\cr -\end{syntax} -\caption{\protect<arrow>s.}??=[f.arrow] -\vfil -\end{figure*} - -\DOCMODE( -\message{\string\ar,} -\DOCMODE) - - Arrows are paths with a particularly easy syntax for setting up - arrows with "tail", "stem", and "head" in the style - of~\cite{R92:HowTPDAT}. This is provided by a single <decor>ation - the syntax of which is described in figure~??[f.arrow] (with the - added convention that a raised `\star' means 0 or more repetitions of - the preceeding nonterminal). - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Parsing:} - - The ??c![\ar] command effectively translates the <arrow> into a - ??c![\PATH] command that initialises the tail, stem, and head of it as - required to get the desired <arrow>. - - The translation of the <arrow> is saved in the following variables: - -\DOCMODE( -\xylet@\arvariant@@=\empty -\xylet@\arstemprefix@@=\empty -\xylet@\artail@@=\empty -\xylet@\arstem@@=\empty -\xylet@\arhead@@=\empty -\xylet@\armodifiers@@=\empty -\xylet@\arlabels@@=\empty -\xylet@\arafterPOS@@=\empty -\xylet@\arinit@@=\empty -\xylet@\arexit@@=\empty - -\xylet@\arcomponent@@=\relax -\xylet@\arcomponenttype@@=\relax - -\xylet@\afterar@@=\relax -\DOCMODE) - - ??c![\ar] stores the defaults; it loads an intermediate command to - avoid problems when used as first command in compiled matrix - entry\dots - -\DOCMODE( -\xydef@\ar{\relax\arSAFE} - -\xydef@\arSAFE{% - \let\arvariant@@=\empty - \def\arstemprefix@@{\dir}% - \edef\artail@@{\arvariant@@{}}% - \edef\arstem@@{\arvariant@@{-}}% - \edef\arhead@@{\arvariant@@{>}}% - \def\armodifiers@@{}% - \def\arafterPOS@@{}% - \def\arlabels@@{}% - \def\arinit@@{}% - \def\arexit@@{}% - \let\PATHlabelabove@@=\PATHlabelabove@ - \let\PATHlabelbelow@@=\PATHlabelbelow@ - \xyFN@\ar@} -\DOCMODE) - - |\ar@| is where we parse the sequence of <form>s and continue with - typesetting the arrow afterwards. - -\DOCMODE( -\xydef@\ar@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\ar@}% - \else \addAT@\ifx\next \addAT@\DN@{\xyFN@\ar@form}% - \else\ifx |\next - \DN@ |{\ar@anchor|}% - \else\ifx ^\next - \DN@ ^{\ar@anchor^}% - \else\ifx _\next - \DN@ _{\ar@anchor_}% - \else \let\next@=\ar@x \fi\fi\fi\fi\fi \next@} -\DOCMODE) - - \NOTE: Makes use of the "new compilation principle" to parse a - <place> vacuously\dots - -\DOCMODE( -\xydef@\addtoarinit@#1{% - \expandafter\def\expandafter\arinit@@\expandafter{\arinit@@ #1}} - -\xydef@\addtoarlabels@#1{% - \expandafter\def\expandafter\arlabels@@\expandafter{\arlabels@@ #1}} - -\xydef@\ar@anchor#1{\begingroup - \def\PATHlabelit@@##1##2{% - \DN@{##1}\ifx\next@\empty - \DN@####1{\expandafter\endgroup\expandafter\addtoarlabels@ - \expandafter{\the\toks@####1{##2}}\xyFN@\ar@}% - \else - \DN@####1{\expandafter\endgroup\expandafter\addtoarlabels@ - \expandafter{\the\toks@*!C####1##1{##2}}\xyFN@\ar@}\fi - \expandafter\next@\expandafter{\PATHitshape@@}}% - \toks@={#1}% - \def\xy@##1##2{\addtotoks@{##1}}\change@oxy@\xy@ \let\xy@@ix@=\eat@ - \DNii@{}\xyFN@\PATHanchor@} -\DOCMODE) - - |\ar@form| handles one <form>: - -\DOCMODE( -\xydef@\ar@form{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\ar@form}% - \else\ifx ^\next \DN@ ^{\xyFN@\ar@style}\edef\arvariant@@{\string^}% - \else\ifx _\next \DN@ _{\xyFN@\ar@style}\edef\arvariant@@{\string_}% - \else\ifx 0\next \DN@ 0{\xyFN@\ar@style}\def\arvariant@@{0}% - \else\ifx 1\next \DN@ 1{\xyFN@\ar@style}\def\arvariant@@{1}% - \else\ifx 2\next \DN@ 2{\xyFN@\ar@style}\def\arvariant@@{2}% - \else\ifx 3\next \DN@ 3{\xyFN@\ar@style}\def\arvariant@@{3}% - \else\ifx \bgroup\next \let\next@=\ar@style - \else\ifx [\next \DN@[##1]{\ar@modifiers{[##1]}}%] - \else\ifx *\next \DN@ *{\ar@modifiers}% - \else\addLT@\ifx\next \let\next@=\ar@slide - \else\ifx /\next \let\next@=\ar@curveslash - \else\ifx (\next \let\next@=\ar@curveinout %) - \else\addRQ@\ifx\next \addRQ@\DN@{\ar@curve@}% - \else\addLQ@\ifx\next \addLQ@\DN@{\xyFN@\ar@curve}% - \else\addDASH@\ifx\next \addDASH@\DN@{\defarstem@-\xyFN@\ar@}% - \else\addEQ@\ifx\next \addEQ@\DN@{\def\arvariant@@{2}\defarstem@-\xyFN@\ar@}% - \else\addDOT@\ifx\next \addDOT@\DN@{\defarstem@.\xyFN@\ar@}% - \else\ifx :\next \DN@:{\def\arvariant@@{2}\defarstem@.\xyFN@\ar@}% - \else\ifx ~\next \DN@~{\defarstem@~\xyFN@\ar@}% - \else\ifx !\next \DN@!{\dasharstem@\xyFN@\ar@}% - \else\ifx ?\next \DN@?{\ar@upsidedown\xyFN@\ar@}% - \else \let\next@=\ar@error - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\defarstem@#1{\edef\arstem@@{\arvariant@@{\string#1}}% - \DNii@##1##{\next@}% - \edef\next@##1{\def\noexpand\artail@@{\arvariant@@{##1}}}% - \expandafter\nextii@\artail@@ - \edef\next@##1{\def\noexpand\arhead@@{\arvariant@@{##1}}}% - \expandafter\nextii@\arhead@@} - -\xydef@\dasharstem@{% - \DN@##1##{\nextii@{##1}}\DNii@##1##2{\def\arstem@@{##1{##2##2}}}% - \expandafter\next@\arstem@@} - -\xydef@\ar@error#1{\xyerror@{Illegal <form>ation (\meaning\next)}{}% - \xyFN@\ar@} -\DOCMODE) - - |\ar@i| sets the remaining defaults and then allows |\ar@ii|-|iv| to - pick up any tail, stem, and head using a {|$|} as terminator.%$ - -\DOCMODE( -\xydef@\ar@style{% - \ifx \bgroup\next \def\artail@@{{}}% - \edef\arstem@@{\arvariant@@{-}}\edef\arhead@@{\arvariant@@{>}}% - \expandafter\ar@i - \else \resetvariant@\artail@@ \resetvariant@\arstem@@ \resetvariant@\arhead@@ - \expandafter\xyFN@\expandafter\ar@ \fi} - -\xydef@\resetvariant@#1{% - \DN@##1##{\DN@{##1}\ifx\next@\empty - \DN@{\expandafter\nextii@\expandafter{\arvariant@@}}% - \else \DN@{\nextii@{##1}}\fi \next@}% - \DNii@##1##2{\def#1{##1{##2}}}% - \expandafter\next@#1} - -\xydef@\ar@i#1{\DN@{#1}% - \ifx\next@\empty \edef\arstem@@{\arvariant@@{}}\edef\arhead@@{\arvariant@@{}}% - \DN@{\xyFN@\ar@}% - \else - \let\arcomponent@@=\ar@ii \let\arcomponenttype@@=\artip@ - \DN@{\xyFN@\arcomponent@#1$}% - \fi \next@} - -\xydef@\ar@ii{\ifx $\next \let\next@=\ar@iv - \else \expandafter\def\expandafter\artail@@\expandafter{\the\toks@}% - \let\arcomponent@@=\ar@iii \let\arcomponenttype@@=\arconn@ - \DN@{\xyFN@\arcomponent@}\fi \next@} - -\xydef@\ar@iii{% - \expandafter\def\expandafter\arstem@@\expandafter{\the\toks@}% - \resetvariant@\artail@@ - \let\arcomponent@@=\ar@iv \let\arcomponenttype@@=\artip@ - \xyFN@\arcomponent@} - -\xydef@\ar@iv{% - \expandafter\def\expandafter\arhead@@\expandafter{\the\toks@}% - \ifx $\next \DN@ ${\xyFN@\ar@}% - \else \xyerror@{illegal <arrow>: \meaning\next\space not valid}{}\fi \next@} -\DOCMODE) - - |\ar@x| is the final macro that passes control to the <path> - interpreter. It is a bit clumsy because we must pass the right - character tokens; it could definitely be more efficient by calling - <path> internals directly\dots - -\DOCMODE( -\xydef@\ar@x{% - \let\arsavedPATHafterPOS@@=\PATHafterPOS \let\PATHafterPOS=\arafterPOS@ - \toks@={\ar@PATH}% - \expandafter\addtotoks@\expandafter{\expandafter{\artail@@}}%#1 - \expandafter\addtotoks@\expandafter{\expandafter{\arstem@@}}%#2 - \expandafter\addtotoks@\expandafter{\expandafter{\arstemprefix@@}}%#3 - \expandafter\addtotoks@\expandafter{\expandafter{\arhead@@}}%#4 - \expandafter\addtotoks@\expandafter{\expandafter{\armodifiers@@}}%#5 - \expandafter\addtotoks@\expandafter{\expandafter{\arinit@@}}%#6 - \expandafter\addtotoks@\expandafter{\expandafter{\arexit@@}}%#7 - \expandafter\addtotoks@\expandafter{\expandafter{\arlabels@@}}%#8 - \addtotoks@{\afterar@@}%#9 - \expandafter\DNii@\expandafter{\the\toks@}\toks@={}% -% -%{\let\x=\expandafter \x\x\x\DNii@\x\x\x{\nextii@}\W@{RUN: \codeof\nextii@}}% -% - \nextii@} - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{% - \def\next{% - \afterPATH{#9}% - ~={#6\preconnect#5#3#2}% - ~/{#7}% - ~<{|<*h#5\dir#1}% - ~>{|>*h#5\dir#4}% - ~+{#8}% - }% - \next}} - -\xylet@\ar@PATH=\next - -\xydef@\arafterPOS@#1{% - \arsavedPATHafterPOS@@{\let\PATHafterPOS=\arsavedPATHafterPOS@@ - \DN@{#1}\expandafter\next@\arafterPOS@@}}% - -\xylet@\arsavedPATHafterPOS@@=\relax -\DOCMODE) - - <tip>s and <conn>ectors are interpreted by these that leave any - <variant> in |\toks@ii| and the sequence of <tipchar>s or <connchar>s - characters in |\toks@|: - - The work is really done in |\arcomponent@| that builds |\toks@| - with something conforming to the |\arcomponenttype@@| and then - passes control to |\arcomponent@@|: - -\DOCMODE( -\xydef@\arcomponent@{% - \ifx ^\next \toks@ii={^}\DN@ ^{\xyFN@\arcomponent@i}% - \else\ifx _\next \toks@ii={_}\DN@ _{\xyFN@\arcomponent@i}% - \else\ifx 1\next \toks@ii={1}\DN@ 1{\xyFN@\arcomponent@i}% - \else\ifx 2\next \toks@ii={2}\DN@ 2{\xyFN@\arcomponent@i}% - \else\ifx 3\next \toks@ii={3}\DN@ 3{\xyFN@\arcomponent@i}% - \else\ifx \bgroup\next \expandafter\toks@ii\expandafter{\arvariant@@}% - \let\next@=\arcomponent@i - \else\ifx *\next \DN@*##1##{\arcomponent@ii{##1}}% - \else \expandafter\toks@ii\expandafter{\arvariant@@}\toks@={}% - \let\next@=\arcomponenttype@@ - \fi\fi\fi\fi\fi\fi\fi - \next@} - -\xydef@\arcomponent@i#1{\toks@={#1}\arcomponent@x} - -\xydef@\arcomponent@ii#1#2{\toks@={*#1{#2}}\xyFN@\arcomponent@@} - -\xydef@\artip@{% - \addGT@\ifx\next \addGT@\addtotoks@ \addGT@\DN@{\xyFN@\artip@}% - \else\addLT@\ifx\next \addLT@\addtotoks@ \addLT@\DN@{\xyFN@\artip@}% - \else\ifx (\next \addtotoks@(\DN@({\xyFN@\artip@}% - \else\ifx )\next \addtotoks@)\DN@){\xyFN@\artip@}% - \else\ifx |\next \addtotoks@|\DN@|{\xyFN@\artip@}% - \else\addLQ@\ifx\next \addLQ@\addtotoks@ \addLQ@\DN@{\xyFN@\artip@}% - \else\addRQ@\ifx\next \addRQ@\addtotoks@ \addRQ@\DN@{\xyFN@\artip@}% - \else\addPLUS@\ifx \next \addPLUS@\addtotoks@ \addPLUS@\DN@{\xyFN@\artip@}% - \else\ifx /\next \addtotoks@/\DN@/{\xyFN@\artip@}% - \else\ifcat A\noexpand\next \DN@##1{\addtotoks@{##1}\xyFN@\artip@}% - \else\ifx\space@\next \addtotoks@{ }\expandafter\DN@\space{\xyFN@\artip@}% - \else \let\next@=\arcomponent@x - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\arconn@{% - \addDASH@\ifx\next \addDASH@\addtotoks@ \addDASH@\DN@{\xyFN@\arconn@}% - \else\addEQ@\ifx\next \addEQ@\addtotoks@ \addEQ@\DN@{\xyFN@\arconn@}% - \ifx\arvariant@@\empty \def\arvariant@@{2}\fi - \else\addDOT@\ifx\next \addDOT@\addtotoks@ \addDOT@\DN@{\xyFN@\arconn@}% - \else\ifx :\next \addtotoks@:\DN@:{\xyFN@\arconn@}% - \ifx\arvariant@@\empty \def\arvariant@@{2}\fi - \else\ifx ~\next \addtotoks@~\DN@~{\xyFN@\arconn@}% - \else \let\next@=\arcomponent@x - \fi\fi\fi\fi\fi \next@} - -\xydef@\arcomponent@x{% - \DN@##1{\toks@=\expandafter{\the\toks@ii{##1}}}% - \expandafter\next@\expandafter{\the\toks@}% - \xyFN@\arcomponent@@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notescontd} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[build arrow] - - Building an <arrow> is simply using the specified directionals (using - ??c![\dir] of~\S??g[xy.doc:objectlib.directionals]) to build a path: - the first <tip> becomes the "??w![arrow tail]" of the arrow, the - <conn>ection in the middle becomes the "??w![arrow stem]", and the - second <tip> becomes the "??w![arrow head]". If a <variant> is given - before the |{| then that variant ??c![\dir] is used for all three. - For example, -% -\begin{code} -\xy\ar @^{(->} (20,7)\endxy -\end{code} -\displaycode -% - typesets -% -$$\docode$$ - -\begin{exercise} - Typeset these arrows: -% -\begin{code} -\xy ;<1pc,0pc>: - \POS(0,0)*+{A} - \ar +(-2,3)*+{A'}*\cir{} - \ar @2 +( 0,3)*+{A''}*\cir{} - \ar @3 +( 2,3)*+{A'''}*\cir{} - \POS(6,0)*+{B} - \ar @1{||.>>} +(-2,3)*+{B'}*\cir{} - \ar @2{||.>>} +( 0,3)*+{B''}*\cir{} - \ar @3{||.>>} +( 2,3)*+{B'''}*\cir{} -\endxy -\end{code} -$$\docode$$ -% -\answertext{Here is the entire \Xy-picture of the exercise:} -\answercode -\answertext\displaycode -\answertext{The first batch use the default |{->}| specification.} -\end{exercise} - - The above is a flexible scheme when used in conjunction with the - kernel ??c![\newdir] to define all sorts of arrowheads and -tails. For - example, -% -\begin{code} -\newdir{|>}{!/4.5pt/\dir{|} - *:(1,-.2)\dir^{>} - *:(1,+.2)\dir_{>}} -\end{code} -\displaycode -\gdocode -% - defines a new arrow tip that makes -% -\begin{code} -\xy (0,0)*+{A} - \ar @{=|>} (20,3)*+{B} -\endxy -\end{code} -\displaycode -% - typeset -% -$$\docode$$ -% - Notice that the fact that the directional uses only <tipchar> - characters means that it blends naturally with the existing tips. - -\begin{exercise} - Often tips used as `tails' have their ink on the wrong side of the - point where they are placed. Fortunately space is also a <tipchar> - so we can define |\dir{ >}| to generate a `tail' arrow. Do this such - that -% -\begin{code} -\xy (0,0)*+{A}="a", (20,3)*+{B}="b" - \ar @{>->} "a";"b" < 2pt> - \ar @{ >->} "a";"b" <-2pt> -\endxy -\end{code} -\displaycode -% - typesets -% -$$ - \newdir{ >}{{}*!/-5pt/\dir{>}} - \docode -$$ -% -\begin{code} -\newdir{ >}{{}*!/-5pt/\dir{>}} -\end{code} -\answercode -\answertext{The author used \displaycode} -\end{exercise} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[any <dir>ectional] - - Specifying a <dir> as a <tip> or <conn> means that ??c![\dir]<dir> is - used for that <tip> or <conn>. For example, -% -\begin{code} -\xy\ar @{<^{|}>} (20,7)\endxy -\end{code} -\displaycode -% - typesets -% -$$\docode$$ -% - When using this you must specify a |{}| dummy <dir>ectional in order - to ignore one of the tail, stem, or tip components, \eg, -% -\begin{code} -\xy\ar @{{}{+}>} (20,7)\endxy -\end{code} -\displaycode -% - typesets -% -$$\docode$$ -% - In particular ??c![*]<object> is a <dir> so any <object> can be used - for either of the tail, stem, or head component: -% -\begin{code} -\xy\ar @{*{x}*{y}*{z}} (20,7)\endxy -\end{code} -\displaycode -% - typesets -% -$$\docode$$ -% - \NOTE: A |*| introduces an <object> whereas the directional - `$\xy*+!<0pt,-\jot>\dir{*}\endxy$' is typeset by the <dir> |{*}|. - -\begin{exercise} - Typeset -\begin{code} -\xy - \ar @{>>*\composite{\dir{x}*\dir{+}}<<} - (20,7) -\endxy -\end{code} -$$\docode$$ - using only one |\ar| command. -% -\answertext{The author used} -\answercode -\answertext\displaycode -\end{exercise} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[curve] -% - "Curving" the arrow using $??c![/]d\ell|/|$, where $d$ is a - <direction> and $\ell$ a <dimen>sion, makes the stem a curve which is - similar to a straight line but has had it's center point `dragged' - the distance~$\ell$ in~$d$: -% -\begin{code} -\xy - \POS (0,10) *\cir<2pt>{} ="a" - , (20,-10)*\cir<2pt>{} ="b" - \POS"a" \ar @/^1ex/ "b"|\uparrow - \POS"a" \ar @/_1ex/ "b"|\downarrow -% - \POS (20,10) *\cir<2pt>{} ="a" - , (40,-10)*\cir<2pt>{} ="b" - \POS"a" \ar @/u1ex/ "b"|u - \POS"a" \ar @/d1ex/ "b"|d -\endxy -\end{code} -$$\docode$$ -% - was typeset by -% -\displaycode -% - $\ell$ defaults to |.5pc| if omitted. - - This is really just a shorthand for curving using the more general - form described next: $??c![@/]d\ell|/|$ is the same as |@`{{**{} - ?+/|$d~2\ell~$|/}}| which makes the (quadratic) curve pass through - the point defined by the <pos> |**{} ?+/|$d\ell$|/|. - -\DOCMODE( -\xydef@\ar@curveslash/#1/{\expandafter\ar@curve@\ar@slashing{#1}} - -\xydef@\ar@slashing#1{{\xy@{**{} ?+/#1/+/#1/ @+c}{\setupDirection@ - \vfromslide@{#1}% - \X@c=2\X@c \advance\X@c\X@p \advance\X@c.5\d@X - \Y@c=2\Y@c \advance\Y@c\Y@p \advance\Y@c.5\d@Y - \czeroEdge@ - \spushc@}}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[in-out directions] -% - Using ??c![@(]$d_2$|,|$d_2$|)| where $d_1,d_2$ are simple - <direction>s (as described in note~??g[xy.doc:<direction>] except it - is not possible to use |()|s) will typeset the arrow curved such that - it leaves the source in direction $d_1$ and enters the target from - direction~$d_2$. - -\begin{exercise} - Typeset -% -\begin{code} -\xy *{\circ}="b" \ar@(ur,ul) c - \ar@{.>}@(dr,ul) (20,0)*{\bullet} -\endxy -\end{code} -$$\docode$$ -\answercode -\answertext{The author used \displaycode\noindent Note that it is essential - that the curving specification comes after the arrow style.} -\end{exercise} - -\DOCMODE( -{\xyuncatcodes \catcode`\#=6 % - \gdef\next(#1,#2){{+/#1 3pc/,p+/#2 3pc/}}} -\xylet@\ar@curveinout@=\next - -\xydef@\ar@curveinout{\expandafter\ar@curve@load\ar@curveinout@} -\DOCMODE) - - \TODO: implement this efficiently and properly get rid of the no-|()| - restriction! - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[curve setup] -% - The final curve form is the most general one: |@`{|<control point - lists>|}| sets the control points explicitly to the ones in the - <control point lists> (where they should be separated by~|,|). See - the curve extension described in~\S??g[:curve] for the way the - control points are used; when the control points list is parsed $p$ - is the source and $c$ the target of the arrow. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Curving simply uses ??c![\crvi] instead of ??c![\dir]. The - only tricky bit is to put the control points on the stack - right. - -\DOCMODE( -\xydef@\ar@curve{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\ar@curve}%gobble spaces - \else\ifx \bgroup\next \let\next@=\ar@curve@load - \else\ifx "\next \DN@"##1"{\ar@curve@{"##1"}}% - \else \xyerror@{@= <form> must be followed by \string"<id>\string" or - {<control point list>}}{}% - \fi\fi\fi \next@} - -{\xyuncatcodes \gdef\next#1#2{\def#1##1{#2{;@={##1}}}}} -\next\ar@curve@load\ar@curve@ - -\xydef@\ar@curve@#1{\curve@check - \setcurvearinit@{#1}\setcurvearexit@\arexit@@ - \def\arstemprefix@@{\crvi}\xyFN@\ar@} - -{\xyuncatcodes \gdef\next#1{\save @(,#1\restore}} -\xylet@\setcurvearinit@i=\next -\xydef@\setcurvearinit@#1{% - \expandafter\addtoarinit@\expandafter{\setcurvearinit@i{#1}}} - -{\xyuncatcodes \gdef\next#1{\def#1{\POS @i @) }}} -\xylet@\setcurvearexit@=\next - -\xydef@\curve@check{% - \xyerror@{Forms @/.../, @(...), and @`{...}, only available when curve - extension loaded}{}} -\xywithoption{curve}{\let\curve@check=\relax} -\DOCMODE) - - \TODO: The parsing is trivial and should be extended to include more - exotic control point forms. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[object <modifier>s] -% - |@[|\dots|]| and |@*{|\dots|}| formations define what object - <modifier>s should be used when building objects that are part of the - arrow. This is mostly useful in conjunction with extensions that - define additional |[|<shape>|]| modifiers, \eg, if a |[red]| - <modifier> changes the colour of an object to red then |@[red]| - will make the entire arrow red; similarly if it is desired to make - and entire arrow invisible then |@*{i}| can be used. - -\DOCMODE( -\xydef@\ar@modifiers#1{% - \expandafter\def\expandafter\armodifiers@@\expandafter{\armodifiers@@#1}% - \xyFN@\ar@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[slide arrow] -% - ??c![@<]$D$|>| will slide (each segment of) the arrow the dimension $D$ - as explained in note~??[slide]. - -\DOCMODE( -{\xyuncatcodes \catcode`\#=6 \catcode`\@=11 % - \gdef\next<#1>{\def\arafterPOS@@{<#1>}\xyFN@\ar@}} -\xylet@\ar@slide=\next -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[reverse meaning of above and below] -% - ??c![@?] reverse the meaning of `above' and `below' for this particular - arrow. - -\DOCMODE( -\xydef@\ar@upsidedown{\let\next=\PATHlabelabove@@ - \let\PATHlabelabove@@=\PATHlabelbelow@@ \let\PATHlabelbelow@@=\next} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notescontd} - - All the features of <path>s described above are available for arrows. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection*{End \& log} - -\DOCMODE( -\xyendinput - -% $Log: xyarrow.doc,v $ -% Revision 3.5 1997/05/28 13:05:01 krisrose -% Fixed missing breaks bug. -% -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 10:25:18 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% NEW for version 2.7 based of path and arrow code in xypic.doc 2.6.1.1. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs how we are formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xycmactex.doc b/Master/texmf-dist/source/generic/xypic/xycmactex.doc deleted file mode 100644 index 5e156789e39..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xycmactex.doc +++ /dev/null @@ -1,71 +0,0 @@ -%% $Id: xycmactex.doc,v 3.3 1996/12/18 08:54:25 ross Exp $ -%% -%% Xy-pic ``CMacTeX'' 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{cmactex}{CMacTeX driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Thomas Kiffe's {CMac\TeX} application uses \dvips\ as its dvi-driver. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE( -\xyrequire{dvips} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xycmactex.doc,v $ -% Revision 3.3 1996/12/18 08:54:25 ross -% no changes -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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: diff --git a/Master/texmf-dist/source/generic/xypic/xycmtip.doc b/Master/texmf-dist/source/generic/xypic/xycmtip.doc deleted file mode 100644 index 5f337fb6c15..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xycmtip.doc +++ /dev/null @@ -1,93 +0,0 @@ -%% $Id: xycmtip.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -%% -%% Xy-pic ``Computer Modern tips'' extension. -%% Copyright (c) 1992-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% This file is part of the Xy-pic package for graphs and diagrams in TeX. -%% 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{cmtip}{Computer Modern tip extension}{\stripRCS$Revision: 3.3 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This extension is a dummy that merely loads the `tips' extension and - defines the obsolete ??c![\UseComputerModernTips] and - ??c![\NoComputerModernTips] selection commands. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\subsection{Fonts} - - Load `tips'; the default is |cm| at |10| point so all is well. - -\DOCMODE( -\xyrequire{tips}\xycatcodes -\DOCMODE) - - Define the obsolete selection commands. - -\DOCMODE( -\xydef@\UseComputerModernTips{\SelectTips{cm}{10}\UseTips} -\xydef@\NoComputerModernTips{\NoTips} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{End \& log} - -\DOCMODE( -\xyendinput - -% $Log: xycmtip.doc,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.6 1993/10/21 20:36:09 kris -% NEW file to go in version 2.7! -% -% Extracted from xypic.doc 2.6.1.1. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs how we are formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xycolor.doc b/Master/texmf-dist/source/generic/xypic/xycolor.doc deleted file mode 100644 index dfbb4d05b4f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xycolor.doc +++ /dev/null @@ -1,349 +0,0 @@ -%% $Id: xycolor.doc,v 3.3 1996/12/19 03:50:08 ross Exp $ -%% -%% Xy-pic ``Colour extension'' option. -%% Copyright (c) 1993-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{color}{Colour extension}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This extension provides the ability to request that any object be displayed -in a particular colour. - -It requires a suitable `driver' option to provide the necessary |\special| -commands to implement the effects. Thus -$$ -\xy - *+\txt<.8\hsize>{Using this extension will have no effect on the output - unless used with a dvi-driver that explicitly supports it.} - *\frm{-} -\endxy -$$ - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -All effects defined in the |color| extension can be implemented using most -\PS\ <driver>s, and some non-\PS\ ones, loaded using |\xyoption{xyps}|. -This file provides `generic' code which is known to work correctly with -most drivers. For driver-specific variations, consult the appropriate -<driver> file. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%\paragraph*{Colour} -Colours are specified as a <shape> modifier which gives the name of the -colour requested. It is applied to the whole of the current <object> -whether this be text, an \Xy-pic line, curve or arrow-tip, or a composite -object such as a matrix or the complete picture. However some DVI drivers -may not be able to support the colour in all of these cases. -% -\begin{defs} -|[|<colour name>|]| & use named colour\cr -\noalign{\smallskip} -??c![\newxycolor]|{|<name>|}{|<code>|}|\kern-20pt &\kern25pt - define colour \cr -??c![\UseCrayolaColors] & load colour names \cr -\end{defs} -% -If the DVI-driver cannot support colour then a request for colour -only produces a warning message in the log file. After two such -messages subsequent requests are ignored completely. - -\DOCMODE( -\xydef@\xycolorwarning@@{\xycolormessage@ - \gdef\xycolorwarning@{\xycolormessage@ - \xywarning@{...no further colour warnings will be given.}% - \global\let\xycolorwarning@=\relax }} -\xylet@\xycolorwarning@=\xycolorwarning@@ - -\xydef@\xycolormessage@{% - \xywarning@{Current driver does not support colour.}}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -There are two methods, perhaps used simultaneously, for handling requests -for colour. The |\xylocalColor@| is the normal method, colouring whatever -objects \TeX\ typesets from fonts. The more specialized |\xycolor@| is used -with the \PS\ back-end. This is necessary since some <driver>s assume that -the current colour should be `black' when the contents of a |\special| is -interpreted, e.g. within \PS. - -Thus a <driver> which supports both colour and \PS\ must define a method -to handle |\xylocalColor@| but should leave alone |\xycolor@|. The latter -method will be adjusted appropriately when a \PS\ <driver> is installed. - -\DOCMODE( -\xydef@\xyNoColor@#1{} -\xylet@\xycolor@@=\xyNoColor@ -\xydef@\xyNoColor@@#1#2{\xycolorwarning@} - -\xydef@\xycolor@{\xycolor@@} -\xylet@\xylocalColor@=\xyNoColor@@ - -\xydef@\UnloadColor@{% - \let\xylocalColor@=\xyNoColor@@ -% \let\xycolor@=\xyNoColor@ - \let\xycolor@@=\xyNoColor@ - \let\xycolorwarning@=\xycolorwarning@@ } -\xylet@\UnloadColor@@=\UnloadColor@ - -\xyaddunsupport{color}{\UnloadColor@@\relax} -\DOCMODE) - -This next macro is to inherit a default colour from the surrounding -document, perhaps using one already defined by \LaTeXe - -\DOCMODE( -\ifx\current@color\undefined \xydef@\xybasecolor@{}% -\else \def\xybasecolor@{\current@color}\fi - -%\xydef@\xycmath@{\hbox\bgroup\dimen@=.55ex \checkxycolor@ \xyinside@} -%\xydef@\xycnomath@{\hbox\bgroup\dimen@=\z@ \checkxycolor@ \xyinside@} - -%\xydef@\checkxycolor@{\ifx\xybasecolor@\empty\else -% \expandafter\imposexycolor@\fi} -%\xydef@\imposexycolor@{\xylocalColor@} -\DOCMODE) - -A commonly used method is to maintain a colour-stack. -The following commands are for use with such a setup, however they should -only be called from code installed from a <driver>-file. Different drivers -may do things differently; e.g. |dvips| uses a single |\special| via: -|\def\xycolor@push@@#1{\special{color push #1}}|, but Textures uses two: -|\xydef@\xycolor@push#1{\special{color push}\special{color #1}}|. -Since the colour-stack idea was proposed by Tomas Rokicki,the |dvips| method -is the default behaviour. - -\DOCMODE( -\xydef@\xystackcolor@{\bgroup \DN@##1##2{\egroup}% - \ifInvisible@\else\ifHidden@\else\DNii@{\no@@}\ifx\nextii@\Connect@@ - \else\DN@{\xystackcolor@i}\fi\fi\fi \next@ } - -\xydef@\xystackcolor@i#1#2{\checkXyStyle@ - \DN@{#2}\ifx\next@\empty - \def\tmp@##1{\DN@{\xycolor@push{#1}##1\xycolor@pop}}% - \else\def\tmp@##1{\DN@{\xycolor@push{#2 #1}##1\xycolor@pop}}\fi - \toks@={\egroup \let\xy@style@=\relax \def\Drop@@}% - \expandafter\tmp@\expandafter{\Drop@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\next@}\def\Connect@@}% - \expandafter\tmp@\expandafter{\Connect@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\next@}}% - \the\toks@ }% - -\xydef@\xycolor@push@@#1{\special{color push #1}} -\xydef@\xycolor@pop{\special{color pop}} -\xylet@\xycolor@push=\xycolor@push@@ -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Named colours and colour models} - -New colour names are created with |\newxycolor|, taking two arguments. -Firstly a name for the colour is given, followed by the code which will -ultimately be passed to the output device in order to specify the colour. -If the current driver cannot support colour, or grayscale shading, then -the new name will be recognised, but ignored during typesetting. - -\DOCMODE( -\xydef@\newxycolor#1#2{\newxyColor{#1}{}{}{#2}{}} -\xydef@\newxyColor#1#2#3#4{\newxycolor@{#1}{#2}{#3}{#4}{}} -\DOCMODE) - -For \PS\ devices, the \Xy-ps \PS\ dictionary defines operators |rgb|, -|cmyk| and |gray| corresponding to the standard RGB and CMYK colour models -and grayscale shadings. -Colours and shades are described as: -$r\;g\;b$ |rgb| or $c\;m\;y\;k$ |cmyk| or $s$ |gray|, where the parameters -are numbers in the range $0\le r,g,b,c,m,y,k,s\le 1$. -The operators link to the built-in colour models - or, in the case of |cmyk| for earlier versions of \PS, give a simple -emulation in terms of the RGB model. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Existing color names can be overridden using |\newxycolor@#1#2\relax|. - -\DOCMODE( -\xydef@\newxycolor@#1#2#3#4#5{% - \expandafter\let\expandafter\next@\csname shape [#1]\endcsname - \ifx\next@\relax - \DN@{#4}\ifx\next@\empty - \DN@{#2}\ifx\next@\empty - \DN@{\newxystyle{#1}{\xylocalColor@{}{#3}\xycolor@{#3}}}% - \else - \DN@{\newxystyle{#1}{\xylocalColor@{#2}{#3}\xycolor@{#2 #3}}}% - \fi - \else\DN@{#2#3}\ifx\next@\empty - \DN@{\newxystyle{#1}{\xylocalColor@{#4}{}\xycolor@{#4}}}% - \else - \DN@{\newxystyle{#1}{\xylocalColor@{#2}{#3}\xycolor@{#4}}}% - \fi \fi - \else \def\tmp@{\relax}\DNii@{#5}% - \ifx\nextii@\tmp@ - \DN@{#4}\ifx\next@\empty - \DN@{#2}\ifx\next@\empty - \DN@{\newxystyle{#1}{\xylocalColor@{}{#3}\xycolor@{#3}}}% - \else - \DN@{\newxystyle{#1}{\xylocalColor@{#2}{#3}\xycolor@{#2 #3}}}% - \fi - \else - \DN@{#2#3}\ifx\next@\empty - \DN@{\newxystyle{#1}{\xylocalColor@{#4}{}\xycolor@{#4}}}% - \else - \DN@{\newxystyle{#1}{\xylocalColor@{#2}{#3}\xycolor@{#4}}}% - \fi \fi - \else\DN@{}\fi\fi \next@\relax} -\DOCMODE) - -Standard colour names which are defined automatically correspond -to the three primaries |red|, |green|, |blue| and their complements -|cyan|, |magenta|, |yellow| as well as three extreme grayscale shades -|black|, |white|, |gray|. - -\DOCMODE( -\xydef@\xystandardcolors@{% -% \newxycolor@{black}{1.}{gray}{}\relax % Textures reverses gray-scales -% \newxycolor@{white}{0.}{gray}{}\relax % -% \newxycolor@{black}{0.}{gray}{}\relax % This is normal for PostScript -% \newxycolor@{white}{1.}{gray}{}\relax % - \newxycolor@{black}{0. 0. 0.}{rgb}{}\relax % avoid the hassles. - \newxycolor@{white}{1. 1. 1.}{rgb}{}\relax % - \newxycolor@{gray}{.5}{gray}{}\relax - \newxycolor@{grey}{.5}{gray}{}\relax - \newxycolor@{red}{1. 0. 0.}{rgb}{}\relax - \newxycolor@{green}{0. 1. 0.}{rgb}{}\relax - \newxycolor@{blue}{0. 0. 1.}{rgb}{}\relax - \newxycolor@{cyan}{0. 1. 1.}{rgb}{}\relax - \newxycolor@{magenta}{1. 0. 1.}{rgb}{}\relax - \newxycolor@{yellow}{1. 1. 0.}{rgb}{}\relax - \xyuncatcodes } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\NOTE: The driver file must call |\xystandardcolors@| before these colours -become accessible. This is to allow any <driver>-specific definitions -to be active when these colours are defined. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Saving colour and styles} -% -When styles are saved using |[=|<word>|]|, see~??c[[=], -then the current colour setting (if any) is saved also. -Subsequent use of |[|<word>|]| recovers the colour and accompanying -line-style settings. - -Further colour names are defined by the command |\UseCrayolaColours| that -loads the |crayon| option, in which more colours are defined. Consult the -file |xyps-col.doc| for the colours and their specifications in the RGB -or CMYK models. - -\DOCMODE( -\xydef@\UseCrayolaColors{\xyrequire{crayon}\xyuncatcodes}% -% \xyinputorelse@{xyps-col}{\xyerror@{Could not load xyps-col}{}}} -\DOCMODE) - -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\subparagraph*{xyps-col.tex:} -\subparagraph*{xycrayon.tex:} -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\subsubsection{{\tt xyps-col.doc}:} -\subsubsection{{\tt xycrayon.doc}:} -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\inputdoc!{xyps-col.doc} -\inputdoc!{xycrayon.doc} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{\PS\ colour} -% -When \PS\ driver support is available, the method for handling colour -within diagrams may be different. The reason for this is that some -dvi-drivers reset the colour to black before placing the contents of the -|\special|. To counter this, the \PS\ code maintains its own colour-stack. -Support is established within a separate file |xyps-c.tex|, loaded from -the appropriate <driver>-files. - -\DOCMODE( -\xydef@\xyBEcolorcheck@{\ifx\xycolor@@\xyNoColor@\else - \xywarning@{PostScript colour support should be OK.}\fi }% - -\xywithoption{ps}{% - \xyinputorelse@{xyps-c}{\xyerror@{Could not load xyps-c}{}}}% - \xycatcodes -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xycolor.doc,v $ -% Revision 3.3 1996/12/19 03:50:08 ross -% Maintenance release. -% -% Revision 3.3 1996/12/18 08:56:49 ross -% minor updates -% -% Revision 3.2 1995/09/19 18:20:20 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.14 1995/07/06 02:56:02 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:04:51 ross -% Ready for release of v3. -% -% Revision 2.10 1994/06/15 12:46:03 ross -% Second release 3beta. -% Colour and line style saving works; label colouring bug fixed. -% -% Revision 2.9 1994/06/09 14:39:49 ross -% Release 3beta. -% -% NEW for version 2.9 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xycrayon.doc b/Master/texmf-dist/source/generic/xypic/xycrayon.doc deleted file mode 100644 index 4be9d637d29..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xycrayon.doc +++ /dev/null @@ -1,82 +0,0 @@ -%% $Id: xycrayon.doc,v 3.3 1996/12/18 08:58:16 ross Exp $ -%% -%% Xy-pic ``Crayola colours'' PostScript backend support. -%% 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{crayon}{Crayola Colours}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This option provides the command to install definitions for the 68 colours -recognised by name by Tomas Rokicki's |dvips| driver~\cite{dvips}. -This command must be called from a <driver>-file which can actually -support the colours. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\DOCHEADER - -The colour definitions themselves are in the file |xyps-col.tex|. -They are not loaded directly here since it is not known which <driver> is -to be used. Different <driver>s may redefine the |\xynewcolor@| macro -to set the colour by name or colour-model. - -\DOCMODE( -\xydef@\installCrayolaColors@{% - \xyinputorelse@{xyps-col}{\xyerror@{Could not load Crayola colours}{}}% - \let\installCrayolaColors@=\relax - \xyuncatcodes } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xyendinput - -% $Log: xycrayon.doc,v $ -% Revision 3.3 1996/12/18 08:58:16 ross -% cosmetic updates -% -% 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/05 07:58:43 ross -% Ready for v3 release? -% -# -% NEW for version 3.1 by Ross Moore 1995/03/18. -% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xycurve.doc b/Master/texmf-dist/source/generic/xypic/xycurve.doc deleted file mode 100644 index 0c14745e7c0..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xycurve.doc +++ /dev/null @@ -1,4920 +0,0 @@ -%% $Id: xycurve.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Curves and Splines'' extension. -%% 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{curve}{Curve and Spline extension}{\stripRCS$Revision: 3.7 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This option provides \Xy-pic with the ability to typeset spline curves -by constructing curved connections using arbitrary directional objects -and by encircling objects similarly. "Warning": Using curves can be -quite a strain on \TeX's memory; you should therefore limit the length -and number of curves used on a single page. Memory use is less when -combined with a backend capable of producing its own curves; \eg, the -\PS\ backend). - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Curved connections} -??=[curved connections] - -\DOCMODE( -\message{curve,} -\DOCMODE) - - Simple ways to specify curves in \Xy-pic are as follows: - \begin{defs} -|**\crv{|<poslist>|}| & curved connection \cr -|**\crvs{|<dir>|}| & get <poslist> from the stack \cr -|\curve{|<poslist>|}| & as a <decor>ation \cr - \end{defs} -\noindent\unskip - in which <poslist> is a list of valid <pos>itions. - The decoration form |\curve| is just an abbreviation for |\connect\crv|. - As usual, the current $p$ and $c$ - are used as the start and finish of the connection, respectively. - Within <poslist> the <pos>itions are separated by |&|. -A full description of the syntax for |\crv| is given in figure~??[f.curve]. - -\begin{code} -\xy (0,20)*[o]+{A};(60,0)*[o]+{B}="B" -**\crv{}\POS?(.4)*_+!UR{0},"B" -**\crv{(30,30)}\POS?*^+!D{1},"B" -**\crv{(20,40)&(40,40)} \POS?*^+!D{2},"B" -**\crv{(10,20)&(30,20)&(50,-20)&(60,-10)} -\POS?*+^!UR{4} \endxy -\end{code} -$$\docode$$\goodbreak\goodbreak - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -We need a counter to track the number of control points, (i.e. the number of -<pos>s in <poslist>) and provide a macro to read it. -Also a token list which will store the vital information for -later use, to allow curved connections to work properly. - -\DOCMODE( -\xynew@{count}\crv@cnt@ -\xydef@\xynumctrlpts@{\the\crv@cnt@} -\xynew@{toks}\crvpts@ -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -If <poslist> is empty a straight connection is computed. -When the length of <poslist> is one or two then the curve is uniquely -determined as a single-segment B\'ezier quadratic or cubic spline. -The tangents at $p$ and $c$ are along the lines connecting -with the adjacent control point. -With three or more <pos>itions a cubic B-spline construction is used. -B\'ezier cubic segments are calculated from the given control points. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\setcurve@{% - \edef\xysplineparams@{% - \expandafter\noexpand\csname params@\endcsname}% - \edef\xysplineedges@{% - \expandafter\noexpand\csname edges@\endcsname}% - \edef\xycrvcnt@{% - \expandafter\noexpand\csname crvcnt@\endcsname}% - \expandafter\edef\xycrvcnt@{\number\crv@cnt@}% - \ifcase\crv@cnt@ - \expandafter\xycvxhull@\or - \expandafter\xyquadbezier@\or - \expandafter\xycubicbezier@\or - \expandafter\xybspline@iii\or - \expandafter\xybspline@iv\else - \expandafter\xybspline@ - \fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The previous picture was typeset using: -\begin{code} -\xy (0,20)*+{A};(60,0)*+{B} -**\crv{} -**\crv{(30,30)} -**\crv{(20,40)&(40,40)} -**\crv{(10,20)&(30,20)&(50,-20)&(60,-10)} -\endxy -\end{code} -\displaycode -\noindent except for the labels, which denote the number of entries in the -<poslist>. (Extending this code to include the labels is set below as -an exercise). - -\begin{code} -\xy (0,20)*[o]+{A};(60,0)*[o]+{B}="B" -**\crv{} \POS?(.4)*_+!UR{0},"B" -**\crv{(30,30)} \POS?*^+!D{1},"B" -**\crv{(20,40)&(40,40)} \POS?*^+!D{2},"B" -**\crv{(10,20)&(30,20)&(50,-20)&(60,-10)} -\POS?*+^!UR{4} \endxy -\end{code} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The |?|-operator of \S??g[xy.doc:pos] (note~??g[xy.doc:<place>]) - is used to find arbitrary <place>s along a curve in the usual way. - -\begin{exercise} -Extend the code given for the curves in the previous picture -so as to add the labels giving the number of control points. -\answertext{This is the code that was actually used:} -\answercode -\answertext\displaycode -\end{exercise} - - Using |?| will set the current direction to be tangential at that - <place>, and one can <slide> specified distances - along the curve from a found <place> using the |?|\dots|/|<dimen>|/| - notation: - -\begin{code} -\xy (0,20)*+{A};(60,0)*+{B} -**\crv{(10,20)&(30,20)&(50,-20)&(60,-10)} - ?<*\dir{<} ?>*\dir{>} - ?(.65)*{\oplus} *!LD!/^-5pt/{x} - ?(.65)/12pt/*{\oplus} *!LD!/^-5pt/{x'} - ?(.28)*=0{\otimes}-/40pt/*+{Q}="q" - +/100pt/*+{P};"q" **\dir{-} -\endxy -\end{code} - -$$\docode$$ - -\begin{exercise} -Suggest code to produce something like the above picture; -the spline curve is the same as in the previous picture. -"Hints": The line is 140pt long and touches $0.28$ of the way from -$A$ to $B$ and the $x$ is 0.65 of the way from $A$ to $B$. -\answertext{This is the code that was used to typeset the picture:} -\answercode -\answertext\displaycode -\end{exercise} - - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The positions in <poslist> specify -{\em control points\/} which determine the initial and final directions -of the curve---leaving $p$ and arriving at $c$---and how the curve -behaves in between, using standard spline constructions. -In general, control points need not lie upon the actual curve. - -A natural spline parameter varies in the interval $[0,1]$ monotonically -along the curve from $p$ to $c$. This is used to specify <place>s along -the curve, however there is no easy relation to arc-length. -Generally the parameter varies more rapidly where the curvature is -greatest. The following diagram illustrates this effect for a cubic -spline of two segments (3 control points). - -\begin{code} -\def\ssz#1{\hbox{$_{^{#1}}$}} -\xy (0,0)*+{A};(30,-10)*+{B}="B",**\dir{-}, -"B"**\crv{(5,20)&(20,25)&(35,20)} - ?<(0)*\dir{<}="a" ?>(1)*\dir{>}="h" - ?(.1)*\dir{<}="b" ?(.9)*\dir{>}="i" - ?(.2)*\dir{<}="c" ?(.8)*\dir{>}="j" - ?(.3)*\dir{<}="d" ?(.7)*\dir{>}="k" - ?(.4)*\dir{<}="e" ?(.6)*\dir{>}="l" - ?(.5)*\dir{|}="f", - "a"*!RC\txt{\ssz{(\lt)}}; - "h"*!LC\txt{\ssz{\;(\gt)}},**\dir{.}, - "b"*!RD{\ssz{.1}}; - "i"*!L{\ssz{\;.9}},**\dir{-}, - "c"*!RD{\ssz{.2}}; - "j"*!L{\ssz{\;.8}},**\dir{-}, - "d"*!RD{\ssz{.3}}; - "k"*!L{\ssz{\;.7}},**\dir{-}, - "e"*!RD{\ssz{.4}}; - "l"*!LD{\ssz{.6}},**\dir{-}, - "f"*!D!/^-3pt/{\ssz{.5}} -\endxy -\end{code} -$$\docode$$ - -\begin{exercise} -Write code to produce a picture such as the one above. -("Hint": Save the locations of places along the curve for later -use with straight connections.) -\answertext{Here is the code that was used to typeset the picture:} -\answercode -\answertext\displaycode -\end{exercise} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -To have the same <pos> occuring as a multiple control point simply use -a delimiter, which leaves the <pos> unchanged. Thus -|\curve{|<pos>|&}| uses a cubic spline, whereas |\curve{|<pos>|}| is -quadratic. - -Repeating the same control point three times in succession results in -straight segments to that control point. Using the default styles this -is an expensive way to get straight lines, but it allows for extra -effects with other styles. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Curve Objects:} - -At present the syntax is supported for using a |\curve| object only -as a decoration, constructed from a |\crv| object used as a connection. - -\DOCMODE( -\xydef@\curve{\connect\crv} -\DOCMODE) - -The more general |\crv| object currently works as a connection. -In future this object-type will be extended to allow closed curves as -the boundaries of objects. - -\DOCMODE( -\xydef@\crv#1#{\hbox \bgroup \crvresetbreaks@ \initshape@ - \def\pure@crv{\crv@saveStyles@}\crv@{#1}} - -\xydef@\crv@#1#2{% - \DN@{#1}\ifx\empty\next@ - \DN@{\def\afterCURVEaction@{}\parsecurve@\xycurve@@}% - \else\DN@{\parseCURVE@#1\parsecurve@\curveSTYLE@}\fi - \next@ #2\@endcurve\endcrv@ } - -\xydef@\curveSTYLE@{\xycurve@@}% default style -\xydef@\afterCURVEaction@{}% default after-curve action -\xydef@\@endcurve{}% -\xydef@\endcrv@@{\endcrv@\POS}% -\xydef@\pure@crv{\relax} -\DOCMODE) - - The |\@endcurve| inserted here ensures that subsequent parsing - with |\checkendcurve@| (see below) will terminate cleanly. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The |\crvs| object has restricted functionality with choice of styles and -is always used for curves only. -It has a single braced argument which can be used to set curve styles. -Its main use is for re-typesetting different portions of the same curve, -for example the subsegments of a curved arrow/path segment. - -This is done by first examinining |\bstartPLACE@|. -If |\relax| or undefined, then the curve is set using |\@crv@| to -decide the style. If |\bstartPLACE@| is |\empty| then the curve is fully -processed as a connection but nothing is actually typeset; this is used -by curved arrows where the curve is first set as ``invisible'' before -breaks and labels are processed. -When |\bstartPLACE@| contains a number, normally within the range 0 to 1, -this is interpreted as a <place> along a curved connection that has already -been established. No typesetting may occur before this <place>. - -In this case the control point information is discarded since the curve -can be recovered using |\splinereset@|. The current $p$ and $c$ are no -longer the endpoints of the curve but are <pos>itions along the curve -between which the typesetting should occur. -The value of |\bstartPLACE@| is typically a <place> along the curve -which is within the <pos> at $p$. It is used to help locate the edge of -this <pos> where typesetting should commence. -Similarly |\bendPLACE@| is typically a <place> along the curve -which is within the <pos> at $c$. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xywarnifdefined\crv@normaltemplate -\xywarnifdefined\crv@othertemplate -\xywarnifdefined\crv@specialtemplate@@ -{\xyuncatcodes \catcode`\@=11 \catcode`\#=6 - \gdef\crv@normaltemplate#1{{}{~**#1\xy@@crvaddstack@}} - \gdef\crv@othertemplate#1{{}{~*=<2\jot>{}~**#1\xy@@crvaddstack@}} - \gdef\crv@specialtemplate@@#1{{}{~**\dir{#1}\xy@@crvaddstack@}} -} - -\xydef@\crvs#1#{\hbox \bgroup \def\pure@crv{\relax}\crvs@{#1}}% -\xydef@\crvi#1#{\hbox \bgroup \def\pure@crv{\relax}\invisbreaks@ \crvs@{#1}}% - -\xydef@\crvs@#1{\DN@{\initshape@ \@crv@{#1}}% - \def\crv@defaultshape{-}% - \ifx\bstartPLACE@\relax \else - \ifx\bstartPLACE@\empty \Invisible@true \else -\splinetrace@{bstartPLACE@=\bstartPLACE@, bendPLACE@=\bendPLACE@}% - \DN@{\let\xy@@crvaddstack@=\xy@@samecurve@ - \let\saveshape@=\savesame@ - \let\savectrlptsnum@=\relax - \let\startxycurve@=\recovercurve@ - \crv@cnt@=\xycrvptsnum@\relax \@crv@{#1}}% - \fi \fi \next@ } - - - -\xydef@\xy@@samecurve@{\xyFN@\checkendcurve@} -\xydef@\savesame@{\egroup } -\xydef@\recovercurve@{% - \crv@cnt@=\xycrvptsnum@ \splinereset@ \recovercv@end - \ifx\bendPLACE@\relax \def\bendPLACE@{1}\fi - \ifdim\zz@\R@c \ifdim\zz@\L@c \ifdim\zz@\D@c \ifdim\zz@\U@c - \Edge@c={\zeroEdge}\fi\fi\fi\fi - \edef\cv@end{\cfromthec@}\edef\cv@start{\cfromthep@}} - -\xydef@\recovercv@end{\count@=\ptsnum@\relax\advance\count@\@ne - \edef\tmp@{\the\count@}\csname cv@\tmp@\endcsname}% - -\xydef@\crvSTYLE@@{} -\expandafter\xydef@\expandafter\crv@defaultshape\expandafter{\addDASH@{}} -\xydef@\crv@noobject{\Invisible@true} - -\xydef@\@crv@#1#2{\DN@{#1#2}% - \ifx\next@\empty \edef\next@{\crv@defaultshape}% - \ifx\bstartPLACE@\empty \xdef\crvSTYLE@@{{\crv@defaultshape}}\fi - \else - \ifx\bstartPLACE@\empty \gdef\crvSTYLE@@{#1{#2}}\fi - \fi - \ifx\next@\empty \crv@noobject \DN@{\crv@{}{\xy@@crvaddstack@}}% - \else\def\tmp@{-}\ifx\next@\tmp@ \DN@{\crv@{}{\xy@@crvaddstack@}}% - \else\def\tmp@{=}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@normaltemplate{\dir{=}}}% - \else\def\tmp@{2-}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@normaltemplate{\dir{2.}}}% - \else\def\tmp@{3-}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@normaltemplate{\dir{3.}}}% - \else\def\tmp@{--}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@specialtemplate@{--}}% - \else\def\tmp@{==}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@normaltemplate{\dir2{--}}}% - \else\def\tmp@{2--}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@normaltemplate{\dir2{--}}}% - \else\def\tmp@{3--}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@normaltemplate{\dir3{--}}}% - \else\def\tmp@{.}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@specialtemplate@{.}}% - \else\def\tmp@{:}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@normaltemplate{\dir{:}}}% - \else\def\tmp@{2.}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@normaltemplate{\dir{:}}}% - \else\def\tmp@{..}\ifx\next@\tmp@ - \DN@{\expandafter\crv@\crv@specialtemplate@{.}}% - \else - \DN@{\expandafter\crv@\crv@othertemplate{\dir#1{#2}}}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xylet@\crv@specialtemplate@=\crv@specialtemplate@@ -\xydef@\crv@special#1{} -\DOCMODE) - -\BUG: this should use a |\Step@@| method to get the spacing for dotting; this -will eliminate the need for templates\dots - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{figure*}[tp] -\begin{syntax} -% - \multispan{3}{{\tt\string\curve}<modifier>|{|<curve-object><poslist>|}|\hfil} - & construct curved connection -\cr -% -\noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} -% - <modifier> - &\iss & <empty> - & zero or more modifiers possible; default is |~C| -\cr - &\orr & |~|<curve-option> <modifier> - & set <curve-option> -\cr -% -\noalign{\smallskip} -% - <curve-option> - &\iss & |p|\orr|P|\orr|l|\orr|L|\orr|c|\orr|C| - & ??!^[show only] control points (|p|=points), - joined by lines (|l|=lines), or curve only (|c|=curve) -\cr -% - &\orr & |pc|\orr|pC|\orr|Pc|\orr|PC| - & show ??!^[control points] ??!^[and curve] -\cr -% - &\orr & |lc|\orr|lC|\orr|Lc|\orr|LC| - & show ??!^[lines joining] control points ??!^[and curve] -\cr -% - &\orr & |cC| - & plot curve twice, with and without specified formatting -\cr -% -\noalign{\smallskip} -% - <curve-object> - &\iss & <empty> - & use the appropriate default style -\cr -% - & \orr & |~*|<object> <curve-object> - & specify the ??!^[``drop'' object] and ??!^[maybe more] -\cr -% - & \orr & |~**|<object> <curve-object> - & specify ??!^[``connect'' object] and ??!^[maybe more] -\cr -% -\noalign{\smallskip} -% - <poslist> - &\iss & <empty> \orr\ <pos> <delim> <poslist>\kern-15pt - & \kern20pt list of positions for control points -\cr -% - &\orr & |~@| \orr\ |~@| <delim> <poslist> - & add the current ??!^[stack] to the control points -\cr -% -\noalign{\smallskip} -% - <delim> - & \iss & {\tt\&} - & allowable delimiter -\cr -% -\end{syntax} -\caption{Syntax for curves.} -??=[f.curve] -\vfil -\end{figure*} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Parsing:} - -Two separate parsers are required: one for |\curve...|, the other for the -contents of |{...}|. - -Set |\curveSTYLE@| to be the default of |\xycurve@@| then examine -the following tokens to see if this must be changed. - - Set |\curveSTYLE@| to be the default of |\xycurve@@| then examine - the following tokens to see if this must be changed. - -"Procedure": If the first token of |#1| (from |\crv@|) is |~| then - a letter should follow, determining how to set the style. - If instead it is an active control sequence then issue - a warning message, but let it do its thing anyway. - However |\parsecurve@| is a normal thing to encounter, - so no warning is required. - Currently a single letter without the |~| will be recognised, - but two-letter combinations definitely need the |~|. - -\DOCMODE( -\xydef@\parseCURVE@{\def\curveSTYLE@{\xycurve@@}\def\afterCURVEaction@{}% - \xyFN@\parseCURVE@@} -\xydef@\parseCURVE@@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\parseCURVE@@}% gobble spaces - \else\ifx ~\next \DN@ ~{\xy@~{}\xyFN@\setcurveSTYLE@@}% - \else\ifx\parsecurve@\next\DN@{}% - \else\ifcat\active\noexpand\next\DN@{\xyactive@Warning}% - \else\ifcat a\noexpand\next\DN@##1{\xytilde@Warning\setcurveSTYLE@{##1}% - \xyFN@\parseCURVE@@}% - \else\DN@{}\fi\fi\fi\fi\fi \next@ }% -\DOCMODE) - - Options are normally specified using |~|. - Sometimes this can be safely omitted; if such a case is - encountered then a warning message is issued advising to use |~|. - This nicety may be removed in future versions. - -\DOCMODE( -\xydef@\xyactive@Warning{\xywarning@{expandable control sequences should - not be here, results are unpredictable in diagrams.}}% (2) -\xydef@\xytilde@Warning{Please use ~ to set curve style.}% (3a) -\DOCMODE) - - Examine the next token to see if it determines a curve style. - Currently only |p|, |l| and |c| are recognised, along with - the uppercase variants |P|, |L| and |C|. - When one of these letters is encountered, set |\curveSTYLE@| - and keep examining tokens with |\setafterCURVEaction@|. - -\DOCMODE( -\xydef@\setcurveSTYLE@#1{\xyFN@\setcurveSTYLE@@#1} -\xydef@\setcurveSTYLE@@{% - \ifx\next p\def\curveSTYLE@{\xyc@trlpts@@}% - \DN@ p{\xyFN@\setafterCURVEaction@}% - \else\ifx\next P\def\curveSTYLE@{\xyc@trlpts@}% - \DN@ P{\xyFN@\setafterCURVEaction@}% - \else\ifx\next l\def\curveSTYLE@{\xyc@vxhull@@}% - \DN@ l{\xyFN@\setafterCURVEaction@}% - \else\ifx\next L\def\curveSTYLE@{\xyc@vxhull@}% - \DN@ L{\xyFN@\setafterCURVEaction@}% - \else\ifx\next c\def\curveSTYLE@{\xycurve@@}% - \DN@ c{\xyFN@\setafterCURVEaction@}% - \else\ifx\next C\def\curveSTYLE@{\xycurve@@}% - \DN@ C{\xyFN@\setafterCURVEaction@}% - \else \DN@##1{\xywarning@{unknown curve style ##1}\xyFN@\parseCURVE@@}% - \fi\fi\fi\fi\fi\fi \next@ } -\DOCMODE) - - |\setafterCURVEaction@| examines tokens to see if a 2-letter - combination is being specified; e.g. |pc|, |lC|, etc. - Alternatively another |~| can set a new specification. - -\DOCMODE( -\xydef@\setafterCURVEaction@{% - \ifx\next~\DN@~{\xyFN@\setcurveSTYLE@@}% - \else\ifcat a\noexpand\next\DN@{\setafterCURVEaction@@}% - \else\DN@{\xyFN@\parseCURVE@@}% - \fi\fi \next@} -\DOCMODE) - - Currently the only 2-letter specifications have either - |c| or |C| as the 2nd letter. - -\DOCMODE( -\xydef@\setafterCURVEaction@@{% - \ifx\next c\DN@ c{% - \def\afterCURVEaction@{\noexpand\endcurve\noexpand\xy@curve@}% - \xyFN@\parseCURVE@@ }% - \else\ifx\next C\DN@ C{% - \def\afterCURVEaction@{\noexpand\endcurve\noexpand\xy@curve@@}% - \xyFN@\parseCURVE@@ }% - \else \DN@##1{\xywarning@{unknown after-curve action ##1}% - \xyFN@\parseCURVE@@ }% - \fi\fi \next@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - When |\parsecurve@| is encountered, this signifies the end - of this part of the parsing. The only active control - sequence that should be encountered legitimately here is - |\@endcurve|, which signifies that the <poslist> is - empty and default styles are required. Otherwise assume we - the subsequent tokens are from |#2| of |\crv@|. Control - passes to |\xycurve@@| to prepare for reading the <crv-object>s - and <poslist>. - -\DOCMODE( -\xydef@\parsecurve@{\xyFN@\parsecurve@@} -\xydef@\parsecurve@@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\parsecurve@@}% - \else\ifx\next\@endcurve\DN@\@endcurve{\checkafterCURVE@}% - \else\ifcat\active\noexpand\next\DN@{\relax}% - \else\DN@{\xycurve@@}\fi\fi\fi\next@}% -\DOCMODE) - -\DOCMODE( -\xydef@\xycurve@{\begingroup\afterCURVE{\setcurve@\endgroup}\crvobjects@ - \startxycurve@\xycrvmods@} -\xydef@\xycurve@@{\afterCURVE{\setcurve@}\crvobjects@\startxycurve@ - \xycrvmods@} -\xydef@\xy@curve@{\xy@curve@@@{\splinedefaulttol@\crvobjects@}} -\xydef@\xy@curve@@{\xy@curve@@@{\resetcrvobjects@}} -\xydef@\xy@curve@@@#1{\ifx\cv@start\relax - \DN@{\xywarning@{There is no curve to plot}}. - \else\DN@{\begingroup\afterCURVE{\setcurve@\endgroup}#1\cv@end}% - \fi \next@ } -\xydef@\crvobjects@{\def\xycrvdrop@{}\def\xycrvconn@{}} -\xydef@\resetcrvobjects@{\crvobjects@} -\DOCMODE) - - These were originally provided for sophisticated-user access. - They are otherwise undocumented and may be removed. - -\DOCMODE( -\xylet@\savecurve=\xycurve@@ -\xylet@\samecurve=\xy@curve@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - |\xy@crvmods@| handles reading the <curve-object>s, - \ie\ the ``drop'' object and the ``connect'' object. - -\medskip -"Procedure":??_[crvob1]~Get next token.??_[crvob2]~Is it a |~|? - ??_[crvob4]~If not, exit. -??_[crvob2a]~If so, is it followed by a |*|? -??_[crvob2b]~If not, issue a message and go back to ??_[crvob1]. - Otherwise, ??_[crvob3]~is there a second |*|? -??_[crvob3a]~If not then read and store the ``drop'' object, -??_[crvob3b]~else, read and store the ``connect'' object. -When finished, in either case, ??_[crvob5]~look for further specifications. -??_[crvob3c]~An empty ``drop'' object is not allowed, so this actually -gives the default of |\zerodot|. - -\DOCMODE( -\xydef@\xycrvmods@{\xyFN@\xy@crvmods@}%?*[crvob1] - -\xydef@\xy@crvmods@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\xy@crvmods@}%gobble spaces - \else\ifx\next ~\DN@ ~{\xyFN@\xy@crvmods@@}%?*[crvob2] - \else\DN@{\xy@crvmods@@@@}\fi\fi \next@}%?*[crvob4] -\xydef@\xy@crvmods@@@@{\xyFN@\checkendcurve@}% - -\xydef@\xy@crvmods@@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\xy@crvmods@@}%gobble spaces - \else\ifx\next *\DN@ *{\xyFN@\xy@@crvmods@}%?*[crvob2a] - \else\addAT@\ifx\next\addAT@\DN@{\xyFN@\xy@@crvaddstack}% - \else\DN@{\xywarning@{badly-formed curve option}\xyFN@\xy@crvmods@}%?*[crvob2b] - \fi\fi\fi \next@}% - -\xydef@\xy@@crvmods@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\xy@@crvmods@}%gobble spaces - \else\ifx\next *\DN@ *{\xyFN@\xy@@crvmods@@}%?*[crvob3] - \else\DN@{\xy@crv@mods@@}\fi\fi \next@}%?*[crvob3a] - -\xydef@\xy@crv@mods@@#1#{\DN@##1{\xy@crvmods@@@{#1}{##1}}\next@}% -\xydef@\xy@crvmods@@@#1#2{% - \DN@{#1#2}\ifx\next@\empty \def\xycrvdrop@{ #1{\zerodot}}%?*[crvob3c] - \else \def\xycrvdrop@{ #1{#2}}\fi - \xyFN@\xy@crvmods@ }%?*[crvob5] - -\xydef@\xy@@crvmods@@#1#{\DN@##1{\xy@@crvmods@@@{#1}{##1}}\next@}%?*[crvob3b] -\xydef@\xy@@crvmods@@@#1#2{\def\xycrvconn@{ #1{#2}}\xyFN@\xy@crvmods@ }% -\DOCMODE) -% -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Parsing of the <poslist> is quite simple, recognising few special tokens: - -\begin{itemize} -\item - |\endcurve| and |\endxy| terminate reading of control points. -\item - |&|, |\\| and |\relax| delimit $<pos>$itions -\item - anything else is treated as a $<pos>$, being handled by the |\POS@| - parser. -\end{itemize} - -\DOCMODE( -\xydef@\checkendcurve@{% - \ifx\space@\next\expandafter\DN@\space{\xyFN@\checkendcurve@}%gobble spaces - \else\ifx\next\endcurve\DN@\endcurve{\clearsearchflag@\endxycurve@}% - \else\ifx\next\@endcurve\DN@\@endcurve{\checkafterCURVE@}% - \else\ifx\next\xy@@crvaddstack@\DN@{}% - \else\ifx\next\endxy\DN@{\clearsearchflag@\sloppyendcrv@}% -% \else\addAND@\ifx\next\addAND@\DN@{\clearsearchflag@\searchnextpt@}% - \else\testAND@\iffalse \DN@##1{\clearsearchflag@\searchnextpt@}% - \else\ifx ~\next\DN@ ~{\xyFN@\checkcrvtilde@}% - \else\ifx\next\relax\DN@\relax{\clearsearchflag@\searchnextpt@}% - \else\ifx\next\\\DN@\\{\clearsearchflag@\searchnextpt@}% - \else\ifx\searchflag@\relax - \DN@{\setsearchflag@\searchnextpt@}% - \else\DN@##1{\flagwarn@{##1}}\fi - \fi\fi\fi\fi\fi\fi\fi\fi\fi \next@ } -\xydef@\searchnextpt@{\afterPOS{\xy@@\addtocrv@ \xyFN@\checkendcurve@}} -\DOCMODE) - -There could be a problem in that an invalid token would cause -an infinite loop, passing back and forth between |\checkendcurve@| -and |\POS@|. This is avoided by setting a flag |\setsearchflag@| -when the |\POS@| parser is called, not following a valid delimiter. -Encountering a valid delimiter clears the flag. If |\checkendcurve@| -is called with the flag set, a warning message is issued -and the token is skipped; the flag remains set. -Processing continues, but it is possible that the wrong number of -positions will be read; presumably there is some kind of error that -needs to be fixed anyway. - -\DOCMODE( -\xydef@\checkafterCURVE@{% - \edef\tmp@{\noexpand\xyFN@\noexpand\checkendcurve@ % - \afterCURVEaction@\noexpand\endcurve}\tmp@ } - -\xylet@\searchflag@=\relax -\xydef@\setsearchflag@{\let\searchflag@=@} -\xydef@\clearsearchflag@{\let\searchflag@=\relax} -\xydef@\flagwarn@#1{% - \ifx\next\@endcurve\DN@{\xyFN@\checkendcurve@\endcurve}% - \else\setsearchflag@\DN@{\xyFN@\checkendcurve@}% - \xywarning@{skipping invalid token \string#1\space in curve}% - \fi \next@ } -\DOCMODE) - -It is possible for the final |\endcurve| to be omitted, but only when the -next token is |\endxy|. A warning message is written to the log file, -protesting against this sloppy \TeX-ing.\smiley - -\DOCMODE( -\xydef@\sloppyendcrv@{% -\xywarning@{Please use \string\endcurve\space to end the curve.}\endxycurve@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Creation of the |\crv| is completed when |\endcrv@| is encountered. - At this point the usual methods |\Drop@@| and |\Connect@@| are - defined. Extra information is retained, using |\saveshape@| and - |\savecrvparams@| for the benefit of methods which treat the curve - as a connection. - -\DOCMODE( -\xydef@\endcrv@{\saveshape@ %\def\Upness@{0}% - \Edge@c={\splineEdge}\Invisible@false\Hidden@false - \edef\Drop@@{\noexpand\ifInvisible@ \setbox\z@=\copy\voidb@x - \noexpand\else - \noexpand\wdz@=\z@ - \noexpand\ht\z@=\z@ \noexpand\dp\z@=\z@ - \noexpand\splineDrop@ - \noexpand\fi }% -% - \edef\Connect@@{% - \noexpand\setbox\z@=\noexpand\box\lastobjectbox@ - \noexpand\wdz@=\z@ - \noexpand\ht\z@=\z@ \noexpand\dp\z@=\z@ - \expandafter\noexpand\pure@crv - \noexpand\ifInvisible@ \noexpand\crv@saveStyles@ \noexpand\else - \noexpand\crv@getStyles@\noexpand\styledboxz@ \noexpand\fi -% - \noexpand\ifHidden@\noexpand\else - \noexpand\ifx\noexpand\COORD@\noexpand\xymatrixCOORD@ \noexpand\else - \noexpand\X@min=\the\X@min \noexpand\X@max=\the\X@max - \noexpand\Y@min=\the\Y@min \noexpand\Y@max=\the\Y@max - \noexpand\fi \noexpand\fi - \savecrvparams@ \noexpand\crvconnect@ %\noexpand\initbreaks@ - }% - \wdz@=\z@ - \ht\z@=\z@ \dp\z@=\z@ } -\DOCMODE) - -The control names |\crvXY@pre@| and |\crvXY@post@| are used to -transfer style information passed with |\preconnect@| to subsegments. - -\DOCMODE( -\xydef@\crvXY@pre@{} -\xydef@\crvXY@post@{} - -\xydef@\crv@saveStyles@{\def\xy@style@{}% - \expandafter\def\expandafter\crvXY@pre@\expandafter{\preXY@style@}% - \expandafter\def\expandafter\crvXY@post@\expandafter{\postXY@style@}} - -\xydef@\crv@getStyles@{\def\xy@style@{}% - \gdef\preXY@style@{\crvXY@pre@}\gdef\postXY@style@{\crvXY@post@}} -\DOCMODE) - - The values of |\X@min|, |\X@max|, \etc\ are used to compute the extents - |\L@c|, |\R@c|, \etc\ of the object. This information must be maintained - after the group is closed, unless the ``hidden'' attribute is required - or we are inside a matrix construction. - - In calculating the size of the box containing the curve |\X@min|, - |\X@max|, \etc\ are initialised to describe the minimum rectangle - enclosing $p$ and $c$. At the same time we save the current scope. - -\DOCMODE( -\xydef@\initshape@{\savescope@ - \ifdim\X@c>\X@p \X@min=\X@p \X@max=\X@c \else \X@max=\X@p \X@min=\X@c \fi - \ifdim\Y@c>\Y@p \Y@min=\Y@p \Y@max=\Y@c \else \Y@max=\Y@p \Y@min=\Y@c \fi } -\DOCMODE) - - |\saveshape| is used to pass necessary information up one level of - grouping. - -\DOCMODE( -\xydef@\saveshape@{\savectrlptsnum@ - \R@c=\X@max \advance\R@c-\X@c \L@c=\X@c \advance\L@c-\X@min - \U@c=\Y@max \advance\U@c-\Y@c \D@c=\Y@c \advance\D@c-\Y@min - \edef\tmp@{\egroup \U@c=\the\U@c \D@c=\the\D@c \L@c=\the\L@c \R@c=\the\R@c - \noexpand\ifdim\noexpand\X@min>\the\X@min\noexpand\X@min=\the\X@min\noexpand\fi - \noexpand\ifdim\noexpand\Y@min>\the\Y@min\noexpand\Y@min=\the\Y@min\noexpand\fi - \noexpand\ifdim\noexpand\X@max<\the\X@max\noexpand\X@max=\the\X@max\noexpand\fi - \noexpand\ifdim\noexpand\Y@max<\the\Y@max\noexpand\Y@max=\the\Y@max\noexpand\fi - \savecrvparams@ \def\noexpand\pure@crv{\expandafter\noexpand\pure@crv}}% - \tmp@ } - -\xydef@\savecrvparams@{\crvpts@={\the\crvpts@}% - \noexpand\def\noexpand\crvconnect@{\expandafter\noexpand\crvconnect@}}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\splineEdge{\rectangleEdge} -\DOCMODE) - -\TODO: -This can be improved. For example, trace along the spline until an -appropriate point is found. There may be more than one such point, -so extra criteria may be required. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notes} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[``drop'' object] -The ``drop'' object is set once, then ``dropped'' many times at appropriately -spaced places along the curve. If directional, the direction from $p$ to $c$ -is used. -Default behaviour is to have tiny dots spaced sufficiently closely as to -give the appearance of a smooth curve. -Specifying a larger size for the ``drop'' object is a way of getting -a dotted curve (see the example in the next note). - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[``connect'' object] -The ``connect'' object is also dropped at each place along the curve. -However, if non-empty, this object uses the tangent direction at each -place. This allows a directional object to be specified, whose -orientation will always match the tangent. To adjust the spacing of -such objects, use an empty ``drop'' object of non-zero size as shown here: -% -\begin{code} -\xy (0,0)*+{A}; (50,-10)*+{B} -**\crv{~*=<4pt>{.} (10,10)&(20,0)&(40,15)} -**\crv{~*=<8pt>{}~**!/-5pt/\dir{>}(10,-20) - &(40,-15)} \endxy -\end{code} -$$\docode$$ -\displaycode -% -\noindent -When there is no ``connect'' object then the tangent calculations -are not carried out, resulting in a saving of time and memory; -this is the default behaviour. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[maybe more] -The ``drop'' and ``connect'' objects can be specified as many times -as desired. Only the last specification of each type will actually have -any effect. (This makes it easy to experiment with different styles.) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[show only] -Complicated diagrams having several spline curves can take quite a long time -to process and may use a lot of \TeX's memory. A convenient device, -especially while developing a picture, is to show only the location of the -control points or to join the control points with lines, as a stylized -approximation to the spline curve. The <curve-option>s |~p| and |~l| are -provided for this purpose. Uppercase versions |~P| and |~L| do the same -thing but use any <curve-object>s that may be specified, whereas the -lowercase versions use plain defaults: small cross for |~p|, straight -line for |~l|. -Similarly |~C| and |~c| set the spline curve using any -specified <curve-option>s or as a (default) plain curve. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[and curve] -Use of |~p|, |~l|, etc. is extended to enable both the curve -and the control points to be easily shown in the same picture. -Mixing upper- and lower-case specifies whether the <curve-option>s are -to be applied to the spline curve or the (lines joining) control points. -See the examples accompanying the next two notes. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[control points] -By default the control points are marked with a small cross, -specified by |*\dir{x}|. The ``connect'' object is ignored completely. - -\begin{code} -\xy (0,0)*+{A};(50,-10)*+{B} -**\crv~pC{~*=<\jot>{.}(10,-10)&(20,15) - &(40,15)} \endxy -\end{code} -$$\docode$$ -was typeset by \dots -\displaycode - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[lines joining] -With lines connecting control points the default ``drop'' object is empty, -while the ``connect'' object is |\dir{-}| for simple straight lines. -If non-empty, the ``drop'' object is placed at each control point. -The ``connect'' object may be used to specify a fancy line style. - -\begin{code} -\xy (0,0)*+{A};(50,-10)*+{B} -**\crv~Lc{~**\dir{--}~*{\oplus} - (20,20)&(35,15)} \endxy -\end{code} -$$\docode$$ -was typeset by \dots -\displaycode - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[stack] -When a stack of <pos>itions has been established using the |@i| and |@+| -commands, these positions can be used and are appended to the <poslist>. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xy@@crvaddstack{% - \ifx\next ~\xywarning@{there should be a poslist here, \string~@ ignored}% - \DN@{\xy@crvmods@}% - \else\DN@{\xy@@crvaddstack@}\fi \next@} - -\xydef@\xy@@crvaddstack@{\smapxy@@\addtocrv@ \xyFN@\checkendcurve@} - -\xydef@\checkcrvtilde@{% - \addAT@\ifx\next\addAT@\DN@{\xy@@crvaddstack@}% - \else\xywarning@{invalid token after ~, ignored}% - \DN@##1{\xyFN@\checkendcurve@}% - \fi \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Spline Methods} - -Each |\curve| has to set the sliding abilities. -This is done by a call to |\crvconnect@@| which gives values to -the methods |\Creset@@|, |\Cshavep@|, etc. -These values depend on the style of the curve itself. - -\DOCMODE( -\xydef@\crvconnect@@{% - \def\Creset@@{\crvreset@}% - \def\Cshavep@@{\crvshavep@}% - \def\Cshavec@@{\crvshavec@}% - \def\Cslidep@@{\crvslidep@}% - \def\Cslidec@@{\crvslidec@}% - \def\Calong@@{\crvalong@}% - \def\Cintercept@@{\crvintercept@}% - \def\Cbreak@@{\crvbreak@}% - \def\Clast@@{\crvlast@}% -} -\DOCMODE) - -When straight lines are required \dots - -\DOCMODE( -\xydef@\straitconnect@{\crvconnect@@ - \let\crvreset@=\straitreset@ - \let\crvshavep@=\straitshavep@ - \let\crvshavec@=\straitshavec@ - \let\crvslidep@=\straitslidep@ - \let\crvslidec@=\straitslidec@ - \let\crvalong@=\straitalong@ - \let\crvintercept@=\straitintercept@ - \let\crvbreak@=\straitbreak@ - \let\crvlast@=\straitlast@ -} -\DOCMODE) - -These are the actual methods used for a sequence of straight segments. - -\DOCMODE( -\xydef@\straitreset@{\the\crvpts@ - \edef\xycrvptsnum@{\csname ptsnum@\endcsname}% - \def\segmentnum@{0}} -\xydef@\straitslidep@{\setupDirection@ii \noCslidep@@ } -\xydef@\straitslidec@{\setupDirection@ii \noCslidec@@ } - -\xydef@\straitshavep@{% - \expandafter\ifnum\xycrvptsnum@>\z@ - \def\segmentnum@{0}% - \csname cv@1\endcsname - \resetDirection@ \setupDirection@ii - \fi \noCshavep@@ } - -\xydef@\straitshavec@{% - \expandafter\ifnum\xycrvptsnum@>\z@ - \expandafter\count@@\xycrvptsnum@\relax - \bgroup \csname cv@\number\count@@\endcsname - \edef\tmp@{\egroup \X@p=\the\X@c \Y@p=\the\Y@c}\tmp@ - \edef\segmentnum@{\xycrvptsnum@}% - \resetDirection@ \setupDirection@ii - \fi \noCshavec@@ } - -\xydef@\straitalong@#1{% - \ifdim#1\p@<\z@ - \xywarning@{parameter value #1 is negative, using 0}% - \cfromp@ \def\PLACEf@{{0}}% - \else - \dimen@=#1\p@ \count@=\dimen@ \divide\count@\p@ - \expandafter\count@@\xycrvptsnum@\relax \advance\count@@\@ne - \advance\dimen@\segmentnum@\p@ - \advance\count@\segmentnum@\relax - \def\segmentnum@{0}% - \ifnum\count@@<\count@ - \xywarning@{parameter value #1 too large, using \the\count@@}% - \count@=\count@@ \advance\count@\m@ne \edef\PLACEf@{{1}}% - \else - \advance\dimen@-\count@\p@ - \ifdim\zz@\dimen@\ifnum\count@>\z@ - \advance\count@\m@ne \advance\dimen@\p@ \fi\fi - \edef\PLACEf@{{\expandafter\removePT@\the\dimen@}}% - \fi - \ifnum\count@=\z@\else \bgroup - \csname cv@\number\count@\endcsname - \edef\tmp@{\egroup \X@p=\the\X@c \Y@p=\the\Y@c}\tmp@ - \fi - \advance\count@\@ne - \ifnum\count@<\count@@ -\splinetrace@{find place \the\dimen@\space along straight segment - \the\count@}% - \csname cv@\number\count@\endcsname - \fi - \d@X=\X@c \advance\d@X-\X@p \d@Y=\Y@c \advance\d@Y-\Y@p - \fi \expandafter\noCalong@@\PLACEf@ \czeroEdge@ } -\DOCMODE) - -\DOCMODE( -\xydef@\straitintercept@{\noCintercept@@} -\xydef@\straitbreak@{\straightCbreak@@} -\xydef@\straitlast@{\straightClast@@} -\DOCMODE) - -When curved segments are required \dots - -\DOCMODE( -\xydef@\splineconnect@{% - \let\crvreset@=\splinereset@ - \let\crvshavep@=\splineshavep@ - \let\crvshavec@=\splineshavec@ - \let\crvslidep@=\splineslidep@ - \let\crvslidec@=\splineslidec@ - \let\crvalong@=\splinealong@ - \let\crvintercept@=\splineintercept@ - \let\crvbreak@=\splinebreak@ - \let\crvlast@=\splinelast@ -} -\DOCMODE) - -These are the actual methods. - -{\em Reset} the spline parameters: -\begin{description} -\item[|\xycrvptsnum@|:] expands to a control sequence, whose name -incorporates the correct scoping level, giving the number of control points. - -\item[|\the\crvpts@|:] -reads the control point locations and other information from a token list. - -\item[|\xysplineparams@|:] -set to a control sequence name, incorporating the correct scoping level, -which will allow access to the Be\'zier control points for each -spline segment, when required. - -\item[|\xysplineedges@|:] -set to a control sequence name, incorporating the correct scoping level, -which gives the spline parameters of the edges of objects at $p$ and $c$; - -\item[|\segmentnum@|:] reset to $0$. - -\item[|\splinecorrect@p| and |\splinecorrect@c|:] reset to $0$ -until changed by a |\Cshavep@| or |\Cshavec@|. - -\item[|\splinelength@|:] reset to $0$ until changed by a |\Cshavep@|, -|\Cshavec@| or |\Calong@|; this is needed by |\Cshavep@| and |\Cshavec@| -to quickly locate where to slide from, especially when it is necessary -to slide across more than a single spline segment. - -\item[|\splineplace@|:] reset to $.5$. -\end{description} - -\DOCMODE( -\xydef@\splinereset@{\the\crvpts@ - \edef\xycrvptsnum@{\csname ptsnum@\endcsname}% - \edef\xysplineparams@{% - \expandafter\noexpand\csname params@\endcsname}% - \edef\xysplineedges@{% - \expandafter\noexpand\csname edges@\endcsname}% - \def\segmentnum@{1}\def\splinecorrect@p{0}\def\splinecorrect@c{0}% - \splinelength@=\z@ \def\splineplace@f{.5}% -} -\DOCMODE) - -{\em Shaving} to the appropriate edge. -This is simply a matter of reading the stored edge information -and storing the appropriate value in |\splinecorrect@p| -or |\splinecorrect@c|. The difficult part is to construct the -correct control sequence name and then to extract the correct -part of the text in its expansion. - -\DOCMODE( -\xydef@\splineshavep@{\begingroup - \edef\xysplineedges@{% - \expandafter\noexpand\csname edges@\endcsname}% - \expandafter\expandafter\expandafter\getsplineedges@safe\xysplineedges@ @@% - \edef\tmp@{\noexpand\removePT@\the\dimen5}% - \edef\tmp@{\endgroup - \noexpand\def\noexpand\splinecorrect@p{\tmp@}}\tmp@ - \setupDirection@ii } - -\xydef@\splineshavec@{\begingroup - \edef\xysplineedges@{% - \expandafter\noexpand\csname edges@\endcsname}% - \expandafter\expandafter\expandafter\getsplineedges@safe\xysplineedges@ @@% - \dimen@=-\dimen7\relax \advance\dimen@\p@ -%% \getcrvsegsnum@ \advance\dimen@\count@\p@ - \edef\tmp@{\noexpand\removePT@\the\dimen@}%\W@{**shave**<\tmp@>***}% - \edef\tmp@{\endgroup - \noexpand\def\noexpand\splinecorrect@c{\tmp@}}\tmp@ - \setupDirection@ii } - -\xydef@\splineslidep@#1{\enter@{\pfromthep@}% - \begingroup \splinealong@@{0}{#1}+\splineslidep@@@ - \setupDirection@ii \leave@ }% - -\xydef@\splineslidep@@@{% - \d@X=\dimen5 \d@Y=\dimen7 \edef\tmp@{\postfind@}\tmp@ \dimen@=\splineval@ - \expandafter\count@\xycrvptsnum@\relax - \ifnum\count@>\tw@ \advance\count@\m@ne - \advance\dimen@\segmentnum@\p@ \advance\dimen@-\p@ - \fi - \edef\tmp@{\endgroup \endgroup - \noexpand\def\noexpand\xysplineval@{\the\splineval@}% - \noexpand\def\noexpand\splinecorrect@p{\expandafter\removePT@\the\dimen@}% -\splinetrace@{slide = \the\splinelength@}% - \X@c=\dimen@i \Y@c=\dimen3 % something may be wrong here!! - \d@X=\the\d@X \d@Y=\the\d@Y % - \noexpand\def\noexpand\segmentnum@{\segmentnum@}}\tmp@ } - -\xydef@\splineslidec@#1{\enter@{\pfromthep@}% - \begingroup - \expandafter\splinealong@@\PLACEf@{#1}+\splineslidec@@@ - \setupDirection@ii \leave@ } - -\xydef@\splineslidec@@@{% - \d@X=\dimen5 \d@Y=\dimen7 \edef\tmp@{\postfind@}\tmp@ \dimen@=\splineval@ - \expandafter\count@\xycrvptsnum@\relax - \ifnum\count@>\tw@ \advance\count@\m@ne - \advance\dimen@\segmentnum@\p@ \advance\dimen@-\p@ - \dimen@=-\dimen@ \advance\dimen@\count@\p@ - \else \dimen@=-\dimen@ \advance\dimen@\p@ \fi %\W@{**slide**<\the\dimen@>***}% -%% splinecorrect@c is probably wrong here!! - \edef\tmp@{\endgroup \endgroup - \noexpand\def\noexpand\xysplineval@{\the\splineval@}% - \noexpand\def\noexpand\splinecorrect@c{\expandafter\removePT@\the\dimen@}% -\splinetrace@{slide = \the\splinelength@; correct@c=\noexpand\splinecorrect@c}% - \X@c=\dimen@i \Y@c=\dimen3 % - \d@X=\the\d@X \d@Y=\the\d@Y % - \noexpand\def\noexpand\segmentnum@{\segmentnum@}}\tmp@ } - -\xydef@\checkslidemore@#1{% - \dimen@ii=-#1\relax\ifdim\dimen@ii<\z@\multiply\dimen@ii\m@ne\fi - \dimen@=-\splinelength@ \advance\dimen@\dimen@ii\relax - \ifdim\dimen@<\z@\dimen@ii=-\dimen@\else\dimen@ii=\dimen@\fi - \ifdim\dimen@ii<.2\p@\DN@{\splineslidec@@ \leave@}%%%% ? - \else \splinetrace@{not found yet, \the\dimen@ii\space still to go}% - \dimen@ii=#1\relax\ifdim\dimen@ii<\z@\multiply\dimen@\m@ne\fi - \DN@{\expandafter\splineslidemore@\expandafter{\the\dimen@}}\fi - \next@}% - -\xydef@\splineslidemore@#1{% - \expandafter\count@\segmentnum@\relax - \ifdim#1<\z@\advance\count@\m@ne\dimen@=\p@ - \else\advance\count@\@ne\dimen@=\z@\fi - \ifnum\count@<\@ne - \expandafter\splinesegment@\expandafter{\segmentnum@}% - \DN@{\xywarning@{cannot slide beyond start of curve}% - \spline@find{\z@}{\z@}{}\splineslidec@@ \leave@ }%%%% ? - \else \expandafter\count@@\xycrvptsnum@\relax\advance\count@@\m@ne - \expandafter\ifnum\count@@<\count@\relax - \expandafter\splinesegment@\expandafter{\segmentnum@}% - \DN@{\xywarning@{cannot slide beyond end of curve}% - \spline@find{\p@}{\z@}{}\splineslidec@@ \leave@ }%%%%% ? - \else - \edef\segmentnum@{\the\count@}% - \expandafter\splinesegment@\expandafter{\segmentnum@}% -\splinetrace@{sliding onto segment \segmentnum@}% - \expandafter\spline@find\expandafter{\the\dimen@}{#1}{}% - \DN@{\checkslidemore@{#1}}% - \fi\fi \next@ } - -\xydef@\splineslidec@@{% - \dimen@=\splineval@ \advance\dimen@\segmentnum@\p@\advance\dimen@-\p@ - \edef\tmp@{\endgroup - \noexpand\def\noexpand\xysplineval@{\the\dimen@}% -\splinetrace@{slide = \the\splinelength@}% - \X@c=\the\dimen@i \Y@c=\the\dimen3 \d@X=\the\dimen5 \d@Y=\the\dimen7 \postfind@ - \noexpand\def\noexpand\segmentnum@{\segmentnum@}}\tmp@ - \setupDirection@ii} -\DOCMODE) - -The method |\splinealong@#1| finds places along the curve, when |#1| is -given as a factor, normally between 0 and 1. The location of the edges -of the objects at $p$ and $c$ are stored in |\splinecorrect@p| and -|\splinecorrect@c|. -These are the places found if the factor is either 0 or 1. -If an edge is non-zero then it is actually possible to move to points inside -that edge by specifying a factor less than 0 or greater than 1. - -\DOCMODE( -\xydef@\splinealong@#1{\def\postfind@{}\splinealong@@{#1}\z@+% - \splineslidec@@ - \dimen@=\xysplineval@\relax - \count@=\xycrvptsnum@\relax \ifnum\count@>\@ne \advance\count@\m@ne\fi - \ifnum\count@>\@ne \dimen@nth\count@\dimen@ - \fi \edef\bthisPLACE@{\expandafter\removePT@\the\dimen@}% -\splinetrace@{bthisPLACE@=\bthisPLACE@}}% -\DOCMODE) - -The parameter |#2| in |\splinealong@@#1#2#3| allows for a subsequent slide -through a given <dimen> along the curve, from the place specifed by the -factor in |#1|. - -The information supplied in |#1| must be converted to the segment number and -parameter value of the specified point. These will be calculated and stored -temporarily in |\count@| and |dimen@| before the values are passed respectively -to |\splinesegment@| which chooses the segment, and |\spline@find| to locate -the point on this segment. - -To do the calculation, first we correct for the parameter values of the edges - of the objects at the end-points, which are stored in |\splinecorrect@p| and -|\splinecorrect@c|. If the resulting number $x$ is not an integer then -|\count@| is set to $1+\floor{x}$ while |\dimen@| becomes $(x-\floor{x})|\p@|$. -If $x$ is an integer: $x=0$ gives |\count@=1| and |\dimen@=\z@|, -otherwise $|\count@|=x$ and |\dimen@=\p@|. - -\DOCMODE( -\xydef@\splinealong@@#1#2#3{% - \edef\tmp@{#1}\relax \dimen@ii\tmp@\p@ -%% \getcrvsegsnum@ -%% \dimen@=-\count@\p@ - \dimen@=-\p@ - \expandafter\advance\expandafter\dimen@\splinecorrect@p\p@ - \expandafter\advance\expandafter\dimen@\splinecorrect@c\p@ - \edef\tmp@{#1}\relax \dimen@=-\tmp@\dimen@ \relax - \expandafter\advance\expandafter\dimen@\splinecorrect@p\p@ - \getcrvsegsnum@ \multiply \dimen@ by\count@\relax -\splinetrace@{actual:\the\dimen@; f:\the\dimen@ii; p:\splinecorrect@p, c:\splinecorrect@c}% - \count@=\dimen@ \divide\count@\p@ \DN@{\relax}% - \def\tmp@{\relax}\ifx\next@\tmp@ - \expandafter\ifnum\xycrvptsnum@<\count@ - \xywarning@{parameter value #1 too large}% - \DNii@{\relax}\DN@{\begingroup}% - \else - \edef\xysplineval@{\the\dimen@}% - \advance\dimen@-\count@\p@ - \ifdim\dimen@=\z@ -\splinetrace@{find knot point \the\count@}% - \ifnum\count@=\z@ \count@=\@ne \else \dimen@=\p@ \fi - \else \advance\count@\@ne -\splinetrace@{find point \the\dimen@\space on spline segment \the\count@}% - \fi - \edef\segmentnum@{\the\count@}% - \edef\next@{\begingroup\noexpand\splinesegment@{\the\count@}}% - \edef\nextii@{% - \noexpand\spline@find{\the\dimen@}{#2}{}\noexpand\checksplinefind@{#2}}% - \ifx>#3\relax - \edef\nextii@{% - \noexpand\spline@find{\the\dimen@}{#2}#3\noexpand\checksplinefind@{#2}}% - \else\ifx-#3\relax \ifdim\dimen@>\z@\relax \ifdim\dimen@<\p@ - \dimen@=-\dimen@ \advance\dimen@\p@ - \edef\nextii@{\noexpand\splinereverse@ - \noexpand\spline@find{\the\dimen@}{#2}{}\noexpand\checksplinefind@{#2}}% - \fi\fi - \else\ifx<#3\relax \ifdim\dimen@>\z@\relax \ifdim\dimen@<\p@ - \dimen@=-\dimen@ \advance\dimen@\p@ - \edef\nextii@{\noexpand\splinereverse@ - \noexpand\spline@find{\the\dimen@}{#2}#3\noexpand\checksplinefind@{#2}}% - \fi\fi - \fi\fi\fi - \fi\fi \expandafter\next@\nextii@ } -\DOCMODE) - - This macro checks whether the required sliding has been carried out, -or whether it is necessary to continue sliding along the next segment. - -\DOCMODE( -\xydef@\checksplinefind@#1{% - \dimen@ii=#1\relax \dimen@=\splinelength@ - \ifdim\dimen@ii=\z@\DN@{}% - \else - \ifdim\dimen@ii<\z@\advance\dimen@\dimen@ii - \else\advance\dimen@-\dimen@ii\fi - \ifdim\dimen@<\z@\multiply\dimen@\m@ne\fi - \ifdim\dimen@<.2\p@\DN@{}% - \else - \count@=\segmentnum@\relax - \ifdim\dimen@ii<\z@\advance\dimen@ii\splinelength@ - \ifnum\count@>\@ne\advance\count@\m@ne - \edef\next@{\noexpand\splinesegment@{\the\count@}% - \noexpand\spline@find\p@{\the\dimen@ii}{}% - \noexpand\checksplinefind@{\the\dimen@ii}}% - \else - \xywarning@{cannot slide \the\dimen@ii\space before start}% - \DN@{\splinesegment@\@ne \spline@find\z@\z@{}}\fi - \else\advance\dimen@ii-\splinelength@ - \count@@=\numcontrolpts - \ifnum\count@<\count@@ \advance\count@\@ne - \edef\next@{\noexpand\splinesegment@{\the\count@}% - \noexpand\spline@find\z@{\the\dimen@ii}{}% - \noexpand\checksplinefind@{\the\dimen@ii}}% - \else - \xywarning@{cannot slide \the\dimen@ii\space beyond end}% - \DN@{\splinesegment@{\the\count@@}\spline@find\p@\z@{}}\fi - \fi - \fi\fi \next@ } -\DOCMODE) - - -\paragraph*{Breaks} -% -Typesetting breaks in curves is quite involved. -The |\bstartPLACE@| and |\bendPLACE@| are used to hold parameter -values for the positions of the beginning and end of a segment, -respectively, when known. The default values of |\relax| indicate -that these values need to be found, usually from the start- and -end-edges of the curve. The value of |\empty| for |\bstartPLACE@| -is used initially with a new curved connection, to set up all its -parameters --- no typesetting takes place. This is used by curved -arrows to set up the connection before places can -be found for any breaks. - -\DOCMODE( -\xydef@\resetbreaks@{% - \let\bstartPLACE@=\relax \let\bthisPLACE@=\empty - \let\bendPLACE@=\relax \let\bprevPLACE@=\relax} - -\xydef@\invisbreaks@{\resetbreaks@ \let\bstartPLACE@=\empty} -\xydef@\crvresetbreaks@{\resetbreaks@ \let\bstartPLACE@=\relax } - -\xydef@\initbreaks@{\xy@@{\ifx\bstartPLACE@\relax - \def\bstartPLACE@{0}\def\bendPLACE@{1}\else - \ifx\bstartPLACE@\empty\def\bstartPLACE@{0}\def\bendPLACE@{1}% - \fi\fi}} - -\xydef@\lastbreaks@{\ifx\bprevPLACE@\relax \def\bstartPLACE@{0}% - \else \expandafter \bprevPLACE@ \fi - \let\bprevPLACE@\relax \let\bendPLACE@\relax} - -\xylet@\bstartPLACE@\relax -\xylet@\bendPLACE@\relax -\xylet@\bprevPLACE@\relax -\xydef@\bthisPLACE@{1} -\DOCMODE) - -These are called in the actual setting of curved sub-segments. - -\DOCMODE( -\xydef@\splinebreak@{% -\splinetrace@{***new break*** this:\bthisPLACE@ }% - \ifx\bthisPLACE@\empty\def\bendPLACE@{1}% - \else\edef\bendPLACE@{\bthisPLACE@}\let\bthisPLACE@\empty\fi -%\xystatus@{BR1}% - \ifx\bprevPLACE@\relax\def\bstartPLACE@{0}\else\expandafter\bprevPLACE@\fi - \edef\bprevPLACE@{\def\noexpand\bstartPLACE@{\bendPLACE@}\pfromthec@}% -\splinetrace@{splineBREAK: \bstartPLACE@ <> \bendPLACE@}% -%\xystatus@{BR}% - \edef\cv@brend{\cfromthec@}% - \edef\cv@brstart{\cfromthep@}% - \expandafter\connect\expandafter\crvs\crvSTYLE@@{}% ? optimise - \let\cv@brend=\relax - \let\cv@brstart=\relax -\splinetrace@{**break done**}% -} - -\xydef@\splinelast@{\splinereset@ \lastbreaks@ %\splinetracing -\splinetrace@{splineLAST}% -%\xystatus@{LA}% - \edef\cv@brend{\cfromthec@}% - \edef\cv@brstart{\cfromthep@}% - \expandafter\connect\expandafter\crvs\crvSTYLE@@{}% ? optimise - \let\cv@brend=\relax - \let\cv@brstart=\relax -\splinetrace@{**last done**}% - \resetbreaks@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Intersection with a curved connection} -Just as the intersection of two lines (??g[xy.doc:intercept]) can be found, -so can the intersection of a straight line with a curved connection, -or the intersection of a curve with a straight connection. - -\begin{code} -\xy*+{A}="A";p+/r5pc/+(0,15)*+{B}="B" - ,p+<1pc,3pc>*+{C}="C" - ,"A"+<4pc,-1pc>*+{D}="D",{\ar@/_/"C"} - ,?!{"A";"B"**@{-}}*++{\oplus} -\endxy \quad \xy - *+{A}="A";p+/r5pc/+(0,15)*+{B}="B", - ,p+<1pc,3pc>*+{C}="C" - ,"A"+<4pc,-1pc>*+{D}="D","A";"B"**@{-} - ,?!{"D",{\ar@/_/"C"}}*++{\oplus} -\endxy -\end{code} -$$\docode$$ -\displaycode - -When the line separates the end-points of a curve an intersection can always -be found. If there is more than one then that occurring earliest along the -curve is the one found. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Presume the end-points of the spline segment are at $(X_p,Y_p)$ and -$(X_c,Y_c)$ with $(L_p,U_p)$ and $(R_p,D_p)$ as two points on the line. -Then the macro |\xysidesofinterval@| returns 3 pieces of information. -\begin{itemize} -\item |\next| expands to 2 characters, each from $\{+,-,0\}$ - indicating which side of, or on, the line lies either end-point; -\item |\this@| expands to either $+$ or $-$ indicating which - end is closer to the line, returning $+$ if equi-distant; -\item |\howclose@| contains a non-negative <num> indicating the distance - to the nearest end-point. -\end{itemize} - -\DOCMODE( -\xydef@\splineNointercept@{\enter@{\pfromthep@}% - \begingroup \splinereset@ \csname cv@0\endcsname \swap@ - \count@=\ptsnum@ \advance\count@\@ne \csname cv@\the\count@\endcsname - \edef\tmp@{\endgroup \X@origin=\the\X@p \Y@origin=\the\Y@p - \R@c=\the\d@X \U@c=\the\d@Y}\tmp@ - \loop@ - \dimen@=\ifdim\R@c<\z@-\fi\R@c - \advance\dimen@ \ifdim\U@c<\z@-\fi\U@c - \ifdim\dimen@>10\p@ - \advance\R@c \ifdim\R@c<\z@-\fi 16sp \divide\R@c\KK@ - \advance\U@c \ifdim\U@c<\z@-\fi 16sp \divide\U@c\KK@ - \repeat@ - \intersect@ \leave@} - -\xydef@\splineintercept@{\Hidden@true\Invisible@true\splineintercept@i} - -\xydef@\splineintercept@i{\enter@{\pfromthep@}\begingroup - \R@p=\X@c \L@p=\X@p \d@X=\R@p \advance\d@X-\L@p - \D@p=\Y@c \U@p=\Y@p \d@Y=\D@p \advance\d@Y-\U@p - \dimen@nth\KK@\d@X \edef\sd@X{\expandafter\removePT@\the\d@X}% - \dimen@nth\KK@\d@Y \edef\sd@Y{\expandafter\removePT@\the\d@Y}% - \dimen@=\sd@Y\L@p \advance\dimen@-\sd@X\U@p - \edef\sideOffset@{\the\dimen@}\def\closestseg@{1}% - \let\crvconnect@@=\relax \crvconnect@ - \let\spline@end=\splinef@end - \def\spline@start{\bgroup \def\prevnext@{+-}% - \def\splinerec@{\let\splinerec@=\splineIrec@ \splineinterceptTest@}% - \def\splinedecast@{\let\splinedecast@=\splinedecast@@ - \def\splineadvance@{\splineIadvance@@}\splinedecast@@}% - \def\splineadvance@{\intercepthull@}% -% \def\splinepoint@{\splineIpt@@}% - \global\let\splinepoint=\splineIpt@@ - \global\let\splinegoal@=\splinef@pt - \global\let\splinefinish@=\splinefinish@@}% - \begingroup \splineIsegment@ - \splinesetparams@ \splined@@ \def\postfind@{}\splineIplace@ - \setupDirection@ii \leave@ } - - -\xydef@\splineIplace@{% - \d@X=\dimen5 \d@Y=\dimen7 \dimen@=\splineval@ - \expandafter\count@\xycrvptsnum@\relax - \ifnum\count@>\tw@ \advance\count@\m@ne %\advance\count@\m@ne - \advance\dimen@\segmentnum@\p@ \advance\dimen@-\p@ - \dimen@nth\count@\dimen@ % \divide\dimen@\count@ - \fi \edef\tmp@{\endgroup \endgroup - \def\noexpand\PLACEf@{{\expandafter\removePT@\the\dimen@}}% - \X@c=\dimen@i \Y@c=\dimen3 % - \d@X=\the\d@X \d@Y=\the\d@Y }\tmp@ -\splinetrace@{PLACE = \PLACEf@:(\the\X@c, \the\Y@c)}% - \expandafter\edef\expandafter\bthisPLACE@\PLACEf@ - } - -\xydef@\splineIrec@{\splineinterceptTest@ } - -\xydef@\squineIpt@{\edef\tmp@{\endgroup - \def\noexpand\prevnext@{\next}\begingroup}\tmp@ } -\xydef@\squineIadvance@{\edef\tmp@{\endgroup - \def\noexpand\prevnext@{\next}\def\noexpand\howclose@{\howclose@}}% - \tmp@ \splineadvance@@\begingroup} - -\xydef@\cubicIpt@{\edef\tmp@{\endgroup - \def\noexpand\prevnext@{\next}\begingroup}\tmp@ } -\xydef@\cubicIadvance@{\edef\tmp@{\egroup - \def\noexpand\prevnext@{\next}\def\noexpand\howclose@{\howclose@}}% - \tmp@ \splineadvance@@\bgroup} - -\xydef@\splineIsegment@{\DN@{\splinesegment@\@ne}% - \ifx\splinesegment@\squinesegment@\else - \ifx\splinesegment@\cubicsegment@\else\DN@{\findIsegment@}% - \fi\fi\next@} - -\xydef@\findIsegment@{\expandafter\count@\xycrvptsnum@ \count@@\z@ - \loop@ \advance\count@@\@ne \bgroup - \expandafter\splinesegment@\expandafter{\the\count@@}% - \xysidesofinterval@ - \findIsegment@i \repeat@ - \expandafter\dimen@\prevhowclose@ \relax - \ifdim\dimen@=\z@ \edef\closestseg@{\the\count@@}\fi - \expandafter\splinesegment@\expandafter{\closestseg@}} - -\xydef@\findIsegment@i{% - \expandafter\ifx\next \expandafter\findIsegment@ii - \else\expandafter\findIsegment@x\fi \next@ } - -\xydef@\findIsegment@ii{\expandafter\count@\xycrvptsnum@ \relax - \advance\count@\m@ne \ifnum\count@>\segmentnum@\relax - \expandafter\findIsegment@y\else\expandafter\findIsegment@x\fi} - -\xydef@\findIsegment@x{% - \edef\next@{\egroup\def\noexpand\next{\next}% - \def\noexpand\prevhowclose@{\prevhowclose@}% - \def\noexpand\closestseg@{\closestseg@}\noexpand\iffalse}} - -\xydef@\findIsegment@y{% - \edef\next@{\egroup\def\noexpand\next{\next}% - \def\noexpand\prevhowclose@{\prevhowclose@}% - \def\noexpand\closestseg@{\closestseg@}\noexpand\iftrue}} - -\xydef@\xysidesofinterval@{\bgroup - \L@p=\sd@X\Y@p \advance\L@p-\sd@Y\X@p \advance\L@p\sideOffset@ - \U@p=\sd@X\Y@c \advance\U@p-\sd@Y\X@c \advance\U@p\sideOffset@ - \def\this@{}\ifdim\L@p>\almostz@ \ifdim\U@p>\almostz@ \def\next{++}\else - \ifdim\U@p<-\almostz@ \def\next{+-}\else\def\next{+0}\def\this@{-}\fi\fi - \else\ifdim\L@p<-\almostz@ \ifdim\U@p>\almostz@ \def\next{-+}\else - \ifdim\U@p<-\almostz@ \def\next{--}\else\def\next{-0}\def\this@{+}\fi\fi - \else \ifdim\U@p>\almostz@ \def\next{0+}\else - \ifdim\U@p<-\almostz@ \def\next{0-}\else\def\next{00}\def\this@{+}\fi\fi - \fi\fi - \ifx\this@\empty - \L@p=\ifdim\L@p<\z@-\fi\L@p \U@p=\ifdim\U@p<\z@-\fi\U@p - \ifdim\L@p<\U@p \edef\howclose@{\the\L@p}\def\this@{-}% - \else \edef\howclose@{\the\U@p}\def\this@{+}\fi - \else\def\howclose@{0.0pt}\fi -\splinetrace@{\next:\this@:\howclose@;\the\splineval@:% - (\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c)}% - \ifdim\howclose@<\prevhowclose@\relax - \edef\tmp@{\egroup\def\noexpand\this@{\this@}\def\noexpand\next{\next}% - \def\noexpand\howclose@{\howclose@}\def\noexpand\prevhowclose@{\howclose@}% - \def\noexpand\closestseg@{\segmentnum@}}% -\splinetrace@{closest yet: \howclose@, in segment \segmentnum@}% - \else - \edef\tmp@{\egroup\def\noexpand\this@{\this@}\def\noexpand\next{\next}% - \def\noexpand\howclose@{\howclose@}}% - \fi \tmp@ } - -\xydef@\splineinterceptTest@{% - \xysidesofinterval@ \DN@{\splineadvance@}% - \DNii@{0.0pt}\ifx\howclose@\nextii@ \DN@{\splineclosest@}% - \else\expandafter\ifx\next \expandafter\ifx\prevnext@ - \ifx\next\prevnext@\else\DN@{\X@c=\X@p \Y@c=\Y@p - \splinefinishf@}\fi\fi - \else \DN@{\splinedecast@}\fi\fi - {\splinefar@false \splinenear@\X@p\X@c\Y@p\Y@c - \ifsplinefar@ \aftergroup\next@ - \else\aftergroup\splineclosest@ -\splinetrace@{too close: (\the\X@p,\the\Y@p)::(\the\X@c,\the\Y@c)}% - \fi}} - -\xydef@\splineclosest@{%\global\advance\splineval@-.5\splinedepth@ - \expandafter\ifx\this@-\relax - \X@c=\X@p \Y@c=\Y@p \global\advance\splineval@-\splinedepth@ - \fi \splinefinishf@ }% -\DOCMODE) - -When the line misses the convex hull of the curve's control points -it is still possible to get the point of closest approach. - -\DOCMODE( -\xydef@\squinetestcvxhull@{\begingroup -\splinetrace@{hull: closest in segment \closestseg@}% - \expandafter\splinesegment@\ifx\undefined\closestseg@\@ne\else\closestseg@\fi - \X@c=\L@c \Y@c=\U@c \xysidesofinterval@ - \expandafter\ifx\next \expandafter\splineoutsidehull@@ - \else \expandafter\splineinsidehull@\fi} - -\xydef@\cubictestcvxhull@{\begingroup - \expandafter\splinesegment@\ifx\undefined\closestseg@\@ne\else\closestseg@\fi - \X@c=\L@c \Y@c=\U@c \xysidesofinterval@ - \expandafter\ifx\next \expandafter\cubictestcvxhull@i - \else \expandafter\splineinsidehull@\fi} - -\xydef@\cubictestcvxhull@i{%\begingroup - \X@c=\R@c \Y@c=\D@c \xysidesofinterval@ - \expandafter\ifx\next \expandafter\splineoutsidehull@@ - \else \expandafter\splineinsidehull@\fi} - - -\xydef@\xysidesofhull@{\bgroup - \L@p=\sd@X\Y@p \advance\L@p-\sd@Y\X@p \advance\L@p\sideOffset@ - \U@p=\sd@X\Y@c \advance\U@p-\sd@Y\X@c \advance\U@p\sideOffset@ - \L@p=\ifdim\L@p<\z@-\fi\L@p \U@p=\ifdim\U@p<\z@-\fi\U@p - \ifdim\L@p<\U@p \edef\howclose@{\the\L@p}\def\this@{-}% - \else \edef\howclose@{\the\U@p}\def\this@{+}\fi - \ifx\splinedecast@\squinedecast@ \D@c=\U@c \R@c=\L@c \fi - \L@p=\sd@X\U@c \advance\L@p-\sd@Y\L@c \advance\L@p\sideOffset@ - \L@p=\ifdim\L@p<\z@-\fi\L@p - \expandafter\if\this@-% - \ifdim\L@p<\prevhowclose@ \def\next{-+}\else \def\next{--}\fi - \else - \ifdim\L@p<\howclose@ \def\next{-+}\else - \U@p=\sd@X\D@c \advance\U@p-\sd@Y\R@c \advance\U@p\sideOffset@ - \U@p=\ifdim\U@p<\z@-\fi\U@p - \ifdim\U@p<\howclose@ \def\next{+-}\else \def\next{++}\fi - \fi\fi - \edef\tmp@{\egroup\def\noexpand\this@{\this@}\def\noexpand\next{\next}% - \def\noexpand\howclose@{\howclose@}}\tmp@ } -\DOCMODE) - -This is for straight connections intercepting with a curve. -It requires a redefinition of |\PLACE@intercept@| to recognise -that the intercept is with a curved connection. - -\DOCMODE( -\def\PLACE@intercept@#1{% - \xy@@{\enter@{\pfromthep@\basefromthebase@}\begingroup}% - \xy@@ix@{#1}\xy@@{\plainxy@ \def\Creset@@{}% - \expandafter\POS\the\toks9\relax - \DNii@{\crvreset@}\ifx\nextii@\Creset@@ \edef\next@{\endgroup - \def\noexpand\xyinterceptpts@{\the\crvpts@}% - \X@c =\the\X@c \Y@c=\the\Y@c \X@p=\the\X@p \Y@p=\the\Y@p - \noexpand\CCintercept@@ }% - \else \edef\next@{\endgroup - \X@c =\the\X@c \Y@c=\the\Y@c \X@p=\the\X@p \Y@p=\the\Y@p - \noexpand\Cintercept@@ }% - \fi \next@ \leave@}% - \PLACE@@} - -\xydef@\CCintercept@@{\splineSintercept@} -\xydef@\splineSintercept@{\enter@{\pfromthep@}\begingroup - \Creset@@ \edef\connect@pts{\cfromthec@ \pfromthep@}% - \xyinterceptpts@ \splinereset@ \connect@pts \splineintercept@ - \edef\next@{\endgroup \cfromthec@ \DirectionfromtheDirection@ }% - \next@ \let\xyinterceptpts@=\empty \leave@} -\DOCMODE) - -\TODO: -If both connections are curves, only the line joining the end-points -of the first connection is used. Find a way to do better than this. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -If the line does not separate the end-points then there may be no -intersection with the curve. If there is one then either the line is -tangential or necessarily there will also be at least one other intersection. -A message $$|perhaps no curve intersection, or many.|$$ -is written to the log-file, but a search for an intersection will still be -performed and a ``sensible'' place found on the curve. -In the usual case of a single quadratic or cubic segment, the place nearest -the line is found and the tangent direction is established. - -The following examples show this, and show how to get the place on the line -nearest to the curve. - -\begin{code} -\xy *+{A}="A";p+/r5pc/+(0,15)*+{B}="B", - ,p-<.5pc,2pc>*+{C}="C","A"+<6pc,-.5pc> - ,*+{D}="D","A",{\ar@/_25pt/"B"} - ,?!{"C";"D"**@{-}}*\dir{x}="E" - ,+/_2pc/="F";"E"**@{-},?!{"C";"D"} - ,*{\otimes}\endxy\qquad\xy - *+{A}="A";p+/r5pc/+(0,15)*+{B}="B", - ,p-<.5pc,2pc>*+{C}="C" - ,"A"+<7pc,.5pc>*+{D}="D","A" - ,{\ar@/_40pt/"B"},?!{"C";"D"**@{-}} - ,*{\otimes}\endxy -\end{code} -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The warning message, that no intersection may exist, always occurs inside -a grouping so it can safely switch itself off for deeper levels. - -\DOCMODE( -\xydef@\nointerceptwarning@{\let\nointerceptwarning@=\relax - \xywarning@{perhaps no curve intersection, or many. }} - -\xydef@\intercepthull@{\nointerceptwarning@ - \expandafter\def\expandafter\prevnext@\expandafter{\next}% - \splinetestcvxhull@} -\DOCMODE) - -When the line meets the convex hull of the current control points, -then a closer point exists inside the current portion of the curve. -We must ``decast'' to find it, after storing the closest value known -so far, within |\prevhowclose@|. - -\DOCMODE( -\xydef@\splinetestcvxhull@{\begingroup - \X@c=\L@c \Y@c=\U@c \splinetrace@{hull:}\xysidesofinterval@ - \expandafter\ifx\next \expandafter\splineoutsidehull@@ - \else \expandafter\splineinsidehull@\fi} - -\xydef@\splineinsidehull@{\edef\tmp@{\endgroup - \def\noexpand\howcvxclose@{\howclose@}% - \noexpand\interceptinsidehull@}\tmp@ } - -\xydef@\interceptinsidehull@{\edef\prevhowclose@{\howclose@}% - \splinedecast@@ } -\DOCMODE) - -If the line does not cross into the convex hull, then we use -the distance from the control points to determine whether or not -there can be a closer point. The value of |\prevhowclose@| -indicates the best so far, while |\howcvxclose@| temporarily -holds the distance to the closest control point. When this is -nearer then there will be a closer point on the curve. - -\DOCMODE( -{\xdef\next{\the\maxdimen}} -\xylet@\prevhowclose@=\next - -\xydef@\splineoutsidehull@{\edef\tmp@{\endgroup - \def\noexpand\howcvxclose@{\howclose@}% - \noexpand\interceptoutsidehull@}\tmp@} -\xylet@\splineoutsidehull@@=\splineoutsidehull@ - -%\xydef@\interceptoutsidehull@{\dimen@=\howcvxclose@ \relax -% \ifdim\dimen@<\howclose@ \relax -% \ifdim\howclose@<\prevhowclose@\relax \edef\prevhowclose@{\howclose@}\fi -% \DN@{\begingroup\splinedecast@@ \endgroup}% -% \else\ifdim\howclose@>\prevhowclose@ \relax \DN@{\splineHadvance@}% -% \else \DN@{\splineHadvance@ }\fi\fi \next@ } -\xydef@\interceptoutsidehull@{\dimen@=\howcvxclose@ \relax -% \global\splineval@=\z@ -\splinetrace@{OUTSIDE HULL: \the\dimen@ : (\howclose@)(\prevhowclose@)}% - \let\splinedecast@=\splinedecast@@ - \let\splinerec@\splineHnear@test - \let\splineadvance@\splineIadvance@@ - \splinedecast@@ } - -\xydef@\splineHnear@test{% - \xysidesofhull@ \DN@{\splinedecast@}% - \ifdim\howclose@<\prevhowclose@\edef\howclose@{\prevhowclose@}\fi - \expandafter\if\this@-% - \expandafter\ifx\next\DN@{\splineclosest@}\fi - \else - \expandafter\ifx\next\DN@{\splineadvance@}\fi - \fi - {\splinefar@false \splinenear@\X@p\X@c\Y@p\Y@c - \ifsplinefar@ \aftergroup\next@ - \else\aftergroup\splineclosest@ -\splinetrace@{too close: (\the\X@p,\the\Y@p)::(\the\X@c,\the\Y@c)}% - \fi}} -\DOCMODE) - -For cubic segments it is necessary to look at both control-points -off the curve and compare their distances; hence the use of -|\prevhowcvxclose@|, initially set to |\maxdimen|. - -\DOCMODE( -\xydef@\cubicoutsidehull@{\edef\tmp@{\endgroup - \def\noexpand\howcvxclose@{\howclose@}}\tmp@ - \edef\prevhowcvxclose@{\howcvxclose@}\begingroup - \X@p=\R@c \Y@p=\D@c \splinetrace@{hullii:}\xysidesofinterval@ - \expandafter\ifx\next \expandafter\cubicoutsidehull@i - \else \expandafter\cubicinsidehull@\fi} - -\xydef@\cubicinsidehull@{\edef\tmp@{\endgroup - \def\noexpand\howclose@{\howclose@}}\tmp@ - \cubicoutsidehull@ii } - -\xydef@\cubicoutsidehull@i{\edef\tmp@{\endgroup - \def\noexpand\howcvxclose@{\howclose@}}\tmp@ - \dimen@=\prevhowcvxclose@\relax - \ifdim\dimen@<\howcvxclose@ \relax - \edef\howcvxclose@{\the\dimen@}\expandafter\interceptoutsidehull@ - \else \expandafter\cubicoutsidehull@ii\fi } - -\xydef@\cubicoutsidehull@ii{% - \def\splineadvance@{\splineadvance@@}% - \def\splinepoint\endgroup{\endgroup -% \global\let\splinepoint=\splinepoint@ - \global\let\splinepoint=\relax - \def\splineadvance@{\intercepthull@}}% - \splinedecast@@ }% -\DOCMODE) - -This macro |\splineHadvance@| is used at the end of a |\splinedecast@| -in order to pass information from out of a subsegment, to help decide -whether there is any point in further searching. - -\DOCMODE( -\xydef@\splineHadvance@{\futurelet\next@\splineHadvance@i} -\xydef@\splineHadvance@i{\ifx\next@\endgroup - \expandafter\splineHadvance@x\else\expandafter\splineclosest@\fi} - -\xydef@\splineHadvance@x{\edef\tmp@{\endgroup - \def\noexpand\prevhowclose@{\prevhowclose@}% - \def\noexpand\prevnext@{\next}\def\noexpand\howcvxclose@{\howclose@}}% - \tmp@ \dimen@=\prevhowclose@ \relax - \ifdim\dimen@<\howclose@ \relax \DN@{\splineclosest@\begingroup}% - \else\ifdim\howcvxclose@=\dimen@\DN@{\splineclosest@\begingroup}% - \else\DN@{\splineadvance@@\begingroup}\fi\fi \next@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Miscellaneous features} -% -The command |\clearcurve| was originally provided to discard the curve -information, and return to the graphics state before the curve was read, -if this is ever found to be necessary. This will probably be removed. - -\DOCMODE( -\xydef@\xyclearcrv@{\cv@end\cv@restore\loop@ - \expandafter\let\csname cv@\number\crv@cnt@\endcsname\relax - \ifnum\crv@cnt@>0\advance\crv@cnt@\m@ne\repeat@ - \let\cv@start=\relax \let\cv@end=\relax \let\cv@restore=\relax \POS} -\xylet@\clearcurve=\xyclearcrv@ -\DOCMODE) - -\TODO: -Define an |\extendcurve| as a <postcurve> which allows the curve -to be continued smoothly past the endpoint $c$. - -A macro can be used within the modifier, to provide different labels -at each control point. For example\dots - -\begin{code} -\newcount\cptlabel\global\cptlabel=0 -\def\nextcptlabel{\global\advance\cptlabel 1 % - \number\cptlabel} -\xy (0,0)*+{A}; (50,-10)*+{B} -**\crv~Pc{~*{\nextcptlabel}(10,-10) - &(20,15)&(30,-15)&(40,15)} \endxy -\end{code} -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Two control sequences are provided to access the control points. -Firstly |\numcontrolpts| returns the number of them, -while |\xycontrolpt|<num> sets $c$ to be the particular control point. -Here <num> must be a single digit, grouped integer \eg\ |{-15}| -or count register containing a numerical value. -If larger than |\numcontrolpts| then $c$ becomes the end-point of the curve, -while if zero it becomes the starting point. -A negative value sets both $p$ and $c$ to be the starting point, -whereas other values leave $p$ unchanged. - -\DOCMODE( -\xylet@\numcontrolpts=\xynumctrlpts@ - -\xydef@\xycontrolpt@#1{{% - \ifnum#1<\z@\aftergroup\cv@restore\aftergroup\cv@start - \else - \expandafter\count@\xycrvptsnum@\relax \advance\count@\@ne - \ifnum#1>\count@ \ifx\cv@end\relax - \expandafter\aftergroup\csname cv@\number#1\endcsname - \else\aftergroup\cv@end\fi - \else - \expandafter\ifx\csname cv@\number#1\endcsname\relax - \ifnum#1=\z@\aftergroup\cv@start\else\aftergroup\cv@end\fi - \else\expandafter\aftergroup\csname cv@\number#1\endcsname - \fi\fi\fi}}% -\xylet@\xycontrolpt=\xycontrolpt@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Storing control point locations:} - -Upon starting to read the control points for a curve, -first set the counter |\crv@cnt@| to be zero. -Store the position of $p$ and $c$ and the current base in control sequences -|\cv@start|, |\cv@end| and |\cv@restore| for later retrieval and to -reinstate the current graphics state. |\cv@start| is a little more -complicated in order to retain the existing value of $p$. - -\DOCMODE( -\xydef@\startxycurve@@{\crv@cnt@=\z@ - \edef\cv@start{\cfromthep@}% - \ifdim\zz@\R@c \ifdim\zz@\L@c \ifdim\zz@\D@c \ifdim\zz@\U@c - \Edge@c={\zeroEdge}\fi\fi\fi\fi - \edef\cv@end{\cfromthec@}% - \edef\cv@restore{\pfromthep@\basefromthebase@}} -\xylet@\startxycurve@=\startxycurve@@ - -\xylet@\cv@start=\relax -\xylet@\cv@end=\relax -\xylet@\cv@restore=\relax -\xydef@\readxycurve@{\startxycurve@\xycrvmods@} -\xylet@\readxycurve=\readxycurve@ -\DOCMODE) - - -The position of each control point is stored as the expansion -of a control sequence whose name encodes its place within the $<poslist>$. -Expanding this control sequence sets $c$ to be the appropriate position. - -\DOCMODE( -\xydef@\addtocrv@{\advance\crv@cnt@\@ne - \edef\tmp@{% - \expandafter\noexpand\csname cv@\number\crv@cnt@\endcsname}% - \expandafter\edef\tmp@{\cfromthec@}% - \edef\tmp@{\noexpand\addtocrvpts@{\noexpand\def - \expandafter\noexpand\tmp@{\X@c=\the\X@c \Y@c=\the\Y@c }}}\tmp@ - \edef\xycrvptsnum@{\the\crv@cnt@}% -} -\DOCMODE) -% use of |\xycrvptsnum@| here is not desirable, but it works. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Alternate curve styles:} - -\DOCMODE( -\xydef@\xycrvdrop@{ {\zerodot}} -\xydef@\xycrvconn@{} - -\xydef@\xyc@trlpts@{\def\xycrvdrop@{ \dir{x}}\def\xycrvconn@{}% - \afterCURVE{\savecrvobjects@\xyctrlpts@}\readxycurve@} -\xydef@\xyc@trlpts@@{% - \afterCURVE{\savecrvobjects@\def\xycrvdrop@{ \dir{x}}% - \def\xycrvconn@{}\xyctrlpts@}\readxycurve@} -\xydef@\xyc@vxhull@{\def\xycrvdrop@{ {}}% - \edef\xycrvconn@{ \noexpand\dir{\addDASH@{}}}% - \afterCURVE{\savecrvobjects@\xycvxhull@}\readxycurve@} -\xydef@\xyc@vxhull@@{% - \afterCURVE{\savecrvobjects@\def\xycrvdrop@{ {}}% - \edef\xycrvconn@{ \noexpand\dir{\addDASH@{}}}\xycvxhull@}\readxycurve@} -\xylet@\controlpts=\xyc@trlpts@ -\xylet@\convexhull=\xyc@vxhull@ -\xydef@\savecrvobjects@{\bgroup - \expandafter\toks@\expandafter{\xycrvdrop@}% - \expandafter\toks@ii\expandafter{\xycrvconn@}% - \edef\tmp@{\egroup\noexpand\def\noexpand\resetcrvobjects@{% - \noexpand\def\noexpand\xycrvdrop@{\the\toks@}% - \noexpand\def\noexpand\xycrvconn@{\the\toks@ii}% - }}\tmp@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -There is the potential to do many other things here, by using |\afterCURVE|, -once the list of control points has been read. - -\DOCMODE( -\xydef@\afterCURVE#1{\def\afterCURVE@{#1}} -\xydef@\endxycurve@{\cv@end\savectrlptsnum@ - \expandafter\def\csname params@\endcsname{\the\crvpts@}% - \cv@restore\afterCURVE@\POS} -\xylet@\endcurve=\endxycurve@ -\DOCMODE) - -In fact this is essentially how |\controlpts| and |\convexhull| -were interfaced before extensions were added to change styles. - -\begin{code} -\def\controlpts{\afterCURVE{\xyctrlpts}% - \readxycurve} -\def\convexhull{\afterCURVE{\xycvxhull}% - \readxycurve} -\end{code} -\displaycode - -\noindent -The real work is done by |\xyctrlpts| and |\xycvxhull|. -At the point when these macros are expanded the graphics state has the -restored $p$ and $c$ to their original values, -\ie\ the end-points of the curve. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{|\controlpts|:} - -This macro visits in order each of the control points dropping the requisite -object. The connection style is not used and the direction does not change. -For a loop-counter we use |\count@@@|. - -\DOCMODE( -\xydef@\xyctrlpts@{\cv@end \cv@restore - \def\crvconnect@{\straitconnect@}% - \ifnum\crv@cnt@>\z@ - \count@@@=\@ne \DN@{\loop@\xycontrolpt@{\count@@@}\relax - \expandafter\xycvxhulldrop@\xycrvdrop@ - \ifnum\crv@cnt@>\count@@@\advance\count@@@\@ne\repeat@ - \cv@end \cv@restore }% - \else\DN@{\relax}\fi \next@ } -\xylet@\xyctrlpts=\xyctrlpts@ -\DOCMODE) - -The token list |\crvpts@| stores the following information: -current scope ||, location of $p$ and $c$, -number of control points |\crv@cnt@| and their locations. -It does this by storing |\def|s for control sequence names, -depending on the scope, which expand to this information. -Thus by executing |\the\crvpts@| at the right level, -the information is conveniently recovered via control sequences which -do not conflict with anything else, and whose names can be reconstructed. - -\DOCMODE( -\xydef@\addtocrvpts@#1{\crvpts@=\expandafter{\the\crvpts@#1}} -\DOCMODE) - -\DOCMODE( -\xydef@\savescope@{\crvpts@={}% - \edef\tmp@{\expandafter\noexpand\csname cv@0\endcsname}% - \edef\tmp@{\noexpand\addtocrvpts@{\noexpand\def - \expandafter\noexpand\tmp@{\X@c=\the\X@p \Y@c=\the\Y@p}}}% - \tmp@ } - -\xydef@\savectrlptsnum@{% - \advance\crv@cnt@\@ne \edef\tmp@{% - \expandafter\noexpand\csname cv@\number\crv@cnt@\endcsname}% - \edef\tmp@{\noexpand\addtocrvpts@{\noexpand\def - \expandafter\noexpand\tmp@{\X@c=\the\X@c \Y@c=\the\Y@c}}}\tmp@ - \advance\crv@cnt@\m@ne - \edef\tmp@{\expandafter\noexpand\csname ptsnum@\endcsname}% - \edef\tmp@{\noexpand\addtocrvpts@{% - \noexpand\def\expandafter\noexpand\tmp@{\number\crv@cnt@}}}% - \tmp@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Convex Hull:} - -This macro visits in order each of the control points dropping the requisite -object. With the previous as $p$ and the current one as $c$, a connection -is set in the requisite style. For a loop-counter we use |\count@@@|. - -Use a group |{\expandafter\POS\xycrvconn@}| else the |\loop@| gets upset. -This does not affect the size of the \Xy-picture, since the dropped objects -are not similarly shrouded. - -Also used for the trivial case where there are no control points, hence -a straight line between $p$ and $c$ is what is requested. - -\DOCMODE( -\xydef@\xycvxhull@{\cv@end \cv@restore - \addtocrvpts@{\def\crvconnect@{\straitconnect@}}% - \def\crvconnect@{\straitconnect@}% - \ifnum\crv@cnt@>\z@ - \count@@@=\@ne\relax \DN@{\loop@\xycontrolpt@{\count@@@}\relax - \expandafter\xycvxhulldrop@\xycrvdrop@ - {\expandafter\connect\xycrvconn@{}}\pfromc@ - \ifnum\crv@cnt@>\count@@@\relax \advance\count@@@\@ne\repeat@ - \cv@end }% - \else - \ifx\empty\xycrvconn@ - \edef\xycrvconn@{\noexpand!C\noexpand\dir{\addDASH@{}}}\fi - \DN@{\relax}\fi \next@ - {{\expandafter\connect\xycrvconn@{}}}% - \cv@end \cv@restore } -\xylet@\xycvxhull=\xycvxhull@ - -\xydef@\xycvxhulldrop@#1#{\drop@{#1}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Spline constructions} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The control sequence |\xysplineparams@| provides a way to access a control -sequence name that is unique to the current \Xy-pic scope. -This control sequence will be used to store the parameters which determine -the spline curve. Similarly |\xysplineedges@| will be used to store the -parameter values and lengths (along the squine) to the locations where -the spline crosses the edge of the objects at the ends $p$ and $c$. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\savespline@{% -\splinetrace@{savespline@:}% -% \edef\endspline@{\endgroup - \edef\endspline@{\endgroup - \savesplineparams@ \savesplinerefs@ - \X@min=\the\X@min\relax \X@max=\the\X@max\relax - \Y@min=\the\Y@min\relax \Y@max=\the\Y@max\relax - \ifInvisible@\noexpand\Invisible@true - \else\noexpand\Invisible@false\fi - }\endspline@ - \edef\tmp@{\noexpand\addtocrvpts@{\savesplineparams@}}\tmp@ - \xycontrolpt@\z@ \cv@end } - -\xydef@\savesplineparams@{% - \noexpand\def\expandafter\noexpand\xysplineedges@{\xysplineedges@}} - -\xydef@\savesplinerefs@{% - \noexpand\def\noexpand\xysplineparams@{% - \expandafter\noexpand\xysplineparams@}% - \noexpand\def\noexpand\xysplineedges@{% - \expandafter\noexpand\xysplineedges@}% -} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -One new box register is required, for the object used to actually -set the curve, \dots - -\DOCMODE( -\xynew@{box}\splinebox@ -\DOCMODE) - -\dots\ and 4 dimen registers ... - -\DOCMODE( -\xynew@{dimen}\splineval@ -\DOCMODE) -\dots\ which is for tracking the natural spline parametrization; - -\DOCMODE( -\xynew@{dimen}\splinedepth@ -\DOCMODE) -\dots\ which is for tracking he depth of the recursive algorithms; - -\DOCMODE( -\xynew@{dimen}\splinetol@ -\DOCMODE) -\dots\ which contains the tolerance for the spline, -(this can probably be shifted to an ordinary macro); - -\DOCMODE( -\xynew@{dimen}\splinelength@ -\DOCMODE) -\dots\ which accumulates a measure of the length along a spline curve. -(Currently this is not being used, as most things can be done -satisfactorily using the spline parametrization only.) - - -Some new conditionals are also required. These are for testing whether -successive places on the squine are sufficiently close together, -and whether the objects should be placed or not. - -\DOCMODE( -\xynew@{if}\ifsplinefar@ -\xynew@{if}\ifsplineplot@ % to plot points or not -\DOCMODE) - -Provide some tracing ability, for debugging. - -\DOCMODE( -\xydef@\splinetracing{\let\splinetrace@=\W@} -\xydef@\splineignore@#1{} -\xylet@\splinetrace@=\splineignore@ -\DOCMODE) - -\medskip - -The parameters for the current section of the spline are stored indirectly -in |\xysplineparams@|, while information concerning the places where the -spline crosses the edges of objects at $p$ and $c$ is stored indirectly in -|\xysplineedges|. -A control sequence |\readsplineparams@| is used to extract this information. -Each spline type must provide a |\getsplineparams@| which -puts the information into easily usable form. - -\DOCMODE( -\xydef@\readsplineparams@{% - \expandafter\expandafter\expandafter\getsplineparams@\xysplineparams@ - \expandafter\expandafter\expandafter\getsplineedges@safe\xysplineedges@ @@} - -\xydef@\getsplineedges@safe#1@@{\DN@{#1}% - \ifx\next@\empty \DN@{\getsplineedges@.0pt;0.0pt,0.0pt;0.0pt,}% - \else \DN@{\getsplineedges@safe@#1@@}\fi \next@} - -\xydef@\getsplineedges@safe@#1;#2,#3@@{\DN@{#3}% -\splinetrace@{getsplineedges@safe}% - \ifx\next@\empty \DN@{\getsplineedges@#1;#2,0.0pt;0.0pt,}% - \else \DN@{\getsplineedges@#1;#2,#3}\fi \next@} -\DOCMODE) - -The edge locations are stored as $x.y$ -where $x+1$ = spline-segment number and -$y$ or $1-y$ = parameter value of the start, resp. finish, -in the segment $x+1$. - -\DOCMODE( -\xydef@\getsplineedges@#1;#2,#3;#4,{% - \global\dimen@i=#1\global\dimen5=#2\relax - \dimen@=#3\multiply\dimen@\m@ne \advance\dimen@\splinelength@ - \global\dimen3=\dimen@ - \dimen@=#4\relax - \ifdim\dimen@>\p@ \xywarning@{edge out-of-range: \the\dimen@}% - \count@=\dimen@ \divide\count@\p@ - \advance\dimen@-\count@\p@ \multiply\dimen@\m@ne - \advance\dimen@ \count@\p@ \advance\dimen@\p@ -\splinetrace@{\the\dimen@}% - \else - \multiply\dimen@\m@ne \advance\dimen@\p@ - \fi - \global\dimen7=\dimen@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent Sometimes \TeX\ will run short of memory when many curves are -used without a backend with special support for curves. In that case -the following commands, that obey normal \TeX\ groupings, may be -helpful: -% -\begin{defs1} -|\SloppyCurves| \cr -|\splinetolerance{|<dimen>|}| \cr -\end{defs1} -\noindent\unskip -% -allow adjustment of the tolerance used to typeset curves. The first sets -tolerance to .8pt, after which |\splinetolerance{0pt}| resets to -the original default of fine curves. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Some useful methods for accurate division by integers. - -\DOCMODE( -\xydef@\dimen@half{% - \advance\dimen@ \ifdim\dimen@<\z@-\fi 1sp \divide\dimen@\tw@} - -\xydef@\halve@dimen#1{\dimen@=#1\relax \dimen@half #1=\dimen@} - -\xydef@\dimen@nth#1#2{\dimen@=#2\relax \dimen@ii=#1sp % - \advance\dimen@ \ifdim\dimen@<\z@-\fi.5\dimen@ii - \divide\dimen@ by#1\relax #2=\dimen@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Before constructing the curve we first examine the ``drop'' object, -setting it in an |\xybox|. The size of this object determines the -spacing of objects placed along the curve, via the {\em tolerance\/} -of the spline. This determines the maximum separation of places at -which objects will be dropped; \ie\ when two adjacent places would -be separated by more than this amount, the spline algorithm -constructs another place on the curve intermediate between these two. - -\noindent{\bf Note: } Alter the spline tolerance by adjusting the size -of the ``drop'' object. In particular, a dotted line can be achieved by -setting an empty object with non-zero size. If the size is zero then the -default tolerance is used. Initially this is .4pt; it may be altered -using |\splinetolerance|<dimen>, where <dimen> must be greater than -zero, else the initial tolerance is reset. - -\DOCMODE( -\xydef@\splinetolerance@#1{\dimen@=#1\relax - \ifdim\dimen@>\z@ \splinetol@=\dimen@ - \else\splinetol@=.4\p@\fi} - -\xylet@\splinedefaulttol@=\relax - -\xydef@\splinetolerance#1{\splinetolerance@{#1}% - \edef\splinedefaulttol@{\splinetol@=\the\splinetol@}} - -\splinetolerance\z@ - -\xydef@\SloppyCurves{\splinetolerance{.8\p@}} - -\xydef@\xylowtolerance@{\splinedefaulttol@ - \ifdim\splinetol@<\p@ \divide\splinetol@\tw@ \fi} -\DOCMODE) - -Similarly examine the ``connect'' object. If none has been specified -then there is no need to calculate the tangent direction at each -place along the curve. This saves on both time and memory requirement. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -"Procedure": -(1)~If |\xycrvdrop@| is empty, define |\splinedrop@| to expand -to |\copy\zerodotbox@|, thus creating a curve constructed from small dots. -Otherwise (2a)~set the |\splinebox@| with the specified object and -(2b)~use |\copy\splinebox@| as the expansion of |\splinedrop@|. -(3)~Set |\splinetol@| to be $\sqrt2\times$ maximum of width and -height+depth of the box. - -If |\xycrvconn@| is empty~(4)~then |\splineconn@| is set to |\relax|. -(5)~Otherwise it is necessary to reset the direction at each -place along the curve before dropping the object specified -by |\xycrvconn@|. - -\DOCMODE( -\xywarnifdefined\splinedrop@ -\xydef@\setstdsplinedrop@{% - \setbox\splinebox@=\hbox\bgroup - \setboxz@h{\expandafter\object\xycrvdrop@{}}% - \splinedefaulttol@ \dimen@=\wd\z@ \dimen@ii=\ht\z@ \advance\dimen@ii\dp\z@ - \ifdim\dimen@ii>\dimen@ \dimen@=\dimen@ii \fi \dimen@=1.4142\dimen@ - \ifdim\dimen@>\splinetol@ \splinetol@=\dimen@\else\dimen@=\splinetol@\fi - \dimen@=.5\wd\z@ - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \kern-\dimen@ \Drop@@ \kern\dimen@ - \edef\tmp@{\egroup \splinetol@=\the\splinetol@ - \ifInvisible@\noexpand\Invisible@true - \else\noexpand\Invisible@false\fi}\tmp@ - \edef\splinedefaulttol@{\splinetol@=\the\splinetol@}% - \def\splinedrop@{\copy\splinebox@\splineextra@@}} - -\xywarnifdefined\splineconn@ -\xydef@\stdsplineconn@{{\setsplinedir@ % %(5) - \setboxz@h\bgroup\expandafter\object\xycrvconn@{}% - \edef\tmp@{\egroup\L@c=\the\L@c \R@c=\the\R@c \D@c=\the\D@c \U@c=\the\U@c - \noexpand\def\noexpand\Drop@@}\expandafter\tmp@\expandafter{\Drop@@}% - \setboxz@h{\kern-\L@c \boxz@}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \Drop@@}} - -\xydef@\setcrvobjects@{\setstdsplinedrop@ \def\splineconn@{\stdsplineconn@}} -\xylet@\splineextra@@=\relax -\DOCMODE) - -\DOCMODE( -\xydef@\splinenear@#1#2#3#4{{\d@X=#1\advance\d@X-#2% - \ifdim\d@X<\z@ \d@X=-\d@X\fi - \ifdim\splinetol@<\d@X \aftergroup\splinefar@true - \else \d@Y=#3\advance\d@Y-#4\ifdim\d@Y<\z@ \d@Y=-\d@Y\fi - \ifdim\splinetol@<\d@Y\aftergroup\splinefar@true - \else \xydist@\d@X\d@Y - \ifdim\splinetol@<\dimen@ \aftergroup\splinefar@true - \else - \ifdim\dimen@<.1\splinetol@\aftergroup\splinetooclose@\fi - \fi\fi\fi}} - -\xydef@\splineadvance@@{\global\advance\splineval@\splinedepth@} -\DOCMODE) - -This stops objects being placed too close together along the spline. -It is necessary at the beginning of a segment with a non-zero edge. -Otherwise, with a large |\splinetolerance@|, the accuracy of the -place-finding mechanism results in being so deep in the tree that -objects placed at every level on the way up would be much too close. - -\DOCMODE( -\xydef@\splinetooclose@{\aftergroup\aftergroup\aftergroup\splinetooclose@@} -\xydef@\splinetooclose@@{\def\splineplotpt@{\relax}} -\DOCMODE) - -Each place along the curve is tested according to a |\splinetest@|. -Normally this is for visibility according to the extent of the objects -at the end-points of the curve. -When an edge is crossed then the |\splinecontinue| routine is called -to decide how the behaviour may change e.g. whether the recursion -should continue or exit to the top of the existing tree. - -\DOCMODE( -\xydef@\splinepoint@@{% -\splinetrace@{P@:(\the\X@c,\the\Y@c)::\the\splineval@;\the\splinedepth@}% - {\splinetest@\ifsplineplot@\relax\else\aftergroup\splinecontinue\fi}} - -\xydef@\splinepoint@{% - {\splinetest@\ifsplineplot@\aftergroup\splinecontinue\fi}} -\xylet@\splinepoint=\splinepoint@ - -\xydef@\splinecontinue@{% - \global\let\splinepoint=\splinepoint@@ - \global\let\splinecontinue=\splinecontinue@@} -\xydef@\splinecontinue@@{% - \global\let\splinepoint=\splinepoint@ - \global\let\splinecontinue=\relax} -\xylet@\splinecontinue=\splinecontinue@ - -\DOCMODE) - -Points where segments join lie at the top of the recursive tree. -They are tested directly against the objects at the endpoints, -in order to decide whether or not they are visible. - -\DOCMODE( -\xydef@\splineknotpoint@{{\X@p=\X@c \Y@p=\Y@c \cv@start - \the\Edge@c\@ne \ifInside@\else\aftergroup\splineknotpoint@@\fi}}% -\xydef@\splineknotpoint@@{{\X@p=\X@c \Y@p=\Y@c \cv@end - \the\Edge@c\@ne \ifInside@\else \aftergroup\splinepoint\fi}}% - -\xylet@\firstsplinepoint@=\splineknotpoint@ -\xylet@\lastsplinepoint@= \splineknotpoint@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This routine is used to find where the spline crosses -the edges of the objects at $p$ and $c$. -First (1)~ we set up the tests which will determine when -the edge has been crossed. Then commence the scan.~(2) - -\DOCMODE( -\xydef@\splined@@@{% -\splinetrace@{finding end types}% -\splinetrace@{bstartPLACE@:\bstartPLACE@; bendPLACE@:\bendPLACE@}% - \DN@{\splinescan@}\ifx\bstartPLACE@\empty - \ifx\bendPLACE@\relax\def\bendPLACE@{1}\fi - \else\ifx\bstartPLACE@\relax - \else\ifx\bstartPLACE@\undefined - \else - \DN@{\splinescanbreak@}\ifx\bendPLACE@\relax\def\bendPLACE@{1}\fi - \DNii@{0}\ifx\bstartPLACE@\nextii@ - \DNii@{1}\ifx\bendPLACE@\nextii@\DN@{}% -% \else\DNii@{0.0}\ifx\bendPLACE@\nextii@\DN@{}\fi - \fi\fi % use the saved values - \fi\fi\fi \next@ }% %(2) - -\xydef@\splineStarttest@{{\X@p=\X@c \Y@p=\Y@c \cv@start \the\Edge@c\@ne - \ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}% -\xydef@\splineEndtest@{{\X@p=\X@c \Y@p=\Y@c \cv@end \the\Edge@c\@ne - \ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}% - -\xydef@\splineBreakStarttest@{{\X@p=\X@c \Y@p=\Y@c \cv@brstart \the\Edge@c\@ne - \ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}% - -\xydef@\splineBreakEndtest@{{\X@p=\X@c \Y@p=\Y@c \cv@brend \the\Edge@c\@ne - \ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}% -% \ifInside@\aftergroup\splineplot@true\else\aftergroup\splineplot@false\fi}}% - -\xylet@\splineStarttest=\splineStarttest@ -\xylet@\splineEndtest=\splineEndtest@ - -\xydef@\splineSlowStarttest{{\X@p=\X@c \Y@p=\Y@c \cv@start \the\Edge@c\@ne - \ifInside@\aftergroup\splineplot@maybe@@\else\aftergroup\splineplot@true\fi}}% -\xydef@\splineSlowEndtest{{\X@p=\X@c \Y@p=\Y@c \cv@end \the\Edge@c\@ne - \ifInside@\aftergroup\splineplot@maybe@@\else\aftergroup\splineplot@true\fi}}% -\xydef@\splineplot@maybe{\splineplot@false}% -\xylet@\splineplot@maybe@@=\splineplot@maybe -\DOCMODE) - -(3)~Start a new group and bind some macros appropriate -to finding the starting edge. -(4)~start the spline algorithm, using a small tolerance. -(5)~Close the group, thus removing the bindings of~(3). -(6)~Record the information, which has been stored globally. -(7)~Do the same for the ending edge. -(8)~Clear the global information. -After this, set the curve as usual.~(9) - -\DOCMODE( -\xydef@\splinescan@{\bgroup% - \expandafter\def\xysplineedges@{\z@;\z@,\z@;\z@,}% - \bgroup \cv@start - \expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}% - \ifx\next@\nextii@ \gdef\splineedges@{\z@;\z@,}% - \else\aftergroup\splinestartScan@\fi - \egroup \relax - \bgroup \cv@end - \expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}% - \ifx\next@\nextii@ - \getcrvsegsnum@ \edef\segmentnum@{\the\count@}% - \splineval@=\z@ \splineRecordEndValue@ - \else\aftergroup\splineendScan@\fi - \egroup \egroup - \expandafter\testsplineedges@\splineedges@;,@@% - \expandafter\edef\xysplineedges@{\splineedges@}% %(6) - \global\let\splineedges@=\relax % %(8) -\splinetrace@{edge params: \xysplineedges@}}% - -\xydef@\testsplineedges@#1;#2,#3;#4,#5@@{% - \DN@{#5}\ifx\next@\empty - \DNii@{#4}\ifx\nextii@\empty - \xynoedgespline@{end}\def\splineedges@{#1;#2,\z@;\z@,}\fi - \DNii@{#2}\ifx\nextii@\empty - \xynoedgespline@{start}\def\splineedges@{\z@;\z@,\z@;\z@,}\fi - \fi } -\xydef@\xynoedgespline@#1{\xywarning@{#1 edge of spline not found}}% - -\xydef@\splinestartScan@{\bgroup % %(3) -\splinetrace@{scan for start}% - \global\let\splineadvance@=\splineadvance@@ %(3) - \let\spline@start=\splinefindStart@ %(3) - \let\spline@end=\spline@end@@ %(3) - \let\splinefinish@=\splinefinish@@ - \let\splinewhich=\relax - \global\splinelength@=\z@ -% \let\splinerec@=\splineSrec@ - \def\splinerec@{\let\splinerec@=\splineSrec@ \splinedecast@@}% - \edef\splineedges@{}% - \expandafter\let\xysplineedges@\relax -% \bgroup - \xylowtolerance@ \splined@@ - \ifx\splineedges@\empty\expandafter\splineslowScan@\fi - \ifx\splineedges@\relax\expandafter\splinenostart@\fi - \egroup }% %(4) - -\xydef@\splineslowScan@{% - \let\splineStarttest=\splineSlowStarttest - \let\splinescanStarttest=\relax - \def\splinerec@{\let\splinerec@=\splineSrec@ \splinedecast@@}% - \splined@@ } - -\xydef@\splineslowEnd@{% - \global\let\splineEndtest=\splineSlowEndtest - \let\splinescanEndtest=\relax - \def\splinerec@{\let\splinerec@=\splineErec@ \splinedecast@@}% - \splined@@ } - -\xydef@\splinenostart@{% - \def\segmentnum@{1}\splinelength@=\z@ \splineval@=\z@ - \xynoedgespline@{start}\splineRecordValue@ } - -\xydef@\splineendScan@{\bgroup % %(3)<----------- - \bgroup % %(7) -\splinetrace@{scan for end}% - \global\let\splineadvance@=\splineadvance@@ - \let\spline@start=\splinefindEnd@ - \let\spline@end=\spline@end@@ - \let\splinefinish@=\splinefinish@@ - \let\splinewhich=\relax - \global\splinelength@=\z@ -% \let\splinerec@=\splineErec@ - \global\let\splineEndtest=\splineEndtest@ - \def\splinerec@{\let\splinerec@=\splineErec@ \splinedecast@@}% - \expandafter\def\expandafter\prevedges@\expandafter{\splineedges@}% - \xylowtolerance@ \splined@@ - \ifx\splineedges@\prevedges@\expandafter\splineslowScan@\fi - \egroup \egroup} - -\xydef@\splinescanbreak@{% -\splinetrace@{SCANBREAK}% - \gdef\breakedges@{}% - \DN@{0}\ifx\next@\bstartPLACE@ - \DN@{\bgroup \def\tmp@####1;####2,####3;####4,{% - \global\splineval@=####2\relax}% - \expandafter\expandafter\expandafter\tmp@\xysplineedges@ - \def\segmentnum@{1}\splineRecordBreakValue@ \egroup}% - \else - \bgroup \cv@start - \expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}% - \ifx\next@\nextii@ \aftergroup\splinezerostart - \else\aftergroup\splinewidestart\fi - \egroup - \fi \next@ - \DN@{1}\ifx\next@\bendPLACE@ - \DN@{\bgroup \def\tmp@####1;####2,####3;####4,{% - \global\splineval@=####4\relax}% - \expandafter\expandafter\expandafter\tmp@\xysplineedges@ -%% \multiply\splineval@\m@ne \advance\splineval@\p@ -%% \def\segmentnum@{1} - \getcrvsegsnum@ \edef\segmentnum@{\the\count@}% - \global\multiply\splineval@\count@ - \splineRecordEndBreakValue@ \egroup}% - \else - \bgroup \cv@end - \expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}% - \ifx\next@\nextii@ \aftergroup\splinezeroend - \else\aftergroup\splinewideend\fi - \egroup - \fi \next@ - \expandafter\def\expandafter - \xybreakedges@\expandafter{\breakedges@}% %(6) - \global\let\breakedges@=\relax % %(8) -\splinetrace@{break params: \xybreakedges@::\bstartPLACE@--\bendPLACE@}% - \expandafter\let\xysplineedges@\xybreakedges@ } - -\xydef@\getcrvsegsnum@{% sets \count@ - \count@=\ptsnum@\relax \ifnum\count@>\@ne\advance\count@\m@ne\fi} - -\xydef@\splinezerostart{\DN@{\bgroup -\splinetrace@{splinezerostart:}% - \dimen@=\bstartPLACE@\p@ - \global\splineval@=\dimen@ - \splineRecordBreakValue@ \egroup }} - -\xydef@\splinezeroend{\DN@{\bgroup -\splinetrace@{splinezeroend:}% - \dimen@=\bendPLACE@\p@ - \multiply\dimen@\m@ne \advance\dimen@\p@ - \def\segmentnum@{0}\global\splineval@=\dimen@ - \splineRecordEndBreakValue@ \egroup }} - -\xydef@\splinewidestart{\DN@{\bgroup - \splinetrace@{scan for start}% - \let\splinefbcontinue@=\breakstartcontinue@ - \let\splinef@pt=\splinef@breakpt - \let\splinef@end=\break@start - \edef\tmp@{{\bstartPLACE@}}% - \expandafter\splinealong@@\tmp@\z@>\endgroup\egroup }} - -\xydef@\splinewideend{\DN@{\bgroup - \splinetrace@{scan for wide end}% - \let\splinefbcontinue@=\breakendcontinue@ - \let\splinef@pt=\splinef@breakpt - \let\splinef@end=\break@end - \edef\tmp@{{\bendPLACE@}}% - \expandafter\splinealong@@\tmp@\z@<\endgroup\egroup }} - - -\xydef@\splineSrec@{{% -\splinetrace@{v=\the\splineval@ + d=\the\splinedepth@ : - (\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c):Srec }% - \splineStarttest - \ifsplineplot@ - \ifdim\splinedepth@<.0001\p@ \aftergroup\splinefinish@ - \global\advance\splineval@ .5\splinedepth@ - \else\aftergroup\splinedecast@@ \fi - \else \aftergroup\splineadvance@ \fi}} - -\xydef@\splinefindStart@@{\bgroup \bgroup - \expandafter\expandafter\expandafter\getsplineparams@\xysplineparams@ - \global\let\splineadvance@=\splineadvance@@ - \global\let\splinepoint=\relax - \let\splinegoal@=\splineRecordValue@ \global\dimen5=\z@ - {\X@c=\X@p \Y@c=\Y@p \splinescanStarttest }%% first test initial point. -} - -\xydef@\splinefindStart@{% - \expandafter\crv@cnt@\xycrvptsnum@\relax - \ifnum\crv@cnt@>\tw@ - \crv@cnt@=\@ne \splineplot@false \splinesegment@{\crv@cnt@}% - {\splineStarttest %% test end of segment. - \ifsplineplot@\aftergroup\splineplot@true\fi}% - \ifsplineplot@ \else \searchforStartsegment@ \fi - \splinesegment@{\crv@cnt@}% -\splinetrace@{start is in segment \segmentnum@}% - \else \splinesegment@\@ne \fi - \splineplot@false \splinefindStart@@ -} -\DOCMODE) - -This finds the first spline segment whose endpoint is beyond the edge of -the object. - -\DOCMODE( -\xydef@\searchforStartsegment@{\splineplot@true\loop@ - \advance\crv@cnt@\@ne - \expandafter\count@\xycrvptsnum@\relax - \ifnum\count@=\crv@cnt@\expandafter\splineplot@false - \else - \splinesegment@{\crv@cnt@}{\splineStarttest - \ifsplineplot@\aftergroup\splineplot@false - \else\aftergroup\splineplot@true\fi }% - \fi \ifsplineplot@\repeat@ -} -\DOCMODE) - -Finding the end is similar, but the spline is searched in reverse order. - -\DOCMODE( -\xydef@\splinefindEnd@@{\bgroup \bgroup - \expandafter\expandafter\expandafter\getsplineparams@\xysplineparams@ -\splinetrace@{params:\xysplineparams@}% - \splinereverse@@ -\splinetrace@{params:\xysplineparams@}% - \global\let\splineadvance@=\splineadvance@@ - \global\let\splinepoint=\splinescanEndtest - \let\splinegoal@=\splineRecordEndValue@ \global\dimen5=\z@ - {\X@c=\X@p \Y@c=\Y@p \splinescanEndtest }%% first test initial point. -} - -\xydef@\splinereverse@@{\splinereverse@@@} -\xydef@\splinereverse@@@{% - \def\postspline@{\d@X=-\d@X \d@Y=-\d@Y}% - \dimen@ii=\X@c \X@c=\X@p \X@p=\dimen@ii - \dimen@ii=\Y@c \Y@c=\Y@p \Y@p=\dimen@ii - \global\dimen5=-\dimen5\relax - \global\advance\dimen5\splinelength@ } -\xydef@\postspline@{} - -\xydef@\splineErec@{{% - \dimen@=\splineval@ \advance\dimen@\splinedepth@ % -\splinetrace@{ER (\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;; -\the\dimen@,\the\splinedepth@}% - \splineEndtest - \ifsplineplot@ - \ifdim\splinedepth@<.0001\p@ \aftergroup\splinefinish@ -% \global\advance\splineval@ .5\splinedepth@ - \else\aftergroup\splinedecast@@ \fi - \else \aftergroup\splineadvance@ \fi}} - -\xydef@\splinefindEnd@{% - \expandafter\crv@cnt@\xycrvptsnum@\relax - \ifnum\crv@cnt@>\tw@ - \advance\crv@cnt@\m@ne - \splineplot@false \splinesegment@{\crv@cnt@}% - {\X@c=\X@p \Y@c=\Y@p \splineEndtest %% test end of segment. - \ifsplineplot@\aftergroup\splineplot@true\fi }% - \ifsplineplot@ - \else \searchforEndsegment@ \fi - \splinesegment@{\crv@cnt@}% -\splinetrace@{end is in segment: \segmentnum@ }% - \else \splinesegment@\@ne \fi - \splineplot@false\splinefindEnd@@ -} -\xydef@\searchforEndsegment@{\splineplot@true\loop@ - \advance\crv@cnt@\m@ne - \ifnum\crv@cnt@=\z@\expandafter\splineplot@false - \else - \splinesegment@{\crv@cnt@}{\X@c=\X@p \Y@c=\Y@p \splineEndtest - \ifsplineplot@\aftergroup\splineplot@false - \else\aftergroup\splineplot@true\fi}% - \fi \ifsplineplot@\repeat@ -} -\DOCMODE) - -These are the tests, to determine when the edge-point has been found. - -\DOCMODE( -\xydef@\splinescanStarttest{% -\splinetrace@{SST (\the\X@c,\the\Y@c); \the\splinelength@, \the\splineval@}% - {\splineplot@false\splineStarttest - \ifsplineplot@\expandafter\splinefinish@\fi}} - -\xydef@\splinescanEndtest{% -\splinetrace@{SET (\the\X@c,\the\Y@c); \the\splinelength@, \the\splineval@}% - {\splineplot@false\splineEndtest - \ifsplineplot@\expandafter\splinefinish@\fi}} -\DOCMODE) - -\DOCMODE( -\xydef@\splineBrec@{{% - \dimen@=\splineval@ \advance\dimen@\splinedepth@ % -\splinetrace@{BR (\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;; -\the\dimen@,\the\splinedepth@}% - \splineEndtest - \ifsplineplot@ \aftergroup\splineadvance@ \else - \ifdim\splinedepth@<.0001\p@ \aftergroup\splinefinish@ -% \global\advance\splineval@ .5\splinedepth@ - \else\aftergroup\splinedecast@@ \fi \fi}} - -\xydef@\splineBSrec@{{% -\splinetrace@{SR (\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;; -\the\dimen@,\the\splinedepth@:SR}% - \splineStarttest - \ifsplineplot@ - \ifdim\splinedepth@<.0001\p@ \aftergroup\splinefinish@ - \global\advance\splineval@ .5\splinedepth@ - \else \advance\splineval@\splinedepth@ - \splinetest@ \advance\splineval@-\splinedepth@ - \ifsplineplot@\aftergroup\splineadvance@ - \else\aftergroup\splinedecast@@\fi - \fi - \else - \global\advance\splineval@\splinedepth@ - \aftergroup\splinefinish@ \fi }} - -\xydef@\splineBErec@{{% - \dimen@=\splineval@ \advance\dimen@\splinedepth@ % -\splinetrace@{BE (\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;; - \the\dimen@,\the\splinedepth@}% - \splineEndtest - \ifsplineplot@ - \ifdim\splinedepth@<.0001\p@ \aftergroup\splinefinish@ - \global\advance\splineval@ .5\splinedepth@ - \else \advance\splineval@\splinedepth@ - \splinetest@ \advance\splineval@-\splinedepth@ - \ifsplineplot@\aftergroup\splineadvance@ - \else\aftergroup\splinedecast@@\fi - \fi - \else - \ifdim\splinedepth@<\p@ \global\advance\splineval@\splinedepth@ \fi - \aftergroup\splinefinish@ \fi }} - -\xydef@\splinef@breakpt#1{% gobbles |\splinecancel| - \ifdim\splineval@>\z@ -\splinetrace@{found: val=\the\splineval@;(\the\X@c,\the\Y@c)}% - \else -\splinetrace@{found: val=\the\splineval@;(\the\X@p,\the\Y@p)}% - \fi \splinefbcontinue@ } - -\xydef@\splinef@pt@@{% - \ifdim\splineval@>\z@ -\splinetrace@{found: val=\the\splineval@;c:(\the\X@c,\the\Y@c)}% - \global\dimen@i=\X@c \global\dimen3=\Y@c - \else -\splinetrace@{found: val=\the\splineval@;p:(\the\X@p,\the\Y@p)}% - \fi - \setsplinedir@ \global\dimen5=\d@X \global\dimen7=\d@Y - \global\splineval@=\splineval@ - \aftergroup\splinefocus@ } - -\xydef@\findbreakwarning@#1{% - \xywarning@{#1 of break not found: bSTART=\bstartPLACE@, bEND=\bendPLACE@}% - \DN@{#1}\def\DNii@{start}\ifx\next@\nextii@\splineRecordBreakValue@ - \else\splineRecordEndBreakValue@\fi\egroup}% - -\xydef@\breakstartcontinue@{\bgroup \cv@start -%\xystatus@{SS}% - \expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}% - \ifx\next@\nextii@ \aftergroup\breakstartfound@ - \else \aftergroup\breakstartcontinue@i\fi \egroup }% - -\xydef@\breakstartcontinue@i{% -\splinetrace@{move to start edge, from (\the\X@c,\the\Y@c): val=\the\splineval@ }% -% \global\let\splinetest@=\splineStarttest - \global\let\splineEndtest=\splineBreakStarttest@ - \global\let\splinetest@=\splineBreakStarttest@ -% \global\let\splinerec@=\splineSrec@ - \gdef\splinerec@{\global\let\splinerec@=\splineSrec@ \splinedecast@@}% - \global\let\splinepoint=\relax - \global\let\spline@end=\checkfoundSbreak@ -% \global\let\splinegoal@=\splineRecordBreakValue@ - \global\let\splinegoal@=\splineRecordSBreakValue@ - \global\let\splinefinish@=\splinefinish@@ } - -\xydef@\breakstartfound@{% -\splinetrace@{found start edge, at (\the\X@c,\the\Y@c): val=\the\splineval@ }% - \global\let\splinetest@=\splineStarttest - \gdef\splinerec@{\splinegoal@ \global\let\splinerec@=\splinefinish@ }% - \global\let\splinepoint=\relax - \global\let\spline@end=\relax %\checkfoundSbreak@ - \global\let\splinegoal@=\splineRecordBreakValue@ - \global\let\splinefinish@=\splinefinish@@ - } - -\xydef@\checkfoundSbreak@{% - \ifnum\xycrvptsnum@<\thr@@\DN@{\findbreakwarning@{start}}% - \else\DN@{\searchBreakSsegment@}\fi \next@ }% - -\xydef@\searchBreakSsegment@{% - \crv@cnt@=\segmentnum@ \DN@{}\count@=\crv@cnt@ - \DNii@{}\ifnum\splineval@=\z@ \ifnum\crv@cnt@=\@ne - \ifnum\xycrvptsnum@=\@ne\count@=\z@\DNii@{\egroup}\fi - \else \DN@{\egroup}\fi - \else \ifnum\splineval@=\m@ne - \else \advance\crv@cnt@\@ne \fi \fi - \ifnum\crv@cnt@=\xycrvptsnum@\relax - \ifnum\xycrvptsnum@>\tw@ \DNii@{\egroup}\fi - \DN@{\expandafter\splineRecordBreakValue@\nextii@}% - \else - \DN@{\splinesegment@{\crv@cnt@}\splinesetparams@ - \splined@@ \egroup}% - \fi \next@ } - -\xydef@\checkfoundEbreak@{% - \ifnum\xycrvptsnum@<\thr@@\DN@{\findbreakwarning@{end}}% - \else\DN@{\searchBreakEsegment@}\fi \next@ }% - -\xydef@\searchBreakEsegment@{% - \crv@cnt@=\segmentnum@ \DN@{}\count@=\crv@cnt@ - \DNii@{}\ifnum\splineval@=\z@ \ifnum\crv@cnt@=\@ne - \ifnum\xycrvptsnum@=\@ne\count@=\z@\DNii@{\egroup}\fi - \else\DN@{\egroup}\fi - \else \advance\crv@cnt@\m@ne \fi - \ifnum\count@=\z@ -% \ifnum\crv@cnt@=\z@ - \ifnum\xycrvptsnum@>\tw@ \splineval@=\m@ne\p@ - \DNii@{\egroup}\fi - \DN@{\expandafter\splineRecordEndBreakValue@\nextii@}\else - \DN@{\splinesegment@{\crv@cnt@}\splinereverse@ - \readsplineparams@ \splined@@ \egroup}% - \fi \next@ } - -\xydef@\break@start{\egroup \egroup -\splinetrace@{scan for start}% - \global\let\splineadvance@=\splineadvance@@ %(3) - \let\spline@start=\splinefindBStart@ %(3) - \let\spline@end=\egroup - \let\splinefinish@=\splinefinish@@ - \let\splinewhich=\relax - \global\let\splineadvance@=\splineadvance@@ - \global\let\splinepoint=\relax - \let\splinegoal@=\splineRecordBreakValue@ - \global\dimen5=\z@ \global\splinelength@=\z@ - \let\splinerec@=\splineSrec@ - \def\breakedges@{}% - \bgroup \bgroup \splined@@ } - -\xydef@\splinefindBStart@{\bgroup -% \global\splineval@=\z@ \global\splinedepth@=.5\p@} - \global\splineval@=\z@ \splinedepth@=.5\p@} - -\xydef@\breakendcontinue@{\bgroup - \edef\tmp@{\X@p = \the\X@c \Y@p=\the\Y@c}\cv@end\tmp@ % <--- irrelevant ? - \expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}% -%\xystatus@{EE}% - \ifx\next@\nextii@ \aftergroup\breakendfound@ - \else\aftergroup\breakendcontinue@i\fi \egroup }% - -\xydef@\breakendcontinue@i{% -\splinetrace@{move to end edge, from (\the\X@c,\the\Y@c): val=\the\splineval@ }% -% \global\let\splinetest@=\splineEndtest - \global\let\splineEndtest=\splineBreakEndtest@ - \global\let\splinetest@=\splineBreakEndtest@ - \gdef\splinerec@{\global\let\splinerec@=\splineErec@\splinedecast@@}% - \global\let\splinepoint=\relax - \global\let\spline@end=\checkfoundEbreak@ -% \global\let\splinegoal@=\splineRecordEndBreakValue@ - \global\let\splinegoal@=\splineRecordEBreakValue@ - \global\let\splinefinish@=\splinefinish@@ - \splinerec@ } - -\xydef@\splineRecordEBreakValue@{%\getcrvsegsnum@ -\splinetrace@{\the\count@\space segments, \the\splineval@}% -% \ifnum\segmentnum@>\z@ \dimen@=\segmentnum@\p@ \else \dimen@=\p@\fi -% \advance\dimen@-\splineval@\relax -% \ifnum\count@>\@ne \divide\dimen@\count@\fi -% \global\splineval@=\dimen@ - \splineRecordEndBreakValue@ } - -\xydef@\splineRecordSBreakValue@{\getcrvsegsnum@ - \dimen@=\splineval@ - \advance\dimen@\segmentnum@\p@ \advance\dimen@-\p@ - \dimen@nth\count@\dimen@ - \global\splineval@=\dimen@ \def\segmentnum@{1}% - \splineRecordBreakValue@ } - -\xydef@\breakendfound@{% -\splinetrace@{found end edge, at (\the\X@c,\the\Y@c): val=\the\splineval@ }% - \global\let\splinetest@=\splineEndtest - \gdef\splinerec@{\splinegoal@ \global\let\splinerec@=\splinefinish@}% - \global\let\splinepoint=\relax - \global\let\spline@end=\relax %\checkfoundEbreak@ - \global\let\splinegoal@=\splineRecordEndBreakValue@ - \global\let\splinefinish@=\splinefinish@@ } - - -\xydef@\break@end{\egroup \egroup - \global\let\splineadvance@=\splineadvance@@ - \let\spline@start=\splinefindBEnd@ - \let\spline@end=\egroup - \let\splinefinish@=\splinefinish@@ - \let\splinewhich=\relax - \global\let\splineadvance@=\splineadvance@@ - \global\let\splinegoal@=\splineRecordEndBreakValue@ - \global\splinelength@=\z@ - \let\splinerec@=\splineErec@ - \global\let\splineEndtest=\splineEndtest@ - \bgroup \splined@@ } - -\xydef@\splinefindBEnd@{\bgroup\bgroup - \splinereverse@ \readsplineparams@ - \global\splineval@=\z@ } -\DOCMODE) - -This appends the new information to that currently stored in the control -sequence referenced by |\xysplineparams@|. It is temporarily stored -globally in |\splineparams@|, to be later transferred to -(the c.s. referenced by) |\xysplineparams@| when at the appropriate -level of groupingl. - -\DOCMODE( -\xydef@\splineRecordValue@{% - \ifx\unknown\segmentnum@\relax - \else - \getcrvsegsnum@ - \dimen@=\splineval@ \advance\dimen@ \segmentnum@\p@ - \advance\dimen@-\p@ \dimen@nth\count@\dimen@ - \global\splineval@=\dimen@ - \fi - \xdef\splineedges@{\splineedges@\the\splinelength@;\the\splineval@,}% -\splinetrace@{found edge: \splineedges@}} - -\xydef@\splineRecordEndValue@{% - \ifx\unknown\segmentnum@\relax - \else - \getcrvsegsnum@ - \dimen@=\splineval@ \advance\dimen@ \count@\p@ - \advance\dimen@-\segmentnum@\p@ \dimen@nth\count@\dimen@ - \global\splineval@=\dimen@ - \fi - \xdef\splineedges@{\splineedges@\the\splinelength@;\the\splineval@,}% -\splinetrace@{found edge: \splineedges@}} - -\xydef@\splineRecordBreakValue@{% - \ifx\unknown\segmentnum@\relax - \else\expandafter\advance\expandafter\splineval@\segmentnum@\p@ - \count@=\segmentnum@\relax - \ifnum\count@>0 \advance\splineval@-\p@ \fi\fi -% \ifx\breakedges@\relax\relax\else\ifx\breakedges@\empty\else -% \ifdim\splineval@<\p@\ifdim\splineval@>\z@ -% \expandafter\testbreakedges@\breakedges@ @% -% \fi\fi\fi\fi - \xdef\breakedges@{\breakedges@\the\splinelength@;\the\splineval@,}% - \global\let\spline@end=\egroup -\splinetrace@{found break edge: \breakedges@}} - -\xydef@\splineRecordEndBreakValue@{% - \ifx\unknown\segmentnum@\relax - \else\count@=\segmentnum@\relax \ifnum\count@=\z@ - \else \getcrvsegsnum@ - \count@@=\count@ \advance\count@@-\segmentnum@\relax - \dimen@=\splineval@ \advance\dimen@ \count@@\p@ - \dimen@nth\count@\dimen@ - \global\splineval@=\dimen@ - \fi\fi -% \multiply\splineval@\m@ne \advance\splineval@\p@ % <---------- !!! - \ifdim\splineval@<\z@ \relax\splineval@=\z@ \fi - \ifx\breakedges@\relax\relax\else\ifx\breakedges@\empty\else - \ifdim\splineval@<\p@\relax \ifdim\splineval@>\z@ - \expandafter\testbreakedges@\breakedges@ @% - \fi\fi\fi\fi - \xdef\breakedges@{\breakedges@\the\splinelength@;\the\splineval@,}% - \global\let\spline@end=\egroup -\splinetrace@{found break edge: \breakedges@}} - -\xydef@\testbreakedges@#1;#2,#3@{\bgroup \dimen@=#2\relax - \advance\dimen@\splineval@ \advance\dimen@-\p@ -\splinetrace@{testbreak: #1;#2,#3@ \the\splineval@::\the\dimen@}% - \DN@{\egroup}\ifdim\dimen@>\z@ - \edef\next@{\egroup\def\noexpand\breakedges@{#1;1pt,#3}}% - \else\ifdim\zz@\dimen@ - \edef\next@{\egroup\def\noexpand\breakedges@{#1;1pt,#3}}% - \fi \fi \next@ } - -\xydef@\splineRecordBreakEValue{% - \ifdim\splineval@>\z@ - \splineval@=-\splineval@ \advance\splineval@\p@ \fi - \splineRecordBreakValue@ }% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Use the following distance approximation: - -$$ -dist = \cases{ -dX + .5 dY/dX dY & if $dY/dX dY \lt (\sqrt2-1)\times dX $\cr -{3\sqrt2\over4} dX + {\sqrt2\over4} dY/dX dY -& if $(\sqrt2-1)\times dX \lt dY/dX dY \lt dX $\cr -}$$ -and similarly, interchanging $dY$ and $dX$ when $dY \gt dX$. - -$\sqrt2 \approx 1.41422$,\ -$(\sqrt2)/2 \approx 0.70711$,\ -$(\sqrt2)/4 \approx 0.353555$,\ -$3(\sqrt2)/4 \approx 1.060665$ - -\DOCMODE( -\xydef@\xydist@#1#2{\ifdim#1>#2\relax - \quotient@@\tmp@#2#1\expandafter\dimen@ii\tmp@#2\relax - \ifdim\dimen@ii>.41422#1\relax - \dimen@=1.060665#1\advance\dimen@ .353555\dimen@ii\relax - \else \dimen@=#1\advance\dimen@.5\dimen@ii\fi - \else - \quotient@@\tmp@#1#2\expandafter\dimen@ii\tmp@#1\relax - \ifdim\dimen@ii>.41422#2\relax - \dimen@=1.060665#2\advance\dimen@ .353555\dimen@ii\relax - \else \dimen@=#2\advance\dimen@.5\dimen@ii\fi - \fi} -\DOCMODE) - -\DOCMODE( -\xydef@\splineDadvance@{\splineadvance@@ - \expandafter\splineDadvance@@\splineDadvance@@@} -\xydef@\splineDadvance@@#1#2#3#4{% - {\d@X=#1\advance\d@X-#2\ifdim\d@X<\z@ \d@X=-\d@X\fi - \d@Y=#3\advance\d@Y-#4\ifdim\d@Y<\z@ \d@Y=-\d@Y\fi - \xydist@\d@X\d@Y - \global\advance\splinelength@\dimen@ -\splinetrace@{d=(\the\d@X,\the\d@Y): v=\the\splineval@: l=\the\splinelength@}% -}} -\DOCMODE) - -\DOCMODE( -\xydef@\spline@end@{\lastsplinepoint@ \egroup \egroup - \ht\z@=\z@ \dp\z@=\z@ \wdz@=\z@ \boxz@}% -\gdef\splinetest@{\splineplot@true} -\xydef@\spline@end@@{\egroup \egroup} -\DOCMODE) - - - ...value for |\splinerec@| for the fast find... - -\DOCMODE( -\xydef@\splinefrec@{{% - \advance\splineval@\splinedepth@ -\splinetrace@{F:(\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);; -\the\splineval@;\the\splinedepth@}% - \ifdim\dimen5=\splineval@ \aftergroup\splinefinishf@ - \else \dimen@=\dimen5\advance\dimen@-\splineval@ - \ifdim\dimen@<\z@ \dimen@=-\dimen@ \fi - \ifdim\dimen@<.0001\p@ \aftergroup\splinefinishf@ - \else - \ifdim\dimen5<\splineval@\aftergroup\splinedecast@@ - \else \aftergroup\splineadvance@ - \fi\fi\fi}} - -\xydef@\splinefinishf@{\global\advance\splineval@\splinedepth@ - \splinefinish@}% -\DOCMODE) - -The macro |\spline@find#1#2| attempts to finds a specific point on a single -spline segment. - |#1| is the parameter value, in the range [0,1] on that segment; - |#2| is a <dimen> denoting how much further to slide along the segment. -It really only checks whether |#2| has a negative value before passing the -information to |\spline@@find#1#2|, which does the actual search. - -If |#2| is negative then the spline segment is searched in the reverse direction, -starting at its endpoint. -This is done by reversing the order of the control points, hence the parameter -value found as $x$ implies that we really want $1-x$ on the un-reversed segment. -Similarly the resulting vaules for |\d@X| and |\d@Y| must be negated. -The instructions to do this are loaded into a macro |\postfind@| which is expanded -once the search has been completed. -For an unreversed segment |\postfind@| expands to |{}|. - -\DOCMODE( -\xydef@\spline@find#1#2#3{% -\splinetrace@{spline@find #1 #2 #3}% - \readsplineparams@ - \global\let\splinefinish@=\splinefinish@@ - \global\let\splinegoal@=\splinef@pt - \global\let\splinepoint=\relax - \dimen@=#1\relax\dimen@ii=#2\relax - \ifdim\dimen@ii=\z@ \def\postfind@{}% - \else\def\postfind@{}% - \ifdim\dimen@ii<\z@ \splinereverse@ - \readsplineparams@ -\splinetrace@{reverse orientation: (\the\X@p,\the\Y@p),(\the\X@c,\the\Y@c)}% - \dimen@=#1\relax\dimen@ii=#2\relax - \multiply\dimen@\m@ne \advance\dimen@\p@ \multiply\dimen@ii\m@ne - \def\postfind@{\d@X=-\the\d@X \d@Y=-\the\d@Y \noexpand\reversesplineval@}% - \fi\fi - \expandafter\splinetrace@\expandafter{\xysplineparams@}% - \edef\next@{\noexpand\spline@@find{\the\dimen@}{\the\dimen@ii}{#3}}% - \next@ } - -\xydef@\reversesplineval@{\splineval@=-\splineval@ \advance\splineval@\p@ } -\DOCMODE) - - - -\DOCMODE( -\xydef@\spline@@find#1#2#3{% -\splinetrace@{spline@@find #1 #2 #3}% - \let\splinerec@=\splinefrec@ - \global\let\splineadvance@=\splineadvance@@ - \dimen5=#1\relax - \ifdim #2=\z@\relax - \ifdim #1=\z@\relax \bgroup - \let\splined@@=\spline@@knot - \global\splineval@=\m@ne\p@ - \else\ifdim #1=\p@\relax \bgroup - \let\splined@@=\spline@@knot - \global\splineval@=\z@ - \else - \global\splineval@=\z@ - \global\let\splineadvance@=\splineadvance@@ - \DN@{#3}\ifx\next@\empty \setsplinetest@\splineval@>{#1}{}% - {{\ifdim\splineval@=\dimen5\aftergroup\splineplot@false\fi}}% - \else\DNii@{>}\ifx\next@\nextii@ - \setsplineundertest@\splineval@>{#1}{}{}% - \let\splinerec@=\splineBSrec@ - \else\DNii@{<}\ifx\next@\nextii@ - \setsplineundertest@\splineval@>{#1}{}{}% - \let\splinerec@=\splineBErec@ - \else\xywarning@{unknown find-mode: #3}\fi\fi\fi - \fi\fi - \else - \global\splineval@=\z@ - \def\splineslidetest@@{% - \setsplinetest@\splinelength@<{#2}{}{}}% - \let\splinefinish@=\splinefcontinue@ - \fi - \let\spline@end=\splinef@end - \let\splinepoint@=\relax - \splinelength@=\z@ - \def\spline@start{\bgroup\xylowtolerance@}% - \splined@@ } - -\xydef@\spline@@knot{% - \let\setsplinedir@=\setsplineknotdir@ - \splinesetparams@\spline@start -% \global\splinedepth@=\p@ - \splinedepth@=\p@ - \global\dimen@i=\X@p \global\dimen3=\Y@p - \splinefinishf@ \spline@end \egroup } - -\xydef@\splinefcontinue@{% -\splinetrace@{sliding... from (\the\X@c,\the\Y@c): val=\the\splineval@ }% - \global\let\splinerec@=\splinerec@@ - \global\splinelength@=\z@ - \global\splineval@=\splineval@ - \global\let\splinepoint=\splinefindtest@ - \global\let\splinegoal@=\splinef@pt - \global\let\splineadvance@=\splineDadvance@ - \global\let\splinefinish@=\splinefinish@@ - \splineslidetest@@ - } - -\xydef@\splinefindtest@{% -\splinetrace@{SFT (\the\X@c,\the\Y@c); \the\splinelength@, \the\splineval@}% - {\splineplot@false\splinetest@ - \ifsplineplot@\expandafter\splinefinishf@\fi}} - -\def\setsplineundertest@#1#2#3#4#5{% -\splinetrace@{setsplineundertest@: #1,#2,#3,#4,#5,}% - \DNii@{\gdef\splinetest@}% - \DN@##1\next{\def\tmp@{{\splineplot@false - \ifdim#1#2##1\relax #4\else\splineplot@true#5\fi }}}% - \next@#3\relax\next - \expandafter\nextii@\tmp@ } - -\xydef@\splinef@end{\edef\tmp@{\egroup\splinelength@=\the\splinelength@}\tmp@} -\xydef@\splinef@pt{% - \ifdim\splineval@>\z@ -\splinetrace@{found: val=\the\splineval@;c:(\the\X@c,\the\Y@c)}% - \global\dimen@i=\X@c \global\dimen3=\Y@c - \else -\splinetrace@{found: val=\the\splineval@;p:(\the\X@p,\the\Y@p)}% - \fi - \setsplinedir@ \global\dimen5=\d@X \global\dimen7=\d@Y - \global\splineval@=\splineval@ - \aftergroup\splinefocus@ } -\DOCMODE) - -\DOCMODE( -\def\setsplinetest@#1#2#3#4#5{% - \DNii@{\gdef\splinetest@}% - \DN@##1\next{\def\tmp@{{\splineplot@false \ifdim#1#2##1\relax - #4\else\splineplot@true#5\fi}}}% - \next@#3\relax\next - \expandafter\nextii@\tmp@ }% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\splinefocus@{% - \d@X=\dimen5\relax \d@Y=\dimen7\relax \setsplinedir@ } - -\xydef@\splinesegment@#1{} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -There are some extra hooks. - -\DOCMODE( -\xydef@\xyprecurve@{} -\xydef@\xypostcurve@{} -\DOCMODE) - -\DOCMODE( -\xydef@\splineset@{% -\splinetrace@{splineset@:}% - \ifx\bstartPLACE@\empty %\splinetrace@{invisible curve}% - \DN@{\xyprecurve@ - \edef\tmp@{\egroup \X@max=\the\X@max \X@min=\the\X@min - \Y@max=\the\Y@max \Y@min=\the\Y@min}\tmp@ \xypostcurve@ }% - \else - \DN@{\xyprecurve@ \xysplinespecialcases@ - \edef\tmp@{\egroup \X@max=\the\X@max \X@min=\the\X@min - \Y@max=\the\Y@max \Y@min=\the\Y@min}\tmp@ \xypostcurve@ }% - \fi - \next@ } -\DOCMODE) - -For the actual setting, provide hooks which will allow -alternative back-ends to be used in the special cases. - -\DOCMODE( -\xydef@\xysplinespecialcases@{% - \ifx\empty\xycrvdrop@ - \ifx\empty\xycrvconn@ \DN@{\splinesolid@}% - \else \DN@{ \dir{-}}\ifx\next@\xycrvconn@ \DN@{\splinesolid@}% - \else \DN@{ \dir 2{-}}\ifx\next@\xycrvconn@ \DN@{\splinedoubled@}% - \else \DN@{ \dir{=}}\ifx\next@\xycrvconn@ \DN@{\splineribboned@}% - \else \DN@{ \dir {2.}}\ifx\next@\xycrvconn@ \DN@{\splinedoubled@}% - \else \DN@{ \dir 3{-}}\ifx\next@\xycrvconn@ \DN@{\splinetrebled@}% - \else \DN@{ \dir {3.}}\ifx\next@\xycrvconn@ \DN@{\splinetrebled@}% - \else \DN@{ \dir{--}}\ifx\next@\xycrvconn@ \DN@{\splinedashed@}% - \else \DN@{ \dir{.}}\ifx\next@\xycrvconn@ \DN@{\splinedotted@}% - \else \DN@{ \dir{:}}\ifx\next@\xycrvconn@ \DN@{\splinedbldotted@}% - \else \ifdim\splinetol@>\z@ \else \splinedefaulttol@ \fi - \DN@{\splineset@@}\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \else - \DN@{\splineset@@}% - \fi \ifInvisible@\DN@{}\fi \next@ } -\DOCMODE) - -The special cases are handled just like the normal case except -However the control sequence names provide a place for -rebinding to accomodate alternative back-ends. - -\DOCMODE( -\xydef@\splinesolid@{\setbox\splinebox@=\zerodot \def\xycrvdrop@{ }% - \def\xycrvconn@{}\splineset@@} - -\xydef@\splinedoubled@{\splinedefaulttol@\def\xycrvdrop@{ }\def\splinedrop@{}% - \def\xycrvconn@{!C\dir2{.}}\splineset@@} - -\xydef@\splineribboned@{\splinedefaulttol@\def\xycrvdrop@{ }\def\splinedrop@{}% - \def\xycrvconn@{!C\dir{:}}\splineset@@} - -\xydef@\splinetrebled@{\splinedefaulttol@\def\xycrvdrop@{ }\def\splinedrop@{}% - \def\xycrvconn@{!C\dir3{.}}\splineset@@} - -\xydef@\splinedashed@{\splinetol@=1.5pc \def\xycrvdrop@{ }%+=<10pt>[o]{}}% - \def\splinedrop@{}\edef\xycrvconn@{\noexpand!C\noexpand\dir{\addDASH@{}}}% - \splineset@@} - -\xydef@\splinedotted@{\setbox\splinebox@=\zerodot \def\xycrvdrop@{ }% - \splinetol@=1.5\jot \def\xycrvconn@{}\splineset@@} - -\xydef@\splinedbldotted@{\def\xycrvdrop@{ }\def\splinedrop@{}% - \splinetol@=1.5\jot \def\xycrvconn@{!C\dir{:}}\splineset@@} - -\DOCMODE) - -This establishes the test appropriate to actually setting -the spline curve. Global definitions are used. -This may not always be necessary!! - -\BUG: the |7.5pt| below should be the |\Step@@| method to be included. - -\DOCMODE( -\xydef@\splineset@@{% - \readsplineparams@ - \ifx\xycrvdrop@\empty \splinetol@=7.5\p@ - \def\splinedefaulttol@{\splinetol@=7.5\p@}\def\splinedrop@{}% - \else\edef\splinedefaulttol@{\splinetol@=\the\splinetol@}\fi - \ifx\xycrvconn@\empty \def\splineconn@{}\fi -\splinetrace@{set the curve: >\the\dimen5, <\the\dimen7}% - \global\let\splineadvance@=\splineadvance@@ - \let\splinerec@=\splineTrec@ - \def\splineStarttest{\splinetest@}% - \global\let\splinepoint=\relax %6 - \let\spline@start=\spline@start@ - \let\spline@end=\spline@end@ %5 - \ifdim\dimen7=\p@ - \gdef\splinecontinue{\splinesetting@ - \global\let\splinetest@=\splineplot@true}% - \else - \ifdim\dimen7=\tw@\p@ -%% \ifdim\bendPLACE@\p@=\z@ \emptyspline@ \else - \ifdim\bendPLACE@\p@=\p@ %\emptyspline@ - \fi %%\fi - \else - \xdef\splinecontinue{\noexpand\setsplinetest@ - \splineval@>{\the\dimen7}{\noexpand\splinebreakcancel@}{}% - \noexpand\splinesetting@ }% - \fi\fi - \ifdim\dimen7>\z@ \DN@{\splinesetting@\splinecontinue}% - \ifdim\zz@{\dimen5}% - \else - \edef\next@{\noexpand\setsplinetest@ - \splineval@<{\the\dimen5}{}% - {\noexpand\expandafter\noexpand\splinecontinue}% - \noexpand\splinesetting@ }% - \fi - \else\DN@{\dimen5=\p@}\fi % ifdim\dimen7=\z@ - \next@ -% - \ifdim\dimen5=\p@\DN@{}\else\DN@{\splined@@}\fi \next@ - } - -\xydef@\emptyspline@{\xywarning@{empty curve subsegment}% -\splinetrace@{bstartPLACE@=\bstartPLACE@, bendPLACE@=\bendPLACE@, - empty segment}% - \gdef\splinecontinue{\splinesetting@ - \global\let\splinetest@=\splineplot@false - \global\dimen5=\z@ }} -\DOCMODE) - -|\splineTrec@| is the initial value for |\splinerec@| when a spline -is being set. It descends the tree of places on the spline (1) until the -required parameter value is found (2a) or is sufficiently close (2b). -At this point call |\splinesetting@| and |\splinecontinue| to -setup, and proceed with, the actual type-setting. - -\DOCMODE( -\xydef@\splineTrec@{{% - \advance\splineval@\splinedepth@ % (1) - \ifdim\dimen5=\splineval@ % (2a) - \aftergroup\splinecontinue % (3) - \else \dimen@=\dimen5\advance\dimen@-\splineval@ - \ifdim\dimen@<\z@ \dimen@=-\dimen@ \fi - \ifdim\dimen@<.001\p@ % possibly too high ? % (2b) - \aftergroup\splinecontinue % (3) - \else - \ifdim\dimen5<\splineval@\aftergroup\splinedecast@@ % (1) - \else \aftergroup\splineadvance@ % (1) - \fi\fi\fi}} -\DOCMODE) - -Setting the curve uses the current |\splinerec@@| and -sets |\splinepoint| to |\splineplotpt@| to cause objects to be typeset. -This must be done via a |\gdef| rather than a |\global\let| -since it is sometimes necessary to omit the object when it would -be too close, see |\splinetooclose@|. - -\DOCMODE( -%\xydef@\splinesetting@{\xyFN@\splinesetting@@} -\xydef@\splinesetting@{\splinesetting@@} - -\xydef@\splinesetting@@{% -\splinetrace@{splinesetting@@:}% - \ifdim\splinedepth@=\z@ \splinedepth@=\p@ \fi - \ifdim\splinedepth@=\p@ - \def\splinerec@{\global\let\splinerec@=\splinerec@@\splinedecast@@}% - \else \global\let\splinerec@=\splinerec@@ \fi - \gdef\splinepoint{\splineplotpt@}} -\DOCMODE) - -This handles, for each point of the curve, -whether to place an <object> or horizontal glue. - -\DOCMODE( -\xydef@\splineplotpt@{{\global\advance\dimen@i-\X@c - \splinetest@ \DN@{\splineglue@}\ifsplineplot@ -% \splineStarttest@ \ifsplineplot@ -% \splineEndtest@ \ifsplineplot@ - \DN@{\dosplineplotpt@}% -% \fi\fi - \fi \next@ \global\dimen@i=\X@c \global\dimen3=\Y@c }} - -\xydef@\splineglue@{\hglue-\dimen@i -\splinetrace@{N:(\the\X@c,\the\Y@c);;\the\dimen@i;\the\dimen3% - ,\the\splinelength@,\the\splineval@,\the\splinedepth@}} - -\xydef@\dosplineplotpt@{\ifdim\dimen@i<\z@ - \raise\Y@c\hbox to-\dimen@i{\hfill\splinedrop@}% - \else \kern-\dimen@i\raise\Y@c\hbox{\splinedrop@}\fi - \ifx\splineconn@\relax\else\raise\Y@c\hbox{% - \setboxz@h{\splineconn@}\Drop@@}\fi -\splinetrace@{P:(\the\X@c,\the\Y@c);;\the\dimen@i;\the\dimen3 - ,\the\splinelength@,\the\splineval@,\the\splinedepth@}} -\DOCMODE) - -These handle the ``cleaning up'' after a point on the curve has been located. - -\DOCMODE( -\xydef@\splinefinish@@{\postspline@ \splinegoal@ \splinecancel@ } - -\xydef@\splinecancel@{% - \global\let\splinerec@=\relax - \global\let\splinepoint=\relax - \global\let\splinecontinue=\relax -% \global\let\splinedecast@@=\relax - \global\let\splinedecast@=\relax - } - -\xydef@\splinebreakcancel@{\bsplinecancel@ \splinecancel@} -\xydef@\bsplinecancel@{\gdef\lastbspline@{\leave@\leave@}% - \global\let\middlebspline@=\lastbspline@ } - -\xydef@\splinegoal@{\ifdim\splineval@>\z@ - \global\dimen@i=\X@c \global\dimen3=\Y@c \fi - \global\splineval@=\splineval@ \global\splinelength@=\splinelength@ -% \setsplineTangent@ } - \splinesetdir@ } - -\xylet@\splinefinish@\splinefinish@@ -\xylet@\splinewhich\splineDwhich@ - -\xydef@\squinewhich@{% - \ifdim\dimen5>\squinelength % \X@c=\L@c \Y@c=\D@c - \d@X=\X@c \d@Y=\Y@c \advance\d@X-\L@c \advance\d@Y-\U@c - \advance\squineval-\squinedepth - \else \X@c=\X@p \Y@c=\Y@p \advance\squineval-\squinedepth - \d@X=\L@c \d@Y=\U@c \advance\d@X-\X@p \advance\d@Y-\Y@p \fi - \d@X=-\d@X \d@Y=-\d@Y %%% hack which works. - \squinefinish} -\xydef@\squineDwhich@{% - \ifdim\dimen5>\squinelength % \X@c=\L@c \Y@c=\D@c - \d@X=\X@c \d@Y=\Y@c \advance\d@X-\L@c \advance\d@Y-\U@c - \else \X@c=\X@p \Y@c=\Y@p \advance\squineval-\squinedepth - \d@X=\L@c \d@Y=\U@c \advance\d@X-\X@p \advance\d@Y-\Y@p \fi - \d@X=-\d@X \d@Y=-\d@Y %%% hack which works. - \squinefinish} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection{B\'ezier quadratic splines --- squines} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xyquadbezier@{% - \global\let\splinerec@=\relax - \addtocrvpts@{\def\crvconnect@{\squineconnect@}}% - \xyquadmethods@ \let\splinesegment@=\squinesegment@ - \begingroup\setcrvobjects@ \xysplineparams@ \splined@@@ - \bgroup \setupsquine@ \squined@ \splineset@ \savespline@ } - -\xydef@\xyquadmethods@{% - \def\crvconnect@{\squineconnect@}% - \def\splinereverse@@{\splinereverse@@@}% - \let\getsplineparams@=\getsquineparams@ - \let\spline@start@=\squine@start@ - \let\splinedecast@@=\squinedecast@ - \let\splinerec@@=\squinerec@ - \let\splined@@=\squined@@ - \let\splineIpt@@=\squineIpt@ - \let\splineIadvance@@=\squineIadvance@ - \let\splineinfo@=\squineinfo@ - \let\setsplinedir@=\setsquinedir@ - \let\splinetestcvxhull@=\squinetestcvxhull@ - \let\setsplineknotdir@=\setsquineknotdir@ - \let\splinereverse@=\squinereverse@ - \let\splineDadvance@@@=\squineDadvance@@@ - \let\splinesetparams@=\squinesetparams@ - \let\splineplot@maybe@@=\squineplot@maybe -} - -\xydef@\squineconnect@{\splineconnect@ \crvconnect@@ - \let\splinesegment@=\squinesegment@ }% - -\xydef@\squinesegment@#1{\xyquadmethods@ \def\segmentnum@{1}% - \setupsquine@ \squined@ } - -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Use the registers |\A@| and |\B@| to store the coordinates of the -single control point. The whole curve lies within the convex -polygon with vertices at $p$, $(p+a)/2$, $(c+a)/2$ and $c$ -where $a$ denotes the control point. Set |\X@max|, |\X@min|, |\Y@max| -and |\Y@min| to be the extremes of the coordinates of these 4 points. -There may not actually be any point on the curve achieving these -extremes, but certainly we get pretty close. - -\DOCMODE( -\xydef@\setupsquine@{% - \xycontrolpt@\z@ \X@p=\X@c \Y@p=\Y@c - \xycontrolpt@\@ne \A@=\X@c \B@=\Y@c - \xycontrolpt@\tw@ - \ifdim \A@>\X@max - \dimen@=\X@p\advance\dimen@\A@ \dimen@half - \ifdim \dimen@>\X@max \X@max=\dimen@ \fi - \dimen@=\X@c\advance\dimen@\A@ \dimen@half - \ifdim \dimen@>\X@max \X@max=\dimen@ \fi - \else \ifdim \A@<\X@min - \dimen@=\X@p\advance\dimen@\A@ \dimen@half - \ifdim \dimen@<\X@min \X@min=\dimen@ \fi - \dimen@=\X@c\advance\dimen@\A@ \dimen@half - \ifdim \dimen@>\X@min \X@min=\dimen@ \fi - \fi\fi - \ifdim \B@>\Y@max - \dimen@=\Y@p\advance\dimen@\B@ \dimen@half - \ifdim \dimen@>\Y@max \Y@max=\dimen@ \fi - \dimen@=\Y@c\advance\dimen@\B@ \dimen@half - \ifdim \dimen@>\Y@max \Y@max=\dimen@ \fi - \else \ifdim \B@<\Y@min - \dimen@=\Y@p\advance\dimen@\B@ \dimen@half - \ifdim \dimen@<\Y@min \Y@min=\dimen@ \fi - \dimen@=\Y@c\advance\dimen@\B@ \dimen@half - \ifdim \dimen@>\Y@min \Y@min=\dimen@ \fi - \fi\fi } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The algorithm used for computing coordinates of points on quadratic -B\'ezier splines is essentially that used by D. E. Knuth in -|picmac.tex|\cite{picmac} (aka |gpxmac.tex|). -It is a recursive de Casteljau algorithm of the ``divide and conquer'' type. -(In Knuth's macros these types of curves were -given the name ``squines''. This explains some of the control -sequence names used here.) - -The differences from Knuth's algorithm are simply to allow -more of the available information to be used at points along the spline. -In particular the tangent direction can be calculated and tests can be -performed to decide when to break out of the algorithm, rather than -letting it run its full course. - -\DOCMODE( -\xydef@\squinedecast@{\halve@dimen\splinedepth@ %\divide\splinedepth@\tw@ - \R@c=\L@c \advance\L@c\X@p \halve@dimen\L@c %\divide\L@c\tw@ - \advance\R@c\X@c \halve@dimen\R@c %\divide\R@c\tw@ - \A@=\L@c \advance\A@\R@c \halve@dimen\A@ %\divide\A@\tw@ - \D@c=\U@c \advance\U@c\Y@p \halve@dimen\U@c %\divide\U@c\tw@ - \advance\D@c\Y@c \halve@dimen\D@c %\divide\D@c\tw@ - \B@=\U@c \advance\B@\D@c \halve@dimen\B@ %\divide\B@\tw@ - \begingroup \X@c=\A@ \Y@c=\B@ \splinerec@ \endgroup - \begingroup \X@c=\A@ \Y@c=\B@ \splinepoint \endgroup - \X@p=\A@ \L@c=\R@c \Y@p=\B@ \U@c=\D@c \splinerec@} - -\xydef@\squinerec@{{\splinefar@false \splinenear@\X@p\X@c\Y@p\Y@c - \ifsplinefar@ \aftergroup\squinedecast@ - \else \aftergroup\splineadvance@ \fi}} - -\xydef@\squineDadvance@@@{\X@p\L@c\Y@p\D@c} - -\xydef@\squineplot@maybe{{\X@p=\L@c \Y@p=\U@c \cv@start \the\Edge@c\@ne - \ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The tangent direction is computed from the displacement to the ``recursive'' -control point. - -\DOCMODE( -\xydef@\setsquinedir@{% - \d@X=\X@c \advance\d@X-\L@c \d@Y=\Y@c \advance\d@Y-\U@c - \dimen@=\ifdim\d@X<\z@-\fi\d@X \ifdim\dimen@<.02\p@ - \dimen@=\ifdim\d@Y<\z@-\fi\d@Y \ifdim\dimen@<.02\p@ - \d@X=\X@c \advance\d@X-\X@p \d@Y=\Y@c \advance\d@Y-\Y@p \fi\fi - \ifdim\X@c=\X@p \ifdim\Y@c=\Y@p - \d@X=\L@c \advance\d@X-\X@p \d@Y=\U@c \advance\d@Y-\Y@p \fi\fi - \setupDirection@ii } - -\xydef@\setsquineknotdir@{% - \ifdim\zz@\splineval@ \expandafter \setsquinezerodir@ - \else\expandafter \setsquinedir@ \fi } - -\xydef@\setsquinezerodir@{% - \d@X=\L@c \advance\d@X-\X@p \d@Y=\U@c \advance\d@Y-\Y@p - \ifdim\zz@\d@X \ifdim\zz@\d@Y - \d@X=\X@c \advance\d@X-\X@p \d@Y=\Y@c \advance\d@Y-\Y@p - \fi\fi \setupDirection@ii } -\DOCMODE) - -We need a way to access the information in |\splineparams|. - -\DOCMODE( -\xydef@\getsquineparams@#1,#2,#3,#4,#5,#6,#7,{% - \splinelength@=#1\relax\X@p=#2\relax\Y@p=#3\relax - \A@=#4\relax\B@=#5\relax\X@c=#6\relax\Y@c=#7\relax -} -\xydef@\squineinfo@{% -\expandafter\removePT@\the\X@c\space -\expandafter\removePT@\the\Y@c\space -\expandafter\removePT@\the\A@\space -\expandafter\removePT@\the\B@\space -\expandafter\removePT@\the\X@p\space -\expandafter\removePT@\the\Y@p\space -\expandafter\removePT@\the\dimen5\space\space -\expandafter\removePT@\the\dimen7\space - }% -\xydef@\squinereverse@{\readsplineparams@ - \expandafter\edef\xysplineparams@{\the\splinelength@,% - \the\X@c,\the\Y@c,\the\A@,\the\B@,\the\X@p,\the\Y@p,}}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Start the picture by (1)~setting a box, as usual. -(2)~Initialize global variables; these must be global since they are -used to store information which must be preserved outside the grouping -which is vital to the recursive nature of the algorithm. -(3)~Move horizontally to the starting point at $p$. -(4)~Begin by handling the starting point; \ie\ decide whether it is to be -plotted or not. - -\DOCMODE( -\xydef@\squine@start@{\setboxz@h\bgroup % %(1) - \global\splinelength@=\z@ \global\dimen@i=\z@ \global\dimen3=\z@ % %(2) - \kern\X@p % %(3) - {\squinesetparams@ \X@c=\X@p \Y@c=\Y@p \firstsplinepoint@ % %(4) - }\bgroup } - -\xydef@\squinesetparams@{% - \global\dimen@i=\X@p \global\dimen3=\Y@p - \L@c=\A@ \U@c=\B@ \R@c=\L@c \D@c=\U@c }% - -\xydef@\squined@{% - \expandafter\edef\xysplineparams@{% - \the\z@,\the\X@p,\the\Y@p,\the\A@,\the\B@,\the\X@c,\the\Y@c,}} - -\xydef@\squined@@{% -% \global\splinedepth@=\p@ - \splinedepth@=\p@ - \global\splineval@=\z@ - \global\dimen@i=\X@p \global\dimen3=\Y@p - \spline@start - \ifx\splinerec@\relax \let\splinerec@=\squinerec@\fi - \L@c=\A@ \U@c=\B@ \R@c=\L@c \D@c=\U@c - \splinerec@ \spline@end } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection{B\'ezier cubic splines} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xycubicbezier@{% - \addtocrvpts@{\def\crvconnect@{\cubicconnect@}}% - \xycubicmethods@ \let\splinesegment@=\cubicsegment@ - \begingroup \setcrvobjects@ \xysplineparams@ \splined@@@ - \bgroup \setupcubic@ \cubiced@ \splineset@ \savespline@ } - -\xydef@\xycubicmethods@{% - \def\crvconnect@{\cubicconnect@}% - \def\splinereverse@@{\cubicreverse@@}% - \let\getsplineparams@=\getcubicparams@ - \let\spline@start@=\cubic@start@ - \let\splinedecast@@=\cubicdecast@ - \let\splinerec@@=\cubicrec@ - \let\splined@@=\cubiced@@ - \let\splineIpt@@=\cubicIpt@ - \let\splineIadvance@@=\cubicIadvance@ - \let\splineoutsidehull@@=\cubicoutsidehull@ - \let\splinetestcvxhull@=\cubictestcvxhull@ - \let\splineinfo@=\cubicinfo@ - \let\setsplinedir@=\setcubicdir@ - \let\setsplineknotdir@=\setcubicknotdir@ - \let\splinereverse@=\cubicreverse@ - \let\splineDadvance@@@=\cubicDadvance@@@ - \let\splinesetparams@=\cubicsetparams@ - \let\splineplot@maybe@@=\cubicplot@maybe - } - -\xydef@\cubicconnect@{\splineconnect@ \crvconnect@@ - \let\splinesegment@=\cubicsegment@ }% - -\xydef@\cubicsegment@#1{\xycubicmethods@ \def\segmentnum@{1}% - \setupcubic@ \cubiced@ } - -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Use the registers |\A@|, |\B@|, |\dimen3| and |\dimen5| to store coordinates -of the two control points, denoted $l$ and $r$ say. The whole curve lies -within the convex polygon $p$, $(p+l)/2$, $(c+r)/2$ and $c$ where the vertices are -not necessarily in this order. Set |\X@max|, |\X@min|, |\Y@max| -and |\Y@min| to be the extremes of the coordinates of these 4 points. -There may not actually be any point on the curve achieving these -extremes, but certainly we get pretty close. - -\DOCMODE( -\xydef@\setupcubic@{% - \xycontrolpt@\z@ \X@p=\X@c \Y@p=\Y@c - \xycontrolpt@\@ne \A@=\X@c \B@=\Y@c - \xycontrolpt@\tw@ \global\dimen3=\X@c \global\dimen5=\Y@c - \xycontrolpt@\thr@@ - \adjustmaxmin@ } - -\xydef@\adjustmaxmin@{% - \ifdim \A@>\X@max \dimen@=\A@ \advance\dimen@\X@p \dimen@half - \ifdim\dimen@>\X@max \X@max=\dimen@ \fi \else - \ifdim \A@<\X@min \dimen@=\A@ \advance\dimen@\X@p \dimen@half - \ifdim\dimen@<\X@min \X@min=\dimen@ \fi \fi\fi - \ifdim \B@>\Y@max \dimen@=\B@ \advance\dimen@\Y@p \dimen@half - \ifdim\dimen@>\Y@max \Y@max=\dimen@ \fi \else - \ifdim \B@<\Y@min \dimen@=\B@ \advance\dimen@\Y@p \dimen@half - \ifdim\dimen@<\Y@min \Y@min=\dimen@ \fi \fi\fi -% - \ifdim \dimen3>\X@max \dimen@=\dimen3\advance\dimen@\X@c \dimen@half - \ifdim\dimen@>\X@max \X@max=\dimen@ \fi \else - \ifdim \dimen3<\X@min \dimen@=\dimen3\advance\dimen@\X@c \dimen@half - \ifdim\dimen@<\X@min \X@min=\dimen@ \fi \fi\fi - \ifdim \dimen5>\Y@max \dimen@=\dimen5\advance\dimen@\Y@c \dimen@half - \ifdim\dimen@>\Y@max \Y@max=\dimen@ \fi \else - \ifdim \dimen5<\Y@min \dimen@=\dimen5\advance\dimen@\Y@c \dimen@half - \ifdim\dimen@<\Y@min \Y@min=\dimen@ \fi \fi\fi -% - \dimen@=\A@ \advance\dimen@\dimen3 \dimen@half - \ifdim\dimen@>\X@max \X@max=\dimen@ - \else \ifdim\dimen@<\X@min \X@min=\dimen@ \fi\fi - \dimen@=\B@ \advance\dimen@\dimen5 \dimen@half - \ifdim\dimen@>\Y@max \Y@max=\dimen@ - \else \ifdim\dimen@<\Y@min \Y@min=\dimen@ \fi\fi -} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The recursive algorithm for cubic B\'ezier splines is similar to the -quadratic one. Now there are two ``recursive'' control points to be -calculated upon each subdivision. - -On the $p$-side: -\begin{eqnarray*} -p_p &=& p \\ -l_p &=& (p+l)/2 \\ -r_p &=& (p+2l+r)/4 \\ -c_p &=& (p+3l+3r+c)/8 \\ -\end{eqnarray*} -while on the $c$-side -\begin{eqnarray*} -p_c &=& (p+3l+3r+c)/8 \\ -l_c &=& (l+2r+c)/4 \\ -r_c &=& (r+c)/2 \\ -c_c &=& c \\ -\end{eqnarray*} -Notice that $c_p=p_c$ and that the tangents match there. - -\DOCMODE( -\xydef@\cubicdecast@{\halve@dimen\splinedepth@ %\divide\splinedepth@\tw@ - \A@=\L@c \advance\A@\R@c \halve@dimen\A@ %\divide\A@\tw@ - \advance\R@c\X@c \halve@dimen\R@c %\divide\R@c\tw@ - \B@=\U@c \advance\B@\D@c \halve@dimen\B@ %\divide\B@\tw@ - \advance\D@c\Y@c \halve@dimen\D@c %\divide\D@c\tw@ - \advance\L@c\X@p \halve@dimen\L@c %\divide\L@c\tw@ - \advance\U@c\Y@p \halve@dimen\U@c %\divide\U@c\tw@ - \begingroup - \X@c=\R@c \advance\X@c\L@c \halve@dimen\X@c %\divide\X@c\tw@ - \advance\X@c\A@ \halve@dimen\X@c %\divide\X@c\tw@ - \Y@c=\D@c \advance\Y@c\U@c \halve@dimen\Y@c %\divide\Y@c\tw@ - \advance\Y@c\B@ \halve@dimen\Y@c %\divide\Y@c\tw@ - \R@c=\L@c \advance\R@c\A@ \halve@dimen\R@c %\divide\R@c\tw@ - \D@c=\U@c \advance\D@c\B@ \halve@dimen\D@c %\divide\D@c\tw@ - \bgroup \splinerec@ - \egroup \splinepoint \endgroup - \X@p=\L@c \advance\X@p\R@c \halve@dimen\X@p %\divide\X@p\tw@ - \advance\X@p\A@ \halve@dimen\X@p %\divide\X@p\tw@ - \L@c=\R@c \advance\L@c\A@ \halve@dimen\L@c %\divide\L@c\tw@ - \Y@p=\U@c \advance\Y@p\D@c \halve@dimen\Y@p %\divide\Y@p\tw@ - \advance\Y@p\B@ \halve@dimen\Y@p %\divide\Y@p\tw@ - \U@c=\D@c \advance\U@c\B@ \halve@dimen\U@c %\divide\U@c\tw@ - \splinerec@ } - -\xydef@\cubicrec@{{\splinefar@false \splinenear@\X@p\X@c\Y@p\Y@c - \ifsplinefar@ \aftergroup\cubicdecast@ - \else \aftergroup\splineadvance@ \fi}} - -\xydef@\cubicDadvance@@@{\X@p\X@c\Y@p\Y@c} - -\xydef@\cubicplot@maybe{{\X@p=\L@c \Y@p=\U@c \cv@start \the\Edge@c\@ne - \ifInside@\aftergroup\cubicplot@maybeii\else\aftergroup\splineplot@true\fi}} -\xydef@\cubicplot@maybeii{{\X@p=\R@c \Y@p=\D@c \cv@start \the\Edge@c\@ne - \ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}} -\DOCMODE) - -\DOCMODE( -\xydef@\cubiced@@{% -% \global\splinedepth@=\p@ - \splinedepth@=\p@ - \global\splineval@=\z@ - \spline@start - \global\dimen@i=\X@p \global\dimen3=\Y@p - \splinerec@ \spline@end } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The tangent direction is computed from the displacement to the ``recursive'' -control point. - -\DOCMODE( -\xydef@\setcubicdir@{% - \ifdim\splinedepth@<.001\p@\DN@{\cubiccoarsedir@}% - \else\DN@{\cubicfinedir@}\fi \next@ } - -\xydef@\cubicfinedir@{% - \d@X=\X@c \advance\d@X-\R@c \d@Y=\Y@c \advance\d@Y-\D@c - \ifdim\zz@\d@X \ifdim\zz@\d@Y - \d@X=\X@c \advance\d@X-\L@c \d@Y=\Y@c \advance\d@Y-\U@c - \ifdim\zz@\d@X \ifdim\zz@\d@Y - \d@X=\X@c \advance\d@X-\X@p \d@Y=\Y@c \advance\d@Y-\Y@p - \fi\fi \fi\fi -% \ifdim\X@c=\X@p \ifdim\Y@c=\Y@p -% \d@X=\L@c \d@Y=\U@c \advance\d@X-\X@p \advance\d@Y-\Y@p -% \ifdim\d@X=\z@ \ifdim\d@Y=\z@ -% \d@X=\R@c \d@Y=\D@c \advance\d@X-\X@p \advance\d@Y-\Y@p -% \fi\fi -% \fi\fi - \setupDirection@ii -\splinetrace@{dir:(\the\d@X,\the\d@Y),\the\Direction; depth:\the\splinedepth@}% -} - -\xydef@\cubiccoarsedir@{% - \d@X=\X@c \advance\d@X-\X@p \d@Y=\Y@c \advance\d@Y-\Y@p \setupDirection@ii - \global\dimen5=\d@X \global\dimen7=\d@Y -\splinetrace@{dir:(\the\d@X,\the\d@Y),\the\Direction; depth:\the\splinedepth@}% -} - -\xydef@\setcubicknotdir@{% - \ifdim\zz@\splineval@ \DN@{\setcubiczerodir@}% - \else \DN@{\cubicfinedir@}\fi \next@ } - -\xydef@\setcubiczerodir@{% - \d@X=\L@c \advance\d@X-\X@p \d@Y=\U@c \advance\d@Y-\Y@p - \ifdim\zz@\d@X \ifdim\zz@\d@Y - \d@X=\R@c \advance\d@X-\X@p \d@Y=\D@c \advance\d@Y-\Y@p - \ifdim\zz@\d@X \ifdim\zz@\d@Y - \d@X=\X@c \advance\d@X-\X@p \d@Y=\Y@c \advance\d@Y-\Y@p - \fi\fi \fi\fi \setupDirection@ii } -\DOCMODE) - -We need a way to access the information in |\splineparams|. - -\DOCMODE( -\xydef@\getcubicparams@#1,#2,#3,#4,#5,#6,#7,#8,#9,{% - \splinelength@=#1\relax\X@p=#2\relax\Y@p=#3\relax\L@c=#4\relax - \U@c=#5\relax\R@c=#6\relax\D@c=#7\relax\X@c=#8\relax\Y@c=#9\relax -}% -\xydef@\cubicinfo@{% -\expandafter\removePT@\the\X@p\space -\expandafter\removePT@\the\Y@p\space -\expandafter\removePT@\the\L@c\space -\expandafter\removePT@\the\U@c\space -\expandafter\removePT@\the\R@c\space -\expandafter\removePT@\the\D@c\space -\expandafter\removePT@\the\X@c\space -\expandafter\removePT@\the\Y@c\space -\expandafter\removePT@\the\dimen5\space\space -\expandafter\removePT@\the\dimen7\space - }% -\xydef@\cubicreverse@{\readsplineparams@ - \expandafter\edef\xysplineparams@{\the\splinelength@,% - \the\X@c,\the\Y@c,\the\R@c,\the\D@c,\the\L@c,\the\U@c,\the\X@p,\the\Y@p,}}% -\xydef@\cubicreverse@@{% - \splinereverse@@@ - \dimen@ii=\L@c \L@c=\R@c \R@c=\dimen@ii - \dimen@ii=\U@c \U@c=\D@c \D@c=\dimen@ii } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Start the picture by (1)~setting a box, as usual. -(2)~Initialize global variables; these must be global since they are -used to store information which must be preserved outside the grouping -which is vital to the recursive nature of the algorithm. -(3)~Move horizontally to the starting point at $p$. -(4)~Begin by handling the starting point; \ie\ decide whether it is to be -plotted or not. - -\DOCMODE( -\xydef@\cubic@start@{\setboxz@h\bgroup % %(1) - \global\splinelength@=\z@ \global\dimen@i=\z@ \global\dimen3=\z@ % %(2) - \kern\X@p % %(3) - {\cubicsetparams@ \X@c=\X@p \Y@c=\Y@p \R@c=\X@c \D@c=\Y@c - \firstsplinepoint@ }\bgroup -} % %(4) - -\xydef@\cubicsetparams@{% - \expandafter\expandafter\expandafter\getsplineparams@\xysplineparams@ - \global\dimen@i=\X@p \global\dimen3=\Y@p } -\DOCMODE) - -\DOCMODE( -\xydef@\cubiced@{% - \expandafter\edef\xysplineparams@{\the\z@,\the\X@p,\the\Y@p - ,\the\A@,\the\B@,\the\dimen3,\the\dimen5,\the\X@c,\the\Y@c,}% - }% -\DOCMODE) - - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection{B-splines} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The cases of 3 and 4 control points have some special simplifying features. - -\DOCMODE( -\xydef@\xybspline@iii{% - \addtocrvpts@{\def\crvconnect@{\bsplineiiiconnect@}}% - \def\crvconnect@{\bsplineiiiconnect@}\xybsplinemethods@ - \let\splinesegment@=\bsplinesegment@iii - \begingroup\setcrvobjects@ \dobspline@ \savespline@ } -\xydef@\bsplineiiiconnect@{\splineconnect@ \crvconnect@@ - \let\splinesegment@=\bsplinesegment@iii }% - -\xydef@\xybspline@iv{% - \addtocrvpts@{\def\crvconnect@{\bsplineivconnect@}}% - \def\crvconnect@{\bsplineivconnect@}\xybsplinemethods@ - \let\splinesegment@=\bsplinesegment@iv - \begingroup\setcrvobjects@ \dobspline@ \savespline@ } -\xydef@\bsplineivconnect@{\splineconnect@ \crvconnect@@ - \let\splinesegment@=\bsplinesegment@iv }% -\DOCMODE) - -Now for the general case of $\ge5$ control points. - -\DOCMODE( -\xydef@\xybspline@{% -\splinetrace@{B-spline with \numcontrolpts\space control points.}% - \addtocrvpts@{\def\crvconnect@{\bsplineconnect@}}% - \def\crvconnect@{\bsplineconnect@}\xybsplinemethods@ - \let\splinesegment@=\bsplinesegment@ - \begingroup\setcrvobjects@ - \dobspline@ \savespline@ } - -\xydef@\xybsplinemethods@{% - \def\splinereverse@@{\cubicreverse@@}% - \let\getsplineparams@=\getbsplineparams@ - \let\spline@start@=\cubic@start@ - \let\splinedecast@@=\cubicdecast@ - \let\splinerec@@=\cubicrec@ -% \let\splined@@=\cubiced@@ - \let\splineIpt@@=\cubicIpt@ - \let\splineIadvance@@=\cubicIadvance@ - \let\splined@@=\bsplined@@ - \let\splineinfo@=\cubicinfo@ - \let\setsplinedir@=\setcubicdir@ - \let\setsplineknotdir@=\setcubicknotdir@ - \let\splinereverse@=\cubicreverse@ - \let\splineDadvance@@@=\cubicDadvance@@@ - \let\splinesetparams@=\cubicsetparams@ - \global\let\lastbspline@=\lastbspline@@ - \global\let\middlebspline@=\middlebspline@@ -} -\xydef@\bsplined@@{% -% \global\splinedepth@=\p@ - \splinedepth@=\p@ - \global\splineval@=\z@ - \spline@start - \global\dimen@i=\X@p \global\dimen3=\Y@p - \splinerec@ \spline@end } -\DOCMODE) - -\DOCMODE( -\xydef@\bsplineconnect@{\splineconnect@ \crvconnect@@ - \let\splinesegment@=\bsplinesegment@ }% - -\xydef@\getbsplineparams@{\getcubicparams@} - -\xydef@\dobspline@{\xysplineparams@ \scanbspline@ \firstbspline@ }% -\DOCMODE) - - Registers |\dimen3| and |\dimen5| are used globally, since the - standard local registers are already used. - -\DOCMODE( -\xydef@\firstbspline@{% - \enter@{\pfromthep@ \cfromthec@}\enter@{\cfromthec@}\bgroup - \def\segmentnum@{1}\xycontrolpt@\z@ \X@p=\X@c \Y@p=\Y@c -\splinetrace@{0: \the\X@p, \the\Y@p}% - \xycontrolpt@\@ne \A@=\X@c \B@=\Y@c -\splinetrace@{1: \the\X@c, \the\Y@c}% - \xycontrolpt@\tw@ -\splinetrace@{2: \the\X@c, \the\Y@c}% - \dimen@=\X@c \advance\dimen@\A@ \dimen@half - \global\dimen3=\dimen@ - \dimen@=\Y@c \advance\dimen@\B@ \dimen@half - \global\dimen5=\dimen@ - \xycontrolpt@{3}% -\splinetrace@{3: \the\X@c, \the\Y@c}% - \expandafter\count@\xycrvcnt@\relax %%% very important to |\relax| - \ifnum\count@=3\relax - \advance\X@c-\A@ \dimen@nth4\X@c % \divide\X@c by4 - \advance\X@c\dimen3\relax - \advance\Y@c-\B@ \dimen@nth4\Y@c % \divide\Y@c by4 - \advance\Y@c\dimen5\relax - \enter@{\X@p=\the\X@c \Y@p=\the\Y@c \crv@cnt@=\@ne\relax - \noexpand\lastbspline@ }% - \else - \advance\X@c 7\dimen3 \advance\X@c-2\A@ - \dimen@nth6\X@c % \divide\X@c by6\relax - \advance\Y@c 7\dimen5 \advance\Y@c-2\B@ - \dimen@nth6\Y@c % \divide\Y@c by6\relax - \enter@{\X@p=\the\X@c \Y@p=\the\Y@c \crv@cnt@=\@ne\relax - \noexpand\middlebspline@ }% - \fi \adjustmaxmin@ \czeroEdge@ - \bsplined@ \splineset@ \leave@ } - -\xydef@\lastbspline@@{\bgroup - \advance\crv@cnt@\@ne \edef\segmentnum@{\the\crv@cnt@}% -\splinetrace@{<: \the\X@p, \the\Y@p}% - \advance\crv@cnt@\@ne \xycontrolpt@{\crv@cnt@}% - \global\dimen3=\X@c \global\dimen5=\Y@c -\splinetrace@{\the\crv@cnt@: \the\X@c, \the\Y@c}% - \advance\crv@cnt@\m@ne \xycontrolpt@{\crv@cnt@}% -\splinetrace@{\the\crv@cnt@: \the\X@c, \the\Y@c}% - \A@=\X@c \advance\A@\dimen3 \halve@dimen\A@ % \divide\A@\tw@ - \B@=\Y@c \advance\B@\dimen5 \halve@dimen\B@ % \divide\B@\tw@ - \adjustmaxmin@ \leave@ \relax \cv@end % <--------------- -\splinetrace@{>: \the\X@c, \the\Y@c}% - \bsplined@ \splineset@ \leave@ }% -\xylet@\lastbspline@=\lastbspline@@ - -\xydef@\middlebspline@@{% - \advance\crv@cnt@\@ne \edef\segmentnum@{\the\crv@cnt@}% -\splinetrace@{<: \the\X@p, \the\Y@p}% - \bgroup - \xycontrolpt@{\crv@cnt@}\A@=2\X@c \B@=2\Y@c -\splinetrace@{\the\crv@cnt@: \the\X@c, \the\Y@c}% - \advance\crv@cnt@\@ne \xycontrolpt@{\crv@cnt@}% -\splinetrace@{\the\crv@cnt@: \the\X@c, \the\Y@c}% - \advance\A@\X@c \dimen@nth3\A@ % \divide\A@ by3 - \advance\B@\Y@c \dimen@nth3\B@ % \divide\B@ by3\relax - \advance\X@c\A@ \halve@dimen\X@c % \divide\X@c\tw@ - \advance\Y@c\B@ \halve@dimen\Y@c % \divide\Y@c\tw@ - \global\dimen3=\X@c \global\dimen5=\Y@c - \advance\crv@cnt@\@ne \xycontrolpt@{\crv@cnt@}% -\splinetrace@{\the\crv@cnt@: \the\X@c, \the\Y@c}% - \expandafter\count@\xycrvcnt@\relax - \ifnum\crv@cnt@<\count@\relax - \advance\X@c 7\dimen3\advance\X@c-2\A@ - \dimen@nth6\X@c % \divide\X@c by6\relax - \advance\Y@c 7\dimen5\advance\Y@c-2\B@ - \dimen@nth6\Y@c % \divide\Y@c by6\relax - \enter@{\X@p=\the\X@c \Y@p=\the\Y@c \crv@cnt@=\segmentnum@\relax - \noexpand\middlebspline@}% - \else - \advance\X@c-\A@ \dimen@nth4\X@c % \divide\X@c by4 - \advance\X@c \dimen3\relax - \advance\Y@c-\B@ \dimen@nth4\Y@c % \divide\Y@c by4 - \advance\Y@c \dimen5\relax - \enter@{\X@p=\the\X@c \Y@p=\the\Y@c \noexpand\lastbspline@}% - \fi \adjustmaxmin@ - \bsplined@ \splineset@ \leave@ } -\xylet@\middlebspline@=\middlebspline@@ -\DOCMODE) - -\DOCMODE( -\xydef@\scanbspline@{\splined@@@} -\DOCMODE) - -\DOCMODE( -\xydef@\bsplined@{\cubiced@ - \expandafter\ifx\xysplineedges@\relax\relax\DN@{}% - \else\DN@{\adjustbsplineedges@}\fi \next@ } - -\xydef@\adjust@forsegments@{\getcrvsegsnum@ - \ifnum\count@>\@ne -\splinetrace@{adjust for \the\count@\space segments: - \the\dimen5, \the\dimen7}% - \multiply\dimen5 by \count@\relax \dimen@=\segmentnum@\p@ - \ifnum\dimen5>\dimen@ \relax\dimen5=\p@ - \else \advance\dimen5-\segmentnum@\p@ \advance\dimen5 by\p@ \fi - \ifnum\dimen5<\z@ \relax\dimen5=\z@\relax\fi - \multiply\dimen7 by \count@\relax - \dimen@=\segmentnum@\p@ %\advance\dimen@-\segmentnum@\p@ - \ifnum\dimen7<\dimen@ \advance\dimen@-\p@ - \ifnum\dimen7>\dimen@ \advance\dimen7-\dimen@ - \else \dimen7=\z@ \fi - \else \dimen7=\p@ \fi -\splinetrace@{adjusted for \the\count@\space segments: - \the\dimen5, \the\dimen7}% - \fi} - -\xydef@\adjustbsplineedges@{\bgroup % dimen5 and dimen7 are NOT global here -\splinetrace@{** adjusting edges **}% - \readsplineparams@ \adjust@forsegments@ -% \count@@=\dimen7\divide\count@@\p@ -% \advance\dimen7-\count@@\p@ \advance\count@@\@ne -% \count@=\dimen5\divide\count@\p@ -% \advance\dimen5-\count@\p@ \advance\count@\@ne -\splinetrace@{params:\xysplineparams@}% -\splinetrace@{segment \segmentnum@:<\the\dimen5,\the\dimen7>:\xysplineedges@}% -% \expandafter\ifnum\segmentnum@=\count@ -% \else -% \expandafter\ifnum\segmentnum@<\count@\dimen5=\p@ -% \else\dimen5=\z@ \fi\fi -% \expandafter\ifnum\segmentnum@=\count@@ - \multiply\dimen7by\m@ne \advance\dimen7by\p@ -% \else -% \expandafter\ifnum\segmentnum@>\count@@\dimen5=\p@\dimen7=\p@ -% \else\dimen7=\z@ \fi\fi - \expandafter\edef\xysplineedges@{% - \noexpand\z@;\the\dimen5,\noexpand\z@;\the\dimen7,}% - \edef\tmp@{\egroup - \noexpand\def\expandafter\noexpand\xysplineedges@{\xysplineedges@}}% - \tmp@ } -\DOCMODE) - -These macros select the correct B\'ezier control points for each -segment of the spline. This is needed for finding places on the -constructed curves. - -In general there are 5 types of segment: first, second, middle, -penultimate, final. The conversion from B-spline to B\'ezier is -slightly different for each type. -For middle segments the B\'ezier control points are determined -in the following way: -\begin{eqnarray*} -X_{B_i}^{(1)} &=& {1\over3}\left( 2X^{(i)} + X^{(i+1)}\right)\\ -X_{B_i}^{(2)} &=& {1\over3}\left( X^{(i)} + 2X^{(i+1)}\right)\\ -X_{B_i}^{(0)} &=& -{1\over6}\left( X^{(i-1)} + 4X^{(i)} + X^{(i+1)}\right)\\ -&=& {1\over6}\left( X^{(i-1)} + 7X_{B_i}^{(1)} - 2X_{B_i}^{(2)}\right)\\ -X_{B_i}^{(3)} &=& -{1\over6}\left( X^{(i)} + 4X^{(i+1)} + X^{(i+2)}\right)\\ -&=& {1\over6}\left( X^{(i+2)} + 7X_{B_i}^{(2)} - 2X_{B_i}^{(1)}\right)\\ -\end{eqnarray*} - -\DOCMODE( -\xydef@\bsegment@@ii@iii{% - \xycontrolpt@{\count@@}\global\dimen3=\X@c \global\dimen5=\Y@c -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \advance\count@@\@ne \xycontrolpt@{\count@@}\A@=\X@c \B@=\Y@c - \advance\A@ by2\dimen3 \dimen@nth3\A@ % \divide\A@ by3\relax - \advance\B@ by2\dimen5 \dimen@nth3\B@ % \divide\B@ by3\relax - \dimen@=\dimen3 \advance\dimen@ by2\X@c - \dimen@nth3\dimen@ % \divide\dimen@\thr@@ - \global\dimen3=\dimen@ - \dimen@=\dimen5 \advance\dimen@ by2\Y@c - \dimen@nth3\dimen@ % \divide\dimen@\thr@@ - \global\dimen5=\dimen@ -\splinetrace@{<: \the\dimen3, \the\dimen5}% -\splinetrace@{>: \the\A@, \the\B@}% - \advance\count@@\m@ne } - -\xydef@\bsegment@@i{\bgroup - \advance\count@@\m@ne \xycontrolpt@{\count@@}% -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \edef\tmp@{\egroup \X@p=\the\X@c \Y@p=\the\Y@c}\tmp@ - \advance\X@p-2\dimen3\advance\X@p by7\A@ - \dimen@nth6\X@p % \divide\X@p by6\relax - \advance\Y@p-2\dimen5\advance\Y@p by7\B@ - \dimen@nth6\Y@p % \divide\Y@p by6\relax -} - -\xydef@\bsegment@@iv{% - \advance\count@@\tw@ \xycontrolpt@{\count@@}% -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \advance\X@c by7\dimen3\advance\X@c-2\A@ - \dimen@nth6\X@c % \divide\X@c by6\relax - \advance\Y@c by7\dimen5\advance\Y@c-2\B@ - \dimen@nth6\Y@c % \divide\Y@c by6\relax -\splinetrace@{>>: \the\X@c, \the\Y@c }% -} -\DOCMODE) - -For the second segment the expression for $X_{B_2}^{(0)}$ is different. -Similarly the expression for $X_{B_{n-1}}^{(3)}$ is altered for the -penultimate segment. - -\begin{eqnarray*} -X_{B_2}^{(0)} &=& -{1\over4}\left( X^{(1)} + 4X_{B_2}^{(1)} - X_{B_2}^{(2)}\right)\\ -X_{B_{n-1}}^{(3)} &=& -{1\over4}\left( X^{(3)} + 4X_{B_{n-1}}^{(2)} - X_{B_{n-1}}^{(1)}\right)\\ -\end{eqnarray*} - -\DOCMODE( -\xydef@\bsegment@@ii@i{\bgroup - \advance\count@@\m@ne \xycontrolpt@{\count@@}% -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \edef\tmp@{\egroup \X@p=\the\X@c \Y@p=\the\Y@c}\tmp@ - \advance\X@p-\dimen3\advance\X@p by4\A@ - \dimen@nth4\X@p % \divide\X@p by4\relax - \advance\Y@p-\dimen5\advance\Y@p by4\B@ - \dimen@nth4\Y@p % \divide\Y@p by4\relax -\splinetrace@{<<: \the\X@p, \the\Y@p}% -} -\xydef@\bsegment@@y@iv{% - \advance\count@@\tw@ \xycontrolpt@{\count@@}% -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \advance\X@c by4\dimen3\advance\X@c-\A@ - \dimen@nth4\X@c % \divide\X@c by4\relax - \advance\Y@c by4\dimen5\advance\Y@c-\B@ - \dimen@nth4\Y@c % \divide\Y@c by4\relax -} -\DOCMODE) - -For the first segment the first three B\'ezier control points are always -determined in the same way: -\begin{eqnarray*} -X_{B_1}^{(0)} = X^{(0)} & X_{B_1}^{(1)} = X^{(1)} - & X_{B_1}^{(2)} = {1\over2}(X_{B_1}^{(1)}+X^{(2)})\\ -\hbox{3+~segments}& - & X_{B_1}^{(3)} = {1\over6}(7X_{B_1}^{(2)} - 2X_{B_1}^{(1)} + X^{(3)})\\ -\hbox{~2~segments}& - & X_{B_1}^{(3)} = {1\over4}(4X_{B_1}^{(2)} - X_{B_1}^{(1)} + X^{(3)})\\ -\end{eqnarray*} - - -\DOCMODE( -\xydef@\bsegment@i{% - \xycontrolpt@\z@ \X@p=\the\X@c \Y@p=\the\Y@c -% \ifx\cv@start\relax -% \bgroup\csname cv@0\endcsname -% \edef\tmp@{\egroup \X@p=\the\X@c \Y@p=\the\Y@c}\tmp@ -% \else\xycontrolpt@\z@ \X@p=\the\X@c \Y@p=\the\Y@c\fi -\splinetrace@{0: \the\X@p \the\Y@p}% - \xycontrolpt@\@ne -\splinetrace@{1: \the\X@c, \the\Y@c}\A@=\X@c \B@=\Y@c - \xycontrolpt@\tw@ - \dimen@=\X@c \advance\dimen@\A@ \dimen@half - \global\dimen3=\dimen@ -\splinetrace@{2: \the\X@c, \the\Y@c}% - \dimen@=\Y@c \advance\dimen@\B@ \dimen@half - \global\dimen5=\dimen@ } - -\xydef@\bsegment@i@iv{% - \xycontrolpt@{3}% -\splinetrace@{3: \the\X@c, \the\Y@c}% - \advance\X@c by7\dimen3\advance\X@c-2\A@ - \dimen@nth6\X@c % \divide\X@c by6\relax - \advance\Y@c by7\dimen5\advance\Y@c-2\B@ - \dimen@nth6\Y@c % \divide\Y@c by6\relax - } -\DOCMODE) - -The last segment is determined symmetrically from the final four -control points: -\begin{eqnarray*} -X_{B_n}^{(3)} = X^{(n+2)} & X_{B_n}^{(2)} = X^{(n+1)} - & X_{B_n}^{(1)} = {1\over2}(X_{B_n}^{(2)}+X^{(n)})\\ -\hbox{3+~segments}& - & X_{B_n}^{(0)} = {1\over6}(X^{(n-1)}-2X_{B_n}^{(2)}+7X_{B_n}^{(1)})\\ -\hbox{~2~segments}& - & X_{B_n}^{(0)} = {1\over4}(X^{(1)}-X_{B_n}^{(2)}+4X_{B_n}^{(1)})\\ -\end{eqnarray*} - -\DOCMODE( -\xydef@\bsegment@z{% - \expandafter\count@@\xycrvptsnum@ \advance\count@@\@ne - \xycontrolpt@{\the\count@@}\relax -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \advance\count@@\m@ne - \bgroup - \xycontrolpt@{\the\count@@}% -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \global\dimen3=\X@c \global\dimen5=\Y@c - \advance\count@@\m@ne \xycontrolpt@{\the\count@@}% -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \A@=\X@c \advance\A@\dimen3 \halve@dimen\A@ % \divide\A@\tw@ - \B@=\Y@c \advance\B@\dimen5 \halve@dimen\B@ % \divide\B@\tw@ - \edef\tmp@{\egroup \A@=\the\A@ \B@=\the\B@ \count@@=\the\count@@}% - \tmp@ } - -\xydef@\bsegment@z@i{% - \expandafter\count@@\xycrvptsnum@\relax\advance\count@@-\tw@ - \bgroup - \xycontrolpt@{\count@@}\X@p=\the\X@c \Y@p=\the\Y@c -\splinetrace@{\the\count@@: \the\X@c, \the\Y@c}% - \advance\X@p by7\A@ \advance\X@p-2\dimen3 \dimen@nth6\X@p - \advance\Y@p by7\B@ \advance\Y@p-2\dimen5 \dimen@nth6\Y@p - \edef\tmp@{\egroup \X@p=\the\X@p \Y@p=\the\Y@p}% - \tmp@ } -\DOCMODE) - -This is the switching-yard. - -\DOCMODE( -\xydef@\bsplinesegment@#1{\xybsplinemethods@ - \count@@=#1\relax - \ifnum\count@@=\@ne % first segment - \bsegment@i \bsegment@i@iv - \else\ifnum\count@@=\tw@ % second segment - \bsegment@@ii@iii \bsegment@@ii@i \bsegment@@iv -% \else\expandafter\count@\xycrvcnt@\advance\count@\m@ne - \else\expandafter\count@\xycrvptsnum@\advance\count@\m@ne - \ifnum\count@@=\count@ % last segment - \bsegment@z \bsegment@z@i - \else\advance\count@\m@ne - \ifnum\count@@=\count@ % penult. segment - \bsegment@@ii@iii \bsegment@@i \bsegment@@y@iv - \else % middle segments - \bsegment@@ii@iii \bsegment@@i \bsegment@@iv - \fi\fi\fi\fi - \expandafter\def\expandafter\segmentnum@\expandafter{\number#1}% - \bsplined@ } -\DOCMODE) - -Here are the differences for 3 control points. - -\DOCMODE( -\xydef@\bsplinesegment@iii#1{\xybsplinemethods@ -\splinetrace@{2 segments; \number#1}% - \count@@=#1\relax - \ifnum\count@@=\@ne \bsegment@i - \xycontrolpt@{3}% -\splinetrace@{3: \the\X@c, \the\Y@c}% - \advance\X@c 4\dimen3\advance\X@c-\A@ - \dimen@nth4\X@c % \divide\X@c by4\relax - \advance\Y@c 4\dimen5\advance\Y@c-\B@ - \dimen@nth4\Y@c % \divide\Y@c by4\relax - \else\ifnum\count@@=\tw@ \bsegment@z - \bgroup\xycontrolpt@{\@ne}% -\splinetrace@{1: \the\X@c, \the\Y@c}% - \edef\tmp@{\egroup \X@p=\the\X@c \Y@p=\the\Y@c}\tmp@ - \advance\X@p 4\A@ \advance\X@p-\dimen3 % - \dimen@nth4\X@p % \divide\X@p by4\relax - \advance\Y@p 4\B@ \advance\Y@p-\dimen5 % - \dimen@nth4\Y@p % \divide\Y@p by4\relax - \fi\fi - \expandafter\def\expandafter\segmentnum@\expandafter{\number#1}% - \bsplined@ } -\DOCMODE) - -Here are the differences for 4 control points. - -\DOCMODE( -\xydef@\bsplinesegment@iv#1{\xybsplinemethods@ -\splinetrace@{3 segments; \number#1}% - \count@@=#1\relax - \ifnum\count@@=\@ne \bsegment@i \bsegment@i@iv - \else\ifnum\count@@=\tw@ - \bsegment@@ii@iii \bsegment@@ii@i \bsegment@@y@iv - \else\ifnum\count@@=3\relax - \bsegment@z \bsegment@z@i %\xycontrolpt@{5}% - \fi\fi\fi - \expandafter\def\expandafter\segmentnum@\expandafter{\number#1}% - \bsplined@ } -\DOCMODE) - - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Circles and Ellipses} -??=[circles+ellipses] - -\noindent Here we describe the means to a specify circles of arbitrary -radius, drawn with arbitrary line styles. When large-sized objects are -used they are regularly spaced around the circle. Similarly ellipses -may be specified, but only those having major/minor axes aligned in -the standard directions; spacing of objects is no longer regular, but -is bunched toward the narrower ends. - -Such a circle or ellipse is specified using\dots -\begin{defs1} -|\xycircle|<vector>|{|<style>|}| -\end{defs1} -\noindent -where the components of the <vector> determine the lengths of the axis -for the ellipse; thus giving a circle when equal. -The <style> can be any <conn>, as in ??g[xyarrow.doc:f.arrow] that works -with curved arrows---many do. Alternatively <style> can be any <object>, -which will be placed equally-spaced about the circle at a separation -to snugly fit the <object>s. -If <empty> then a solid circle or ellipse is drawn. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\TODO: Recognize special <style>s; e.g. |.| for dotted with |\zerodot|, -|=| for a doubled circle --- alter the radius, draw two circles; -|:| for double dotted (perhaps use |\doubled@|, |\tripled@|); -|>| and |<| for chevrons; -any others? - -To use any of these special symbols as the <object> for <style> then -enclose it within extra braces, \eg~|\xycircle<20pt>{{>}}|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The curves are not truly circular or elliptical, but are approximations -given by cubic B\'ezier segments. Hence the |xycurve| feature must be loaded. - -\DOCMODE( -\message{circles,} -\DOCMODE) - -The circles are constructed from four B\'ezier cubic curves, one for each -quadrant of the circle or circle. To do this it is sufficient to establish -the control points for each cubic segment. This is straightforward, using -the following ``magic number'', given a square basis such that the desired -circle is the unit circle, or rectangular basis for which the ``unit circle'' -is the desired circle. - -\DOCMODE( -\xydef@\Circmagic@@{0.5517847} -\xylet@\Circmagic=\Circmagic@@ -\xydef@\twoPi@{6.2831852} -\xydef@\fullPi@{3.1415926} -\xydef@\halfPi@{1.5707963} -\DOCMODE) - -This is the magic number, exactly given by -${1\over12}\bigl(\sqrt{385}-13\bigr)$, -that helps construct the B\'ezier cubic curve -that best approximates a quadrant of a circle. -It does so with remarkable accuracy, -differing by at most .5\% of the radius at any angle; -the average deviation along the whole quadrant being less than .13\%. -The basic <object> defined here is |\circle|. - -\DOCMODE( -\xynew@{dimen}\L@ - -\xydef@\xycircle#1#{\hbox\bgroup\afterVECTORorEMPTY{% - \xy@@{\R@=\X@c \L@=\Y@c}\xycircle@}{\xy@@{\R@=\R@c \L@=\L@c}\xycircle@}#1@} - -\xydef@\xycircle@#1@#2{% - \DN@{#1}\ifx\next@\empty\def\onlyQuad@{}\else \count@=#1\relax - \ifnum\count@<5 \advance\count@-3\relax - \ifnum\count@<\z@ \advance\count@ 4\relax\fi \edef\onlyQuad@{\the\count@}% - \else\xyerror@{illegal circle <radius>: must be <vector> or <empty>}{}\fi - \fi \xy@@{\def\circleSTYLE@{#2}}\def\circleSTYLE@{#2}\xycircle@i} - -\xydef@\xycircle@i{\hbox{\vbox{\vskip\L@ - \hbox to2\R@{\hfill \buildcircle@ \hfill}\vskip\L@ }}% - \L@c=\R@ \R@c=\R@ \D@c=\L@ \U@c=\L@ \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\relax}\Edge@c={\circleEdge}% - \OBJECT@x} - -\xydef@\adjustMinMaxcirc@#1#2{% - \dimen@=\X@c \advance\dimen@#1\relax\ifdim\dimen@>\X@max \X@max=\dimen@\fi - \dimen@=\X@c \advance\dimen@-#1\relax\ifdim\dimen@<\X@min \X@min=\dimen@\fi - \dimen@=\Y@c \advance\dimen@#2\relax\ifdim\dimen@>\Y@max \Y@max=\dimen@\fi - \dimen@=\Y@c \advance\dimen@-#2\relax\ifdim\dimen@<\Y@min \Y@min=\dimen@\fi -} - -%\xydef@\buildcircle@{\save@ -%% \cubicCircleControls@@ -% \ifx\circleSTYLE@\empty\DN@{\solidcircle@{}}% -% \else \expandafter\DN@\expandafter{\addDASH@{}}\relax -% \ifx\next@\circleSTYLE@ \DN@{% -% \expandafter\addDASH@\expandafter{\expandafter{\addDASH@{}}}}% -% \else\DN@{\circledobjects@}\fi\fi\next@ \leave@} -\DOCMODE) - -\DOCMODE( -\xydef@\cubicCircleControls@@{\X@origin=\z@ \Y@origin=\z@ - \X@xbase=\R@ \Y@xbase=\z@ \X@ybase=\z@ \Y@ybase=\L@ - \vfromcartesian@@1,0@\czeroEdge@\idfromc@{0@c}% - \vfromcartesian@@0,1@\czeroEdge@\idfromc@{1@c}% - \vfromcartesian@@-1,0@\czeroEdge@\idfromc@{2@c}% - \vfromcartesian@@0,-1@\czeroEdge@\idfromc@{3@c}% - \vfromcartesian@@1,\Circmagic@@ @\czeroEdge@\idfromc@{1@m}% - \vfromcartesian@@\Circmagic@@,1@\czeroEdge@\idfromc@{2@m}% - \vfromcartesian@@-\Circmagic@@,1@\czeroEdge@\idfromc@{3@m}% - \vfromcartesian@@-1,\Circmagic@@ @\czeroEdge@\idfromc@{4@m}% - \vfromcartesian@@-1,-\Circmagic@@ @\czeroEdge@\idfromc@{5@m}% - \vfromcartesian@@-\Circmagic@@,-1@\czeroEdge@\idfromc@{6@m}% - \vfromcartesian@@\Circmagic@@,-1@\czeroEdge@\idfromc@{7@m}% - \vfromcartesian@@1,-\Circmagic@@ @\czeroEdge@\idfromc@{8@m}% - } - -\xydef@\doCircleQuadrant@@#1#2{\save@ \ifcase#2\relax - \doCircleQuadrant@@@{0@c}{1@m}{2@m}{1@c}{#1}\or - \doCircleQuadrant@@@{1@c}{3@m}{4@m}{2@c}{#1}\or - \doCircleQuadrant@@@{2@c}{5@m}{6@m}{3@c}{#1}\or - \doCircleQuadrant@@@{3@c}{7@m}{8@m}{0@c}{#1}\or - \doCircleQuadrant@@@{0@c}{1@m}{2@m}{1@c}{#1}\or - \doCircleQuadrant@@@{1@c}{3@m}{4@m}{2@c}{#1}\or - \doCircleQuadrant@@@{2@c}{5@m}{6@m}{3@c}{#1}\or - \doCircleQuadrant@@@{3@c}{7@m}{8@m}{0@c}{#1}\fi \leave@ } - -\xydef@\doCircleQuadrant@@@#1#2#3#4#5{% - \cfromid@{#1}\pfromc@\senter@ - \cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}% - \let\bstartPLACE@=\empty \connect@\crvs{#5}\relax\sinit@\sleave@ - \resetbreaks@} -\DOCMODE) - -The hook |\dosolidcircle@@| is provided so that back-ends may -provide an alternative method to draw the circles/ellipses. -Note that the token following |\solidcircle@| will be a group -representing the <style> to be used. - -\DOCMODE( -\xydef@\dosolidcircle@#1{% - \cubicCircleControls@@ - \doCircleQuadrant@@{#1}1 \relax\Clast@@ - \doCircleQuadrant@@{#1}2 \relax\Clast@@ - \doCircleQuadrant@@{#1}3 \relax\Clast@@ - \doCircleQuadrant@@{#1}4 \relax\Clast@@}% - -\xydef@\solidcircle@{\dosolidcircle@@} -\xylet@\dosolidcircle@@=\dosolidcircle@ -\DOCMODE) - -This places objects equally spaced around a circle, -according to angular position. - -\BUG: objects are not equally spaced around ellipses constructed this way. -To get regular spacing around ellipses, in terms or arc-length say, -is much more difficult, both theoretically and practically. - -\TODO: the size of the resulting <object> does not take into account -the size of the <object> dropped around the circle. - -\DOCMODE( -\xydef@\circledobjects@{\cubicCircleControls@@ - \setboxz@h{\expandafter\object\circleSTYLE@{}}% - \ifdim\L@>\R@ \dimen@ii=\ht\z@ \advance\dimen@ii \dp\z@ - \ifdim\zz@\dimen@ii \dimen@ii=\wdz@\fi - \else \dimen@ii=\wdz@ - \ifdim\zz@\dimen@ii \dimen@ii=\ht\z@ \advance\dimen@ii \dp\z@\fi - \fi \ifdim\zz@\dimen@ii \dimen@ii=2\jot\fi - \expandafter\dimen@\ifdim\L@>\R@ \twoPi@\L@\else \twoPi@\R@\fi - \advance\dimen@.5\dimen@ii - \count@@=\dimen@ \count@=\dimen@ii \divide\count@@\count@ - \edef\numobjects{\the\count@@}\dimen@=4\p@ - \dimen@nth\numobjects\dimen@ % \divide\dimen@\numobjects\relax - \edef\circleseparation@{\expandafter\removePT@\the\dimen@}% - \edef\circleplace@{-\circleseparation@}\placeQuadrants@}% - -\xydef@\placeQuadrants@{\DN@{\placeAllQuadrants@}% - \ifx\onlyQuad@\undefined\else\ifx\onlyQuad@\empty\else - \DN@{\expandafter\placeCircQuadrant@\expandafter{\onlyQuad@}}% - \fi\fi \next@ }% -%\def\placeQuadrants@{\placeAllQuadrants@} - -\xydef@\placeAllQuadrants@{% - \placeCircQuadrant@{1}% - \advance\dimen@-\p@\advance\dimen@-\circleseparation@\p@ - \edef\circleplace@{\expandafter\removePT@\the\dimen@}% - \placeCircQuadrant@{2}% - \advance\dimen@-\p@\advance\dimen@-\circleseparation@\p@ - \edef\circleplace@{\expandafter\removePT@\the\dimen@}% - \placeCircQuadrant@{3}% - \advance\dimen@-\p@\advance\dimen@-\circleseparation@\p@ - \edef\circleplace@{\expandafter\removePT@\the\dimen@}% - \placeCircQuadrant@{4}} - -\xydef@\placeCircQuadrant@#1{% - \let\bstartPLACE@=\relax \doCircleQuadrant@@{}#1% - \loop@ - \expandafter\dimen@\circleplace@\p@ - \advance\dimen@\circleseparation@\p@ - \edef\circleplace@{\expandafter\removePT@\the\dimen@}% - \ifdim\dimen@<\p@ \placeCircObject@ - \repeat@ } - -\xydef@\placeCircObject@{\begingroup - \crvconnect@@ \Creset@@ \Invisible@false - \expandafter\splinealong@\expandafter{\circleplace@}% - \expandafter\drop\circleSTYLE@{}\endgroup } - -\xydef@\buildcircle@{\save@ -% \cubicCircleControls@@ - \DNii@{\circledobjects@}% - \ifx\circleSTYLE@\empty\DNii@{\solidcircle@{}}% - \else \expandafter\DN@\expandafter{\addDASH@{}}\relax - \ifx\next@\circleSTYLE@ \DNii@{\solidcircle@{}}% - \else \expandafter\DN@\expandafter{\addEQ@{}}% - \ifx\next@\circleSTYLE@ - \expandafter\circletemplate@\expandafter{\addEQ@{}}{}% - \else \expandafter\DN@\expandafter{\addDASH@ 2}% - \ifx\next@\circleSTYLE@ \DNii@{\doublecircle@{}}% - \else \expandafter\DN@\expandafter{\addDASH@ 3}% - \ifx\next@\circleSTYLE@ \DNii@{\triplecircle@{}}% - \else \expandafter\expandafter\expandafter\DN@\expandafter\expandafter - \expandafter{\expandafter\addDASH@\addDASH@{}}% - \ifx\next@\circleSTYLE@ \DNii@{\dashedcircle@{}}% - \else \expandafter\expandafter\expandafter\DN@\expandafter\expandafter - \expandafter{\expandafter\addEQ@\addEQ@{}}% - \ifx\next@\circleSTYLE@ \expandafter\expandafter\expandafter - \circletemplate@\expandafter\expandafter\expandafter{% - \expandafter\addEQ@\addEQ@{}}2% - \else \expandafter\expandafter\expandafter\DN@\expandafter\expandafter - \expandafter{\expandafter\addEQ@\addEQ@2}% - \ifx\next@\circleSTYLE@ \expandafter\expandafter\expandafter - \circletemplate@\expandafter\expandafter\expandafter{% - \expandafter\addEQ@\addEQ@{}}2% - \else \expandafter\expandafter\expandafter\DN@\expandafter\expandafter - \expandafter{\expandafter\addEQ@\addEQ@3}% - \ifx\next@\circleSTYLE@ \expandafter\expandafter\expandafter - \circletemplate@\expandafter\expandafter\expandafter{% - \expandafter\addEQ@\addEQ@{}}3% - \else \expandafter\DN@\expandafter{\addDOT@{}}\relax - \ifx\next@\circleSTYLE@ \DNii@{\dottedcircle@{}}% - \else \expandafter\DN@\expandafter{\addDOT@2}\relax - \ifx\next@\circleSTYLE@ \DNii@{\dbldottedcircle@{}}% - \else \expandafter\DN@\expandafter{\addDOT@3}\relax - \ifx\next@\circleSTYLE@ \DNii@{\trpldottedcircle@{}}% - \else \DN@{:}\relax - \ifx\next@\circleSTYLE@ \DNii@{\dbldottedcircle@{}}% -% \else\DN@{\circledobjects@}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \nextii@ \leave@} - -\xydef@\circletemplate@#1#2{\def\circleSTYLE@{\dir#2{#1}}} -\xydef@\doublecircle@#1{% - \advance\R@-\p@ \advance\L@-\p@ \solidcircle@{}% - \advance\R@ 2\p@ \advance\L@ 2\p@ \solidcircle@{}} -\xydef@\triplecircle@#1{% - \advance\R@-2\p@ \advance\L@-2\p@ \solidcircle@{}% - \advance\R@ 2\p@ \advance\L@ 2\p@ \solidcircle@{}% - \advance\R@ 2\p@ \advance\L@ 2\p@ \solidcircle@{}} - -%\xydef@\dashedcircle@#1{\expandafter\expandafter\expandafter -% \circletemplate@\expandafter\expandafter\expandafter{% -% \expandafter\addDASH@\addDASH@{}}{}\circledobjects@ }% - -\xydef@\dottedcircle@#1{% - \expandafter\def\expandafter\circleSTYLE@\expandafter{% -% \expandafter{\addDOT@{}}}% - \zerodot@i}% - \circledobjects@} - -\xydef@\dashedcircle@#1{% - \expandafter\def\expandafter\circleSTYLE@\expandafter{\zerodash@i}% - \circledobjects@} - -\xydef@\dbldottedcircle@#1{% - \advance\R@-\p@ \advance\L@-\p@ \dottedcircle@{}% - \advance\R@ 2\p@ \advance\L@ 2\p@ \dottedcircle@{}} -\xydef@\trpldottedcircle@{% - \advance\R@-2\p@ \advance\L@-2\p@ \dottedcircle@{}% - \advance\R@ 2\p@ \advance\L@ 2\p@ \dottedcircle@{}% - \advance\R@ 2\p@ \advance\L@ 2\p@ \dottedcircle@{}} - -{\xyuncatcodes \gdef\next{=<.75\jot>{\zerodot}}} -\xylet@\zerodot@i=\next - -{\dimen0=2\xydashl@ \xyuncatcodes -\expandafter\gdef\expandafter\next\expandafter{\expandafter - =\expandafter<\the\dimen0 >_\dir{|}}} -\xylet@\zerodash@i=\next - -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{code} -\xy 0;/r5pc/:*\dir{*} - ;p+(.5,-.5)*\dir{*}="c" -,**\dir{-},*+!UL{c},"c" -,*\xycircle(1,.4){++\dir{<}} -,*\xycircle(1,1){++\dir{>}} -,*\xycircle<15pt,10pt>{} -;*\xycircle<10pt>{{.}} -\endxy -\end{code} -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -{\xyuncatcodes\gdef\next{--}} -\xylet@\dashcorntemp@@=\next -{\xyuncatcodes\gdef\next{.}} -\xylet@\dotcorntemp@@=\next - -\xydef@\dotcorner@#1{% - \expandafter\circleCorner@\expandafter{\dotcorntemp@@}{#1}}% -\xydef@\dashcorner@#1{% - \expandafter\circleCorner@\expandafter{\dashcorntemp@@}{#1}} - -\xydef@\circleCorner@#1#2{\setboxz@h\bgroup - \edef\next{#2\relax\R@=\the\R@\relax\L@=\R@ }% - \expandafter\xycircle@\next @{#1}% - \ifcase#2\or \setboxz@h{\lower\R@\boxz@\kern\X@c}% - \or \setboxz@h{\kern-\R@\lower\R@\boxz@\kern\R@\kern\X@c}% - \or \setboxz@h{\kern-\R@\lower\R@\boxz@\kern\R@\kern\X@c}% - \or \setboxz@h{\lower\R@\boxz@\kern\X@c}\fi - \wdz@=\R@ \ht\z@=\R@ \dp\z@=\R@ \boxz@ - } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Quadratic Splines} -??=[quadsplines] - -Quadratic B\'ezier splines, as distinct from cubic B\'ezier splines, -are constructed from parabolic arcs, using `control points' to determine -the tangents where successive arcs are joined. - -Various implementations of such curves exist. -The one adopted here is consistent with the |xfig| drawing utility and -\TPIC\ implementations. These have the property of beginning and ending -with straight segments, half the length to the corresponding adjacent -control-point. Furthermore the midpoint between successive control-points -lies on the spline, with the line joining the control-points being tangent -there. - -Such curves are specified, either as a <decor> or as an <object>, -using\dots -\begin{defs1} -|\qspline{|<style>|}| -\end{defs1} -\noindent -where the start and end of the curve are at $p$ and $c$ respectively. -The control-points are taken from the current stack, see~??g[xy.doc:stack]. -If this stack is empty then a straight line is constructed. - -The following example compares the quadratic spline with the gentler -curving B-spline having the same control points, using |\crvs|. -% -\begin{code} -\xy /r1.5pc/:,+<5pc,3pc>*+{P};p -@(,+(2,2)*{+}@+, +(2,-2)*{+}@+ -,+(2,2)*{+}@+, +(2,0)*+{C}="C" -,*\qspline{},"C",**\crvs{.} -,@i @)\endxy -\end{code} -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -If the current stack is empty, simply pass everything to |\crvs@|, as if -the request originated from a |\crvs| or |\ar|. Otherwise we must build up -the segments of the spline. - -\DOCMODE( -\xydef@\qspline{\hbox\bgroup\crvresetbreaks@ \xy@spline@} - -\xydef@\xy@spline@#1#{\if\sempty@ \DN@{\crvs@{}\resetbreaks@}% - \else\DN@{\xy@spline@i{#1}}\fi \next@ }% -\DOCMODE) - -The |#1| parameter to |\xy@spline@i| is to allow -alternative implementations; currently it is ignored. -When |#1| is indeed empty, - -\DOCMODE( -\xydef@\xy@spline@i#1#2{\def\splineSTYLE@{#2}% - \DN@{\xy@spline@ii}\DNii@{#1}% - \ifx\nextii@\empty\DN@{\xy@spline@ii@@}\fi \next@ } - -\xydef@\xy@spline@ii{\save@ \cfromp@\idfromc@{@p}% - \enter@\cplusthec@ \count@@=\s@top\advance\count@@\m@ne - \cfroms@{\count@@}\leave@ - \halve@dimen\X@c % \divide\X@c\tw@ - \halve@dimen\Y@c % \divide\Y@c\tw@ - \czeroEdge@ \idfromc@{@c}% - \expandafter\doSplineStraight@\expandafter{\splineSTYLE@}% - \count@=\@ne \edef\next@{\the\count@}% - \ifx\next@\s@top\DN@{\xy@spline@iv}\else\DN@{\xy@spline@iii}\fi - \next@ } -\xylet@\xy@spline@ii@@=\xy@spline@ii - -\xydef@\xy@spline@iii{\crv@cnt@=\s@top - \loop \advance\crv@cnt@\m@ne \xy@spline@g \ifnum\crv@cnt@>\@ne\repeat - \xy@spline@iv} - -\xydef@\xy@spline@g{\cfromid@{@c}\idfromc@{@p}% - \count@@=\crv@cnt@\cfroms@{\count@@}\idfromc@{@m}% - \enter@\cplusthec@ \count@@=\crv@cnt@ \advance\count@@\m@ne - \cfroms@{\count@@}\leave@ - \halve@dimen\X@c % \divide\X@c\tw@ - \halve@dimen\Y@c % \divide\Y@c\tw@ - \czeroEdge@\idfromc@{@c}% - \expandafter\doSplineSegment@\expandafter{\splineSTYLE@}} - -\xydef@\xy@spline@iv{\cfromid@{@c}\idfromc@{@p}% - \cfroms@{\z@}\idfromc@{@m}\leave@ \save@ - \enter@\cplusthec@ \cfromid@{@m}\leave@ - \halve@dimen\X@c % \divide\X@c\tw@ - \halve@dimen\Y@c % \divide\Y@c\tw@ - \czeroEdge@\idfromc@{@c}% - \expandafter\doSplineSegment@\expandafter{\splineSTYLE@}% - \xy@spline@v } - -\xydef@\xy@spline@v{\cfromid@{@c}\idfromc@{@p}% - \leave@ \save@ \idfromc@{@c}% - \expandafter\doSplineStraight@\expandafter{\splineSTYLE@}% - \xy@spline@x } - -\xydef@\xy@spline@x{\leave@ - \def\Drop@@{\splineDrop@ \resetbreaks@}% - \def\Connect@@{\straight@\relax\splineConnect@ \resetbreaks@}% - \OBJECT@x} - -\xydef@\splineDrop@{\ifInvisible@\setboxz@h{}% - \else\setboxz@h{\kern-\the\X@c\raise-\the\Y@c\hbox{\styledboxz@}}\fi - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@ } - -\xydef@\splineConnect@{% - \ifInvisible@\else\box\lastobjectbox@\fi }% -\DOCMODE) - -The initial and final points in a segment are stored as |@p| and |@c| -respectively. Where needed, the control is in |@m|. - -\DOCMODE( -\xydef@\doSplineStraight@#1{\begingroup \sinit@ - \cfromid@{@p}\pfromc@\cfromid@{@c}% - \connect@\crvs{#1}\relax\sleave@\endgroup } - -\xydef@\doSplineSegment@#1{\begingroup \sinit@ - \cfromid@{@p}\pfromc@\senter@\cfromid@{@m}\spushc@\cfromid@{@c}% - \connect@\crvs{#1}\relax\sinit@\sleave@\endgroup } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xycurve.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% 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:01:45 ross -% major revisions for the new BREAK methods -% spline edge-finding is more robust -% spline-breaks fully implemented -% intersections of curve with straight connections implemented -% improved tracings -% adjusted methods for styles -% -% Revision 3.2 1995/09/19 18:20:20 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/05 07:58:43 ross -% Ready for v3 release? -% -% Revision 2.12 1994/10/25 03:01:14 ross -% Final 3beta release [bug fixes & AMS-LaTeX fitting]. -% -% Revision 2.12 1994/09/05 08:22:11 ross -% incorporates some speed-ups, extra documentation -% -% Revision 2.11 1994/07/05 09:27:52 ross -% Minor fixes; use 2.11 kernel stack code. -% -% Revision 2.9 1994/06/09 14:50:54 ross -% Release 3beta. -% -% Revision 2.8 1994/04/08 10:36:40 ross -% Second 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 ross -% Last internal 3alpha and pre-2.7 release. -% -% NEW for version 2.7 inspired by Knuth's picmac.tex. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xydoc.back b/Master/texmf-dist/source/generic/xypic/xydoc.back deleted file mode 100644 index 8b137891791..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xydoc.back +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Master/texmf-dist/source/generic/xypic/xydoc.bib b/Master/texmf-dist/source/generic/xypic/xydoc.bib deleted file mode 100644 index ca8bbaac87b..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xydoc.bib +++ /dev/null @@ -1,764 +0,0 @@ -% $Id: xydoc.bib,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -% -% BibTeX References for the Xy-pic documentation. -% -% 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 at 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. -% -% CONTENTS: -% Journals, publishers, and institutions. -% Special TeX definitions. -% My TeX production. -% Other TeX related references, sorted by author. -% Other references, sorted by author. -% Log. -% -% NOTE: uses the abbreviations \TeX, \MF, \LaTeX, \AMS, \PiCTeX, and \Xy. - -@Preamble{"\label{BIBLIOGRAPHY}"} - -% -% JOURNALS, PUBLISHERS, AND INSTITUTIONS. - -% Journals given in BibTeX standard styles: -@string{cacm = "Communications of the ACM"} -@string{sicomp = "SIAM Journal on Computing"} -@string{tcs = "Theoretical Computer Science"} - -@string{jfp = "Journal of Functional Programming"} -@string{lasc = "{LISP} and Symbolic Computation"} -@string{spe = "Software Practice and Experience"} - -% Publishers... -@string{A-W = "Addison-Wesley"} -@string{N-H = "North-Holland"} -@string{P-H = "Prentice-Hall"} -@string{S-V = "Springer-Verlag"} -@string{LNCS = "{LNCS}"} - -% Organizations... -@string{ACM = "Association for Computing Machinery"} -@string{AMS = "American Mathematical Society"} -@string{DIKU = "{DIKU}, University of Copenhagen"} - -% -% Xy-pic (most recent first). - -% Start of v3 as `published' from DIKU on the form required for -% registration with PUF and ANL... - -% Kit. -@Misc{RM95:Xy-pic, - author = "Kristoffer H. Rose and Ross R. Moore", - title = "{\Xy}-pic, version 3", - month = jun, - year = 1995, - howpublished = "computer software kit", - note = "includes - User's Guide~\cite{R95:Xy-picUG}, and - Reference Manual~\cite{RM95:Xy-picRM}" -} - -% 1. -@Manual{R95:Xy-picUG, - author = {Kristoffer H. Rose}, - YEAR = {1995}, - TITLE = {{\Xy}-pic User's Guide}, - organization = {{DIKU}, University of Copenhagen}, - address = {Universitetsparken 1, DK--2100 K{\o}benhavn {\O}}, - month = jun, - edition = {3.0}, - keywords = {diagram, picture, graph, arrow, curve, commutative diagram}, - summary = {{\Xy}-pic is a package for typesetting graphs and - diagrams using Knuth's \TeX\ typesetting system. - \Xy-pic works with most of the many formats - available, \eg, plain \TeX, \LaTeX, \AMS-\LaTeX, and - \AMS-\TeX. Several styles of input for various - diagram types are supported; they all share a - mnemonic notation based on the logical composition - of visual components used}, - supersedes = {D-200}, - SEMNO = {D-237}, - PUF = {---}, - ID = {Man} -} - -% 2. -@Manual{RM95:Xy-picRM, - author = {Kristoffer H. Rose and Ross R. Moore}, - YEAR = {1995}, - TITLE = {{\Xy}-pic Reference Manual}, - organization = {{DIKU}, University of Copenhagen}, - address = {Universitetsparken 1, DK--2100 K{\o}benhavn {\O}}, - month = jun, - edition = {3.0}, - keywords = {diagram, picture, graph, arrow, curve, commutative diagram}, - summary = {{\Xy}-pic is a package for typesetting graphs and - diagrams. It is structured as several modules, each - defining a custom notation for a particular kind of - graphical object or structure. Example objects are - arrows, curves, frames, and colouring/rotation on - drivers that support it; these can be organised in - matrix, directed graph, path, polygon, knot, and - 2-cell structure. Xy-pic works with most formats, - including LaTeX, AMS-LaTeX, AMS-TeX, and plain TeX, - and has been used to typeset complicated diagrams - from many application areas including category - theory, automata theory, algebra, neural networks, - and database theory}, - supersedes = {D-201}, - SEMNO = {D-238}, - PUF = {---}, - ID = {Man} -} - -% 3. -@Misc{RM95:Xy-picCSTC, - author = "Kristoffer H. Rose and Ross R. Moore", - title = "{\Xy}-pic Complete Sources with {\TeX}\-nical Commentary", - month = jun, - year = 1995, - howpublished = "not yet available" -} - -% 4. -@Misc{R95:Xy-picUnix, - author = "Kristoffer H. Rose", - title = "{\Xy}-pic Unix Distribution", - month = jun, - year = 1995, - howpublished = "computer software" -} - -% 5. -@Misc{M95:Xy-picMac, - author = "Ross R. Moore", - title = "{\Xy}-pic Macintosh Distribution", - month = jun, - year = 1995, - howpublished = "computer software" -} - -% 6. -@Misc{M95:Xy-picMacFonts, - author = "Ross R. Moore", - title = "{\Xy}-pic fonts, for Macintosh", - month = jun, - year = 1995, - howpublished = "computer software" -} - -% 7. -@Misc{M95:Xy-macXFonts, - author = "Ross R. Moore", - title = "{\Xy}-pic extra font sizes, for Macintosh", - month = jun, - year = 1995, - howpublished = "computer software" -} - -% End of v3. - - -@Misc{Xy-picHP, - author = "Kristoffer H. Rose", - title = "The {\Xy}-pic Home Page", - howpublished = "\url{http://www.ens-lyon.fr/\~{}krisrose/Xy-pic.html}" -} - - -% Start of v2.12 as registered with Australian National Library: - -% Kit. -@Misc{RM94:Xy-pic, - author = "Kristoffer H. Rose and Ross R. Moore", - title = "{\Xy}-pic, version 2.12", - month = oct, - year = 1994, - howpublished = "computer software kit: ISBN 1 86408 117 1", - note = "includes software, User's Guide and Reference - Manual" -} - -% 1. -@TechReport{R94:Xy-picUGII, - author = "Kristoffer H. Rose and Ross R. Moore", - title = "{\Xy}-pic User's Guide and Installation Instructions", - institution = "MPCE, Macquarie University", - year = 1994, - month = oct, - type = "Mathematics Report", - number = "94--148 (revised), ISBN 1 86408 125 2", - address = "NSW 2109, Australia" -} - -% 2. -@TechReport{RM94:Xy-picRM, - title = "{\Xy}-pic Reference Manual", - author = "Kristoffer H. Rose and Ross R. Moore", - institution = "MPCE, Macquarie University", - year = 1994, - month = oct, - type = "Mathematics Report", - number = "94--155, ISBN 1 86408 133 3", - address = "NSW 2109, Australia", - note = "Available with URL {ftp:/\kern-1pt/ftp.brics.dk\slash - Staff\slash krisrose\slash TeX\slash xyrefer.ps}" -} - -% 3. -@Misc{RM94:Xy-picCSTC, - author = "Kristoffer H. Rose and Ross R. Moore", - title = "{\Xy}-pic Complete Sources with {\TeX}\-nical Commentary", - year = 1994, - month = oct, - howpublished = "ISBN 1 86408 141 4" -} - -% 4. -@Misc{R94:Xy-picUnix, - author = "Kristoffer H. Rose", - title = "{\Xy}-pic Unix Distribution", - year = 1994, - month = oct, - howpublished = "computer software: ISBN 1 86408 149 X", - note = "Available with URL {ftp:/\kern-1pt/ftp.diku.dk\slash diku\slash - users\slash kris\slash TeX\slash xy212run.tar.gz}" -} - -% 5. -@Misc{M94:Xy-picMac, - author = "Ross R. Moore", - title = "{\Xy}-pic Macintosh Distribution", - year = 1994, - month = oct, - howpublished = "computer software: ISBN 1 86408 157 0", - note = "Available with URL {ftp:/\kern-1pt/ftp.diku.dk\slash - diku\slash users\slash kris\slash TeX\slash - xy212mac.sit.hqx}" -} - -% 6. -@Misc{M94:Xy-picMacFonts, - author = "Ross R. Moore", - title = "{\Xy}-pic fonts, for Macintosh", - year = 1994, - month = oct, - howpublished = "computer software: ISBN 1 86408 165 1", - note = "Available with URL {ftp:/\kern-1pt/ftp.diku.dk\slash - diku\slash users\slash kris\slash TeX\slash - xy212mac.sit.hqx}" -} - -% 7. -@Misc{M94:Xy-macXFonts, - author = "Ross R. Moore", - title = "{\Xy}-pic extra font sizes, for Macintosh", - year = 1994, - month = oct, - howpublished = "computer software: ISBN 1 86408 173 2", - note = "Available with URL {ftp:/\kern-1pt/ftp.diku.dk\slash - diku\slash users\slash kris\slash TeX\slash - xymacxf.sit.hqx}" -} - -% End of v2.12 as registered with Australian National Library... - -@TechReport{R94:Xy-picUG, - author = "Kristoffer H. Rose", - title = "{\Xy}-pic User's Guide", - institution = "MPCE, Macquarie University", - year = 1994, - type = "Mathematics Report", - number = "94--148", - address = "NSW 2109, Australia", - month = jun, - note = "For version 2.10+. Latest version available with - URL {\tt ftp:/\kern-1pt/ftp.diku.dk\slash diku\slash - users\slash kris\slash TeX\slash xy\slash xyguide.ps}" -} - -@TechReport{RM94:Xy-picRM-old, - title = "{\Xy}-pic Reference Manual", - author = "Kristoffer H. Rose and Ross R. Moore", - institution = "MPCE, Macquarie University", - year = 1994, - month = jun, - type = "Mathematics Report", - number = "94--155", - address = "NSW 2109, Australia", - note = "For version 2.10+. Latest version available with - URL {ftp:/\kern-1pt/ftp.diku.dk\slash diku\slash - users\slash kris\slash TeX\slash xyrefer.ps}" -} - -@Manual{M94:TypesettingNNX, - title = "Typesetting Neural Nets using {\Xy}-pic", - author = "Ross R. Moore", - year = 1994, - note = "Available through~\cite{Xy-picHP}" -} - -@Misc{R94:Xy-picNCD, - author = "Kristoffer H. Rose", - title = "{\Xy}-pic and Notation for Categorical Diagrams", - howpublished = "Invited talk at ECCT-94", - year = 1994, - month = jul, - note = "Available through~\cite{Xy-picHP}" -} - -@InProceedings{R92:HowTPDAT, - author = "Kristoffer H. Rose", - title = "How to Typeset Pretty Diagram Arrows with - {\TeX}---Design Decisions used in {\Xy}-pic", - pages = "183-190", - booktitle = "{Euro\TeX~'92}---Proceedings of the 7th European - {\TeX} Conference", - year = 1992, - editor = "Ji{\v{r}}{\'\i} Zlatu{\v{s}}ka", - organization = "Czechoslovak {\TeX} Users Group", - address = "Prague, Czechoslovakia", - month = sep -} - -% Kit. -@Misc{R92:Xy-pic, - author = "Kristoffer H. Rose", - title = "{\Xy}-pic, version 2.6", - year = 1992, - howpublished = "computer software kit", - note = "includes User's Manual~\cite{R92:TypesettingDXUM}" -} - -@InProceedings{R92:TypesettingDXUM, - author = "Kristoffer H. Rose", - title = "Typesetting Diagrams with {\Xy}-pic: User's Manual", - pages = "273-292", - booktitle = "{Euro\TeX~'92}---Proceedings of the 7th European - {\TeX} Conference", - year = 1992, - editor = "Ji{\v{r}}{\'\i} Zlatu{\v{s}}ka", - organization = "Czechoslovak {\TeX} Users Group", - address = "Prague, Czechoslovakia", - month = sep -} - -@Misc{R92:ExercisesX, - author = "Kristoffer H. Rose", - title = "Exercises in {\Xy}-pic", - howpublished = "Handout at tutorial given at {Euro\TeX~'92}", - year = 1992, - month = sep, - note = "Available by anonymous ftp in {\tt ftp.diku.dk: - /diku\slash users\slash kris\slash TeX\slash - Obsolete\slash xypicex.ps.Z}" -} - -@Misc{R92:xypic.doc, - author = "Kristoffer H. Rose", - title = "{\Xy}-pic Macros: Technical Documentation", - howpublished = "{\tt xypic.doc} of the {\Xy}-pic version 2.6 release", - year = 1992, - month = oct -} - -@TechReport{H91:Xy-picTGDT, - author = "Kristoffer H. Holm", - title = "{\Xy}-pic: Typesetting Graphs and Diagrams with {\TeX}", - institution = DIKU, - year = 1991, - type = "Student report", - number = "91--7--10", - address = "Universitets\-parken 1, {DK}-2100 K\o{}ben\-havn \O", - month = jul, - note = "Obsolete" -} - -@Misc{R91:xy.doc, - author = "Kristoffer H. Rose", - title = "{\Xy}-pic Macros: Technical Documentation", - howpublished = "{\tt xy.doc} of the $\beta$-release of the - {\Xy}-pic package", - year = 1991, - month = nov, - note = "Obsolete" -} - -@Unpublished{HD90:DrawingGD, - author = "Kristoffer H. Holm and Hans Dybkj\ae{}r", - title = "Drawing Graphs and Diagrams", - note = "Documents the obsolete {\tt graphs} macros", - year = 1990, - month = sep -} - -% -% TeX RELATED REFERENCES, SORTED BY AUTHOR. - -@Manual{AMS95:AMS-LaTeX, - title = "{\AMS}-{\LaTeX} Version 1.2 User's Guide", - organization = "American Mathematical Society", - edition = "1.2b", - year = 1995, - month = jan -} - -@Manual{AMS94:AMS-LaTeX, - title = "{\AMS}-{\LaTeX} Version 1.2 User's Guide", - organization = "American Mathematical Society", - edition = "1.2", - year = 1994, - month = oct -} - -@Manual{AMS91:AMS-LaTeX, - title = "{\AMS}-{\LaTeX} Version 1.1 User's Guide", - organization = "American Mathematical Society", - edition = "1.1", - year = 1991 -} - -@Manual{B:DiagramM, - title = "The Diagram Macros", - author = "Michael Barr", - note = "Available by anonymous ftp from {\tt - triples.math.mcgill.ca:\-/pub/texmacros/diagdoc.tex}" -} - -@Manual{B:UsersGD3, - title = "User's Guide for Diagram 3", - author = "Francis Borceux", - address = "{L}ouvain-la-{N}euve", - note = "Available from the author, borceux@agel.ucl.ac.be" -} - -@Manual{B94:ExpandedPT, - title = "Expanded plain {\TeX}", - author = "Karl Berry", - edition = "version 2.6", - year = 1994, - month = may, - note = "Available for anonymous ftp from CTAN in {\tt - macros\slash eplain\slash doc}." -} - -@Book{GMS94:LaTeXC, - author = "Michel Goossens and Frank Mittelbach and Alexander Samarin", - title = "The {\LaTeX} Companion", - publisher = A-W, - year = 1994 -} - -@article{HO87:TypesettingCSFTFT, - author = "Roswitha T. Haas and Kevin C. O'Kane", - title = "Typesetting Chemical Structure Formulas with the Text - Formatter \TeX/\LaTeX", -journal = "Computers \& Chemistry", - year = 1987, - volume = 11, - number = 4, - pages = "251-271" -} - -@Article{K82:PIC-LTG, - author = "Brian W. Kernighan", - title = "{PIC}---A Language for Typesetting Graphics", - journal = spe, - year = 1982, - volume = 12, - number = 1, - pages = "1-21" -} - -@Manual{KC:eqn, - title = "Typesetting Mathematics -- User's Guide", - author = "B. W. Kernighan and L. L. Cherry", - organization = "Bell labs" -} - -@TechReport{K91:PIC-GLT, - author = "Brian W. Kernighan", - title = "{PIC}---A Graphics Language for Typesetting", - institution = "{AT\&T} Bell Laboratories", - year = 1991, - type = "Computing Science Technical Report", - number = 116, - address = "Murray Hill, New Jersey 07974", - month = may -} - -@Book{K84:TeXbook, - author = "Donald E. Knuth", - title = "The {\TeX}book", - publisher = A-W, - year = 1984 -} - -@Book{K86:ComputerMT, - author = "Donald E. Knuth", - title = "Computer Modern Typefaces", - publisher = A-W, - year = 1986, - volume = "A", - series = "Computers \& Typesetting" -} - -@Book{K86:MFbook, - author = "Donald E. Knuth", - title = "The {\MF}book", - publisher = A-W, - year = 1986 -} - -@Manual{K88:EEPIC, - title = "{EEPIC} -- Extensions to epic and {\LaTeX} Picture - Environment 1.1", - author = "Conrad Kwok", - organization = "Dept. of Electrical Engineering and Computer - Science, University of California, Davis", - year = 1988, - month = feb -} - -@Book{L86:LaTeX, - author = "Leslie Lamport", - title = "{\LaTeX}---A Document Preparation System", - publisher = A-W, - year = 1986 -} - -@Book{L94:LaTeX, - author = "Leslie Lamport", - title = "{\LaTeX}---A Document Preparation System", - publisher = A-W, - year = 1994, - edition = "2nd" -} - -@Misc{L88:latex.tex, - author = "Leslie Lamport", - title = "{\LaTeX} Version 2.09", - howpublished = "{\tt latex.tex} of {\LaTeX} distribution", - year = 1988, - month = aug -} - -@Manual{L88:FeynmanLRGFD, - title = "A {\LaTeX} Routine for Generating feynman Diagrams", - author = "Michael Levine", - edition = "1.0", - year = 1988, - month = oct, - OPTnote = "{CTAN} {\tt macros/\-latex/\-contrib\slash \-feynman}" -} - -@Article{N60:ReportALA60, - author = "P. Naur and others", - title = "Report on the Algorithmic Language {ALGOL} 60", - journal = cacm, - year = 1960, - volume = 3, - pages = "299-314" -} - -@Manual{O79:NROFF/TROFFUM, - title = "{NROFF/TROFF} User's Manual", - author = "J. F. Osanna", - organization = "Bell Laboratories", - address = "Murray Hill, N.J.", - year = 1979 -} - -@TechReport{P86:EnhancementsPEL, - author = "Sunil Podar", - title = "Enhancements to the Picture Environment of {\LaTeX}", - institution = "Dept. of Computer Science, S.U.N.Y. at Stony Brook", - year = 1986, - number = "86-17", - month = jul -} - -@Manual{ps, - title = "PostScript Language Reference Manual", - organization = "Adobe Systems Incorporated", - edition = "second", - year = 1990 -} - -@Manual{R87:UsersMDM, - title = "User's Manual for Diagram Macros", - author = "John Reynolds", - year = 1987, - month = dec, - note = "Available by anonymous ftp from {\tt e.ergo.cs.cmu.edu}" -} - -@Manual{dvips, - title = "{DVIPS}: A {\TeX} Driver", - author = "Tomas Rokicki", - note = "Distributed with the dvips program found on CTAN archives" -} - -@Manual{textures, - title = "Textures User's Guide", - organization = "Blue Sky Research", - address = "Portland, Oregon", - year = 1988, - month = dec -} - -@Book{S82:JoyT, - author = "Michael D. Spivak", - title = "The Joy of {\TeX}---A Gourmet Guide to Typesetting - with the {\AMS-\TeX} Macro Package", - publisher = A-W, - year = 1982 -} - -@Book{S90:JoyT, - author = "Michael D. Spivak", - title = "The Joy of {\TeX}---A Gourmet Guide to Typesetting - with the {\AMS-\TeX} Macro Package", - edition = "second", - publisher = AMS, - year = 1990 -} - -@Misc{TWG-TDS, - key = "TWG-TDS-0.98", - author = "TUG Working Group TWG-TDS", - title = "A Directory Structure for {\TeX} Files version 0.98", - howpublished = "URL", - year = 1995, - month = may, - note = "Available with URL {ftp:/\kern-1pt\slash - jasper.ora.com\slash pub\slash twg-tds/}" -} - -@Manual{T93:OzTeXUG, - title = "{\OzTeX} User's Guide", - author = "Andrew Trevorrow", - address = "19 Abbot Lane, North Adelaide 5006, Australia", - edition = "1.6", - year = 1993, - month = jul -} - -@Manual{T90:CommutativeDT, - title = "Commutative Diagrams in {\TeX}", - author = "Paul Taylor", - organization = "Department of Computing, Imperial College", - address = "180 Queens Gate, London SW7 2BZ", - year = 1990, - month = jul -} - -@Manual{T93:CommutativeDTV4, - title = "Commutative Diagrams in {\TeX} (version 4)", - author = "Paul Taylor", - organization = "Department of Computing, Imperial College", - address = "180 Queens Gate, London SW7 2BZ", - year = 1993, - month = jan -} - -@Manual{W86:PiCTeXM, - title = "The {\PiCTeX} Manual", - author = "Michael J. Wichura", - organization = "University of Washington", - year = 1987 -} - -@Misc{W87:pictex.tex, - author = "Michael J. Wichura", - title = "{\PiCTeX}, Version 1.1", - howpublished = "{\tt pictex.tex} of {\PiCTeX} distribution", - year = 1987, - month = sep -} - -% $Log: xydoc.bib,v $ -% Revision 3.6 1998/03/06 01:28:05 krisrose -% Releasing (with Y&Y fonts). -% -% Revision 3.4 1997/05/28 13:02:24 krisrose -% Fixed missing breaks bug. -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/06 02:56:02 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% Name changed from xypicman.bib to xydoc.bib. -% -% Revision 2.6.1.1 1992/07/01 07:08:24 kris -% Send to EuroTeX '92... -% -% Revision 2.6 1992/06/24 01:23:34 kris -% Unchanged from xy.bib v.2.5. -% -% Revision 2.1 1992/01/02 14:54:07 kris -% Release version. -% -% Revision 1.4 1991/11/27 06:44:34 kris -% Fits \beta-test on DIKU. -% -% Revision 1.3 1991/08/23 01:05:45 kris -% Tidied up; fits report.tex[1.28]. -% -% Revision 1.2 1991/08/05 04:02:12 kris -% As used in student report 91-7-10. -% -% Revision 1.1 91/07/23 14:49:06 kris -% Fits report.tex[1.5]. diff --git a/Master/texmf-dist/source/generic/xypic/xydoc.sty b/Master/texmf-dist/source/generic/xypic/xydoc.sty deleted file mode 100644 index 0d5bb0c7a69..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xydoc.sty +++ /dev/null @@ -1,1270 +0,0 @@ -%% $Id: xydoc.sty,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Style for Xy-pic documentation under LaTeX. -%% Copyright (c) 1993-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> -%% -%% 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. - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Since the documentation files may have Danish ISO Characters... - -\input{latin1.sty} - -% We use two and three columns (see with \INDEX command)... - -\RequirePackage{multicol} - -% ACTIVE CHARACTERS: "<|? are active (set before loading Xy-pic to make the -% parsing work)...and redefine LaTeX \dospecials at the same time but do NOT -% tell it to redefine ? because we want to use that in code! - -\catcode`\"=\active -\let"=\relax -\catcode`\<=\active -\let<=\relax -\catcode`\|=\active -\let|=\relax -\catcode`\?=\active -\let?=\relax - -\def\dospecials{% - \do\ \do\\\do\{\do\}\do\$\do\&\do\#\do\^\do\_\do\%\do\~\do\"\do\<\do\|} - -%\catcode9=10 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% LOAD Xy-pic... - -\makeatother - -\input xy -\xyoption{all} -\xyoption{knot} -\xyoption{2cell} -\xyoption{poly} -\xyoption{web} -\xyoption{arc} -\input xydoc.back -\CompileMatrices -\UseCrayolaColors - -\xycatcodes \catcode`\"=12 \catcode`\<=12 \catcode`\|=12 \catcode`\?=12 -\def\next{\RequirePackage[draft,dvips]{graphics}} % hack :-) - -\ifx\xydvipsloaded\undefined - \ifx\xytexturesloaded\undefined - \else\def\next{\RequirePackage[textures]{graphics}}\fi -\else\def\next{\RequirePackage[dvips]{graphics}}\fi -\next - -\xycatcodes \catcode`\"=\active \catcode`\<=\active \catcode`\|=\active - \catcode`\?=\active -\xyuncatcodes\makeatletter % be paranoid - -\def\PStest#1#2{\ifx\empty\whichPSspecials@#1\else#2\fi} -\def\PStype{\dvitype@\unskip} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% TIME OF DAY - -\count@=\time \divide\count@ by 60\relax -\count@@=\count@ \multiply\count@@ by -60 \advance\count@@ by \time -\edef\now{\number\count@:\ifnum 10>\count@@ 0\fi \number\count@@} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% LOGOS: METAFONT logo uses the logo10 font; AMS logo uses the math -% italic font; and others just use the default fonts. - -\font\logofont=logo10 -\def\MF{{\logofont META}\-{\logofont FONT}} -\def\AMS{{\the\textfont2 A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} -\def\PiCTeX{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\kern-.11em\TeX} -\def\LaTeXe{{\LaTeX\kern.15em$2_{\textstyle\varepsilon}$}} -\def\OzTeX{{O\kern-.03em z\kern-.15em\TeX}} -\def\Textures{{\sc Textures}} -\def\dvips{{\sc dvips}} -\def\TPIC{{\sc tpic}} -\def\xdvi{{\sc xdvi}} -\def\dvitops{{\sc dvitops}} - -%...and PS, unix, and BNF with footnote inserted at the first use... - -\newif\ifPSuntold \PSuntoldtrue -\def\PS{\protect\PS@} -\def\PS@{{\sc Post\-Script}\xyFN@\PS@i} -\def\PS@i{\let\next@=\PS@ii - \ifx.\next \else\ifx,\next \else\ifx:\next \else\ifx;\next \else\ifx!\next - \else\ifx?\next \else \let\next@=\PS@iii \fi\fi\fi\fi\fi\fi \next@} -\def\PS@ii#1{#1\PS@iii} -\def\PS@iii{% - \ifPSuntold \global\PSuntoldfalse - \footnote{{\sc Post\-Script} is a registered Trademark of Adobe, - Inc.~\cite{ps}.}% - \fi} - -\newif\ifunixuntold \unixuntoldtrue -\def\unix{\protect\unix@} -\def\unix@{{\sc unix}\xyFN@\unix@i} -\def\unix@i{\let\next@=\unix@ii - \ifx.\next \else\ifx,\next \else\ifx:\next \else\ifx;\next \else\ifx!\next - \else\ifx?\next \else \let\next@=\unix@iii \fi\fi\fi\fi\fi\fi \next@} -\def\unix@ii#1{#1\unix@iii} -\def\unix@iii{% - \ifunixuntold \global\unixuntoldfalse - \footnote{{\sc Unix} is a trademark of Bell Labs.}% - \fi} - -\newif\ifBNFuntold \BNFuntoldtrue -\def\BNF{{\footnotesize BNF}% - \ifBNFuntold \global\BNFuntoldfalse - \footnote{{\footnotesize BNF} is the notation for ``meta-linguistic - formulae'' first used by \cite{N60:ReportALA60} to describe the - syntax of the Algol programming language. We use it with the - conventions of the \TeX\-book~\cite{K84:TeXbook}: `\iss' is read ``is - defined to be'', `\orr' is read ``or'', and `<empty>' denotes - ``nothing''; furthermore, `<id>' denotes anything that expands into a - sequence of \TeX\ character tokens, `<dimen>' and `<factor>' denote - decimal numbers with, respective without, a dimension unit (like {\tt - pt} and {\tt mm}), <number> denotes possibly signed integers, and - <text> denotes \TeX\ text to be typeset in the - appropriate mode. We have chosen to annotate the syntax with brief - explanations of the `action' associated with each rule; here - `$\from$' should be read `is copied from'.}% - \fi} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% `OTHER' CHARACTERS: miscellaneous characters of category `other' ... it is -% essential that space is done last! - -\begingroup - \catcode`\"=12 \gdef\dq{"} - \catcode`\<=12 \gdef\otherless{<} - \catcode`\>=12 \gdef\othergreater{>} - \catcode`\|=12 \gdef\otherbar{|} - \catcode`\@=12 \gdef\otherat{@} - \catcode`\|=0 \catcode`\<=1 \catcode`\>=2 - |catcode`|\=12 |gdef|otherescape<\> - |catcode`|{=12 |gdef|otherbgroup<{> - |catcode`|}=12 |gdef|otheregroup<}> - |catcode`|$=12 |gdef|othermath<$> - |catcode`|&=12 |gdef|otherand<&> - |catcode`|#=12 |gdef|otherparameter<#> - |catcode`|^=12 |gdef|othersuper<^> - |catcode`|_=12 |gdef|othersub<_> - |catcode`|%=12 |gdef|othercomment<%> - |catcode`| =12|gdef|otherspace< >|endgroup - -\def\ordinarybars{\catcode`\|=12} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% ABBREVIATIONS: - -\def\ie{{\it i}.{\it e}.} \def\Eg{{\it E}.{\it g}.} -\def\eg{{\it e}.{\it g}.} \def\Ie{{\it I}.{\it e}.} -\def\cf{{\it cf}.} \def\Cf{{\it Cf}.} -\def\aka{{\it aka\/}} -\def\etc{{\it etc}.} - -% LOCAL DEFINITIONS... -% -% \RSN, \TODO, and \DRAFT used wherever something is NOT FINISHED. -% -\def\RSN{Real Soon Now} -\def\TODO#1{{\bf To Do#1}} -\def\BUG#1{{\bf Bug#1}} -\def\NOTE#1{{\bf Note#1}} -\def\HACK#1{{\bf Hack#1}} -\def\REMARK#1{{\bf Remark#1}} -\def\DRAFT#1{\framebox{\it Draft #1}\vrule width0pt height 2em depth 1em\relax} - -\def\smiley{\hbox{\rlap{$\bigcirc$}\kern1.3\p@$\scriptstyle\ddot\smile$}} -\def\frowny{\hbox{\rlap{$\bigcirc$}\kern1.3\p@$\scriptstyle\ddot\frown$}} -\def\half{{\slashedfrac12}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% HTML generation stuff. - -\RequirePackage{html} - -\let\DEF=\def -\let\IMG=\relax -\newenvironment{IMAGE}{}{} -\newenvironment{CENTER}{}{\noindent\unskip\ignorespaces} - -%% Pretty hyperlinks :-) - -{\makeatletter - \catcode`\~=\active \catcode`\/=\active \catcode`\_=\active - \gdef\setupurl@{% - \catcode`\~=\active \def~{\ensuremath{\sim}}% - \catcode`\&=12 % - \catcode`\_=\active \def_{\ensuremath{\sb-}}% - \catcode`\/=\active \def/{\futurelet\next\urlslash@}} - \gdef\url{\begingroup $\langle$\nobreak\textsc{url}: - \setupurl@\futurelet\next\url@} - \gdef\url@#1{\emph{#1}\nobreak$\rangle$\endgroup} - \gdef\urlslash@{\ifx /\next \def\next@/{\string/\kern-.2em\string/}% - \else \def\next@{\slash}\fi \next@} - \gdef\newurl#1#{\begingroup\setupurl@\newurl@{#1}} - \gdef\newurl@#1#2{\gdef#1{\url{#2}}\endgroup}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% EMPHASISING: - -\def"#1"{{\relax \ifmmode \mathchoice - {\hbox{\normalsize\it\relax#1\/}}% - {\hbox{\normalsize\it\relax#1\/}}% - {\hbox{\scriptsize\it\relax#1\/}}% - {\hbox{\scriptsize\it\relax#1\/}}% - \else\it#1\/\fi}} - -% Special `Notes' enumeration. - -\newcounter{note} -\def\thenote{\thesection\alph{note}} -\newif\ifnotes@ - -\def\notescontd{\ifnotes@ \@toodeep \fi \notes@true - \subsubsection*{Notes}\nobreak\list{\thenote.}% - {\leftmargin=1.5pc \labelwidth=1pc \labelsep=.5pc - \usecounter{note}% - \def\makelabel##1{\thenote.\hss}}% - \expandafter\c@note\notescount@@} -\def\endnotescontd{\xdef\notescount@@{\the\c@note}\endlist} - -\def\notes{\xdef\notescount@@{0}\notescontd} -\let\note=\item -\let\endnotes=\endnotescontd - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% DOCUMENT CLASSIFICATION... - -% Some options may prefer a ``\BIBLIOGRAPHY'' different from xydoc.bib in -% plain style! - -\def\BIBLIOGRAPHY{% - \bibliographystyle{plain} - \bibliography{xydoc} - \addtocontents{toc}{% - \protect\contentsline{section}{References}{\protect\pageref{BIBLIOGRAPHY}}}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% GENERIC MATH: - -\mathchardef\lt=\dq 313C -\mathchardef\gt=\dq 313E -\mathchardef\from=\dq 3220 -\mathcode`\*=\dq 2202 -\def\abs#1{\left\vert#1\right\vert} -\def\sgn{\hbox{sgn}} -\def\floor#1{\left\lfloor#1\right\rfloor} -\def\ceil#1{\left\lceil#1\right\rceil} -\def\Det#1{\left\otherbar - {\arraycolsep=.2em \begin{array}{cc}#1\end{array}}\right\otherbar} - -% Some LaTeXs don't have this: -\newbox\Boxbox@ -\setbox\Boxbox@=\hbox{\vrule height 5pt depth 0pt width .4pt % - \rlap{\vrule height 5pt depth -4.6pt width 4.2pt}% - \vrule height .4pt depth 0pt width 4.2pt % - \vrule height 5pt depth 0pt width .4pt} -\def\Box{\relax\ifmmode\expandafter\vcenter\fi{\copy\Boxbox@}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% BNF: - -{\setboxz@h{$^{\hbox{\small0}}$}% - \xdef\histrut{\hbox{\vrule height\the\ht0 depth\the\dp0 width\z@}}} - -\def<#1>{\relax\ifmmode\histrut\expandafter\textrm\fi - {\rm$\langle${\ignorespaces#1}$\rangle$}} -\def\iss{\relax - \ifmmode\histrut\expandafter\mathrel\fi{\hbox{$\longrightarrow$}}} -\def\orr{\relax\ifmmode\histrut\expandafter\mathrel\fi{\hbox{$~\vert~$}}} - -\def\star{\hbox{*}} -\def\plus{\ensuremath{^+}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% SHOULD USE \parbox... - -\leftmargin=0pt % LaTeX hack... - -\newenvironment{syntax}% -{$$\tabskip=.5em plus1fil \dimen@=\hsize \advance\dimen@-\leftmargin - \halign to\dimen@\bgroup - \strut##\unskip\hfil&\hfil##\hfil - &##\hfil&\hsize=.5\hsize\vtop{\noindent##}\hfil\cr - \noalign{\nobreak\hrule\nobreak\smallskip}% - \multispan{3}Syntax\hfil &Action \cr - \noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak}}% -{\crcr\noalign{\nobreak\smallskip\nobreak\hrule\nobreak}\egroup$$% - \ignorespaces} - -\def\topofdefs{\hrule\nobreak\smallskip} -\def\bottomofdefs{\nobreak\smallskip\nobreak\hrule\nobreak} - -\newenvironment{defs}% -{$$\tabskip=.5em plus1fil \dimen@=\hsize \advance\dimen@-\leftmargin - \halign to\dimen@\bgroup \strut##\unskip\hfil - \tabskip=.5em&\hsize=.5\hsize\vtop{\noindent##}\hfil - \tabskip=.5em plus1fil\cr - \noalign{\topofdefs}}% -{\crcr\noalign{\bottomofdefs}\egroup$$\ignorespaces} - -\newenvironment{defs1}% -{$$\tabskip=.5em plus1fil \dimen@=\hsize \advance\dimen@-\leftmargin - \halign to\dimen@\bgroup \strut##\unskip\hfil\cr - \noalign{\topofdefs}}% -{\crcr\noalign{\bottomofdefs}\egroup$$\ignorespaces} - -\newenvironment{unformatteddefs}% -{\vspace{\bigskipamount}\topofdefs}% -{\bottomofdefs\vspace{\bigskipamount}\ignorespaces} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% INLINE VERBATIM: use |...| with || in ... for a single |. Almost not -% ``fragile'' in the LaTeX sense: the ... must be a balanced token list when -% ``moving'' and control sequences get an extra space except at the end... - -\newcount\barnest@ - -\def|{\leavevmode\hbox\bgroup \global\barnest@=\z@ - \tt \let\do\@makeother\dospecials \frenchspacing - \xyFN@\bar@} - -\def\cs#1{\texttt{\otherescape#1}} - -% Hack: we need to cater for both ordinary spaces (\space@) and space `other' -% tokens (\otherspace)...all become simple spaces. - -\def\bar@{\ifx |\next \let\next@=\bar@x - \else\expandafter\ifx\otherbar\next \let\next@=\bar@x - \else\ifx \space@\next \expandafter\DN@\space{\space@\xyFN@\bar@}% - \else\expandafter\ifx \otherspace\next - \expandafter\DN@\otherspace{\space@\xyFN@\bar@}% - \else - \ifx \bgroup\next \global\advance\barnest@\@ne \fi - \ifx \egroup\next \global\advance\barnest@\m@ne \fi - \DN@{\expandafter\bar@@\string}% - \fi\fi\fi\fi \next@} -\def\bar@@#1{#1\xyFN@\bar@} - -\def\bar@x#1{\egroup - \ifnum\z@=\barnest@\else \W@{Warning: Unbalanced \string|TEXT\string| where - \string{\string}-count is \the\barnest@}\fi - \xyFN@\rebar@} - -\def\rebar@{\ifx |\next \hbox{\tt\char124}\fi} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% INLINE AND DISPLAYED TeX CODE: - -\newwrite\thecode@ - -% Making the chunk is the most work...it goes into a temporary file that -% lives while the chunk lives. - -\newenvironment{code}{% - \begingroup \aftergroup\endcode@ - \immediate\openout\thecode@=\jobname.tmp % - \let\do\@makeother\dospecials \endlinechar=10 \futurelet\next\code@}{} -\def\endcode@{\immediate\closeout\thecode@} - -% \code@* is the where the dirty work is done: it is called for each line in -% the code chunk under construction and will finish it if that line contains -% *exactly* "\end{code}". - -{\lccode`\0=`\\\lccode`\[=`\{\lccode`\]=`\}\lowercase{% - \expandafter\gdef\expandafter\code@\space{\code@i} - \gdef\code@i#1^^J{\code@ii#10end[code]\code@@} - \gdef\code@ii#10end[code]#2\code@@{\def\1{#1}\def\2{#2}% - \ifx\2\empty \immediate\write\thecode@{\codeof\1}\let\next@=\code@i - \else \def\next@{\oldcodes@\endgroup\end{code}}% - \fi \next@}}} - -\def\oldcodes@{\catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\#=6 % - \catcode`\%=14\relax} - -% Setting the code is just reading it... - -\def\gdocode{\expandafter\@@input\jobname.tmp \ifhmode\unskip\fi} - -\newcount\frozeninputlineno % hack to keep right file/lineno... - -\ifx\inputlineno\undefined - \def\docode{\unskip{\gdocode}} -\else -\def\docode{\unskip{\frozeninputlineno=\inputlineno - \let\@@inputlineno=\inputlineno - \def\inputlineno{\frozeninputlineno:\the\@@inputlineno}% - \gdocode}} -\fi - -% Showing the code is just putting TeX in verbatim mode before reading. - -\def\thecode{{\catcode``=13 \@noligs \let\do\@makeother \dospecials - \catcode`\ =10 \let\par\space\obeylines \frenchspacing \tt - \input\jobname.tmp \unskip}} - -\def\displaycode{{\inputdoc.{\jobname.tmp}}% - \ignorespaces} - -% Writing the code to a(nother) file is a simple combination of \code and -% \showcode. - -\def\writecode#1{{\let\do\@makeother\dospecials \endlinechar=10 % - \def\next@{\immediate\write#1}\expandafter\writecode@\@@input\jobname.tmp }} - -\def\writecode@{\futurelet\next\writecode@i} -\def\writecode@i{\ifx\next\egroup\else \expandafter\writecode@ii \fi} -\def\writecode@ii#1^^J{\def\1{#1}\next@{\codeof\1}\futurelet\next\writecode@} - -\def\writecodecode#1{% - \immediate\write#1{\string\begin\string{code\string}}% - \writecode#1% - \immediate\write#1{\string\end\string{code\string}}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% EXERCISES & ANSWERS: accumulated as subsubsections on .ans file... - -\newif\ifExercises \Exercisesfalse -\newwrite\answ@ - -\AtBeginDocument{% - \immediate\openout\answ@=\jobname.ans - \immediate\write\answ@{\othercomment\space\jobname.ans: \today, \now.} -} - -\def\exerciseprefix{} -\newcount\exercisenumber \exercisenumber=0 -\def\restartexercises#1{\edef\exerciseprefix{#1}\exercisenumber=0 } - -\newenvironment{exercise}{\global\Exercisestrue - \global\advance\exercisenumber by 1 % - \edef\@currentlabel{\the\exercisenumber}% - \edef\next@{\noexpand\label{Exercise-\exerciseprefix\the\exercisenumber}}% - \next@ - \paragraph*{Exercise~\exerciseprefix\the\exercisenumber:}\begingroup - \def\IW@##1{\immediate\write\answ@{##1}}\IW@{}% - \IW@{\otherescape xyuncatcodes}% - \IW@{\otherescape paragraph*{Answer to exercise - \exerciseprefix\the\exercisenumber\space - (p.\string\pageref{Exercise-\exerciseprefix\the\exercisenumber}):}% - \string\label{Answer-\exerciseprefix\the\exercisenumber}}% - \IW@{\othercomment}}% - {\IW@{}\endgroup} - -\def\answertext#1{{\DN@{#1}\DNii@##1:->##2<-:{{\IW@{##2}}}% - \expandafter\nextii@\meaning\next@<-:}} - -\def\answercode{\writecodecode\answ@} -\def\answerdisplaycode{\answertext\displaycode} - -\def\Answers{\ifExercises \Exercisesfalse \global\count1=\z@ - \def\next{\immediate\closeout\answ@ \input\jobname.ans}% - \expandafter\next\fi} - -\def\ANSWERS{\ifExercises - \section{Answers to all exercises} - \Answers - \immediate\openout\answ@=\jobname.ans - \immediate\write\answ@{\othercomment\space\jobname.ans: \today, \now.} -\fi} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% PRINTING MACRO FILES AS DOCUMENTATION - -% \inputdoc <type> {<file>} will read <file>.doc, extracting either - -% * a verbatim input file with line numbers if <type> is 0 (ignoring \DOCMODE -% commands in the file), -% * the reference manual body if <type> is the character 1, or -% * the TeXnical documentation body if <type> is the character 2. - -% For the second and third types to work, <file>.doc must have the structure - -% <header> -% \DOCMODE<mode> -% <stuff> -% \DOCMODE<mode> -% <stuff> -% : -% : -% \DOCMODE3 -% <stuff> - -% where each <mode> can be either of the characters - -% 0 to designate that the following <stuff> should be ignored, - -% 1 to designate that the following <stuff> is TeX source material to -% be included only in the reference manual, - -% 2 to designate that the following <stuff> is TeX source material to -% be included only in the TeXnical documentation, - -% 3 to designate that the following <stuff> is TeX source material to -% be included in the reference manual and the TeXnical document, - -% . for unnumbered program file listing -% : for numbered program file listing - -% ! for stuff in the same mode as the context - -% ( to designate that the following <stuff> is code that is included in -% <file>.tex that should also be typeset verbatim in the TeXnical document, -% or - -% ) to designate that the following <stuff> is of the same kind as the -% <stuff> preceeding the most recent \DOCMODE). - -% Furthermore, the command \DOCHEADER is available after the first \DOCMODE2 -% command to insert the <header> verbatim. The last command must be -% \DOCMODE3 in order to ensure that the end of the file is seen by both -% document types! - -% Finally the reference PREFIX is set to the file name so that `global' -% references across files are possible... - -% The <file>.tex to be distributed should include the <header> and all -% <stuff> between \DOCMODE( and \DOCMODE). - -\let\thedocmode@=0 - -% Default is for reference documentation... - -\let\originalxyprovide=\xyprovide -\let\originalcurrentxydriver=\currentxydriver - -\def\specialxyprovide#1#2#3#4#5#6{% - \let\xyprovide=\originalxyprovide - \edef\OPROPER{#2}\edef\OVERSION{#3}% - \def\OAUTHOR{#4}\def\OAUTHOREMAIL{#5}\def\OAUTHORADDRESS{#6}% - \def\next{#1}\edef\xyoption@@{\codeof\next}% - \expandafter\section\expandafter{\OPREFIX\OPROPER}??g=[#1]% - \subsubsection*{\noindent\rlap{\small\bf - Vers. \OVERSION\ by~\OAUTHOR\ <\OAUTHOREMAIL>}\LOADAS{#1}}% - \DN@##1##2##3##4##5##6##7.{\CompilePrefix{xy##1##2##3##4##5##6}}% - \next@#1-000.% - \xyprovide{#1}{#2}{#3}{#4}{#5}{#6}} - -\def\specialxysubprovide#1#2#3#4#5#6{% - \let\xyprovide=\originalxyprovide - \edef\OPROPER{#2}\edef\OVERSION{#3}% - \def\OAUTHOR{#4}\def\OAUTHOREMAIL{#5}\def\OAUTHORADDRESS{#6}% - \def\next{#1}\edef\xyoption@@{\codeof\next}% - \expandafter\subsection\expandafter{\OPREFIX\OPROPER}??g=[#1]% - \subsubsection*{\noindent\rlap{\small\bf - Vers. \OVERSION\ by~\OAUTHOR\ <\OAUTHOREMAIL>}\LOADAS{#1}}% - \DN@##1##2##3##4##5##6##7.{\CompilePrefix{xy##1##2##3##4##5##6}}% - \next@#1-000.% - \xyprovide{#1}{#2}{#3}{#4}{#5}{#6}} - -\def\OSECTION#1{\let\xyprovide=\specialxyprovide - \def\OPREFIX{}% - \def\LOADAS##1{\\*Load as: {\tt\string\xyoption\string{##1\string}}}% - \input{#1}\runxywith@ \inputdoc!{#1}} - -\def\DSECTION#1{\let\xyprovide=\specialxysubprovide - \def\OPREFIX{}% - \def\LOADAS##1{\\*Load as: {\tt\string\xyoption\string{##1\string}}}% - \let\orignewdriver=\newdriver \let\origxyaddsupport=\xyaddsupport - \def\newdriver##1{\orignewdriver{##1}\xyendinput}% - \def\xyaddsupport##1##2{\expandafter\xyadddriversupport@\expandafter{% - \xyoption@@}{##1}{\ignorespaces}}% - \input{#1}% - \let\newdriver=\orignewdriver \let\xyaddsupport=\origxyaddsupport - \inputdoc!{#1}} - -\def\SQUEEZE{} - -\def\defaultdocmode@{\docmode@} - -% \inputdoc MODE {FILE} loads FILE in docmode MODE. ! means `current'. - -\gdef\inputdoc#1#2{% - \mayshrinktt@true - \if#1!\relax \let\DocMode@=\defaultdocmode@ - \else\if#10\relax \numbercode@true \let\DocMode@=\docmode@@@ - \else\if#11\relax \let\DocMode@=\docmode@ - \else\if#12\relax \let\DocMode@=\docmode@@ - \else\if#1:\relax \mayshrinktt@false\numbercode@true \let\DocMode@=\docmode@@@ - \else\if#1.\relax \mayshrinktt@false\numbercode@false\let\DocMode@=\docmode@@@ - \else\xyerror@{panic...unknown DOCMODE \string?!\string?}{}% - \fi\fi\fi\fi\fi\fi - {\questprefix{#2}\expandafter\let\csname DOCMODE\endcsname=\DocMode@ - \endlinechar=`\^^J% - \def\next@{\csname DOCMODE\endcsname @}\expandafter\next@\@@input#2 }% - \ifmayshrinktt@\medbreak\fi} - -\let\^^J=\ % such that `\ ' works at end of line! - -% First variant is for the reference manual: ignore everything except lines -% with MODE 1 or 3. - -\let\lastdocmode@=0 - -\def\docmode@#1{% - \ifx#11\let\next@=\relax \let\lastdocmode@=1\relax - \else\ifx#12\let\next@=\docs@ \let\lastdocmode@=2\relax - \else\ifx#13\let\next@=\relax \let\lastdocmode@=3\relax - \else\ifx#1@\let\next@=\docs@ - \else\ifx#1(\let\next@=\docs@ - \else\ifx#1)\DN@{\docmode@\lastdocmode@}% - \else\let\next@=\docs@ \let\lastdocmode@=0\relax - \fi\fi\fi\fi\fi\fi \next@} - -% Second variant is for the technical docs: typeset everything normally -% except areas with MODE ( that are typeset verbatim, areas with MODE 0, -% and 1 which are ignored, and areas with MODE @ which are stuffed into a -% file (used for the \DOCHEADER feature): - -\def\docmode@@#1{% - \ifx#11\let\next@=\docs@ \let\lastdocmode@=1\relax - \else\ifx#12\let\next@=\relax \let\lastdocmode@=2\relax - \else\ifx#13\let\next@=\relax \let\lastdocmode@=3\relax - \else\ifx#1@\let\next@=\docc@ - \else\ifx#1(\let\next@=\docv@ - \else\ifx#1)\DN@{\docmode@@\lastdocmode@}% - \else\let\next@=\docs@ \let\lastdocmode@=0\relax - \fi\fi\fi\fi\fi\fi \next@} - -% Third is for verbatim... - -\def\docmode@@@#1{\docv@} - -% Here are the three interpretation macros: first one that skips... - -\def\docs@{% - \begingroup\skipspecials@ \let\docm@=\docm@i \let\docecho@=\relax - \def\docfinish@{\global\let\thedocmode@=\next - \endgroup \xyuncatcodes \csname DOCMODE\endcsname\thedocmode@}% - \docm@} - -% ..then the one that typesets verbatim: it needs a special hack to be able -% to recognize the end of files when using \inputdoc0... - -\newif\ifnumbercode@ % number lines! -\def\lineno@{\ifx\inputlineno\undefined\else\the\inputlineno\fi} - -\def\docv@{% - \par\vspace{1ex}\begingroup \skipspecials@ - \def\docm@{\xyFN@\docvm@}% - \def\docvm@{\ifx\next\egroup \DN@{\endgroup\par\vspace{1ex}}% - \else \let\next@\docm@i \fi \next@}% - \parfillskip\@flushglue \parskip\z@ \def\par{}\obeylines\tt - \catcode``=13 \@noligs \let\do\@makeother\dospecials -% - \catcode`\%=13 %make % act as ?... -% - \frenchspacing\@vobeyspaces \activateTABandFF@ - \def\docecho@{\ifx\next\empty\vspace{1ex}\else - \hbox{% - \ifnumbercode@\hbox to 1.5pc{\tinyrm\lineno@\hss}% - \else\hbox to\leftmargin{\hss}\fi - \setbox0=\hbox\bgroup\next\egroup\box0}\fi}% - \def\docfinish@{\global\let\thedocmode@=\next \endgroup - \xyuncatcodes \par\vspace{1ex}\csname DOCMODE\endcsname\thedocmode@}% - \docm@} - -\def\tinyrm{\tiny\rm} - -% ...with some trickery to get TABs interpreted right: - -\newdimen\tabw@ - -\def\activeTAB@{\egroup \dimen@=\wdz@ - \divide\dimen@\tabw@ \multiply\dimen@\tabw@ \advance\dimen@\tabw@ - \wdz@=\dimen@ \boxz@ \setboxz@h\bgroup}% - -\def\activeFF@{\egroup - \dimen@=\hsize \advance\dimen@-\wdz@ \advance\dimen@-2pc % - \boxz@ \raise.7ex\hbox to\dimen@{\hrulefill}\setboxz@h\bgroup} - -% They are activated by \activateTABandFF@ that also picks a \tt font size -% that will allow 77 characters = 9.7 tabstops per line propvided the -% conditional mayshrinktt@ is true... - -\newif\ifmayshrinktt@ - -{\catcode`\^^I=\active \catcode`\^^L=\active \let^^L=\par - \gdef\activateTABandFF@{\setboxz@h{00000000}\tabw@=\wdz@ \dimen@=\hsize - \ifnumbercode@ \advance\dimen@-1.5pc \fi - \ifmayshrinktt@ - \ifdim 9.7\tabw@>\dimen@\small\tt\setboxz@h{00000000}\tabw@=\wdz@\fi - \ifdim 9.7\tabw@>\dimen@\footnotesize\tt\setboxz@h{00000000}\tabw@=\wdz@\fi - \fi - \catcode`\^^I=\active \let^^I=\activeTAB@ - \catcode`\^^L=\active \let^^L=\activeFF@ }} - -% ...and finally one that makes code out of the block: - -\def\docc@{% - \par\begingroup \skipspecials@ \let\docm@=\docm@i - \def\par{}\obeylines \catcode``=13 \@noligs \let\do\@makeother \dospecials - \@vobeyspaces \immediate\openout\thecode@=\jobname.tmp % - \def\docecho@{{\immediate\write\thecode@{\codeof\next}}}% - \def\docfinish@{\immediate\closeout\thecode@ \global\let\thedocmode@=\next - \endgroup\xyuncatcodes \csname DOCMODE\endcsname\thedocmode@}% - \docm@} - -\def\DOCHEADER{% - \numbercode@true \inputdoc0{\jobname.tmp}} - -% Sic. - -\let\W=\W@ - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% CROSS REFERENCES AND INDEXING AND SUCH - -% Use ?? as a cross reference code -- even in verbatim (because ? is excluded -% from \dospecials in the header): - -% ?? <codes> [ <id> ] - -% will create a reference and/or label and/or index entry and possibly even -% typeset <id>---what is done depends on <codes> that should be a sequence of -% characters selected from the following: - -% ! typeset <id> -% - do nothing* - -% : set PREFIX to <id> and do \mylabel{PREFIX:}* -% = as \mylabel{PREFIX:<id>}* - -% ? as \myref{PREFIX:<id>}* -% ^ \myref{PREFIX:<id>} lifted as superscript* -% _ \myref{PREFIX:<id>} in \tinyrm font* -% g global: set PREFIX to null temporarily - -% p as \mypageref{PREFIX:<id>}* - -% w as \index{<id>} for words -% c as \index{\string<id>} for control sequences -% C as \index{[\string<id>]} for modifiers etc - -% * as \mylinelabel{<id>} - -% If none of the <codes> letters was a *ed one then a \myref{PREFIX:<id>} is -% added automatically (so ??[<id>] gives a simple reference). - -% NOTE: Use VERY PRIVATE names for *everything* because ??s may occur -% *everywhere* !! Also before loading \Xy-pic because we need to bind ?. - -\def?{\relax\let\questchar@=\otherquest@ \futurelet\questnext@\quest@} -\newif\ifquestdone@ - -{\catcode`\%=\active - \gdef%{\let\questchar@=\otherpercent@ \futurelet\questnext@\quest@}} - -{\catcode`\?=12 \catcode`\%=12 \gdef\otherquest@{?}\gdef\otherpercent@{%}} - -\def\quest@{\ifx ?\questnext@ \def\questnext@?{\quest@@}% - \else \let\questnext@=\questchar@ \fi \questnext@} - -\def\quest@@#1[#2]{\relax\questdone@false - \let\questref@=\myref \let\questpageref@=\mypageref - \let\questecho@@=\relax \def\doquest@##1{{##1{#2}}}\quest@@@#1@} - -\def\quest@@@#1{\relax - \ifx @#1\def\questnext@{\ifquestdone@\else \doquest@\questref@ \fi}% - \else\ifx !#1\def\questnext@{\doquest@\questecho@@ \quest@@@}% - \else\ifx -#1\def\questnext@{\questdone@true \quest@@@}% - \else\ifx :#1\def\questnext@{\doquest@\questprefix \questdone@true \quest@@@}% - \else\ifx =#1\def\questnext@{\doquest@\mylabel \questdone@true \quest@@@}% - \else\ifx ?#1\def\questnext@{\doquest@\questref@ \questdone@true \quest@@@}% - \else\ifx g#1\def\questnext@{% - \let\questref@=\globalref \let\questpageref@=\globalpageref \quest@@@}% - \else\ifx ^#1\def\questnext@{\doquest@\liftedref@ \questdone@true \quest@@@}% - \else\ifx _#1\def\questnext@{\doquest@\mylineref \questdone@true \quest@@@}% - \else\ifx p#1\def\questnext@{\doquest@\questpageref@ \questdone@true - \quest@@@}% - \else\ifx w#1\def\questnext@{\doquest@\index \questdone@true \quest@@@}% - \else\ifx c#1\def\questnext@{\doquest@{\index code}\questdone@true - \let\questecho@@=\codeecho@ \quest@@@}% - \else\ifx C#1\def\questnext@{\doquest@{\index Code}\questdone@true - \let\questecho@@=\Codeecho@ \quest@@@}% - \else\ifx *#1\def\questnext@{\doquest@\mylinelabel \questdone@true \quest@@@}% - \else \def\questnext@##1{\xyerror@{\string?\string?\string##1 undefined}}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \questnext@} - -\def\liftedref@#1{$^{\hbox{\small\questref@{#1}}}$} - -\def\questprefix#1{\def\questprefix@@{#1}} -\def\questprefix@@{} - -\def\codeecho@#1{\relax - \ifmmode\expandafter\hbox\fi{\DN@{#1}\tt\codeof\next@\unskip}} - -\def\Codeecho@#1{\relax - \ifmmode\expandafter\hbox\fi{\DN@{#1}\tt[\codeof\next@\unskip]}} - -% REPLACEMENT for LaTeX cross reference macros...using \codeof... - -\def\mylabel#1{\@bsphack \if@filesw {% - \expandafter\DN@\expandafter{\questprefix@@:#1}\let\thepage\relax - \def\protect{\noexpand\noexpand\noexpand}% -\xdef\@gtempa{\write\@auxout{\string - \newlabel{\codeof\next@}{{\@currentlabel}{\thepage}}}}}\@gtempa - \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack} - -\def\mylinelabel#1{\@bsphack \if@filesw {% - \expandafter\DN@\expandafter{\questprefix@@:#1}\let\thepage\relax - \def\protect{\noexpand\noexpand\noexpand}% -\xdef\@gtempa{\write\@auxout{\string - \newlabel{\codeof\next@}{{l.\thelineno@}{\thepage}}}}}\@gtempa - \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack} - -%Was: -%\def\label#1{\@bsphack\if@filesw {\let\thepage\relax -% \def\protect{\noexpand\noexpand\noexpand}% -%\xdef\@gtempa{\write\@auxout{\string -% \newlabel{#1}{{\@currentlabel}{\thepage}}}}}\@gtempa -% \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack} - -\def\myref#1{\expandafter\globalref\expandafter{\questprefix@@:#1}} - -\def\mylineref#1{\hbox{\tinyrm\questref@{#1}}} - -\def\globalref#1{\DN@{#1}% - \edef\next@{\codeof\next@}% - \@ifundefined{r@\next@}{{\bf \string?\string?}% - \@warning{Reference `\next@' on page \thepage\space undefined}}% - {\edef\@tempa{\@nameuse{r@\next@}}\expandafter - \@car\@tempa \@nil\null}} - -%Was: -%\def\ref#1{\@ifundefined{r@#1}{{\bf ??}\@warning -% {Reference `#1' on page \thepage \space -% undefined}}{\edef\@tempa{\@nameuse{r@#1}}\expandafter -% \@car\@tempa \@nil\null}} - -\def\mypageref#1{\expandafter\globalpageref\expandafter{\questprefix@@:#1}} - -\def\globalpageref#1{\DN@{#1}% - \edef\next@{\codeof\next@}% - \@ifundefined{r@\next@}{{\bf \string?\string?}% - \@warning{Reference `\next@' on page \thepage\space undefined}}% - {\edef\@tempa{\@nameuse{r@\next@}}\expandafter - \@cdr\@tempa \@nil\null}} - -%Was: -%\def\pageref#1{\@ifundefined{r@#1}{{\bf ??}\@warning -% {Reference `#1' on page \thepage \space -% undefined}}{\edef\@tempa{\@nameuse{r@#1}}\expandafter -% \@cdr\@tempa\@nil\null}} - -% \newlabel *is* redefined because LaTeX plays tricks with it at -% \end{document}. - -\def\newlabel#1#2{\DN@{#1}\edef\next@{\codeof\next@}% -% \@ifundefined{r@\next@}{}{\@warning{Label `#1' multiply defined}}% - \global\@namedef{r@\next@}{#2}} - -% Was: -%\def\newlabel#1#2{\@ifundefined{r@#1}{}{\@warning{Label `#1' multiply -% defined}}\global\@namedef{r@#1}{#2}} - -\def\@testdef #1#2#3{\DN@{#2}\edef\next@{\codeof\next@}% - \def\@tempa{#3}\expandafter \ifx \csname #1@\next@\endcsname - \@tempa \else \@tempswatrue \fi} - -% Was: -%\def\@testdef #1#2#3{\def\@tempa{#3}\expandafter \ifx \csname #1@#2\endcsname -% \@tempa \else \@tempswatrue \fi} - -% Here is our variant \index command: It is a hack... - -%Dummy eats pre-{} argument -\def\index#1#{\@bsphack\begingroup \@sanitize\@index} - -%Real stuff uses pre-{} argument -\def\@wrindex#1#{\csname @wrindex@#1\endcsname} - -\def\@wrindex@#1{\let\thepage\relax - \DNii@{#1}\edef\nextii@{\codeof\nextii@}\DN@{}% - \expandafter\futurelet\expandafter\next\expandafter\quoteidxentry@\nextii@ @% - \expandafter\futurelet\expandafter\next\expandafter\@wrindex@beautify\next@\@wrindex@beautify - \edef\next@{\codeof\next@}% - \edef\@tempa{\write\@indexfile{% -% \string\indexentry{\expandafter\shavebackslash@\next@ -% \string @\next@}{\thepage}}}% - \string\indexentry{\expandafter\shavebackslash@\next@}{\thepage}}}% - \expandafter\endgroup\@tempa - \if@nobreak \ifvmode\nobreak\fi\fi \@esphack} - -\def\@wrindex@code#1{\let\thepage\relax - \DNii@{#1}\edef\nextii@{\codeof\nextii@}\DN@{}% - \expandafter\futurelet\expandafter\next\expandafter\quoteidxentry@\nextii@ @% - \edef\@tempa{\write\@indexfile{% - \string\indexentry{\expandafter\shavebackslash@\next@ - \string @\string{\string}\string\verb\string"\string"\next@\string"\string"}{\thepage}}}% - \expandafter\endgroup\@tempa - \if@nobreak \ifvmode\nobreak\fi\fi \@esphack} - -\def\@wrindex@Code#1{\let\thepage\relax - \DNii@{[#1]}\edef\nextii@{\codeof\nextii@}\DN@{}% - \expandafter\futurelet\expandafter\next\expandafter\quoteidxentry@\nextii@ @% - \edef\@tempa{\write\@indexfile{% - \string\indexentry{\expandafter\shavebackslash@\next@ - \string @\string{\string}\string\verb\string"\string"\next@\string"\string"}{\thepage}}}% - \expandafter\endgroup\@tempa - \if@nobreak \ifvmode\nobreak\fi\fi \@esphack} - -\def\filelinedef#1#2{\def\theindexfile{#1}\def\theindexline{#2}} - -\def\@wrindex@def#1{% - \DNii@{#1}\edef\nextii@{\codeof\nextii@}\DN@{}% - \expandafter\futurelet\expandafter\next\expandafter\quoteidxentry@\nextii@ @% - \edef\@tempa{\write\@indexfile{% - \string\indexentry{\expandafter\shavebackslash@\next@ - \string @\string{\string}\string\verb\string"\string"\next@\string"\string"% - \string |seexyfile{\codeof\theindexfile}{\codeof\theindexline}}{\thepage}}}% - \expandafter\endgroup\@tempa - \if@nobreak \ifvmode\nobreak\fi\fi\@esphack} - -\expandafter\let\csname @wrindex@ def\endcsname=\@wrindex@def - -\def\shavebackslash@#1{\expandafter\ifx\otherescape#1\else#1\fi} - -\def\quoteidxentry@#1{\DNii@{\futurelet\next\quoteidxentry@}% - \ifx !#1\edef\next@{\next@\dq#1}% - \else\expandafter\ifx\otherat#1\edef\next@{\next@\dq#1}% - \else\expandafter\ifx\dq#1\edef\next@{\next@\dq#1}% - \else\expandafter\ifx\otherbar#1\edef\next@{\next@\dq#1}% - \else\expandafter\ifx\otherescape#1\edef\next@{\next@#1}% - \DNii@{\futurelet\next\quoteidxentry@escape}% - \else\ifx\space@\next\edef\next@{\next@\space}% - \DNii@{\futurelet\next\quoteidxentry@#1}% - \else\ifx#1@\let\nextii@=\relax - \else \edef\next@{\next@#1}\fi\fi\fi\fi\fi\fi\fi \nextii@} - -\def\quoteidxentry@escape#1{\DNii@{\futurelet\next\quoteidxentry@}% - \expandafter\ifx\otherbgroup#1\edef\next@{\next@\otherbgroup}% - \else\expandafter\ifx\otheregroup#1\edef\next@{\next@\otheregroup}% - \else\ifx\space@\next\edef\next@{\next@\space}% - \DNii@{\futurelet\next\quoteidxentry@#1}% - \else \DNii@{\quoteidxentry@#1}\fi\fi\fi \nextii@} - -{\catcode`\$=12 \catcode`\<=12 \catcode`\"=12 - \gdef\@wrindex@beautify{% - \ifx $\next \let\next\@wrindex@extractdollar %$ - \else\ifx <\next \let\next\@wrindex@extractsyntax - \else\ifx "\next \let\next\@wrindex@extractemph - \else \let\next\@wrindex@literal \fi\fi\fi \next} - - \gdef\@wrindex@extractdollar$#1$#2\@wrindex@beautify{% - \def\next{#2}\ifx\next\empty \DN@{#1@$#1$}\fi} - - \gdef\@wrindex@extractsyntax<#1>#2\@wrindex@beautify{% - \def\next{#2}\ifx\next\empty \DN@{#1@<#1>}\fi} - - \gdef\@wrindex@extractemph""#1""#2\@wrindex@beautify{% - \def\next{#2}\ifx\next\empty \DN@{#1@\emph{#1}}\fi}} - -\def\@wrindex@literal#1\@wrindex@beautify{\DN@{#1@#1}} - -% Document format is two columns... - -\let\SAVEDmaketitle=\maketitle -\def\maketitle{\begin{multicols}{2}[\SAVEDmaketitle]% - \renewenvironment{quotation}{\endgraf\noindent\ignorespaces}{\endgraf}% - \renewenvironment{figure}[1][]{\center\leavevmode}{\endcenter}% -} - -% ...until the index where it changes to three columns! - -\def\INDEX{% - \end{multicols} - \let\PREINDEXtheindex=\theindex \let\PREINDEXendtheindex=\endtheindex - \renewenvironment{theindex}% - {\let\twocolumn=\beginmulticolsindex \let\onecolumn=\relax - \PREINDEXtheindex \addcontentsline{toc}{section}{Index}}% - {\PREINDEXendtheindex} - \xyinputorelse@@{\jobname.ind}{(no index yet)}% - \let\theindex=\PREINDEXtheindex \let\endtheindex=\PREINDEXendtheindex} - -\def\beginmulticolsindex[#1]{% - \global\let\PRETWOtheindex=\theindex - \global\let\PRETWOendtheindex=\endtheindex - \renewenvironment{theindex}{}{\aftergroup\finishmulticols}% - \begin{multicols}{3}[#1]\begin{theindex}}% - -\def\finishmulticols{\end{multicols}% - \global\let\theindex=\PRETWOtheindex - \global\let\endtheindex=\PRETWOendtheindex - \end{theindex}} - -\def\indexspace{\vspace{1ex}} -\def\seexyfile#1#2#3{{\tt#1}:{\tinyrm#2}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Set page size to A4...with sligthly wider text when two columns - -\setlength{\oddsidemargin}{-1cm} -\setlength{\evensidemargin}{-1cm} -\setlength{\textwidth}{17cm} - -\setlength{\columnsep}{2pc} - -\setlength{\topmargin}{-1.4cm} -\setlength{\headheight}{0.7cm} -\setlength{\headsep}{0.7cm} -\setlength{\textheight}{23.7cm} -%\setlength{\footheight}{0.7cm} -\setlength{\footskip}{1.1cm} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tracing auxiliary - -\def\notracingall{\tracingonline\z@\tracingcommands\z@\tracingstats\z@ - \tracingpages\z@\tracingoutput\z@\tracinglostchars\z@ - \tracingmacros\z@\tracingparagraphs\z@\tracingrestores\z@ - \showboxbreadth5 \showboxdepth5} - -% Show bad boxes as plain TeX! - -\hbadness=1000 - -% Show memory use! - -\tracingstats=1 - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% RCS date... - -\def\printdate#1{\edef\next@{#1}\expandafter\printdate@\next@ @} -\def\printdate@#1/#2/#3@{% - \ifcase#2\or January\or February\or March\or April\or - May\or June\or July\or August\or September\or October\or November\or - December\fi\space - \eatzero@#3, \ifnum100>#1\relax19\fi#1} -\def\eatzero@#1{\ifx0#1\else#1\fi} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Font tables...from the standard testfont.tex: - -\newcount\m -\newcount\n -\newcount\p -\newdimen\dim@ -\newif\ifskipping - -{\xycatcodes - -\gdef\fontfigure#1{% - \begin{figure}[tp] - {\font\testfont=#1 \testfont \fonttable} - \caption{Font table for \protect\texttt{#1}.} - \label{f.#1} - \end{figure}} - -\global\chardef\other=12 -\catcode`\"=\other - -\global\font\eighttt = cmtt8 - -\gdef\twodigits#1{\ifnum #1<10 0\fi \number#1} - -\gdef\setbaselineskip{\setbox0=\hbox{\n=0 -\loop\char\n \ifnum \n<255 \advance\n 1 \repeat} -\baselineskip=6pt \advance\baselineskip\ht0 \advance\baselineskip\dp0 } - -\gdef\setchar#1{{\escapechar-1\message{\string#1 character = }% - \def\do##1{\catcode`##1=\other}\dospecials - \read-1 to\next - \expandafter\finsetchar\next\next#1}} -\gdef\finsetchar#1#2\next#3{\global\chardef#3=`#1 - \ifnum #3=`\# \global\chardef#3=#2 \fi} -\gdef\promptthree{\setchar\background - \setchar\starting \setchar\ending} - -\gdef\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant -\gdef\hex#1{\hbox{\rm\H{}\tt#1}} % hexadecimal constant -\gdef\setdigs#1"#2{\gdef\h{#2}% \h=hex prefix; \0\1=corresponding octal - \m=\n \divide\m by 64 \xdef\0{\the\m}% - \multiply\m by-64 \advance\m by\n \divide\m by 8 \xdef\1{\the\m}} -\gdef\testrow{\setbox0=\hbox{\penalty 1\def\\{\char"\h}% - \\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\A\\B\\C\\D\\E\\F% - \global\p=\lastpenalty}} % \p=1 if none of the characters exist -\gdef\oddline{\cr - \noalign{\nointerlineskip} - \multispan{19}\hrulefill& - \setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr - \noalign{\nointerlineskip}} -\gdef\evenline{\loop\skippingfalse - \ifnum\n<256 \m=\n \divide\m 16 \chardef\next=\m - \expandafter\setdigs\meaning\next \testrow - \ifnum\p=1 \skippingtrue \fi\fi - \ifskipping \global\advance\n 16 \repeat - \ifnum\n=256 \let\next=\endchart\else\let\next=\morechart\fi - \next} -\gdef\morechart{\cr\noalign{\hrule\penalty5000} - \chartline \oddline \m=\1 \advance\m 1 \xdef\1{\the\m} - \chartline \evenline} -\gdef\chartline{&\oct{\0\1x}&&\Ch@&&\Ch@&&\Ch@&&\Ch@&&\Ch@&&\Ch@&&\Ch@&&\Ch@&&} -\gdef\chartstrut{\lower4.5pt\vbox to14pt{}} -\gdef\fonttable{$$\global\n=0 - \halign to\hsize\bgroup - \chartstrut##\tabskip0pt plus10pt& - &\hfil##\hfil&\vrule##\cr - \lower6.5pt\null - &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline} -\gdef\endchart{\cr\noalign{\hrule} - \raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B& - &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$\par} -\gdef\Ch@{\setbox0=\hbox{\char\n}% - \ifdim\ht0>7.5pt\reposition - \else\ifdim\dp0>2.5pt\reposition\fi\fi - \box0\global\advance\n 1 } -\gdef\reposition{\setbox0=\vbox{\kern2pt\box0}\dim@=\dp0 - \advance\dim@ 2pt \dp0=\dim@} -\gdef\centerlargechars{ - \def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% END OF DEFINITIONS - -\endinput - -$Log: xydoc.sty,v $ -Revision 3.7 1999/02/16 15:12:50 krisrose -Interim release (Y&Y fonts now free). - -Revision 3.6 1998/03/06 01:28:05 krisrose -Releasing (with Y&Y fonts). - -Revision 3.5 1997/05/29 22:46:43 krisrose -Fixed "missing breaks" and tidied up documentation! - -Revision 3.4 1997/05/18 01:14:25 krisrose -Essential bugfixes. - -Revision 3.3 1996/12/19 03:31:56 krisrose -Maintenance release - -Revision 3.2 1995/09/19 18:22:27 kris -Bug fix release. - -Revision 3.1 1995/09/05 20:31:32 kris -Releasing! - -Revision 3.0 1995/07/07 20:14:21 kris -Major release w/new User's Guide! - -Revision 2.14 1995/07/06 02:56:02 kris -Buglets... - -Revision 2.13 1995/07/04 15:11:17 kris -Ready to release v3? - -Revision 2.12 1994/10/25 11:34:25 kris -Interim release just before v3 [works with AMS-LaTeX 1.2]... - -Revision 2.11 1994/07/05 10:37:32 kris -Third 3beta release [bug fixes]. -Experimental graph feature included (for ECCT-94 presentation). - -Revision 2.10 1994/06/15 12:55:07 kris -Second 3beta release: bug fixes. - -Revision 2.9 1994/06/09 14:59:19 kris -Release 3beta. - -Revision 2.8.3.8 1994/05/05 06:13:13 kris -Compilation works and is documented. -Matrix object outline bug fixed. - -Revision 2.8.3.7 1994/05/04 08:16:25 kris -Also has option depedency list now. - -Revision 2.8.3.6 1994/05/04 07:14:13 kris -Compiling matrices work :-) :-) !! - -Revision 2.8.3.5 1994/05/04 03:51:05 kris -Efficient queueing *and* compilation of matrices *almost* there :-) !! - -Revision 2.8.3.4 1994/05/03 12:42:52 kris -Compiling of matrices soon to follow :-) ... - -Revision 2.8.3.3 1994/05/03 11:01:35 kris -Compiling to file finished in kernel... - -Revision 2.8.3.2 1994/05/03 07:37:06 kris -Fiddling for 2.9... - -Revision 2.8.3.1 1994/04/19 08:15:02 kris -Going on holiday... - -Revision 2.8.1.2 1994/04/13 11:44:13 kris -PostScript update patch and various fixes... - -Revision 2.8 1994/04/08 04:30:00 kris -Second (bug fix) 3alpha release. - -Revision 2.7.2.4 1994/03/28 10:58:05 kris -Curve bugs fixed [Ross]. -Edge logic overhauled...still shaky? -PostScript added and maybe working! - -Revision 2.7.2.3 1994/03/28 04:07:38 kris -Holiday is over :-) - -Revision 2.7.2.2 1994/03/13 07:54:52 kris -Bug fixes and @@ `map over stack'. - -Revision 2.7.2.1 1994/03/11 11:47:11 kris -Documentation prettyfied. -Stacks added. - -Revision 2.7.1.1 1994/03/10 05:26:53 kris -Date format fixed. - -Revision 2.7 1994/03/08 02:06:01 kris -Release 3alpha. - -Revision 2.6.9.1 1994/03/07 04:22:46 kris -Last internal 3alpha and pre-2.7 release. - -NEW for Xy-pic version 2.7. diff --git a/Master/texmf-dist/source/generic/xypic/xydocps.doc b/Master/texmf-dist/source/generic/xypic/xydocps.doc deleted file mode 100644 index 10d8ef21835..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xydocps.doc +++ /dev/null @@ -1,34 +0,0 @@ -%% $Id: xydocps.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -%% -%% Xy-pic ``PostScript Dictionary creation'' template file. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. - -\input xy -\xyoption{ps} -\xyoption{dvips} -\xyoption{color} -\xyoption{line} -\xyoption{rotate} - -\xyReloadDrivers -\dumpPSdict{xyREPLACEWITHSHORTVERSIONdict.pro} - -\bye diff --git a/Master/texmf-dist/source/generic/xypic/xydummy.doc b/Master/texmf-dist/source/generic/xypic/xydummy.doc deleted file mode 100644 index d6f644f8d87..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xydummy.doc +++ /dev/null @@ -1,97 +0,0 @@ -%% $Id: xydummy.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -%% -%% Xy-pic ``Dummy'' option. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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{dummy}{Dummy option}{\stripRCS$Revision: 3.3 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This option is provided as a template for new options, it provides - neither features nor extensions but it does count how many times it - is requested. -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - Even though the option does nothing it still has a standard \Xy-pic - header: - -\DOCHEADER - - Next follows two declarations that are used to count the number of - invocations: - -\DOCMODE( -\xynew@{count}\xydummyrequires@@ -\DOCMODE) - - This is used by the option to output a message every time it is - loaded with |\xyoption| or |\xyrequire|: - -\DOCMODE( -\xyeveryrequest{dummy}{\global\advance\xydummyrequires@@\@ne - \W@{The `dummy' option was used \the\xydummyrequires@@\space times!}} -\DOCMODE) - - (|\W@| is an \Xy-pic primitive that outputs its argument.) - - Then the option ends: - -\DOCMODE( -\xyendinput -\DOCMODE) - - Finally |xydummy.doc| is maintained using RCS and thus contains the - following revision log: - -\DOCMODE( -% $Log: xydummy.doc,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% NEW file to go in version 2.7! -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xydvidrv.doc b/Master/texmf-dist/source/generic/xypic/xydvidrv.doc deleted file mode 100644 index de533801865..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xydvidrv.doc +++ /dev/null @@ -1,98 +0,0 @@ -%% $Id: xydvidrv.doc,v 3.3 1996/12/18 09:12:40 ross Exp $ -%% -%% Xy-pic ``dvidrv-driver'' 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{dvidrv}{dvidrv driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This driver provides support for the ``emtex'' |\special| commands, when -using one of the standard dvi-drivers: |dvidot|, |dvihplj|, |dvimsp|, -|dviscr| or |dvivik|, that come with Eberhard Mattes' em-\TeX\ distribution. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\paragraph*{Driver installation} -\DOCMODE( -\xydef@\dvidrv@@#1{\dvimessage@{dvidrv}{#1}} - -\newdriver{% - \xyaddsupport{emtex}\dvidrvEmTeX@@ - \xyaddsupport{line}\dvidrvLine@@ -} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Supported |\special| effects are... -% -\begin{itemize} - -\item em-\TeX\ line-drawing |\special|s. -\DOCMODE( -\xydef@\dvidrvEmTeX@@{\dvidrvEmTeX@}% -\xydef@\dvidrvEmTeX@{\setupxyEMTeX@}% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item variable line-widths % and poly-lines. -\DOCMODE( -\xydef@\dvidrvLine@@{\dvidrvLine@}% -\xydef@\dvidrvLine@{\xywithoption{emtex}{\installEMline@}}% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{itemize} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xydvidrv.doc,v $ -% Revision 3.3 1996/12/18 09:12:40 ross -% no changes -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% -% NEW for version 3.1 -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xydvips.doc b/Master/texmf-dist/source/generic/xypic/xydvips.doc deleted file mode 100644 index fa08fa7b7f2..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xydvips.doc +++ /dev/null @@ -1,329 +0,0 @@ -%% $Id: xydvips.doc,v 3.3 1996/12/18 09:13:14 ross Exp $ -%% -%% Xy-pic ``dvips-driver'' 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{dvips}{DVIPS driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This driver provides support for "all extensions" when using the \dvips\ -driver by Tomas Rokicki~\cite{dvips}. It has been tested with dvips -version~5.55a and dvipsk version~5.58f. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\paragraph*{Driver installation} -\DOCMODE( -\xydef@\dvips@@#1{\dvimessage@{dvips}{#1}} - -\newdriver{% - \xyaddsupport{color}\dvipsColor@@ - \xyaddsupport{crayon}\dvipsCrayola@@ - \xyaddsupport{ps}\dvipsPS@@ - \xyaddsupport{rotate}\dvipsRotate@@ - \xyaddsupport{line}\dvipsLine@@ - \xyaddsupport{frame}\dvipsFrames@@ - \xyaddsupport{tile}\dvipsTiles@@ - \xyaddsupport{tpic}\dvipsTPIC@ - \xyaddsupport{emtex}\dvipsEM@ - \xyaddsupport{cmtip}\relax -} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Supported |\special| effects are... -% -\begin{itemize} - -\item colour, using direct color specials and \PS. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -DVIPS uses the colour-stack method, due to Tomas Rokicki. - -\DOCMODE( -\xydef@\dvips@Color@{\dvipsPStypes@ - \let\xylocalColor@=\xystackcolor@ - \let\xycolor@push\xycolor@push@@ - \def\xycolor@{\xycolor@@}\let\xycolorwarning@=\relax - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}\installPScolor@ }% - \else\DN@{}\fi \next@ - \ifx\xycolor@@\xyNoColor@ \let\xycolor@@=\xycolor@raw@@\fi - \ifx\xycrayolaloaded\empty \DN@{\xystandardcolors@\dvipsCrayola@{}}% - \else \DN@{\xystandardcolors@}\fi \next@ - \let\dvipsColor@@=\relax - \let\UnloadColor@@=\NoDVIPScolor@ - }% - -\xydef@\dvipsColor@@{\dvips@Color@} - -\xydef@\NoDVIPScolor@{% - \def\xycolor@{\xycolor@@}% - \let\xycolor@@=\xyNoColor@ - \let\xylocalColor@=\xyNoColor@@ - \let\xycolorwarning@=\xycolorwarning@@ - \let\dvipsColor@@=\dvips@Color@ - \let\UnloadColor@@=\UnloadColor@ - } -\DOCMODE) - -If neither support file |colordvi.tex| nor |colordvi.sty| can be found, -then the normal colour support will not be available. However the colour -support for the \PS\ back-end can still be used. - -\DOCMODE( -\xydef@\NoDVIPScolordvi@{\xywarning@{% - Neither colordvi.tex nor colordvi.sty could be found.}% - \xyBEcolorcheck@}% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item crayon colours. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The 68 colours that |dvips| recognizes by name are not loaded unless the -|crayon| option has been requested. - -\DOCMODE( -\xydef@\dvipsCrayola@@{\dvipsColor@@\dvipsCrayola@} - -\xydef@\dvipsCrayola@{% - \let\prevxycolor@=\newxycolor@ - \def\newxyDVIPScolor@##1##2##3{\prevxycolor@{##1}{}{##1}}% - \let\newxycolor@=\newxyDVIPScolor@ \dvipsInclude@{color.pro}% -% \xyinputorelse@{colordvi.tex}% -% {\NoDVIPScolordvi@\let\newxycolor@=\prevxycolor@}% - \installCrayolaColors@ - \let\newxycolor@=\prevxycolor@ }% -\DOCMODE) - -Although any order of loading options: |ps|, |dvips|, |color| and |crayon| -produces the desired result visually, the \PS\ code can be different -with different loading order. The most easily readable is obtained when -|crayon| is requested last. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \PS\ back-end. -\DOCMODE( -\xydef@\dvipsPS@@{\dvipsPS@} - -\xydef@\dvipsPS@unload{\UnloadPS@ - \let\UnloadPS@@=\UnloadPS@ - \let\dvipsPS@@=\dvipsPS@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -|dvips| has three kinds of \PS\ |\special| which can be used. -These may be used with various features other than just the \PS\ backend. - -\DOCMODE( -\xydef@\dvipsPStypes@{% - \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \ifx\PSspecial@@\dvipsSpecial@\else - \let\PSspecial@@=\dvipsSpecial@ - \let\PSmacro@@=\dvipsMacro@ - \let\PSdict@@=\dvipsDict@ - \let\PSspecialdict@@=\dvipsDict@ - \let\PSraw@@=\dvipsRaw@ - \let\PSinclude@@=\dvipsInclude@ - \let\xyPSobeylines@@=\obeyDVIPSlines@ - \let\xyPScurrpt@@=\dvipsCurrpt@@ - \dvips@@{PostScript}% - \fi -% \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \XYpredict@ } - -\xywarnifdefined\dvipsSpecial@ -\xywarnifdefined\dvipsMacro@ -\xywarnifdefined\dvipsDict@ -\xywarnifdefined\dvipsInclude@ -\xywarnifdefined\dvipsRaw@ -{\catcode`\"=11 \catcode`\!=11 \catcode`\:=11 - \gdef\dvipsSpecial@#1{\special{ps:: SDict begin #1 end}} - \gdef\dvipsMacro@#1{\firstPS@@\special{" {#1}xy}} -% \gdef\dvipsDict@#1{\special{! mark{#1}stopped cleartomark}} - \gdef\dvipsDict@#1{\special{! #1}} - \gdef\dvipsInclude@#1{\special{header=#1}} - \gdef\dvipsRaw@#1{\special{ps: SDict begin #1 end}} - -\catcode`\^^M=\active % - \gdef\next{\catcode`\^^M=\active \let^^M=\space }}% -\xylet@\obeyDVIPSlines@=\next -\DOCMODE) - -All the \PS\ definitions passed to |dvips| by reading the -dictionary file are stored in a \PS\ dictionary which it defines, -called |SDict|. This must be the current dictionary whenever an \Xy-ps -command is to be executed. -This will be the case whenever the |\special{" |{\it commands}|}| or -|\special{! |{\it commands}|}| forms are used, but not when the -|\special{ps:: |{\it commands}|}| form is used. -Thus the |\dvipsSpecial@| macro includes code to open |SDict| and -close it when finished; so also does the |\dvipsRaw@| type, since this -is used with \Xy-pic\ \PS\ operators whose definitions have been placed -within |SDict|. - -The |currentpoint| is defined for the ``raw'' specials. - -\DOCMODE( -\xydef@\dvipsCurrpt@{\let\xyPScurrpt@@=\dvipsCurrpt@@}% -\xydef@\dvipsCurrpt@@{\PSraw@@{xyp}} -\DOCMODE) - -The \PS\ operator called |xyp| is defined in |xyps-ps| for storing the -location read from |currentpoint|. - -\medskip - -This installs the \PS\ backend. - -\DOCMODE( -\xydef@\dvipsPS@{\dvipsPStypes@ - \let\dvipsPS@@=\PSspecials@true - \let\UnloadPS@@=\dvipsPS@unload - \let\installxyps@@=\relax \installxyps@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item rotated/scaled diagrams and text, using \PS. -\DOCMODE( -\xydef@\dvipsRotate@@{\dvipsRotate@} - -\xydef@\dvipsRotate@{\dvipsPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}% - \dvipsCurrpt@ \dvipsRotScale@ \installPSrotscale@ }% - \else\DN@{\xydriverfail@{rotations are}UnloadRotate@\relax}\fi - \next@ } - -\xydef@\dvipsRotScale@{% - \def\xyrot@start(##1){{xyct ##1\space xyrs }}% - \def\xyrot@end{}% - \def\xyscale@start(##1,##2){{xyct ##1\space##2\space xyss }}% - \def\xyscale@end{}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item variable line-widths and poly-lines, using \PS. -\DOCMODE( -\xydef@\dvipsLine@@{\dvipsLine@} - -\xydef@\dvipsLine@{\dvipsPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@ }% - \else\DN@{\xydriverfail@{line-widths are}\UnloadLine@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item extra frames and fills, using \PS. -\DOCMODE( -\xydef@\dvipsFrames@@{\dvipsFrames@} - -\xydef@\dvipsFrames@{\dvipsPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@ }% - \else\DN@{\xydriverfail@{frames are}\UnloadFrames@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item patterns and tiles, using \PS. -\DOCMODE( -\xydef@\dvipsTiles@@{\dvipsTiles@} - -\xydef@\dvipsTiles@{\dvipsPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@ }% - \else\DN@{\xydriverfail@{Patterns are}\UnloadPSpatterns@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \TPIC\ drawing commands. -\DOCMODE( -\xydef@\dvipsTPIC@@{\dvipsTPIC@} -\xydef@\dvipsTPIC@{\setupxyTPIC@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item em-\TeX\ drawing commands. -\DOCMODE( -\xydef@\dvipsEM@@{\dvipsEM@} -\xydef@\dvipsEM@{\setupxyEMTeX@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{itemize} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xydvips.doc,v $ -% Revision 3.3 1996/12/18 09:13:14 ross -% minor improvements to file-loading commands -% -% Revision 3.2 1995/09/19 18:20:20 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: diff --git a/Master/texmf-dist/source/generic/xypic/xydvitops.doc b/Master/texmf-dist/source/generic/xypic/xydvitops.doc deleted file mode 100644 index c6e0c0a6423..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xydvitops.doc +++ /dev/null @@ -1,346 +0,0 @@ -%% $Id: xydvitops.doc,v 3.3 1996/12/18 09:14:36 ross Exp $ -%% -%% Xy-pic ``DVITOPS-driver'' 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{dvitops}{DVITOPS driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def\DVITOPS{{\sc dvitops}} -This file provides support for the \DVITOPS\ driver by James -Clark. As of September 1995, it has not been fully tested. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE( -\xydef@\dvitops@@#1{\dvimessage@{DVITOPS}{#1}} - -\newdriver{% - \xyaddsupport{color}\dvitopsColor@@ - \xyaddsupport{crayon}\dvitopsCrayon@@ - \xyaddsupport{ps}\dvitopsPS@@ - \xyaddsupport{rotate}\dvitopsRotate@@ - \xyaddsupport{line}\dvitopsLine@@ - \xyaddsupport{frame}\dvitopsFrames@@ - \xyaddsupport{tile}\dvitopsTiles@@ -% \xyaddsupport{tpic}\dvitopsTPIC@@ - \xyaddsupport{cmtip}\relax -} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Supported |\special| effects are... -% -\begin{itemize} - -\item colour, using direct color specials for |gray|, |rgb| and |hsb| colour - models; and \PS\ colour within diagrams; - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DVITOPS\ has a method for using colours locally, however it only colours -``regions'', which cannot be nested. To use this within \Xy-pic\ -diagrams would be just asking for trouble. - -\DOCMODE( -\xydef@\dvitopsColor@@{\dvitops@Color@} - -\xydef@\dvitops@Color@{\dvitopsPStypes@ - \let\xylocalColor@=\xyDVITOPScolor@ - \let\xycolor@push\xycolor@push@@ - \def\xycolor@{\xycolor@@}\let\xycolorwarning@=\relax - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}\xycatcodes - \installPScolor@ }\else\DN@{}\fi \next@ - \ifx\xycolor@@\xyNoColor@ \let\xycolor@@=\xycolor@raw@@\fi - \ifx\xycrayolaloaded\empty \DN@{\xystandardcolors@\dvitopsCrayon@{}}% - \else\let\next@=\xystandardcolors@ - \fi \next@ - \let\dvitops@Color@@=\relax - \let\UnloadColor@@=\NoDVITOPScolor@ - }% - -\xydef@\NoDVITOPScolor@{% - \def\xycolor@{\xycolor@@}% - \let\xycolor@@=\xyNoColor@ - \let\xylocalColor@=\xyNoColor@@ - \let\xycolorwarning@=\xycolorwarning@@ - \let\dvitops@Color@@=\dvitops@Color@ - } -\DOCMODE) - -\DOCMODE( -\xydef@\xyDVITOPScolor@{\bgroup \DN@##1##2{\egroup}% - \ifInvisible@\else\ifHidden@\else\DNii@{\no@@}\ifx\nextii@\Connect@@ - \else\DN@{\xyDVITOPScolor@i}\fi\fi\fi \next@ } - -\xydef@\xyDVITOPScolor@i#1#2{\checkXyStyle@ - \DN@{#2}\ifx\next@\empty - \def\tmp@##1{\DN@{\xycolor@begin##1\xycolor@end{#1}}}% - \else\DNii@{gray}\ifx\next@\nextii@ - \def\tmp@##1{\DN@{\xycolor@begin##1\xycolor@end{gray}{#1}}}% - \else\DNii@{rgb}\ifx\next@\nextii@ - \def\tmp@##1{\DN@{\xycolor@begin##1\xycolor@end{rgbcolor}{#1}}}% - \else\DNii@{hsb}\ifx\next@\nextii@ - \def\tmp@##1{\DN@{\xycolor@begin##1\xycolor@end{hsbcolor}{#1}}}% - \else \DN@{\xywarning@{DVITOPS cannot support color: #2 #1}}% - \fi\fi\fi\fi - \toks@={\egroup \let\xy@style@=\relax \def\Drop@@}% - \expandafter\tmp@\expandafter{\Drop@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\next@}\def\Connect@@}% - \expandafter\tmp@\expandafter{\Connect@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\next@}}% - \the\toks@ }% - -\xydef@\xycolor@begin{\dvitopsBegin@{color}} -\xydef@\xycolor@end{\dvitopsEnd@{color}\dvitopsColor@x} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item crayon colours. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The 68 colours are those that |dvips| recognizes by name, -thanks to Tomas Rokicki. - -\DOCMODE( -\xydef@\dvitopsCrayon@@{\dvitopsColor@@\dvitopsCrayon@} -\xydef@\dvitopsCrayon@{\installCrayolaColors@}% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \PS\ back-end. -\DOCMODE( -\xydef@\dvitopsPS@@{\dvipsPS@} - -\xydef@\dvitopsPS@unload{\UnloadPS@ - \let\UnloadPS@@=\UnloadPS@ - \let\dvitopsPS@@=\dvitopsPS@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DVITOPS\ has two kinds of |\special| which can be used; `inline' and -`prolog' for including header files. Also there are the `begin' and `end' -types for defining regions. - -\DOCMODE( -\xydef@\dvitopsPStypes@{% - \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \ifx\PSspecial@@\dvitopsSpecial@\else - \let\PSspecial@@=\dvitopsSpecial@ - \let\PSmacro@@=\dvitopsMacro@ - \let\PSdict@@=\dvitopsDict@ - \let\PSspecialdict@@=\dvitopsDict@ - \let\PSraw@@=\dvitopsRaw@ - \let\PSinclude@@=\dvitopsInclude@ - \let\xyPSobeylines@@=\obeyDVIPSlines@ - \let\xyPScurrpt@@=\dvitopsCurrpt@@ - \dvitops@@{PostScript}% - \fi -% \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \XYpredict@ } - -\xywarnifdefined\dvitopsSpecial@ -\xywarnifdefined\dvitopsMacro@ -\xywarnifdefined\dvitopsDict@ -\xywarnifdefined\dvitopsInclude@ -\xywarnifdefined\dvitopsRaw@ -\xywarnifdefined\dvitopsOrigin@ -\xywarnifdefined\dvitopsBegin@ -\xywarnifdefined\dvitopsEnd@ -\xywarnifdefined\dvitopsRotate@x -\xywarnifdefined\dvitopsTransform@x -\xywarnifdefined\dvitopsColor@x -{\catcode`\:=11 - \gdef\dvitopsSpecial@#1{\special{dvitops: inline #1}} - \gdef\dvitopsMacro@#1{\special{dvitops: inline {#1}xy}} - \gdef\dvitopsDict@#1{\special{dvitops: inline #1}} - \gdef\dvitopsInclude@#1{\special{dvitops: prolog #1}} - \gdef\dvitopsRaw@#1{\special{dvitops: inline #1}} -% - \gdef\dvitopsOrigin@#1{\special{dvitops: origin #1}} - \gdef\dvitopsBegin@#1{\special{dvitops: begin #1}} - \gdef\dvitopsEnd@#1{\special{dvitops: end #1}} - \gdef\dvitopsRotate@x#1{\special{dvitops: rotate #1}} - \gdef\dvitopsTransform@x#1{\special{dvitops: transform #1}} - \gdef\dvitopsColor@x#1#2{\special{dvitops: #1 color #2}} -} - -\catcode`\^^M=\active % - \gdef\next{\catcode`\^^M=\active \let^^M=\space }}% -\xylet@\obeyDVIPSlines@=\next -\DOCMODE) - -Rotations and transformations use a different mechanism, so |\xyPScurrpt@@| -can be set to |\relax|. - -\DOCMODE( -\xydef@\dvitopsCurrpt@{\global\let\xyPScurrpt@@=\relax}% -\DOCMODE) - -\medskip - -This installs the \PS\ backend. - -\DOCMODE( -\xydef@\dvitopsPS@{\dvitopsPStypes@ - \let\installxyps@@=\relax \installxyps@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item rotated/scaled diagrams and text, using \DVITOPS\ specials; - however these may not be nested. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\dvitopsRotate@@{\dvitopsRotate@} - -\xydef@\dvitopsRotate@{\dvitopsPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty - \DN@{\xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}% - \installDVITOPSrotate@ }% - \else\DN@{\xydriverfail@{rotations are}\UnloadRotate@\relax}\fi - \next@ } - -\xydef@\dvitopsRotScale@{% - \def\xyrot@start{\dvitopsBegin@{rot}\dvitopsOrigin@{rot}}% - \def\xyrot@end(##1){\dvitopsEnd@{rot}\dvitopsRotate@x{##1}}% - \def\xyscale@start{\dvitopsBegin@{scal}\dvitopsOrigin@{scal}}% - \def\xyscale@end(##1,##2){% - \dvitopsEnd@{scal}\dvitopsTransform@x{##1 0 ##2 0}}% - } - -\xydef@\installDVITOPSrotate@{\installPSstyle@ - \let\xyRotate@@=\dvitopsRotate@ - \let\doSpecialRotate@@=\dvitopsSpecialRotate@ - \let\xyscale@@=\dvitopsScale@ - \dvitopsCurrpt@ - \dvitopsRotScale@ \xyPSshapes@true } - -\xydef@\UnloadDVITOPSrotate@{\UnloadRotate@\relax} -\DOCMODE) - -\DOCMODE( - \xydef@\dvitopsRotate@#1{\xyPSsplitPS@ - {\dvitopsBegin@{rot}\dvitopsOrigin@{rot}}% - {\dvitopsEnd@{rot}\dvitopsRotate@x{#1}}}% - - \xydef@\dvitopsScale@#1#2{\xyPSsplitPS@ - {\dvitopsBegin@{scal}\dvitopsOrigin@{scal}}% - {\dvitopsEnd@{scal}\dvitopsTransform@x{#1 0 #2 0}}} - - \xydef@\dvitopsSpecialRotate@#1@@{\dvitopsRotate@{#1}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item variable line-widths and poly-lines, using \PS. -\DOCMODE( -\xydef@\dvitopsLine@@{\dvitopsLine@} - -\xydef@\dvitopsLine@{\dvitopsPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@ }% - \else\DN@{\xydriverfail@{line-widths are}\UnloadLine@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item extra frames and fills, using \PS. -\DOCMODE( -\xydef@\dvitopsFrames@@{\dvitopsFrames@} - -\xydef@\dvitopsFrames@{\dvitopsPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@ }% - \else\DN@{\xydriverfail@{frames are}\UnloadFrames@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item patterns and tiles, using \PS\ -\DOCMODE( -\xydef@\dvitopsTiles@{\dvitopsPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@ }% - \else\DN@{\xydriverfail@{Patterns are}\UnloadPSpatterns@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \TPIC\ drawing commands. -\DOCMODE( -\xydef@\dvitopsTPIC@@{\dvitopsTPIC@} - -\xydef@\dvitopsTPIC@{\setupxyTPIC@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{itemize} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xydvitops.doc,v $ -% Revision 3.3 1996/12/18 09:14:36 ross -% minor improvements to file-loading commands -% -% Revision 3.2 1995/09/19 18:21:41 ross -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% NEW for version 3. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyemtex.doc b/Master/texmf-dist/source/generic/xypic/xyemtex.doc deleted file mode 100644 index ce17198297f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyemtex.doc +++ /dev/null @@ -1,243 +0,0 @@ -%% $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} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Eberhard Matte's {em-\TeX} implementation provides a suite of |\special| -commands to facilitate the drawing of lines, both on-screen and with various -printing devices. This `back-end' extension allows the lines in \Xy-pic -diagrams to be drawn using these methods. - -Note that this extension does not have to be used with {em-\TeX}. Better -results may be obtained using the \PS\ back-end and \dvips\ <driver>, since -a version of \dvips\ is available for em-\TeX. However, in particular for -screen previewing purposes, it may be convenient to use this back-end. -Furthermore note that \dvips\ is capable of supporting em-\TeX |\special|s. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -Once loaded using |\xyoption{emtex}|, with an appropriate <driver> also -specified either already or subsequently, the following commands are -available to turn the em-\TeX\ backend off/on. -% -\begin{defs} -|\NoEMspecials| & turns off em-\TeX\ specials.\kern-50pt\cr -|\UseEMspecials| & reinstates em-\TeX\ specials.\kern-30pt -\end{defs} - -\DOCMODE( -\xynew@{if}\ifEMspecials@ -\xydef@\UseEMspecials{\EMspecials@true} -\xydef@\NoEMspecials{\EMspecials@false} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The |\special|s} - -\DOCMODE( -\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}}} -\DOCMODE) - -These place the actual |\special|s and allow tracing: - -\DOCMODE( -{\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} -\DOCMODE) - -Currently these are not used by \Xy-pic. - -\DOCMODE( -%\xydef@\xyemtex@message#1{\xyEM@special{message #1}} -%\xydef@\xyemtex@graph#1{\xyEM@special{graph #1}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{re-bindings} - -This is similar to the mechanism used by the \PS\ back-end to rebind -``hooks'' to incorporate a switch according to the current value of -|\ifEMspecials@|. - -\DOCMODE( -\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}}% -\DOCMODE) - -Allow only one instance of |\setupxyEM@|; thereafter simply do -|\reloadxyEM@| to turn on anything that has been turned off. - -\DOCMODE( -\xydef@\setupxyEMTeX@{\xywarning@{using em-TeX specials}% - \EMalternative@{\solid@}{solid}% -% \EMalternative@{\point@}{point}% - \EMalternative@{\splinesolid@}{splinesolid}% - \let\setupxyEM@=\reloadxyEM@ - \activateEM@ } - -\xydef@\xyunloadEM@{\xywarning@{EM specials turned off}% -% \xywithoption{curve}{\xysetup@@\uninstallEMcurves@ }% - \xywithoption{line}{\xysetup@@\uninstallEMline@ }% -% \xywithoption{frame}{\xysetup@@\uninstallEMframes@ }% - \EMspecials@false - \let\setupxyEM@=\reloadxyEM@ } - -\xydef@\activateEM@{% - \xywithoption{line}{\xysetup@@\installEMline@}% -% \xywithoption{curve}{\xysetup@@\installEMcurves@}% -% \xywithoption{frame}{\xysetup@@\installEMframes@}% - \EMspecials@true } - -\xydef@\reloadxyEM@{\xywarning@{EM specials back on}\activateEM@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{straight lines} - -\DOCMODE( -\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@@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{spline curves} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent -Of the curves defined in the |xycurve| extension, only solid spline curves -are supported. This is done by treating the spline as a polygon (poly-line) -with many segments. - -\DOCMODE( -\xydef@\xyemtex@splinesolid@{\setbox\splinebox@=\copy\voidb@x - \multiply\splinetol@\thr@@ - \gdef\splineextra@@{\xyemtex@moveto\gdef\splineextra@@{\xyemtex@lineto}}% - \def\xycrvdrop@{ }\def\xycrvconn@{}\splineset@@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{line width} - -\DOCMODE( -\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}% -\DOCMODE) - -\DOCMODE( -\xydef@\UseEMlinewidth{\installEMline@}% -\xydef@\NoEMlinewidth{\uninstallEMline@}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xyemtex.doc,v $ -% Revision 3.3 1996/12/18 09:18:00 ross -% fixed bug affecting line-widths -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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: diff --git a/Master/texmf-dist/source/generic/xypic/xyframe.doc b/Master/texmf-dist/source/generic/xypic/xyframe.doc deleted file mode 100644 index 7387f91163f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyframe.doc +++ /dev/null @@ -1,1213 +0,0 @@ -%% $Id: xyframe.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Frames and Brackets'' extension. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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@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{frame}{Frame and Bracket extension}{\stripRCS$Revision: 3.7 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The |frame| extension provides a variety of ways to puts frames in - \Xy-pictures. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The frames are \Xy-pic <object>s on the form -% -\begin{defs1} - ??c![\frm]|{| <frame> |}| \cr -\end{defs1} -\noindent\unskip -% - to be used in <pos>itions: Dropping a frame with - |*|\dots|\frm{|<frame>|}| will frame the~$c$ object; connecting with - |**|\dots |\frm{|\dots<frame>|}| will frame the result of $c|.|p$. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{\Xy-pic interface} - - The frames are integrated in \Xy-pic as <object>s as follows. They - generate a dummy object, then define the |\Drop@@| action to place - the requested frame. The |\Connect@@| operation is defined to place - the requested frame around the current "and" the previous object - (using the |\cmerge@| command of the kernel). - -\DOCMODE( -\xydef@\frm{\hbox{}\dimen@=\L@c \advance\dimen@\R@c \wdz@=\dimen@ - \ht\z@=\U@c \dp\z@=\D@c \dimen@=\U@c \advance\dimen@\D@c -% \ifdim\wdz@=\z@ \def\Leftness@{0}\else \quotient@\Leftness@\L@c\wdz@ \fi -% \ifdim\dimen@=\z@ \def\Upness@{0}\else \quotient@\Upness@\U@c\dimen@ \fi - \ifdim\wdz@=\z@ \def\Leftness@{.5}\else \quotient@\Leftness@\L@c\wdz@ \fi - \ifdim\dimen@=\z@ \def\Upness@{.5}\else \quotient@\Upness@\U@c\dimen@ \fi - \expandafter\Edge@c\expandafter{\prevEdge@@}\let\frmradius@@=\z@ - \def\Drop@@{}% - \def\Connect@@{\xy@@{\save@\cmerge@\Y@p\X@p\D@p\U@p\L@p\R@p\Drop@@}\restore}% - \xyFN@\frm@i} - -\xylet@\frmradius@@=\z@ - -\xydef@\frm@i{% - \addLT@\ifx\next \addGT@{\addLT@\DN@##1}{\def\frmradius@@{##1}\xyFN@\frm@i}% - \else \DN@##1##{\frm@{##1}}\fi \next@} -\DOCMODE) - - The main command is |\frm@| which looks up if a custom control - sequence is available for the requested frame or whether the generic - `curve along the edge' code should be invoked. - -\DOCMODE( -\xydef@\frm@#1#2{\DNii@{frm#1{#2}}% - \expandafter\let\expandafter\next@\csname\codeof\nextii@\endcsname - \ifx\next@\relax \DNii@{frm{#2}}% - \expandafter\let\expandafter\next@\csname\codeof\nextii@\endcsname - \ifx\next@\relax \let\next@=\frm@generic \fi\fi \next@} - -\xydef@\frm@generic{\xyerror@{No generic frames yet!}{}} -\DOCMODE) - - This extra command is used to define |\Drop@@| for each frame such - that |\frmradius@@| is available. - -\DOCMODE( -\xydef@\frmDrop@#1{% - \ifx\frmradius@@\z@ \addtoDrop@@{\let\frmradius@@=\z@ #1}% - \else \expandafter\addtoDrop@@\expandafter{% - \expandafter\def\expandafter\frmradius@@\expandafter{\frmradius@@}#1}\fi} - -\xydef@\EdgefromtheEdge@{% - \U@c=\the\U@c \D@c=\the\D@c \L@c=\the\L@c \R@c=\the\R@c - \Edge@c={\expandafter\noexpand\the\Edge@c}} -\xydef@\prevEdgefromtheEdge@{% - \U@c=\the\U@c \D@c=\the\D@c \L@c=\the\L@c \R@c=\the\R@c - \noexpand\def\noexpand\prevEdge@@{\expandafter\noexpand\the\Edge@c}} - -\xydef@\addtoDrop@@#1{% - \expandafter\def\expandafter\Drop@@\expandafter{\Drop@@#1}} -\xydef@\addbeforeDrop@@#1{\DNii@{#1}% - \expandafter\DN@\expandafter{\expandafter\nextii@\Drop@@}% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter\Drop@@ - \expandafter\expandafter\expandafter{\next@}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Below we distinguish between `ordinary' frames, `brackets' and - `fills'; last we present how some frames can be added to other - objects using object modifier <shape>s. - -\begin{figure*}[p] -\vfill -$$ -% - \newcount\R \newcount\C - \def\n{\advance\R1 \C0 \POS(\R,\C)} - \def\F#1#2#3{\advance\C1 \def\1{#1}\def\3{#3}% - \POS(\R,\C)*+\txt{Framed with\\\tt\string\frm\codeof\1\\frame% - \ifx\3\empty\else ??^[#3]\relax\fi}*\frm#1*\frm{#2}} -% -\R0 \C0 \xy - % - \POS 0;<0cm,-1.7cm>:<3.2cm,0cm>:: \relax - \F{{}}{}{dummy} \F{{.}}{}{rect} \F{<44pt>{.}}{}{rect} - % - \n\F{{-}}.{rect}="top"\F{<8pt>{-}}.{rect} \F{<44pt>{-}}.{rect} - \n\F{{=}}.{rect} \F{<8pt>{=}}.{rect} \F{<44pt>{=}}.{rect} - \n\F{{--}}.{rect} \F{{o-}}.{rect} \F{<44pt>{--}}.{rect} - \n\F{{,}}.{shade} \F{<5pt>{,}}.{shade} \F{{-,}}.{shade} - \n\F{{o}}.{circ} \F{<8pt>{o}}.{circ} \F{{.o}}.{circ} - \n\F{{oo}}.{circ} \F{<8pt>{oo}}.{circ} \F{{-o}}.{circ} - \n\F{{e}}.{ellip} \F{<20pt,8pt>{e}}.{ellip} \F{{.e}}.{ellip} - \n\F{{ee}}.{ellip} \F{<20pt,8pt>{ee}}.{ellip} \F{{-e}}.{ellip}="bot" - % -% \n\POS+(0,1)*=<20pt,10pt>{}="5,0"*\frm{*}!CR!<\jot,0pt> -% *!L{\leftarrow\txt{Framed with {\tt\string\frm\string{*\string}} -% frame \dots\ should only be used\\for relatively small (and probably -% empty) objects}} - % - \POS"top"."bot"!CL!<-2\jot,0pt>*\frm{\{} - *++!R\txt<2cm>{These are over\-layed with the - {\tt\string\frm\string{.\string}} frame - above to show the way they are centered - on the object} -\endxy -$$ -\caption{Plain \protect<frame>s.} -??=[f.frm] -%\vspace{3ex} -\vfill -$$ -% - \newcount\R \newcount\C - \def\n{\advance\R1 \C0 \POS(\R,\C)} - \def\F#1#2#3{\advance\C1 \def\1{#1}\def\3{#3}% - \POS(\R,\C)*+\txt{Framed with\\\tt\string\frm\codeof\1\\frame% - \ifx\3\empty\else ??^[#3]\relax\fi}*\frm#1*\frm{#2}} -% -\R0 \C0 \xy - % - \POS 0;<0cm,-1.7cm>:<3.2cm,0cm>:: \relax - \n\F{{_\}}}.{braces} \F{{^\}}}.{braces} \F{{\{}}.{braces} \F{{\}}}.{braces} - \n\F{{_)}}.{paren} \F{{^)}}.{paren} \F{{(}}.{paren} \F{{)}}.{paren} - % -\endxy -$$ -\caption{Bracket \protect<frame>s.} -??=[f.bfrm] -\vfill -\end{figure*} - - -\subsection{Frames} -??=[frames] - - Figure~??[f.frm] shows the possible frames and the applicable - <modifier>s with reference to the notes below. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notes} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[dummy] - - The |\frm{}| frame is a dummy useful for not putting a frame on - something, \eg, in macros that take a <frame> argument. - -\DOCMODE( -\xydefcsname@{frm{}}{} -\xyletcsnamecsname@{frm[]{}}{frm{}} -\xyletcsnamecsname@{frm[o]{}}{frm{}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[rect] - - "Rectangular" frames include |\frm{.}|, |\frm{-}|, |\frm{=}|, - |\frm{--}|, |\frm{==}|, and |\frm{o-}|. They all make rectangular - frames that essentially trace the border of a rectangle-shaped - object. - - The <frame>s |\frm{-}| and |\frm{=}| allow an optional "corner - radius" that rounds the corners of the frame with quarter circles of - the specified radius. This is not allowed for the other frames---the - |\frm{o-}| frame always gives rounded corners of the same size as the - used dashes (when |\xydashfont| is the default one then these are - |5pt| in radius). - -\begin{exercise} -% - How do you think the author typeset the following? -% -\begin{code} -\xy - (0,0) *++={A} *\frm{o} ; - (10,7) *++={B} *\frm{o} **\frm{.} -\endxy -\end{code} -$$\docode$$ -% -\answertext{Here is how:} -\answercode -\answertext\displaycode -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The commands still hack away with rules and stuff\dots - - |\frm{.}| just fills the edges of the object rectangle border with - dots using dots as in dotted connections in the kernel. - -\DOCMODE( -\xydefcsname@{frm{.}}{\frmDrop@{\let\zerocorner=\framezerodot@@ - \let\framehfill=\frm@doth@@ \let\framevfill=\frm@dotv@@ - \framed@@{\frmradius@@}}} - -\xyletcsnamecsname@{frm[]{.}}{frm{.}} - -\xydef@\frm@doth@@{\setboxz@h{\kern5\B@\framezerodot@@\kern5\B@}\ht\z@=\B@ - \dp\z@=\B@\kern5\B@\xleaders\boxz@\hss\kern5\B@} -\xydef@\frm@dotv@@{\setboxz@h to2\B@{\hss\framezerodot@@\hss}\ht\z@=5\B@ - \dp\z@=5\B@\kern5\B@\xleaders\boxz@\vss\kern5\B@} - -\xyletcsnamecsname@{frm{..}}{frm{.}} - -\xylet@\framezerodot@@=\zerodot -\DOCMODE) - - The |\frm|<variant>|{-}| and |\frm|<variant>|{=}| set a single/double - frame that just surrounds the current object; if a <radius> is given - then it should be a |<|<dimen>|>| where the <dimen> will be used for - the corner radius. - - The commands for |\frm{-}| and |\frm{=}| are quite similar in that - they just call |\framed@| one or two times, respectively, with the - corner radius and $L,R,D,U$ extents reflecting the size of the frame. - |\framed@| then sets the horizontal and vertical fill commands to - generate rules of the right length, then calls |\framed@@| where the - real work is done. - -\DOCMODE( -\xydefcsname@{frm{-}}{\frmDrop@{\framed@\frmradius@@}} -\xyletcsnamecsname@{frm[]{-}}{frm{-}} - -\xydef@\framed@{\let\zerocorner=\framezerodot@@ - \let\framehfill=\frm@solidh@@ \let\framevfill=\frm@solidv@@ \framed@@} - -\xylet@\framesetthick@=\relax - -\xydef@\frm@solidh@@{\framesetthick@\leaders\hrule height\B@ depth\B@\hfill} -\xydef@\frm@solidv@@{\framesetthick@\leaders\vrule width2\B@\vfill} - -\xydefcsname@{frm{=}}{\frmDrop@{\framed@\frmradius@@ - {\advance\L@c-2\p@ \advance\R@c-2\p@ \advance\U@c-2\p@ \advance\D@c-2\p@ - \dimen@=\frmradius@@ - \ifdim\dimen@>2\p@ \advance\dimen@-2\p@ \else \dimen@=\z@\fi - \framed@\dimen@}}} - -\xyletcsnamecsname@{frm[]{=}}{frm{=}} -\DOCMODE) - - When the line extension is also loaded then we use the line thickness - for frames: - -\DOCMODE( -\xydef@\framesetthick@line{\B@=.5\xylinethick@} - -\xydef@\frm@thickc@@{\hbox{\framesetthick@line - \vrule height.5\B@ depth.5\B@ width\B@}} - -\xywithoption{line}{% - \let\framezerodot@@\frm@thickc@@ \let\framesetthick@=\framesetthick@line} -\DOCMODE) - - |\framed@@| is where we build a box with the sides of the frame - displaced appropriately. \TODO{Generalise this to handle any - directional!} - -\DOCMODE( -% Procedure: -% %0 setup hrulefill and vrulefill as apropriate... -% %1 Lower R to be less than half of both (U+D) and (L+R). -% %2 Start vbox at (X-L,Y-D) except center overshoot. -% %3 Generate corner CO4 at R; w[\A@] := -1/2 width(corner); -% r[\B@] := 1/2 rulewidth; h[\dimen@ii] := U+D+2w; -% %4 Row 1: hbox to W{kern w CO4 hrulefill CO3 kern w}. -% %5 Row 2: hbox to W{kern-r vbox to h{vrulefill} -% hfill vbox to h{vrulefill} kern-r}. -% %6 Row 3: hbox to W{kern w CO1 hrulefill CO2 kern w}. - -\xydef@\framed@@#1{\setboxz@h{\R@=#1\relax - \dimen@=\L@c \advance\dimen@\R@c \dimen@ii=\U@c \advance\dimen@ii\D@c %1 - \ifdim.5\dimen@<\R@ \R@=.5\dimen@ \fi - \ifdim.5\dimen@ii<\R@ \R@=.5\dimen@ii \fi - \A@=\X@c \advance\A@-\L@c \B@=\Y@c \advance\B@-\D@c %2 - \ifdim\R@<\p@\else \cirrestrict@@ \fi - \dimen@=2\R@ \advance\dimen@-\L@c \advance\dimen@-\R@c - \ifdim\dimen@>\z@ \advance\A@-.5\dimen@ \fi - \dimen@=2\R@ \advance\dimen@-\U@c \advance\dimen@-\D@c - \ifdim\dimen@>\z@ \advance\B@-.5\dimen@ \fi - \kern\A@ \raise\B@\vbox to \dimen@ii{\framed@body@@}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@} - -\xydef@\framed@body@{% - \advance\dimen@ii.22\p@ \advance\dimen@-.2\p@ - \setboxz@h{\corn@@4\R@}\A@=-.5\wdz@ \B@=.5\xydashw@ %3 - \dimen@=\L@c \advance\dimen@\R@c \advance\dimen@-.2\p@ - \setboxz@h to\dimen@{\kern\A@ \boxz@ \framehfill\corn@@3\R@\kern\A@}%4 - \advance\dimen@ii-\dp\z@ \kern-\ht\z@ \nointerlineskip\boxz@ - \dimen@=\L@c \advance\dimen@\R@c \advance\dimen@-.2\p@ - \setboxz@h to\dimen@{\kern\A@\corn@@1\R@\framehfill\corn@@2\R@\kern\A@}%6 - \advance\dimen@ii-\ht\z@ - \dimen@=\L@c \advance\dimen@\R@c \advance\dimen@.2\p@ - \nointerlineskip\hbox to\dimen@{% %5 - \setbox\z@=\vbox to\dimen@ii{\framevfill}\kern-.5\wdz@\copy\z@ - \hss \copy\z@\kern-.5\wdz@ }% - \nointerlineskip\boxz@ \vss \kern\z@} - -\xylet@\framed@body@@=\framed@body@ - -\xylet@\zerocorner=\framezerodot@@ - -\xydef@\solidcorner@#1#2{\hbox\bgroup \R@=#2\relax - \ifdim\R@<\p@ \zerocorner - \else \cirrestrict@@ \multiply\count@8 % - \setboxz@h{\corn@x@@{#1}}\dimen@=\wdz@ - \ifcase#1\or \ht\z@=\z@ \kern\dimen@ \raise\dimen@\boxz@ - \or \ht\z@=\z@ \raise\dimen@\boxz@ \kern\dimen@ - \or \dp\z@=\z@ \lower\dimen@\boxz@ \kern\dimen@ - \or \dp\z@=\z@ \kern\dimen@ \lower\dimen@\boxz@ \fi - \vrule height\dimen@ depth\dimen@ width\z@\fi - \edef\tmp@{\egroup \U@c=\the\dimen@}\tmp@ \D@c=\U@c \L@c=\U@c \R@c=\U@c - \Edge@c={\circleEdge}\ignorespaces} - -\xydef@\corn@x@#1{\ifcase#1\or - \circhar@@\z@ \circhar@@\@ne\or\circhar@@\tw@ \circhar@@3\or - \circhar@@5\circhar@@4\or\circhar@@7\circhar@@6\fi} - -\xylet@\corn@x@@=\corn@x@ - -\xydef@\corn@@{\DN@{\solidcorner@}% - \ifx\framehfill\frm@doth@@ \DN@{\let\cirrestrict@@=\relax - \let\corn@x@@=\dotcorner@@ \let\zerodot=\framezerodot@@ - \solidcorner@ }% - \else\ifx\framehfill\frm@dashh@@ \DN@{\let\cirrestrict@@=\relax - \let\corn@x@@=\dashcorner@@ \let\zerodot=\framezerodot@@ - \solidcorner@ }% - \fi\fi \next@} - -\xydef@\dotcorner@@#1{\zerocorner} -\xydef@\dashcorner@@#1{\zerocorner} - -\xywithoption{curve}{% - \let\dotcorner@@=\dotcorner@ \let\dashcorner@@=\dashcorner@} -\DOCMODE) - - The dashed frames `dash' with the dash used for dashed lines. - -\DOCMODE( -\xydefcsname@{frm{--}}{% - \frmDrop@{\let\zerocorner=\framezerodot@@ - \let\framehfill=\frm@dashh@@ \let\framevfill=\frm@dashv@@ - \framed@@\frmradius@@}} - -\xyletcsnamecsname@{frm[]{--}}{frm{--}} - -\xydef@\frm@dashh@@{\setboxz@h{\dashhfillchar}% - \ht\z@=\B@ \dp\z@=\B@ \wdz@=2\xydashl@ - \copy\z@ \xleaders\copy\z@\hss \boxz@\kern-\xydashl@} -\xydef@\frm@dashv@@{\setboxz@h to2\B@{\hss\dashvfillchar\hss}\ht\z@=\z@ - \dp\z@=2\xydashl@ \nointerlineskip\copy\z@ \xleaders\copy\z@\vss - \nointerlineskip\boxz@\kern-\xydashl@}% - -\xydef@\dashhfillchar{{\rDirection@\xydashl@ \line@@}} -\xydef@\dashvfillchar{{\dDirection@\xydashl@ \line@@}} -\DOCMODE) - -\BUG: Setting the corner-radius to less than 10pt has no effect when - using |\frm{o-}|; instead a default size of |.8\xydashl@| is used. - -\DOCMODE( -\xydefcsname@{frm{o-}}{% - \ifdim\frmradius@@<2\xydashl@\relax \dimen@=.8\xydashl@ - \expandafter\def\expandafter\frmradius@@\expandafter{\the\dimen@}\fi - \frmDrop@{\let\zerocorner=\framezerodot@@ - \let\framehfill=\frm@rddashh@@ \let\framevfill=\frm@rddashv@@ - \framed@@\frmradius@@}}% - -\xydef@\frm@rddashh@@{\setboxz@h{\kern\xydashl@\dashhfillchar}% - \ht\z@=\B@ \dp\z@=\B@ \copy\z@ \xleaders\copy\z@\hss \boxz@ \kern\xydashl@} -\xydef@\frm@rddashv@@{\ifdim\dimen@ii<2\xydashl@\else - \setbox\z@=\vbox to2\xydashl@{\hbox to2\B@{\hss\dashvfillchar\hss}\vss}% - \kern\xydashl@ \copy\z@ \xleaders\copy\z@\vss - {\ifdim\dimen@ii<2\xydashl@\else\aftergroup\boxz@\fi}\fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[shade] - - The frame |\frm{,}| puts a shade, built from rules, into the picture - beneath the (assumed rectangular) object, thereby giving the illusion - of `lifting' it; |\frm<|<dimen>|>{,}| makes this shade <dimen> deep. - - |\frm{-,}| combines a |\frm{-}| with a |\frm{,}|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - A black rule is just that, a shade is two rules placed under and left - of the rectangular object outline. - -\DOCMODE( -\xydefcsname@{frm{,}}{% - \ifx\frmradius@@\z@ \shaded@{1.2\p@}\else \shaded@\frmradius@@ \fi} - -\xydef@\shaded@#1{\frmDrop@{\R@=#1\relax - {\advance\X@c\R@ \advance\Y@c-\D@c \U@c=\z@ \D@c=\R@ \blacked@}% - {\advance\X@c\R@c \advance\Y@c-\R@ \L@c=\z@ \R@c=\R@ \blacked@}}} - -\xydefcsname@{frm{-,}}{\addtoDrop@@{\drop\frm{-}\drop\frm{,}}} - -\xydef@\blacked@{\setboxz@h{% - \A@=\X@c \advance\A@-\L@c \dimen@=\L@c \advance\dimen@\R@c - \B@=\Y@c \advance\B@-\D@c \dimen@ii=\Y@c \advance\dimen@ii\U@c - \advance\A@-.5\xydashw@ - % \advance\B@-\xydashw@ \advance\dimen@ii-.5\xydashw@ - \kern\A@ \blacked@@ }% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@} - -\xydef@\bblacked@{\setboxz@h{% - \dimen@=\L@c \advance\dimen@\R@c \B@=-\D@c \dimen@ii=\U@c - \kern-\L@c \blacked@@ \kern-\dimen@ \kern\L@c}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@} - -\xydef@\blacked@@{\vrule width\dimen@ depth-\B@ height\dimen@ii} -\DOCMODE) - -The |\blacked| option is subsumed within a more general |\filled|; see below. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[circ] - - Circles done with |\frm{o}| have radius as $(R+L)/2$ and with - |\frm<|<dimen>|>{o}| have radius as the <dimen>; |\frm{oo}| makes a - double circle with the outermost circle being the same as that of - |\frm{o}|. - -\begin{exercise} - What is the difference between |*\cir{}| and |*\frm{o}|? -\answertext{The |*\cir{}| operation changes $c$ to be round whereas - |*\frm{o}| does not change $c$ at all.} -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydefcsname@{frm{o}}{% - \ifx\frmradius@@\z@ - \frmDrop@{\dimen@=.5\L@c \advance\dimen@.5\R@c - \let\framehfill=\frm@solidh@@ \let\framevfill=\frm@solidv@@ - \circled@\dimen@}% - \else - \frmDrop@{\let\framehfill=\frm@solidh@@ - \let\framevfill=\frm@solidv@@ \circled@\frmradius@@}% - \fi} - -\xydefcsname@{frm{oo}}{% - \ifx\frmradius@@\z@ - \frmDrop@{\dimen@=.5\L@c \advance\dimen@.5\R@c - \let\framehfill=\frm@solidh@@ \let\framevfill=\frm@solidv@@ - {\circled@\dimen@}\advance\dimen@-2.1\p@ \circled@\dimen@}% - \else - \frmDrop@{\dimen@=\frmradius@@ - \let\framehfill=\frm@solidh@@ \let\framevfill=\frm@solidv@@ - {\circled@\dimen@}\advance\dimen@-2.1\p@ \circled@\dimen@}% - \fi} - -\xydef@\circled@#1{\setboxz@h\bgroup \R@=#1\relax - \setboxz@h{\vbox{\circled@x@@}}% - \A@=\X@c \advance\A@-.5\wd\z@ - \B@=\Y@c \advance\B@-.5\ht\z@ \advance\B@.5\dp\z@ \advance\B@.2\p@ - \edef\tmp@{\egroup\dimen@=\the\wdz@}% - \kern\A@ \raise\B@\boxz@ - \tmp@ \divide\dimen@4 \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@} - -\xydef@\circled@x@{\hbox{\corn@@4\R@ \corn@@3\R@}% - \nointerlineskip\hbox{\corn@@1\R@ \corn@@2\R@}} -\xylet@\circled@x@@=\circled@x@ -\DOCMODE) - -The code here is repetitive and could be improved. -The only purpose of |\let\framehfill=\frm@dashh@@| etc. is to serve -as a marker for the required style: solid/dashed/dotted. - -\DOCMODE( -\xydefcsname@{frm{.o}}{% - \ifx\frmradius@@\z@ \frmDrop@{\let\framehfill=\frm@doth@@ - \dimen@=.5\L@c \advance\dimen@.5\R@c \circled@\dimen@}% - \else - \frmDrop@{\let\framehfill=\frm@doth@@ \circled@\frmradius@@}% - \fi} - -\xydefcsname@{frm{-o}}{% - \ifx\frmradius@@\z@ \frmDrop@{\let\framehfill=\frm@dashh@@ - \dimen@=.5\L@c \advance\dimen@.5\R@c \circled@\dimen@}% - \else - \frmDrop@{\let\framehfill=\frm@dashh@@ \circled@\frmradius@@}% - \fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[ellip] - - Ellipses specified using |\frm{e}| have axis lengths $(R+L)/2$ and - $(U+D)/2$, while those with |\frm<|<dimen,dimen>|>{e}| use the given - lengths for the axes. |\frm{ee}| makes a double ellipse with outermost - ellipse being the same as that of |\frm{e}|. - - Without special support to render the ellipses, either via a <driver> - or using the |arc| feature, the ellipse will be drawn as a circle of - radius approximately the average of the major and minor axes. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydefcsname@{frm{e}}{\ellipse@whichfrm@\ellipsesolidframed@}% -\xydefcsname@{frm{.e}}{\ellipse@whichfrm@\ellipsedotframed@}% -\xydefcsname@{frm{-e}}{\ellipse@whichfrm@\ellipsedashframed@}% - -\xydefcsname@{frm{ee}}{\ellipse@whichdblfrm@\ellipsesolidframed@}% -\xydefcsname@{frm2{.e}}{\ellipse@whichdblfrm@\ellipsedotframed@}% -\xydefcsname@{frm2{-e}}{\ellipse@whichdblfrm@\ellipsedashframed@}% - -\xyletcsnamecsname@{frm[o]{-}}{frm{e}} -\xyletcsnamecsname@{frm[o]{=}}{frm{ee}} -\xyletcsnamecsname@{frm[o]{.}}{frm{.e}} -\xyletcsnamecsname@{frm[o]{--}}{frm{-e}} - -\xydef@\ellipse@whichfrm@#1{% - \ifx\frmradius@@\z@ - \frmDrop@{#1\dimen@=.5\L@c \advance\dimen@.5\R@c - \dimen@ii=.5\U@c \advance\dimen@ii.5\D@c - \edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}\next@ }% - \else - \frmDrop@{#1\expandafter\ellipsed@i@\frmradius@@,,@@}% - \fi} - -\xydef@\ellipse@whichdblfrm@#1{% - \ifx\frmradius@@\z@ - \frmDrop@{#1\dimen@=.5\L@c \advance\dimen@.5\R@c - \dimen@ii=.5\U@c \advance\dimen@ii.5\D@c - \edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@ii}}\next@ }% - \else - \frmDrop@{#1\expandafter\ellipsed@ei@\frmradius@@,,@@}% - \fi} - -\xydef@\ellipsed@i@#1,#2,#3@@{\DNii@{,}\DN@{#3}% - \ifx\next@\nextii@ - \dimen@=#1\relax \dimen@ii=#2\relax - \edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}% - \else \ifx\next@\empty \DN@{#2}% - \ifx\next@\empty \DN@{#1}% - \dimen@=.5\L@c \advance\dimen@.5\R@c - \dimen@ii=.5\U@c \advance\dimen@ii.5\D@c - \edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}% - \else \dimen@=#1\relax - \edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}% - \fi - \else\xywarning@{ignoring extra tokens in elliptical frame: #3 }% - \dimen@=#1\relax \dimen@ii=#2\relax - \edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}% - \fi\fi \next@ } - -\xydef@\ellipsed@ei@#1,#2,#3@@{\DNii@{,}\DN@{#3}% - \ifx\next@\nextii@ - \dimen@=#1\relax \dimen@ii=#2\relax - \edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@ii}}% - \else \ifx\next@\empty \DN@{#2}% - \ifx\next@\empty \DN@{#1}% - \dimen@=.5\L@c \advance\dimen@.5\R@c - \dimen@ii=.5\U@c \advance\dimen@ii.5\D@c - \edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@ii}}% - \else - \dimen@=#1\relax - \edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@}}% - \fi - \else\xywarning@{ignoring extra tokens in elliptical frame: #3 }% - \dimen@=#1\relax \dimen@ii=#2\relax - \edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@ii}}% - \fi\fi \next@ } - -\xydef@\ellipsed@e@#1#2{% - \dimen@=#1\relax \dimen@ii=#2\relax - \edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}\next@ - \dimen@=#1\relax \dimen@ii=#2\relax - \ifdim\dimen@>2\p@ \advance\dimen@-2\p@ \else \dimen@=\z@\fi - \ifdim\dimen@ii>2\p@ \advance\dimen@ii-2\p@ \else \dimen@ii=\z@\fi - \edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}\next@ }% - -\xydef@\ellipsed@#1#2{\setboxz@h\bgroup \relax - \setboxz@h{\vbox{\ellipsed@x@@{#1}{#2}}}% - \A@=\X@c \advance\A@-.5\wd\z@ - \B@=\Y@c \advance\B@-.5\ht\z@ \advance\B@.5\dp\z@ \advance\B@.2\p@ - \edef\tmp@{\egroup\dimen@=\the\wdz@}% - \kern\A@ \raise\B@\boxz@ - \tmp@ \divide\dimen@4 \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@} - -\xydef@\ellipsed@i#1#2{{\R@c=#1\relax\L@c=\R@c - \U@c=#2\relax\D@c=\U@c \ellipsed@{#1}{#2}}} - -\xydef@\ellipsed@x@#1#2{\R@=#1\relax\advance\R@#2\relax - \divide\R@\tw@ \circled@x@@ } -\xylet@\ellipsed@x@@=\ellipsed@x@ - -\xydef@\ellipsesolidframed@{% - \let\framehfill=\frm@solidh@@ \let\framevfill=\frm@solidv@@} -\xydef@\ellipsedotframed@{% - \let\framehfill=\frm@doth@@ \let\framevfill=\frm@dotv@@} -\xydef@\ellipsedashframed@{% - \let\framehfill=\frm@dashh@@ \let\framevfill=\frm@dashv@@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - - \TODO: Allow <frame variant>s like those used for directionals, \ie, - |\frm2{-}| should be the same as |\frm{=}|. Add |\frm{o,}| and more - brackets. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Brackets} -??=[brackets] - - The possible brackets are shown in figure~??[f.bfrm] with notes - below. - -\begin{notescontd} - -\note??=[braces] - - "Braces" are just the standard plain \TeX\ large braces inserted - correctly in \Xy-pic pictures with the `nib' aligned with the - reference point of the object they brace. - -\begin{exercise} -% - How do you think the author typeset the following? -% -\begin{code} -\xy - (0,0) *+++{A} ; - (10,7) *+++{B} **\frm{.} - **\frm{^\}} ; **\frm{_\}} -\endxy -\end{code} -$$\docode$$ -% -\answertext{Here is how:} -\answercode -\answertext\displaycode -\answertext{The trick in the last line is to ensure that the reference point - of the merged object to be braced is the right one in each case.} -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - They just use the pieces of plain \TeX\ brace delimiters at |\Bigg| - size and those of |\overbrace| and |\underbrace|. - -\DOCMODE( -\xydefcsname@{frm{\{}}{\addtoDrop@@{\lbraced}} -\xydefcsname@{frm{\}}}{\addtoDrop@@{\rbraced}} - -\xydefcsname@{frm{^\}}}{\addtoDrop@@{\ubraced}} -\xydefcsname@{frm{_\}}}{\addtoDrop@@{\dbraced}} -\DOCMODE) - - The horizontal ones mimick the plain \TeX\ ones quite closely: - -\DOCMODE( -\xydef@\dbraced{\xy@@{\setboxz@h{% - \A@=\X@c \advance\A@-\L@c \B@=\Y@c \advance\B@-\D@c - \setboxz@h{$\m@th\bracelu$}\dimen@=2\wdz@ \advance\B@-.5\ht\z@ - \ifdim\R@c<\dimen@ \R@c=\dimen@ \fi - \ifdim\L@c<\dimen@ \advance\A@-\dimen@ \advance\A@\L@c \L@c=\dimen@ \fi - \advance\A@-.25pt % - \kern\A@\raise\B@\hbox{% - \hbox to\L@c{$\m@th\bracelu\leaders\vrule\hfil\bracerd$}% - \kern.5pt % - \hbox to\R@c{$\m@th\braceld\leaders\vrule\hfil\braceru$}}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} - -\xydef@\ubraced{\xy@@{\setboxz@h{% - \A@=\X@c \advance\A@-\L@c \B@=\Y@c \advance\B@\U@c - \setboxz@h{$\m@th\bracelu$}\dimen@=2\wdz@ - \ifdim\R@c<\dimen@ \R@c=\dimen@ \fi - \ifdim\L@c<\dimen@ \advance\A@-\dimen@ \advance\A@\L@c \L@c=\dimen@ \fi - \advance\A@-.25pt % - \kern\A@\raise\B@\hbox{% - \hbox to\L@c{$\m@th\braceld\leaders\vrule\hfil\braceru$}% - \kern.5pt % - \hbox to\R@c{$\m@th\bracelu\leaders\vrule\hfil\bracerd$}}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} -\DOCMODE) - - The inserted extra |.5pt| at |(1)| is the authours - responsibility\dots - - The vertical ones repeat the above for the vertical brace extension - characters: - -\DOCMODE( -{\catcode`\"=12 % - \global\mathchardef\braceur="338 % - \global\mathchardef\braceul="339 % - \global\mathchardef\bracedr="33A % - \global\mathchardef\bracedl="33B % - \global\mathchardef\bracecl="33C % - \global\mathchardef\bracecr="33D % - \global\mathchardef\bracec="33E } - -\xydef@\lbraced{\xy@@{\setboxz@h{% - \A@=\X@c \advance\A@-\L@c \B@=\Y@c \advance\B@-\D@c - \setboxz@h{$\m@th\bracecl$}\dimen@ii=\dp\z@ \advance\A@-.5\wdz@ - \setboxz@h{$\m@th\bracec$}\dimen@=\dp\z@ - \ifdim\U@c<.5\dimen@ \U@c=.5\dimen@ \fi - \ifdim\D@c<.5\dimen@ \advance\B@-.5\dimen@ \advance\B@\D@c \D@c=.5\dimen@ \fi - \advance\U@c.6\p@ \advance\D@c.6\p@ \advance\B@-.6\p@ - \kern\A@\raise\B@\vbox{\vbox to\U@c{% - \nointerlineskip\hbox{$\m@th\braceur$}% - \kern-.61\dimen@ \cleaders\copy\z@\vfil \kern-.4\dimen@ - \nointerlineskip\hbox{$\m@th\bracecl$}\kern-.5\dimen@ii}% - \nointerlineskip\vbox to\D@c{\kern.5\dimen@ii - \kern-.4\dimen@ \cleaders\copy\z@\vfil \kern-.61\dimen@ - \nointerlineskip\hbox{$\m@th\bracedr$}\kern\z@}}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} - -\xydef@\rbraced{\xy@@{\setboxz@h{% - \A@=\X@c \advance\A@\R@c \B@=\Y@c \advance\B@-\D@c - \setboxz@h{$\m@th\bracecr$}\dimen@ii=\dp\z@ \advance\A@-.5\wdz@ - \setboxz@h{$\m@th\bracec$}\dimen@=\dp\z@ - \ifdim\U@c<.5\dimen@ \U@c=.5\dimen@ \fi - \ifdim\D@c<.5\dimen@ \advance\B@-.5\dimen@ \advance\B@\D@c \D@c=.5\dimen@ \fi - \advance\U@c.6\p@ \advance\D@c.6\p@ \advance\B@-.6\p@ - \kern\A@\raise\B@\vbox{\vbox to\U@c{% - \nointerlineskip\hbox{$\m@th\braceul$}% - \kern-.61\dimen@ \cleaders\copy\z@\vfil \kern-.4\dimen@ - \nointerlineskip\hbox{$\m@th\bracecr$}\kern-.5\dimen@ii}% - \nointerlineskip\vbox to\D@c{\kern.5\dimen@ii - \kern-.4\dimen@ \cleaders\copy\z@\vfil \kern-.61\dimen@ - \nointerlineskip\hbox{$\m@th\bracedl$}\kern\z@}}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} -\DOCMODE) - - An \emph{ad hoc} correction to compensate for the `undershoot' of - top/bottom segments is added at |(1)|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[paren] - - "Parenthesis" are like braces except they have no nib and thus do not - depend on where the reference point of $c$ is. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydefcsname@{frm{(}}{\addtoDrop@@{\lparenthesized}} -\xydefcsname@{frm{)}}{\addtoDrop@@{\rparenthesized}} - -\xydefcsname@{frm{^)}}{\addtoDrop@@{\uparenthesized}} -\xydefcsname@{frm{_)}}{\addtoDrop@@{\dparenthesized}} -\DOCMODE) - - The horizontal ones repeat the braces only without a nib: - -\DOCMODE( -\xydef@\dparenthesized{\xy@@{\setboxz@h{% - \A@=\X@c \advance\A@-\L@c \B@=\Y@c \advance\B@-\D@c - \setboxz@h{$\m@th\bracelu$}\dimen@=2\wdz@ \advance\B@-.5\ht\z@ - \ifdim\R@c<\dimen@ \R@c=\dimen@ \fi - \ifdim\L@c<\dimen@ \advance\A@-\dimen@ \advance\A@\L@c \L@c=\dimen@ \fi - \dimen@=\L@c \advance\dimen@\R@c - \kern\A@\raise\B@\hbox to\dimen@{% - $\m@th\bracelu\leaders\vrule\hfil\braceru$}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} - -\xydef@\uparenthesized{\xy@@{\setboxz@h{% - \A@=\X@c \advance\A@-\L@c \B@=\Y@c \advance\B@\U@c - \setboxz@h{$\m@th\bracelu$}\dimen@=2\wdz@ - \ifdim\R@c<\dimen@ \R@c=\dimen@ \fi - \ifdim\L@c<\dimen@ \advance\A@-\dimen@ \advance\A@\L@c \L@c=\dimen@ \fi - \dimen@=\L@c \advance\dimen@\R@c - \kern\A@\raise\B@\hbox to\dimen@{% - $\m@th\braceld\leaders\vrule\hfil\bracerd$}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} -\DOCMODE) - - The vertical ones are very like braces including the ad hoc - correction. - -\DOCMODE( -\xydef@\lparenthesized{\xy@@{\setboxz@h{% - \A@=\X@c \advance\A@-\L@c \B@=\Y@c \advance\B@-\D@c - \setboxz@h{$\m@th\bracecr$}\dimen@ii=\dp\z@ \advance\A@-.5\wdz@ - \setboxz@h{$\m@th\bracec$}\dimen@=\dp\z@ - \ifdim\U@c<.5\dimen@ \U@c=.5\dimen@ \fi - \ifdim\D@c<.5\dimen@ \advance\B@-.5\dimen@ \advance\B@\D@c \D@c=.5\dimen@ \fi - \advance\U@c.6\p@ \advance\D@c.6\p@ \advance\B@-.6\p@ - \dimen@ii\U@c \advance\dimen@ii\D@c - \kern\A@\raise\B@\vbox to \dimen@ii{% - \nointerlineskip\hbox{$\m@th\braceur$}% - \kern-.61\dimen@ \cleaders\copy\z@\vfil \kern-.61\dimen@ - \nointerlineskip\hbox{$\m@th\bracedr$}\kern\z@}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} - -\xydef@\rparenthesized{\xy@@{\setboxz@h{% - \A@=\X@c \advance\A@\R@c \B@=\Y@c \advance\B@-\D@c - \setboxz@h{$\m@th\bracecr$}\dimen@ii=\dp\z@ \advance\A@-.5\wdz@ - \setboxz@h{$\m@th\bracec$}\dimen@=\dp\z@ - \ifdim\U@c<.5\dimen@ \U@c=.5\dimen@ \fi - \ifdim\D@c<.5\dimen@ \advance\B@-.5\dimen@ \advance\B@\D@c \D@c=.5\dimen@ \fi - \advance\U@c.6\p@ \advance\D@c.6\p@ \advance\B@-.6\p@ - \dimen@ii\U@c \advance\dimen@ii\D@c - \kern\A@\raise\B@\vbox to \dimen@ii{% - \nointerlineskip\hbox{$\m@th\braceul$}% - \kern-.61\dimen@ \cleaders\copy\z@\vfil \kern-.61\dimen@ - \nointerlineskip\hbox{$\m@th\bracedl$}\kern\z@}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notescontd} - - \BUG: The brackets above require that the computer modern |cmex| font - is loaded in \TeX\ font position~3. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Filled regions} - - In addition to the above there is a special frame that ``fills'' the - inside of the current object with ink: ??c![\frm{*}] and - ??c![\frm{**}]; the latter is intended for \emph{emphasizing\/} and - thus ``strokes'' the outline, using the thinnest black line available - on the printer or output device; furthermore it moits the actual - filling in case this would obscure further text typeset on top. - Some alteration to the shape is possible, using |*\frm<dimen>{*}|. - Hence rectangular, oval, circular and elliptical shapes can be - specified for filling. - The following examples illustrate this in each case: -% -\begin{center} -\def\X[#1]#2{\relax\xy*=<2em>{}*=<3em,1.4em>[#1][F.]{}#2\endxy}% -\begin{tabular}{cccc} -\hline - \strut<object> & |\frm{*}| & |\frm{**}| & |\frm<6pt>{*}| \\ -\hline - \X[]{} & \X[]{*\frm{*}} & \X[]{*\frm{**}} & \X[]{*\frm<6pt>{*}} \\ - \X[o]{} & \X[o]{*\frm{*}} & \X[o]{*\frm{**}} & \X[o]{*\frm<6pt>{*}} \\ -\hline -\end{tabular} -\end{center} -% - However, filling non-rectangular shapes will result in a rectangle - unless a driver is used that supports arbitrary filling. With some - drivers the above fills will thus all be identical, as rectangular. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -When the previous <object> has |\rectangleEdge| then the shape is either -oval or rectangular, depending on whether a <dimen> has been specified, -using the <dimen> as radius for the corners, but not exceeding half the -shorter side-length. - -When the current <object> has |\circleEdge| then the region is elliptical, -using the extents |R+L| and |U+D| as the major/minor axes, or circular -if a <dimen> is specified. The <dimen> will become the radius after reducing -to a maximum of half the longest side of the enclosing rectangle. -With |\zeroEdge| presume rectangular, or circular if a <dimen> is supplied. - -The default for |\frm{**}| is to just make a plain frame. - -\DOCMODE( -\xydefcsname@{frm{*}}{% - \expandafter\frmDrop@\expandafter{% - \expandafter\def\expandafter\prevEdge@@\expandafter{\prevEdge@@}% - \frame@fill@@\frmradius@@}} - -\xydefcsname@{frm{**}}{% - \expandafter\frmDrop@\expandafter{% - \expandafter\def\expandafter\prevEdge@@\expandafter{\prevEdge@@}% - \frame@emph@@\frmradius@@}} - -\xydef@\frame@fill@#1{\filled@{#1}\empty} -\xydef@\frame@emph@#1{\framed@\frmradius@@} - -\xylet@\frame@fill@@=\frame@fill@ -\xylet@\frame@emph@@=\frame@emph@ - -\xydef@\filled@#1{\R@=#1\relax - \expandafter\DNii@\expandafter{\prevEdge@@}% - \DN@{\rectangleEdge}\ifx\next@\prevEdge@@ - \ifdim\R@=\z@ \DN@{\filled@Rectangle@}% - \else \DN@{\filled@Oval@}\fi - \else \DN@{\circleEdge}\ifx\next@\prevEdge@@ - \ifdim\R@=\z@ \DN@{\filled@Ellipse@}% - \else \DN@{\restR@max\filled@Circle@}\fi - \else - \ifdim\R@=\z@ \DN@{\filled@Rectangle@}% - \else \DN@{\filled@Circle@}\fi - \fi\fi \next@} - -\xydef@\restR@max{% - \dimen@=\L@c\advance\dimen@\R@c - \dimen@ii=\U@c \advance\dimen@ii\D@c - \ifdim\dimen@ii>\dimen@ \dimen@=\dimen@ii\fi - \ifdim\dimen@>\z@ \divide\dimen@\tw@ - \ifdim\R@>\dimen@\R@=\dimen@\fi\fi } -\DOCMODE) - -The default implementation uses only |\bblacked@|, in all cases. -The distinction between |\frm{*}| and |\frm{**}| can be ignored. - -\DOCMODE( -\xylet@\filledRectangle@@=\bblacked@ -\xylet@\filledCircle@@=\bblacked@ -\xylet@\filledEllipse@@=\bblacked@ -\xylet@\filledOval@@=\bblacked@ -\DOCMODE) - -Alternative implementations may use these, in which the parameter |#1| -is the contents of a |\vbox| filling to the height, depth and width -of the region to be filled. - -\DOCMODE( -\xydef@\filled@Region@#1#2{\setboxz@h\bgroup - \setboxz@h{\vbox{#1#2\empty}}% - \A@=\X@c \advance\A@-.5\wd\z@ - \B@=\Y@c \advance\B@-.5\ht\z@ \advance\B@.5\dp\z@ - \edef\tmp@{\egroup\dimen@=\the\wdz@}% - \kern\A@ \raise\B@\boxz@ \kern-\A@ - \tmp@ \divide\dimen@\tw@ \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \styledboxz@} - -\xydef@\filled@Rectangle@{\filled@Region@\filledRectangle@@} -\xydef@\filled@Oval@{\filled@Region@\filledOval@@} -\xydef@\filled@Circle@{\filled@Region@\filledCircle@@} -\xydef@\filled@Ellipse@{\filled@Region@\filledEllipse@@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Framing as object modifier} -??=[modifier] -% - In addition, frames may be accessed using the special |[F|<frame>|]| - object modifier <shape>s that will add the desired <frame> to the - current object. The frame appropriate to the edge of the object - will be chosen (presently either rectangular or elliptical). - - If shape modifiers need to be applied to the <frame> alone then they - can be included using |:| as separator. Thus |[F-:red]| will make a - red frame (provided the color extension is active, of course). - Additionally the variant of frames using |<|<dimen>|>| can be - accessed by specifying |[|\dots|:<|<dimen>|>]|. - -\DOCMODE( -\xydefcsname@{shape [F...]}#1{\xyFN@\Fshape@#1:@} - -\xylet@\whichframe@@=\empty -\xylet@\whichoptions@@=\empty - -\xydef@\Fshape@#1:{\def\whichframe@@{{#1}}% - \DN@{{}}\ifx\whichframe@@\next@ \def\whichframe@@{{-}}\fi - \expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\circleEdge}\ifx\next@\nextii@ - \DN@##1{\def\whichframe@@{[o]##1}}% - \expandafter\next@\expandafter{\whichframe@@}\fi - \let\whichoptions@@=\empty \xyFN@\Fshape@i} - -\xydef@\Fshape@i{% - \ifx @\next \let\next@=\Fshape@x - \else\addLT@\ifx\next \let\next@=\Fshape@iii - \else \let\next@=\Fshape@ii \fi\fi \next@} - -\xydef@\Fshape@ii#1:{% - \expandafter\def\expandafter\whichoptions@@\expandafter{\whichoptions@@[#1]}% - \xyFN@\Fshape@i} - -\xydef@\Fshape@iii#1:{\DN@##1{\def\whichframe@@{#1##1}}% - \expandafter\next@\expandafter{\whichframe@@}\xyFN@\Fshape@i} - -\xydef@\Fshape@x @{% - \edef\next@##1{\noexpand\addbeforeDrop@@{{\EdgefromtheEdge@##1}}}% - \DNii@##1##2{\next@{\saveframestyles@{\setbox\z@=\object##2\frm##1% - \xypre@Style@@\Drop@@\xypost@Style@@\restoreframestyles@}}}% - \expandafter\expandafter\expandafter\nextii@ - \expandafter\expandafter\expandafter{% - \expandafter\whichframe@@\expandafter}\expandafter{\whichoptions@@}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The following are used to ensure that the current styles, after - typesetting, are those of the <object>, rather than the <frame>. - -\DOCMODE( -\xydef@\saveframestyles@{% - \edef\afterframe@preStyle@{\preXY@style@}% - \edef\afterframe@postStyle@{\postXY@style@}} - -\xydef@\restoreframestyles@{% - \xdef\preXY@style@{\afterframe@preStyle@}\def\afterframe@preStyle@{}% - \xdef\postXY@style@{\afterframe@postStyle@}\def\afterframe@postStyle@{}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Here are some simple examples using this feature. -% -\begin{code} -\xy *+<1.5pt>[F**:white]++[F**:red] -\txt{text with background} -,+!D+/d1pc/,*++[F**:black][white] -\txt\bf{bold white on black}\endxy -\end{code} -$$\docode$$ -\displaycode -Notice that when multiple frame-modifiers are used, the frames -are actually placed in reverse order, so that earlier ones -are printed on top of later ones. - - \TODO: The frame option is not quite complete yet: some new frames - and several new brackets should be added. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Using curves for frames} -??=[curved frames] -% - If the curve option is loaded, then circular and elliptical frames of - arbitrary radius can be constructed, by specifying |\UseCurvedFrames|. - This can be negated by |\UseFontFrames|. Both of these commands obey - normal \TeX\ grouping. Furthermore, dotted and dashed frames now have - a regular spacing of their constituent objects. The usual warnings - about memory requirements for large numbers of curves apply here also. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Use the |\xycircle| setup in |xycurve.doc| to implement circular -and elliptical frames. - -\DOCMODE( -\xydef@\xycircleframe@x@{\L@=\R@ \xycircleframe@x@i}% -\xydef@\xyellipseframe@x@#1#2{\R@=#1\relax \L@=#2\relax \xycircleframe@x@i} - -\xydef@\xycircleframe@x@i{% - \ifx\framehfill\frm@solidh@@\def\circleSTYLE@{}% - \else\ifx\framehfill\frm@doth@@ - \expandafter\def\expandafter\circleSTYLE@\expandafter{\addDOT@{}}% - \else\ifx\framehfill\frm@dashh@@ - \expandafter\expandafter\expandafter\def\expandafter\expandafter - \expandafter\circleSTYLE@\expandafter\expandafter\expandafter - {\expandafter\addDASH@\addDASH@{}}% - \fi\fi\fi \xycircleframe@x@x } - -\xydef@\xycircleframe@x@x{\hbox{\vbox{\vskip\L@ - \hbox to2\R@{\hfill \buildcircle@ \hfill}\vskip\L@ }}} - -\xydef@\UseCurveFrames@{% - \let\circled@x@@=\xycircleframe@x@ - \let\ellipsed@x@@=\xyellipseframe@x@ } -\def\UseCurveFrames{\xywithoption{curve}{\UseCurveframes@}}% - -\xydef@\UseFontFrames@{% - \let\circled@x@@=\circled@x@ - \let\ellipsed@x@@=\ellipsed@x@ } -\xylet@\UseFontFrames=\UseFontFrames@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Finally, the frame extension is added to the <driver> system: - -\DOCMODE( -\xydef@\UnloadFrames@{% - \let\framed@body@@=\framed@body@ - \let\circled@x@@=\circled@x@ - \let\ellipsed@x@@=\ellipsed@x@ - \let\frame@fill@@=\frame@fill@ - \let\frame@emph@@=\frame@emph@ - \let\filledRectangle@@=\bblacked@ - \let\filledCircle@@=\bblacked@ - \let\filledEllipse@@=\bblacked@ - \let\filledOval@@=\bblacked@ -} - -\xyaddunsupport{frame}\UnloadFrames@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection*{End \& log} - -\DOCMODE( -\xyendinput - -% $Log: xyframe.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.6 1998/03/06 01:28:05 krisrose -% Releasing (with Y&Y fonts). -% -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/05 22:11:03 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% NEW for version 2.7 based on frame code in xypic.doc 2.6.1.1. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs how we are formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% TeX-parse-self:nil -% LaTeX-indent-level:1 -% TeX-brace-indent-level:1 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xygraph.doc b/Master/texmf-dist/source/generic/xypic/xygraph.doc deleted file mode 100644 index 718d12a2182..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xygraph.doc +++ /dev/null @@ -1,710 +0,0 @@ -%% $Id: xygraph.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Graph Combinator feature'' option. -%% Copyright (c) 1994-1997 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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@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{graph}{Graph feature}{\stripRCS$Revision: 3.7 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This option implements `\Xy-graph', a special "combinatoric drawing - language" suitable for diagrams like flow charts, directed graphs, - and various forms of trees. The base of the language is reminiscent - of the PIC~\cite{K82:PIC-LTG} language because it uses a notion of - the `current location' and is based on `moves'. But the central - construction is a `map' combinator that is borrowed from functional - programming. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - \Xy-graph makes use of facilities of the `arrow' feature option of - \S??g[:arrow], which is therefore required. - -\DOCMODE( -\xyrequire{arrow}\xycatcodes -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Figure~??[f.graph] summarises the syntax of a <graph> with notes - below. A <graph> can appear either in an \Xy-picture (as <decor>) or - ``stand-alone''.\footnote{In fact \LaTeX\ users can use a |graph| - environment.} \NOTE: If you use ??c![\xygraph]|{|\dots|}| inside - constructions where |&| is significant (like plain \TeX's - ??c![\halign] or \LaTeX's ??c![array] environment) then make sure to - add an extra level of braces around it. - -\begin{figure*}[tb] -\begin{syntax} -% - \multispan{3}{{\tt\string\xygraph\string{<graph>\string}}\hfil} - & typeset <graph> -\cr -\noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} -% - ??w![<graph>] - &\iss & <step>\star - & interpret <step>s in sequence -\cr -\noalign{\smallskip} - ??w![<step>] - &\iss & <node> - & ??!^[move] to the <node> -\cr - &\orr & |-|<arrow> <node> <labels> - & ??!^[draw] line to <node>, with <labels> -\cr - &\orr & |:|<arrow> <node> <labels> - & ??!^[draw] <arrow> to <node>, with <labels> -\cr - &\orr & |(| <list> |)| - & ??!^[map] current node over <list> -\cr -\noalign{\smallskip} -% - ??w![<node>] - &\iss & |[| <move> |]| - & new node <move>d relative to current -\cr - &\orr & |&| \orr\ |\\| - & new node in ??!^[next column/row] -\cr - &\orr & |"|<id>|"| - & previously ??!^[saved] node -\cr - &\orr & |?| - & currently ??!^[mapped] node -\cr - &\orr & <node> <it> - & <node> with <it> ??!^[typeset and saved] there -\cr - &\orr & <node> |=| |"|<id>|"| - & <node> ??!^[saved] as |"|<id>|"| -\cr - &\orr & <node> |!| <escape> - & augment node with material in another mode -\cr -\noalign{\smallskip} -% - ??w![<move>] - &\iss & <hop>\star\ - & ??!^[<hop>s] (|dulr|) from current node -\cr - &\orr & <hop>\star\ <place> <move> - & do ??!^[<hop>s] but use its <place> and <move> again -\cr -\noalign{\smallskip} -% - ??w![<list>] - &\iss & <graph> |,| <list> \orr\ <graph> - & ??!^[list of subgraphs] -\cr -\noalign{\smallskip} -% - ??w![<escape>] - &\iss & |{| <pos> <decor> |}| - & ??!^[perform <pos> <decor>] -\cr - &\orr & |M| <matrix> - & ??!^[insert <matrix>] -\cr - &\orr & |P| <polygon> - & ??!^[insert <polygon>] -\cr - &\orr & |E| <ellipse> - & ??!^[insert <ellipse>] -\cr - &\orr & |~| <setup> - & ??!^[setup parameters] -\cr -\end{syntax} -\caption{\protect<graph>s}??=[f.graph] -\end{figure*} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Parsing:} - - The parser does almost everything that this feature does because it - is all implemented directly on top of other constructions, notably - the kernel stack and the <arrow> construction. - - The graph state always has the current value of |?| both as the - stacktop and in the special <id> |"?NODE"|. - -\DOCMODE( -\xydef@\xygraph#1{\relax\graph#1\endgraph} - -\xydef@\graph{\if\inxy@ \DN@{\xy@@{\nter@{}}}% - \else \DN@{\xy \xy@\xy{\nter@\endxy}}\fi \next@ - \xy@\xygraph{\senter@ \idfromc@{?NODE}\spushc@ - \expandafter\let\expandafter\next@\csname Q@graphbase\endcsname - \ifx\next@\relax \setbase@\z@\z@{3pc}\z@ - \else \expandafter\next@ \fi}% - \GRAPH[]} - -\xydef@\endgraph{\ignorespaces} - -\xydef@\GRAPH{\xyFN@\GRAPH@} - -\xydef@\GRAPH@{% -% -%\W@{GRAPH: next=\meaning\next}% -% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\GRAPH@}% - \else\ifx :\next \DN@:{\xy@:{}\expandafter\GRAPHar@\GRAPHeveryarrow@@}% - \else\addDASH@\ifx\next - \addDASH@\DN@{\xy@-{}\expandafter\GRAPHar@\GRAPHeveryline@@}% - \else\ifx (\next - \DN@({\xy@({\spushid@{?NODE}\idfromc@{?NODE}}\xyFN@\GRAPH@}% - \else\ifx ,\next - \DN@,{\xy@,{\cfromid@{?NODE}}\xyFN@\GRAPH@}% - \else\ifx )\next - \DN@){\xy@){\cfromid@{?NODE}% - \tests@\z@{\idfroms@{?NODE}\z@ \spop@}{\xyerror@{) without (}{}}}% - \xyFN@\GRAPH@}% - % HACK: ONLY POP WHEN NONEMPTY...WHY EVER NONEMPTY? - \else\ifx \endgraph\next \DN@{\xy@@{\tests@\z@\spop@\sleave@\leave@}}% - \else\ifx \end\next \DN@{\xy@@{\tests@\z@\spop@\sleave@\leave@}}% - \else\ifx ~\next - \DN@~{\xy@@{\enter@\cfromthec@}\afterNODE{\leave@ \xyFN@\GRAPH@}!}% - \else \DN@{\afterNODE{\xyFN@\GRAPH@}}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xylet@\GRAPHsaved@PATHafterPOS=\PATHafterPOS -\xylet@\GRAPHsaved@afterar@@=\afterar@@ - -\xydef@\GRAPHar@{% - \let\PATHafterPOS=\afterNODE \let\afterar@@=\GRAPHafterar@ \ar} - -\xydef@\GRAPHafterar@{% - \let\PATHafterPOS=\GRAPHsaved@PATHafterPOS - \let\afterar@@=\GRAPHsaved@afterar@@ - \xy@@{\cfromid@{}}\xyFN@\GRAPH@} - -\xylet@\afterNODE@@=\empty - -\xydef@\afterNODE#1{\xy@@{\enter@\pfromthep@}% - \DN@##1{\def\afterNODE@@{\xy@@\leave@ \def\afterNODE@@{##1}#1}}% - \expandafter\next@\expandafter{\afterNODE@@}% - \xyFN@\NODE@} - -\xylet@\theMOVE@@=\relax - -\xydef@\NODE@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\NODE@}% - \else\ifx [\next \DN@[##1]{\xy@{[##1]}{}% - \def\theMOVE@@{[##1]}\xyFN@\MOVE@##1]}% - \else\ifx "\next \DN@ "##1"{% - \xy@{"##1"}{\cfromid@{##1}}\def\theMOVE@@{"##1"}\xyFN@\NODE@i}% - \else\ifx ?\next \DN@ ?{% - \xy@?{\cfromid@{?NODE}}\def\theMOVE@@{?}\xyFN@\NODE@i}% - \else\ifx !\next \def\theMOVE@@{[]}\let\next@=\NODE@i - \else \testAND@\iffalse - \DN@##1{\xy@{}{\pfromc@ \advance\X@c\X@xbase \advance\Y@c\Y@xbase - \czeroEdge@}\jumpMOVE@ \xyFN@\NODE@i}% - \else\ifx \\\next - \DN@\\{\xy@\\{\pfromc@ \advance\X@c\X@xbase \advance\Y@c\Y@xbase - \R@c=\X@ybase \U@c=\Y@ybase \intersect@ - \advance\X@c-\X@ybase \advance\Y@c-\Y@ybase - \czeroEdge@}\def\theMOVE@@{\\}\xyFN@\NODE@i}% - \else \xyerror@{Illegal <node>: \string`\meaning\next\string' unexpected}{}% - \fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\jumpMOVE@@{&} -\xydef@\jumpMOVE@{\let\theMOVE@@=\jumpMOVE@@} - -\xydef@\MOVE@{\xy@@{\count@=\z@ \count@@=\z@}% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\MOVE@}% - \else\ifcat A\noexpand\next \let\next@=\MOVE@letter - \else \let\next@=\MOVE@x \fi\fi \next@} - -\xydef@\MOVE@letter{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\MOVE@letter}% - \else\ifx u\next \DN@ u{\xy@@{\advance\count@\@ne}\xyFN@\MOVE@letter}% - \else\ifx d\next \DN@ d{\xy@@{\advance\count@\m@ne}\xyFN@\MOVE@letter}% - \else\ifx l\next \DN@ l{\xy@@{\advance\count@@\m@ne}\xyFN@\MOVE@letter}% - \else\ifx r\next \DN@ r{\xy@@{\advance\count@@\@ne}\xyFN@\MOVE@letter}% - \else \let\next@=\MOVE@x \fi\fi\fi\fi\fi \next@} - -\xydef@\MOVE@x{%[[ - \ifx ]\next \DN@ ]{\MOVE@hop \xyFN@\NODE@i}% - \else\ifx (\next \DN@{\MOVE@hop \xyFN@\MOVE@place}%) - \else\ifx !\next \DN@{\MOVE@hop \xyFN@\MOVE@place}% - \else\ifx /\next \DN@{\MOVE@hop \xyFN@\MOVE@place}% - \else\addLT@\ifx\next \DN@{\MOVE@hop \xyFN@\MOVE@place}% - \else\addGT@\ifx\next \DN@{\MOVE@hop \xyFN@\MOVE@place}% - \else\addDASH@\ifx\next \addDASH@\DN@{\xyerror@{- not implemented yet}{}}% - \else \xyerror@{illegal <move>: \codeof\theMOVE@@}{}\let\next@=\NODE@i - \fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\MOVE@hop{\xy@@{\pfromc@ \czeroEdge@ - \edef\next@{\the\count@@,\the\count@ @}\expandafter\vfromcartesian@@\next@ - \advance\X@c-\X@origin \advance\Y@c-\Y@origin - \advance\X@c\X@p \advance\Y@c\Y@p}} - -\xydef@\MOVE@place{\xy@@\no@@ \afterPLACE{\xyFN@\MOVE@}} - -\xydef@\NODE@i{\let\next@=\NODE@x -% -%\W@{NODE@i: next=\meaning\next}% -% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\NODE@i}% - \else\addEQ@\ifx \next - \addEQ@\DN@"##1"{\xy@{="##1"}{\idfromc@{##1}}\xyFN@\NODE@i}% - \else\ifx !\next \DN@!{\xyFN@\NODE@escape}% - \else\ifx :\next - \else\addDASH@\ifx\next - \else\ifx (\next - \else\ifx ,\next - \else\ifx )\next - \else\ifx ~\next - \else\ifx [\next - \else\ifx "\next - \else\ifx ?\next -% - \else\ifx ^\next - \else\ifx _\next - \else\ifx |\next - \else\addLQ@\ifx\next - \else\addRQ@\ifx\next -% - \else \testAND@ \iffalse - \else\ifx \\\next -% - \else\ifx \endgraph\next - \else\ifx \end\next -% - \else \let\next@=\NODE@it - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\NODE@x{\xy@@{\idfromc@{}}\afterNODE@@} - -\xydef@\NODE@it{\let\PATHlabelit@@=\NODEit@ \PATHit@} - -{\xyuncatcodes \gdef\next{+}} -\xylet@\GRAPHnodemodifiers@@=\next - -\xydef@\NODEit@#1{% - \DN@{#1}\ifx\next@\empty - \DN@{\expandafter\NODEit@i\expandafter{\GRAPHnodemodifiers@@}}% - \else \DN@{\NODEit@i{#1}}\fi \next@} - -\def\NODEit@i#1#2{\xy@{*#1{#2}}{\drop@{#1}{#2}}% - \DN@{\addEQ@\ifx\next\else \xy@@{\idfromc@{#2}}\fi \NODE@i}% - \xyFN@\next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{notes} -% -\note??=[move] -% - A "move" is to establish a new "current node". - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[draw] -% - To "draw" something is simply to draw a line or the specified <arrow> - from the current node to the specified target node. The target then - becomes the current node. All the features of arrows as described - in~\S??g[:arrow] can be used, in particular arrows can be labelled and - segmented, but with the change that <path-pos> means <node> as - explained in note~\S??g[xyarrow.doc:segment]. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[map]??=[mapped]??=[list of subgraphs] -% - To "map over a list" is simply to save the current node and then - interpret the <list> with the following convention: -% -\begin{itemize} -\item Start each element of the list with the current node as saved and $p$ - as the previous list element, and -\item let the |?| <node> refer to the saved current node explicitly. -\end{itemize} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[next column/row] -% - The |&| and |\\| special moves are included to make it simple to enter - `matrix-like' things as graphs -- note that they will not be - automatically aligned, however, for that you should use the |!M| - escape. - - |&| is the same as |[r]| and |\\| is the same as - |[r]!{y+(0,-1)-(0,0)}| which uses a kernel escape to moves to the - first column in the next row (where the first column is on the - $y$-axis of the current coordinate system). - - \NOTE: If you use the form |*{|\dots|}| for nodes then you don't - have to change them if you decide to use an \Xy-matrix. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[typeset and saved]??=[saved] -% - Typeset <it> and make it the current node. Also saves <it> for later - reference using |"|<id>|"|: if <it> is a simple letter, or digit, - then just as |"|<it>|"|; if <it> is of the form - |{|"text"|}| or |*|\dots|{|"text"|}| then as |"|"text"|"|. - - With the |=| addition it is possible to save explicitly in case - several nodes have the same text or a node has a text that it is - impractical to use for reference. In fact using the form - <it>|="|<id>|"| will "only" save the node as |"|<id>|"| and "not" as - |"|<it>|"|! As a special convenience |""| (thus the empty <id>) - always refers to the last completed node, so adding |=""| after a - node merely means it should "not" be saved under its proper name. - -\begin{exercise} - How did the author typeset this? -% -\begin{code} -\xygraph{ - []A="A1" :@/^/ [r]A - :@/^/ [r]A - :@/^/ "A1" } -\end{code} -$$\docode$$ -% -\answercode -\answertext{The first $A$ was named to allow reference from the last: - \displaycode} -\end{exercise} - -\note??=[<hop>s] -% - Moving by a series of "hops" is simply moving in a grid as the - sequence of |dulr| (for down/up/left/right) indicates. The grid is a - standard cartesian coordinate system with 3pc unit unless the current - base is redefined using |[]!{|\dots|}| with an appropriate <pos>ition - containing |:| and |::| as described in note~??g[xy.doc:base]. - - \TODO: Describe the use of <move>s with <place>s in detail \dots\ in - particular (1)~`until perpendicular to \dots' and (2)~`until - intercepts with \dots' can be coded\dots - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[perform <pos> <decor>] -% - This `escapes' into the \Xy-pic kernel language and interprets the - <pos> <decor>. The current node is then set to the resulting $c$ - object and the grid from the resulting "base". - - The effect of the <pos> <decor> can be completely hidden from - \Xy-graph by entering it as |{\save| <pos> <decor> |\restore}|. - -\DOCMODE( -\xydef@\NODE@escape{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\NODE@escape}% - \else\ifcat A\noexpand\next \DN@##1{\rungraphescape@{##1}}% - \else\ifcat !\noexpand\next \DN@##1{\rungraphescape@{##1}}% - \else\ifx \bgroup\next \DN@##1{\xy@{!{##1}}{}\POS##1\relax \xyFN@\NODE@i}% - \else\ifx ~\next \let\next@=\graphsetup@ - \else \DN@{\xyerror@{Unknown graph <escape>}{}\xyFN@\NODE@i}% - \fi\fi\fi\fi\fi \next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[insert <matrix>] -% - It is possible to insert a <matrix> in a graph provided the `matrix' - option described in~\S??g[:matrix] has been loaded: it overwrites the - node with the result of |\xymatrix|<matrix>. Afterwards the graph - grid is set as the top left `square' of the matrix, \ie, with |[d]| - and |[r]| adjusted as they work in the top left entry. - - \BUG: |[dr]| immediately after the matrix will work as expected, \eg, - make the center of |"2,2"| the current node, but others might not, \eg, - |[rr]| will not necessarily place the current node on top of |"1,3"|. - -\DOCMODE( -\xydefcsname@{graph !M}#1#{\NODE@matrix{#1}} - -\xydef@\NODE@matrix#1#2{\xyerror@{matrix feature not loaded}{}\xyFN@\GRAPH@} - -\xydef@\NODE@matrix@#1#2{\xy@{!M#1{#2}}{}% - \def\everyentry@{\GRAPHeveryentry}% - \xymatrix#1{#2}% - \let\everyentry@=\empty \insertmatrixingraph@ \xyFN@\NODE@i} - -\xydef@\GRAPHeveryentry{\def\:{\ar}\def\="##1"{\xy@@{\idfromc@{##1}}}} - -\xywithoption{matrix}{\let\NODE@matrix=\NODE@matrix@} - -\xydef@\insertmatrixingraph@{% - \xy@@{\enter@{\cfromthec@ \pfromthep@}% - \expandafter\let\expandafter\next@\csname Q@1,1\endcsname - \ifx\next@\relax\else - \next@ \swap@ - \expandafter\let\expandafter\next@\csname Q@1,2\endcsname - \ifx\next@\relax\else \next@ \setbase@\X@p\Y@p\X@c\Y@c - \expandafter\let\expandafter\next@\csname Q@2,1\endcsname - \ifx\next@\relax\else - \next@ \setbase@@{-\X@c}{-\Y@c}\fi\fi\fi - \leave@}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[insert <polygon>]??=[insert <ellipse>] -% - It is possible to insert a <polygon> or an <ellipse> in a graph - provided the |poly| option described in~\S??g[:poly] or the |arc| - option described in~\S??g[:arc] has been loaded, respectively: - it will have $c$ as the current node, $p$ as the previous one, and - the the current base has the <hop>s |[r]| and |[u]| as base vectors. - - \NOTE: lattices, knots, \etc, can also be used but no special syntax - is useful since the |!{|\dots|}| syntax is adequate. - -\DOCMODE( -\xydefcsname@{graph !P}#1#{\NODE@poly{#1}} -\xydef@\NODE@poly#1#2{\xyerror@{poly(gon) feature not loaded}{}\xyFN@\GRAPH@} -\xydef@\NODE@poly@#1#2{\xy@{!P#1{#2}}{}\xypoly@#1{#2}\xyFN@\NODE@i} -\xywithoption{poly}{\let\NODE@poly=\NODE@poly@} - -\xydefcsname@{graph !E}#1#{\NODE@arc{#1}!} -\xydef@\NODE@arc#1#2{\xyerror@{(ellipse+)arc feature not loaded}{}% - \xyFN@\GRAPH@} -\xydef@\NODE@arc@#1#2{\xy@{!E#1{#2}}{}\ellipse#1{#2}\xyFN@\NODE@i} -\xywithoption{arc}{\let\NODE@arc=\NODE@arc@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[setup parameters] -% - This allows setting of some parameters of the graph: |!~|<setup> - should be one of the following: -% -\begin{defs} -% - |!~:{| <arrow> |}| & include with every |:| arrow \cr - |!~-{| <arrow> |}| & include with every |-| line \cr - |!~*{| <modifiers> |}| & include with every non-|*| node \cr - |!~|<letter>|{| <graph> |}| & define new graph escape |!|<letter> -% -\end{defs} -\noindent\unskip -% - These are destructive: the previous value is lost; the default is - established by the sequence |!~:{}| |!~-{@{-}}| |!~*{+}| making |:| - create simple arrows, |-| plain lines, and formatting default nodes - in math mode with the default objectmargin. - -\DOCMODE( -\xylet@\GRAPHeveryarrow@@=\empty - -{\xyuncatcodes \gdef\next{@{-}}} -\xylet@\GRAPHeveryline@@=\next - -\xydef@\graphsetup@~{\xyFN@\graphsetup@i} - -\xydef@\graphsetup@i{% - \ifx :\next \DN@:##1{\def\GRAPHeveryarrow@@{##1}\xyFN@\NODE@i}% - \else\addDASH@\ifx\next - \addDASH@\DN@##1{\def\GRAPHeveryline@@{##1}\xyFN@\NODE@i}% - \else\ifx *\next \DN@*##1{\def\GRAPHnodemodifiers@@{##1}\xyFN@\NODE@i}% - \else\ifcat A\next \DN@##1##2{\newgraphescape{##1}{##2}\xyFN@\NODE@i}% - \else \DN@{\xyerror@{illegal graph setup \codeof\next@}{}\xyFN@\NODE@i}% - \fi\fi\fi\fi \next@} -\DOCMODE) - - The last possibility is also available as a command -% -\begin{defs1} -% - ??c![\newgraphescape]|{|<letter>|}{|<graph>|}| \cr -% -\end{defs1} -\noindent\unskip -% - that makes the specified escape generate the <graph> as a macro; with - it it is possible to pass arguments to the <graph> using the standard - \TeX\ |\def| method: The declaration code -% -\begin{code} -\newgraphescape{i}#1#2{ - []!{+0="o#2"*=<10pt>{};p!#1**{},"o#2" - -/4pt/*!E\cir<2pt>{} - +0;p-/:a(-30)24pt/**\dir{-}="X2" - ;p-/:a(-60)24pt/="X1"**\dir{-} - ;?(.5),="i#2", - p-/:a(-60)24pt/**\dir{-}, - "o#2"."i#2"."X1"."X2"}} -\end{code} -{\gdocode}% -\displaycode\noindent -% - is (rather complicated kernel code) that makes the node escape - |!i|$dn$ typeset an `inverter' oriented with the $d$ corner as the - output with input named |"i|$n$|"| and output named |"o|$n$|"| such - that the graph -% -\begin{code} -\xygraph{ []!iR1 ("i1"[l]x - "i1") - [r]z } -\end{code} -\displaycode\noindent -% - will typeset -$$ -\docode -$$ - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The ??c![\newgraphescape]<letter> declaration defines a macro with - name |\graph !|<letter>. It is slightly complicated by the fact that - we accept \LaTeX-style |[n]| arguments (when using \LaTeX, that - is~\smiley). Thus an internal macro named |\G!|<letter> is defined - using the appropriate command definition primitve; this is in turn - invoked by |\graph !|<letter> after activating the <graph> parser. - -\DOCMODE( -\xydef@\newgraphescape#1{% - \expandafter\let\expandafter\next\csname graph !#1\endcsname - \ifx\next\relax\else \expandafter\let\csname G!#1\endcsname=\undefined - \xywarning@{Redefining graph <escape> !#1}\fi - \expandafter\gdef\csname graph !#1\endcsname{% - \expandafter\let\expandafter\next\csname G!#1\endcsname - \expandafter\xyFN@\expandafter\NODE@\next}% - \DN@{\newgraphescape@{#1}}\xyFN@\next@} - -\xydef@\newgraphescape@#1{% - \ifx [\next %] - \ifx\newcommand\undefined \xyerror@{[n] only with LaTeX}% - \else - \def\nextiv@{\expandafter\newcommand\expandafter{\csname G!#1\endcsname}}\fi - \else \def\nextiv@{\expandafter\gdef\csname G!#1\endcsname}\fi \nextiv@} - -\xydef@\rungraphescape@#1{% - \expandafter\let\expandafter\next\csname graph !#1\endcsname - \ifx\next\relax \xyerror@{Undefined graph <escape> !#1}\fi \next} -\DOCMODE) - -%\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%\note??=[use <prefix>] -%% -% This will setup a <prefix> such that all the entries of the graph -% will get that prefix. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The final exercise illustrates much of the above. - -\begin{exercise} -% - Typeset -% -\begin{displaymath} -\begin{code} -\SelectTips{cm}{} -\objectmargin={1pt} -\xygraph{ !{0;(.77,-.77):0} - !~:{@{-}|@{>}} - w (:[r(.6)]{x_1} - ,:[d]z:[r]y:[u(.6)]{x_2}:"x_1":"z" - :@( {"w";"z"}, {"y";"z"})"z":"x_2") } -\end{code} -\docode -\end{displaymath} -% -\answercode -\answertext{The author did\displaycode It also shows that one \emph{can} use - |{}|s inside delimited arguments \emph{provided} one adds a space to - avoid the |{}|s being shaved off!} -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection*{End \& log} - -\DOCMODE( -\xyendinput - -% $Log: xygraph.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.6 1998/03/06 01:28:05 krisrose -% Releasing (with Y&Y fonts). -% -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% New for v3... -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs how we are formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% LaTeX-indent-level:1 -% TeX-brace-indent-level:1 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyguide.man b/Master/texmf-dist/source/generic/xypic/xyguide.man deleted file mode 100644 index fa96c7b5c6c..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyguide.man +++ /dev/null @@ -1,2285 +0,0 @@ -%% $Id: xyguide.man,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -%% -%% ``Xy-pic User's Guide''. -%% -%% 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. - -\documentclass{article} -%begin{latexonly} -\usepackage{xydoc} -%end{latexonly} -\begin{htmlonly} -\usepackage{xyhtmldoc} -\end{htmlonly} -\input{version} -\CompilePrefix{xygui-} -\makeindex -\begin{document} - -\title{ \Xy-pic User's Guide } -\author{ Kristoffer H. Rose\quad<krisrose@ens-lyon.fr>\thanks{% - Laboratoire de l'Informatique du Parall\'elisme, - Ecole Normale Sup\'erieure de Lyon; - 46, All\'ee d'Italie; F--69364 Lyon 7, France.}} -\date{Version \xyversion, \printdate{\xydate}} -\maketitle - -\begin{abstract} -% - \Xy-pic is a package for typesetting graphs and diagrams using - Knuth's \TeX\ typesetting system. \Xy-pic works with most of the - many formats available; \eg, plain \TeX, \LaTeX, and \AMS-\TeX. - Several styles of input for various diagram types are supported; they - all share a mnemonic notation based on the \emph{logical composition - of visual components}. This guide concentrates on how to typeset - ``matrix-like'' diagrams, such as ??w![commutative diagrams], in the - following style: -% -\begin{displaymath} -\begin{code} -\xymatrix{ - U \ar@/_/[ddr]_y \ar@/^/[drr]^x - \ar@{.>}[dr]|-{(x,y)} \\ - & X \times_Z Y \ar[d]^q \ar[r]_p - & X \ar[d]_f \\ - & Y \ar[r]^g & Z } -\end{code} -% -\docode -\end{displaymath} -% -was typeset by the \Xy-pic input lines -% -\displaycode\noindent -% -Such diagrams have the following characteristics: -% -\begin{itemize} - -\item - Specified as a matrix of entries that are automatically aligned in rows and - columns. - -\item - Any entry may be connected to any other entry using a variety of - arrow styles all rotated and stretched as required. - -\item - Arrows may be decorated with labels that are tied to a specified - point along the arrow and extend in a particular direction; and - arrows may be paired, cross, and visit/bend around other entries ``on - the way.'' - -\end{itemize} -% - Several other styles of input are supported; a short survey of the - possibilities is included last at the end along with information on - how \Xy-pic can be obtained. -% -\end{abstract} - -\tableofcontents - - - -\section*{Preface}\noindent -\addcontentsline{toc}{section}{Preface}% -% - This guide explains some features of \Xy-pic that are relevant to - typesetting of ``matrix-like diagrams'' as used in, for example, - category theory; please refer to the reference - manual~\cite{RM95:Xy-picRM} for complete information on the described - constructions. The guide assumes that you have some experience in - using \TeX\ for typesetting mathematics, \eg, have - studied~\cite[ch.~16--19]{K84:TeXbook}, \cite[sec.~3.3]{L94:LaTeX}, - or~\cite{S90:JoyT}, and that \Xy-pic is installed on your \TeX\ - system as described in the |INSTALL| file accompanying the - distribution. - - The first section describes what you need to get started, in - particular all that is needed to typeset the diagram in the abstract. - Section~??[arrows] and~??[entries] explain advanced use of arrows and - entries, respectively. Finally, section~??[avail] explains where and - under what conditions \Xy-pic is available, gives the relation of - version \xyversion\ to previous versions, and lists further sources - of information. - - Throughout we give exercises that you should be able to solve as you - go along; all exercises are answered at the end just prior to the - references and index. - - - -\section{Basics} -??=[basics] -% - This section explains the \Xy-diagram construction concepts needed to - get started with typesetting matrix-like diagrams. - - -\subsection{Loading} -??=[basics.loading] -% - The \Xy-pic setup used in this guide is loaded??w[loading] by - inserting the lines -% -\begin{defs1} - \cs{input} |xy| \cr - ??c![\xyoption]|{all}| -\end{defs1} -\noindent\unskip -% - in the definitions part of your - document.\footnote{??w![\LaTeXe]~\cite{L94:LaTeX} users can use - ??c![\usepackage]|[all]{xy}|.} If you wish to load only the - features you use, or you wish to use non-standard facilities like the - |v2| backwards compatibility mode\footnote{If you use the version~2 - loading command \cs{input} |xypic| (or the |xypic| document style - option) then the ??c![v2] option described in section ??[compat] will - be loaded automatically.} or the ??c![ps] \PS\ backend then this is - also possible as described in the reference - manual~\cite{RM95:Xy-picRM}. - - -\subsection{Entries} -??=[basics.entries] -% - A diagram is created by the command -% -\begin{defs1} - ??c![\xymatrix]|{|~\dots~|}| -\end{defs1} -\noindent\unskip -% - where the ``\dots'' should be replaced by \emph{entries}??w[entry] to - be aligned in \emph{??w![rows]} and \emph{??w![columns]} where -% -\begin{itemize} - -\item - entries in a row are separated by ??c![&],\footnote{Thus when using - \protect\Xy-constructions involving |&| inside other tabular - constructions then enclose the \protect\Xy-pic construction in an - extra pair of braces!} and - -\item - entire rows are separated by ??c![\\]. - -\end{itemize} -% - For example, -\begin{displaymath} -\begin{code} -\xymatrix{ - A &*+[F]{\sum_{i=n}^m {i^2}} \\ - & {\bullet} & D \ar[ul] } -\end{code} -\docode -\end{displaymath} -% - was typeset by -% -\displaycode\noindent -% - Notice the following: -% -\begin{itemize} - -\item - entries are typeset as mathematics (using ``??w![text style]''); - entries should not start with a macro (as illustrated by the use of - |{}| around |\bullet|\,. - -\item - all entries are centered and the separation between rows and columns - is usually quite large in a diagram, - -\item - empty entries at the end of rows may be omitted, - -\item - ``\Xy-decorations'' (here |\ar[ul]|) in entries allow drawing of - arrows and such relative to the entries without changing the overall - layout, and - -\item - ``\Xy-modifiers'' (here |*+[F]|) first in entries allow changing the - format and shape in many ways. - -\end{itemize} - - - -\subsection{Arrows} -??=[basics.arrows] -% - An ``??w![arrow]'' in an \Xy-pic diagram is a generic term for the - drawn decorations between the entries of the basic matrix structure. - In \Xy-pic all arrows must be specified along with the entry in which - they start; this is called their \emph{??w![base entry]}. Each - particular arrow command then refers explicitly to its - \emph{??w![target entry]}. This is obtained using the ??c![\ar] - command which accepts many options of which we will describe a few - here and some more in section~??[arrows]. In its simplest form an - arrow is entered as |\ar[|\emph{hop}|]| where \emph{??w![hop]} is - a sequence of single letters: ??c![u] for up, ??c![d] for down, - ??c![l] for left, and ??c![r] for right, \eg, the arrow |\ar[ur]| - reads ``typeset an arrow from the current entry to that one up and one - right.'' - -\begin{exercise} - Which entry does ??C![] refer to? -\answertext{The target |[]| is the current entry itself.} -\end{exercise} - -\vspace{\medskipamount}\noindent -% - The relative ??w![coordinates] specified in this way are purely - logical, \eg, if the diagram contains very wide entries then - ``diagonal'' arrows will be nearly horizontal. The constructed arrows - are aligned along the line between the centers of the base and target - entries; they will not automatically disappear under entries that - they cross (we discuss how this is achieved in - section~??[arrows.pass]). - - The ??w![arrow style] kan be changed by writing the command as - |\ar@|\emph{style}|[|\emph{hop}|]|. This will be described in - more detail in section~??[arrows.styles]; here we just list the most - common ??c![@]\emph{style}s (obvious variations also work): -% -\begin{displaymath} -\begin{code} - \DEF\st#1{\hbox{\lower1ex\rlap{\kern1pc % - \xy*{}+/r2pt/\ar@{#1},<1pc,-1.8pc>*{}\endxy}|@{#1}|}} - \st{=>}\quad\st{.>}\quad\st{:>}\quad\st{~>}\quad\st{-->}\quad\st{-}\quad\st{} -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} - -\begin{exercise} -% - Typeset -% -\begin{displaymath} -\begin{code} -\xymatrix{ - {\bullet} \ar@{--}[d]\ar@{=}[dr]\ar@{-}[r] - & {\bullet} \ar@{.}[d] \\ - {\bullet} & {\bullet} \ar[l] } -\end{code} -\docode -\end{displaymath} -% -\answercode -\answertext{The author did } -\answerdisplaycode -\answertext{\noindent Notice how - $\bullet$ has been enclosed in |{}| since it is an ``expandable'' - entity, \ie, a defined macro: this is recommended.} -\end{exercise} - - -\subsection{Labels} -??=[basics.labels] - You can put ??w![label]s on arrows. Labels are conceptualized as - sub- and superscripts on arrows such that they are placed in the - usual positions (as ``limits''), \ie, ??c![^] reads ``above'' and - ??c![_] ``below'' on an arrow pointing right. Notice that the - positions depend \emph{only} on the direction of the arrow, the - absolute notions of ``up,'' ``down,'' etc. are not important. For - example, -% -\begin{code} -$\xymatrix@1{ - X\ar[r]^a_b & Y & Z\ar[l]^A_B }$ -\end{code} -\displaycode\noindent -% - will set \begin{IMAGE}\docode\end{IMAGE} (the ??c![@1] is a - special code that can be - used for ``one-line'' diagrams to improve the placement on the line; - more such spacing codes are described in section~??[entries.resizing]). - - It is possible to use labels that are not single letters, digits, or - control sequences: if a simple math formula in the default style - (script style) is desired then simply enclose in |{|\dots|}|. In - practice anything can be used as a label as described in - section~??[arrows.objects]. - - Each label is placed perpendicular to the arrow at the point halfway - between the centers of the base and target objects. This is usually - the most æsthethic, however, in diagrams where the sizes of the - entries vary much it is sometimes nicer to place the label at the - center of the actual arrow??w[label centered on arrow]. This - behaviour is requested by inserting a ??c![-] (minus) right after the - |^| or~|_|: -% -\begin{code} -$\xymatrix@1{ - A\times B\times C\times D \ar[r]^-{+} &B -}$ -\end{code} -% -\begin{IMAGE} -\docode -\end{IMAGE} was typeset by -% -\displaycode\noindent -% - (it becomes -% -\begin{code} -$\xymatrix@1{ - A\times B\times C\times D \ar[r]^{+} &B -}$ -\end{code} -% -\begin{IMAGE} -\docode -\end{IMAGE}without the~|-|). In fact |-| is in just one of the may - possible placings of labels described in section~??[arrows.places]. - -\begin{exercise} -% - Typeset the second axiom of category theory as -% -\begin{displaymath} -\begin{code} -\xymatrix{ - A \ar[r]^f \ar[dr]_{f;g} - & B \ar[d]^g \ar[dr]^{g;h} \\ - & C \ar[r]_h & D } -\end{code} -\docode -\end{displaymath} -% -\answercode -\answertext{The author used } -\answerdisplaycode -\end{exercise} - - -\subsection{Breaks} -??=[basics.breaks] - It is also possible to ``??w![break]'' an arrow with a label using the - ??c![|] character: -% -\begin{code} -$\xymatrix@1{A\ar[r]|f&B}$ -\end{code} -% - \thecode\ will set -\begin{IMAGE} -\docode -\end{IMAGE}. - - If you just want an empty break you should use the special - ??c![\hole] break: -% -\begin{code} -$\xymatrix@1{ A\ar[r]|\hole & B }$ -\end{code} -% - the arrow \begin{IMAGE}\docode\end{IMAGE} was typeset by - including \thecode\ in the text. - - A different use of breaks is to place a label somewhere in a diagram - outside the normal matrix mesh??w[entry outside matrix]: this is - accomplished by ``breaking'' an ??w![invisible arrow] obtained using - the ??c![@{}] ??w![arrow style]: the square -% -\begin{displaymath} -\begin{code} -\xymatrix{\ar @{} [dr] |{=} - A \ar[d] \ar[r] & B \ar[d] \\ - B \ar[r] & C } -\end{code} -\docode -\end{displaymath} -% - was typeset by -% -\displaycode\noindent -% - There is more on breaks in section~??[arrows.pass]. - -\begin{exercise} -% - Typeset the first axiom of category theory as the display -% -\begin{displaymath} -\begin{code} -\xymatrix{ - A \ar[d]_f \ar[r]^f - & B \ar[dl]|{i_B} \ar[d]^g \\ - B \ar[r]_g & C } -\end{code} -\docode -\end{displaymath} -% -\answercode -\answertext{The author entered } -\answerdisplaycode -\end{exercise} - - -\subsection{Curving} -??=[basics.bends] -% - Arrows can be made to ??w![curve], for example to avoid going through - another entry, using the special style |@/|\emph{curving}|/|. The - simplest styles of \emph{curving} are the following, shown applied - to an arrow from $A$ to $B$: -% -\begin{displaymath} -\begin{code} -\DEF\a#1{*\hbox{\DEF\1{#1}\enspace\tt\codeof\1}& A \ar#1[r] & B} -\xymatrix @R-1.4pc{ - \a{@/^/} \\ - \a{@/_/} \\ - \a{@/_1pc/} } -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE}??c[@/^/]??c[@/_/] -\end{displaymath} -% - As the last example shows a dimension can be inserted just after |^| - or |_| if more or less curving is desired. - - In case it is easier to specify the in- and out-going directions of - the curving then that is also possible: use -% -\begin{defs1} - ??c![@(]\emph{in}|,|\emph{out}|)| -\end{defs1} -\noindent\unskip -% - where \emph{in} and \emph{out} are one of the following - \emph{??w![direction]s}: -% -\begin{displaymath} -\begin{code} -\xy *=<2pc>[o][F]{}="c", - "c"; (-1,-1)**{},p+/3pc/ *+{|dl|} **@{-}?>*@{>}, - "c"; ( 0,-1)**{},p+/3pc/ *+{|d|} **@{-}?>*@{>}, - "c"; ( 1,-1)**{},p+/3pc/ *+{|dr|} **@{-}?>*@{>}, - "c"; ( 1, 0)**{},p+/3pc/ *+{|r|} **@{-}?>*@{>}, - "c"; ( 1, 1)**{},p+/3pc/ *+{|ur|} **@{-}?>*@{>}, - "c"; ( 0, 1)**{},p+/3pc/ *+{|u|} **@{-}?>*@{>}, - "c"; (-1, 1)**{},p+/3pc/ *+{|ul|} **@{-}?>*@{>}, - "c"; (-1, 0)**{},p+/3pc/ *+{|l|} **@{-}?>*@{>} -\endxy -\end{code} -\docode -\end{displaymath} -\noindent\unskip -% - In this case the curving is computed such that the curve begins at the - base entry in the \emph{in} direction and ends at the target entry - from the \emph{out} direction (this means that $|@(|d_1|,|d_2|)|$ - and $|@(|d_2|,|d_1|)|$ are mirror images. See - section~??[arrows.changing] for more directions). - -\begin{exercise} -% - Typeset -% -\begin{displaymath} -\begin{code} -\xymatrix{ - x \ar@(ul,dl)[]|{id} \ar@/^/[rr]|f - && f(x) \ar@/^/[ll]|{f^{-1}} } -\end{code} -\docode -\end{displaymath} -% -\answercode -\answertext{The author did } -\answerdisplaycode -\answertext{\noindent Note that both arrows are - curved ``above'' relative to their direction.} -\end{exercise} - - -\subsection{Speeding up typesetting} -??=[basics.speeding] -% - One thing that you will notice is that \Xy-pic is sometimes slow in - typesetting diagrams (this is to be expected considering the number - of drawing operations performed as reflected by the number last in - each |xymatrix| message). If you follow the rule of starting all - entries with a (nonexpandable) character or |{| then you can insert - the declaration -% -\begin{defs1} - ??c![\CompileMatrices] -\end{defs1} -\noindent\unskip -% - in the preamble of your document: this will create temporary - files\footnote{The temporary files are named the same as your - document but |.tex| is replaced by |-|$n$|.xyc| where $n$ is a - sequence number.} containing \emph{compiled} versions of each - matrix that can be loaded very quickly; they are automatically - recreated when a matrix is changed. - - If this causes some diagrams to not work, then such compilation can be - explicitly switched off by using ??c![\xymatrixnocompile] in place of - |\xymatrix|. Compilation can be switched off completely with - ??c![\NoCompileMatrices] (which respects \TeX\ grouping as does - ??c![\CompileMatrices], by the way). - - And if you are still not satisfied with the speed then you can add - the following: -% -\begin{defs1} - ??c![\OnlyOutlines] -\end{defs1} -\noindent\unskip -% - which will omit all compiled pictures; the additional command - ??c![\ShowOutlines] will add a dotted rectangle outlining the size of - the picture. - - - -\section{More Arrows and Labels} -??=[arrows] -% - In this section we explain a number of variations of the - ??w![arrow]??c[\ar] commands that are useful in ??w![commutative - diagrams]. - - -\subsection{Explicit label positioning} -??=[arrows.places] -% - The ??w![label]??w[explicit positioning] commands explained in - section~??[basics.labels] place the label text near the point along - the arrow halfway between the centers of the base and target entries. - This, however, may be changed by inserting a \emph{place} between - the ??c![^], ??c![_], or ??c![|], and the actual label (in fact |-| - is a \emph{place}). In general you may insert the following: -% -\begin{itemize} - -\item - ??c![<] will place the label at the point where the actual arrow - begins, \ie, ``appears from under'' the base, so -% -\begin{code} -$\xymatrix@1{A\ar[r]^<{+}&B}$ -\end{code} -% - \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}. - -\item - Similarly, ??c![>] will place the label at the point where the actual - arrow ends, \ie, ``disappears below'' the target, so -% -\begin{code} -$\xymatrix@1{A\ar[r]^>{+}&B}$ -\end{code} -% - \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}. - -\item - ??c![<<] and ??c![>>] will place the following label at a point just - a bit\footnote{``A bit'' is in fact a \TeX\ ??c![\jot] which is usually - 3pt.}\ further from the beginning and end of the arrow, so -% -\begin{code} -$\xymatrix@1{A\ar[r]^>>{+}&B}$ -\end{code} -% - \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}. - Using more |<|s or |>|s will move the label further in. - -\item - A factor in ??c![()]s: $|(|a|)|$ indicates that the label should be - ``tied'' to the point $a$ of the way from the center of the base entry - (called ??c![(0)]) to the center of the target (called ??c![(1)]) - instead of in the middle, so -% -\begin{code} -$\xymatrix@1{A\ar[r]^(.3){+}&B}$ -\end{code} -% - \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}. - -\item - A factor can be given \emph{after} some |<| or |>|s, in which case - the place is computed as if the base was specified by the - |<|s and target specified by the |>|s. Hence -% -\begin{code} -$\xymatrix@1{A\ar[r]^<(0){+}&B}$ -\end{code} -% - \thecode\ will typeset \begin{IMAGE}\docode\end{IMAGE}. - -\item - Finally, there is a simple way to denote the place on an arrow where - it ??w![intersects]??w[crossing arrows] with a straight line between - two points: the place |!{|$t_1$|;|$t_2$|}|??c[!{;}] places the label - relative to the point on the arrow where the line from the target - $t_1$ to the target $t_2$ crosses it. \BUG: Only works for straight - arrows at present. - -\end{itemize} -% - As usual more possibilities can be found in the reference - manual~\cite[fig. 2]{RM95:Xy-picRM}. - -\begin{exercise}??=[x.intercept] -% - Typeset -% -\begin{displaymath} -\begin{code} -\xymatrix{ - 1 \ar[rr] ^-{1000000x} - \ar[dr] _(.2){2000x} |!{[d];[rr]}\hole - && 1000000 \\ - 1000 \ar[r] _{2x} - \ar[urr] _>>>>{x^2} - & 2000 } -\end{code} -\docode -\end{displaymath} -% -\answercode -\answertext{The author used the display } -\answerdisplaycode -\answertext{\noindent In particular - notice how the break was specified to happen exactly where the two - arrows cross. For an easier but not so general method see - exercise~??[x.cube] last in section~??[arrows.pass].} -\end{exercise} - - -\subsection{Labeling with any object} -??=[arrows.objects] -% - \Xy-pic supports a general format for entering any \TeX\ - ??w![text]??w[text label] as labels (as well as entries to be - explained later). The character |*| is reserved for this: in its - simplest form |*{|\emph{math}|}| will typeset the \emph{math} - material as an object. This is like |{|\emph{math}|}| except that - the default style is ignored and there is no added blank margin. - - However, in general??w[label with any object] the following form of - ??c![*]\emph{object}??w[object] is available: -% -\begin{defs1} -|*|\emph{modifiers}|{|\emph{text}|}| -\end{defs1} -\noindent\unskip -% - where \emph{modifiers}??w[object modifier] can be used to change - the ??w![shape] and ??w![size] of the constructed object. The - following are the most common, the full list of possibilities can be - found in the reference manual~\cite[fig. 3]{RM95:Xy-picRM}: -% -\begin{defs} - ??c![+] & ??w![grow] \cr - |+<|\emph{dimen}|>| & grow by \emph{dimen} \cr - ??c![+=] & grow to enclosing ??w![square] \cr - ??c![-] & ??w![shrink] \cr - |-<|\emph{dimen}|>| & shrink by \emph{dimen} \cr - ??c![-=] & shrink to contained square \cr - ??c![!] & do not center \cr - ??C![o] & round??w[round shape] \cr - ??C![l] ??C![r] ??C![u] ??C![d] & adjust left, right,\dots??w[adjust] \cr - ??C![F] ??C![F=] & -\begin{IMAGE} -\xy*[F-]\hbox{\strut~frame~}\endxy -\end{IMAGE}??w[frame] -% -\begin{IMAGE} -\xy*[F=]\hbox{\strut~double~}\endxy -\end{IMAGE}??w[double frame]\cr - ??C![F.] ??C![F--] - & -\begin{IMAGE} -\xy*[F.]\hbox{\strut~dotted~}\endxy -\end{IMAGE}??w[dotted frame] -% -\begin{IMAGE} -\xy*[F--]\hbox{\strut~dashed~}\endxy -\end{IMAGE}??w[dashed frame]\cr - ??C![F-,] ??C![F-:<3pt>] - & -\begin{IMAGE} -\xy*[F-,]\hbox{\strut~shaded~}\endxy -\end{IMAGE}??w[shaded frame] -\begin{IMAGE} -\xy*[F-:<3pt>]\hbox{\strut~rounded~}\endxy -\end{IMAGE}??w[rounded frame] -\end{defs} -\noindent\unskip -% - Since objects specified this way start with no margin, a single |+| - is usually included to get the ??w![default spacing]. - -\begin{exercise} -% -\begin{code} -\xymatrix@1{ A \ar[r]^*+[o][F-]{x} & B } -\end{code} -% - Typeset $\smash{\docode}$~. -% -\answercode -\answertext{The author typed } -\answerdisplaycode -\end{exercise} -\vspace{3ex} - - There can only be one \emph{boxing}. This can be any box - generation command. The following are the most useful - \emph{boxing}|{|\emph{text}|}| combinations: -% -%\filbreak -\begin{defs} - ??c![@]\emph{variant}|{|\emph{tip}|}| & ??w![tip] (or ??w![shaft]) object \cr - ??c![\txt]|{|\dots|}| & ordinary \emph{??w![text]} \cr - ??c![\composite]|{|\dots??c![*]\dots|}| & ??w![combined objects] \cr - ??c![\frm]|{}| & ??w![repeat last object] -\end{defs} -\noindent\unskip -% - (the possibilities for \emph{variant} and \emph{tip} are given in the - following section). Finally, ??c![\hbox]|{|\dots|}|\footnote{The - plain \TeX\ command |\hbox| corresponds to |\mbox| in \LaTeX\ - and |\text| in the \AMS\ variants.} is a quick way to ensure - text-mode interpretation of a single object. However, ??c![\txt] - allows the use of ??c![\\] in \emph{text} to create a ??w![line - break], and the special form |\txt<6pc>{|\dots|}| will constrain the - text to a ??w![centered] 6pc wide column. By the way, |\txt| can be - used outside of \Xy-pic constructions. - - Finally, several objects can be combined using the last form; the - |*|s serve to separate the composed object. - -\begin{exercise} -% -\begin{code} -\xymatrix@1{ - A \ar @{/*\composite{{+}*{\times}}/} [rr] - ^*+\txt{High\\label} - && B} -\end{code} -% - Typeset $\docode$~. -% -\answercode -\answertext{The author did } -\answerdisplaycode -\end{exercise} - -\vskip-\baselineskip -\subsection{More arrow styles} -??=[arrows.styles] -% - The ??w![arrow style]s described in section~??[basics.arrows] are all - examples of the general \emph{??w![arrow style]} constructions -% -\begin{defs1} -??c![@]\emph{??w![variant]}|{|\emph{??w![tail]} \emph{??w![shaft]} - \emph{??w![head]}|}|\cr -??c![@]\emph{variant}|{|\emph{head}|}| -\end{defs1} -\noindent\unskip -% - that in describes arrows with the indicated \emph{tail}, - \emph{shaft}, and \emph{head} (on the first form the tail and - head can be omitted; the second style defaults to having no tail and - a standard shaft).??w[arrow head]??w[arrow shaft]??w[arrow tail] - - The following possibilities exist for \emph{head} and \emph{tail} - which we will denote \emph{tips} (here shown as heads): -% -\begin{unformatteddefs} -\begin{code} -{\DEF\DT#1#{\DTx{#1}} - \DEF\DTx#1#2{\Dx{#1}{#2}&\xy-(4,0)*{};(4,2)*+{}**{}?>*@#1{#2} **@#1{.}\endxy} - \DEF\Dx#1#2{\hbox{\DEF\1{#2}\enspace{\tt\codeof\1}\index code{#2}}} - \DEF\Darray#1{{\let\\=\cr \tabskip=2em plus 1fil minus.8em % - \halign to\hsize{&\hfil$##$\tabskip=1em&$##$\hfil\tabskip=2em plus 1fil \cr - #1\crcr}}} - % - \Darray{% - \DT{<} &\DT{>} &\DT{x} \\ - \DT{<<} &\DT{>>} &\DT{+} \\ - \DT{|<} &\DT{>|} &\DT{|} \\ - \DT{|<<} &\DT{>>|} &\DT{||} \\ - \DT{(} &\DT{)} &\DT{o} \\ - \DT{/} &\DT{//}}} -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{unformatteddefs} -% - and the \emph{shaft} should be one of the following:??w[dotted - arrow]??w[dashed arrow]??w[squiggly arrow] -% -\begin{unformatteddefs} -\begin{code} -{\DEF\DC#1#{\DCx{#1}} - \DEF\DCx#1#2{ \Dx{#1}{#2} & \xy *+{} ; (12,4)*+{} **@#1{#2}\endxy} - \DEF\Dx#1#2{\hbox{\DEF\1{#2}\enspace\tt\codeof\1\index code{#2}}} - \DEF\Darray#1{{\let\\=\cr \tabskip=2em plus 1fil % - \halign to\hsize{&\hfil$##$\tabskip=1em&$##$\hfil\tabskip=2em plus 1fil \\ - #1\crcr}}} - \Darray{% - \DC{-} &\DC{--} \\ - \DC{~} &\DC{~~} \\ - \DC{.} }}% -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{unformatteddefs} -\goodbreak -% - The \emph{variant} should be empty or one of the following: -% -\begin{defs} -??c![^] & ``above'' variant??w[half arrow] \cr -??c![_] & ``below'' variant \cr -|2| & ``double'' variant??w[double arrow] \cr -|3| & ``triple'' variant??w[triple arrow] -\end{defs} -\noindent\unskip -% - Here are some standard arrows in this notation, all from $A$ to $B$ - as usual: -% -\begin{displaymath} -\begin{code} -\DEF\a#1{*\hbox{\DEF\next{#1}\tt\codeof\next}& A \ar#1[rr] && B} -\xymatrix @R-1.8pc @C-1pc { - \a{@{<->}} \\ - \a{@^{<->}} \\ - \a{@_{<->}} \\ - \a{@2{<->}} \\ - \a{@3{<->}} } -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} -% - As a special convenience |=| and |:| are provided as abbreviations - for |-| and |.| with variant forced to~|2|. - - As it can be seen, the variant will affect the \emph{entire} arrow. - Sometimes this is not what is wanted. In that case a \emph{local - variant} can be used by entering any of the \emph{tail}, - \emph{shaft}, and \emph{head}, on the following form: -% -\begin{defs1} -\emph{variant}|{|\emph{tip}|}|\cr -\emph{variant}|{|\emph{shaft}|}| -\end{defs1} -\noindent\unskip -% - Here are some arrows where this is required: -% -\begin{displaymath} -\begin{code} -\DEF\a#1{*\hbox{\DEF\next{#1}\tt\codeof\next}& A \ar#1[r] & B} -\xymatrix @R-1.8pc{ -\a{@{^{(}->}} \\ -\a{@{|-_{>}}} } -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} -% - Notice that there is no distinction between shafts and tips using - this form, thus it is necessary to include all three of - \emph{tail}, \emph{shaft}, and \emph{head}, when using it. The - advantage is that it is possible then to ``fill with a tip.''??w[tip in - shaft]??w[shaft as tip] Furthermore, the following additional - possibilities are available when using this notation: -% -\begin{unformatteddefs} -\begin{code} -{\DEF\DT#1#{\DTx{#1}} - \DEF\DTx#1#2{\Dx{#1}{#2}&\xy-(4,0)*{};(4,2)*+{}**{}?>*@#1{#2} **@#1{.}\endxy} - \DEF\Dx#1#2{\hbox{\DEF\1{#1{#2}}\enspace{\tt\codeof\1}\index code{#1{#2}}}} - \DEF\Darray#1{{\let\\=\cr \tabskip=0pt plus 1fil % - \halign to\hsize{&\hfil$##$\tabskip=1em&$##$\hfil\tabskip=1em plus 1fil \cr - #1\crcr}\bigskip}} - \Darray{% - \DT{|-} &\DT^{|-} &\DT_{|-} \\ - &&\DT {|=} &\DT3{|-} \\ - \DT{*} &\DT^{`} &\DT_{`} \\ - &&\DT^{'} &\DT_{'} }}% -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{unformatteddefs} -\noindent\unskip -% - The even more general form |*|\emph{object} can be used, where - \emph{object} refers to any of the constructions described in - section~??[arrows.objects]. - -\begin{exercise} -% -\begin{code} -\xymatrix{ - A \ar @/^/ @{^{<}-_{>}} [r] - \ar @/_/ @{{*}{x}{*}} [r] & B } -\end{code} -% - Typeset $\docode$~. -% -\answercode -\answertext{The author entered } -\answerdisplaycode -\end{exercise} - - -\subsection{Sliding arrows sideways} -??=[arrows.sliding] -% - It is often desirable to have several ??w![parallel] arrows between - two objects. This can be done by ??w![sliding] either or both arrows - ??w![sideways] a distance given as a \TeX\ dimension enclosed in - ??c![@<>]s: it specifies how far ``sideways'' the arrow should be - moved, \eg, -% -\begin{code} -\xymatrix{ - A \ar@<1ex>[dr]^a_{.} \\ - & B \ar@<1ex>[ul]^b \ar@<1ex>[r]^c - & C \ar@<1ex>[l]^d_{.} } -\end{code} -\displaycode -% -\noindent will typeset -% -\begin{displaymath} -\docode -\end{displaymath} -% - A positive distance will slide the arrow in the ``|^|-direction,'' \eg, - the two arrows above are slid in the direction of the labels~$a$, - $b$, $c$, and $d$, respectively; a negative distance in the - ``|_|-direction.'' The distance |<@1ex>| is often appropriate since it - corresponds roughly to the height of letters like ``x,'' in the type size - being used. - -\begin{exercise} -% -\begin{code} -\xymatrix@1{ - A \ar@/^/[r] \ar@/^/@<-1ex>[r] & B } -\end{code} -% - Typeset $\docode$~. -% -\answercode -\answertext{The author typed } -\answerdisplaycode -\end{exercise} - - -\subsection{More targets} -??=[arrows.targets] -% - The ??w![target] address can be given in a large number of formats - called \emph{??w![position]s}. The full range of possibilities is - described in the reference manual~\cite[fig. 1]{RM95:Xy-picRM}; here - is a number of useful ones in addition to the \emph{hop} format - described in section~??[basics.arrows]: -% -\begin{itemize} - -\item - $|[|r|,|c|]|$??C[], where $r,c$ are integers, denotes the - \emph{??w![relative entry]} found $r$~??w![rows] below and - $c$~??w![columns] to the right of the current entry (the ??w![current - entry] itself is thus |[0,0]|). This always corresponds to a - |[|\emph{??w![hop]}|]|, \eg, |[1,2]| is the same as |[drr]| and - |[-2,0]| is the same as |[uu]|. - -\item - $|"|r|,|c|"|$, where $r,c$ are positive integers, denotes the - \emph{??w![absolute entry]} found in the $r$th row and $c$th column - of the diagram. The top left entry is |"1,1"|. - -\item - $t'??c![;]t$~, where $t'$ is any target, changes the ??w![base entry] - of the present arrow to $t'$ and then sets the target to $t$ relative - to the original base entry. For example, -% -\begin{code} -\xymatrix{ A \\ - B & C \ar@<1ex>[ul] - \ar@<1ex>[ul];[] } -\end{code} -\displaycode -% -\noindent\unskip typesets -% -\begin{displaymath} -\docode -\end{displaymath} -% - \ie, the second |\ar[ul]| arrow starts at the |[ul]| entry and ends - in the current entry. - -\end{itemize} -% - See section~??[entries.naming] for how to use a label as a target. - - -\subsection{Changing the target} -??=[arrows.changing] -% - It is possible to ??w![overwrite] a ??w![target] with another by - appending something of the form ??c![*]\emph{object} to it. This - has the effect of typesetting the \emph{object} at the current - position, thus effectively on top of the target, and then use what - was typeset as the target. - - A target may also have its ??w![position] changed??w[changing - position]??w[adjusting position]??w[moving target] by one of the - following constructions: -% -\begin{itemize} - -\item - ??c![+]\emph{vector} or ??c![-]\emph{vector} which changes the - target to be a zero-sized one at the position obtained by adding or - subtracting the \emph{vector} to its center, or - -\item - ??c![!]\emph{vector} which moves the center of the target by the - \emph{vector}; - -\end{itemize} -% - where a \emph{??w![vector]} should have the form -% -\begin{itemize} - -\item - $|<|D_x|,|D_y|>|$ , where $D_x,D_y$ are \TeX\ dimensions, is the - vector with those coordinates??w[vector coordinates], - - -\item - the following ``corner offsets'' of a target are vectors as shown: -% -\begin{displaymath} -\begin{code} -\DEF\corner#1{\POS"box"+0;"box"+#1 **@{-} ?>*@{>} +/1pc/ *\hbox{\tt#1}} -% -\xy 0.(-11,-6).(11,6)!C="box"*\frm{.},"box"; - "box"+L**@{.}, "box"+R**@{.}, "box"+D**@{.}, "box"+U**@{.} -% - \corner{L} \corner{R} \corner{D} \corner{U} - \corner{DL}\corner{DR}\corner{UL}\corner{UR} -\endxy -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} -% - (they must be specified in upper case)??w[vector to corner], and - -\item - ??c![/]$d$ \emph{dimen}|/| is the \emph{vector} going - \emph{dimen} in the particular ??w![direction]??w[vector in - direction] $d$ which can be either the eight simple ones in - section~??[basics.bends], empty to denote that the - \emph{??w![current direction]} (the last direction of an arrow) - should be used, or one of the following: -% -\begin{defs} - |va(|$\alpha$|)|??c[va()] & ??w![absolute angle] \cr - $d$|:a(|$\alpha$|)|??c[:a()] & ??w![relative angle] in ??w![degrees] \cr - $d$|:(|$x$,$y$|)|??c[:()] & ??w![relative vector] \cr - $d$??c![^] / $d$??c![_] & short for |:a(90)| / |:a(-90)| -\end{defs} -\noindent\unskip -% - where the $d$ in the last four may be empty to denote the ``current - direction.'' - -\item - ??c![0] is the zero vector. - -\end{itemize} -% - Many, many more possibilities are described in the reference - manual~\cite{RM95:Xy-picRM}. - -\begin{exercise} - What is the difference between a target $t$ and the target $t$|+0|? -\answertext{The size: $t$|+0| always has zero size.} -\end{exercise} - - -\subsection{Arrows passing under} -??=[arrows.pass] -% - Arrows can pass under??w[arrow passing under] (or via) any other - entry: Just insert ??c![']$t$, \ie, a quote (apostrophe) character - followed by a target, for each entry that should be visited except - the last, ``ordinary \& final'' entry: -% -\begin{code} -\xymatrix{ - {\circ} - \ar@{|-->} '[dr] ^a - '[rr]+D*{\bullet} ^b - [drrr] ^c - & {\circ} & {\circ} & {\circ} \\ - {\circ} & {\circ} & {\circ} & {\circ} } -\end{code} -\displaycode -\noindent - typesets -% -\begin{displaymath} -\docode -\end{displaymath} -% - As you see, labels are set separately on each ??w![segment]. - -\begin{exercise}??=[x.cube] -% - Typeset the ``lambda ??w![cube]''??w[crossing arrows] -% -\begin{displaymath} -\begin{code} -\xymatrix@!0{ - & \lambda\omega \ar@{-}[rr]\ar@{-}'[d][dd] - & & \lambda C \ar@{-}[dd] -\\ - \lambda2 \ar@{-}[ur]\ar@{-}[rr]\ar@{-}[dd] - & & \lambda P2 \ar@{-}[ur]\ar@{-}[dd] -\\ - & \lambda\underline\omega \ar@{-}'[r][rr] - & & \lambda P\underline\omega -\\ - \lambda{\to} \ar@{-}[rr]\ar@{-}[ur] - & & \lambda P \ar@{-}[ur] -} -\end{code} -\docode -\end{displaymath} -% -\noindent\unskip -% - \emph{Hint}: ``going under'' an empty entry leaves a small gap at - that location.??w[crossing arrows] The compactness is achieved using - a trick described in section~??[entries.resizing]. -% -\answercode -\answertext{The author constructed } -\answerdisplaycode -\answertext{A special thing is added: |@!| forces rows and columns to be - equally spaced as discussed in section~??[entries.resizing]; |@!0| - furthermore makes the spacing ignore the entry sizes, giving a - completely fixed grid. The gaps could also be made with the - |!|\dots\ crossing notation of exercise~??[x.intercept] last in - section~??[arrows.places] but the above is shorter.} -\end{exercise} - - -\subsection{More bending arrows} -??=[arrows.bend] -% - Finally, arrows can ??w![bend] around entries: just insert - ??c![`]$d\,t$, \ie, a backquote and a ??w![direction] $d$ followed by - a target $t$, for each ``??w![turn]'' that starts out in the - $d$-direction and ends in a ??w![quarter turn] towards the - target~$t$. This is different from the curving??w[curve] described - earlier in that all turns consist of a straight part ending in a turn - which is a multiple of \slashedfrac18 ??w![circle segments], and each - segment allows separate ??w![label]s. - - The possible directions are those of section~??[basics.bends] and - ??[arrows.changing], and the possible targets include all those - discussed above. Actually the direction is only required for the - first in a series of turns since the final direction of one turn is - the obvious choice for the following turn. Furthermore, turns can be - changed from the default by adding either ??c![^]$d$ for - anticlockwise turn to $d$ or ??c![_]$d$ for clockwise turn to $d$, - where $d$ is the ``exit direction'' of the turn. - - Finally, the turns will have ??w![radius] 10pt by default, but this - can be changed to any dimension $R$ from a particular turn and - onwards by inserting ??c![/]$R$ immediately after the |``| of the - turn??w[changing turn radius]. Here is an example involving all of - these features: -% -\begin{code} -\xymatrix{ - {\circ} \ar `r[d] ^a - `[rr] ^b - `/4pt[rr] ^c - `[rrr] ^d - `_dl[drrr]^e - [drrr]^f - & {\circ} & {\circ} & {\circ} \\ - {\circ} & {\circ} & {\circ} & {\circ} } -\end{code} -\displaycode -\noindent -% - typesets -% -% -\begin{displaymath} -\docode -\end{displaymath} -% - The example illustrates the following points: -% -\begin{itemize} - -\item - If the segment can not be made as short as required then it will - point ``past'' the target. This is useful for ``??w![going around]'' - entries. - -\item - There is \emph{one |`| per turn} thus each target appears as many - times as there are turns towards it, except the last target that - appears one more time namely both with |`| for each turn towards it - \emph{and} once as an ``ordinary'' target to set the final stretch. - -\item - The sizes of the intermediate targets are ignored. - -\end{itemize} - -\begin{exercise} -% - Typeset -\begin{IMAGE}$% -% -\begin{code} -\xymatrix@1{ - A \ar@<-2pt> `d[r] `[r] [r] - \ar@<+2pt> `d[r] `[r] [r] & B } -\end{code} -% - \docode$ -\end{IMAGE}~. -% -\answercode -\answertext{The author typed } -\answerdisplaycode -\end{exercise} - - -\subsection{Defining new arrow types} -??=[arrows.defining] -% - Last in this treatment of arrows we will explain how ??w![new arrows] - can be defined??w[defining arrows]. The crucial fact is that the - characters used for \emph{??w![tip]s} and \emph{??w![shaft]s} are - restricted to the following: -% -\begin{defs} - |><||ox+/()[]|\verb*+ + &\quad \emph{tip} characters??w[tip characters]\cr - |-.~:=| &\quad \emph{shaft} characters??w[shaft characters] -\end{defs} -\noindent\unskip -% - When an arrow is interpreted by \Xy-pic it is first split into the - three components and then each component is looked up in a library of - so-called ``??w![directionals].'' It is possible to add new such - directionals using the command -% -\begin{defs1} - ??c![\newdir]|{| \emph{directional} |}{| \emph{composite} |}| -\end{defs1} -\noindent\unskip -% - where \emph{directional} should be a sequence either of tip - characters or of shaft characters, and \emph{composite} should be a - list of objects??w[combined objects] separated with ??c![*] just like - the argument to ??c![\composite] described in - section~??[arrows.objects]. If arrows of a particular - \emph{??w![variant]} (always one of the letters |^_23|) needs an - alternate definition then another declaration can be given with the - variant inserted between |\newdir| and the first |{|. - - There is one ??w![object modifier] which is very useful in this - context, in addition to those of section~??[arrows.objects]: -% -\begin{defs} - ??c![!]\emph{vector} &\quad shift object \emph{vector} -\end{defs} -\noindent\unskip -% - (where the possibilities for \emph{vector} are described in - section~??[arrows.changing]). Combined with the direction code this - is very powerful, for example, -% -\begin{code} -\newdir{|>}{% - !/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}} -\end{code} -\displaycode -\noindent\unskip -% - defines a new tip that makes -% -\begin{code} -\xymatrix{ A \ar @{=|>} [r] & B } -\end{code} -\displaycode -\noindent\unskip -% - typeset -% -\begin{code} -\newdir{|>}{!/4.5pt/@{|}*:(1,-.2)@^{>}*:(1,+.2)@_{>}} -\xymatrix{ A \ar @{=|>} [r] & B } -\end{code} -% - $\docode$~. Notice how the ``relative direction'' is used here to - rotate??w[rotation] some of the composed components. - -\begin{exercise}??=[arrows.def.ex] - Often tips used as ``tails'' have their ink on the wrong side of the - point where they are placed. Fortunately space (\verb*+ +) is also a - tip character so we can define the directional \verb*+ >+ to generate - a ``tail-spaced'' arrow. Do this such that -% -\begin{code} -\xymatrix{ A \ar @{>->} @< 2pt> [r] - \ar @{ >->} @<-2pt> [r] & B } -\end{code} -\displaycode -\noindent -% - typesets -% -\begin{displaymath} -\begin{code} -\newdir{ >}{{}*!/-5pt/@{>}} -\xymatrix{ A \ar @{>->} @< 2pt> [r] - \ar @{ >->} @<-2pt> [r] & B } -\end{code} -\docode -\begin{code} -\newdir{ >}{{}*!/-5pt/@{>}} -\end{code} -\end{displaymath} -% -\answercode -\answertext{The author used } -\answerdisplaycode -\end{exercise} - - Finally, when \Xy-pic diagrams are used in conjunction with Knuth's - \emph{??w![computer modern fonts]} then the declaration -% -\begin{defs1} - ??c![\SelectTips{cm}{}] -\end{defs1} -\noindent\unskip -% - will change the tips to some that look similar, \eg, -% -\begin{code} -$\SelectTips{cm}{} - \xymatrix@1{A\ar@{->>|}[r]&B}$ -\end{code} -\displaycode\noindent -% - typesets -\begin{IMAGE} -\docode -\end{IMAGE}. The second argument (here |{}|) can be used - to specify a point size |{10}|, |{11}|, or |{12}|, if desired (the - default is |{10}|\footnote{Except when \Xy-pic is loaded as a - \LaTeXe\ package where the default size is used.}); |{cm}| can be - replaced by |{eu}| and |{xy}| to get tips in ``Euler'' and the - default technical style, respectively. The declaration respects - \TeX\ grouping. - -\begin{exercise} -\begin{code} -\xymatrix@1{ - A \ar[r] |-{\SelectTips{cm}{}\object@{>>}} - |>{\SelectTips{eu}{}\object@{>}} - & B } -\end{code} -% - Typeset $\docode$~. \emph{Hint}: With the construction - ??c![\object]\emph{object} one can typeset an \Xy-pic \emph{object} - (anything that could follow a |*| in section~??[arrows.objects]) in - any context. -% -\answercode -\answertext{The author typed } -\answerdisplaycode -\end{exercise} - - - -\section{More Entries} -??=[entries] -% - This section explains what can go in an entry and how the general - form of the entries??w[entry] is changed. - - -\subsection{Manual entry formatting} -??=[entries.manual] -% - All the entries we have seen thus far have been simple math objects. - However, it is possible to change the ??w![format] of an individual - ??w![entry]??w[entry format] by using the form: -% -\begin{defs1} - ??c![*]\emph{object} \emph{arrows} -\end{defs1} -\noindent\unskip -% - This allows complete control over what object is placed in the entry, - overriding any spacing and other conventions for the entry. This was - how the frame was obtained in the figure in - section~??[basics.entries]. - - A simple use of this is to insert ??w![text in entries]??w[entries - with text]??w[labels with text] using ??c![\txt] objects just like - labels as described above in section~??[arrows.objects]: -% -\begin{code} -\xymatrix{ - *\txt{A very long and stupid\\program} - \ar[rr]^-{\txt{weird\\arrow}} - &&*\txt<2pc>{Com\-pli\-cated\\Code}} -\end{code} -\displaycode -% -\noindent will typeset -% -\begin{displaymath} -\docode -\end{displaymath} - -\begin{exercise} -% -\begin{code} -\xymatrix{ - *=0{\bullet} - \ar@/^/[dr]!U|1 - \ar@/^/[drr]!U|2 - \ar@/^/[drrr]!U|3 -\\ - &*+[F]\txt{x} - &*+[F]\txt{x\\x} - &*+[F]\txt{x\\x\\x} -} -\end{code} -% - Typeset -% -\begin{displaymath} -\docode -\end{displaymath} -% -\answercode -\answertext{The author typed} -\answerdisplaycode -\end{exercise} - - -\subsection{Extra entries outside the matrix} -??=[entries.extra] -% - It is possible to put ??w![extra entries]??w[entries outside matrix] - in your diagrams that are not part of any ``entry'' of the matrix - created by |&| and |\\|. This is done with the - \emph{??w![excursion]} command -% -\begin{defs1} - |\save|~$t$~|\restore| -\end{defs1} -\noindent\unskip -% - where $t$ should be a target in one of the formats described in - sections~??[arrows.targets]-??[arrows.changing]. $t$ can do - any kind of typesetting desired, for example, -% -\begin{code} -\xymatrix{ - A \ar@{-}[dr] - &{}\save[]+<3cm,0cm>*\txt<8pc>{% - This is a very big commentary - but it does not otherwise affect - the diagram.} - \ar[l] \ar[d] \restore \\ - & B \ar@{-}[r] & C \ar@{-}[r] & D -} -\end{code} -\displaycode -% -\noindent will typeset -% -\begin{displaymath} -\docode -\end{displaymath} -% - It illustrates how a ``down'' arrow does not necessarily have to point - particularly straight down -- in this case because it is based in the - displaced pseudo entry. - - -\subsection{Spacing and rotation} -??=[entries.resizing] -% - The |*|\emph{object} form described above can be used to space - individual objects differently, however, it is also possible to - change the overall ??w![spacing] of a matrix by inserting the - following codes \emph{between} |\xymatrix| and the following |{|: -% -\begin{defs} - ??c![@=]\emph{dimen} & set spacing \cr - ??c![@R=]\emph{dimen} & set row spacing \cr - ??c![@C=]\emph{dimen} & set column spacing \cr - ??c![@M=]\emph{dimen} & set entry default margin \cr - ??c![@W=]\emph{dimen} & set entry default width \cr - ??c![@H=]\emph{dimen} & set entry default height \cr - ??c![@L=]\emph{dimen} & set label margin -\end{defs} -\noindent\unskip -% - ??c![=] can be replaced by any of ??c![+], ??c![+=], ??c![-], - and ??c![-=] of section~??[arrows.objects] with the same meaning, - \ie, replace ``set'' with ``increase,'' ``increase to at most,'' - ``decrease,'' and ``decrease to at least,'' respectively. For example, -% -\begin{code} -$\xymatrix@1@=0pt@M=0pt{A&B\\C&D}$ -\end{code} -% - \thecode\ in the text typesets \begin{IMAGE}\docode\end{IMAGE}. - - In case \emph{??w![uniform spacing]} is desired, several alternative - forms exist. -% -\begin{defs} - ??c![@!] & force all spaces equal \cr - |@!0| & --- and ignore entry sizes \cr - |@!R| & force equal row spacing \cr - |@!C| & force equal column spacing -\end{defs} -\noindent\unskip -% - Finally a special notation allows \emph{??w![rotation]} of an - entire matrix: -% -\begin{defs} - ??c![@]\,$d$ & rotate towards $d$ -\end{defs} -\noindent\unskip -% - Only the matrix grid will rotate, however, not the actual contents. - -\begin{exercise} -\begin{code} -\xymatrix@dr@C=1pc{ - a \ar[r]\ar@{->>}[d] & a' \ar@{.>>}[d] \\ - b \ar@{.>>}[r] & b' } -\end{code} -% - Typeset the ``strip lemma'' $$\docode$$ -% -\answercode -\answertext{The author entered the display} -\answerdisplaycode -\end{exercise} - - -\subsection{Entry style} -??=[entries.style] -% - As mentioned above, the entries of a diagram are set in math mode in - text style. You may change this by redefinining the macro - ??c![\objectstyle]??w[entry style], and the label style by redefining - ??c![\labelstyle]??w[label style]. We can combine this with the - above to get ``small diagrams,'' \eg, typing -% -\begin{code} -$\left( - \def\objectstyle{\scriptstyle} - \def\labelstyle{\scriptstyle} - \vcenter{\xymatrix @-1.2pc @ur { - A \ar[r]^{a} & B \ar[d]^{b} \\ - A'\ar[u]^{a'} & B'\ar[l]^{b'} }} -\right)$ -\end{code} -\displaycode -% -\begin{code} -$\left( - \DEF\objectstyle{\scriptstyle} - \DEF\labelstyle{\scriptstyle} - \vcenter{\xymatrix @-1.2pc @ur { - A \ar[r]^{a} & B \ar[d]^{b} \\ - A'\ar[u]^{a'} & B'\ar[l]^{b'} }} -\right)$ -\end{code} -\noindent in a paragraph will typeset ``\begin{IMAGE}\docode\end{IMAGE}.'' - - You can even abandon the use of math mode entirely: the command - |\def| |\objectstyle| |{\hbox}|\ will change the format of entries to - plain text.??w[plain text entries] - - Similarly, all entries are rectangular by default, but it is possible - to change this to \emph{??w![round]??w[elliptical]??w[circular]} by - declaring the default \emph{modifiers}??w[object - modifier]??w[default modifier] to be applied to all entries that do - not override them (\cf\ section~??[arrows.objects]): -% -\begin{code} -\entrymodifiers={++[o][F-]} -\SelectTips{cm}{} -\xymatrix @-1pc { - *\txt{start} \ar[r] - & 0 \ar@(r,u)[]^b \ar[r]_a - & 1 \ar[r]^b \ar@(r,d)[]_a - & 2 \ar[r]^b - \ar `dr_l[l] `_ur[l] _a [l] - &*++[o][F=]{3} - \ar `ur^l[lll]`^dr[lll]^b [lll] - \ar `dr_l[ll] `_ur[ll] [ll] } -\end{code} -\displaycode -% -\noindent will typeset -% -\begin{displaymath} -\docode -\end{displaymath} -% - Notice how we obtain the double ring using the |*|\emph{object} - form which then has to include all the desired modifiers (and how the - use of computer modern tips is nice for diagrams as these). - - -\subsection{Naming for later use as targets} -??=[entries.naming] -% - If you build an entry with a long and complicated excursion then you - might wish to be able to refer to it later. \Xy-pic provides a - mechanism for this: there is a special ??w![target] form which we - haven't discussed yet: -% -\begin{defs1} - $t$ ??c![=]|"|\emph{name}|"| -\end{defs1} -\noindent\unskip -% - This will introduce the new target |"|\emph{name}|"| which will - refer to the target just before the |=|. This is particularly useful - inside excursions, of course, and can also be used after - labels??w[labels as targets]. - -\begin{exercise} -% -\begin{code} -\xymatrix{ - A \ar[r] ^a="a" & B \ar[r] ^b="b" & C - \ar @/^/ "a";"b" } -\end{code} -% - Typeset $\docode$. -% -\answercode -\answertext{The author typed } -\answerdisplaycode -\answertext{\noindent Notice the use - of both explicit base and target in the arrow between the labels.} -\end{exercise} - - -\subsection{Grouping objects} -??=[entries.grouping] -% - Sometimes you wish to frame or otherwise treat a rectangle of objects - as a single object??w[grouping]. This is possible with the last two - target position forms that we will mention: -% -\begin{defs} - $t$|.|$s$ & merge $t$ with simple $s$ \cr - |{|$t$|}| & make $t$ simple -\end{defs} -\noindent\unskip -% - The first will enlarge $t$ to also ``??w![cover]'' the ``simple'' $s$ - (simple means that it cannot have changes etc.\ attached unless - encapsulated in |{}|s). Here is an example where we ??w![merge] and - frame: -% -\begin{code} -\xymatrix @R=1pc { - 1,1 & 1,2 & 1,3 & 1,4 & 1,5 \\ - 2,1 & 2,2 & 2,3 & 2,4 & 2,5 - \save "1,2"."2,4"*[F.]\frm{} - \ar"1,1" \ar"2,1" \ar"1,5" \ar"2,5" - \restore } -\end{code} -\displaycode -\noindent will typeset -\begin{displaymath} -\docode -\end{displaymath} -% - As you can see, the center of the merged object is the same as the - one of the target \emph{before} the ``|.|.'' - - Finally a more advanced example where we create two merged objects - with center in their ``real'' center, ??w![name] them and then connect - to them. It also shows how macros can be used inside diagrams: they - should always expand to ``commands'' like |\ar|\dots, etc.: -% -\begin{displaymath} -\begin{code} -\def\g#1{\save - [].[dr]!C="g#1"*[F]\frm{}\restore}% -\xymatrix{ - \g1 A\ar[r]&B\ar[d]&\g2 A'\ar[r]&B'\ar[d]\\ - C\ar[u]&D\ar[l]& C'\ar[u]&D'\ar[l] - \ar @{.>} "g1" ;"1,4" - \ar @{-->} "2,1";"g2" } -\end{code} -\docode -\end{displaymath} -% - can be typeset by -% -\displaycode\noindent -% - Then we can make arrows from/to the two frames by using the two new - targets |"g1"| and |"g2"| as shown. - -\begin{exercise} -% - Change the lambda cube of exercise~??[x.cube] such it is enclosed in - a transparent (\ie, dotted) cube. -% -\answertext{The author added the \Xy-code} -\begin{code} -\save [].[dd].[ddrr].[rr]*[F.]\frm{}="back" - \restore -\end{code} -\answercode -\answerdisplaycode -\answertext{in the entry with $\lambda\omega$, and} -\begin{code} - \save [].[dd].[ddrr].[rr]*[F.]\frm{} - \ar@{.} +UL;"back"+UL \ar@{.} +UR;"back"+UR - \ar@{.} +DL;"back"+DL \ar@{.} +DR;"back"+DR - \restore -\end{code} -\answercode -\answerdisplaycode -\answertext{in the entry with $\lambda2$ to produce} -\begin{code} -\xymatrix @!0 { - & \lambda\omega \ar@{-}[rr]\ar@{-}'[d][dd] - \save [].[dd].[ddrr].[rr]*[F.]\frm{}="back"\restore - & & \lambda C \ar@{-}[dd] -\\ - \lambda2 \ar@{-}[ur]\ar@{-}[rr]\ar@{-}[dd] - \save [].[ddrr]*[F.]\frm{} - \ar@{.} +UL;"back"+UL \ar@{.} +UR;"back"+UR - \ar@{.} +DL;"back"+DL \ar@{.} +DR;"back"+DR \restore - & & \lambda P2 \ar@{-}[ur]\ar@{-}[dd] -\\ - & \lambda\underline\omega \ar@{-}'[r][rr] - & & \lambda P\underline\omega -\\ - \lambda{\to} \ar@{-}[rr]\ar@{-}[ur] - & & \lambda P \ar@{-}[ur] } -\end{code} -\answercode -\answertext{$$\begin{IMAGE}\docode\end{IMAGE}$$} -\end{exercise} - - - -\section{Availability and Further Information} -??=[avail] -% - Below we describe how to and the conditions for obtaining \Xy-pic - version~\xyversion, the compatibility with previous versions, and we - conclude with a few appetisers to lure the reader into reading more - about \Xy-pic. - - -\subsection{Getting \Xy-pic} -??=[avail.ftp] -% - The easiest way to retrieve??w[retrieving {\Xy}-pic] the latest version - of \Xy-pic is through the \Xy-pic home page~\cite{Xy-picHP} on the - ??w![World Wide Web]; it is also available by Internet ??w![ftp] from - \url{ftp://ftp.diku.dk/diku/users/kris/TeX/} as well as - \url{ftp://ftp.mpce.mq.edu.au/pub/maths/TeX/} in files starting with - |xy|. Finally, \Xy-pic has been contributed to the CTAN archives - where it is located in the directory \texttt{macros\slash generic\slash - diagrams\slash xypic}. - -\paragraph*{License:} -% - \Xy-pic is free software in the sense that it is available under the - following ??w![license]??w[copyright] conditions: -% -\begin{center}\ordinarybars -\begin{tabular}{|l|} - \hline - ~\Xy-pic: Graphs and Diagrams with \TeX~\\ - \quad\copyright~1991--1997\quad Kristoffer H. Rose\\ - \quad\copyright~1994--1997\quad Ross Moore\\ - \hline -\end{tabular} -\end{center} -% -\begin{quotation} -% - The \Xy-pic package is ??w![free software]; you can redistribute it - and/or modify it under the terms of the ??w![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 \emph{without any ??w![warranty]}; without even the - implied warranty of \emph{merchantability} or \emph{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. -% -\end{quotation} -% - In practice this means that you are free to use \Xy-pic for your - documents but if you distribute any part of \Xy-pic (including - modified versions) to someone then you are obliged to ensure that the - full source text of \Xy-pic is available to them (the full text of - the license in the file ??c![COPYING] explains this in somewhat more - detail~\smiley~). - - -\subsection{Backwards compatibility} -??=[compat] -% - The first widely distributed version of \Xy-pic was ??w![version 2] - (from release 1.40 to release 2.6). A special - \emph{??w![compatibility]} mode is used automatically if the - ??w![old style of loading] is used (using files named ??c![xypic.tex] - and ??c![xypic.sty]). You can also mix old and new diagrams in a - document if you load as described in section~??[basics.loading] and - add the declaration ??c![\xyoption]|{v2}|. This provides almost full - backwards compatibility: the following are the only known exceptions: -% -\begin{itemize} - -\item - Automatic ``shortening'' of arrow tails by ??c![|<<] break was a bug - and has been ``fixed'' so it does not work any more. \emph{Fix}: Put a - |||<\hole| break before it as described in section~??[arrows.styles]. - -\item - The release~2.6 ??c![*] position operator is not available. - \emph{Fix}: Use the |:| and |::| operators (described in detail in - the reference manual~\cite{RM95:Xy-picRM}). - -\item - Using $t_1|;|t_2|:(|x|,|y|)|$ as the target of an arrow command does - not work. \emph{Fix}: Enclose it in braces, \ie, write - $|{|t_1|;|t_2|:(|x|,|y|)}|$. - -\item - The old ??c![\pit], ??c![\apit], and ??c![\bpit] commands are not - defined. \emph{Fix}: Use |*@{>}| (or |\tip|) with variants and - rotation. - -\item - The even older notation where an argument in braces to |\rto| and the - others was automatically taken to be a ``tail'' is not supported. - \emph{Fix}: Use the supported |||<|\dots\ notation. - -\end{itemize} -% - Finally note that sometimes the spacing with version~\xyversion\ is - ``improved'' relative to earlier versions~\smiley~. Please report all - other things that do not work the same in version~2.6 and~\xyversion\ - to the author. - - -\subsection{Further reading} -??=[avail.further] -% - The reference manual~\cite{RM95:Xy-picRM} describes several more - input modes that are useful when the diagram is not organised as a - matrix. We'll give some examples of such diagrams but refer to the - reference manual for the details. -% -\begin{itemize} - -\item The ``??w![graph]'' feature allows input of data structured as - \emph{??w![directed graphs]} to make it easy to produce such - pictures as -% -\begin{displaymath} -% -% From xygraph.doc. -% -\begin{code} -\SelectTips{cm}{} -\objectmargin={1pt} -\xygraph{ !{0;(.77,-.77):0} - !~:{@{-}|@{>}} - w (:[r(.6)]{x_1} - ,:[d]z:[r]y:[u(.6)]{x_2}:@/_/"x_1" (:@/_/"x_2") :"z" - :@( {"w";"z"}, {"y";"z"})"z" :"x_2" ) } -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} - -\item The ``??w![knot]'' feature allows drawing of mathematical \emph{knots - and ??w![links]} like -% -% From xyknot.doc: -% -\begin{displaymath} -% -\UseComputerModernTips -\vtop{\vbox{\xygraph{!{0;/r1.5pc/:} !{\vover}[u] - !{\hcap[-2]<<} [d] !{\vover-} [ruu] !{\hcap[2]><}}\smallskip} -\hbox{\qquad\ \small simple link}}\hfil -% -% Figure-eight -% -\vtop{\vbox{\xygraph{!{0;/r1.5pc/:} - [u] !{\vloop<(-.005)\khole||\vcrossneg \vunder- } - [] !{\ar @{-}@'{p-(1,0)@+}+(-1,1)} - [ul] !{\vcap[3]>\khole} - [rrr] !{\ar @{-}@'{p-(0,1)@+}-(1,1)} -}\smallskip}\hbox{\small figure-8 knot}}\hfil\quad -% -% cinque-foil -% -\vtop{\vbox{\xygraph{!{0;/r1.25pc/:} - !P5"a"{~>{}} !P10"b"{~:{(1.7487,0):}~>{}} - !P20"c"{~={-9}~:{(2.2,0):}~>{}} - !{\xunderv~{"b3"}{"b2"}{"a2"}{"a1"}} - !{\xunderv~{"b5"}{"b4"}{"a3"}{"a2"}} - !{\xunderv~{"b7"}{"b6"}{"a4"}{"a3"}} - !{\xunderv~{"b9"}{"b8"}{"a5"}{"a4"}} - !{\xunderv~{"b1"}{"b10"}{"a1"}{"a5"}} - !{\vloop~{"c3"}{"c2"}{"b2"}{"b1"}<<} - !{\vloop~{"c7"}{"c6"}{"b4"}{"b3"}<<} - !{\vloop~{"c11"}{"c10"}{"b6"}{"b5"}<<} - !{\vloop~{"c15"}{"c14"}{"b8"}{"b7"}<<} - !{\vloop~{"c19"}{"c18"}{"b10"}{"b9"}<<} -}\smallskip}\hbox{\quad\ \small cinquefoil}} -% -\vbox{\hbox to 2em{\hss}} -\end{displaymath} - -\item The ``??w![2cell]'' feature provides special support for - \emph{categorical ??w![twocells]} like -% -\begin{displaymath} -% -% From xy2cell.doc. -% -\begin{code} -\begin{xy} - *+{A}="A",+<1cm,1.5cm>*+{B}="B", - +<2cm,0pt>*+{C}="C", - +<1cm,-1.5cm>*+{D}="D", -"A";"B",{\uppertwocell^\alpha{}}, -"B";"C",{\twocell^\zeta_\xi{\gamma}}, -"C"; \afterPOS{\drop\compositemap{}}"D" -\POS "A"; - \afterPOS{\drop\lowertwocell{}}"D" -\end{xy} -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} - -\item The ``??w![poly]'' feature allows \emph{??w![polygon-like]} - structures: -% -\begin{displaymath} -% -% From xypoly.doc: -% -\begin{code} -\begin{xy} -/r2pc/: ="A", +(.2,1.5)="B","A", -{\xypolygon6{~:{(1,-.1):(0,.33)::} - ~<>{;"B"**@{-}}}}\endxy -\qquad \xy /r2pc/: -{\xypolygon4"A"{~:{(0,.7)::}}},+(.7,1.1), -{\xypolygon4"B"{~:{(.8,0):(0,.75)::}}}, -"A1";"B1"**@{.},"A2";"B2"**@{.}, -"A3";"B3"**@{.},"A4";"B4"**@{.} -\endxy\qquad \xy /r2pc/: -{\xypolygon3"A"{~:{(0,.7)::}}},+(.7,1.1), -{\xypolygon3"B"{~:{(-.85,0):(-.15,.8)::}}} -,"A1"\PATH~={**@{.}}'"B2"'"A3"'"B1" -'"A2"'"B3"'"A1" -\end{xy} -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} - -\item The ``??w![web]'' feature allows composition in lattices such as -% -\begin{displaymath} -% -% From xyweb.doc: -% -\begin{code} -\def\latticebody{\dimen0=\latticeX pt - \ifdim\dimen0>0pt \divide\dimen0 by 64 - \dimen0=\latticeY\dimen0 \relax - \ifdim 0pt>\dimen0 \dimen0=-\dimen0 \fi - \ifdim 2.5pt>\dimen0 \drop{\bullet}% - \else\drop{.}\fi \else\drop{.}\fi} -\begin{xy} -*\xybox{0;<1.5pc,1.28mm>:<.41pc,1.12pc>:: -,0,{\croplattice{-3}5{-5}5 - {-1.3}{4.5}{-3.4}{4.4}}}="L" -,{"L"+L \ar "L"+!R*+!L{\sigma^{(1)}}} -,{"L"+D \ar "L"+!U*+!D{\sigma^{(2)}}} -\end{xy} -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} - -\item The ``??w![arc]'' feature is suitable for effects like -% -\begin{displaymath} -% -% From xyarc.doc: -% -\begin{code} -\begin{xy} -0;/r5pc/:*@{*}="p",*+!DR{p}; -p+(.5,-.5)*@{*}="c",*+!UL{c}**@{-} -,"c",{\ellipse<15pt>_,=:a(45){=}} - ,{\ellipse<>__,=:a(30){-}} -,{\ellipse(1,.4){.}} - ,{\ellipse(1,.4)_,=:a(120){--}} -,{\ellipse(,.75){.}} - ,{\ellipse(,.75)_,^,^{-}} -\end{xy} -\end{code} -\begin{IMAGE} -\docode -\end{IMAGE} -\end{displaymath} - -\end{itemize} -% - In each case the figure is produced with relatively few lines using - techniques documented in the respective sections of the reference - manual together with the details of the \Xy-pic kernel and - extensions, ``arrow,'' and ``matrix'' features as used in this guide; - further extensions provide support for use of colour, \PS\ effects, - and much more. - - Finally, the following documents might prove useful: \emph{How to - Typeset Pretty Diagram Arrows with {\TeX}}~\cite{R92:HowTPDAT} - presents some of the design decisions behind \Xy-pic, - \emph{{\Xy}-pic and Notation for Categorical - Diagrams}~\cite{R94:Xy-picNCD} explains how the modularity of \Xy-pic - can be used to obtain complex effects with commutative diagrams, and - \emph{Typesetting Neural Nets using - {\Xy}-pic}~\cite{M94:TypesettingNNX} explains how \emph{neural - networks} can be typeset using the package. Finally, a collection of - complex examples is maintained on the \Xy-pic home page and the ftp - servers discussed above. - - -\subsection{Credits} -??=[avail.credits] -% - \Xy-pic version 2 was a small package created by the author. The - present version \xyversion\ is the result of more than three years of - continued collaboration with Ross Moore,\footnote{Mathematics - Department, Macquarie University, Sydney, Australia 2109; - e-mail: ross@mpce.mq.edu.au.} and would never have been developed - without his support and \TeX-nical expertise.\footnote{Partial - funding for this collaboration has been provided by a Macquarie - University Research Grant (MURG), by the Australian Research Council - (ARC), and through a research agreement with the Digital Equipment - Corporation (DEC).} This includes many of the modes mentioned above - which were created for use within specialised branches of - mathematics, however, the notations are designed to fit quite - naturally within the framework of \Xy-pic and are useful more - generally. Finally, we are grateful to Y\&Y Inc.\ for making very - nicely done \PS\ versions of the \Xy-pic fonts available. - - -\appendix\section{Answers to all exercises} -\Answers - -\BIBLIOGRAPHY -\INDEX - -\end{document} - - -% $Log: xyguide.man,v $ -% Revision 3.6 1998/03/06 01:28:05 krisrose -% Releasing (with Y&Y fonts). -% -% Revision 3.5 1997/05/29 21:02:36 krisrose -% Fixed "missing breaks"...and tidied up documentation! -% -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 13:17:15 krisrose -% Maintenance release. -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% Reformatted for LaTeX with companion xydoc.sty. -% Renamed from xypicman.doc to xyguide.man. -% -% Revision 2.6.1.1 1992/07/01 07:08:24 kris -% Send to EuroTeX '92... -% -% Revision 2.6 1992/06/24 01:23:34 kris -% Reorganised... -% Documented new features: hooks, triple lines, positions, and LaTeXdiagrams. -% -% Revision 2.5 1992/02/24 03:30:54 kris -% Documented changes in xypic.doc[2.5]. -% -% Revision 2.4 1992/01/22 02:15:10 kris -% Cosmetic changes; removed \pit and introduced \rotate. -% -% Revision 2.3 1992/01/13 01:51:02 kris -% Changed to use `pure' XPPT [1.20]. -% Several cosmetic changes, e.g., corrected definition of \ddtor in footnote. -% -% Revision 2.2 1992/01/09 04:05:40 kris -% Patched to fix problem with \text and support AMS-LaTeX. -% -% Revision 2.1 1992/01/02 14:54:07 kris -% Release version. -% -% Revision 1.7 1991/12/17 04:53:23 kris -% Version distributed as `final draft' on Usenet. -% Added bent arrows properly; support for double tips; proper \Text; -% fixed name clashes... -% This version is for bug fixes only!! -% -% Revision 1.6 1991/12/06 08:53:06 kris -% Draft ready for wider distribution... -% Fits xypic.doc[1.39]; still needs better examples. -% -% Revision 1.5 1991/12/03 07:53:28 kris -% Extended with the xypic.doc[1.37] possibility for exotic arrow -% tips; also added description of \merge. -% -% Revision 1.4 1991/12/02 06:08:42 kris -% Fixed various things; fits xypic.doc[1.36]. -% -% Revision 1.3 1991/12/01 07:40:07 kris -% Corresponds to xypic.doc[1.35]. -% -% Revision 1.2 1991/11/28 04:42:49 kris -% Corresponds to xypic.doc[1.34]. -% Cleaned up a lot; now only bending arrows are missing...and good examples. -% -% Revision 1.1 1991/11/27 06:48:17 kris -% Initial: \beta-test on DIKU. -% -% Based on version in DIKU student report 91-7-10. - - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyidioms.doc b/Master/texmf-dist/source/generic/xypic/xyidioms.doc deleted file mode 100644 index 6fe56625ac5..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyidioms.doc +++ /dev/null @@ -1,283 +0,0 @@ -%% $Id: xyidioms.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -%% -%% Format-dependent idioms for Xy-pic. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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@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\xyidiomsloaded\empty \message{not reloaded}\endinput \fi -\let\xyidiomsloaded=\empty - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This included file provides some common ??w![idioms] whose definition - depends on the used format such that \Xy-pic can use predefined - ??w![dimension registers] etc.\ and yet still be independent of the - format under which it is used. The current ??w![version] - (\stripRCS$Revision: 3.4 $) handles ??w![plain \TeX] (version 2 - and 3~\cite{K84:TeXbook}), ??w![\AMS-\TeX] (version 2.0 and - 2.1~\cite{S90:JoyT}), ??w![\LaTeX] (version 2.09~\cite{L86:LaTeX} - and~$2\varepsilon$~\cite{L94:LaTeX}), ??w![\AMS-\LaTeX] (version 1.0, - 1.1~\cite{AMS91:AMS-LaTeX}, and~1.2), and eplain (version - 2.6~\cite{B94:ExpandedPT})\footnote{The `v2' feature introduces some - name conflicts, in order to maintain compatibility with earlier - versions of \Xy-pic.\hfill}. - ??w[system dependencies]??w[format dependencies] - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:} -\DOCHEADER -\noindent - This is a separate file so that we can abort the definitions easily - using |\endinput|. - -\paragraph*{Scratch registers:} -% - All the formats currently treated allow the use of the following - plain \TeX\ ??w![scratch register conventions] - (\cf~\cite[p.346]{K84:TeXbook}) -% -\begin{itemize} -\item - |\count@| is available as a local scratch counter register. -\item - |\dimen@|, |\dimen@i|, |\dimen@ii|, |\dimen3| to |\dimen9|, and - |\dimen255| are available as scratch dimension registers. -\item - |\skip@|, |\skip1| to |\skip9|, and |\skip255| are available as - scratch skip registers. -\item - |\toks@| and |\toks1| to |\toks9| are available as scratch token - lists. -\item - |\boxz@| and |\box1| to |\box9| are available as scratch box - registers. -\end{itemize} -% - with the constraint that ??c![\global] should never (always) - be used when assigning to number 0, 2, 4, 6, 8, and 255 (1, 3, 5, 7, - and 9). - -\paragraph*{\Xy-specific scratch registers:} -% - We first give new names to dimension registers 4, 6, and 8, since - none of the formats do that: |\A@|, |\B@|, and |\R@| are specific to - \Xy-pic and will be referred to as ??w![$A$], ??w![$B$], and - ??w![$R$] in comments. - -\DOCMODE( -\xywarnifdefined\A@ \dimendef\A@=4 -\xywarnifdefined\B@ \dimendef\B@=6 -\xywarnifdefined\R@ \dimendef\R@=8 -\DOCMODE) - - Some shared scratch registers are defined last. - -\paragraph*{Idioms:} -% - First check that |\undefined| is indeed undefined\dots or rather: the - same as an extremely unlikely control sequence that we are making up: - -\DOCMODE( -\ifx\undefined\AveryUNLIKELYc@ntr@lSEQUENCE@@\else -\errmessage{Xy-pic Error: \string\undefined\space defined.}\fi -\DOCMODE) - - These idioms are so common they are just conditionally defined: - -\DOCMODE( -\ifx\undefined\literal@ \def\literal@#1{#1}\fi -\ifx\undefined\eat@ \def\eat@#1{}\fi - -\xydef@\xyFN@{\futurelet\next} % Now private because of AMS-LaTeX change. -\ifx\undefined\DN@ \def\DN@{\def\next@}\fi -\ifx\undefined\DNii@ \def\DNii@{\def\nextii@}\fi - -\ifx\undefined\setboxz@h\def\setboxz@h{\setbox\z@\hbox}\fi -\ifx\undefined\wdz@ \def\wdz@{\wd\z@}\fi -\ifx\undefined\boxz@ \def\boxz@{\box\z@}\fi - -\ifx\undefined\W@ \def\W@{\immediate\write16 }\fi - -\ifx\undefined\space@ \def\space@.{\futurelet\space@\relax}\space@. \fi - -\ifx\undefined\notempty \def\notempty#1{T\if @#1@F\else T\fi}\fi -\DOCMODE) - -\paragraph*{Delayed setup:} -% - This is used when it is advantageous to delay loading of something - until after the preamble, \ie, after all options, \etc, have been - loaded. This is particularly true for nested ??c![\xywithoption] - uses that will otherwise be executed repeatedly. Currently properly - supported with \LaTeXe\ and the |amsppt| style of \AMS-\TeX. - -\DOCMODE( -\xydef@\xysetup@dummy#1{\xyuncatcodes#1} -\xywarnifdefined\xysetup@@ - -\ifx\AtEndDocument\undefined - \expandafter\ifx\csname amsppt.sty\endcsname\relax - \let\xysetup@@=\xysetup@dummy - \else - \def\xysetup@@#1{% - \expandafter\def\expandafter\topmatter\expandafter{\topmatter - #1\xyuncatcodes}}\fi -\else - \def\xysetup@@#1{\AtBeginDocument{#1\xyuncatcodes}} -\fi - -\ifx\xysetup@@\xysetup@dummy\else - \xysetup@@{\let\xysetup@@=\xysetup@dummy \xyuncatcodes}\fi -\DOCMODE) - - Similarly, the following provides a place to insert `trailing - messages' if the format supports it; otherwise it just throws away - the argument (useful for repeating the most important warnings). - -\DOCMODE( -\xywarnifdefined\xyclosedown@@ - -\ifx\AtEndDocument\undefined \let\xyclosedown@@=\eat@ -\else \def\xyclosedown@@#1{\AtEndDocument{#1}}\fi -\DOCMODE) - - This may be useful to hook into specialised mechanisms for including - |\special| material on the page. - -\DOCMODE( -\xylet@\xy@begindvi=\literal@ -\DOCMODE) - - For example, \LaTeXe\ (post Dec~'94) defines an |\AtBeginDvi| macro - to allow zero-sized material to be placed at the beginning of each - shipped-out page. Among other uses, this allows such material not to - be discarded, when on a page containing only floats. This is used by - \Xy-pic in connection with the \PS\ header dictionary |xyps-ps.doc|. - -\DOCMODE( -\ifx\undefined\AtBeginDvi\else - \AtBeginDocument{\let\xy@begindvi=\AtBeginDvi} - \AtBeginDvi{\global\let\xy@begindvi=\literal@}\fi -\DOCMODE) - -\paragraph*{Shared scratch registers:} -% - Everything else in this file is also done by \AMS-\TeX\ so we exit - here when using that format after renaming their |\toks@@| to - |\toks@ii|\dots - -\DOCMODE( -\ifx\amstexloaded@\relax -\xylet@\toks@ii=\toks@@ \endinput \fi -\DOCMODE) - - Thus the job of allocating scratch registers is simple except for - counters where we only have one so we use \LaTeX\ scratch counters - when available and otherwise allocate two new ones: - -\DOCMODE( -\ifx\@tempcnta\undefined -\xynew@{count}\count@@ -\xynew@{count}\count@@@ -\else -\xylet@\count@@=\@tempcnta -\xylet@\count@@@=\@tempcntb -\fi -\DOCMODE) - - Finally the second scratch token register not available with \LaTeX. - -\DOCMODE( -\ifx\undefined\toks@ii \toksdef\toks@ii=2 \fi -\DOCMODE) - -\paragraph*{End \& log:} -% - That's all. - -\DOCMODE( -\endinput - -% $Log: xyidioms.doc,v $ -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% Revision 2.9 1994/06/09 15:02:49 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% Now contains scratch register allocations. -% Cleaned of AMS-TeX special macros. -% Renamed from xyamstex.doc to xyidioms.doc for version 2.7. -% -% Revision 2.4 1992/01/22 02:15:10 kris -% \\ works with AMS-LaTeX: don't use \Let@ [Werner Struckmann/Darrel Hankerson] -% Made redefinition of \text conditional. -% -% Revision 2.3 1992/01/10 21:43:09 kris -% Fixed AMS-LaTeX name clash problems. -% -% Revision 2.2 1992/01/09 04:05:40 kris -% Patched to fix problem with \text and support AMS-LaTeX. -% -% Revision 2.1 1992/01/02 14:55:27 kris -% Release version. -% -% Revision 1.3 1991/12/17 04:51:16 kris -% Version distributed with `final draft' on Usenet. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyimport.doc b/Master/texmf-dist/source/generic/xypic/xyimport.doc deleted file mode 100644 index a2cff8f9642..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyimport.doc +++ /dev/null @@ -1,245 +0,0 @@ -%% $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} diff --git a/Master/texmf-dist/source/generic/xypic/xyknot.doc b/Master/texmf-dist/source/generic/xypic/xyknot.doc deleted file mode 100644 index e3c3f132b92..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyknot.doc +++ /dev/null @@ -1,2014 +0,0 @@ -%% $Id: xyknot.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -%% -%% Xy-pic ``Knots and Links'' feature. -%% Copyright (c) 1994-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 macro package; if not, write to the Free Software Foundation, -%% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -%% -\ifx\xyloaded\undefined \input xy \fi - -\xyprovide{knot}{Knots and Links feature}{\stripRCS$Revision: 3.4 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent - This feature provides a language for specifying knots, links and - general arrangements of crossing strings. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\TODO: Document this feature! - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\DOCMODE( -\message{knots and links,} -\DOCMODE) - -This |knot| feature is really a `construction kit', providing pieces which -may be placed appropriately to form knots and links. -The types of pieces provided are of two kinds: the ``crossings'', -representing one string crossing over or under another; -and ``joins'' which are used to connect what would otherwise be loose ends. -Several types of each are provided, along with a simple way of specifying -where to place arrowheads and labels. - -\begin{figure*}[tb] -\begin{syntax} -% - <knot-piece> - &\iss & <piece><scale><knot-labels> - & interpret knot-piece -\cr -\noalign{\smallskip} -% - <piece> - &\iss & <crossing>\orr<join> - & piece is a ??!^[crossing] or a ??!^[join] -\cr -\noalign{\smallskip} -% - <scale> - &\iss & <empty>\orr~|-|~\orr |[|<num>|]| - & invert or ??!^[scale the knot piece]; \cr -& & \orr |~|<pos><pos><pos><pos> - & ??!^[alter size and shape] using the <pos>s -\cr -% -\noalign{\smallskip} -<knot-labels> - &\iss & <empty>\orr <knot-tips><knot-labels> - & arrowtips at ends, aligned with orientation -\cr -% -\noalign{\smallskip} - & & \orr <where><what><knot-labels> - & list??^[knot-labels] of ??!^[arrowtips, breaks and labels] -\cr -% -\noalign{\smallskip} - & & \orr |@|<adjust><knot-labels> - & ??!^[adjust hole] position for a <crossing>; - \newline adjust other parameter??^[join control] for a <join>. -\cr -% -\noalign{\smallskip} - <knot-tips> - & \iss &~~~|==|\orr|=!| & ??!^[arrowtips] at both/neither end - \cr - & & \orr|=<|\orr|=>| & ??!^[arrowtips] also at start/finish -\cr -\noalign{\smallskip} -% - <where> - & \iss &~~~||||\orr||||<adjust> & `over' string on a <crossing>;% - ??^[which string] - \newline middle??^[join places] place on a <join>. -\cr - & & \orr|<|\orr|<|<adjust> & initial portion of `under' string - on a <crossing>;??^[which string] - \newline earlier??^[join places] place on a <join>. -\cr - & & \orr|>|\orr|>|<adjust> & final portion of `under' string - on a <crossing>;??^[which string] - \newline later??^[join places] place on a <join>. -\cr -% -\noalign{\smallskip} - <adjust> - & \iss &~~~|(+|<num>|)|\orr|(-|<num>|)| - & ??!^[adjustment] from current value of parameter -\cr - & & \orr|(=|<num>|)|\orr|(|<num>|)| & set parameter value??^[adjustment] -\cr -\noalign{\smallskip} -% - <what> - &\iss & ~~~|>|\orr|<| & arrowhead aligned with/against ??!^[orientation] -\cr - & & \orr|\knothole|\orr|\khole| & leave ??!^[hole in the string] -\cr - & & \orr|{|<text>|}| & set??^[simple label] <text> as label, - using |\labelstyle| -\cr - & & \orr|{*|<object>|}| & drop <object>??^[knot object] -\cr - & & \orr|{|<anchor><it>|}| & <break> or label??^[knot object] - as on an <arrow> -\cr - & & \orr|||| & ??!^[null-break] -\cr -% -\end{syntax} -\caption{\protect<knot-piece> construction set} -??=[f.path] -\end{figure*} - - -All the pieces ultimately use curves from the |curve| extension, usually -indirectly via the |arrow| feature. -As such, processing can be memory-intensive and may seem rather slow. -All the warnings and advice given elsewhere on techniques to handle pages -and individual diagrams with many curves are especially applicable when -using this feature. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -Most constructions use |\ar| so make sure this feature is loaded. - -\DOCMODE( -\xyrequire{arrow}\xycatcodes -\DOCMODE) -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\centerline{ -% -\UseComputerModernTips -\vtop{\vbox{\xygraph{!{0;/r1.5pc/:} !{\vover}[u] - !{\hcap[-2]<<} [d] !{\vover-} [ruu] !{\hcap[2]><}}\smallskip} -\hbox{\qquad\ \small simple link}}\hfil -% -% Figure-eight -% -\vtop{\vbox{\xygraph{!{0;/r1.5pc/:} - [u] !{\vloop<(-.005)\khole||\vcrossneg \vunder- } - [] !{\ar @{-}@'{p-(1,0)@+}+(-1,1)} - [ul] !{\vcap[3]>\khole} - [rrr] !{\ar @{-}@'{p-(0,1)@+}-(1,1)} -}\smallskip}\hbox{\small figure-8 knot}}\hfil\quad -% -% cinque-foil -% -\vtop{\vbox{\xygraph{!{0;/r1.25pc/:} - !P5"a"{~>{}} !P10"b"{~:{(1.7487,0):}~>{}} - !P20"c"{~={-9}~:{(2.2,0):}~>{}} - !{\xunderv~{"b3"}{"b2"}{"a2"}{"a1"}} - !{\xunderv~{"b5"}{"b4"}{"a3"}{"a2"}} - !{\xunderv~{"b7"}{"b6"}{"a4"}{"a3"}} - !{\xunderv~{"b9"}{"b8"}{"a5"}{"a4"}} - !{\xunderv~{"b1"}{"b10"}{"a1"}{"a5"}} - !{\vloop~{"c3"}{"c2"}{"b2"}{"b1"}<<} - !{\vloop~{"c7"}{"c6"}{"b4"}{"b3"}<<} - !{\vloop~{"c11"}{"c10"}{"b6"}{"b5"}<<} - !{\vloop~{"c15"}{"c14"}{"b8"}{"b7"}<<} - !{\vloop~{"c19"}{"c18"}{"b10"}{"b9"}<<} -}\smallskip}\hbox{\quad\ \small cinquefoil}} -}% - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection*{Crossings} - -A ``crossing'' is intended to represent two strings passing close by, -but not meeting. The macros provided specify typesetting within a square -cell of coordinate values; using a non-square basis alters this shape, -but see also note~??[alter size and shape] below, for the technique -that was used in the ``cinquefoil'' example above. - -\begin{notes} -\note??=[crossing] -Several families of crossing are provided. Those having names as |\v...| -and |\h...| are designed to stack respectively vertically and -horizontally. More precisely the current <pos> starts at the top-left -corner and finishes at either the bottom-left or top-right. -Say that a crossing is either a `vertical crossing' or `horizontal -crossing' respectively. - -This certainly applies to the |\..cross..| and |\..twist..| families, -see figure~??[f.crossings] in which the strings enter and leave the -square all with vertical tangents or all with horizontal tangents. -Indeed {\em all} crossings are either vertical or horizontal, with -the final letter indicating which for the |\xover..| families. - -Furthermore there is a natural {\em orientation\/} for each crossing, -as well as along each strand. This corresponds to the order in which ink -is applied to the printed page, following the natural parametrization of -each strand as a curved connection or arrow. -This orientation determines whether a crossing is `over' (mathematically, -positive or right-handed) or `under' (mathematically, negative or -left-handed). It is used in determining the location of labels and the -direction of arrowheads placed along the strings. -Note that |\..cross..| and |\..twist..| crossings may set the same -curves, but with different orientation and label-positioning. - -\begin{figure*}[ht] -$$ -\knotholesize{5pt}\UseComputerModernTips - \xygraph{!{0;/r2pc/:}="O" - [] !{\vcross<>|>>><{x}|{y}>{z}} - [rur]!{\vcrossneg<>|>>><{x}|{y}>{z}} - [rur]!{\vuncross<>|>>><{x}|{y}>{z}} - [urrr]!{\hcross<>|>>><{x}|{y}>{z}} - [r]!{\hcrossneg<>|>>><{x}|{y}>{z}} - [r]!{\huncross<>|>>><{x}|{y}>{z}} - "O" !{+(.5,-1.5)} - [] !{*\txt\small\tt{\string\vcross}} - [rr]!{*\txt\small\tt{\string\vcrossneg}} - [rr]!{*\txt\small\tt{\string\vuncross}} - [rrr]!{*\txt\small\tt{\string\hcross}} - [rr]!{*\txt\small\tt{\string\hcrossneg}} - [rr]!{*\txt\small\tt{\string\huncross}} - "O" !{+(0,-3)} - [] !{\vtwist<>|>>><{x}|{y}>{z}} - [rur]!{\vtwistneg<>|>>><{x}|{y}>{z}} - [rur]!{\vuntwist<>|>>><{x}|{y}>{z}} - [urrr]!{\htwist<>|>>><{x}|{y}>{z}} - [r]!{\htwistneg<>|>>><{x}|{y}>{z}} - [r]!{\huntwist<>|>>><{x}|{y}>{z}} - "O" !{+(.5,-4.5)} - !{*\txt\small\tt{\string\vtwist}} - [rr]!{*\txt\small\tt{\string\vtwistneg}} - [rr]!{*\txt\small\tt{\string\vuntwist}} - [rrr]!{*\txt\small\tt{\string\htwist}} - [rr]!{*\txt\small\tt{\string\htwistneg}} - [rr]!{*\txt\small\tt{\string\huntwist}} - "O" !{+(0,-6)} - []!{\xoverv<>|>>><{x}|{y}>{z}} - [urr]!{\xunderv<>|>>><{x}|{y}>{z}} - [urr]!{\xunoverv<>|>>><{x}|{y}>{z}} - [urrr]!{\xoverh<>|>>><{x}|{y}>{z}} - [r]!{\xunderh<>|>>><{x}|{y}>{z}} - [r]!{\xunoverh<>|>>><{x}|{y}>{z}} - "O" !{+(.5,-7.5)} - !{*\txt\small\tt{\string\xoverv}} - [rr]!{*\txt\small\tt{\string\xunderv}} - [rr]!{*\txt\small\tt{\string\xunoverv}} - [rrr]!{*\txt\small\tt{\string\xoverh}} - [rr]!{*\txt\small\tt{\string\xunderh}} - [rr]!{*\txt\small\tt{\string\xunoverh}} - "O" !{+(0,-9)} - !{\vover<>|>>><{x}|{y}>{z}} - [rur]!{\vunder<>|>>><{x}|{y}>{z}} - [rur]!{\vunover<>|>>><{x}|{y}>{z}} - [urrr]!{\hover<>|>>><{x}|{y}>{z}} - [r]!{\hunder<>|>>><{x}|{y}>{z}} - [r]!{\hunover<>|>>><{x}|{y}>{z}} - "O" !{+(.5,-10.5)} - !{*\txt\small\tt{\string\vover}} - [rr]!{*\txt\small\tt{\string\vunder}} - [rr]!{*\txt\small\tt{\string\vunover}} - [rrr]!{*\txt\small\tt{\string\hover}} - [rr]!{*\txt\small\tt{\string\hunder}} - [rr]!{*\txt\small\tt{\string\hunover}} -}$$ -\caption{knot crossings with orientations and label positions}% -??=[f.crossings] -\end{figure*} - -\noindent -Figure~??[f.crossings] displays the orientation on all the crossings, -grouping them into subfamilies consisting of right-handed, left-handed -and non-crossings. Also indicated are the default positions for labels -and arrow-tips; each piece uses the same code for tips and labels, -e.g. |\vover<>||>>><{x}||{y}>{z}|. - -The |\x...| crossings do not stack easily since their tangents are at -$45^\circ$ to the coordinate axes. It is the last letter in the name -which denotes whether the particular crossing is vertical or horizontal. -On the other hand |\vover|\,, |\vunder| etc. stack vertically on top of -a |\vcross|\,, |\vtwist| etc.; similarly |\hover| stacks at the left -of |\hcross|\,, |\htwist| etc. - -\begin{code} -$$\xy 0;/r1pc/: - ,{\vunder\vtwist\vtwist\vunder-}\endxy -\qquad\qquad\qquad \xy 0;/r1pc/:+(0,-1.5) - ,{\hover\hcross\hcross\hover-}\endxy$$ -\end{code} -\docode -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Parsing} - -\DOCMODE( -\xydef@\xykparsecross@{% - \def\xykSCALE@@{}\edef\xyknotPLACE{\xykmidPLACE@}% - \let\xykparser@=\xykparsecross@@ - \def\xykdefaultbreak@{\let\xykbreak@=\xykforetemp@ - \def\xyknotPLACE{(.5)}\appendtoholder@}% - \xyFN@\xykparsescale@ } - -{\xyuncatcodes \catcode`@=11 -\gdef\next{% - \ifx\space@\next \expandafter\DN@\space{\xyFN@\xykparsecross@@}% - \else\addLT@\ifx\next \addLT@\DN@{\xyprecross@}% - \else\addGT@\ifx\next \addGT@\DN@{\xypostcross@}% - \else\addEQ@\ifx\next \addEQ@\DN@{\xyFN@\xykparsetips@@}% - \else\ifx|\next\DN@|{\xymidcross@}% - \else\addAT@\ifx\next \addAT@\DN@(##1){% - \xyadjustBREAK@i##1@@\xyFN@\xykparsecross@@}% - \else\DN@{\afterknot@}% - \fi\fi\fi\fi\fi\fi \next@ }} -\xylet@\xykparsecross@@=\next -\DOCMODE) - -\DOCMODE( -\xydef@\xyprecross@{% - \def\xykholder@{\xykprebreak@@}% - \edef\xyknotPLACE{\xykprePLACE@}% - \xyFN@\xykparsebreak@} - -\xydef@\xypostcross@{% - \def\xykholder@{\xykpostbreak@@}% - \edef\xyknotPLACE{\xykpostPLACE@}% - \xyFN@\xykparsebreak@} - -\xydef@\xymidcross@{% - \def\xykholder@{\xykmidbreak@@}% - \edef\xyknotPLACE{\xykmidPLACE@}% - \xyFN@\xykparsebreak@} -\DOCMODE) - -These macros are common to most crossings. - -\DOCMODE( -\xydef@\xykcross@#1{\xykcheckTIPS@ - \expandafter\toks@\expandafter{\expandafter#1\knotSTYLE}} - -\xydef@\xykoverstring@{\addtotoks@{{}}\xykmidbreak@ \xyknottips@} -\xydef@\xykunderstring@{\xykprebreak@ \xykpostbreak@ \xyknottips@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{``cross'' crossings:} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The initialisation\dots - -\DOCMODE( -\xydef@\vcross{\begingroup\def\afterknot@{\xyvcross}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% -\xydef@\hcross{\begingroup\def\afterknot@{\xyhcross}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% -\xydef@\vcrossneg{\begingroup\def\afterknot@{\xyvcrossneg}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% -\xydef@\hcrossneg{\begingroup\def\afterknot@{\xyhcrossneg}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% -\xydef@\vuncross{\begingroup\def\afterknot@{\xyvuncross}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% -\xydef@\huncross{\begingroup\def\afterknot@{\xyhuncross}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% -\DOCMODE) - -The interface\dots - -\DOCMODE( -\xydef@\xyvcross{\xykcross@\xykcrossv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyhcross{\xykcross@\xykcrossh - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyvcrossneg{\xykcross@\xykcrossv - \xykunderstring@ \xykoverstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyhcrossneg{\xykcross@\xykcrossh - \xykunderstring@ \xykoverstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyvuncross{\xykcross@\xykuncrossv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyhuncross{\xykcross@\xykuncrossh - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} -\DOCMODE) - -The drawing code\dots - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<",{\xykz_\ar #1@'{"_<"**{}?(.25)@+,?+(.375,0)@+, - "_>";"^>"**{}?-(.375,0)@+,?(.25)@+}"_>"#3#4#5}, - "_<",{\xykz^\ar #2@'{"^<"**{}?(.25)@+,?+(.375,0)@+, - "^>";"_>"**{}?-(.375,0)@+,?(.25)@+}"^>"#6#7#8} - \restore\POS #9}} -\xylet@\xykcrossv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "_<",{\xykz_\ar #1@'{"_>"**{}?(.25)@+,?+(0,.375)@+, - "^>";"^<"**{}?-(0,.375)@+,?(.25)@+}"^>"#3#4#5}, - "_>",{\xykz^\ar #2@'{"_<"**{}?(.25)@+,?+(0,.375)@+, - "^<";"^>"**{}?-(0,.375)@+,?(.25)@+}"^<"#6#7#8} - \restore\POS #9}} -\xylet@\xykcrossh=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<",{\xykz^\ar #1@'{"_<"**{}?(.25)@+,?(.375)+(.375,0)@+, - "^>";"_>"**{}?(.375)-(.375,0)@+,?(.25)@+}"^>"#3#4#5}, - "_<",{\xykz^\ar #2@'{"^<"**{}?(.25)@+,?(.375)+(.375,0)@+, - "_>";"^>"**{}?(.375)-(.375,0)@+,?(.25)@+}"_>"#6#7#8} - \restore\POS #9}} -\xylet@\xykuncrossv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "_<",{\xykz^\ar #1@'{"_>"**{}?(.25)@+,?(.375)+(0,.375)@+, - "^<";"^>"**{}?(.375)-(0,.375)@+,?(.25)@+}"^<"#3#4#5}, - "_>",{\xykz^\ar #2@'{"_<"**{}?(.25)@+,?(.375)+(0,.375)@+, - "^>";"^<"**{}?(.375)-(0,.375)@+,?(.25)@+}"^>"#6#7#8} - \restore\POS #9}} -\xylet@\xykuncrossh=\next -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{``over'' crossings:} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The initialisation\dots - -\DOCMODE( -\xydef@\vover{\begingroup\def\afterknot@{\xyvover}% - \def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{|(.725)\knothole}% - \xyFN@\xykparsecross@ }% - -\xydef@\hover{\begingroup\def\afterknot@{\xyhover}% - \def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{|(.725)\knothole}% - \xyFN@\xykparsecross@ }% - -\xydef@\vunder{\begingroup\def\afterknot@{\xyvunder}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.8)}% - \def\xykmidPLACE@{(.2)}\def\xykpostbreak@@{|(.275)\knothole}% - \xyFN@\xykparsecross@ }% - -\xydef@\hunder{\begingroup\def\afterknot@{\xyhunder}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.8)}% - \def\xykmidPLACE@{(.2)}\def\xykpostbreak@@{|(.275)\knothole}% - \xyFN@\xykparsecross@ }% - -\xydef@\vunover{\begingroup\def\afterknot@{\xyvunover}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% - -\xydef@\hunover{\begingroup\def\afterknot@{\xyhunover}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% - - -\xydef@\xoverv{\begingroup\def\afterknot@{\xyxoverv}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}% - \def\xykmidPLACE@{(.15)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% - -\xydef@\xunderv{\begingroup\def\afterknot@{\xyxunderv}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}% - \def\xykmidPLACE@{(.15)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% - -\xydef@\xoverh{\begingroup\def\afterknot@{\xyxoverh}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}% - \def\xykmidPLACE@{(.15)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% - -\xydef@\xunderh{\begingroup\def\afterknot@{\xyxunderh}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}% - \def\xykmidPLACE@{(.85)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% - -\xydef@\xunover{\begingroup\def\afterknot@{\xyxunover}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}% - \def\xykmidPLACE@{(.15)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% - -\xydef@\xunoverv{\begingroup\def\afterknot@{\xyxunoverv}% - \def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.8)}% - \def\xykmidPLACE@{(.2)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% - -\xydef@\xunoverh{\begingroup\def\afterknot@{\xyxunoverh}% - \def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.8)}% - \def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% -\DOCMODE) - -The interface\dots - -\DOCMODE( -\xydef@\xyvover{\xykcross@\xykoverv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyhover{\xykcross@\xykoverh - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyvunder{\xykcross@\xykoverv - \xykunderstring@ \xykoverstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyhunder{\xykcross@\xykoverh - \xykunderstring@ \xykoverstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyvunover{\xykcross@\xykunoverv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyhunover{\xykcross@\xykunoverh - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} - - -\xydef@\xyxoverv{\xykcross@\xykxoverv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyxunderv{\xykcross@\xykxoverv - \xykunderstring@ \xykoverstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyxoverh{\xykcross@\xykxoverh - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyxunderh{\xykcross@\xykxoverh - \xykunderstring@ \xykoverstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyxunover{\xykcross@\xykxoverv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyxunoverv{\xykcross@\xykxunoverv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyxunoverh{\xykcross@\xykxunoverh - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} - -\DOCMODE) - -The drawing code\dots - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<",{\xykz^\ar #1@'{"^>"**{}?(.25)@+,?(.625)+(0,-.125)@+, - "_>";"^>"**{}?(.625)-(.125,0)@+,?(.25)@+}"_>"#3#4#5}, - "_<",{\xykz^\ar #2@'{"^<"**{}?(.25)@+,?(.625)+(.125,0)@+, - "^>";"^<"**{}?(.625)-(0,.125)@+,?(.25)@+}"^>"#6#7#8},\restore\POS#9}} -\xylet@\xykoverv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "_<",{\xykz^\ar #1@'{"^<"**{}?(.25)@+,?(.625)+(.125,0)@+, - "^>";"^<"**{}?(.625)-(0,.125)@+,?(.25)@+}"^>"#3#4#5}, - "_>",{\xykz^\ar #2@'{"_<"**{}?(.25)@+,?(.625)+(0,.125)@+, - "^<";"_<"**{}?(.625)+(.125,0)@+,?(.25)@+}"^<"#6#7#8},\restore\POS#9}} -\xylet@\xykoverh=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<",{\xykz^\ar #1@'{"^>"**{}?(.25)@+,?-(0,.175)@+,?(.75)@+} - "^>"#3#4#5}, - "_<",{\xykz^\ar #2@'{"^<"**{}?(.25)@+,?+(.125,0)@+, - "_>"**{}?+(0,.7)@+,"_>";"^>"**{}?-(.125,0)@+,?(.25)@+} - "_>"#6#7#8},\restore\POS#9}} -\xylet@\xykunoverv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "_<",{\xykz^\ar #1@'{"^<"**{}?(.25)@+,?+(.175,0)@+,?(.75)@+} - "^<"#3#4#5}, - "_>",{\xykz^\ar #2@'{"_<"**{}?(.25)@+,?+(0,.125)@+, - "^>"**{}?-(.7,0)@+,"^>";"^<"**{}?-(0,.125)@+,?(.25)@+} - "^>"#6#7#8},\restore\POS#9}} -\xylet@\xykunoverh=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<";"^>"**{}?="^_","_<";"_>"**{}?;"^_",**{}?="^_", - "^>",{\xykz^\ar #1@'{"^_"@+}"_<"#3#4#5}, - "^<",{\xykz_\ar #2@'{"^_"@+}"_>"#6#7#8},\restore\POS#9}} -\xylet@\xykxoverv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<";"_<"**{}?="^_","^>";"_>"**{}?;"^_",**{}?="^_", - "^<",{\xykz_\ar #1@'{"^_"@+}"_>"#3#4#5}, - "_<",{\xykz_\ar #2@'{"^_"@+}"^>"#6#7#8},\restore\POS#9}} -\xylet@\xykxoverh=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<";"^>"**{}?="^_","_<";"_>"**{}?;"^_",**{}?="^_", - "^>",{\xykz^\ar #1@'{"^_"@+}"_>"#3#4#5}, - "^<",{\xykz^\ar #2@'{"^_"@+}"_<"#6#7#8},\restore\POS#9}} -\xylet@\xykxunoverv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<";"_<"**{}?="^_","^>";"_>"**{}?;"^_",**{}?="^_", - "^<",{\xykz^\ar #1@'{"^_"@+}"^>"#3#4#5}, - "_<",{\xykz^\ar #2@'{"^_"@+}"_>"#6#7#8}, - \restore\POS#9}} -\xylet@\xykxunoverh=\next -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{``twist'' crossings:} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The initialisation\dots - -\DOCMODE( -\xydef@\vtwist{\begingroup\def\afterknot@{\xyvtwist}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% -\xydef@\htwist{\begingroup\def\afterknot@{\xyhtwist}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% -\xydef@\vtwistneg{\begingroup\def\afterknot@{\xyvtwistneg}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% -\xydef@\htwistneg{\begingroup\def\afterknot@{\xyhtwistneg}% - \def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}% - \def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}% - \xyFN@\xykparsecross@ }% -\xydef@\vuntwist{\begingroup\def\afterknot@{\xyvuntwist}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}% - \def\xykmidPLACE@{(.85)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% -\xydef@\huntwist{\begingroup\def\afterknot@{\xyhuntwist}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}% - \def\xykmidPLACE@{(.85)}\def\xykpostbreak@@{}% - \xyFN@\xykparsecross@ }% -\DOCMODE) - -The interface\dots - -\DOCMODE( -\xydef@\xyvtwist{\xykcross@\xyktwistv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyvtwistneg{\xykcross@\xyktwistv - \xykunderstring@ \xykoverstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyvuntwist{\xykcross@\xykuntwistv - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(0,-1)}} - -\xydef@\xyhtwist{\xykcross@\xyktwisth - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyhuntwist{\xykcross@\xykuntwisth - \xykoverstring@ \xykunderstring@ \xykhvobject@{+(1,0)}} - -\xydef@\xyhtwistneg{\xykcross@\xyktwisth - \xykunderstring@ \xykoverstring@ \xykhvobject@{+(1,0)}} -\DOCMODE) - -The drawing code\dots - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^>",{\xykz_\ar #1@'{"_>"**{}?(.25)@+,?-(.375,0)@+, - "_<";"^<"**{}?+(.375,0)@+,?(.25)@+}"_<"#3#4#5}, - "^<",{\xykz^\ar #2@'{"_<"**{}?(.25)@+,?+(.375,0)@+, - "_>";"^>"**{}?+(-.375,0)@+,?(.25)@+}"_>"#6#7#8} - \restore\POS #9}} -\xylet@\xyktwistv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^>",{\xykz^\ar #1@'{"_>"**{}?(.125)@+,?(.375)-(.25,0)@+, - ?(.625)-(.25,0)@+,?(.875)@+}"_>"#3#4#5}, - "^<",{\xykz^\ar #2@'{"_<"**{}?(.125)@+,?(.375)+(.25,0)@+, - ?(.625)+(.25,0)@+,?(.875)@+}"_<"#6#7#8} - \restore\POS #9}} -\xylet@\xykuntwistv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<",{\xykz_\ar #1@'{"^>"**{}?(.25)@+,?+(0,-.375)@+, - "_>";"_<"**{}?+(0,.375)@+,?(.25)@+}"_>"#3#4#5}, - "_<",{\xykz^\ar #2@'{"_>"**{}?(.25)@+,?+(0,.375)@+, - "^>";"^<"**{}?-(0,.375)@+,?(.25)@+}"^>"#6#7#8} - \restore\POS #9}} -\xylet@\xyktwisth=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\save, - "^<",{\xykz^\ar #1@'{"^>",**{}?(.125)@+,?(.375)+(0,-.25)@+, - ?(.625)+(0,-.25)@+,?(.875)@+}"^>"#3#4#5}, - "_<",{\xykz^\ar #2@'{"_>",**{}?(.125)@+,?(.375)+(0,.25)@+, - ?(.625)+(0,.25)@+,?(.875)@+}"_>"#6#7#8},\restore\POS #9}} -\xylet@\xykuntwisth=\next - -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[scale the knot piece] -The above examples also show how to use |-| to get the mirror-image of a -particular crossing. Any numerical scale factor can be used by enclosing -it within |[..]| e.g. |[2.3]| scaling a single piece without affecting -the rest of the picture. The scale-factor {\em must\/} occur before any -label or arrow-tip specifiers, see below). Vertical crossings remain -vertical under scalings; the current <pos> still moves by 1 coordinate -unit in the `down' direction. Similarly horizontal crossings remain -horizontal. The single character |-| is a shorthand version for |[-1]|, -effectively giving a half-turn rotation in a rectangular basis. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xykparsescale@{% - \ifx\space@\next \expandafter\DN@\space{\xyFN@\xykparsescale@}% - \else\addDASH@\ifx\next \addDASH@\DN@{\def\xykSCALE@@{-1}% - \xyFN@\xykparser@}% - \else\ifx[\next \DN@[##1]{\dimen@=##1\p@ - \ifdim\dimen@=\z@\xywarning@{\xykscaleerror@}% - \else\edef\xykSCALE@@{\expandafter\removePT@\the\dimen@}\fi - \xyFN@\xykparser@}% - \else\ifx~\next \DN@~##1##2##3##4{% - \def\xykSCALE@@{@{##1}{##2}{##3}{##4}}\xyFN@\xykparser@}% - \else\DN@{\xyFN@\xykparser@}% - \fi\fi\fi\fi \next@} - -\xydef@\xykscaleerror@{Ignoring zero scale factor} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[alter size and shape] -A knot-piece need not be rectangular. By specifying -|~|<pos>$_1$<pos$_2$><pos$_3$><pos$_4$> the four corners |UL|, |UR|, -|DL|, |DR| are set to the given <pos>s respectively. -The local basis is established so that -\begin{eqnarray*} -r\hbox{--hop}&\!\!\leftrightarrow\!\!& -{\textstyle{1\over2}}\bigl(\hbox{<pos$_2$>}-\hbox{<pos$_1$>} -+\hbox{<pos$_4$>} -\hbox{<pos$_3$>}\bigr) \\ -u\hbox{--hop}&\!\!\leftrightarrow\!\!& -{\textstyle{1\over2}}\bigl(\hbox{<pos$_1$>}-\hbox{<pos$_3$>} -+\hbox{<pos$_2$>} -\hbox{<pos$_1$>}\bigr)\;. -\end{eqnarray*} - -\note??=[adjust hole] -With a non-rectangularly shaped piece it will usually be necessary to -adjust the place where the `hole' occurs in the `under' string. This is -done by specifying |@(|<num>|)|, with $0\le <num>\le1$ being the parameter -value of the new location for the hole. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -%\xydef@\xykobject@{% -% \ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}% -% \else \DN@{\xyksavescale@{}}% -% \fi \next@ } - -\xydef@\xykhobject@{\aftergroup\xykhadjust@ - \ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}% - \else \DN@{\xyksavescale@{}}% - \fi \next@ } - -\xydef@\xykvobject@{\aftergroup\xykvadjust@ - \ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}% - \else \DN@{\xyksavescale@{}}% - \fi \next@ } - -\xydef@\xykhvobject@{\aftergroup\xykhvadjust@ - \ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}% - \else \DN@{\xyksavescale@{}}% - \fi \next@ } - -\xydef@\xykhuobject@{\aftergroup\xykhuadjust@ - \ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}% - \else \DN@{\xyksavescale@{}}% - \fi \next@ } -\DOCMODE) - -\DOCMODE( -\xydef@\xyksavescale@#1#2{% - \expandafter\ifx\the\Edge@c\zeroEdge\relax \def\xyksaveEdgec{}% - \else - \edef\xyksaveEdgec{\noexpand\Edge@c={\expandafter\noexpand\the\Edge@c}% - \L@c=\the\L@c \R@c=\the\R@c \D@c=\the\D@c \U@c=\the\U@c}% - \fi -% - \edef\next@##1##2{\endgroup - \def\noexpand\xyksaveEdgec{}% - \def\noexpand\xykSCALE@@\noexpand{##1}% - \def\noexpand\xykjoincontrol\noexpand{\xykjoincontrol}% - \noexpand\toks@\noexpand{##2}% - \noexpand\xy@@{\def\noexpand\xyksaveEdgec{}% - \def\noexpand\xykSCALE@@{##1}% - \def\noexpand\xykjoincontrol{\xykjoincontrol}}}% - \expandafter\expandafter\expandafter\next@ - \expandafter\expandafter\expandafter{\expandafter\xykSCALE@@\expandafter}% - \expandafter{\the\toks@}% -% - \xykrescale@ #1\the\toks@\restore\POS#2} - -\xydef@\xykkeepscale@{% - \edef\next@##1{\endgroup \noexpand\toks@={##1}% - \def\noexpand\xykjoincontrol{\xykjoincontrol}}% - \expandafter\next@\expandafter{\the\toks@}% - \def\xykSCALE@@{}\def\xyksaveEdgec{}% - \xy@@{\def\xykSCALE@@{}\def\xyksaveEdgec{}}% - \edef\next@{\def\noexpand\xykjoincontrol{\xykjoincontrol}}% - \expandafter\xy@@\expandafter{\next@}% - \xyknoflexscale@ \the\toks@} -\DOCMODE) - -\DOCMODE( -\xydef@\xykrescale@{\expandafter\xykcheckscale@\xykSCALE@@ !}% - -\xydef@\xykcheckscale@#1#2!{% - \expandafter\DN@\expandafter{\codeof{#1}}% - \expandafter\DNii@\expandafter{\codeof{@}}% - \ifx\next@\nextii@\relax\DN@{\xykflexiscale@#2% - \xy@@{\divide\X@xbase2\divide\X@ybase2\divide\Y@xbase2\divide\Y@ybase2% - \def\xykSCALE@@{}}\def\xykSCALE@@{}% - \expandafter\toks@\expandafter{\afterFLEX@}}% - \else\DN@{\save \xykrescale@@}\fi \next@ } - -\xydef@\xykflexiscale@{% - \expandafter\def\expandafter\afterFLEX@\expandafter{\the\toks@}% - \xykflexiscale@@ } - -\xydef@\xykrescale@@{% - \edef\next@{\X@xbase=\xykSCALE@@\X@xbase \X@ybase=\xykSCALE@@\X@ybase - \Y@xbase=\xykSCALE@@\Y@xbase \Y@ybase=\xykSCALE@@\Y@ybase}% - \expandafter\xy@@\expandafter{\next@}% - \ifdim\xykSCALE@@\p@<\z@\relax \DN@{\xyknegflexscale@}% - \else\DN@{\xyknoflexscale@}\fi \next@ } -\DOCMODE) - - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4{\save="@", - #1,="^<",\POS"@",#2,="^>",\POS"@",#3,="_<",\POS"@",#4,="_>", - (0,0);"^>"-"^<"+"_>"-"_<":"^<"-"_<"+"^>"-"_>"::}} -\xylet@\xykflexiscale@@=\next - -{\xyuncatcodes \gdef\next{\save ="^<", - +(1,0)="^>",-(1,1)="_<",+(1,0)="_>"\restore }} -\xylet@\xyknoflexscale@@=\next -\xylet@\xyknoflexscale@=\next - -{\xyuncatcodes \gdef\next{\save ="_>", - +(-1,1)="^<",+(1,0)="^>",-(1,1)="_<"\restore }} -\xylet@\xyknegflexscale@@=\next -\xylet@\xyknegflexscale@=\next - -{\xyuncatcodes \gdef\next{\save ="_<", - +(1,0)="_>",+(-1,1)="^<",+(1,0)="^>"\restore }} -\xylet@\xykhscale@@=\next - -{\xyuncatcodes \gdef\next{\save ="^>", - -(1,0)="^<",+(1,-1)="_>",-(1,0)="_<"\restore }} -\xylet@\xykvscale@@=\next -\DOCMODE) - - -\DOCMODE( -\xydef@\xykhadjust@{% - \let\xyknoflexscale@=\xykhscale@@ - \let\xyknegflexscale@=\xyknegflexscale@@ } - -\xydef@\xykvadjust@{% - \let\xyknoflexscale@=\xyknoflexscale@@ - \let\xyknegflexscale@=\xykhscale@@ } - -\xydef@\xykhvadjust@{% - \let\xyknoflexscale@=\xyknoflexscale@@ - \let\xyknegflexscale@=\xyknegflexscale@@ } - -\xydef@\xykhuadjust@{% - \let\xyknoflexscale@=\xykhscale@@ - \let\xyknegflexscale@=\xykvscale@@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[arrowtips, breaks and labels] -The |knot| feature allows for the easy placement of the following objects -along the strings of a crossing:\par -\begin{itemize} -\item labels on the strings; -\item arrowheads for direction or orientation; -\item holes in strings, allowing another string to be drawn passing over. -\end{itemize} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note ??=[which string] -The characters |<|, |>| and |||| are used to indicate to which string -portion the object is associated; with |||| denoting the string which -crosses the other, while |<| and |>| denote the initial and final -portions of the `crossed' string. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xykprebreak@{% - \ifx\xykprebreak@@\empty\addtotoks@{{}}\else - \expandafter\addtotoks@\expandafter{\expandafter{\xykprebreak@@}}\fi} - -\xydef@\xykpostbreak@{% - \ifx\xykpostbreak@@\empty\addtotoks@{{}}\else - \expandafter\addtotoks@\expandafter{\expandafter{\xykpostbreak@@}}\fi} - -\xydef@\xykmidbreak@{% - \ifx\xykmidbreak@@\empty\addtotoks@{{}}\else - \expandafter\addtotoks@\expandafter{\expandafter{\xykmidbreak@@}}\fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note ??=[simple label] -A simple label enclosed in braces, for example |\vcross>{x}|, is set in -math-mode using the |\labelstyle|, at a pre-determined place on the string -portion, shifted in either the `above' or `below' direction from the curve -at this point. (For each crossing depicted in figure~??[f.crossings] only -default values are used for the place and shift-direction.) - -\note ??=[knot object] -If the first character within the braces |{..}| is |*| e.g. -|\htwist>{*|<object>|}|, then a general <object> may be placed as a label. -Furthermore if the first character is |^| or |_| or ||||, then -the interpretation is, e.g. |\vtwist<{^|<anchor><it>|}|, -as in ??g[xyarrow.doc:f.arrow] -to place <it> as a label along an |\ar| of the |arrow| feature. - -\note ??=[orientation] -A second character |<| or |>| specifies that an arrowhead should appear -at the pre-determined place on the chosen string. -Here |>| denotes an arrowhead pointing with the natural orientation, -while |<| points against. Due to the curvature of the strings, it is -usually best to |\UseComputerModernTips| rather than normal arrow-tips. - -\note ??=[hole in the string] -To generate a `hole' use |\knothole|, or simply |\khole|, as following -token. This generates a `break', in the sense of -??g[xyarrow.doc:break with <it>]. -Indeed such a `hole' is used to separate the two portions of the `crossed' -string. Default size for the hole is 5pt, which is alterable via -|\knotholesize{|<dimen>|}|; normally used to set the size for {\em all}\/ -holes in a diagram. - -\note ??=[null-break] -If the resulting |\khole| is either too large or perhaps non-existent, -this could be due to a technicality in the way breaks in curves are -handled. This problem should not occur with the standard crossings, using -a rectangular basis, but it may occur with non-rectangular bases. -An easy `fix' is to include an extra {\em null-break}\ on the string, -using |<|||, |>||| or ||||||, which should place the zero-sized break at -parameter value .5 on the curve. The specification should precede a -|\khole| at a higher parameter value, or come after one at a lower value. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The aim of the above `fix' is to position the null-break as close as -possible to where the curve is farthest from the line joining its -end-points, which is usually at parameter value |(.5)|. - -\DOCMODE( -\xydef@\xykparsebreak@{% - \ifx\space@\next \expandafter\DN@\space{\xyFN@\xykparsebreak@}% - \else \addLT@\ifx\next - \expandafter\appendtoholder@\xykbacktemp@\next@ - \addLT@\DN@{\xyFN@\xykparser@}% - \else \addGT@\ifx\next - \expandafter\appendtoholder@\xykforetemp@\next@ - \addGT@\DN@{\xyFN@\xykparser@}% - \else \ifx|\next - \expandafter\appendtoholer@\xyknulltemp@\next@ - \DN@|{\xyFN@\xykparser@}% - \else \ifx\next \bgroup\DN@##1{\checkgroupbreak@##1@}% - \else \ifx (\next\DN@(##1){\xyadjustknotPLACE@i##1@@% - \xyFN@\xykparsebreak@}% - \else \ifx\next \knothole@\DN@##1{\expandafter\appendtoholder@@ - \expandafter{\expandafter|\xyknotPLACE\knothole}\next@ - \xyFN@\xykparser@}% - \else - \expandafter\xykdefaultbreak@\xykbreak@\next@ - \DN@{\xyFN@\xykparser@}% - \fi\fi\fi\fi\fi\fi\fi \next@ } -\DOCMODE) - -Templates for arrowheads. - -\DOCMODE( -{\xyuncatcodes \gdef\next{^>*\dir{>}}} -\xylet@\xykforetips@=\next - -{\xyuncatcodes \gdef\next{^<*\dir{<}}} -\xylet@\xykbacktips@=\next - -{\xyuncatcodes \gdef\next{*!/-1pt/=0\dir{>}}} -\xylet@\xykforetemp@=\next - -{\xyuncatcodes \gdef\next{*!/1pt/=0\dir{<}}} -\xylet@\xykbacktemp@=\next - -{\xyuncatcodes \gdef\next{*=<\xykholesize>[o]{}}} -\xylet@\xykholetemp@=\next -\xydef@\knothole@{\hbox to\xykholesize{% - \dimen@=\xykholesize \divide\dimen@\tw@ - \hfill \vrule height\dimen@ depth\dimen@ width\z@ }} -\xylet@\knothole=\knothole@ -\xylet@\khole=\knothole@ - -{\xyuncatcodes \gdef\next{*=<0pt>{}}} -\xylet@\xyknulltemp@=\next -\xylet@\xykbreak@=\xyknulltemp@ -\DOCMODE) - -When the next token is a begin-group character |{| then look at the first -token inside the group. If it is |^|,|_| or |||| then the group contents -will be an <anchor> for user-chosen places along the string. -Otherwise the place is taken to be the already specified |\xyknotPLACE| -and the group contains a label, to be set in the usual way for labels, -using |_| due to the orientation of the curve. -However if the first token is |*| then the user is assumed to be -dropping his own label, possibly with <object> modifiers. - -\DOCMODE( -\xydef@\checkgroupbreak@#1#2@{% - \ifx|#1\DN@{\appendtoholder@@#1#2\next@ \xyFN@\xykparser@}% - \else \ifx_#1\DN@{\appendtoholder@@_#2\next@ \xyFN@\xykparser@}% - \else \ifx^#1\DN@{\appendtoholder@@^#2\next@ \xyFN@\xykparser@}% - \else - \def\next##1\next{\expandafter\DNii@\expandafter{\xyk@@##1}}% - \expandafter\next\xyknotPLACE\next - \ifx*#1% - \expandafter\DN@\expandafter{% - \expandafter\appendtoholder@@\nextii@#1#2\next@ \xyFN@\xykparser@}% - \else %\expandafter\DNii@\expandafter{\expandafter\xyk@@\xyknotPLACE}% - \expandafter\DN@\expandafter{% - \expandafter\appendtoholder@@\nextii@{#1#2}\next@ \xyFN@\xykparser@}% - \fi\fi\fi\fi \next@ } -\DOCMODE) - -\DOCMODE( -{\xyuncatcodes \gdef\next{% - \expandafter{\expandafter^\xyknotPLACE##1}}}% - \DN@{\xydef@\xykholder@@##1}\DNii@{\expandafter\toks@}% - \expandafter\expandafter\expandafter\next@ - \expandafter\expandafter\expandafter{\expandafter\nextii@\next} - -\xydef@\appendtoholder@#1\next@{\xykholder@@{#1}% - \DN@##1{\expandafter\DN@\expandafter{\xykholder@##1}}% - \expandafter\next@\expandafter{\the\toks@}\appendtoholder@@@ } - -\xydef@\appendtoholder@@#1\next@{% - \DN@##1\next@{\expandafter\DN@\expandafter{\xykholder@##1}}% - \next@#1\next@ \appendtoholder@@@}% - -\xydef@\appendtoholder@@@{% - \expandafter\expandafter\expandafter\DN@ - \expandafter\expandafter\expandafter{\next@}% - \DNii@{\expandafter\def\xykholder@}% - \expandafter\nextii@\expandafter{\next@}} -\DOCMODE) - - -\DOCMODE( -{\xyuncatcodes \gdef\next{% - \expandafter{\expandafter|\xyknotPLACE##1}}}% -\DN@{\xydef@\xykholer@@##1}\DNii@{\expandafter\toks@}% - \expandafter\expandafter\expandafter\next@ - \expandafter\expandafter\expandafter{\expandafter\nextii@\next} - -\xydef@\appendtoholer@#1\next@{\xykholer@@{#1}% - \DN@##1{\expandafter\DN@\expandafter{\xykholder@##1}}% - \expandafter\next@\expandafter{\the\toks@}\appendtoholder@@@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -??=[knot-labels] -Multiple breaks, arrow-heads and labels may be specified along the -two strings of a crossing; simply place their specifications one after -another; e.g. |<>||>>><{x}||{y}>{z}| was used in figure~??[f.crossings]. - -The only proviso is that all `breaks' along a single strand must occur -with increasing order of parameter position. On the `crossed' string -this includes the automatic `hole' to create space for the other string. -Hence it is advisable to use just the |(+..)| and |(-..)| variants for -small adjustments, and to keep these correctly ordered. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xykz#1{\let\xyk@@=#1\xy@@{\let\xyk@@=#1}} -{\xyuncatcodes \global\let\next=_} -\xylet@\xyk@@=\next -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -??=[adjustment] -Adjustment of position along the strings can be achieved using a <factor>, -as in |\vover||(+.1)>|. Allowed syntax is |(|<sign><num>|)| where <sign> -is |+| or |-| to increment or decrement from the pre-defined value. -Also allowable are |=| or <empty> to set the parameter position to <num>, -which must lie between 0 and 1 to have any meaning. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This parses adjustments of the |\xyknotPLACE|. - -\DOCMODE( -\xydef@\xyadjustknotPLACE@i{% - \ifx\xyknotPLACE\empty\DN@{\dimen@=.5\p@}% - \else\DN@{\expandafter\xygetknotPLACE@@\xyknotPLACE}% - \fi \next@ \relax \let\xywhichknotPLACE@@=\xysetknotPLACE@@ - \xyFN@\xyadjustknotPLACE@} - -\xydef@\xyadjustknotPLACE@{\expandafter\ifx\space@\next - \expandafter\DN@\space{\xyFN@\xyadjustknotPLACE@}% - \else\addDASH@\ifx\next\DN@{\xyadjustknotPLACE@@}% - \else\addPLUS@\ifx\next\DN@{\xyadjustknotPLACE@@}% - \else\addEQ@\ifx\next\addEQ@\DN@{\dimen@=\z@ \xyadjustknotPLACE@@}% - \else \DN@{\dimen@=\z@ \xyadjustknotPLACE@@}% - \fi\fi\fi\fi \next@} - -\xydef@\xyadjustknotPLACE@@#1@@{\advance\dimen@#1\p@ - \expandafter\xysetknotPLACE@\expandafter{\the\dimen@}} - -\xydef@\xysetknotPLACE@#1{% - \expandafter\xywhichknotPLACE@@\expandafter{\removePT@#1}} - -{\xyuncatcodes\gdef\next#1{\def\xyknotPLACE{(#1)}}}% -\xylet@\xysetknotPLACE@@=\next - -{\xyuncatcodes \catcode`@=11 - \gdef\next(#1){\DN@\next@{#1}\ifx\next@\empty - \dimen@=\z@\else\dimen@=#1\p@ \fi}}% -\xylet@\xygetknotPLACE@@=\next -\DOCMODE) - -These use the same mechanism to adjust parameters stored in -|\xykpostbreak@@| and |\xykjoincontrol@@|. - -\DOCMODE( -%\xydef@\xyadjustJOIN@i#1@@{\xykjoincontrol@i{#1}}% -\xydef@\xyadjustJOIN@i{% - \ifx\xykjoincontrol\empty\DN@{\dimen@=.75\p@}% - \else\DN@{\expandafter\xygetknotPLACE@@\expandafter(\xykjoincontrol)}% - \fi \next@ \relax \let\xywhichknotPLACE@@=\xysetjoincontrol@ - \xyFN@\xyadjustknotPLACE@} - -%\xydef@\xyadjustBREAK@i#1@@{\def\xykpostbreak@@{|(##1)\knothole}}% -\xydef@\xyadjustBREAK@i{% - \ifx\xykpostbreak@@\empty\DN@{\dimen@=.5\p@}% - \else\DN@{\expandafter\xygetpostBREAK@\xykpostbreak@@}% - \fi \next@ \relax \let\xywhichknotPLACE@@=\xysetpostbreak@ - \xyFN@\xyadjustknotPLACE@} - -\xydef@\xygetpostBREAK@|#1\knothole{\DN@{#1}% - \ifx\next@\empty\dimen@=.5\p@\else \xygetknotPLACE@@#1\fi} - -\xydef@\xysetpostbreak@#1{\def\xykpostbreak@@{|(#1)\knothole}} -\xydef@\xysetjoincontrol@#1{\edef\xykjoincontrol{#1}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -??=[arrowtips] -Arrowheads can also be placed at either, or both, ends of of the strings -forming a crossing. This is governed by a pair of booleans, -initially |{FF}|. -It is changed for {\em all}\/ subsequent strings in a diagram by -|\knottips{..}| where the recognised values are |{FF}|, |{FT}|, |{TF}| -and |{TT}|, denoting tips (|T|) or not (|F|) at the start and end of each -string. To add arrowtips at the start of strings in a particular crossing, -append the 2-character combination |=<|\,; similarly |=>| adds tips at the -ends, if not already requested. The combinations |==| and |=!| specify -both (|{TT}|) and none (|{FF}|) respectively. -These 2-character pairs can be mixed in with any specifications for labels -and breaks, etc. Multiple pairs compound their effect; in particular -|=<=>| gives the same result as |==|, while |=!=<| is needed to change -|{FT}| into |{TF}|. - -These are best used with single pieces, as in the following equation. -% -\begin{code} -\UseComputerModernTips \knottips{FT} -\def\Conway#1{\mathord{\nabla\Bigl[\, - \raise5pt\xybox{0;/r1pc/:#1}\,\Bigr]}} -$$ -\Conway\htwist - \Conway\htwistneg - \;=\; -z\,\Conway\huntwist $$ -\end{code} -\docode -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xykparsetips@{% - \def\xyknotTIPS@@{}\def\xyknotPLACE{}% - \let\xykparser@=\xykparsetips@@ - \xyFN@\xykparser@ } - -\xydef@\xykparsetips@@{% - \ifx\space@\next \expandafter\DN@\space{\xyFN@\xykparsetips@@}% - \else\addLT@\ifx\next - \ifx\xyknotTIPS@@\empty \def\xyknotTIPS@@{TF}% - \else\DN@{FF}\ifx\next@\xyknotTIPS@@ \def\xyknotTIPS@@{TF}% - \else\DN@{FT}\ifx\next@\xyknotTIPS@@ \def\xyknotTIPS@@{TT}% - \fi\fi\fi - \addLT@\DN@{\xyFN@\xykparser@}% - \else\addGT@\ifx\next - \ifx\xyknotTIPS@@\empty \def\xyknotTIPS@@{FT}% - \else\DN@{FF}\ifx\next@\xyknotTIPS@@ \def\xyknotTIPS@@{FT}% - \else\DN@{TF}\ifx\next@\xyknotTIPS@@ \def\xyknotTIPS@@{TT}% - \fi\fi\fi - \addGT@\DN@{\xyFN@\xykparser@}% - \else\addEQ@\ifx\next \def\xyknotTIPS@@{TT}% - \addEQ@\DN@{\xyFN@\xykparser@}% - \else \ifx!\next \def\xyknotTIPS@@{FF}\DN@!{\xyFN@\xykparser@}% - \else\DN@{\xyFN@\xykparser@}% - \fi\fi\fi\fi\fi \next@ } -\DOCMODE) - -This reads the setting for tips on string ends. - -\DOCMODE( -\xydef@\xykcheckTIPS@{% - \ifx\xyknotTIPS@@\empty \edef\xyknotTIPS@@{\xyknotTIPS@}\fi - \DN@{FF}\ifx\next@\xyknotTIPS@@\def\tmp@{}% - \else\DN@{FT}\ifx\next@\xyknotTIPS@@ - \expandafter\def\expandafter\tmp@\expandafter{\xykforetips@}% - \else\DN@{TF}\ifx\next@\xyknotTIPS@@ - \expandafter\def\expandafter\tmp@\expandafter{\xykbacktips@}% - \else - \DN@##1\next@{\DN@{\xykforetips@##1}}% - \expandafter\next@\xykbacktips@\next@ - \DNii@{\expandafter\def\expandafter\tmp@\expandafter}% - \expandafter\nextii@\expandafter{\next@}% - \fi\fi\fi \def\xyknotTIPS@@{}} - -\xydef@\xyknottips@{% - \ifx\tmp@\empty\addtotoks@{{}}\else - \expandafter\addtotoks@\expandafter{\expandafter{\tmp@}}\fi} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\end{notes} - -\subsection*{Joins} -\note??=[join] -The ``joins'' are used to connect the loose ends of crossing strings. -In particular ``loops'' and ``caps'' are for placing on ends of -horizontal or vertical `twist' and `cross' crossings, leaving the -current <pos> fixed. The ``bends'' join non-adjacent crossings of -the same type, either horizontal or vertical. - -The |\xcap..| pieces are designed to join adjacent |\xover..| pieces; -they move $c$ either vertically or horizontally, -as appropriate. Finally the |\xbend..| pieces allow for smooth joins -of $45^\circ$ slopes to horizontal or vertical slopes. For these the -actual positioning of the piece, see figure~??[f.knotjoins], -is not entirely obvious. - -\begin{figure*}[ht] -$$ -\knotholesize{5pt}\UseComputerModernTips -\xygraph{!{0;/r2pc/:}="O" %[]!{\NoPSspecials} - [ll] !{*=0\dir{o},{\vloop<>|>>><{x}|{y}>{z}},*=0\dir{x}} - [rr]!{*=0\dir{o},{\vcap<>|>>><{x}|{y}>{z}},*=0\dir{x}} - [urr]!{*=0\dir{o},{\vcap-<>|>>><{x}|{y}>{z}},*=0\dir{x}} - [u(.5)rr]!{*=0\dir{o},{\vloop-<>|>>><{x}|{y}>{z}},*=0\dir{x}} - [d(.5)rr]!{*=0\dir{o},{\hloop<>|>>><{x}|{y}>{z}},*=0\dir{x}} - [rr]!{*=0\dir{o},{\hcap<>|>>><{x}|{y}>{z}},*=0\dir{x}} - [rrr]!{*=0\dir{o},{\hcap-<>|>>><{x}|{y}>{z}},*=0\dir{x}} - [rr]!{*=0\dir{o},{\hloop-<>|>>><{x}|{y}>{z}},*=0\dir{x}} - "O"!{+(.5,-.5)} - [ll]!{*\txt\small\tt{\string\vloop}} [rr]!{*\txt\small\tt{\string\vcap}} - [rr]!{*\txt\small\tt{\string\vcap-}}[rr]!{*\txt\small\tt{\string\vloop-}} - [rr]!{*\txt\small\tt{\string\hloop}}[rr]!{*\txt\small\tt{\string\hcap}} - [rr]!{*\txt\small\tt{\string\hcap-}}[rr]!{*\txt\small\tt{\string\hloop-}} - "O"!{-(1,3)} %[]!{\NoPSspecials} - [ur]!{*=0\dir{o},{\xcapv<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [urr]!{*=0\dir{o},{\sbendv<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [r] !{*=0\dir{o},{\zbendv<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [dr] !{*=0\dir{o},{\sbendh<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [r] !{*=0\dir{o},{\zbendh<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [r] !{*=0\dir{o},{\xcaph<>|>>><{x}|{y}>{z}},*=0\dir{+}} - "O"!{-(1.5,3.5)} - [rr]!{*\txt\small\tt{\string\xcapv}} - [rr]!{*\txt\small\tt{\string\sbendv}} - [rr]!{*\txt\small\tt{\string\zbendv}} - [rr]!{*\txt\small\tt{\string\sbendh}} - [rr]!{*\txt\small\tt{\string\zbendh}} - [rr]!{*\txt\small\tt{\string\xcaph}} -"O"!{+(0,-5)} %[]!{\NoPSspecials} - [ll] !{*=0\dir{o},{\xbendr<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [ur] !{*=0\dir{o},{\xbendl<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [urr]!{*=0\dir{o},{\xbendu<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [r] !{*=0\dir{o},{\xbendd<>|>>><{x}|{y}>{z}},*=0\dir{+}} - "O"!{-(3.5,6.5)} - [rr]!{*\txt\small\tt{\string\xbendr}} - [rr]!{*\txt\small\tt{\string\xbendl}} - [rr]!{*\txt\small\tt{\string\xbendu}} - [rr]!{*\txt\small\tt{\string\xbendd}} - "O"!{+(2,-5)} %[]!{\NoPSspecials} - [r(4)] !{*=0\dir{o},{\xbendd-<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [ur] !{*=0\dir{o},{\xbendu-<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [r] !{*=0\dir{o},{\xbendl-<>|>>><{x}|{y}>{z}},*=0\dir{+}} - [urr] !{*=0\dir{o},{\xbendr-<>|>>><{x}|{y}>{z}},*=0\dir{+}} - "O"!{+(4.5,-6.5)} - [rr]!{*\txt\small\tt{\string\xbendd-}} - [rr]!{*\txt\small\tt{\string\xbendu-}} - [rr]!{*\txt\small\tt{\string\xbendl-}} - [rr]!{*\txt\small\tt{\string\xbendr-}} -}$$ -\caption{knot joins, with orientations, labels and shifts}% - ??=[f.knotjoins] -\end{figure*} - -\noindent -Figure~??[f.knotjoins] displays the orientation on the joins. -Also indicated are default positions for labels and arrow-tips; -each piece uses the same code, -e.g. |\vloop|\ |<>||>>><{x}||{y}>{z}|. Furthermore the current <pos> -before the piece is drawn is marked using $\;^{_{\xybox{*\dir{o}}}}\;$; -that afterwards is indicated by -$\;^{_{\xybox{*\dir{x}}}}\;$ or $\;^{_{\xybox{*\dir{+}}}}\;$. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The ability to scale in size and place arrow-tips, breaks, labels etc. -apply also to <join> pieces. The only difference is\dots - -\note??=[join places] -The three places referred to by |<|\,,||||\,,|>| are all on a single -string. In particular |||| is always at the middle of the <join>, -whereas |<| and |>| are at {\em earlier} and {\em later} parameter -values respectively. Any adjustments??^[adjustment] involving breaks -should occur in increasing parameter order. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Parsing} - -\DOCMODE( -\xydef@\xykparsejoin@{% - \def\xykSCALE@@{}% - \edef\xyknotPLACE{\xykmidPLACE@}% - \let\xykparser@=\xykparsejoin@@ - \def\xykdefaultbreak@{\let\xykbreak@=\xykforetemp@ - \def\xyknotPLACE{(.5)}\appendtoholder@}% -% \edef\xyknotPLACE{\xykmidPLACE@}\appendtoholder@}% - \xyFN@\xykparsescale@ } -\DOCMODE) - -\DOCMODE( -{\xyuncatcodes \catcode`@=11 -\gdef\next{% - \ifx\space@\next \expandafter\DN@\space{\xyFN@\xykparsejoin@@}% - \else\addLT@\ifx\next \let\xykbreak@=\xykbacktemp@ - \def\xykdefaultbreak@{\def\xyknotPLACE{(.5)}% -% \def\xykdefaultbreak@{\edef\xyknotPLACE{\xykmidPLACE@}% - \appendtoholder@}\addLT@\DN@{\xyprecross@}% - \else\addGT@\ifx\next \let\xykbreak@=\xykforetemp@ - \def\xykdefaultbreak@{\def\xyknotPLACE{(.5)}% -% \def\xykdefaultbreak@{\edef\xyknotPLACE{\xykmidPLACE@}% - \appendtoholder@}\addGT@\DN@{\xypostcross@}% - \else\ifx|\next \let\xykbreak@=\xyknulltemp@ -% \else\ifx|\next \let\xykbreak@=\xykholetemp@ - \def\xykdefaultbreak@{\def\xyknotPLACE{(.5)}% -% \def\xykdefaultbreak@{\edef\xyknotPLACE{\xykmidPLACE@}% - \appendtoholer@}\DN@|{\xymidcross@}% - \else\addEQ@\ifx\next \addEQ@\DN@{\xyFN@\xykparsetips@@}% -% \else\addAT@\ifx\next \addAT@\DN@{\xykjoincontrol@}% - \else\addAT@\ifx\next \addAT@\DN@(##1){% - \xyadjustJOIN@i##1@@\xyFN@\xykparsejoin@@}% - \else\DN@{\afterknot@}% - \fi\fi\fi\fi\fi\fi \next@ }} -\xylet@\xykparsejoin@@=\next -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\note??=[join control] -A parameter can be altered, using |@|<adjust>, to effect subtle -adjustments to the shape of any join. Within a rectangular basis the -horizontal or vertical tangents are preserved and overall reflection -or rotation symmetry is preserved. Thus this parameter affects the -`flatness' of a cap or loop, or the amount of curvature is s-bends and -z-bends. For |\xcap..|s and |\xbend..|s the $45^\circ$ angle is altered; -this is especially useful to match the tangents when a knot-piece -has been specified using the technique of note~??[alter size and shape]. - -The normal range for these parameters is between 0 and 1. Other values -can be used with interesting results---the parameter determines the -location of control points for a B\'ezier cubic curve. - -\begin{tabular}{ccl} -piece & value & effect on\dots \\ -\noalign{\hrule} -|\..cap| & .25 & flatness of cap;\\ -|\..loop| & .75 & flatness of loop;\\ -|\sbend..| & .75 & curvature in the `s';\\ -|\zbend..| & .75 & curvature in the `z';\\ -|\xcap..| & .5 & height of cap, slope at base;\\ -|\xbend..| & .5 & curvature, slope at base.\\ -\noalign{\hrule} -\end{tabular} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{notes} - -The following example gives three ways of specifying a `trefoil' knot, -using the |poly| feature to establish the location of the vertices for -knot-pieces. In each the <crossing>s are calculated to fit together -smoothly; a different way of creating <join>s is used in each. -Also the third displays subtle changes of the ??^![join control]. - -\begin{code} -\def\TrefoilA{\xygraph{!{0;/r.75pc/:} - !P3"a"{~>{}}!P9"b"{~:{(1.3288,0):}~>{}} - !P3"c"{~:{(2.5,0):}~>{}} - !{\vover~{"b2"}{"b1"}{"a1"}{"a3"}} - !{"b4";"b2"**\crv{"c1"}} - !{\vover~{"b5"}{"b4"}{"a2"}{"a1"}} - !{"b7";"b5"**\crv{"c2"}} - !{\vover~{"b8"}{"b7"}{"a3"}{"a2"}} - !{"b1";"b8"**\crv{"c3"}}}} -% -\def\TrefoilB{\xygraph{!{0;/r.75pc/:} - !P3"a"{~>{}}!P9"b"{~:{(1.3288,0):}~>{}} - !P3"c"{~:{(2.5,0):}~>{}} - !{\vover~{"b2"}{"b1"}{"a1"}{"a3"}} - !{\vcap~{"c1"}{"c1"}{"b4"}{"b2"}@(+.1)} - !{\vover~{"b5"}{"b4"}{"a2"}{"a1"}} - !{\vcap~{"c2"}{"c2"}{"b7"}{"b5"}@(+.2)} - !{\vover~{"b8"}{"b7"}{"a3"}{"a2"}} - !{\vcap~{"c3"}{"c3"}{"b1"}{"b8"}}}} -% -\def\TrefoilC{\xygraph{!{0;/r.75pc/:} - !P3"a"{~>{}} - !P12"b"{~:{(1.414,0):}~>{}} - !{\vover~{"b2"}{"b1"}{"a1"}{"a3"}} - !{\save 0;"b2"-"b5":"b5", - \xcaph @(+.1)\restore} - !{\vover~{"b6"}{"b5"}{"a2"}{"a1"}} - !{\save 0;"b6"-"b9":"b9", - \xcaph @(+.2)\restore} - !{\vover~{"b10"}{"b9"}{"a3"}{"a2"}} - !{\save 0;"b10"-"b1":"b1", - \xcaph @(+.3)\restore} }} -$$\TrefoilA\quad\TrefoilB - \quad\TrefoilC$$ -\end{code} -\docode -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xykjoincontrol@@{.75}% -\xydef@\xyk@joincontrol@#1{\DN@{#1}% - \ifx\next@\empty\edef\xykjoincontrol@@{.75}% - \else\dimen@=#1\p@ - \edef\xykjoincontrol@@{\expandafter\removePT@\the\dimen@}\fi} -\xylet@\xykjoincontrol\empty %\xyk@joincontrol@ - -\xydef@\xykjoincontrol@(#1){\DN@{#1}% - \ifx\next@\empty\edef\xykjoincontrol{\xykjoincontrol@@}% - \else\dimen@=#1\p@ - \edef\xykjoincontrol{\expandafter\removePT@\the\dimen@}% - \fi \xyFN@\xykparsejoin@@ } - -\xydef@\xykjoincontrol@i#1{\DN@{#1}% - \ifx\next@\empty\edef\xykjoincontrol{\xykjoincontrol@@}% - \else\dimen@=#1\p@ - \edef\xykjoincontrol{\expandafter\removePT@\the\dimen@}\fi} -\DOCMODE) - -These macros are common to most joins. - -\DOCMODE( -\xydef@\xykjoin@#1{% - \expandafter\toks@\expandafter{\expandafter#1\knotSTYLE}} - -\xydef@\xyksetjoin@{\xykcheckTIPS@ - \xykprebreak@ \xykmidbreak@ \xykpostbreak@ \xyknottips@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{``cap'' joins:} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The initialisation\dots - -\DOCMODE( -\xydef@\hcap{\begingroup\def\afterknot@{\xyhcap}% - \def\xykprePLACE@{(.385)}\def\xykpostPLACE@{(.615)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.25}% - \xyFN@\xykparsejoin@ }% -\xydef@\vcap{\begingroup\def\afterknot@{\xyvcap}% - \def\xykprePLACE@{(.385)}\def\xykpostPLACE@{(.615)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.25}% - \xyFN@\xykparsejoin@ }% -\xydef@\xcapv{\begingroup\def\afterknot@{\xyxcapv}% - \def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.8)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}% - \xyFN@\xykparsejoin@ }% -\xydef@\xcaph{\begingroup\def\afterknot@{\xyxcaph}% - \def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.8)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}% - \xyFN@\xykparsejoin@ }% -\DOCMODE) - -The interface\dots - -\DOCMODE( -\xydef@\xyvcap{\xykjoin@\xykcapv \xyksetjoin@ \xykhobject@{}} -\xydef@\xyhcap{\xykjoin@\xykcaph \xyksetjoin@ \xykvobject@{}} -\xydef@\xyxcapv{\xykjoin@\xykxcapv \xyksetjoin@ \xykvobject@{+(0,-1)}} -\xydef@\xyxcaph{\xykjoin@\xykxcaph \xyksetjoin@ \xykhobject@{+(1,0)}} -\DOCMODE) - -The drawing code\dots - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "_>",{\xyksaveEdgec},{\xykz_\ar #1@'{"^>"**{}?(\xykjoincontrol)@+ - ,?-(.25,0)@+,"_<";"^<"**{}?+(.25,0)@+,?(\xykjoincontrol)@+} - "_<"#3#4#5#6},\restore \POS#7}} -\xylet@\xykcapv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "_<",{\xyksaveEdgec},{\xykz_\ar #1@'{"_>"**{}?(\xykjoincontrol)@+, - ?+(0,.25)@+,"^<";"^>"**{}?-(0,.25)@+,?(\xykjoincontrol)@+} - "^<"#3#4#5#6} - \restore \POS#7}} -\xylet@\xykcaph=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "^>";"_>"**{}?="^_","^<";"_<"**{}?;"^_",**{}?(\xykjoincontrol)="^_", - "_<",{\xyksaveEdgec},{\xykz_\ar #1@'{"^_"@+} - "^<"#3#4#5#6},\restore \POS#7}} -\xylet@\xykxcapv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "^<";"^>"**{}?="^_","_<";"_>"**{}?;"^_",**{}?(\xykjoincontrol)="^_", - "_>",{\xyksaveEdgec},{\xykz_\ar #1@'{"^_"@+} - "_<"#3#4#5#6},\restore \POS#7}} -\xylet@\xykxcaph=\next -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{``loop'' joins:} - -The initialisation and interface\dots - -\DOCMODE( -\xydef@\hloop{\begingroup\def\afterknot@{\xyhloop}% - \def\xykprePLACE@{(.07)}\def\xykpostPLACE@{(.93)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.75}% - \xyFN@\xykparsejoin@ }% -\xydef@\vloop{\begingroup\def\afterknot@{\xyvloop}% - \def\xykprePLACE@{(.07)}\def\xykpostPLACE@{(.93)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.75}% - \xyFN@\xykparsejoin@ }% - -\xydef@\xyvloop{\xykjoin@\xykloopv \xyksetjoin@ \xykhobject@{}} -\xydef@\xyhloop{\xykjoin@\xyklooph \xyksetjoin@ \xykvobject@{}} -\DOCMODE) - -The drawing code\dots - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "_>",{\xykz_\ar #1@'{"^>"**{}?(\xykjoincontrol)@+,?(1.25)-(.25,0)@+, - "_<";"^<"**{}?(1.25)+(.25,0)@+,?(\xykjoincontrol)@+}"_<"#3#4#5#6} - \restore \POS#7}} -\xylet@\xykloopv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "_<",{\xykz_\ar #1@'{"_>"**{}?(\xykjoincontrol)@+,?(1.25)+(0,.25)@+, - "^<";"^>"**{}?(1.25)+(0,-.25)@+,?(\xykjoincontrol)@+}"^<"#3#4#5#6} - \restore \POS#7}} -\xylet@\xyklooph=\next -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{``bend'' joins:} - -The initialisation\dots - -\DOCMODE( -\xydef@\zbendh{\begingroup\def\afterknot@{\xyzbendh}% - \def\xykprePLACE@{(.25)}\def\xykpostPLACE@{(.75)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{\xykjoincontrol@@}% - \xyFN@\xykparsejoin@ }% -\xydef@\sbendv{\begingroup\def\afterknot@{\xysbendv}% - \def\xykprePLACE@{(.25)}\def\xykpostPLACE@{(.75)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{\xykjoincontrol@@}% - \xyFN@\xykparsejoin@ }% -\xydef@\sbendh{\begingroup\def\afterknot@{\xysbendh}% - \def\xykprePLACE@{(.25)}\def\xykpostPLACE@{(.75)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{\xykjoincontrol@@}% - \xyFN@\xykparsejoin@ }% -\xydef@\zbendv{\begingroup\def\afterknot@{\xyzbendv}% - \def\xykprePLACE@{(.25)}\def\xykpostPLACE@{(.75)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{\xykjoincontrol@@}% - \xyFN@\xykparsejoin@ }% - - -\xydef@\xbendr{\begingroup\def\afterknot@{\xyxbendr}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.75)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}% - \xyFN@\xykparsejoin@ }% -\xydef@\xbendl{\begingroup\def\afterknot@{\xyxbendl}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.75)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}% - \xyFN@\xykparsejoin@ }% -\xydef@\xbendu{\begingroup\def\afterknot@{\xyxbendu}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.75)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}% - \xyFN@\xykparsejoin@ }% -\xydef@\xbendd{\begingroup\def\afterknot@{\xyxbendd}% - \def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.75)}% - \def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}% - \xyFN@\xykparsejoin@ }% -\DOCMODE) - - -The interface\dots - -\DOCMODE( -\xydef@\xyzbendh{\xykjoin@\xykzbendh \xyksetjoin@ \xykhvobject@{+(1,-1)}} -\xydef@\xysbendv{\xykjoin@\xyksbendv \xyksetjoin@ \xykhvobject@{+(1,-1)}} -\xydef@\xysbendh{\xykjoin@\xyksbendh \xyksetjoin@ \xykhuobject@{+(1,1)}} -\xydef@\xyzbendv{\xykjoin@\xykzbendv \xyksetjoin@ \xykhuobject@{+(1,1)}} - -\xydef@\xyxbendr{\xykjoin@\xykxbendr \xyksetjoin@ \xykhvobject@{+(1,-1)}} -\xydef@\xyxbendl{\xykjoin@\xykxbendl \xyksetjoin@ \xykhvobject@{+(0,-1)}} -\xydef@\xyxbendu{\xykjoin@\xykxbendu \xyksetjoin@ \xykhvobject@{+(1,0)}} -\xydef@\xyxbendd{\xykjoin@\xykxbendd \xyksetjoin@ \xykhvobject@{+(1,-1)}} -\DOCMODE) - - -The implementation\dots - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "^<",{\xyksaveEdgec}, - {\xykz^\ar #1@'{"^>"**{}?(\xykjoincontrol)@+, - "_>";"_<"**{}?(\xykjoincontrol)@+}"_>"#3#4#5#6}% - \restore \POS#7}} -\xylet@\xykzbendh=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "^<",{\xyksaveEdgec}, - {\xykz_\ar #1@'{"_<"**{}?(\xykjoincontrol)@+, - "_>";"^>"**{}?(\xykjoincontrol)@+}"_>"#3#4#5#6}% - \restore \POS#7}} -\xylet@\xyksbendv=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "_<",{\xyksaveEdgec}, - {\xykz_\ar #1@'{"_>"**{}?(\xykjoincontrol)@+, - "^>";"^<"**{}?(\xykjoincontrol)@+}"^>"#3#4#5#6}% - \restore \POS#7}} -\xylet@\xyksbendh=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "_<",{\xyksaveEdgec}, - {\xykz^\ar #1@'{"^<"**{}?(\xykjoincontrol)@+, - "^>";"_>"**{}?(\xykjoincontrol)@+}"^>"#3#4#5#6}% - \restore \POS#7}} -\xylet@\xykzbendv=\next - - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "^<"-(0,.5),{\xyksaveEdgec}, - {\xykz_\ar #1@'{"_<";"_>"**{}?(\xykjoincontrol)@+,}"_>"#3#4#5#6}% - \restore \POS#7}} -\xylet@\xykxbendr=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "^>"-(0,.5),{\xyksaveEdgec}, - {\xykz^\ar #1@'{"_>";"_<"**{}?(\xykjoincontrol)@+,}"_<"#3#4#5#6}% - \restore \POS#7}} -\xylet@\xykxbendl=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "_<"+(.5,0),{\xyksaveEdgec}, - {\xykz_\ar #1@'{"_>";"^>"**{}?(\xykjoincontrol)@+,}"^>"#3#4#5#6}% - \restore \POS#7}} -\xylet@\xykxbendu=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\save, - "^<"+(.5,0),{\xyksaveEdgec}, - {\xykz^\ar #1@'{"^>";"_>"**{}?(\xykjoincontrol)@+,}"_>"#3#4#5#6}% - \restore \POS#7}} -\xylet@\xykxbendd=\next - -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Changing the string-style} -% -It is not necessary to use solid curves; any style available to curves -and arrows can be chosen using\dots -% -\begin{defs} -|\knotstyle{|<char>|}| & use |\dir{|<char>|}| \cr -|\knotstyles{|<char>|}{|<char>|}| & two styles \cr -|\knotSTYLE{|<code>|}| & use <code> \cr -\end{defs} -% -In each case the new style applies to {\em all} subsequent knot pieces, -except that the two styles apply only to crossings. -The latter case allows use of object <modifier>s. The <code> consists of -two groups |{..}{..}|\,, each containing <arrow> forms, as in -??g[xyarrow.doc:f.arrow] and notes~??g[xyarrow.doc:build arrow], -??g[xyarrow.doc:object <modifier>s]. -Only the first <arrow> form is used with <join>s whereas the two forms -are used respectively with the two strings of a <crossing> in the order -that they are drawn. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -{\xyuncatcodes \gdef\next{{@{-}}{@{-}}}} -\xylet@\knotSTYLE=\next - -{\xyuncatcodes \gdef\next#1{\def\knotSTYLE{{@{#1}}{@{#1}}}}} -\xylet@\knotstyle=\next - -{\xyuncatcodes \gdef\next#1#2{\def\knotSTYLE{{@{#1}}{@{#2}}}}} -\xylet@\knotstyles=\next - -{\xyuncatcodes \gdef\next#1{\def\knotSTYLE{#1}}} -\xylet@\KNOTstyle=\next -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Initialisation:}\ default values for the methods. - -\DOCMODE( -\xydef@\knotholesize@#1{\def\xykholesize{#1}} -\xydef@\xykholesize{5pt} -\xylet@\knotholesize=\knotholesize@ -\xylet@\holesize=\knotholesize@ - -\xydef@\knottips#1{\def\xyknotTIPS@{#1}} -\xydef@\xyknotTIPS@{FF} -\xydef@\xyknotTIPS@@{} - -\xydef@\xykSCALE@@{} - -%\xydef@\xyknotbreak@@{}% -\xydef@\xykprebreak@@{}% -\xydef@\xykpostbreak@@{}% -\xydef@\xykmidbreak@@{}% - -\xydef@\xykprePLACE@{(.25)}% -\xydef@\xykpostPLACE@{(.75)}% -\xydef@\xykmidPLACE@{}% -\xylet@\xykPLACE@=\xykmidPLACE@ -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%\subsection*{Flexible crossings} - -%Xtwist - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -{\gdef\next#1#2#3#4{%\message{#1:#2:#3:#4}% - \save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0): - "#3"-"#1"+"#4"-"#2"::(0,.5)::}} -\xylet@\xykflexbase@=\next -\xylet@\xykflexbase=\xykflexbase@ -\DOCMODE) - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8{\xykflexbase{#1}{#2}{#3}{#4}% -% \save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0): -% "#3"-"#1"+"#4"-"#2"::(0,.5):: - "#1",{\ar @{#5}@'{"#1"+(0,.125)@++(.1875,.125)@+, - "#4"-(.1875,.25)@++(.1875,.125)@+}"#4" #6}, - "#2",{\ar @{#5}@'{"#2"+(0,.125)@++(-.1875,.125)@+, - "#3"+(.1875,-.25)@++(-.1875,.125)@+}"#3" #7}% -\restore \POS#8}} -\xylet@\Xtwist=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8{\xykflexbase{#1}{#2}{#3}{#4}% -% \save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0): -% "#3"-"#1"+"#4"-"#2"::(0,.5):: - "#1",{\ar @{#5}@'{"#1"+(0,.0625)@++(.1875,.0625)@+, - "#3"+(.1875,-.125)@++(-.1875,.0625)@+}"#3" #6}, - "#2",{\ar @{#5}@'{"#2"+(0,.0625)@++(-.1875,.0625)@+, - "#4"-(.1875,.125)@++(.1875,.0625)@+}"#4" #7}% -\restore \POS#8}} -\xylet@\Xuntwist=\next -\DOCMODE) - - -%Xover - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\xykflexbase{#1}{#2}{#3}{#4}% -% \save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0): -% "#3"-"#1"+"#4"-"#2"::(0,.5):: - "#1",{\ar @{#5}@'{"#1"+(.1875,.0625)@++(.1875,.1875)@+, - "#4"+(-#9,-.125)@+}"#4" #6}, - "#2",{\ar @{#5}@'{"#2"+(-.1875,.0625)@++(-.1875,.1875)@+, - "#3"+(#9,-.125)@+}"#3" #7}% -\restore \POS#8}} -\xylet@\Xover=\next - -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7#8#9{\xykflexbase{#1}{#2}{#3}{#4}% -% \save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0): -% "#3"-"#1"+"#4"-"#2"::(0,.5):: - "#1",{\ar @{#5}@'{"#1"+(.1875,.0625)@++(.1875,.1875)@+, - "#2"+(-.1875,.0625)@+}"#2" #6}, -% "#3"+(#9,-.125)@+}"#3" #6}, - "#3",{\ar @{#5}@'{"#3"+(#9,-.125)@+,"#3"+(.25,-.25)@+, -% "#2",{\ar @{#5}@'{"#2"+(-.1875,.0625)@++(-.1875,.1875)@+, - "#4"+(-#9,-.125)@+}"#4" #7}% -\restore \POS#8}} -\xylet@\Xunover=\next -\DOCMODE) - - -%Xcap - -\DOCMODE( -{\xyuncatcodes \gdef\next#1#2#3#4#5#6#7{\xykflexbase{#1}{#2}{#3}{#4}% -% \save(0,0);"#2"-"#1"+"#3"-"#4":(.5,0): -% "#4"-"#1"+"#3"-"#2"::(0,.5):: - "#1",{\ar @{#5}@'{"#1"+(0,.125)@++(.125,.25)@+, - "#4"+(-.125,.375)@++(.125,-.25)@+}"#4" #6}, -\restore \POS#7}} -\xylet@\Xcap=\next -\DOCMODE) - - -%XXover - -\DOCMODE( -{\xyuncatcodes \catcode`@=11 - \gdef\next#1#2#3#4#5#6#7#8#9{\dimen@=#1\p@ - \ifdim\dimen@=\z@ \DN@{\Xunover{#2}{#3}{#4}{#5}{#8}{#6}{#7}{"#5"}}% - \else\ifdim\dimen@>\z@ - \DNii@{#6}\ifx\nextii@\empty - \DN@{\Xover{#2}{#3}{#4}{#5}{#8}{|(.45)\knothole}{#7}{"#5"}}% - \else \DN@{\Xover{#2}{#3}{#4}{#5}{#8}{#6}{#7}{"#5"}}\fi - \else - \DNii@{#7}\ifx\nextii@\empty - \DN@{\Xover{#2}{#3}{#4}{#5}{#8}{#6}{|(.45)\knothole}{"#5"}}% - \else\DN@{\Xover{#2}{#3}{#4}{#5}{#8}{#6}{#7}{"#5"}}\fi - \fi\fi - \def\tmp@{{#9}}\ifx\tmp@\empty\def\tmp@{{0}}\else\dimen@=#9\p@\fi - \expandafter\next@\tmp@ }} -\xylet@\XXover=\next - -{\xyuncatcodes \catcode`@=11 - \gdef\next#1#2#3#4#5#6#7#8{\dimen@=#1\p@ - \ifdim\dimen@=\z@ \DN@{\Xuntwist{#2}{#4}{#3}{#5}{#8}{#6}{#7}{"#5"}}% - \else\ifdim\dimen@>\z@ - \DNii@{#6}\ifx\nextii@\empty - \DN@{\Xtwist{#2}{#4}{#3}{#5}{#8}{|(.45)\knothole}{#7}{"#5"}}% - \else \DN@{\Xtwist{#2}{#4}{#3}{#5}{#8}{#6}{#7}{"#5"}}\fi - \else - \DNii@{#7}\ifx\nextii@\empty - \DN@{\Xtwist{#2}{#4}{#3}{#5}{#8}{#6}{|(.45)\knothole}{"#5"}}% - \else\DN@{\Xtwist{#2}{#4}{#3}{#5}{#8}{#6}{#7}{"#5"}}\fi - \fi\fi \next@ }} -\xylet@\XXtwist=\next - -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - simplified switch-like interface - - -\DOCMODE( -{\xyuncatcodes \catcode`@=11 - \gdef\next#1#2#3#4{\dimen@=#1\p@ - \ifdim\dimen@=\z@ \DN@{\xykuncrossv{#4}{#2}{#3}{+(0,-1)}}% - \else\ifdim\dimen@>\z@ - \DNii@{#2}\ifx\nextii@\empty - \DN@{\xyktwistv{#4}{|\knothole}{#3}{+(1,0)}}% - \else \DN@{\xyktwistv{#4}{#2}{#3}{+(1,0)}}\fi - \else - \DNii@{#3}\ifx\nextii@\empty - \DN@{\xyktwistv{#4}{#2}{|\knothole}{+(0,-1)}}% - \else\DN@{\xyktwistv{#4}{#2}{#3}{+(0,-1)}}\fi - \fi\fi \next@ }} -\xylet@\Vcross=\next - -{\xyuncatcodes \catcode`@=11 - \gdef\next#1#2#3#4{\dimen@=#1\p@ - \ifdim\dimen@=\z@ \DN@{\xykuncrossh{#4}{#2}{#3}{+(0,-1)}}% - \else\ifdim\dimen@<\z@ - \DNii@{#2}\ifx\nextii@\empty - \DN@{\xyktwisth{#4}{|\knothole}{#3}{+(1,0)}}% - \else \DN@{\xyktwisth{#4}{#2}{#3}{+(1,0)}}\fi - \else - \DNii@{#3}\ifx\nextii@\empty - \DN@{\xyktwisth{#4}{}{|\knothole}{+(1,0)}}% - \else\DN@{\xyktwisth{#4}{#2}{#3}{+(1,0)}}\fi - \fi\fi \next@ }} -\xylet@\Hcross=\next - -{\xyuncatcodes \catcode`@=11 - \gdef\next#1#2#3{\dimen@=#1\p@ \save - \ifdim\dimen@<\z@ - \DN@{\POS="@",p="@@",(0,0);(-1,0):(0,-1)::"@@";"@",}% - \else\DN@{}\fi - \next@ \xykcaph{#3}{#2}\restore }} -\xylet@\Hcap=\next - -{\xyuncatcodes \catcode`@=11 - \gdef\next#1#2#3{\dimen@=#1\p@ \save - \ifdim\dimen@<\z@ - \DN@{\POS="@",p="@@",(0,0);(0,-1)::"@@";"@",}% - \else\DN@{}\fi - \next@ \xykcapv{#3}{#2}\restore }} -\xylet@\Vcap=\next -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xyendinput - -% $Log: xyknot.doc,v $ -% Revision 3.4 1997/05/18 01:13:24 ross -% Essential bugfixes. -% -% Revision 3.3 1996/12/18 09:20:49 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.13 1995/07/04 15:04:51 ross -% Ready for release of v3. -% -% Created by Ross Moore, September 1994. -\DOCMODE) diff --git a/Master/texmf-dist/source/generic/xypic/xylatex.ini b/Master/texmf-dist/source/generic/xypic/xylatex.ini deleted file mode 100644 index 3ba119f8437..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xylatex.ini +++ /dev/null @@ -1,77 +0,0 @@ -%% $Id: xylatex.ini,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-latex-*- -%% -%% Generate LaTeX + Xy-pic format file. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. - -% Load LaTeX (2e) but don't dump yet. -% (This ca - -\let\xypicsaveddump=\dump -\let\dump=\endinput -\input latex.ltx - -% KERNEL: -% -\input xy - -% Extensions and features: You can replace this line with selective loading -% of particular options if you like. -% -\xyoption{all} - -% BACKEND: Default is NOT to load any backend but by uncommenting the -% following line you can include the PostScript backend by default. -% -%\xyoption{ps} - -% DRIVERS: Default is NOT to load any driver but by uncommenting the -% following line you can include the DVIPS driver (or any other one you -% choose) by default (this will not select it, only make it available). -% -%\xyoption{dvips} - -% Finally dump the format file (using the hack above): -% -\xypicsaveddump - -% $Log: xylatex.ini,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/06 02:56:02 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% NEW file to go in version 2.10! diff --git a/Master/texmf-dist/source/generic/xypic/xyline.doc b/Master/texmf-dist/source/generic/xypic/xyline.doc deleted file mode 100644 index 40fa19abedb..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyline.doc +++ /dev/null @@ -1,664 +0,0 @@ -%% $Id: xyline.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ -%% -%% Xy-pic ``Line Width'' extension. -%% Copyright (c) 1993-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@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{line}{Line styles extension}{\stripRCS$Revision: 3.6 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This extension provides the ability to request various effects related - to the appearance of straight lines; \eg. thickness, non-standard dashing, - and colour. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -These are effects which are not normally available within \TeX. -Instead they require a suitable `back-end' option to provide the necessary -|\special| commands, or extra fonts, together with appropriate -commands to implement the effects. Thus -$$ -\xy - *+\txt<.8\hsize>{Using this extension will have no effect on the output - unless used with a backend that explicitly supports it.} - *\frm{-} -\endxy -$$ - -The extension provides special effects that can be used with any \Xy-pic -<object>, by defining |[|<shape>|]| modifiers. -The modification is local to the <object> currently being built, -so will have no effect if this object is never actually used. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Adjusting line thickness} - - -The following table lists the modifiers primarily to alter the thickness -of lines used by \Xy-pic. They come in two types --- either a single keyword, -or using the key-character |||| with the following text parsed. -% -\begin{defs}% - |[thicker]| & double line thickness \cr - |[thinner]| & halve line thickness \cr - |[||(|<num>|)]| & multiple of usual thickness\cr - |[||<|<dimen>|>]| & set thickness to <dimen>\cr - |[|||<dimen>|]| & also sets to <dimen>\cr - |[||=|<word>|]| & make |[|<word>|]| set current style settings\cr - |[||*]| & reuse previous style\cr - |[butt]| & butt cap at ends\cr - |[roundcap]| & round cap at ends\cr - |[projcap]| & projecting square cap.\cr -\end{defs} -% -\noindent -Later settings of the linewidth override earlier settings; -multiple calls to |[thicker]| and |[thinner]| compound, -but the other variants set an absolute thickness. -The line-thickness specification affects arrow-tips as well as the -thickness of straight lines and curves. -Three kinds of line-caps are available; they are discussed below -in the section on `poly-lines'. -% -\begin{code} -\xy/r8pc/:*++\txt\huge{C}="c" -,0*++\txt\huge{P}="p", -,"p",{\ar@*{[|(1)]}"p";"c"<20pt>} -,"p",{\ar@*{[|(4)]}"p";"c"<14pt>} -,"p",{\ar@*{[|(10)]}"p";"c"<4pt>} -,"p",{\ar@*{[|(20)]}"p";"c"<-16pt>} -\endxy -\end{code} -$$\docode$$ -\medskip -\displaycode -% -Using the \PS\ back-end, the size of the arrow-head grows -aesthetically with the thickness of the line used to draw it. -This growth varies as the square-root of the thickness; -thus for very thick lines (20+ times normal) the arrowhead -begins to merge with the stem. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Load the |style| extension to establish the necessary infra-structure. - -\DOCMODE( -%\xydefcsname@{shape [|...]}#1{\xyFN@\xywidthchar@#1@@}% -\xydefcsname@{*stylechar@|@}#1{\xyFN@\xywidthchar@#1@@}% - -%\xydefcsname@{shape [thinner]}{\xyshape@thinner@} -%\xydefcsname@{shape [thicker]}{\xyshape@thicker@} -\xydefcsname@{style [thinner]}{\xyshape@thinner@} -\xydefcsname@{style [thicker]}{\xyshape@thicker@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Implementation} - -Record the line thickness locally in a dimen register. -The initial value is read from the |xydash10| font. -Each time |\xylinethick@| is changed, its previous value is stored -as the expansion of |\xyprevwidth@@|, in case this is needed by -a specific back-end. - -\DOCMODE( -\xynew@{dimen}\xylinethick@ \xylinethick@=\xydashw@ - -\xydef@\xyshape@thicker@{\xylinewidth@i{\multiply\xylinethick@\tw@}} -\xydef@\xyshape@thinner@{\xylinewidth@i{\divide\xylinethick@\tw@}} - -\xydef@\xylinewidth@i#1{\edef\xyprevwidth@@{\the\xylinethick@}% - #1\edef\next@{\xylinethick@=\the\xylinethick@}% - \edef\next@ii{\noexpand\addtotoks@{% - \noexpand\xylinewidth@@{\next@}{\xyprevwidth@@}}}% - \next@ii } - - -\xydef@\xywidthchar@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xywidthchar@}%gobble spaces -% \else\ifx @\next \DN@ @@{\addtotoks@{\checkXyStyle@}}% - \else\ifx @\next \DN@ @@{\checkXyStyle@}% - \else\ifx (\next \DN@ (##1)##2@@{% - \xylinewidth@i{\xylinethick@=##1\xydashw@}}% - \else\addLT@\ifx \next \addGT@{\addLT@\DN@ ##1}##2@@{% - \xylinewidth@i{\xylinethick@=##1\relax}}% -% \else\ifx *\next \DN@ *@@{\addtotoks@{\checkXyStyle@}}% -% \else\ifx *\next \DN@ *@@{\checkXyStyle@}% - \else\ifx *\next \DN@ *@@{\recoverXyStyle@}% -% \else\addEQ@\ifx \next \addEQ@\DN@##1@@{% -% \addtotoks@{\checkXyStyle@\xynamestyle@{##1}}}% - \else\addEQ@\ifx \next \addEQ@\DN@##1@@{\checkXyStyle@ - \addtotoks@{\xynamestyle@{##1}}}% - \else\ifx C\next \DN@ C##1@@{\xysetlinecap@{##1}@}% - \else\ifx J\next \DN@ J##1@@{\xysetlinejoin@{##1}@}% - \else\ifx M\next \DN@ M(##1)@@{\xymiterlimit@{##1}@}% - \else \DN@##1@@{\xylinewidth@i{\xylinethick@=##1\relax}}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The diagram in figure~??g[xyrotate.doc:rotate and flips], -page~??gp[xyrotate.doc:rotate and flips], uses different line-thicknesses -and colours. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Poly-lines} - -By a `poly-line' we mean a path built from straight line segments having no -gaps where each segment abuts the next. The poly-line could be the edges of -a polygon, either closed or open if the end-points are different. - -The reason for considering a poly-line as a separate <object>, rather than -simply as a <path> built from straight lines, becomes apparent only when -the lines have appreciable thickness. Then there are several standard ways -to fashion the `joins' (where segments meet). Also the shape of the `caps' -at either end of the poly-line can be altered. - -The following modifiers are used to determine the shapes of the line `caps' -and `joins': -% -\begin{defs}% - |[||J|<val>|]| & join style, <val> = 0, 1 or 2\cr - |[mitre]| & mitre-join, same as |[||J0]|\cr - |[roundjoin]| & round join, same as |[||J1]|\cr - |[bevel]| & bevel-join, same as |[||J2]|\cr - |[||C|<val>|]| & end-cap, <val> = 0, 1 or 2\cr - |[butt]| & ``butt'' cap, same as |[||C0]|\cr - |[roundcap]| & round cap, same as |[||C1]|\cr - |[projcap]| & ``projecting square'' cap,\hfil\break same as |[||C2]|\cr - |[||M(|<num>|)]| & set mitrelimit to <num>$\ge1$\cr -\end{defs} -% -\noindent -These effects are currently implemented only with the \PS\ back-end -or when using |\xypolyline| (described below) with a \PS\ <driver>. -In this case the `cap' setting can be applied to any segment, straight -or curved, whether part of a poly-line or not; however the `join' setting -applies only to poly-lines. Arrow-tips are not affected. -The defaults are to use round joins and round-cap ends. - -Adjusting the miter-limit affects how far miters are allowed to protrude -when two wide lines meet at small angles. The <num> is in units of the -line-thickness. Higher values mean using bevels only at smaller angles, -while the value of 1 is equivalent to using bevels at all angles. -The default miter-limit is 10. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Current values are stored in case these are needed within nested portions -of diagrams. - -\DOCMODE( -\xydef@\xylinecap@{2} -\xydef@\xylinejoin@{2} -\xydef@\xylinemiter@{10} -\DOCMODE) - -%These are simple methods that alter the stored values. -% -%\DOCMODE( -%\xydef@\xysetlinecap@@#1{\xylinestyle@{C}{#1}{\def\xylinecap@{#1}}} -%\xydef@\xysetlinejoin@@#1{\xylinestyle@{J}{#1}{\def\xylinejoin@{#1}}} -%\xydef@\xysetmiterlimit@@#1{\xylinestyle@{M}{#1}{\def\xylinemiter@{#1}}} -%\DOCMODE) -% -%Finally we need the interface to pass the new values to a <driver>. -% -%\DOCMODE( -%\xydef@\xynolinestyle@@#1#2#3{\let\next=#1\relax #3% -% \ifx\next C\DN@{\xyundefinedLine@{linecap}{#2}@@}% -% \else\ifx\next J\DN@{\xyundefinedLine@{linejoin}{#2}@@}% -% \else\ifx\next M\DN@{\xyundefinedLine@{miterlimit}{#2}@@}% -% \fi\fi\fi \next@ } -% -%\xylet@\xylinestyle@\xynolinestyle@@ -%\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Recognise keywords for `line-caps' and `line-joins': - -\DOCMODE( -\xydefcsname@{style [bevel]}{\xyshape@bevel@} -\xydefcsname@{style [roundjoin]}{\xyshape@rdjoin@} -\xydefcsname@{style [miter]}{\xyshape@miter@} -% -\xydefcsname@{style [butt]}{\xyshape@butt@} -\xydefcsname@{style [roundcap]}{\xyshape@rdcap@} -\xydefcsname@{style [projcap]}{\xyshape@projcap@} -\DOCMODE) - -\DOCMODE( -\xydef@\xyshape@butt@{\xysetlinecap@@0} -\xydef@\xyshape@rdcap@{\xysetlinecap@@1} -\xydef@\xyshape@projcap@{\xysetlinecap@@2} - -\xydef@\xyshape@miter@{\xysetlinejoin@@0} -\xydef@\xyshape@rdjoin@{\xysetlinejoin@@1} -\xydef@\xyshape@bevel@{\xysetlinejoin@@2} - -\xydef@\xysetlinecap@#1@{\DN@ii{#1}\count@=#1\relax - \expandafter\DN@\expandafter{\the\count@}% - \ifx\next@\next@ii\else - \xywarning@{ignoring extra tokens in line-cap: \next@}\fi - \expandafter\xysetlinecap@@\expandafter{\next@}} - -\xydef@\xysetlinejoin@#1@{\DN@ii{#1}\count@=#1\relax - \expandafter\DN@\expandafter{\the\count@}% - \ifx\next@\next@ii\else - \xywarning@{ignoring extra tokens in line-join: \next@}\fi - \expandafter\xysetlinejoin@@\expandafter{\next@}} - -\xydef@\xysetmiterlimit@#1@{\DN@ii{#1}\dimen@=#1\p@\relax - \edef\next@{\expandafter\removePT@\the\dimen@}% - \ifx\next@\next@ii\else - \xywarning@{ignoring extra tokens in miter-limit: \next@}\fi - \expandafter\xysetmiterlimit@@\expandafter{\next@}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -These use the more sophisticated approach that is easier to adjust for -different <driver>s. - -\DOCMODE( -\xydef@\xysetlinecap@@#1{\xy@linecap@i{\def\xylinecap@{#1}}} -\xydef@\xysetlinejoin@@#1{\xy@linejoin@i{\def\xylinejoin@{#1}}} -\xydef@\xysetmiterlimit@@#1{% - \xy@linemiter@i{\def\xylinemiter@{#1}}} - -\xydef@\xy@linecap@i#1{#1\addtotoks@{\xy@linecap@@{#1}}} -\xydef@\xy@linejoin@i#1{#1\addtotoks@{\xy@linejoin@{#1}}} -\xydef@\xy@linemiter@i#1{#1\addtotoks@{\xy@linemiter@{#1}}} -\DOCMODE) - -Implementation of line-caps: - -\DOCMODE( -\xydef@\xy@linecap@#1{\checkXyStyle@ \edef\xyprevcap@@{\xylinecap@}% - #1\let\prexylinecap@=\prexylinecap@@ \let\postxylinecap@=\postxylinecap@@ - \applyLIFOstyle@\prexylinecap@{\xylinecap@}% - \postxylinecap@{\xyprevcap@@}} - -\xydef@\prexylinecap@@{\let\prexylinecap@=\eat@ - \let\postxylinecap@=\postxylinecap@@ \outputxylinecap@ } -\xydef@\postxylinecap@@{\let\postxylinecap@=\eat@ - \let\prexylinecap@=\prexylinecap@@ \resetxylinecap@@ } -\xylet@\prexylinecap@=\prexylinecap@@ -\xylet@\postxylinecap@=\postxylinecap@@ - -\xydef@\outputxylinecap@#1{\xycapSpecial@@{#1}} -\xydef@\resetxylinecap@#1{\resetxylinecap@i{#1}\outputxylinecap@{#1}} -\xydef@\resetxylinecap@i#1{\def\xylinecap@{#1}} -\xylet@\resetxylinecap@@=\resetxylinecap@ - -\xylet@\xycapSpecial@@=\eat@ -\DOCMODE) - -Implementation of line-joins: - -\DOCMODE( -\xydef@\xy@linejoin@#1{\checkXyStyle@ - \edef\xyprevjoin@@{\xylinejoin@}#1% - \let\prexylinejoin@=\prexylinejoin@@ - \let\postxylinejoin@=\postxylinejoin@@ - \applyLIFOstyle@\prexylinejoin@{\xylinejoin@}% - \postxylinecap@{\xyprevjoin@@}} - -\xydef@\prexylinejoin@@{\let\prexylinejoin@=\eat@ - \let\postxylinejoin@=\postxylinejoin@@ \outputxylinejoin@ } -\xydef@\postxylinejoin@@{\let\postxylinejoin@=\eat@ - \let\prexylinejoin@=\prexylinejoin@@ \resetxylinejoin@@ } -\xylet@\prexylinejoin@=\prexylinejoin@@ -\xylet@\postxylinejoin@=\postxylinejoin@@ - -\xydef@\outputxylinejoin@#1{\xyjoinSpecial@@{#1}} -\xydef@\resetxylinejoin@#1{\resetxylinejoin@i{#1}\outputxylinejoin@{#1}} -\xydef@\resetxylinejoin@i#1{\def\xylinejoin@{#1}} -\xylet@\resetxylinejoin@@=\resetxylinejoin@ - -\xylet@\xyjoinSpecial@@=\eat@ -\DOCMODE) - -Implementation of miter-limit: - -\DOCMODE( -\xydef@\xy@linemiter@#1{\checkXyStyle@ - \edef\xyprevmiter@@{\xylinemiter@}#1% - \let\prexylinemiter@=\prexylinemiter@@ - \let\postxylinemiter@=\postxylinemiter@@ - \applyLIFOstyle@\prexylinemiter@{\xylinemiter@}% - \postxylinecap@{\xyprevmiter@@}} - -\xydef@\prexylinemiter@@{\let\prexylinemiter@=\eat@ - \let\postxylinemiter@=\postxylinemiter@@ \outputxylinemiter@ } -\xydef@\postxylinemiter@@{\let\postxylinemiter@=\eat@ - \let\prexylinemiter@=\prexylinemiter@@ \resetxylinemiter@@ } -\xylet@\prexylinemiter@=\prexylinemiter@@ -\xylet@\postxylinemiter@=\postxylinemiter@@ - -\xydef@\outputxylinemiter@#1{\xymiterSpecial@@{#1}} -\xydef@\resetxylinemiter@#1{\resetxylinemiter@i{#1}\outputxylinemiter@{#1}} -\xydef@\resetxylinemiter@i#1{\def\xylinemiter@{#1}} -\xylet@\resetxylinemiter@@=\resetxylinemiter@ - -\xylet@\xymiterSpecial@@=\eat@ -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The path taken by the `poly-line' this is read as the list of <pos>itions -in the current `stack', ignoring size extents. -The macro |\xypolyline| is used as a <decor>; it reads the <pos>itions from -the stack, but leaves the stack intact for later use. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Implementation of `poly-lines'. - -\DOCMODE( -\xydef@\xypolyline#1{\xypolyline@{#1}} - -\xydef@\xypolyline@#1{\hbox\bgroup - \enter@{\pfromthep@ \basefromthebase@ \cfromthec@}% - \def\xyps@list{}\edef\smapp@@{\s@bot}% - \smapxy@i{\enter@{\pfromthep@ \basefromthebase@ }% - \edef\xyps@list{\expandafter\removePT@\the\X@c\space - \expandafter\removePT@\the\Y@c\space \xyps@list}\leave@}% - \leave@ \xy@polystyle@@{#1}\xydopoly@style\egroup - \def\Drop@@{\styledboxz@}\def\Connect@@{\styledboxz@}}% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The following diagram illustrates the use of line-thickness, line-joins -and line-caps with poly-lines. It contains an example of each of the styles. - -\begin{code} -\xycompileto{poly}% -{/r4pc/:,*[|<5pt>][thicker]\xybox{% - *+(3,2){}="X" -;@={p+CU,p+LU,p+LD,p+RD,p+RU,p+CU} - ,{0*[miter]\xypolyline{}} - ,{\xypolyline{*}},@i@) -,"X",*+(2.5,1.5){}="X" -,@={!CU,!LU,!LD,!RD,!RU,!CU} - ,{0*[gray][roundjoin]\xypolyline{}} - ,{0*[gray]\xypolyline{*}},@i@) -,"X",*+(2,1){}="X" -,@={!CU,!LU,!LD,!RD,!RU,!CU} - ,{0*[white]\xypolyline{*}} - ,{0*[bevel]\xypolyline{}},@i@) -,"X"-(.7,0)*++\txt\LARGE{A}="a" -,"X"+(.7,0)*++\txt\LARGE{B}="b" -,{\ar@{-}@*{[butt][thinner]}"a";"b"<1pc>} -,{\ar@{-}@*{[roundcap][thinner]}"a";"b"} -,{\ar@{-}@*{[projcap][thinner]}"a";"b"<-1pc>} -}} -\end{code} -$$\docode$$ -\displaycode -\noindent -Note the use of |{0*[...]\xypolyline{..}}| to apply style-modifiers -to a polyline. The |@={!..}| method for loading the stack gives -equivalent results to using |;@={p+..}|, since |\xypolyline| -ignores the edge extents of each <pos> in the stack. - -Note also that the argument |#1| to |\xypolyline| affects what -is typeset. Allowable arguments are: -% -\begin{defs} -|\xypolyline{}| & solid line\cr -|\xypolyline{.}| & dotted line\cr -|\xypolyline{-}| & dashed line\cr -|\xypolyline{*}| & fill enclosed polygon\cr -|\xypolyline{?}| & fill enclosed polygon using even-odd rule\cr -|\xypolyline{{*}}| & use |\dir{*}| for lines\cr -|\xypolyline{<toks>}|\kern-20pt & \kern20pt using |\dir{<toks>}| \cr -\end{defs} -\noindent -The latter cases one has |**\dir{...}| being used to connect the vertices -of the polyline, with |{{*}}| being needed to get |**\dir{*}|. -Similarly |**\dir| is used when a <driver> is not available to specifically -support polylines; in particular the two `fill' options |*| and |?| will -result in a dotted polygon outline the region intended to be filled. - -In all cases it is up to the user to load the stack before calling -|\xypolyline{|\dots|}|. A particularly common case is the outline of -an existing \Xy-pic <object>, as in the example above. Future extensions -to |\frm| will provide a simplified mechanism whereby the user need not -call |\xypolyline| explicitly for such effects. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xylet@\xypolyline@Special=\eat@ -\xylet@\xypolyfill@Special=\eat@ -\xylet@\xypolyeofill@Special=\eat@ -\xylet@\xypolydot@Special=\eat@ -\xylet@\xypolydash@Special=\eat@ - -\xydef@\UnloadpolySpecials@{% - \let\xypolyline@Special=\eat@ - \let\xypolyfill@Special=\eat@ - \let\xypolyeofill@Special=\eat@ - \let\xypolydot@Special=\eat@ - \let\xypolydash@Special=\eat@ -} - -\xydef@\xy@polystyle@#1{% - \let\poly@style@@=\xypolyline@Special - \DNii@{#1}\ifx\nextii@\empty - \else\DN@{*}\ifx\next@\nextii@ \let\poly@style@@=\xypolyfill@Special - \else\DN@{?}\ifx\next@\nextii@ \let\poly@style@@=\xypolyeofill@Special - \else\expandafter\DN@\expandafter{\addDOT@{}}\ifx\next@\nextii@ - \let\poly@style@@=\xypolydot@Special - \else\expandafter\DN@\expandafter{\addDASH@{}}\ifx\next@\nextii@ - \let\poly@style@@=\xypolydash@Special - \else\DN@{{*}}\ifx\next@\nextii@ \def\poly@style@@{\xypolystraight@{*}}% - \else \def\poly@style@@{\xypolystraight@{#1}}% - \fi\fi\fi\fi\fi\fi } - -\xydef@\xydopoly@style{\expandafter\poly@style@@\expandafter{\xyps@list}} -\xydef@\xynopolystyle@#1#2{\xyundefinedLine@{polyline}{{#1}}@@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -When there is no special support this handles the various cases using -ordinary thin line types. - -\DOCMODE( -\xydef@\xypolynospec@#1{\DNii@{#1}% - \ifx\nextii@\empty\def\poly@style@@{\xypolystraight@{-}}% - \else\DN@{.}\ifx\next@\nextii@ \def\poly@style@@{\xypolystraight@{.}}% - \else\DN@{-}\ifx\next@\nextii@ \def\poly@style@@{\xypolystraight@{--}}% - \else\DN@{*}\ifx\next@\nextii@ \def\poly@style@@{\xypolystraight@{.}}% - \else\DN@{?}\ifx\next@\nextii@ \def\poly@style@@{\xypolystraight@{.}}% - \else\DN@{{*}}\ifx\next@\nextii@ \def\poly@style@@{\xypolystraight@{*}}% - \else \def\poly@style@@{\xypolystraight@{#1}}% - \fi\fi\fi\fi\fi\fi } -\DOCMODE) - -Gobble the collected positions in |{\xyps@list}|; recover the vertices -from the stack, then set straight lines in the appropriate style. - -\DOCMODE( -\xydef@\xypolystraight@#1#2{% - \enter@{\pfromthep@ \basefromthebase@ \cfromthec@}% - \edef\smapp@@{\s@bot}\csname S@0\endcsname\czeroEdge@\pfromc@\def\smapp@@{0}% - \smapxy@i{\czeroEdge@\enter@{\pfromthec@}{\connect@\dir{#1}}\leave@}\leave@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Initially poly-lines are uninstalled, until loaded by a <driver>. - -\DOCMODE( -\xylet@\xy@polystyle@@=\xypolynospec@ - -\xydef@\UninstallPolylines@{% - \UnloadpolySpecials@ - \let\xy@polystyle@@=\xypolynospec@ } -\UninstallPolylines@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Installation} - -Initially there is no support for the actual effects. - -\DOCMODE( -\xydef@\xyundefinedLine@#1#2@@{% - \xywarning@{The #1 #2 effect is not implemented with the current driver.}}% - -\xydef@\xynolinewidth@#1#2{% - \xyundefinedLine@{linewidth}{\the\xylinethick@}@@}% -\xydef@\xynolinecap@#1{\xyundefinedLine@{linecap}{\xylinecap@}@@}% -\xydef@\xynolinejoin@#1{\xyundefinedLine@{linejoin}{\xylinejoin@}@@}% -\xydef@\xynolinemiter@#1{\xyundefinedLine@{miterlimit}{\xylinemiter@}@@}% -\DOCMODE) - -Nothing further can be done unless allowed by a specific <driver>, which -must establish an alternative expansions to be bound to |\xylinewidth@@| -and the other hooks. - -\DOCMODE( -\xylet@\xylinewidth@@=\xynolinewidth@ -\xylet@\xy@linecap@@=\xynolinecap@ -\xylet@\xy@linejoin@@=\xynolinejoin@ -\xylet@\xy@linemiter@@=\xynolinemiter@ - -\xydef@\UnloadLine@#1{% - \ifx#1\relax\else\xyunload@{line width extension}\fi - \let\resetxyline@@=\resetxyline@ - \let\resetxylinecap@@=\resetxylinecap@ - \let\resetxylinejoin@@=\resetxylinejoin@ - \let\resetxylinemiter@@=\resetxylinemiter@ - \let\transxyline@@=\DN@ - \let\xylineSpecial@@=\eat@ - \let\xycapSpecial@@=\eat@ - \let\xyjoinSpecial@@=\eat@ - \let\xymiterSpecial@@=\eat@ - \let\xylinewidth@@=\xynolinewidth@ - \let\xy@linecap@@=\xynolinecap@ - \let\xy@linejoin@@=\xynolinejoin@ - \let\xy@linemiter@@=\xynolinemiter@ - \UninstallPolylines@ } - -\xyaddunsupport{line}{\UnloadLine@\relax} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This is a possible alternative for |\xylinewidth@@|. Indeed it is used -with the \PS\ support, which then redefines just |\xylineSpecial@@|. - -\DOCMODE( -\xydef@\xylinewidth@#1#2{\checkXyStyle@ - #1\let\prexyline@=\prexyline@@ \let\postxyline@=\postxyline@@ - \applyLIFOstyle@\prexyline@{\the\xylinethick@}\postxyline@{#2}} -\xydef@\prexyline@@{\let\prexyline@=\eat@ - \let\postxyline@=\postxyline@@ \outputxyline@ } -\xydef@\postxyline@@{\let\postxyline@=\eat@ - \let\prexyline@=\prexyline@@ \resetxyline@@ } -\xylet@\prexyline@=\prexyline@@ -\xylet@\postxyline@=\postxyline@@ - -\xydef@\resetxyline@#1{\resetxyline@i{#1}\outputxyline@{#1}} -\xydef@\resetxyline@i#1{\xylinethick@=#1\relax} -\xydef@\outputxyline@#1{\transxyline@@{#1}% - \expandafter\xylineSpecial@@\expandafter{\next@}} -\xylet@\resetxyline@@=\resetxyline@ -\DOCMODE) - -These need to be rebound by a back-end which supports variation in the -line-thickness. - -\DOCMODE( -\xydef@\transxyline@#1{\edef\next@{\removePT@#1}} - -\xylet@\transxyline@@=\DN@ -\xylet@\xylineSpecial@@=\eat@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xyline.doc,v $ -% Revision 3.6 1998/03/06 01:28:05 krisrose -% Releasing (with Y&Y fonts). -% -% Revision 3.3 1996/12/18 09:22:29 ross -% adjustments for styles now within the kernel code -% fixed problem with line-widths -% -% 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. -% -% Revision 2.12 1994/10/25 03:01:14 ross -% Final 3beta release [bug fixes & AMS-LaTeX fitting]. -% -% Revision 2.11 1994/07/05 09:27:49 ross -% fixed documentation bug -% -% Revision 2.10 1994/06/15 12:46:03 ross -% Second release 3beta. -% Colour and line style saving works; label colouring bug fixed. -% -% Revision 2.9 1994/06/09 14:39:49 ross -% Release 3beta. -% -% NEW for version 2.9 by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xymacpat.xyp b/Master/texmf-dist/source/generic/xypic/xymacpat.xyp deleted file mode 100644 index 2987acd7bbe..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xymacpat.xyp +++ /dev/null @@ -1,61 +0,0 @@ -% $Id: xymacpat.xyp,v 3.3 1996/12/18 09:25:21 ross Exp $ -% -% Patterns for Xy-pic tile 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. -% -mac01 00 <FFFFFFFFFFFFFFFF> -mac02 08 <DDFF77FFDDFF77FF> -mac03 16 <DD77DD77DD77DD77> -mac04 32 <AA55AA55AA55AA55> -mac05 16 <55FF55FF55FF55FF> -mac06 32 <AAAAAAAAAAAAAAAA> <AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA> -mac07 16 <EEDDBB77EEDDBB77> <EEEEEEDDDDDDBBBBBB777777EEEEEEDDDDDDBBBBBB777777> -mac08 48 <8888888888888888> <888888888888888888888888888888888888888888888888> -mac09 40 <B130031BD8C00C8D> <B1B1B13030300303031B1B1BD8D8D8C0C0C00C0C0C8D8D8D> -mac10 56 <8010022001084004> <808080101010020202202020010101080808404040040404> -mac11 36 <FF888888FF888888> <FFFFFF888888888888888888FFFFFF888888888888888888> -mac12 42 <FF808080FF080808> <FFFFFF808080808080808080FFFFFF080808080808080808> -mac13 63 <8000000000000000> <808080000000000000000000000000000000000000000000> -mac14 58 <8040200002040800> <808080404040202020000000020202040404080808000000> -mac15 49 <8244394482010101> <828282444444393939444444828282010101010101010101> -mac16 34 <F87422478F172271> <F8F8F87474742222224747478F8F8F171717222222717171> -mac17 48 <55A04040550A0404> <555555A0A0A04040404040405555550A0A0A040404040404> -mac18 50 <2050888888880502> <202020505050888888888888888888888888050505020202> -mac19 31 <BF00BFBFB0B0B0B0> <BFBFBF000000BFBFBFBFBFBFB0B0B0B0B0B0B0B0B0B0B0B0> -mac20 64 <0000000000000000> -mac21 60 <8000080080000800> -mac22 56 <8800220088002200> -mac23 48 <8822882288228822> -mac24 48 <AA00AA00AA00AA00> -mac25 32 <FF00FF00FF00FF00> <FFFFFF000000FFFFFF000000FFFFFF000000FFFFFF000000> -mac26 48 <1122448811224488> <111111222222444444888888111111222222444444888888> -mac27 48 <FF000000FF000000> <FFFFFF000000000000000000FFFFFF000000000000000000> -mac28 56 <0102040810204080> <010101020202040404080808101010202020404040808080> -mac29 56 <AA00800088008000> <AAAAAA000000808080000000888888000000808080000000> -mac30 49 <FF80808080808080> <FFFFFF808080808080808080808080808080808080808080> -mac31 51 <081C22C180010204> <0808081C1C1C222222C1C1C1808080010101020202040404> -mac32 50 <881422418800AA00> <888888141414222222414141888888000000AAAAAA000000> -mac33 58 <40A00000040A0000> <404040A0A0A00000000000000404040A0A0A000000000000> -mac34 51 <038448300C020101> <0303038484844848483030300C0C0C020202010101010101> -mac35 46 <8080413E080814E3> <8080808080804141413E3E3E080808080808141414E3E3E3> -mac36 44 <102054AAFF020408> <101010202020545454AAAAAAFFFFFF020202040404080808> -mac37 26 <77898F8F7798F8F8> <7777778989898F8F8F8F8F8F777777989898F8F8F8F8F8F8> -mac38 48 <0008142A552A1408> <0000000808081414142A2A2A5555552A2A2A141414080808> diff --git a/Master/texmf-dist/source/generic/xypic/xymatrix.doc b/Master/texmf-dist/source/generic/xypic/xymatrix.doc deleted file mode 100644 index 4c269ad502a..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xymatrix.doc +++ /dev/null @@ -1,1345 +0,0 @@ -%% $Id: xymatrix.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -%% -%% Xy-pic ``Matrix'' feature. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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@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{matrix}{Matrix feature}{\stripRCS$Revision: 3.4 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This option implements ``\Xy-matrices'', \ie, matrices where it is - possible to refer to the entry objects by their row/column address. - We first describe the general form of \Xy-matrices in~\S??[matrix], - then in~\S??[coord] we summarise the new <coord>inate forms used to - refer to entries. In~\S??[spacing] we explain what parameters can be - set to change the spacing and orientation of the matrix, and - in~\S??[entries] we explain how the appearance of the entries can be - changed. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{\Xy-matrices} -??=[matrix] -% - The fundamental command of this feature is -% -\begin{defs1} - ??c![\xymatrix] <setup> |{|<rows>|}| -\end{defs1} -\noindent\unskip -% - that reads a ??w![matrix] of entries in the generic \TeX\ row\&column - format, \ie, where rows are separated with ??c![\\] and contain - columns separated with ??c![&] (we discuss in the following sections - what <setup> can be). Thus a matrix with "maxrow" rows and "maxcol" - columns where each entry contains "row"|,|"col" is entered as -$$ -\begin{array}{llll} -|\xymatrix{|\\ -~{|1,1 &|} &{|1,2 &|}\quad\cdots &{|1,|"maxcol"| \\|} \\ -~{|2,1 &|} &{|2,2 &|} &{|2,|"maxcol"| \\|} \\ -~~\vdots &\qquad\ddots \\ -~{"maxrow"|,1 &|}&{"maxrow"|,2 &|} &{"maxrow"|,|"maxcol"| }|} -\end{array} -$$ - (\TeX\-nically the |&| character represents any `alignment tab', \ie, - character with category code~4). - - A ??w![<matrix>] can appear either in an \Xy-picture (as <decor>) or - ``stand-alone''. - - The aspects in which |\xymatrix| differs from ordinary matrix - constructions, such as Plain \TeX's |\matrix{|\dots|}| and \LaTeX's - |array| environment, are -% -\begin{itemize} - -\item - arbitrary \Xy-pic <decor>ations may be specified in each entry and - will be interpreted in a state where $c$ is the current entry, - -\item - the entire matrix is an object itself with reference point as the top - left entry, and - -\item - a progress message ``|<xymatrix| "rows"|x|"cols" "size"|>|'' is - printed for each matrix with $"rows"\times"cols"$ entries and \Xy-pic - complexity "size" (the number of primitive operations performed), - unless the declaration ??c![\SilentMatrices] is issued. - -\item - Entries starting with a ??c![*] are special (described - in~\S??[entries])\footnote{In general it is recommended that entries - start with a non-expanding token, \ie, an ordinary (non-active) - character, {\tt\otherbgroup}, or |\relax|, for compilation to work.}, - so use |{*}| to get a $\star$. - -\end{itemize} -% - For example, -% -\begin{code} -\xy - \xymatrix{A&B\\C&D} - \drop\frm{-} - \drop\cir<8pt>{} -\endxy -\end{code} -\displaycode -% -\noindent - will typeset -% -$$\docode$$ -% - \BUG: Matrix nesting is not safe. - - Matrices are often quite slow to typeset so as a convenience all - matrices can be set to compile (and not) automatically with the - declarations -% -\begin{defs1} -|\CompileMatrices| \cr -|\NoCompileMatrices| \cr -\end{defs1} -\noindent\unskip -% - Matrices can be compiled or not individually, by using the explicit - commands ??c![\xymatrixcompile] and ??c![\xymatrixnocompile] as - well as by encapsulating in the usual - |\xycompileto{|"name"|}{|\dots|}| (see note~??g[xy.doc:compile]). - - \NOTE: Matrices will only compile correctly if all entries start with - a nonexpandable token, \ie, |{| or |\relax| or some non-active - character. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{On the following code:} - - The complexity of this option stems from the fact that we cannot - build the actual \Xy-picture until after the matrix has been typeset - so that we know the sizes and places of all the entries. The - handling described here is thus separated into several subprocedures. - -\paragraph*{Setup:} - - Not much---only to keep track of the rows and columns. These are not - accesible to the user---should they? - -\DOCMODE( -\xynew@{count}\Row -\xynew@{count}\Col - -\xydef@\maxrow@{0} % highest row number used -\xydef@\maxcol@{0} % highest column number used -\xydef@\maxcolrow@{0} % a row with maximal number of columns -\DOCMODE) - - There are some user-defined parameters summarised later. - - The following is an experimental set of `optimal' queueing macros - using two queues and two counters to keep track of the progress. - -\DOCMODE( -\xynew@{toks}\queue@ -\xynew@{toks}\queue@@ - -\xynew@{count}\qcount@ -\xynew@{count}\qcount@@ - -\xydef@\clearq@{% - \global\queue@={}\global\qcount@=\@ne - \global\queue@@={}\global\qcount@@=\z@} - -\xydef@\addq@#1{\global\advance\matrixsize@\@ne - \ifnum\qcount@@<\qcount@ \let\addq@@=\addq@i - \else \let\addq@@=\addq@ii \fi - \expandafter\addq@@\the\queue@@\addq@@{#1}} - -\xylet@\addq@@=\relax - -\xydef@\addq@i#1\addq@@#2{% - \global\advance\qcount@@\@ne \global\queue@@={#1#2}} - -\xydef@\addq@ii#1\addq@@#2{% - \global\advance\qcount@\@ne \global\qcount@@=\z@ - \global\queue@=\expandafter{\the\queue@#1#2}\global\queue@@={}} - -\xydef@\finishq@{\expandafter\addq@ii\the\queue@@\addq@@{}} -\DOCMODE) - - \HACK: intended to make the addition of tokens to the token list - faster: we first add to the `small' |\queue@@| as many times as we - have added to the `big' |\queue@| before that. So we know we should - always expand |\queue@@|: this is done first (last in the macro - text). Then we call |\addq@@| that will either add to the small one - or add the small one to the big one and then clear the small one! - - "Usage": Call |\clearq@| first. Then use |\addq@| as many times as - desired. To get the queue in |\queue@| call |\finishq@| and use it. - Finally clear |\queue@| (globally) or continue. - -\paragraph*{Main procedure:} - - Here is the main code which is concerned with initialisations and - output of messages explaining how far the matrix construction has - progressed. - -\DOCMODE( -\xynew@{count}\matrixsize@ -\xynew@{if}\ifnoisymatrices@ \noisymatrices@true - -\xydef@\SilentMatrices{\noisymatrices@false} -\xydef@\NoisyMatrices{\noisymatrices@true} - -\xydef@\xymatrixnocompile{\global\matrixsize@=\z@ - \ifnoisymatrices@\message{<xymatrix}\fi - \if\inxy@ - \DN@{\nter@{}\xy@\xymatrix{\enter@{% - \def\noexpand\xy@minX@@{\xy@minX@@}\def\noexpand\xy@maxX@@{\xy@maxX@@}% - \def\noexpand\xy@minY@@{\xy@minY@@}\def\noexpand\xy@maxY@@{\xy@maxY@@}% - \edef\noexpand\xymatrixprefix@@{\codeof\xymatrixprefix@@}}}}% - \else \DN@{\xy \nter@\endxy \xy@\xymatrix{\nter@{}}}\fi \next@ - \xy@@{\save@ \edef\matrixorigin@{\X@c=\the\X@c \Y@c=\the\Y@c}% - \edef\xy@minX@@{\the\X@c}\edef\xy@maxX@@{\the\X@c}% - \edef\xy@minY@@{\the\Y@c}\edef\xy@maxY@@{\the\Y@c}}% - \xdef\maxrow@{0}\xdef\maxcol@{0}\xdef\maxcolrow@{0}% - \mkHWdefaults@ \xymatrix@prefix""} - -\xylet@\xymatrix=\xymatrixnocompile - -\xydef@\xymatrixprefix@@{} - -\xydef@\xymatrix@prefix"#1"{\DN@{#1}\edef\xymatrixprefix@@{\codeof\next@}% - \DNii@##1{\xy@{"#1"}{\edef\xymatrixprefix@@{##1}}}% - \expandafter\nextii@\expandafter{\xymatrixprefix@@}% - \xyFN@\xymatrix@setup} - -\xydef@\xymatrix@setup{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xymatrix@setup}%gobble spaces - \else\ifx \bgroup\next \let\next@=\xymatrix@ii - \else\addAT@\ifx\next \addAT@\DN@{\xy@{@}{}\xyFN@\xymatrix@at}% - \else\ifx "\next \let\next@=\xymatrix@prefix - \else \DN@{\xyerror@{\string\xymatrix<setup>{<rows>} expected}{}}% - \fi\fi\fi\fi \next@} - -\xydef@\xymatrix@ii#1{% -% -%\W@{ H@max=\meaning\H@max}% -%\W@{ W@max=\meaning\W@max}% -%\W@{ HW@max=\meaning\HW@max}% -%\W@{ mkHrow@={\meaning\mkHrow@}}% -%\W@{ mkWcol@={\meaning\mkWcol@}}% -%\W@{ mkHmax@={\meaning\mkHmax@}}% -%\W@{ mkWmax@={\meaning\mkWmax@}}% -%\W@{ mkHWmax@={\meaning\mkHWmax@}}% -% - \xymatrix@pretypeset{#1}% -% \ifnum\maxcol@=\z@ \mkWcol@ \mkWmax@ %\mkHrow@ \mkHmax@ - \ifnum\maxcol@=\z@ \mkWcol@ \mkWmax@ \mkHrow@ \mkHmax@ - \xdef\maxcol@{\the\Col}\xdef\maxcolrow@{\the\Row}\fi - \ifnoisymatrices@\message{\maxcol@ x\maxrow@}\fi - \xymatrix@measureit@@ \the\queue@ \global\queue@={}% - \xymatrix@typeset{#1}\restore\xymatrix@insert - \xy@@\leave@ \leave@ - \ifnoisymatrices@\message{\the\matrixsize@>}\fi \ignorespaces} -\DOCMODE) - - Here is where compilation of matrices is turned on/off. - -\DOCMODE( -\xydef@\xymatrixcompile#1#{\xymatrixcompile@{#1}} -\xydef@\xymatrixcompile@#1#2{\xycompile{\xymatrixnocompile#1{#2}}} - -\xydef@\CompileMatrices{\let\xymatrix=\xymatrixcompile} -\xydef@\NoCompileMatrices{\let\xymatrix=\xymatrixnocompile} -\DOCMODE) - - \TODO: Proper nesting that ensures that the matrix state is - reestablished after the current one has been typeset. - - Each subprocedure is explained below. - -\paragraph*{Set row-rotation:} - - This sets the general direction of the rows as the current direction - indicates. This direction is not known until \Xy-time so it gets put - into the row/column definitions. - -\DOCMODE( -\xydef@\xy@cossign@@{+} -\xydef@\xy@sinsign@@{+} -\xydef@\xy@cosabs@@{1} -\xydef@\xy@sinabs@@{0} -\xydef@\xy@tanabs@@{0} -\xydef@\xy@cotabs@@{100} - -\xydef@\xymatrix@rotation{%?*[rotation] - \xy@@{% - \edef\xy@cossign@@{\ifdim\cosDirection\p@<\z@-\else+\fi}% - \edef\xy@sinsign@@{\ifdim\sinDirection\p@<\z@-\else+\fi}% - \edef\xy@cosabs@@{% - \if\xy@cossign@@\cosDirection\else\xy@cossign@@\cosDirection\fi}% - \edef\xy@sinabs@@{% - \if\xy@sinsign@@\sinDirection\else\xy@sinsign@@\sinDirection\fi}% - \dimen@=\xy@cosabs@@\p@ \dimen@ii=\xy@sinabs@@\p@ - \ifdim\dimen@ii<.01\p@ \def\xy@cotabs@@{100}% - \else \quotient@\xy@cotabs@@\dimen@\dimen@ii \fi - \dimen@=\xy@cosabs@@\p@ \dimen@ii=\xy@sinabs@@\p@ - \ifdim\dimen@<.01\p@ \def\xy@tanabs@@{100}% - \else \quotient@\xy@tanabs@@\dimen@ii\dimen@ \fi}} -\DOCMODE) - -\paragraph*{Pretypeset:} - - The purpose of this is to -% -\begin{itemize} -\item - set box8 to an halign with all the entries properly typeset to be - measured in the next step, and -\item - store in a queue the operations that will define each entry as an - object once the measurement is done and the distances between rows - and columns is known. -\end{itemize} -% - This is achieved as follows: Row/column counters, maxima, and queues - are reset. The tab- and interlineskip is removed to make taking the - constructed box apart easier. And the halign template is used to - apply an appropriate action for each entry that updates the counters - and queue. - - The special |\xymatrixsavedCOORD@| is used to store the original - |\COORD@| except when diagrams are nested. - -\DOCMODE( -\xylet@\xymatrixsavedCOORD@=\relax - -\xydef@\xymatrix@pretypeset#1{% - \global\Row=\z@ \xdef\maxcol@{0}\clearq@ - \setbox8=\vtop{% - \ifx\xymatrixsavedCOORD@\relax \let\xymatrixsavedCOORD@=\COORD@ \fi - \let\COORD@=\xymatrixCOORD@ - \everycr{}\let\\=\cr \tabskip=\z@ \offinterlineskip - \halign{\prentry@ ##!@&&\xyFN@\prentry@@##!@\cr#1\crcr}% - \prentry@@@}% - \xdef\maxrow@{\the\Row}% - \finishq@} -\DOCMODE) - - The first entry in each row is special; in particular it moves the - entries from the columns of the previous row (if any) into the - second-level queue: - -\DOCMODE( -\xydef@\prentry@{\relax - \ifnum\Row>\z@ - \ifnum\maxcol@<\Col\xdef\maxcol@{\the\Col}\xdef\maxcolrow@{\the\Row}\fi - \expandafter\xdef\csname maxcol@\the\Row\endcsname{\the\Col}\fi - \global\advance\Row\@ne \global\Col=\z@ \xyFN@\prentry@@} -\DOCMODE) - - The common part should first typeset the object. Then the resulting - <setup> commands should be emitted as described below. - - While typesetting the entry, \Xy-commands are "disabled" by - redefining |\xy@| to just `eat' its arguments, so they don't - interfere\dots - -\DOCMODE( -\xylet@\lastprentry@@=\relax - -\xydef@\xyeatall@{\let\xy@=\xyeat@ \change@oxy@\xyeat@ \let\xy@@ix@=\eat@} - -\xydef@\prentry@@{\global\advance\Col\@ne - \let\next@=\prentry@@norm - \ifoldxymatrix@\else \ifx *\next \DN@*{\xyFN@\prentry@@star}\fi \fi - \next@} - -\xydef@\prentry@@star{\ifx *\next \DN@*{\xyFN@\prentry@@star@ii}% - \else \DN@##1##{\prentry@@star@i{##1}}\fi \next@} - -\xydef@\prentry@@star@i#1#2#3!@{\gdef\lastprentry@@{*#1{#2}#3}% - \setbox\lastobjectbox@=\object#1{#2}% - \prentry@@x} - -\xydef@\prentry@@star@ii{% - \ifx [\next - \DN@[##1]{\DN@####1{\def\entrymodifiers@{[##1]####1}}% - \expandafter\next@\expandafter{\entrymodifiers@}\prentry@@norm}%] - \else - \DN@##1{\DN@####1{\def\entrymodifiers@{##1####1}}% - \expandafter\next@\expandafter{\entrymodifiers@}\prentry@@norm}% - \fi \next@} - -\xydef@\prentry@@norm#1!@{\gdef\lastprentry@@{#1}% - \DN@{\setbox\lastobjectbox@=\object}% - \expandafter\next@\entrymodifiers@{\xyeatall@ \everyentry@ #1}% - \prentry@@x} - -\xydef@\prentry@@x{% - \edef\next@{{\noexpand\pre@emit{\the\Row}{\Upness@}{\the\Col}{\Leftness@}% - {\the\L@c}{\the\R@c}{\the\D@c}{\the\U@c}{\expandafter\noexpand\the\Edge@c}}}% - \expandafter\addq@\next@ \box\lastobjectbox@} -\DOCMODE) - - Finally the following ensures that the last row in the diagram is - treated correctly: if the last entry was an empty row then we ignore - the row entirely if the |\ifoldxymatrix@| switch is set just as we - ignore |*|-entries above. - -\DOCMODE( -\xynew@{if}\ifoldxymatrix@ \oldxymatrix@false - -\xydef@\prentry@@@{\relax \let\next@=\prentry@@@i - \ifoldxymatrix@ \ifnum\Col=\@ne \ifx\lastprentry@@\empty - \global\advance\Row\m@ne \let\next@=\relax \fi\fi\fi - \global\let\lastprentry@@=\relax \next@} - -\xydef@\prentry@@@i{% - \ifnum\maxcol@<\Col \xdef\maxcol@{\the\Col}\xdef\maxcolrow@{\the\Row}\fi - \expandafter\xdef\csname maxcol@\the\Row\endcsname{\the\Col}} -\DOCMODE) - - Furthermore the code (??_[edge])~sets the edge and extents of the - object and (??_[extents])~adds the object to the size of the matrix. - \BUG: Currently ignores upness and leftness parameters. - -\DOCMODE( -\xydef@\xy@minX@@{\z@} -\xydef@\xy@maxX@@{\z@} -\xydef@\xy@minY@@{\z@} -\xydef@\xy@maxY@@{\z@} - -\xydef@\pre@emit#1#2#3#4#5#6#7#8#9{% - % #1=R,#2=Upn,#3=C,#4=Leftn,#5=L,#6=R,#7=D,#8=U,#9=Edge. - \global\Row=#1\global\Col=#3\relax - \ifnum#3=\@ne - \ifnum#1=\@ne \xy@@{\matrixorigin@}%?*[1,1] - \else \count@@=#1\advance\count@@\m@ne %?*[r,1] - \edef\next@{\noexpand\xy@@{\noexpand\cfromid@ - {\xymatrixprefix@@\the\count@@,1}}}\next@ - \pre@emit@ \W@maxout\Hrow@c@@\W@maxin\Hrow@in\xy@tanabs@@ - \X@c\xy@sinsign@@\xy@sinabs@@\xymatrixrowsep@ - \pre@emit@ \Hrow@c@@\W@maxout\Hrow@in\W@maxin\xy@cotabs@@ - \Y@c{-\xy@cossign@@}\xy@cosabs@@\xymatrixrowsep@ - \fi - \else \count@@=#3\advance\count@@\m@ne %?*[r,c] - \pre@emit@ \Wcol@c@@\H@maxout\Wcol@in\H@maxin\xy@cotabs@@ - \X@c\xy@cossign@@\xy@cosabs@@\xymatrixcolsep@ - \pre@emit@ \H@maxout\Wcol@c@@\H@maxin\Wcol@in\xy@tanabs@@ - \Y@c\xy@sinsign@@\xy@sinabs@@\xymatrixcolsep@ - \fi - \DN@##1{\xy@@{\L@c=#5\R@c=#6\D@c=#7\U@c=#8\Edge@c={#9}\idfromc@{##1#1,#3}}}% - \expandafter\next@\expandafter{\xymatrixprefix@@}%?*[edge] - \xy@@{%?*[extents] - \dimen@=\X@c \advance\dimen@-\L@c - \ifdim\dimen@<\xy@minX@@ \edef\xy@minX@@{\the\dimen@}\fi - \dimen@=\X@c \advance\dimen@+\R@c - \ifdim\dimen@>\xy@maxX@@ \edef\xy@maxX@@{\the\dimen@}\fi - \dimen@=\Y@c \advance\dimen@-\D@c - \ifdim\dimen@<\xy@minY@@ \edef\xy@minY@@{\the\dimen@}\fi - \dimen@=\Y@c \advance\dimen@+\U@c - \ifdim\dimen@>\xy@maxY@@ \edef\xy@maxY@@{\the\dimen@}\fi}} -\DOCMODE) - - The following procedure represents the similarity of the four lines - for the coordinates in the computation above\dots \TODO: describe - this properly\dots - -\DOCMODE( -\xydef@\pre@emit@#1#2#3#4{#1\A@ #2\B@ #3\R@ #4\dimen@ - \edef\next@{{\the\A@}{\the\B@}{\the\R@}{\the\dimen@}}% - \expandafter\pre@emit@i\next@} - -\xydef@\pre@emit@i#1#2#3#4#5{\xy@@{% - % Emit R := min(#1,#5#2) + min(#3,#5#4) - \dimen@=#2\R@=#5\dimen@ \dimen@=#1\relax \ifdim\R@>\dimen@ \R@=\dimen@ \fi - \dimen@=#4\B@=#5\dimen@ \dimen@=#3\relax \ifdim\B@>\dimen@ \B@=\dimen@ \fi - \advance\R@\B@}% - \pre@emit@ii} - -\xydef@\pre@emit@ii#1#2#3#4{\xy@@{% - % Emit #1 := #1 + #2*[ R + #3#4 ] - \dimen@=#4\dimen@=#3\dimen@ \advance\R@\dimen@ \advance#1#2\R@}} - -\xydef@\Wcol@in#1{#1=\csname Wcol@\the\Col\endcsname #1=.5#1} -\xydef@\Wcol@out#1{#1=\csname Wcol@\the\Col\endcsname #1=.5#1} -\xydef@\Wcol@c@@#1{#1=\csname Wcol@\the\count@@\endcsname #1=.5#1} -\xydef@\W@maxin#1{#1=\W@max #1=.5#1} -\xydef@\W@maxout#1{#1=\W@max #1=.5#1} - -\xydef@\Hrow@in#1{#1=\csname Hrow@\the\Row\endcsname #1=.5#1} -\xydef@\Hrow@out#1{#1=\csname Hrow@\the\Row\endcsname #1=.5#1} -\xydef@\Hrow@c@@#1{#1=\csname Hrow@\the\count@@\endcsname #1=.5#1} -\xydef@\H@maxin#1{#1=\H@max #1=.5#1} -\xydef@\H@maxout#1{#1=\H@max #1=.5#1} -\DOCMODE) - - \BUG: It should be possible to change te adjustment more profoundly - for individual entries, rows, and columns. - -\paragraph*{Measure:} - - Take the created box8 apart to define the macros |\Wcol@|"col" and - |\Hrow@|"row" containing the width and height of the bounding box of - the entries in the row/column. Finally the commands collected in the - queue are executed (hopefully they'll invoke |\pre@emit| a number of - times). This is a hook because some special cases won't need it\dots - -\DOCMODE( -\xydef@\H@max{\z@} -\xydef@\W@max{\z@} -\xydef@\HW@max{\z@} - -\xydef@\mkHrow@{} -\xydef@\mkWcol@{} -\xydef@\mkHmax@{} -\xydef@\mkWmax@{} -\xydef@\mkHWmax@{} - -\xydef@\mkHWdefaults@{\let\xymatrix@measureit@@=\xymatrix@measureit - \let\mkHrow@=\Hrow@R \let\mkWcol@=\Wcol@C - \def\mkHmax@{\ifdim\dimen@>\H@max\relax \xdef\H@max{\the\dimen@}\fi}% - \def\mkWmax@{\ifdim\dimen@>\W@max\relax \xdef\W@max{\the\dimen@}\fi}% - \let\mkHWmax@=\HWmax@max} - -\xydef@\Hrow@R{\expandafter\xdef\csname Hrow@\the\Row\endcsname{\the\dimen@}} -\xydef@\Wcol@C{\expandafter\xdef\csname Wcol@\the\Col\endcsname{\the\dimen@}} - -\xydef@\Hrow@max{\expandafter\gdef\csname Hrow@\the\Row\endcsname{\H@max}} -\xydef@\Wcol@max{\expandafter\gdef\csname Wcol@\the\Col\endcsname{\W@max}} - -\xydef@\Hrow@HWmax{\expandafter\gdef\csname Hrow@\the\Row\endcsname{\HW@max}} -\xydef@\Wcol@HWmax{\expandafter\gdef\csname Wcol@\the\Col\endcsname{\HW@max}} - -\xydef@\HWmax@max{% - \ifdim\H@max>\W@max\global\let\HW@max=\H@max\else\global\let\HW@max=\W@max\fi} - -\xydef@\HWmax@set#1{\gdef\HW@max{#1}% - \global\let\H@max=\HW@max \global\let\W@max=\HW@max} - -\xydef@\xymatrix@measureit{% - \xdef\H@max{\z@}\xdef\W@max{\z@}% - \setbox6=\vbox{\unvbox8 \global\Row=\maxrow@ - \loop@ \dimen@ii=\lastskip\unskip \ifnum\z@<\Row - \setbox4=\lastbox \dimen@=\dp4 \advance\dimen@\ht4 \mkHrow@ \mkHmax@ - \ifnum\Row=\maxcolrow@ - \setbox2=\hbox{\unhbox4 % - \global\Col=\maxcol@ - \loop@ \dimen@ii=\lastskip\unskip \ifnum\z@<\Col - \setbox\z@=\lastbox \dimen@=\wdz@ \mkWcol@ \mkWmax@ - \global\advance\Col\m@ne - \repeat@}\fi - \global\advance\Row\m@ne - \repeat@}% - \mkHWmax@} - -\xylet@\xymatrix@measureit@@=\relax -\DOCMODE) - - \TODO: Allow non-default spacing between particular rows/columns as - well as different justification of the entire matrix\dots - -\paragraph*{Typeset:} - - Retypeset the entire diagram using a hacked halign: its template - typesets each entry as -$$ - |\POS|\,|"|"row"|,|"col"|"|\,|*|\,"object"\,|\relax|\,"\Xy-commands"|\relax| -$$ - where "object" is the contents of the entry translated into \Xy-pic - <object> form and "\Xy-commands" entails the commands used in this - particular entry. - -\DOCMODE( -\xydef@\xymatrix@typeset#1{% - \clearq@ - \hbox{\vtop{\xyqall@ - \xy@@{\ifx\xymatrixsavedCOORD@\relax - \enter@{\noexpand\let\noexpand\COORD@\noexpand\xymatrixsavedCOORD@}% - \let\xymatrixsavedCOORD@=\COORD@ \let\COORD@=\xymatrixCOORD@ - \else \enter@{}\fi}% - \ifx\xymatrixsavedCOORD@\relax \let\xymatrixsavedCOORD@=\COORD@ \fi - \let\COORD@=\xymatrixCOORD@ - \kern\z@ \global\Row=\z@ - \everycr{}\let\\=\cr \tabskip=\z@ \offinterlineskip - \halign{\entry@##!@&&\entry@@##!@\cr#1\crcr}% - \xy@@{\leave@}}}% - \finishq@ \expandafter\xy@@\expandafter{\the\queue@}\global\queue@={}} -\DOCMODE) - - Here are the template execution macros: We reset the |\queue@| for - each entry, |\drop| it the usual way except first all \Xy-commands - are `redirected' to the queue, and then typeset them. - -\DOCMODE( -\xydef@\entry@{\relax \global\advance\Row\@ne \global\Col=\z@ \entry@@} -\DOCMODE) - - Again some parsing determines whether this is a |*|-object or a - normal object: - -\DOCMODE( -\xydef@\entry@@{\global\advance\Col\@ne - \DN@##1,##2,##3@{\xy@{ENTRY "##3##1,##2"}{\Row=##1 \Col=##2\relax - \cfromid@{##3##1,##2}\pfromc@}}% - \edef\nextii@{\the\Row,\the\Col,\xymatrixprefix@@ @}% - \expandafter\next@\nextii@ - \xyFN@\entry@@i} - -\xydef@\entry@@i{\let\next@=\entry@@norm - \ifoldxymatrix@\else \ifx *\next \DN@*{\xyFN@\entry@@star}\fi \fi - \next@} - -\xydef@\entry@@star{\ifx *\next \DN@*{\xyFN@\entry@@star@ii}% - \else \DN@##1##{\entry@@star@i{##1}}\fi \next@} - -\xydef@\entry@@star@i#1#2#3!@{% - \xy@@ix@{{#1}{#2}}\xy@@{\expandafter\dropentry@\the\toks9}% - \setboxz@h{\xyqall@ - \ifx\xymatrixsavedCOORD@\relax \let\xymatrixsavedCOORD@=\COORD@ \fi - \let\COORD@=\xymatrixCOORD@ \everyentry@ #3}% - \setbox\z@=\copy\voidb@x} - -\xydef@\entry@@star@ii{% - \ifx [\next - \DN@[##1]{\DN@####1{\def\entrymodifiers@{[##1]####1}}% - \expandafter\next@\expandafter{\entrymodifiers@}\entry@@norm}%] - \else - \DN@##1{\DN@####1{\def\entrymodifiers@{##1####1}}% - \expandafter\next@\expandafter{\entrymodifiers@}\entry@@norm}% - \fi \next@} - -\xydef@\entry@@norm#1!@{% - \DN@##1{\expandafter\xy@@ix@ - \expandafter{\expandafter{\entrymodifiers@}{##1}}}% - \expandafter\next@\expandafter{\everyentry@#1}% - \xy@@{\expandafter\dropentry@\the\toks9}% - \setbox\z@=\expandafter\object\entrymodifiers@{\xyqall@ - \ifx\xymatrixsavedCOORD@\relax \let\xymatrixsavedCOORD@=\COORD@ \fi - \let\COORD@=\xymatrixCOORD@ \everyentry@ #1}% - \setbox\z@=\copy\voidb@x} -\DOCMODE) - - Dropping the entry is just retypesetting it at the right location - again ignoring the \Xy-stuff: - -\DOCMODE( -\xydef@\dropentry@#1#2{\drop@{#1}{\xyeatall@ - \ifx\xymatrixsavedCOORD@\relax \let\xymatrixsavedCOORD@=\COORD@ \fi - \let\COORD@=\xymatrixCOORD@ #2}} -\DOCMODE) - - The macros used for queuing are these; only the toks9 replacement is - tricky; furthermore queueing is "not" done if we are saving because - the effect will give the same result without risk of extremely long - lines in the compiled file! - -\DOCMODE( -\xydef@\xyqall@{% - \ifxysaving@ \let\xy@=\xyqs@ \let\xy@@ix@=\xysave@@toksix@ - \else \let\xy@=\xyq@ \let\xy@@ix@=\xyq@@toksix@ \fi - \change@oxy@\xy@} - -\xydef@\xyq@#1#2{\addq@{#2}} - -\xydef@\xyq@@toksix@{\begingroup - \xyuncatcodes \afterassignment\xyq@@toksix@i \global\toks9=} - -\xydef@\xyq@@toksix@i{% - \DN@##1{\endgroup \xy@@{\global\toks9={##1}}}% - \expandafter\next@\expandafter{\the\toks9}} - -\xydef@\xyqs@{\global\advance\matrixsize@\@ne \xysave@} -\DOCMODE) - -\paragraph*{Insert:} - - Finally we insert the matrix in the \Xy-picture logically by ensuring - that it has the right size - -\DOCMODE( -\xydef@\xymatrix@insert{% - \xy@@{\edef\nextii@{{\xy@minX@@}{\xy@maxX@@}{\xy@minY@@}{\xy@maxY@@}}% - \expandafter\xymatrix@insert@\nextii@}} - -\xydef@\xymatrix@insert@#1#2#3#4{\matrixorigin@ - \L@c=+\X@c \advance\L@c-#1\relax - \R@c=-\X@c \advance\R@c+#2\relax - \D@c=+\Y@c \advance\D@c-#3\relax - \U@c=-\Y@c \advance\U@c+#4\relax - \Edge@c={\rectangleEdge}} -\DOCMODE) - - \TODO: Should handle other forms than reference point at center - of~|"1,1"| as hardcoded here. In particular reference point at - baseline of |"1,1"| would be useful\dots - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{New coordinate formats} -??=[coord] -% - It is possible within entries to refer to all the entries of the - \Xy-matrix using the following special <coord>inate forms: -% -\begin{defs} -% - {}\kern-10pt|"|$r$|,|$c$|"|\kern5pt - & Position and extents of entry in row $r$, column $c$ (top left is - |"1,1"|) -\cr - {}\kern-15pt|[|$\Delta r$|,|$\Delta c$|]|\kern10pt - & $\Delta r$ rows below, $\Delta c$ columns right of current entry -\cr - {}\kern-15pt|[| <hop>\star\ |]|\kern10pt - & entry reached by <hop>s; each <hop> is one of |dulr| describing - one `move' to a neighbor entry -\cr - {}\kern-15pt|[| <hop>\plus\ <place>\ |]| - & <place> on straight line to "non-empty" |[|<hop>\star|]| -\cr -\end{defs} -\noindent\unskip -% - So the current entry has the synonyms |[0,0]|, |[]|, |[rl]|, |[ud]|, - |[dudu]|, etc., as well as its `absolute' name |"|$r$|,|$c$|"|. - - These forms are useful for defining diagrams where the entries are - related, \eg, -% -\begin{code} -$$\xy -\xymatrix{ - A \POS[];[d]**\dir{~}, - [];[dr]**\dir{-} \\ - B & C \POS[];[l]**\dir{.} } -\endxy$$ -\end{code} -\docode -% - was typeset by -% -\displaycode -% - If an entry outside the \Xy-matrix is referenced then an error is - reported. - - In case several matrices are used in the same diagram, and they refer - to each other, then it is useful to give the matrices different - |"|<prefix>|"| <setup> such that they can refer to each other using - the following special coordinate forms that all have the same meaning - except the target entry is picked from a particular matrix: -% -\begin{defs1} - |"|<prefix>$r$|,|$c$|"| \cr - |["|<prefix>|"|$\Delta r$|,|$\Delta c$|]| \cr - |["|<prefix>|"| <hop>\star\ |]| \cr - |["|<prefix>|"| <hop>\plus\ <place>\ |]| \cr -\end{defs1} -\noindent\unskip -% - In fact absolute references "must" always be given using - |"|<prefix><row>|,|<col>|"|, "even inside the matrix itself". - - Here is an example using this: -% -\begin{code} -\xy - \xymatrix"*"{% - A & B \\ - C & D }% - \POS*\frm{--} - \POS-(10,3) - \xymatrix{% - A' \ar@{.}["*"] & B' \ar@{.}["*"] \\ - C' \ar@{.}["*"] & D' \ar@{.}["*"] }% - \POS*\frm{--} -\endxy -\end{code} -$$\docode$$ -% - was typeset (using the `frame' extension and `arrow' feature) by -% -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - These handle the parsing and interpretation of bracketed - <coord>inates; the number is computed already at parse time: - -\DOCMODE( -\xylet@\thematrixCOORD@@=\relax -\xylet@\thematrixprefix@@=\relax - -\xydef@\xymatrixCOORD@{% - \ifx [\next %] - \DN@[##1]{\xy@{[##1]}{\def\thematrixCOORD@@{[##1]}}% - \xyFN@\xymatrixCOORD@i##1]}% - \else \let\next@=\xymatrixsavedCOORD@ \fi \next@} - -\xydef@\xymatrixCOORD@i{\count@=\Row \count@@=\Col - \let\thematrixprefix@@=\xymatrixprefix@@ - \ifcat A\noexpand\next - \DN@##1{\expandafter\notrelaxorelse@\csname xymatrixCOORD@i@##1\endcsname - \xymatrixCOORD@other}%[[ - \else\ifx ]\next \DN@]{\xymatrixCOORD@x}% - \else\ifx "\next \DN@"##1"{\DN@{##1}\edef\thematrixprefix@@{\codeof\next@}% - \xyFN@\xymatrixCOORD@ii}% - \else \let\next@=\xymatrixCOORD@other \fi\fi\fi \next@} - -\xydef@\xymatrixCOORD@i@u{\advance\count@ \m@ne\xyFN@\xymatrixCOORD@ii} -\xydef@\xymatrixCOORD@i@d{\advance\count@ \@ne \xyFN@\xymatrixCOORD@ii} -\xydef@\xymatrixCOORD@i@l{\advance\count@@\m@ne\xyFN@\xymatrixCOORD@ii} -\xydef@\xymatrixCOORD@i@r{\advance\count@@\@ne \xyFN@\xymatrixCOORD@ii} - -\xydef@\xymatrixCOORD@ii{% - \ifcat A\noexpand\next - \DN@##1{\expandafter\notrelaxorelse@\csname xymatrixCOORD@i@##1\endcsname - \xymatrixCOORD@error}% - \else\ifx ]\next \DN@]{\xymatrixCOORD@x}% - \else \let\next@=\xymatrixCOORD@xx \fi\fi \next@} - -\xydef@\xymatrixCOORD@error#1{\DN@{#1}% - \xyerror@{illegal <coord> (\codeof\next@): illegal [...] target form}{}% - \xyFN@\xymatrixCOORD@ii} - -\xydef@\xymatrixCOORD@other#1,#2]{% - \advance\count@#1\advance\count@@#2\xymatrixCOORD@x} -\DOCMODE) - - The next does the actual lookup at \Xy-time where we can still print - an error message using the saved original form. - -\DOCMODE( -\xydef@\xymatrixCOORD@x{% - \DN@##1{\xy@@{% - \expandafter\let\expandafter\next@\csname Q@##1\endcsname - \ifx\next@\relax \xyerror@RC{##1}\else \next@ \fi}% - \afterCOORD@}% - \edef\nextii@{{\thematrixprefix@@\the\count@,\the\count@@}}% - \expandafter\next@\nextii@} - -\xydef@\xymatrixCOORD@xx{% - \DN@##1{\xy@@{% - \expandafter\let\expandafter\next@\csname Q@##1\endcsname - \ifx\next@\relax \xyerror@RC{##1}\else \next@\no@@ \fi}% - \afterPLACE\xymatrixCOORD@after}% - \edef\nextii@{{\thematrixprefix@@\the\count@,\the\count@@}}% - \expandafter\next@\nextii@} - -\xydef@\xymatrixCOORD@after{% - \ifx ]\next \DN@]{\afterCOORD@}% - \else \let\next@=\xymatrixCOORD@error \fi \next@} - -\xydef@\xyerror@RC#1{\xyerror@{in entry \string"\the\Row,\the\Col\string": - No \codeof\thematrixCOORD@@\space(is \string"#1\string") from here}{}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Spacing and rotation} -??=[spacing] -% - Any matrix can have its ??w![spacing]??w[matrix spacing] and - ??w![orientation]??w[matrix orientation] changed by adding <setup> - `switches' between |\xymatrix| and the opening |{|. - - The default spacing between entries of matrix is changed with the - switches -% -\begin{defs1} - ??c![@R]<add~op> <dimen> \cr - ??c![@C]<add~op> <dimen> \cr - ??c![@] <add~op> <dimen> \cr -\end{defs1} -\noindent\unskip -% - that change ??w![row spacing], ??w![column spacing], and both, - respectively, as indicated by the <add~op> and <dimen>, where the - <dimen> may be omitted and can be given as one of |R| and |C| to - indicate the current value of the parameter in question. \NOTE: there - is "no default". - - In addition, \Xy-pic can be instructed to use a `??w![fixed grid]' - for the matrix with the switches -% -\begin{defs1} - ??c![@!R] \cr - ??c![@!C] \cr - ??c![@!] -\end{defs1} -\noindent\unskip -% - that ensure that the row spacing, column spacing, and both, - respectively, pretending that "all" entries have the size of the - largest entry (without modifying the real size of the entries, of - course, only the spacing -- to get the entries to "really" have the - same size use a |@*|\dots\ <setup> described in \S??[entries] - below). The special variants -% -\begin{defs1} - ??c![@!0] \cr - ??c![@!=]<dimen> -\end{defs1} -\noindent\unskip -% - pretend that entries have zero or <dimen> height and width for - computing row and column spacing; as above inserting |R| or |C| just - after the |!| makes this affect only the row "or" column spacing, - \eg, |@!R0| means that the row spacing only is between the centers of - the rows. - - Finally, the spacing of things that are typeset can be adjusted - separately: -% -\begin{defs1} - ??c![@M]<add~op> <dimen> \cr - ??c![@W]<add~op> <dimen> \cr - ??c![@H]<add~op> <dimen> \cr - ??c![@L]<add~op> <dimen> -\end{defs1} -\noindent\unskip -% - will adjust the ??w![entry margin], ??w![entry width], ??w![entry - height], and ??w![label separation] used (the latter is actually - passed to the arrow feature). - -\DOCMODE( -\xylet@\xymatrix@addop@@=\relax - -\xydef@\xymatrix@at{\def\xymatrix@addop@@{\xymatrix@R\xymatrix@C}% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xymatrix@at}%gobble spaces - \else\ifx !\next \DN@!{\xyFN@\xymatrix@fix}% - \else\addPLUS@\ifx \next \let\next@=\xymatrix@addop - \else\addDASH@\ifx \next \let\next@=\xymatrix@addop - \else\addEQ@\ifx \next \let\next@=\xymatrix@addop - \else\ifx 1\next \DN@1{\def\everyentry@{\vphantom(}%) - \let\objectmargin@=\p@ \xyFN@\xymatrix@setup}% - \else\ifx R\next \def\xymatrix@addop@@{\xymatrix@R}\DN@ R{\xymatrix@addop}% - \else\ifx C\next \def\xymatrix@addop@@{\xymatrix@C}\DN@ C{\xymatrix@addop}% - \else\ifx M\next \def\xymatrix@addop@@{\xymatrix@M}\DN@ M{\xymatrix@addop}% - \else\ifx L\next \def\xymatrix@addop@@{\xymatrix@L}\DN@ L{\xymatrix@addop}% - \else\ifx H\next \def\xymatrix@addop@@{\xymatrix@H}\DN@ H{\xymatrix@addop}% - \else\ifx W\next \def\xymatrix@addop@@{\xymatrix@W}\DN@ W{\xymatrix@addop}% - \else\ifx *\next \DN@*{\xyFN@\xymatrix@mods}% - \else \DN@{\afterDIRECTIONorEMPTY - {\xymatrix@rotation \xyFN@\xymatrix@setup}{% - \xyerror@{<addop> or <direction> or one of RCMLHW*! expected}{}% - \xyFN@\xymatrix@setup}}% - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\xymatrix@fix{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xymatrix@fix}%gobble spaces - \else\ifx R\next \let\mkHrow@=\Hrow@max \DN@ R{\xyFN@\xymatrix@fix@}% - \else\ifx C\next \let\mkWcol@=\Wcol@max \DN@ C{\xyFN@\xymatrix@fix@}% - \else \let\mkHrow@=\Hrow@HWmax \let\mkWcol@=\Wcol@HWmax - \let\next@=\xymatrix@fix@ - \fi\fi\fi \next@} - -\xydef@\xymatrix@fix@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xymatrix@fix@}%gobble spaces - \else\ifx 0\next \def\mkHWmax@{\HWmax@set\z@}\DN@ 0{\xyFN@\xymatrix@setup}% - \else\addEQ@\ifx\next \addEQ@\DN@{\afterassignment\xymatrix@fix@x\dimen@ii=}% - \else \let\mkHWmax@=\HWmax@max \let\next@=\xymatrix@setup \fi\fi\fi \next@} - -\xydef@\xymatrix@fix@x{% - \edef\mkHWmax@{\noexpand\HWmax@set{\the\dimen@ii}}\xyFN@\xymatrix@setup} - -\xydef@\xymatrix@addop{\afterADDOP{\xyFN@\xymatrix@addop@}} -\xydef@\xymatrix@addop@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xymatrix@addop@}%gobble spaces - \else\ifx R\next \DN@ R{\xy@{R}{}\dimen@ii=\xymatrixrowsep@\xymatrix@addop@x}% - \else\ifx C\next \DN@ C{\xy@{C}{}\dimen@ii=\xymatrixcolsep@\xymatrix@addop@x}% - \else \DN@{\afterassignment\xymatrix@addop@x\dimen@ii=}\fi\fi\fi \next@} - -\xydef@\xymatrix@addop@x{\expandafter\xy@\expandafter{\the\dimen@ii}{}% - \xymatrix@addop@@ \xyFN@\xymatrix@setup} - -\xydef@\xymatrix@R{\Addop@@\xymatrixrowsep@\dimen@ii} -\xydef@\xymatrix@C{\Addop@@\xymatrixcolsep@\dimen@ii} - -\xydef@\xymatrix@M{\Addop@@\objectmargin@\dimen@ii} -\xydef@\xymatrix@L{\Addop@@\labelmargin@\dimen@ii} - -\xydef@\xymatrix@H{\Addop@@\objectheight@\dimen@ii} -\xydef@\xymatrix@W{\Addop@@\objectwidth@\dimen@ii} -\DOCMODE) - - The spacing can also be changed for en entire \TeX\ group by the - declarations -% -\begin{defs1} - |\xymatrixrowsep| <add~op> |{|<dimen>|}| \cr - |\xymatrixcolsep| <add~op> |{|<dimen>|}| \cr -\end{defs1} -\noindent\unskip -% - The default spacing for both is |2pc|. - -\DOCMODE( -\xydef@\xymatrixrowsep@{2pc} -\xydef@\xymatrixcolsep@{2pc} - -\xydef@\xymatrixrowsep{\afterADDOP{\Addop@@\xymatrixrowsep@}} -\xydef@\xymatrixcolsep{\afterADDOP{\Addop@@\xymatrixcolsep@}} -\DOCMODE) -% - \TODO: optimize processing of matrices with constant grid. - - An entire matrix can be rotated by adding a rotation <setup> of the - form -% -\begin{defs1} - |@|<direction> \cr -\end{defs1} -\noindent\unskip -% - This will set the orientation of the rows to <direction> (the default - corresponds to |r|, \ie, rows are oriented left to right). - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The code is the first procedure of the main matrix code above - (??_[rotation]); factors are used by |\pre@emit|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Entries} -??=[entries] -% - The appearance of a single entry can be modified by entering it as -% -\begin{defs1} -??c![*] <object> <pos> <decor> -\end{defs1} -\noindent\unskip -% - This makes the particular entry ignore the entry modifiers and - typeset as a kernel object with the same reference point as the - (center of) the default object would have had. - - Additional object <modifier>s may be added to an otherwise ordinary - entry by using the forms -% -\begin{defs1} -??c![**]|[|<shape>|]| <entry> \cr -%|**| <add~op> <size> \cr -|**{|<modifier>*|}| <entry> \cr -\end{defs1} -\noindent\unskip -% - The first sets the default <shape> for objects - (\cf~note~??g[xy.doc:<shape>]), the second a default size (change, - \cf~note~??g[xy.doc:<object> size]), and the last makes it possible - to add any <object> modifier of~\S??g[xy.doc:object], \eg, for - recentering entries after the ??w![default entry] form which is - equivalent to `|!C| |+<|$2\times"object"\-"margin"$|>|' (with the - effect of centering the object and add the "object"\-"margin") to all - sides. - -\begin{exercise} - Typeset the following diagram: -% -\begin{code} -\xymatrix @!=1pc { - **[l] A\times B - \ar[r]^{/A} \ar[d]_{/B} - & B \ar[d]^{\times A} -\\ - A \ar[r]_{B\times} - & **[r] B\times A -} -\end{code} -$$\docode$$ -% -\answercode -\answertext{The author did \displaycode} -\end{exercise} - - It is also possible to use these |@|<setup>s (as usual between - |\xymatrix| and the leading |{|): -% -\begin{defs1} -??c![@*]|[|<shape>|]| \cr -|@*| <add~op> <size> \cr -\end{defs1} -\noindent\unskip -% - which are equivalent to changing all entries to behave as if they had - started with the similar |**|-form. \TODO: Allow |**|<add~op><size> - <entry> for entries. - - If the default set of entry modifiers should be changed then the - following declaration must be issued before the |\xymatrix| command; - this is the only way to actually switch the initial default centering - and spacing off: -% -\begin{defs1} -??c![\entrymodifiers]|={| <modifier>\star\ |}| -\end{defs1} - -\begin{exercise} - How did the author typeset the following matrix? -% -\begin{code} -\entrymodifiers={=<1pc>[o][F-]} -\xymatrix @ur { - A \save[];[r] **\dir{-}, - [];[dr]**\dir{-}, - [];[d] **\dir{-}\restore - & B \\ - C & D } -\end{code} -$$\docode$$ -% -\answercode -\answertext{Modifiers are used to make all entries round with a frame -- the - general form is used to ensure that the sequence is well-defined. - Finally the matrix is rotated to make it possible to enter it as a - simple square: \displaycode} -\end{exercise} - - \BUG: The four constructions |@*[|\dots|]|, |**[|\dots|]|, |@*| - <add~op> <size>, and, |**{|\dots|}|, "accumulate in reverse order". - Only entries starting with a single |*| completely override the - modifiers <setup> with a |@*|-construction. - -\DOCMODE( -\xydef@\xymatrix@mods{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xymatrix@mods}%gobble spaces - \else\ifx [\next - \DN@ [##1]{\xy@{[##1]}{}\DN@####1{\def\entrymodifiers@{[##1]####1}}% - \expandafter\next@\expandafter{\entrymodifiers@}\xyFN@\xymatrix@setup}%] - \else\addPLUS@\ifx \next \DN@##1{\DNii@{##1}\xyFN@\xymatrix@change}% - \else\addDASH@\ifx \next \DN@##1{\DNii@{##1}\xyFN@\xymatrix@change}% - \else\addEQ@\ifx \next \DN@##1{\DNii@{##1}\xymatrix@set}% - \else \let\next@=\xymatrix@mods@error \fi\fi\fi\fi\fi \next@} - -\xydef@\xymatrix@set{% - \begingroup \plainxy@ - \afterVECTORorEMPTY\xymatrix@mods@x\xymatrix@mods@error} - -\xydef@\xymatrix@change{% - \addEQ@\ifx\next \DN@##1{\expandafter\DNii@\expandafter{\nextii@##1}% - \expandafter\xy@\expandafter{\nextii@}{}\begingroup \plainxy@ - \afterVECTORorEMPTY\xymatrix@mods@x\xymatrix@mods@xx}% - \else \DN@{\expandafter\xy@\expandafter{\nextii@}{}\begingroup \plainxy@ - \afterVECTORorEMPTY\xymatrix@mods@x\xymatrix@mods@xx}\fi - \next@} - -\xydef@\xymatrix@mods@x{\expandafter\xy@\expandafter{\nextii@}{}% - \def\next@##1##2##3{\def\nextii@####1{##1##2####1##3}}% - \addGT@{\addLT@{\expandafter\next@\expandafter{\nextii@}}}% - \DN@##1{\gdef\tmp@@@{{##1}}}% - \edef\nextiii@{{\the\X@c,\the\Y@c}}% - \expandafter\expandafter\expandafter\next@ - \expandafter\expandafter\expandafter{\expandafter\nextii@\nextiii@}% - \endgroup - \DN@##1{\xy@{##1}{}\DN@####1{\def\entrymodifiers@{##1####1}}% - \expandafter\next@\expandafter{\entrymodifiers@}\xyFN@\xymatrix@setup}% - \expandafter\next@\tmp@@@} - -\xydef@\xymatrix@mods@xx{\expandafter\xy@\expandafter{\nextii@}{}% - \expandafter\gdef\expandafter\tmp@@@\expandafter{\expandafter{\nextii@}}% - \endgroup - \DN@##1{\xy@{##1}{}\DN@####1{\def\entrymodifiers@{##1####1}}% - \expandafter\next@\expandafter{\entrymodifiers@}\xyFN@\xymatrix@setup}% - \expandafter\next@\tmp@@@} - -\xydef@\xymatrix@mods@error{\endgroup - \xyerror@{Impossible @*<addop><size> <setup>.}{}\xyFN@\xymatrix@setup} - -\xywarnifdefined\entrymodifiers -\expandafter\def\addEQ@\entrymodifiers#1{\def\entrymodifiers@{#1}\ignorespaces} - -\xydef@\entrymodifiers@{\entrybox} - -\xydef@\entrybox#1{\hbox{\setbox\z@=\objectbox{#1}% - \L@p=\wdz@ \D@p=\ht\z@ \advance\D@p\dp\z@ - \dimen@=\objectwidth@ \advance\dimen@-\L@p - \ifdim\dimen@>\z@ \advance\L@p\dimen@ \R@p=.5\dimen@ \else \R@p=\z@ \fi - \dimen@=\objectheight@ \advance\dimen@-\D@p - \ifdim\dimen@>\z@ \advance\D@p\dimen@ \fi - \dimen@=\objectmargin@ \advance\L@p2\dimen@ \advance\D@p2\dimen@ - \U@p=-.5\ht\z@ \advance\U@p.5\dp\z@ \advance\R@p\objectmargin@ - \setboxz@h{\kern\R@p \raise\U@p\boxz@}% - \wdz@=\L@p \ht\z@=.5\D@p \dp\z@=.5\D@p \boxz@}} -\DOCMODE) - - Finally, the following is specially suited for `one-line' matrices - included in text: -% -\begin{defs1} -??c![@1] \cr -\end{defs1} -\noindent\unskip -% - will insert a `math strut' (|\vphantom(|) into each entry to make its - centering appropriate for text. - - This is just an abbreviation using the following declaration which - will setup <decor> that should be inserted before everything else in - each entry. Initially it is empty but -% -\begin{defs1} -??c![\everyentry]|={| <decor> |}| -\end{defs1} -\noindent\unskip -% - will insert <decor> first in each entry; inside the counter registers - ??c![\Row] and ??c![\Col] are set to the current entry's row and - column, respectively. For example, -% -\begin{code} -\everyentry={{\the\Row,\the\Col}} -\xymatrix @*[F]@*[o] { - {} \POS[];[r]**\dir{..} & \\ - {} \POS[];[ur]**\dir{--} -} -\end{code} -\displaycode -\noindent\unskip -% - will typeset -% -$$\docode$$ - -\DOCMODE( -\xywarnifdefined\everyentry -\expandafter\def\addEQ@\everyentry#1{\def\everyentry@{#1}\ignorespaces} - -\xylet@\everyentry@=\empty -\DOCMODE) - - \noindent\NOTE: When using compilation, changes to |\everyentry| and - |\entrymodifiers| will "not" result in recompilation even when the - constructed matrix changes -- you may have to remove the |.xyc| file - manually. - -\begin{exercise} - How did the author typeset the following diagram? -% -\begin{code} -\xymatrix @W=3pc @H=1pc @R=0pc @*[F-] {% - : \save+<-4pc,1pc>*\hbox{\it root} - \ar[] - \restore -\\ - {\bullet} - \save*{} - \ar`r[dd]+/r4pc/`[dd][dd] - \restore -\\ - {\bullet} - \save*{} - \ar`r[d]+/r3pc/`[d]+/d2pc/ - `[uu]+/l3pc/`[uu][uu] - \restore -\\ - 1 } -\end{code} -$$\docode$$ -% - "Hints": The arrow feature was used to make the bending arrows and - the frame extension for the frames around each cell. -% -\answercode -\answertext{Here is how: \displaycode} -\end{exercise} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection*{End \& log} - -\DOCMODE( -\xyendinput - -% $Log: xymatrix.doc,v $ -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/06 02:56:02 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% Revision 2.9 1994/06/09 15:02:49 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% NEW for version 2.7 extracted from diagram code in xypic.doc 2.6.1.1. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs how we are formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% LaTeX-indent-level:1 -% TeX-brace-indent-level:1 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xymovie.doc b/Master/texmf-dist/source/generic/xypic/xymovie.doc deleted file mode 100644 index a2b891243d4..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xymovie.doc +++ /dev/null @@ -1,161 +0,0 @@ -%% $Id: xymovie.doc,v 3.5 1997/05/28 13:05:01 krisrose Exp $ -%% -%% Xy-pic ``Movie Storyboard extension'' option. -%% Copyright (c) 1996-1997 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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@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{movie}{Movie Storyboard extension}{\stripRCS$Revision: 3.5 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This extension interprets the ??c![\scene] primitive of the - ??c![movie] class, setting the progress indicators to dummy values. - The following assumes that your are familiar with the |movie| class. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The size of the frame is determined by the command -% -\begin{defs1} -??c![\MovieSetup]|{width=|"width"|,height=|"height"|,|\dots|}| -\end{defs1} -\noindent\unskip -% - (the \dots\ indicate the other arguments required by the |movie| - class but silently ignored by the \Xy-pic |movie| extension). - - \NOTE: This extension still experimental and subject to change. The - only documentation is in the |movie.cls| source file. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The implementation mimics the aspects of the |keyval| package needed - here, namely reading the ??c![height] and ??c![width] parameters. - -\DOCMODE( -\xynew@{dimen}\m@height -\xynew@{dimen}\m@width - -\xydef@\extractparameterm@#1#2#3{% - \DN@##1,#1=##2,##3@{\csname m@#1\endcsname=##2\relax}% - \next@,#2,#3,@} - -\xydef@\MovieSetup#1{% - \extractparameterm@{height}{#1}{height=2in}% - \extractparameterm@{width}{#1}{width=2in}% -} -\DOCMODE) - - The progress macros all default to - -\DOCMODE( -\xydef@\theScene{0} -\xydef@\theF{0} -\xydef@\theFr{1} -\xydef@\F#1{#1(0)} -\xydef@\Fr#1{#1(1)} -\DOCMODE) - - We need to interpret and ignore the arguments to |\scene| except the - |*| which is used on the last scene since this means that we should - output the scene with progress values corresponding to ``The End''. - -\DOCMODE( -\xynew@{if}\iflastframe@ -\xynew@{count}\m@scene - -\xydef@\scene{\advance\m@scene\@ne - \DN@{\ifx*\next \lastframe@true \DN@*{\xyFN@\scene@}% - \else \let\next@=\scene@ \fi \next@}% - \xyFN@\next@} - -\xydef@\scene@{% - \ifx[\next \DN@[##1]{\scene@i}\else \let\next@=\scene@i \fi \next@} - -\long\def\scene@i#1{{% -% - \def\caption##1{\gdef\m@caption{Scene \the\m@scene. ##1}}% - \edef\theScene{\the\m@scene}% - \def\theF{0}\def\theFr{1}% - \def\F##1{##1(0)}\def\Fr##1{##1(1)}% - \scene@frame{#1}% -% - \iflastframe@ - \def\caption##1{}% - \gdef\m@caption{The End.}% - \def\theF{1}\def\theFr{0}% - \def\F##1{##1(1)}\def\Fr##1{##1(0)}% - \scene@frame{#1}% - \fi - }\ignorespaces} - -\def\scene@frame#1{\vbox{\null - \dimen@=\m@width \advance\dimen@2\xydashw@ - \hrule width\dimen@ - \hbox to\dimen@{\vrule width\xydashw@ \hss - \vbox to\m@height{\hsize=\m@width \null\vfil{#1}\vfil\null}% - \hss \vrule width\xydashw@}% - \hrule width\dimen@ - \setbox0=\hbox{% - \setbox0=\hbox to\m@width{\hss\strut \m@caption\hss}% - \dimen0=\dp0 \ht0=0pt \dp0=0pt \raise\dimen0\box0}% - \ht0=0pt \dp0=0pt \box0\relax - \null}} -\DOCMODE) - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xymovie.doc,v $ -% Revision 3.5 1997/05/28 13:05:01 krisrose -% Fixed missing breaks bug. -% -% Revision 3.4 1997/05/18 02:37:17 krisrose -% Fits movie.cls 3.4...still experimental. -% -% Revision 1.1 1997/05/18 01:22:10 krisrose -% Initial revision -% -% NEW for version 3.4. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs how we are formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% TeX-parse-self:nil -% LaTeX-indent-level:1 -% TeX-brace-indent-level:1 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xynecula.doc b/Master/texmf-dist/source/generic/xypic/xynecula.doc deleted file mode 100644 index 2185441aa29..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xynecula.doc +++ /dev/null @@ -1,594 +0,0 @@ -%% $Id$ -%% -%% Xy-pic ``Necula extensions'' option. -%% Copyright (c) 1998 George C. Necula <necula@cs.cmu.edu> -%% -%% 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-1998 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{necula}{Necula's extensions}{\stripRCS$Revision: 0.0 $}% - {George C. Necula}{necula@cs.cmu.edu}% - {School of Computer Science, - Carnegie Mellon University, - 5000 Forbes Avenue, - Pittsburgh, PA 15213-3891, USA} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This option contains two extensions of the \Xy-pic kernel: A way to - expand \TeX\ macros in object <modifier>s, and a way to specify - arbitrary polygons as the <shape> of an object. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Expansion} - - The special syntax ??c![e|]<macros>|||| is introduced in - an object ??w![<modifier>]s and ??w![<coord>]inates. It - expands the given \TeX\ <macros> (with |\edef|) before - reinterpretation as a <modifier> of <coord>, respectively. - -\DOCMODE( -\def\expandbeforenext@#1{% - \DN@ e|##1|{\edef\tmp@{##1}\expandafter\xyFN@\expandafter#1\tmp@}% -} - -\xylet@\xy@oldOBJECT@=\OBJECT@ -\xydef@\xy@newOBJECT@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xy@newOBJECT@}%gobble spaces - \else\ifx e\next - \expandbeforenext@\OBJECT@ - \else - \DN@{\xy@oldOBJECT@}\fi\fi - \next@}% -\let\OBJECT@=\xy@newOBJECT@ - -\xylet@\xy@oldCOORD@=\COORD@ -\xydef@\xy@newCOORD@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xy@newCOORD@}%gobble spaces - \else\ifx e\next - \expandbeforenext@\COORD@ - \else - \DN@{\xy@oldCOORD@}\fi\fi - \next@}% -\let\COORD@=\xy@newCOORD@ -\DOCMODE) - - This code may become part of the \Xy-pic kernel at a certain point. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Polygon shapes} - - A polygon <shape> is specified as -% -\begin{defs1} -% - ??c![[P:]<pos>|,|\dots|,|<pos>|]| -% -\end{defs1} -\noindent\unskip -% - where |[P:|$p_1$|,|\dots|,|$p_n$|]| denotes the shape obtained by - tracking the edge with each $p_i$ a position relative to the object - reference point. <vector>s and <corner>s can be used - directly; otherwise use |-p| to get the relative position. - - \NOTE: Do not use |{}| or |[]| in the <pos>itions. - - \BUG: The algorithm assumes that the reference point is always inside - the polygon. - - It is possible to frame polygons is also possible. - -\DOCMODE( -% Define the polygon as a stylechar so that it is deferred -\xydefcsname@{*stylechar@P@}#1{\Pshape@#1@} -\xynew@{count}\c@poly@count \c@poly@count=\z@ % Polygon identifiers - -\xydef@\Pshape@:#1@{% Strip the mandatory : - \addtotoks@{% -% \xy@showthe c{Before parse}\xy@showthe p{Before parse}% -% \xy@showdim{Before parse}% - \def\poly@list{@}% - \poly@parse #1,\relax,%Sets the poly@list - \def\poly@cache{}% - \edef\poly@id{\the\c@poly@count}% - \global\advance\c@poly@count\@ne - \poly@setEdge - % Save the old values of Lc for shifting - \edef\poly@saveLcshape{\the\L@c}% - \polygonEdge@Outer% Set U,R,D,L - \poly@setEdge - % Now shift the object to keep it centered - \dimen@=\poly@saveLcshape\advance\dimen@-\L@c - \advance\R@p -\dimen@ -% \xy@showthe c{After parse}% -}} - -% Set the edge -% A polygonal edge is represented as \polygonEdge x1,y1;x2,y2;...;xn,yn@id@ -% where xi,yi define the vertices of the polygonal edge as displacement from -% the object reference point (xn=x1,yn=y1), and id is a numerical id used for -% caching the result of the last intersection operation. The cached values for -% polygon id are stored in the global macro poly@cache<id>. -\xydef@\poly@setEdge{\expandafter\poly@setEdge@\poly@list\poly@id} -\xydef@\poly@setEdge@#1@#2{\Edge@c={\polygonEdge#1@#2@}% - \expandafter\xdef\csname poly@cache#2% - \endcsname{\poly@cache}} - -% Define the polygon framing operations -\xydefcsname@{frm[P]{-}}{\expandafter\draw@polyframe\the\Edge@c{-}} -\xydefcsname@{frm[P]{.}}{\expandafter\draw@polyframe\the\Edge@c{.}} -\xydefcsname@{frm[P]{=}}{\expandafter\draw@polyframe\the\Edge@c{=}} - - -\xydef@\draw@polyframe\polygonEdge#1@#2@#3{% - \def\poly@dir{#3}% - \def\poly@list{#1@}% - \def\poly@id{#2}% - \edef\poly@cache{\csname poly@cache\poly@id\endcsname}% - \draw@polygon} - -% A polygon is maintained as a list of relative positions, as follows: -% poly@list = Xdimen_0,Ydimen_0;...;Xdimen_n,Ydimen_n @ -% The list is closed, i.e., the first and last element coincide -% Each polygon has an id storred in \poly@id -% Each polygon caches the result of the last intersection operation -% as d@x,d@y,x1,y1,x2,y2 where the first two values define the slope -% and the two sets of points are the two intersection points -% These values are storred in \poly@cache<id>. -% -% -% Helper function for dealing with polygon lists - -% Map over a polygon list. Make sure you define -% \let\poly@map@next=\poly@map before. Then, you can define -% \let\poly@map@next=\poly@map@stop if you want to stop the traversal - -\xydef@\poly@empty{} -\xydef@\poly@map#1#2,#3;#4@{% - #1{#2}{#3}% - \def\tmp@{#4}% - \ifx \poly@empty\tmp@ \else - \poly@map@next#1#4@% - \fi -} - -\xydef@\poly@map@stop#1@{} - -\xydef@\poly@mapExpand#1#2{% - \edef\tmp@{\noexpand\poly@map\noexpand #1#2}% - \tmp@} - -% Parse a polygon definition - -\xydef@\poly@parse #1,{% - \ifx #1\relax %Done. Copy the head of the list at its end - \poly@close - \let\next@=\relax - \else - % Save everything - \save@ - % Process the position using POS - \POS #1% - % Now add the new c to the list - \edef\tmp@{{\the\X@c}{\the\Y@c}}% - \expandafter\poly@append\tmp@ - \restore - \let\next@=\poly@parse % continue parsing - \fi - \next@ -} - % Append to the list of polygon points -\xydef@\poly@append#1#2{\expandafter\poly@append@\poly@list{#1,#2;}} -\xydef@\poly@append@#1@#2{\global\def\poly@list{#1#2@}} - - % Close the polygon -\xydef@\poly@close{\expandafter\poly@close@\poly@list} -\xydef@\poly@close@#1,#2;#3@{\poly@append{#1}{#2}} - -% Draw a polygon at the current location - -\xydef@\draw@polygon{% First separate the head -% \W@{Drawing polygon \poly@list}\xy@showthe c{ Centered at}% - \save@ - % Set the origin to point at the reference point - \X@origin=\X@c \Y@origin=\Y@c - \poly@setp % Set p at the beginning of the polygon and set poly@rest - % Zero the edges - \U@c=\z@\R@c=\z@\D@c=\z@\L@c=\z@\U@p=\z@\R@p=\z@\D@p=\z@\L@p=\z@ - \Edge@c={\zeroEdge}\Edge@p={\zeroEdge}% - \let\poly@map@next=\poly@map - \poly@mapExpand\poly@drawseg\poly@rest - \restore -} - - % Set p to the first element. Requires the origin to be - % at the reference point -\xydef@\poly@setp{\expandafter\poly@setp@\poly@list} -\xydef@\poly@setp@#1,#2;#3@{% - \X@p=#1\advance\X@p\X@origin \Y@p=#2\advance\Y@p\Y@origin% - \global\def\poly@rest{#3@}} - -\xydef@\poly@drawseg#1#2{% - \dimen@=#1\X@c=\the\dimen@\advance\X@c \X@origin - \dimen@=#2\Y@c=\the\dimen@\advance\Y@c \Y@origin -% \W@{Next segment is at offset #1,#2 and absolute \the\X@c,\the\Y@c}% - \expandafter\connect@\expandafter\dir\poly@dir% - \X@p=\X@c\Y@p=\Y@c} - -% Polygonal edge -% Requires c to be the reference point -\xydef@\polygonEdge#1@#2@#3{% - \def\poly@list{#1@}% - \def\poly@id{#2}% - \edef\poly@cache{\csname poly@cache\poly@id\endcsname}% - \ifcase#3\relax - \DN@{\polygonEdge@Inters -% \ifpoly@badinters -% \xyerror@{Could not find intersection for polygon}\fi - }%0 - \or \DN@{\polygonEdge@Under}%1 - \or \DN@{\polygonEdge@Dist}%2 - \or \DN@{\rectangleProp@}%3 I do not understand Prop! - \or \DN@{\polygonEdge@Inner}%4 - \or \DN@{\polygonEdge@Outer}%5 - \else \DN@{}\fi - \next@} - - -\newif\ifpoly@badinters - -\xydef@\polygonEdge@Inters{% -% \W@{Edge intersection with (\the\X@c, \the\Y@c) -> (\the\X@p,\the\Y@p)}% -% \W@{ for polygon: \poly@id}% -% \W@{ with list: \poly@list}% -% \W@{ with cache: \poly@cache}% - % Check the cache first - \ifx\poly@cache\poly@empty - \poly@intersdoit - \else - \expandafter\poly@intersprobecache\poly@cache @% - \fi -% \xy@showthe c{Inters res}% -} - -% -% Redefine poly@cachehit to poly@cachehitdisable to diable polygon caching -\xydef@\poly@cachehit#1#2{% -% \W@{ intersection point found in cache}% - \X@c=#1\Y@c=#2} - -\xydef@\poly@cachehitdisable#1#2{\poly@intersdoit} -%\let\poly@cachehit=\poly@cachehitdiasable% Uncomment this line to disable $ - - -% Probes the cache -% -\xydef@\poly@intersprobecache#1,#2,#3,#4,#5@{% - \dimen@=#1\advance\dimen@-\d@X - \ifdim\zz@\dimen@ - \dimen@=#2\advance\dimen@-\d@Y - \ifdim\zz@\dimen@ - \poly@cachehit{#3}{#4} - \else - \poly@intersdoit - \fi - \else - \poly@intersdoit - \fi -} - - -% Computes the intersection between the line cp and the edge. -% Both intersection points are stored in the cache, the one in the -% direction towards p first. -\xydef@\poly@intersdoit{% -% \W@{ intersection not in cache. Computing it}% - % Save A@ and B@ because we cannot change them - \edef\polyoldA@{\the\A@}\edef\polyoldB@{\the\B@}% - % Initialize the intersection points - \def\poly@intersneg{}\def\poly@interspos{}% - \save@ - \poly@setorigin % Set origin at the beginning of the polygon and - % set poly@rest - \def\zeroDivide@{\poly@badinterstrue}% Handle the division by zero except. - \let\poly@map@next=\poly@map - \poly@mapExpand\poly@interseg\poly@rest - \ifx\poly@intersneg\poly@empty - \poly@badinterstrue - \else - \ifx\poly@interspos\poly@empty - \poly@badinterstrue - \else - \poly@badintersfalse - \fi - \fi - \restore - \A@=\polyoldA@\B@=\polyoldB@ % Restore A@ and B@ - \ifpoly@badinters \else - \edef\tmp@{\poly@interspos,\poly@intersneg @}% - \expandafter\poly@intersfinish\tmp@ - \fi -} - -\xydef@\poly@intersfinish#1,#2,#3@{% - \X@c=#1\Y@c=#2\relax - \xdef\poly@cache{\the\d@X,\the\d@Y,#1,#2,#3}% - \poly@setEdge -} - - - % Set origin to the first point. Define poly@rest - % Requires c to be set to the reference point -\xydef@\poly@setorigin{\expandafter\poly@setorigin@\poly@list} -\xydef@\poly@setorigin@#1,#2;#3@{% - \X@origin=#1\advance\X@origin\X@c \Y@origin=#2\advance\Y@origin\Y@c% - \global\def\poly@rest{#3@}} - - - - -% -% Compute one intersection with a given edge -% c is set to the reference point, p is set to the end of the ray -% origin is set to the start of the segment -\xydef@\poly@interseg#1#2{% - % Default is no intersection -% \W@{ Intersection with edge (\the\X@origin,\the\Y@origin) -> (#1,#2)}% - % Compute the absolute values - \dimen@=#1\advance\dimen@\X@c \edef\poly@saveXcinters{\the\dimen@}% - \dimen@=#2\advance\dimen@\Y@c \edef\poly@saveYcinters{\the\dimen@}% - \save@ - \poly@badintersfalse - % Set R@c and U@c to the distance to end of segment - \R@c=\poly@saveXcinters \advance\R@c -\X@origin - \U@c=\poly@saveYcinters \advance\U@c -\Y@origin - % Now call intersect to set X@c and Y@c to the intersection point - \intersect@ - \A@=\X@c \B@=\Y@c % Save result - \restore - \ifpoly@badinters -% \W@{ \space failed after intersect}% - \else -% \W@{ \space after intersect@ (\the\A@,\the\B@)}% - % Verify that it is on the segment from origin to (#1, #2) - -\poly@isonseg\X@origin\Y@origin\A@\B@\poly@saveXcinters\poly@saveYcinters - \ifpoly@badinters -% \W@{ \space failed after seg check}% - \else - % Verify that (A,B) is on the ray from c to p - \poly@isonray\X@c\Y@c\A@\B@\X@p\Y@p - \ifpoly@badinters - % It is on the negative ray -% \W@{ \space a negative intersection}% - \edef\poly@intersneg{\the\A@,\the\B@}% - \else -% \W@{ \space a positive intersection}% - \edef\poly@interspos{\the\A@,\the\B@}% - \fi - \fi - \fi - % Set the origin to the start of the next segment - \X@origin=\poly@saveXcinters\Y@origin=\poly@saveYcinters -} - - -% -% Computes the distance from reference point to the intersection -% -\xydef@\polygonEdge@Dist{\xyerror@{Dist is not yet implemented for polygons}} - -% -% Checks that #1 <= #2 <= #3 or that #3 <= #2 <= #1 -% Sets ifpoly@badinters otherwise -% ifpoly@closedrange decides whether the second inequality is also checked -% All checks are done with a precision of 100*almostz@ =~ 5000sp = 0.08pt -\newif\ifpoly@closedrange -\xydef@\poly@isinrange#1#2#3{% - \ifpoly@badinters \else - \dimen@=#1\dimen@i=#2\dimen@ii=#3\relax -% \W@{check if in \ifpoly@closedrange closed\else open\fi\space -% range 1=\the\dimen@,2=\the\dimen@i,3=\the\dimen@ii}% - \advance\dimen@ii -\dimen@ \advance\dimen@i -\dimen@ - \ifdim\dimen@ii<0pt\relax - \ifdim\dimen@i>100\almostz@ - \poly@badinterstrue - \fi - \dimen@i=-\dimen@i \dimen@ii=-\dimen@ii - \else - \ifdim\dimen@i<-100\almostz@\relax - \poly@badinterstrue - \fi - \fi - \ifpoly@closedrange - \advance\dimen@ii 100\almostz@ - \ifdim\dimen@i>\dimen@ii - \poly@badinterstrue - \fi - \fi -% \ifpoly@badinters \W@{ failed}\else\W@{ succeeded}\fi - \fi} - -% -% Checks that (#3,#4) is on a segment defined by (#1,#2)->(#5,#6) -\xydef@\poly@isonseg#1#2#3#4#5#6{% - % Check X first - \poly@closedrangetrue - \poly@isinrange{#1}{#3}{#5}% - \poly@isinrange{#2}{#4}{#6}% - -} - -% -% Checks that (#3,#4) is on a ray defined by (#1,#2)->(#5,#6) -\xydef@\poly@isonray#1#2#3#4#5#6{% - % Check X first - \poly@closedrangefalse - \poly@isinrange{#1}{#3}{#5}% - \poly@isinrange{#2}{#4}{#6}% - -} -% -% Test whether (Xp,Yp) is inside the polygon (or on the edge) -% Sets \ifInside@ accordingly -\xydef@\polygonEdge@Under{% -% \W@{}\W@{Edge Under with c=(\the\X@c,\the\Y@c) and p=(\the\X@p,\the\Y@p)}% -% \W@{ for polygon: \poly@list}% - % Save A@ and B@ - \edef\polysaveA@under{\the\A@}\edef\polysaveB@under{\the\B@}% - % Save X@c and Y@c - \edef\poly@saveXcUnder{\the\X@c}\edef\poly@saveYcUnder{\the\Y@c}% - % Compute the intersection - \polygonEdge@Inters - \ifpoly@badinters% p is very close to c - \Inside@true - \else - \A@=\X@c\B@=\Y@c - % Restore c - \X@c=\poly@saveXcUnder\Y@c=\poly@saveYcUnder - % Now verify that the intersection point is on the ray c->p - \poly@isonseg\X@c\Y@c\X@p\Y@p\A@\B@ - \ifpoly@badinters \Inside@false \else \Inside@true\fi - \A@=\polysaveA@under\B@=\poly@saveB@under - \fi -% \ifInside@\W@{->inside}\else\W@{->outside}\fi -} - -% -% Compute the inner rectangle -% -\xydef@\polygonEdge@Inner{% -% \W@{}\W@{Edge Inner with (\the\X@c, \the\Y@c) -> (\the\X@p,\the\Y@p)}% -% \W@{ for polygon: \poly@list}% -% \W@{ with cache: \poly@cache}% - % Save everything except c - \enter@{\basefromthebase@ \pfromthep@ \DirectionfromtheDirection@}% - % Save c in Lc,Dc - \L@c=\X@c \D@c=\Y@c - % Compute the two intersection points - \polygonEdge@Inters - \ifpoly@badinters - \czeroEdge@ - \else - % Save the result in Rc,Uc and in X@c,Y@c - \expandafter\poly@getinterspoints\poly@cache @% - % Now compute the inner rectangle centered - \ifdim\X@c>\R@c - \L@c=\R@c \R@c=\X@c - \else - \L@c=\X@c - \fi - \X@c=0.5\L@c \advance\X@c 0.5\R@c \advance\R@c -\X@c \L@c=\R@c - \ifdim\Y@c>\U@c - \D@c=\U@c \U@c=\Y@c - \else - \D@c=\Y@c - \fi - \Y@c=0.5\D@c \advance\Y@c 0.5\U@c \advance\U@c -\Y@c \D@c=\U@c - \Edge@c={\rectangleEdge}% - \fi - \leave@ -% \xy@showthe c{After inner}% -} - -\xydef@\poly@getinterspoints#1,#2,#3,#4,#5,#6@{% - \R@c=#3\U@c=#4\X@c=#5\Y@c=#6} - -% -% Compute the outer rectangle (set Uc,Dc,Lc,Rc and Edgec). -% Does not change Xc,YC -% -\xydef@\polygonEdge@Outer{% -% \W@{Computing outer for \poly@list}\xy@showthe c{Before outer}% - % Save everything except c - \enter@{\basefromthebase@ \pfromthep@ \DirectionfromtheDirection@}% - \czeroEdge@ % Zero out c - \let\poly@map@next=\poly@map - \poly@mapExpand\poly@findextent\poly@list - \Edge@c={\rectangleEdge}% - \leave@ -% \xy@showthe c{After outer} -} - -\xydef@\poly@findextent#1#2{% -% \xy@showthe c{Before find extent}% -% \W@{ extx=#1, exty=#2}% - \dimen@=#1\dimen@=\the\dimen@% it fails if I remove the second assign - \ifdim\dimen@>\R@c \R@c=\dimen@ \fi - \ifdim -\dimen@>\L@c \L@c=-\dimen@ \fi - \dimen@=#2\dimen@=\the\dimen@% it fails if I remove the second assign - \ifdim\dimen@>\U@c \U@c=\dimen@ \fi - \ifdim -\dimen@>\D@c \D@c=-\dimen@ \fi -% \xy@showthe c{ After extent}% -} - -% Change to account for polynomial shapes, in addition to circular ones -% -\xydef@\Fshape@#1:{\def\whichframe@@{{#1}}\let\whichoptions@@=\empty - \DN@{{}}\ifx\whichframe@@\next@ \def\whichframe@@{{-}}\fi - \expandafter\xyFN@\expandafter\Fshape@whichframe\the\Edge@c} - -\xydef@\Fshape@whichframe{% - \ifx\next\circleEdge - \edef\whichframe@@{[o]\whichframe@@}% - \DN@##1{\xyFN@\Fshape@i}% - \else - \ifx\next\polygonEdge - \edef\whichframe@@{[P]\whichframe@@}% - \DN@\polygonEdge##1@##2@{\xyFN@\Fshape@i}% - \else - \DN@##1{\xyFN@\Fshape@i}% - \fi\fi - \next@ -} - -\xyendinput -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - \BUG: This code should be merged with the `frame' and `poly' - options. - - The example at the end of \S??g[:smart] illustrates the extensions. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -% $Log$ -% Received from George. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyoztex.doc b/Master/texmf-dist/source/generic/xypic/xyoztex.doc deleted file mode 100644 index 4a5e34df9be..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyoztex.doc +++ /dev/null @@ -1,316 +0,0 @@ -%% $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: diff --git a/Master/texmf-dist/source/generic/xypic/xypic.doc b/Master/texmf-dist/source/generic/xypic/xypic.doc deleted file mode 100644 index 631e0e10b1a..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xypic.doc +++ /dev/null @@ -1,75 +0,0 @@ -%% $Id: xypic.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -%% -%% Xy-pic v2 compatibility loading. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. -%% - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This file (version \stripRCS$Revision: 3.3 $) just loads the |v2| - feature. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\DOCHEADER - - Here it is\dots - -\DOCMODE( -\input xyv2 -\endinput -\DOCMODE) - - The log reveals that this was originally the main file. - -\DOCMODE( -% $Log: xypic.doc,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% This file NEW for version 2.7 for backwards compatibility. -% Original xypic.doc renamed to xy.doc. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xypic.map b/Master/texmf-dist/source/generic/xypic/xypic.map deleted file mode 100644 index 9fd5279567e..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xypic.map +++ /dev/null @@ -1,66 +0,0 @@ -%% $Id: xypic.map,v 3.7 1999/02/16 15:12:50 krisrose Exp krisrose $ -%% -%% Xy-pic PostScript type 1 font map for DVIPS. -%% Copyright (c) 1995-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@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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. - -% USAGE: -% Put this line in your DVIPS (and/or other PS driver) header -% file directory (uncommented, starting in column 1): -% -% p+ xypic.map -% -% THANKS to Y&Y Inc. for making the much improved PFB fonts available to -% TeX community. - - -xydash10 XYDASH10 <xydash10.pfb -xyatip10 XYATIP10 <xyatip10.pfb -xyatip11 XYATIP10 "1.1 ExtendFont" <xyatip10.pfb -xyatip12 XYATIP10 "1.2 ExtendFont" <xyatip10.pfb -xybtip10 XYBTIP10 <xybtip10.pfb -xybtip11 XYBTIP10 "1.1 ExtendFont" <xybtip10.pfb -xybtip12 XYBTIP10 "1.2 ExtendFont" <xybtip10.pfb - -xybsql10 XYBSQL10 <xybsql10.pfb -xycirc10 XYCIRC10 <xycirc10.pfb - -xycmat10 XYCMAT10 <xycmat10.pfb -xycmat11 XYCMAT10 "1.1 ExtendFont" <xycmat10.pfb -xycmat12 XYCMAT10 "1.2 ExtendFont" <xycmat10.pfb -xycmbt10 XYCMBT10 <xycmbt10.pfb -xycmbt11 XYCMBT10 "1.1 ExtendFont" <xycmbt10.pfb -xycmbt12 XYCMBT10 "1.2 ExtendFont" <xycmbt10.pfb - -xyeuat10 XYEUAT10 <xyeuat10.pfb -xyeuat11 XYEUAT10 "1.1 ExtendFont" <xyeuat10.pfb -xyeuat12 XYEUAT10 "1.2 ExtendFont" <xyeuat10.pfb -xyeubt10 XYEUBT10 <xyeubt10.pfb -xyeubt11 XYEUBT10 "1.1 ExtendFont" <xyeubt10.pfb -xyeubt12 XYEUBT10 "1.2 ExtendFont" <xyeubt10.pfb - -% Obsolete fonts not included by default (and not available for PDF). -%xyline10 XYLINE10 <xyline10.pfa -%xyqc10 XYQC10 <xyqc10.pfa -%xymisc10 XYMISC10 <xymisc10.pfa diff --git a/Master/texmf-dist/source/generic/xypic/xypic.sty b/Master/texmf-dist/source/generic/xypic/xypic.sty deleted file mode 100644 index 1a493530c68..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xypic.sty +++ /dev/null @@ -1,29 +0,0 @@ -%% $Id: xypic.sty,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-tex-*- -%% -%% LaTeX style option to load Xy-pic in version 2 compatibility mode. -%% by Kristoffer H. Rose <krisrose@brics.dk> -%% -%% This file is in the public domain. It 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. -%% -\input{xy.sty} -\xyoption{v2} -\catcode`\@=\xystycatcode -\endinput - -% $Log: xypic.sty,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. diff --git a/Master/texmf-dist/source/generic/xypic/xypoly.doc b/Master/texmf-dist/source/generic/xypic/xypoly.doc deleted file mode 100644 index 5c4dac00198..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xypoly.doc +++ /dev/null @@ -1,1262 +0,0 @@ -%% $Id: xypoly.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Polygon'' feature. -%% Copyright (c) 1994-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@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 macro package; if not, write to the Free Software Foundation, -%% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -%% -\ifx\xyloaded\undefined \input xy \fi - -\xyprovide{poly}{Polygon feature}{\stripRCS$Revision: 3.7 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent - This feature provides a means for specifying the locations of - vertices for regular polygons, with any number ($\ge 3$) of sides. - Polygons can be easily drawn and/or the vertex positions used to constuct - complex graphics within an \Xy-picture. Many non-regular polygons can - be specified by setting a non-square basis. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -Some of the effects use |\ar| so make sure the `arrow' feature is loaded. -\DOCMODE( -\xyrequire{arrow}\xycatcodes -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\message{polygons,} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\medskip - -A polygon is most easily specified using \dots -\begin{defs} - |\xypolygon|<number>|{}| & \quad with <number> sides;\cr - |\xypolygon|<number>|{|<tok>|}|\kern-30pt &\quad\quad <tok> at vertices;\cr - |\xypolygon|<number>|{|<object>|}|\kern-60pt &\cr - \multispan2 \quad\quad with a general <object> at each vertex;\hfill\cr -%% \multispan2 |!P| \quad alias for |\xypolygon| within |\xygraph| \cr -\end{defs} -\unskip\noindent -% -Here <number> is a sequence of digits, giving the number of sides. -If used within an |\xy|\dots|\endxy| environment then the polygon -will be centred on $c$, the current <pos>. However an |\xypolygon| -can be used outside such an environment, as ``stand-alone'' polygon; -the whole picture must be specified within the |\xypolygon| command. - -In either case the shape is obtained by spacing vertices equally -around the ``unit circle'' with respect to the current basis. -If this basis is non-square then the vertices will lie on an ellipse. -Normally the polygon, with at most 12 vertices, is oriented so as to -have a flat base when specified using a standard square basis. -With more than 12~vertices the orientation is such that the line -from the centre to the first vertex is horizontal, pointing to the right. -Any other desired orientation can be obtained, with any number of vertices, -by using the |~={|\dots|}| as described below. - -\medskip -The general form for |\xypolygon| is \dots -\begin{defs1} - |\xypolygon|<number>|"|<prefix>|"{|<switches>\dots|}| -\end{defs1}\unskip\noindent -% -where the |"|<prefix>|"| and <switches> are optional. -Their uses will be described shortly. - -\medskip - -A |\xypolygon| establishes positions for the vertices of a polygon. -At the same time various things may be typeset, -according to the specified <switches>. -An <object> may be dropped at each vertex, ``spokes'' drawn to the -centre and successive vertices may be connected as the polygon's ``sides''. -Labels and breaks can be specified along the spokes and sides. - -Each vertex is automatically named: -|"1"|, |"2"|, \ldots, |"|<number>|"| with |"0"| as centre. -When a <prefix> has been given, -names |"|<prefix>|0"|, \dots, |"|<prefix><number>|"| are used instead. -While the polygon is being constructed the macro |\xypolynum| expands to -the number of sides, while |\xypolynode| expands to the number -of each vertex, spoke and side at the time it is processed. -This occurs in the following order: -{\it vertex}$\,1$, {\it spoke}$\,1$, {\it vertex}$\,2$, -{\it spoke}$\,2$, {\it side}$\,1$, {\it vertex}$\,3$, -{\it spoke}$\,3$, {\it side}$\,2$, \dots , {\it vertex}$\;n$, -{\it spoke}$\;n$, {\it side}$\;n-1$, {\it side}$\;n$ -where the final side joins the last vertex to the first. - -The macro |\xypolyname| holds the name of the polygon, -which is <prefix> if supplied. In this case the value of -|\xypolynum| is also stored as |\|<prefix>|NUMSIDES|, -accessible outside the polygon. - -As stated above, a polygon with up to 12 vertices is oriented -so as to have a flat base, when drawn using a standard square basis. -Its vertices are numbered in anti-clockwise order, commencing with the one -at horizontal-right of centre, or the smallest angle above this -(see example below). -With more than 12 vertices then vertex |"1"| is located on the horizontal, -extending to the right from centre (assuming a standard square basis). -By providing a switch of the form |~={|<angle>|}| then the vertex |"1"| -will be located on the unit circle at <angle>$^\circ$ anti-clockwise -from ``horizontal'' --- more correctly, from the $X$-direction in the -basis to be used when setting the polygon, which may be established -using a |~:{|\dots|}| switch. - -\begin{code} -\def\objectstyle{\scriptscriptstyle} -\xy \xygraph{!{/r2pc/:} -[] !P3"A"{\bullet} -"A1"!{+U*++!D{1}} "A2"!{+LD*+!RU{2}} -"A3"!{+RD*+!LU{3}} "A0" -[rrr]*{0}*\cir<5pt>{} -!P6"B"{~<-\cir<5pt>{}} -"B1"1 "B2"2 "B3"3 "B4"4 "B5"5 "B6"6 "B0" -[rrr]0 !P9"C"{~*{\xypolynode}}}\endxy -\end{code} -$$\docode$$\nobreak -\begin{exercise} -Give code to typeset these. -\answertext{Here is the code actually used to typeset the |\xypolygon|s, -within an |\xygraph|. It illustrates three different ways to place -the numbers. Other ways are also possible.} -\answercode -\answertext\displaycode -\end{exercise} -\goodbreak\goodbreak - -One important use of <prefix> is to allow the vertices of more than one -polygon to be accessed subsequently within the same picture. -Here are some examples of this, -incorporating the |~:{|\dots|}| switch to perform simple rescalings. -Firstly the edges of a dodecahedron as a planar graph: - -\begin{code} -\xy /l1.5pc/:,{\xypolygon5"A"{}}, -{\xypolygon5"B"{~:{(1.875,0):}~>{}}}, -{\xypolygon5"C"{~:{(-2.95,0):}~>{}}}, -{\xypolygon5"D"{~:{(-3.75,0):}}}, -{"A1"\PATH~={**@{-}}'"B1"'"C4"'"B2"}, -{"A2"\PATH~={**@{-}}'"B2"'"C5"'"B3"}, -{"A3"\PATH~={**@{-}}'"B3"'"C1"'"B4"}, -{"A4"\PATH~={**@{-}}'"B4"'"C2"'"B5"}, -{"A5"\PATH~={**@{-}}'"B5"'"C3"'"B1"}, -"C1";"D1"**@{-},"C2";"D2"**@{-}, -"C3";"D3"**@{-},"C4";"D4"**@{-}, -"C5";"D5"**@{-} \endxy -\end{code} -$$\docode$$ -\displaycode - -\noindent -Next a hexagonal pyramid, a rectangular box -and an octahedral crystal specified as a triangular anti-prism. -Notice how the |~:{|\dots|}| switch is used to create non-square bases, -allowing the illusion of 3D-perspective in the resulting diagrams: - -\begin{code} -\xy/r2pc/: ="A", +(.2,1.5)="B","A", -{\xypolygon6{~:{(1,-.1):(0,.33)::} - ~<>{;"B"**@{-}}}}\endxy -\quad \xy /r2pc/: -{\xypolygon4"A"{~:{(0,.7)::}}},+(.7,1.1), -{\xypolygon4"B"{~:{(.8,0):(0,.75)::}}}, -"A1";"B1"**@{.},"A2";"B2"**@{.}, -"A3";"B3"**@{.},"A4";"B4"**@{.} -\endxy\quad \xy /r2pc/: -{\xypolygon3"A"{~:{(0,.7)::}}},+(.7,1.1), -{\xypolygon3"B"{~:{(-.85,0):(-.15,.8)::}}} -,"A1"\PATH~={**@{.}}'"B2"'"A3"'"B1" -'"A2"'"B3"'"A1" \endxy -\end{code} -$$\docode$$ -\displaycode - - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -|\xypolynode| simply reads the value of a counter called |\xypolynode@|. -It is set initially at -1, to indicate no polygon yet. This is used to -establish the default naming in case polygons are nested. - -\DOCMODE( -\xynew@{count}\xypolynode@\xypolynode@=\m@ne -\xydef@\xypolynode{\the\xypolynode@} - -\xydef@\xypolyNUMSIDES@{} -\xydef@\xypolynum{\xypolyNUMSIDES@} -\DOCMODE) - -To allow recursion the values of |\xypolyNUMSIDES@| and |\xypolynode@| are saved -upon entering an |\xypolygon|, to be restored at the end. - -\DOCMODE( -\xydef@\xypolygon{\xypoly@}% - -\xydef@\xypoly@{% - \if\inxy@ - \if\inxypoly@ - \edef\next@{\noexpand\xy@@{\noexpand\nter@{\xypolynode@=\the\xypolynode@ - \noexpand\def\noexpand\xypolyNUMSIDES@{\xypolyNUMSIDES@}}}}% - \else - \DN@{\xy@@{\def\inxypoly@{TT}% - \nter@{\def\inxypoly@{TF}\xypolynode@=\m@ne}}}% - \fi - \else - \if\inxypoly@ - \edef\next@{\noexpand\xy - \noexpand\xy@@{\noexpand\nter@{\xypolyside=\the\xypolyside - \noexpand\def\noexpand\xypolyNUMSIDES@{\xypolyNUMSIDES@}\endxy}}}% - \else - \DN@{\xy \xy@@{\def\inxypoly@{TT}% - \nter@{\def\inxypoly@{TF}\xypolynode@=\m@ne \endxy}}}% - \fi - \fi - \next@ \count@=\z@ \xyFN@\xypoly@n} - -\xydef@\inxypoly@{TF}% -\xydef@\xypoly@x{\xy@@{\leave@\leave@}} -\DOCMODE) - -Read the number of vertices by parsing digits. - -\DOCMODE( -\xydef@\xypoly@n{% - \DN@##1{\multiply\count@10\relax \advance\count@##1\relax \xyFN@\xypoly@n}% - \ifx \space@\next - \ifnum\count@>\z@ \expandafter\DN@\space@{\xyFN@\xypoly@i}% - \else \expandafter\DN@\space@{\xyFN@\xypoly@n}\fi - \else\ifx 0\next \else\ifx 1\next \else\ifx 2\next \else\ifx 3\next - \else\ifx 4\next \else\ifx 5\next \else\ifx 6\next \else\ifx 7\next - \else\ifx 8\next \else\ifx 9\next - \else \let\next@=\xypoly@i \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} - -\xydef@\xypoly@i{\edef\xypolyNUMSIDES@{\the\count@}\xyFN@\xygetpolyprefix@} -\DOCMODE) - -Next we check whether a prefix has been supplied for creating the vertex -names. If so it is stored as |\xypolyPREFIX@|, which otherwise expands to -empty. The number of sides is also stored using the prefix. - -\DOCMODE( -\xydef@\xypolyPREFIX@{}% -\xydef@\xypolyPREFIX@@{}% -\xydef@\xypolyname{\xypolyPREFIX@}% - -\xydef@\xygetpolyprefix@{% - \ifx\next"\DN@"##1"{\def\xypolyPREFIX@@{##1}\expandafter - \edef\csname\xypolyPREFIX@@ NUMSIDES\endcsname{\xypolyNUMSIDES@}% - \xypolyprefix@@ }% - \else - \ifnum\xypolynode@<\z@\def\xypolyPREFIX@@{}% - \else - \edef\xypolyPREFIX@@{\xypolyPREFIX@\the\xypolynode@,}% - \fi \DN@{\xypolyprefix@@}% - \fi \next@ } - -\xydef@\xypolyprefix@@{% - \expandafter\toks@\expandafter{\addEQ@\POS"}% - \expandafter\addtotoks@\expandafter{\xypolyPREFIX@@0"\relax}% - \the\toks@ - \ifnum\xypolynode@<\z@ - \expandafter\def\expandafter\xypolyPREFIX@\expandafter{\xypolyPREFIX@@}% - \xy@@{\enter@{\xypolynode@=\the\xypolynode@ - \noexpand\def\noexpand\xypolyPREFIX@{\xypolyPREFIX@}}\xypolynode@=\z@ }% - \else - \xy@@{\enter@{\xypolynode@=\the\xypolynode@ - \noexpand\def\noexpand\xypolyPREFIX@{\xypolyPREFIX@}}\xypolynode@=\z@ }% - \expandafter\def\expandafter\xypolyPREFIX@\expandafter{\xypolyPREFIX@@}% - \fi - \xypoly@@i } -\DOCMODE) - -Currently any tokens remaining before the opening brace are -discarded, with an accompanying message. - -\DOCMODE( -\xydef@\xypoly@@i#1#{\begingroup - \DN@{#1}\ifx\next@\empty\else - \xywarning@{discarding unused tokens: #1}\fi \xypoly@@ } -\DOCMODE) - -Next it is time to analyse the braced information, -e.g. to set switches and/or adjust the scale. -If this information is empty |{}| then the default -values are used. - -\DOCMODE( -\xydef@\xypoly@@#1{\xypolydefaults@ - \DN@{#1}\ifx\next@\empty\DN@{\xypoly@@@}% - \else \DN@{\xyFN@\xypolyparams@#1~!}\fi \next@} - -\xydef@\xypolydefaults@{\def\xypolySCALE@{}% - \def\xypolySPOKES@{{}}\def\xypostSPOKES@{}\let\xypreSPOKES@\relax - \def\xypolySIDES@{{-}}\def\xypostSIDES@{}\let\xypreSIDES@\relax - \def\xypolyVERTEX@{}\def\xypolyALIGN@{}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Vertex object:} - -Unless the first character is |~|, signifying a ``switch'', then the whole -of the braced material is taken as specifying the <object> for each vertex. -It will be typeset with a circular edge using |\drop[o]...|, -except when there is just a single token <tok>. -In this case it is dropped as |\drop=0{|<tok>|}|, having zero size. -An object can also be dropped at each vertex using the switch |~*{|\dots|}|, -in which case it will be circular, with the current {\it objectmargin\/} -applied. - -The next example illustrates three different ways of specifying a |\circ| -at the vertices. - -\begin{code} -\xy/r2pc/: {\xypolygon12{\circ}}, -+/r5pc/,{\xypolygon10{~<{-}~>{}{\circ}}}, -+/r5pc/,{\xypolygon8{~*{\circ}~<=}}\endxy -\end{code} -$$\docode$$ - -\displaycode - -\DOCMODE( -{\xyuncatcodes \gdef\next{*=0}} -\xylet@\xypolynullvertex@=\next - -{\xyuncatcodes \gdef\next{*[o]}} -\xylet@\xypolyvertex@=\next - -{\xyuncatcodes \gdef\next{*+[o]}} -\xylet@\xypolywidevertex@=\next - -\xydef@\xypolyparams@{% - \ifx\space@\next \expandafter\DN@\space{\xyFN@\xypolyparams@}% - \else\ifx\next~\DN@~{\xyFN@\xypolywhich@}% - \else\ifx\next\bgroup\DN@##1~!{% -% \ifx\empty\xypolyVERTEX@\def\xypolyVERTEX@{*[o]{##1}}% - \ifx\empty\xypolyVERTEX@\expandafter - \def\expandafter\xypolyVERTEX@\expandafter{\xypolyvertex@{##1}}% - \else\xypolyVERTEXerror@{##1}\fi \xypoly@@@}% - \else\DN@##1~!{\DN@{##1}\ifx\next@\empty\else - \ifx\empty\xypolyVERTEX@\def\xypolyVERTEX@{*##1}% -% \checkpolytok@\xypolyVERTEX@{*=0}##1@@!\relax - \expandafter\checkpolytok@\expandafter\xypolyVERTEX@ - \expandafter{\xypolynullvertex@}##1@@!\relax - \else\xypolyVERTEXerror@{##1}\fi\fi \xypoly@@@}% - \fi\fi\fi \next@ } - -\xydef@\xypolyVERTEXerror@#1{\xywarning@{% - vertex already specified, discarding unused tokens:#1}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Switches}{}\hfill -\par{} - -\noindent -The allowable switches are given in the following table: -% -\begin{defs} -|~:{|\ldots|}| & useful for rescaling.\cr -|~*{|<object>|}| & <object> at each vertex.\cr -|~={|<angle>|}| & align first vertex.\cr -|~<{|\ldots|}| & directional for ``spokes'';\cr -|~<<{|<arrow>|}| & use <arrow> for spokes;\cr -|~<>{|\ldots|}| & labels \& breaks on spokes.\cr -|~>{|\ldots|}| & directional for ``sides'';\cr -|~><{|<arrow>|}| & use <arrow> for sides;\cr -|~>>{|\ldots|}| & labels \& breaks on sides.\cr -\end{defs} -% -\noindent -Using |~<<{|<arrow>|}| or |~><{|<arrow>|}| is most appropriate -when arrowheads are required on the sides or spokes, or when -labels/breaks are required. Here <arrow> is as in -figure~??g[xyarrow.doc:f.arrow], -so it can be used simply to specify the style of directional to be used. -Thus |~<<{}| sets each spoke as a default arrow, -pointing outwards from the centre; |~<<{@{-}}| suppresses the arrowhead, -while |~><{@{}}| uses an empty arrow along the sides. -Labels and breaks are specified with |~<>{|\ldots|}| and |~>>{|\ldots|}|, -where the |{|\ldots|}| use the notation for a <label>, -as in figure~??g[xyarrow.doc:f.path]. - -When no tips or breaks are required then the switches |~<{|\ldots|}| -and |~>{|\ldots|}| are somewhat faster, since less processing is needed. -Labels can still be specified with |~<>{|\ldots|}| and |~>>{|\ldots|}|, -but now using the kernel's <place> notation of figure~??g[xy.doc:f.pos]. -In fact any kernel code can be included using these switches. -With |~<>| the current $p$ and $c$ are the centre and vertex respectively, -while for |~>>| they are the current vertex and the previous vertex. -(The connection from vertex |"|<number>|"| to vertex |"1"| is done last.) -The pyramid above is an example of how this can be used. -Both |~<{|\ldots|}| and |~<<{|<arrow>|}| can be -specified together, but only the last will actually be used; -similarly for |~>{|\ldots|}| and |~><{|<arrow>|}|. - -\begin{code} -\def\alphanum{\ifcase\xypolynode\or A -\or B\or C\or D\or E\or F\or G\or H\fi} -\xy/r3pc/: {\xypolygon3{~={40}}}, -{\xypolygon4{~={40}~>{{--}}}}, -{\xypolygon5{~={40}}}, -{\xypolygon6{~={40}~>{{--}}}}, -{\xypolygon11{~={40}}}, -{\xypolygon50{~={40}~>.}}, +/r8pc/, -{\xypolygon7{~<<{@{-}}~><{} - ~<>{|*@{x}}~*{\alphanum} - ~>>{_{\alpha_\xypolynode^{}}}}} -\endxy -\end{code} -$$\docode$$ -\displaycode - - -Use of the |~={|\ldots|}| switch was described earlier. -When using the |~:{|\ldots|}| more can be done than just setting the base. -In fact any kernel code can be supplied here. -It is processed prior to any other part of the polygon. -The graphics state has $c$ at the centre of the polygon, -$p$ at the origin of coordinates within the picture and -has basis unchanged from what has previously been established. -The current point $c$ will be reset to the centre following any code -interpreted using this switch. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Note that |~!| was appended by |\xypoly@@|, in order to indicate the end -of the braced tokens. The macro |\xypolywhich@| is the main parser, -with |\xypoly@SPOKES@| and |\xypoly@SIDES@| handling the subcases -for |~<| and |~>|. - -\DOCMODE( -\xydef@\xypolywhich@{% - \ifx\next!\DN@!{\xypoly@@@}% - \else \addLT@\ifx\next \addLT@\DN@{\xyFN@\xypoly@SPOKES@}% - \else \addGT@\ifx\next \addGT@\DN@{\xyFN@\xypoly@SIDES@}% - \else \addEQ@\ifx\next \addEQ@\DN@##1{% - \def\xypolyALIGN@{##1}\xyFN@\xypolyparams@ }% - \else \ifx :\next \DN@:##1{% - \def\xypolySCALE@{##1}\xyFN@\xypolyparams@ }% -% \else\ifx\next*\DN@*##1{\def\xypolyVERTEX@{*+[o]{##1}}\xyFN@\xypolyparams@}% - \else\ifx\next*\DN@*##1{\expandafter - \def\expandafter\xypolyVERTEX@\expandafter{\xypolywidevertex@{##1}}% - \xyFN@\xypolyparams@}% - \fi\fi\fi\fi\fi\fi \next@ } - -\xydef@\xypoly@SPOKES@{% - \addLT@\ifx\next \addLT@\DN@##1{% - \def\xypreSPOKES@{##1}\def\xypolySPOKES@{}\xyFN@\xypolyparams@ }% - \else \addGT@\ifx\next \addGT@\DN@##1{% - \def\xypostSPOKES@{##1}\xyFN@\xypolyparams@ }% - \else \ifx\next\bgroup \DN@##1{% - \def\xypolySPOKES@{##1}\let\xypreSPOKES@\relax - \checkpolytok@\xypolySPOKES@{}##1@@!{\xyFN@\xypolyparams@}}% - \else \DN@##1{% - \let\xypreSPOKES@\relax \def\xypolySPOKES@{{##1}}\xyFN@\xypolyparams@}% - \fi\fi\fi \next@ } - -\xydef@\xypoly@SIDES@{% - \addLT@\ifx\next \addLT@\DN@##1{% - \def\xypreSIDES@{##1}\def\xypolySIDES@{}\xyFN@\xypolyparams@ }% - \else \addGT@\ifx\next \addGT@\DN@ ##1{% - \def\xypostSIDES@{##1}\xyFN@\xypolyparams@ }% - \else \ifx\next\bgroup \DN@##1{% - \def\xypolySIDES@{##1}\let\xypreSIDES@\relax - \checkpolytok@\xypolySIDES@{}##1@@!{\xyFN@\xypolyparams@}}% - \else \DN@##1{% - \let\xypreSIDES@\relax \def\xypolySIDES@{{##1}}\xyFN@\xypolyparams@}% - \fi\fi\fi \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -A further simplification exists for sides and spokes without <arrow>s. -If <tok> is a single character then |~>|<tok>, |~>{|<tok>|}|, |~>{{|<tok>|}}| -all specify the directional |\dir{|<tok>|}|; similarly with the |~<| switch. -On the other hand, compound directionals require all the braces, -e.g. |~>{{--}}| and |~>{2{.}}|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This is achieved with the macro -|\checkpolytok@#1#2#3#4@!#5| which handles the bare <tok> case -by adding braces around <tok> which has been passed as |#3|, preceeding -it with |#2|. This is then |\def|'d to the control-sequence name -passed as |#1|. Finally continue with the command passed as |#5|. - -\DOCMODE( -\xydef@\checkpolytok@#1#2#3#4@!#5{\DNii@{#1}\DN@{#4}% - \ifx\next@\empty\expandafter\def\nextii@{{}}% - \else\ifx#4@\expandafter\def\nextii@{#2{#3}}\fi\fi #5} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\medskip - -After all switches have been processed, remaining tokens -are used to specify the <object> for each vertex. -Such tokens will be used directly after a |\drop|, -so can include object <modifier>s as in figure~??g[xy.doc:f.object]. -If an <object> has already been specified, using the |~*| switch, -then the following message will be written to the \TeX\ log: - -\begin{center} -\noindent{\tt Xy-pic Warning: vertex already specified, -discarding unused tokens:} -\end{center} -% -with tokens at the end indicating what remains unprocessed. -Similarly extra tokens before the |{|\dots|}| generate a message: - -\begin{center} -\noindent|Xy-pic Warning: discarding unused tokens: | -\end{center} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Nested Polygons}{}\hfill -\par{} - -\noindent -When |\xypolygon| is specified within either a |~<>{|\dots|}| -or |~>>{|\dots|}| switch for another polygon, -then the inner polygon inherits a name which incorporates also the number -of the part on which it occurs, as given by |\xypolynode|. -This name is accessed using |\xypolyname|. -In the following example the inner polygon is -placed using |~<>| in order to easily adjust its orientation -to the outward direction of the spokes. - -\begin{code} -\xypolygon4{~:{/r5pc/:} - ~<>{*\frm<8pt>{o}\xypolygon4{~:{/-2pc/:} - ~*{\xypolyname\xypolynode}}} - [o]=<5pc>{\xypolynode}} -\end{code} -$$\docode$$ -\displaycode - -Notice how nested polygons inherit names |"1,1"|, |"1,2"|, \dots, -|"4,1"|, \dots, |"4,4"| for their vertices. If a <prefix> is supplied -at the outermost level then the names become: |"|<prefix>$i,j$|"|. -Specifying a <prefix> for the inner polygon overrides this naming scheme. -The same names may then be repeated for each of the inner polygons, -allowing access afterwards only to the last---possibly useful as a -memory saving feature when the vertices are not required subsequently. - -Four levels of nesting gives a quite acceptable ``Sierpinski gasket''. -The innermost triangle is provided by |\blacktriangle| -from the \AMS\ symbol font |msam5|, at 5-point size. -Further levels can be achieved using the \PS\ backend, -otherwise line segments become too small to be rendered using \Xy-fonts. - -\begin{code} -\font\msamv=msam5 at 5pt -\def\blacktriangle{{\msamv\char'116}} -\def\objectstyle{\scriptscriptstyle} -\xypolygon3{~:{/r5.2pc/:} - ~>{}~<>{?\xypolygon3"a"{~:{(.5,0):} - ~>{}~<>{?\xypolygon3"b"{~:{(.5,0):} - ~>{}~<>{?\xypolygon3"c"{~:{(.5,0):} - ~>{}~<>{?\xypolygon3"d"{~:{(.5,0):} -~<>{?*!/d.5pt/=0\hbox{\blacktriangle}} -}} }} }} }} } -\end{code} -$$\docode$$\goodbreak -\displaycode - -\noindent -Note the use of naming in this example; when processing this manual -it saves 13,000+ words of main memory and 10,000+ string characters -as well as 122 strings and 319 multi-letter control sequences. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\begin{figure*}[ht] -{\footnotesize \def"#1"{\edef\qq{#1}\expandafter\futurelet\expandafter\next\expandafter\q\qq}% -\def\q{\ifx-\next \def\next-{~\llap{$-$}}\else \def\next{~}\fi \next}% -\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}cllllllllll} -$n$ & $\sin{\pi\over n}$ & $\cos{\pi\over n}$ - & $\sin{2\pi\over n}$ & $\cos{2\pi\over n}$ - & $\sin{3\pi\over n}$ & $\cos{3\pi\over n}$ - & $\sin{4\pi\over n}$ & $\cos{4\pi\over n}$ - & $\sin{5\pi\over n}$ & $\cos{5\pi\over n}$\cr - 0 & "\sinPIon0" & "\cosPIon0" & "\sinTwoPIon0" & "\cosTwoPIon0" - & "\sinThreePIon0" & "\cosThreePIon0" & "\sinFourPIon0" & "\cosFourPIon0" - & "\sinFivePIon0" & "\cosFivePIon0"\cr - 1 & "\sinPIon1" & "\cosPIon1" & "\sinTwoPIon1" & "\cosTwoPIon1" - & "\sinThreePIon1" & "\cosThreePIon1" & "\sinFourPIon1" & "\cosFourPIon1" - & "\sinFivePIon1" & "\cosFivePIon1"\cr - 2 & "\sinPIon2" & "\cosPIon2" & "\sinTwoPIon2" & "\cosTwoPIon2" - & "\sinThreePIon2" & "\cosThreePIon2" & "\sinFourPIon2" & "\cosFourPIon2" - & "\sinFivePIon2" & "\cosFivePIon2"\cr - 3 & "\sinPIon3" & "\cosPIon3" & "\sinTwoPIon3" & "\cosTwoPIon3" - & "\sinThreePIon3" & "\cosThreePIon3" & "\sinFourPIon3" & "\cosFourPIon3" - & "\sinFivePIon3" & "\cosFivePIon3"\cr - 4 & "\sinPIon4" & "\cosPIon4" & "\sinTwoPIon4" & "\cosTwoPIon4" - & "\sinThreePIon4" & "\cosThreePIon4" & "\sinFourPIon4" & "\cosFourPIon4" - & "\sinFivePIon4" & "\cosFivePIon4"\cr - 5 & "\sinPIon5" & "\cosPIon5" & "\sinTwoPIon5" & "\cosTwoPIon5" - & "\sinThreePIon5" & "\cosThreePIon5" & "\sinFourPIon5" & "\cosFourPIon5" - & "\sinFivePIon5" & "\cosFivePIon5"\cr - 6 & "\sinPIon6" & "\cosPIon6" & "\sinTwoPIon6" & "\cosTwoPIon6" - & "\sinThreePIon6" & "\cosThreePIon6" & "\sinFourPIon6" & "\cosFourPIon6" - & "\sinFivePIon6" & "\cosFivePIon6"\cr - 7 & "\sinPIon7" & "\cosPIon7" & "\sinTwoPIon7" & "\cosTwoPIon7" - & "\sinThreePIon7" & "\cosThreePIon7" & "\sinFourPIon7" & "\cosFourPIon7" - & "\sinFivePIon7" & "\cosFivePIon7"\cr - 8 & "\sinPIon8" & "\cosPIon8" & "\sinTwoPIon8" & "\cosTwoPIon8" - & "\sinThreePIon8" & "\cosThreePIon8" & "\sinFourPIon8" & "\cosFourPIon8" - & "\sinFivePIon8" & "\cosFivePIon8"\cr - 9 & "\sinPIon9" & "\cosPIon9" & "\sinTwoPIon9" & "\cosTwoPIon9" - & "\sinThreePIon9" & "\cosThreePIon9" & "\sinFourPIon9" & "\cosFourPIon9" - & "\sinFivePIon9" & "\cosFivePIon9"\cr -10 & "\sinPIon{10}" & "\cosPIon{10}"& "\sinTwoPIon{10}"& "\cosTwoPIon{10}" - &"\sinThreePIon{10}"&"\cosThreePIon{10}"&"\sinFourPIon{10}"&"\cosFourPIon{10}" - & "\sinFivePIon{10}" & "\cosFivePIon{10}"\cr -11 & "\sinPIon{11}" & "\cosPIon{11}"& "\sinTwoPIon{11}"& "\cosTwoPIon{11}" - &"\sinThreePIon{11}"&"\cosThreePIon{11}"&"\sinFourPIon{11}"&"\cosFourPIon{11}" - & "\sinFivePIon{11}" & "\cosFivePIon{11}"\cr -12 & "\sinPIon{12}" & "\cosPIon{12}"& "\sinTwoPIon{12}"& "\cosTwoPIon{12}" - &"\sinThreePIon{12}"&"\cosThreePIon{12}"&"\sinFourPIon{12}"&"\cosFourPIon{12}" - & "\sinFivePIon{12}" & "\cosFivePIon{12}"\cr -\end{tabular*}} -\caption{Trigonometry tables for Polygon vertices.} -??=[f.trigonometry] -\end{figure*} - -\DOCMODE( -\xydef@\xytrigerror@#1#2{\string#1 only works from 0 to 12} - -\xydef@\cosPIon#1{\ifcase#1 1\or-1\or0\or.5\or\halfroottwo\or - .809017\or\halfrootthree\or.900969\or.92388\or.939693\or.951057\or - .959493\or.965926\else1\xytrigerror@\cosPIon{#1}\fi} -\xydef@\sinPIon#1{\ifcase#1 0\or0\or1\or\halfrootthree\or\halfroottwo\or - .587785\or.5\or.433884\or.382683\or.34202\or.309017\or - .281733\or.258819\else0\xytrigerror@\sinPIon{#1}\fi} - -\xydef@\cosTwoPIon#1{\ifcase#1 1\or1\or-1\or-\cosPIon3\or\cosPIon2\or - \sinPIon{10}\or\cosPIon3\or.62349\or\cosPIon4\or - .766044\or\cosPIon5\or.841254\or\cosPIon6% - \else1\xytrigerror@\cosTwoPIon{#1}\fi} -\xydef@\sinTwoPIon#1{\ifcase#1 0\or0\or0\or-\sinPIon3\or\sinPIon2\or - \cosPIon{10}\or\sinPIon3\or.781831\or\sinPIon4\or - .642788\or\sinPIon5\or.540641\or\sinPIon6% - \else0\xytrigerror@\sinTwoPIon{#1}\fi} - -\xydef@\cosThreePIon#1{\ifcase#1 1\or-1\or0\or-1\or-\cosPIon4\or - -\cosPIon5\or\cosPIon2\or.222521\or\sinPIon8\or\cosPIon3\or - \sinTwoPIon5\or.654861\or\cosPIon4% - \else1\xytrigerror@\cosThreePIon{#1}\fi} -\xydef@\sinThreePIon#1{\ifcase#1 0\or0\or1\or0\or\sinPIon4\or - \sinTwoPIon5\or\sinPIon2\or.974928\or\cosPIon8\or\sinPIon3\or - \cosTwoPIon5\or.75575\or\sinPIon4% - \else0\xytrigerror@\sinThreePIon{#1}\fi} - -\xydef@\cosFourPIon#1{\ifcase#1 1\or1\or1\or-\cosPIon3\or-1\or-\cosPIon5\or - \cosTwoPIon3\or-\cosThreePIon7\or0\or.173648\or\cosTwoPIon5\or - .415415\or\cosPIon3% - \else1\xytrigerror@\cosFourPIon{#1}\fi} -\xydef@\sinFourPIon#1{\ifcase#1 0\or0\or0\or-\sinPIon3\or0\or\sinPIon5\or - \sinTwoPIon3\or\sinThreePIon7\or1\or.984808\or\sinTwoPIon5\or - .909632\or\sinPIon3% - \else0\xytrigerror@\sinFourPIon{#1}\fi} - -\xydef@\cosFivePIon#1{\ifcase#1 1\or-1\or0\or\cosPIon3\or-\cosPIon4\or - -1\or-\cosPIon6\or-\cosTwoPIon7\or-\cosThreePIon8\or-\cosFourPIon9\or - 0\or.142315\or\sinPIon{12}% - \else1\xytrigerror@\cosFivePIon{#1}\fi} -\xydef@\sinFivePIon#1{\ifcase#1 0\or0\or1\or-\sinPIon3\or-\sinPIon4\or - 0\or\sinPIon6\or\sinTwoPIon7\or\sinThreePIon8\or\sinFourPIon9\or1\or - .989821\or\cosPIon{12}% - \else0\xytrigerror@\sinFivePIon{#1}\fi} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Coordinates for the vertices are read from trigonometry tables using control -sequences -% -\begin{defs} - |\cosPIon|$n$ & |\sinPIon|$n$ \cr - |\cosTwoPIon|$n$ & |\sinTwoPIon|$n$ \cr - |\cosThreePIon|$n$ & |\sinThreePIon|$n$ \cr - |\cosFourPIon|$n$ & |\sinFourPIon|$n$ \cr - |\cosFivePIon|$n$ & |\sinFivePIon|$n$ \cr -\end{defs}\unskip\noindent -% -which expand to the values of $\cos{\pi\over n}$, $\sin{\pi\over n}$, -$\cos{2\pi\over n}$, \dots, $\sin{5\pi\over n}$ and are also available for -other uses. The parameter~$n$ must be a non-negative integer up to~12. -The complete table is in figure~??[f.trigonometry]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Specific Polygons:} - -All the information from the switches is passed as 8 separate -parameters to a macro appropriate to the number of sides. -The parameters have the following uses, and are set as shown: - -\begin{defs} -|#1| & pre-arrow: set by |~<<{...}| else |;|\cr -|#2| & vertex <object>, set by |~*{...}| \cr -|#3| & prefix for naming \cr -|#4| & post-vertex: empty with |\ars| else |**@{...}| \cr - & ~~where |{...}| is set by |~<{...}| \cr -|#5| & post-arrow/vertex: set by |~<>{...}| \cr -|#6| & pre-edge/arrow, set by |~><{...}| \cr -|#7| & post-edge: empty with |\ars| else |**@{...}| \cr - & ~~where |{...}| is set by |~>{...}| \cr -|#8| & post-arrow/edge, set by |~>>{...}| \cr -\end{defs} - -The organisation of this information is done by |\xyPolygon@@@#1| -which takes as a single parameter a macro appropriate to the -number of sides, supplied by |\xypoly@@@|. - -\DOCMODE( -\xydef@\xypoly@@@{\count@=\xypolyNUMSIDES@\relax - \ifx\xypolyALIGN@\empty - \ifnum\count@<\thr@@\relax\DN@{\xypolytoosmall@{\the\count@}}% - \else \advance\count@-\thr@@ - \ifcase\count@ \DN@{\xyPolygon@@@\xytriangle@@}% - \or \DN@{\xyPolygon@@@\xysquare@@}% - \or \DN@{\xyPolygon@@@\xypentagon@@}% - \or \DN@{\xyPolygon@@@\xyhexagon@@}% - \or \DN@{\xyPolygon@@@\xyheptagon@@}% - \or \DN@{\xyPolygon@@@\xyoctagon@@}% - \or \DN@{\xyPolygon@@@\xynonagon@@}% - \or \DN@{\xyPolygon@@@\xydecagon@@}% - \or \DN@{\xyPolygon@@@\xyundecagon@@}% - \or \DN@{\xyPolygon@@@\xydodecagon@@}% - \else \DN@{\xylargePolygon@{0}{\xypolyNUMSIDES@}}% - \fi\fi - \else - \DN@{\xylargePolygon@{\xypolyALIGN@}{\xypolyNUMSIDES@}}% - \fi \next@ \xypoly@@@x} - -\xydef@\xypoly@@@x{\restore\xypoly@x} - -\xydef@\xypolytoosmall@#1{\xyerror@{#1 sides is too few for a polygon}} -\DOCMODE) - -Here is |\xyPolygon@@@|. It constructs a list of tokens to be -interpreted, after having closed the grouping that was current -while parsing. -It starts by setting the value of |\xypolyNUMSIDES@|, -then a |\save| before adjusting the scale according to the value -of |\xypolySCALE@|. - -\DOCMODE( -\xydef@\xyPolygon@@@#1{% - \toks@={\def\xypolyNUMSIDES@}% - \expandafter\addtotoks@\expandafter{\expandafter{\xypolyNUMSIDES@}\save}% -% - \ifx\empty\xypolySCALE@ \addtotoks@{\POS"}% - \else \addtotoks@{\POS;0;}% - \expandafter\addtotoks@\expandafter{\xypolySCALE@\relax\POS"}% - \fi - \expandafter\addtotoks@\expandafter{\xypolyPREFIX@0"\relax}% -% - \ifx\xypreSPOKES@\relax - \addtotoks@{#1{;}}% - \expandafter\addtotoks@\expandafter{\expandafter{\xypolyVERTEX@}}% - \expandafter\addtotoks@\expandafter{\expandafter{\xypolyPREFIX@}}% - \DN@##1\next@{\def\tmp@{**\dir##1}}% - \expandafter\next@\expandafter{\xypolySPOKES@}\next@ - \expandafter\addtotoks@\expandafter{\expandafter{\tmp@}}% - \else - \expandafter\DN@\expandafter{\expandafter\ar\xypreSPOKES@}% - \addtotoks@{#1}% - \expandafter\addtotoks@\expandafter{\expandafter{\next@}}% - \expandafter\addtotoks@\expandafter{\expandafter{\xypolyVERTEX@}}% - \expandafter\addtotoks@\expandafter{\expandafter{\xypolyPREFIX@}{}}% - \fi - \expandafter\addtotoks@\expandafter{\expandafter{\xypostSPOKES@}}% -% - \ifx\xypreSIDES@\relax - \addtotoks@{{;}}% - \DN@##1\next@{\def\tmp@{**\dir##1}}% - \expandafter\next@\expandafter{\xypolySIDES@}\next@ - \expandafter\addtotoks@\expandafter{\expandafter{\tmp@}}% - \else - \expandafter\DN@\expandafter{\expandafter\ar\xypreSIDES@}% - \expandafter\addtotoks@\expandafter{\expandafter{\next@}{}}% - \fi - \expandafter\addtotoks@\expandafter{\expandafter{\xypostSIDES@}}% - \ifx\xypolyALIGN@\empty - \ifnum\xypolyNUMSIDES@>12\addtotoks@{{0}}\fi - \else - \expandafter\addtotoks@\expandafter{\expandafter{\xypolyALIGN@}}% - \fi - \expandafter\DN@\expandafter{\expandafter\endgroup\the\toks@ }% - \next@} -\DOCMODE) - -Note how |\endgroup| closes the grouping. -All the information for the layout of the polygon is contained in -|\xypolyNUMSIDES@| and the specific polygon macro -contained in the final |\next@|. - -\medskip - -Here is where the polygons are defined, individually. - -\DOCMODE( -\xydef@\xytriangle@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(0,1)#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(-\cosPIon6, -.5)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\cosPIon6,-.5)#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#33"#6"#31"#7#8\relax } - -\xydef@\xysquare@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(\halfroottwo,\halfroottwo)#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(-\halfroottwo,\halfroottwo)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\halfroottwo,\halfroottwo)#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(-\halfroottwo,\halfroottwo)#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#34"#6"#31"#7#8\relax } - -\xydef@\xypentagon@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(\cosPIon{10},\sinPIon{10})#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(0,1)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(-\cosPIon{10},\sinPIon{10})#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon5,\cosPIon5)#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon5,-\cosPIon5)#2="#35"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#34"#6"#35"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#35"#6"#31"#7#8\relax } - -\xydef@\xyhexagon@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(1,0)#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(.5,\halfrootthree)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(-.5,\halfrootthree)#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(1,0)#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(.5,\halfrootthree)#2="#35"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#34"#6"#35"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(-.5,\halfrootthree)#2="#36"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#35"#6"#36"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#36"#6"#31"#7#8\relax } - -\xydef@\xyheptagon@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(\sinTwoPIon7,\cosTwoPIon7)#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(0,1)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(-\sinTwoPIon7,\cosTwoPIon7)#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinThreePIon7,\cosThreePIon7)#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon7,\cosPIon7)#2="#35"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#34"#6"#35"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon7,-\cosPIon7)#2="#36"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#35"#6"#36"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinThreePIon7,-\cosThreePIon7)#2="#37"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#36"#6"#37"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#37"#6"#31"#7#8\relax } - -\xydef@\xyoctagon@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(\cosPIon8,\sinPIon8)#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(\sinPIon8,\cosPIon8)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon8,-\cosPIon8)#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\cosPIon8,-\sinPIon8)#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\cosPIon8,\sinPIon8)#2="#35"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#34"#6"#35"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon8,\cosPIon8)#2="#36"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#35"#6"#36"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon8,-\cosPIon8)#2="#37"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#36"#6"#37"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\cosPIon8,-\sinPIon8)#2="#38"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#37"#6"#38"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#38"#6"#31"#7#8\relax } - -\xydef@\xynonagon@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(\sinFourPIon9,\cosFourPIon9)#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(\sinTwoPIon9,\cosTwoPIon9)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(0,1)#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(-\sinTwoPIon9,\cosTwoPIon9)#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(-\sinFourPIon9,\cosFourPIon9)#2="#35"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#34"#6"#35"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\cosPIon6,\sinPIon6)#2="#36"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#35"#6"#36"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon9,\cosPIon9)#2="#37"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#36"#6"#37"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon9,-\cosPIon9)#2="#38"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#37"#6"#38"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\cosPIon6,-\sinPIon6)#2="#39"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#38"#6"#39"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#39"#6"#31"#7#8\relax } - -\xydef@\xydecagon@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(1,0)#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(\cosPIon5,\sinPIon5)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon{10},\cosPIon{10})#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon{10},-\cosPIon{10})#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\cosPIon5,-\sinPIon5)#2="#35"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#34"#6"#35"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(1,0)#2="#36"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#35"#6"#36"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\cosPIon5,\sinPIon5)#2="#37"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#36"#6"#37"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon{10},\cosPIon{10})#2="#38"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#37"#6"#38"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon{10},-\cosPIon{10})#2="#39"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#38"#6"#39"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\cosPIon5,-\sinPIon5)#2="#310"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#39"#6"#310"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#310"#6"#31"#7#8\relax } - -\xydef@\xyundecagon@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(\sinFourPIon{11},\cosFourPIon{11})#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(\sinTwoPIon{11},\cosTwoPIon{11})#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(0,1)#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(-\sinTwoPIon{11},\cosTwoPIon{11})#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(-\sinFourPIon{11},\cosFourPIon{11})#2="#35"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#34"#6"#35"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinFivePIon{11},\cosFivePIon{11})#2="#36"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#35"#6"#36"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinThreePIon{11},\cosThreePIon{11})#2="#37"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#36"#6"#37"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon{11},\cosPIon{11})#2="#38"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#37"#6"#38"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon{11},-\cosPIon{11})#2="#39"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#38"#6"#39"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinThreePIon{11},-\cosThreePIon{11})#2="#310"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#39"#6"#310"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinFivePIon{11},-\cosFivePIon{11})#2="#311"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#310"#6"#311"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#311"#6"#31"#7#8\relax } - -\xydef@\xydodecagon@@#1#2#3#4#5#6#7#8{% - \xy@@{\xypolynode@=\@ne}% - \POS#1"#30"+(\cosPIon{12},\sinPIon{12})#2="#31"#4#5\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#30"#1"#30"+(\halfroottwo,\halfroottwo)#2="#32"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#31"#6"#32"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon{12},\cosPIon{12})#2="#33"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#32"#6"#33"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon{12},-\cosPIon{12})#2="#34"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#33"#6"#34"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\halfroottwo,-\halfroottwo)#2="#35"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#34"#6"#35"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\cosPIon{12},-\sinPIon{12})#2="#36"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#35"#6"#36"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\cosPIon{12},\sinPIon{12})#2="#37"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#36"#6"#37"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\halfroottwo,\halfroottwo)#2="#38"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#37"#6"#38"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"-(\sinPIon{12},\cosPIon{12})#2="#39"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#38"#6"#39"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\sinPIon{12},-\cosPIon{12})#2="#310"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#39"#6"#310"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\halfroottwo,-\halfroottwo)#2="#311"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#310"#6"#311"#7#8\relax - \xy@@{\advance\xypolynode@\tw@}% - \POS"#30"#1"#30"+(\cosPIon{12},-\sinPIon{12})#2="#312"#4#5\relax - \xy@@{\advance\xypolynode@\m@ne}% - \POS"#311"#6"#312"#7#8\relax - \xy@@{\advance\xypolynode@\@ne}% - \POS"#312"#6"#31"#7#8\relax } -\DOCMODE) - -\DOCMODE( -\xydef@\xylargePolygon@#1#2{% - \dimen@=#1\p@ - \xyPolygon@@@\xypolygon@@} -% \xyerror@{Sorry, polygons with #2 sides are not implemented; maximum 12.}{}} -\DOCMODE) - -We need a looping construction that will not interfere with others used -at a high level. - -\DOCMODE( -\xydef@\xypolyrepeat@{\fi} -\xydef@\xypolybody@{} -\xydef@\xypolyiterate@{\xypolybody@\expandafter\xypolyiterate@\else\fi} -\xydef@\xypolyloop@#1\xypolyrepeat@{\def\xypolybody@{#1}\xypolyiterate@} -\DOCMODE) - -The counter |\xypolynode@| keeps track of the current vertex, spoke and side. -Since the user may choose to place another |\xypolygon| along any such -piece, it is necessary to calculate the angle for each vertex afresh, -using only information passed via the parameters |#1|,\dots,|#9|. - -\DOCMODE( -\xydef@\xypolygon@@#1#2#3#4#5#6#7#8#9{\save - \vfromcartesianangle@{#9}\edef\next@{\the\X@c,\the\Y@c\addGT@\empty}% - \xy@@{\xypolynode@=\@ne}% - \toks@={\POS#1"#30"+}% - \expandafter\expandafter\expandafter\addtotoks@\expandafter - \expandafter\expandafter{\addLT@\empty}% - \expandafter\addtotoks@\expandafter{\next@#2="#31"#4#5\relax}% - \xy@@\dontleave@ \the\toks@ -% - \xypolyloop@ - \dimen@=360\p@ \count@@=\xypolyNUMSIDES@\relax \advance\dimen@ .5\count@@ - \divide\dimen@ \xypolyNUMSIDES@ \relax - \multiply\dimen@\xypolynode@ \relax \advance\dimen@ #9\p@ - \edef\tmp@{% - \noexpand\vfromcartesianangle@{\expandafter\removePT@\the\dimen@}}% - \tmp@ \edef\next@{\the\X@c,\the\Y@c\addGT@\empty}% - \xy@@{\advance\xypolynode@\@ne}\count@=\xypolynode@ - \toks@={\POS"#30"#1"#30"+}\edef\nextii@{\the\count@}% - \expandafter\expandafter\expandafter\addtotoks@\expandafter - \expandafter\expandafter{\addLT@\space}% - \expandafter\addtotoks@\expandafter{\next@#2="#3}% - \expandafter\addtotoks@\expandafter{\nextii@"#4#5\relax}% - \the\toks@ -% - \count@=\xypolynode@ \xy@@{\advance\xypolynode@\m@ne}% - \toks@={\POS"#3}\expandafter\addtotoks@\expandafter{\the\xypolynode@"#6"#3}% - \expandafter\addtotoks@\expandafter{\the\count@"#7#8\relax}% - \the\toks@ - \xy@@{\advance\xypolynode@\@ne}\count@=\xypolyNUMSIDES@ \relax - \ifnum\xypolynode@<\count@ \relax \xypolyrepeat@ -% - \toks@={\POS"#3}% - \expandafter\addtotoks@\expandafter{\xypolyNUMSIDES@"#6"#31"#7#8\relax}% - \the\toks@ \restore } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( - -\xyendinput - -% $Log: xypoly.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.4 1997/05/18 01:13:24 ross -% Essential bugfixes. -% -% Revision 3.3 1996/12/18 09:28:35 ross -% cosmetic changes in documentation -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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. -% -% Revision 2.12 1994/10/25 03:01:14 ross -% Final 3beta release [bug fixes & AMS-LaTeX fitting]. -% -% Created by Ross Moore, September 1994. - -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-c.doc b/Master/texmf-dist/source/generic/xypic/xyps-c.doc deleted file mode 100644 index 4c3857ceb0c..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-c.doc +++ /dev/null @@ -1,187 +0,0 @@ -%% $Id: xyps-c.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Colour extension'' PostScript backend support. -%% Copyright (c) 1993-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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\expandafter\ifx\csname xyps-cloaded\endcsname\empty - \message{not reloaded}\endinput \fi -\expandafter\let\csname xyps-cloaded\endcsname=\empty \xycatcodes - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Colour} - -The included file |xyps-c.tex| (version \stripRCS$Revision: 3.7 $) provides -\PS\ support for the effects defined in the |color| extension -in~\S??g[:color]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The \PS\ style methods are required, so ensure that they are loaded. - -\DOCMODE( -\expandafter\ifx \csname xyps-sloaded\endcsname\empty\else - \xyinputorelse@{xyps-s}{\xyerror@{Could not load xyps-s}{}}% - \xycatcodes\fi -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This file is loaded and its effects are activated automatically whenever -|\xyoption{color}| is requested and the current <driver> supports -colours using \PS. Should there be any need to turn off this support, -the following commands are available; they obey usual \TeX\ groupings. -% -\begin{defs} -|\NoPScolor| & remove \PS\ support\kern-50pt\cr -|\UsePScolor| & reinstate \PS. -\end{defs} -% -Without \PS\ support some drivers may still be able to provide some -support for colours. These commands are not guaranteed to work adequately -with all drivers. They are provided primarily for testing and -trouble-shooting; \eg~with <driver> configurations untested by the -authors of \Xy-pic, who should be notified of any difficulties. - -\DOCMODE( -\xydef@\UsePScolor{\installPScolor@} -\xydef@\NoPScolor{\UnloadColor@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Installation} - -Installation consists of rebinding the macros |\xycolor@| and |\newxycolor@| -and of reloading the standard colours to include a description for \PS. -This installation should be delayed till after |color| and |ps| themselves -have been installed. - -\DOCMODE( -\xydef@\installPScolor@{\installPSstyle@ - \let\xymath@=\xyPSmath@ \let\xynomath@=\xyPSnomath@ - \let\checkxyPScolor@=\checkxyPScolor@@ - \let\xycolor@@=\xyPScolor@@ - \xystandardcolors@ - \xyuncatcodes } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -All effects defined in the |color| extension can -be implemented using the \PS\ dictionary, loaded by |xyps-ps|. -This file provides ``generic'' \PS\ code which is known to work -correctly with most drivers. No attempt is made to provide special -code for particular drivers; for driver-specific variations, consult -the appropriate |xy|<driver>|.doc| file. - -\DOCMODE( -\xydef@\xyPSmath@{\hbox\bgroup\dimen@=.55ex \checkxyPScolor@ \xyinside@} -\xydef@\xyPSnomath@{\hbox\bgroup\dimen@=\z@ \checkxyPScolor@ \xyinside@} - -\xydef@\checkxyPScolor@@{\xycolor@raw@@{}\let\checkxyPScolor@=\relax} -\xylet@\checkxyPScolor@=\relax -\DOCMODE) - -\DOCMODE( -\xydef@\xyPSnewcolor@#1#2#3#4#5{% - \expandafter\DN@\expandafter{\csname shape [#1]\endcsname}% - \DNii@{\relax}\ifx\next@\nextii@\newxycolor{#1}{}\relax\fi - \DNii@{#4}\ifx\nextii@\empty - \expandafter\DNii@\expandafter{\csname xyPSshape@#1@\endcsname}% - \expandafter\def\nextii@{\xyPScolor@{#2 #3}}\else - \expandafter\DNii@\expandafter{\csname xyPSshape@#1@\endcsname}% - \expandafter\def\nextii@{\xyPScolor@{#4}}\fi - \ifx\nextii@\empty\expandafter\def\next@{\xyPSnotimplemented@@`#1'@@}% - \else - \edef\tmp@{\noexpand\let\expandafter\noexpand\next@ - \expandafter\noexpand\nextii@}\expandafter\tmp@\fi } - -\xydef@\xyPScolor@{\ifPSspecials@\expandafter\xyPScolor@@ - \else\expandafter\eat@\fi} -\xydef@\xyPScolor@@#1{\bgroup \checkXyStyle@ - \def\preStyle@@{\expandafter\addtostyletoks@\expandafter{\xyPSpre@}}% - \def\postStyle@@{\expandafter\addtostyletoks@\expandafter{\xyPSpost@}}% - \let\modPSboxz@=\modXYstyle@ \xyPS@color@@{#1}% - \toks@={\egroup\let\xy@style@=\relax \def\Drop@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\Drop@@}\def\Connect@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\Connect@@}}% - \the\toks@ } - -%\xydef@\xyPS@color@@#1{#1 /xycolor{#1}def } -\xydef@\xyPS@color@@#1{\xyPSsplitPS@{{#1}cc}{}} -\xydef@\xycolor@raw@@#1{\PSraw@@{xyc}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xyps-c.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.3 1996/12/18 10:05:50 ross -% minor improvements to file-loading commands -% -% 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. -% -% Revision 2.9 1994/06/09 14:38:56 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% Revision 2.9 1994/06/09 14:38:56 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% NEW for version 2.9 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-col.doc b/Master/texmf-dist/source/generic/xypic/xyps-col.doc deleted file mode 100644 index 886c891edf5..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-col.doc +++ /dev/null @@ -1,165 +0,0 @@ -%% $Id: xyps-col.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Crayola colour names'' PostScript colour support. -%% 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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\ifx\xyloaded\undefined \input xy \fi - -%\xyprovide{ps-col}{Crayola Colours}{\stripRCS$Revision: 3.7 $}% -% {Ross Moore}{ross@mpce.mq.edu.au}% -% {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This option provides definitions for the 68 colours recognised by name by -Tomas Rokicki's |dvips| driver~\cite{dvips}. These colours become available -for use in \Xy-pic pictures and diagrams, as |[|<shape>|]| modifiers. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -Only makes sense to load this after |color| and with a <driver> that -supports it. Indeed this file should only be called from a <driver>-file. - -\DOCMODE( -\xyrequire{color}\xycatcodes -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The information has been copied from Rokicki's |color.pro| \PS\ prolog file: -``There are 68 predefined colours, with names taken primarily from the -Crayola crayon box of 64 colours''~\cite[\S16.1]{dvips}. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Different <driver>s may redefine the |\xynewcolor@| macro to set the colour -by name or by the cmyk-values. - -\DOCMODE( -\newxycolor@{GreenYellow}{0.15 0 0.69 0}{cmyk}{}{}% -\newxycolor@{Yellow}{0 0 1. 0}{cmyk}{}{}% -\newxycolor@{Goldenrod}{0 0.10 0.84 0}{cmyk}{}{}% -\newxycolor@{Dandelion}{0 0.29 0.84 0}{cmyk}{}{}% -\newxycolor@{Apricot}{0 0.32 0.52 0}{cmyk}{}{}% -\newxycolor@{Peach}{0 0.50 0.70 0}{cmyk}{}{}% -\newxycolor@{Melon}{0 0.46 0.50 0}{cmyk}{}{}% -\newxycolor@{YellowOrange}{0 0.42 1. 0}{cmyk}{}{}% -\newxycolor@{Orange}{0 0.61. 0.87 0}{cmyk}{}{}% -\newxycolor@{BurntOrange}{0 0.51 1. 0}{cmyk}{}{}% -\newxycolor@{Bittersweet}{0 0.75 1. 0.24}{cmyk}{}{}% -\newxycolor@{RedOrange}{0 0.77 0.87 0}{cmyk}{}{}% -\newxycolor@{Mahogany}{0 0.85 0.87 0.35}{cmyk}{}{}% -\newxycolor@{Maroon}{0 0.87 0.68 0.32}{cmyk}{}{}% -\newxycolor@{BrickRed}{0 0.89 0.94 0.28}{cmyk}{}{}% -\newxycolor@{Red}{0 1. 1. 0}{cmyk}{}{}% -\newxycolor@{OrangeRed}{0 1. 0.50 0}{cmyk}{}{}% -\newxycolor@{RubineRed}{0 1. 0.13 0}{cmyk}{}{}% -\newxycolor@{WildStrawberry}{0 0.96 0.39 0}{cmyk}{}{}% -\newxycolor@{Salmon}{0 0.53 0.38 0}{cmyk}{}{}% -\newxycolor@{CarnationPink}{0 0.63 0 0}{cmyk}{}{}% -\newxycolor@{Magenta}{0 1. 0 0}{cmyk}{}{}% -\newxycolor@{VioletRed}{0 0.81 0 0}{cmyk}{}{}% -\newxycolor@{Rhodamine}{0 0.82 0 0}{cmyk}{}{}% -\newxycolor@{Mulberry}{0.34 0.90 0 0.02}{cmyk}{}{}% -\newxycolor@{RedViolet}{0.07 0.90 0 0.34}{cmyk}{}{}% -\newxycolor@{Fuchsia}{0.47 0.91 0 0.08}{cmyk}{}{}% -\newxycolor@{Lavender}{0 0.48 0 0}{cmyk}{}{}% -\newxycolor@{Thistle}{0.12 0.59 0 0}{cmyk}{}{}% -\newxycolor@{Orchid}{0.32 0.64 0 0}{cmyk}{}{}% -\newxycolor@{DarkOrchid}{0.40 0.80 0.20 0}{cmyk}{}{}% -\newxycolor@{Purple}{0.45 0.86 0 0}{cmyk}{}{}% -\newxycolor@{Plum}{0.50 1. 0 0}{cmyk}{}{}% -\newxycolor@{Violet}{0.79 0.88 0 0}{cmyk}{}{}% -\newxycolor@{RoyalPurple}{0.75 0.90 0 0}{cmyk}{}{}% -\newxycolor@{BlueViolet}{0.86 0.91 0 0.04}{cmyk}{}{}% -\newxycolor@{Periwinkle}{0.57 0.55 0 0}{cmyk}{}{}% -\newxycolor@{CadetBlue}{0.62 0.57 0.23 0}{cmyk}{}{}% -\newxycolor@{CornflowerBlue}{0.65 0.13 0 0}{cmyk}{}{}% -\newxycolor@{MidnightBlue}{0.98 0.13 0 0.43}{cmyk}{}{}% -\newxycolor@{NavyBlue}{0.94 0.54 0 0}{cmyk}{}{}% -\newxycolor@{RoyalBlue}{1. 0.50 0 0}{cmyk}{}{}% -\newxycolor@{Blue}{1. 1. 0 0}{cmyk}{}{}% -\newxycolor@{Cerulean}{0.94 0.11 0 0}{cmyk}{}{}% -\newxycolor@{Cyan}{1. 0 0 0}{cmyk}{}{}% -\newxycolor@{ProcessBlue}{0.96 0 0 0}{cmyk}{}{}% -\newxycolor@{SkyBlue}{0.62 0 0.12 0}{cmyk}{}{}% -\newxycolor@{Turquoise}{0.85 0 0.20 0}{cmyk}{}{}% -\newxycolor@{TealBlue}{0.86 0 0.34 0.02}{cmyk}{}{}% -\newxycolor@{Aquamarine}{0.82 0 0.30 0}{cmyk}{}{}% -\newxycolor@{BlueGreen}{0.85 0 0.33 0}{cmyk}{}{}% -\newxycolor@{Emerald}{1. 0 0.50 0}{cmyk}{}{}% -\newxycolor@{JungleGreen}{0.99 0 0.52 0}{cmyk}{}{}% -\newxycolor@{SeaGreen}{0.69 0 0.50 0}{cmyk}{}{}% -\newxycolor@{Green}{1. 0 1. 0}{cmyk}{}{}% -\newxycolor@{ForestGreen}{0.91 0 0.88 0.12}{cmyk}{}{}% -\newxycolor@{PineGreen}{0.92 0 0.59 0.25}{cmyk}{}{}% -\newxycolor@{LimeGreen}{0.50 0 1. 0}{cmyk}{}{}% -\newxycolor@{YellowGreen}{0.44 0 0.74 0}{cmyk}{}{}% -\newxycolor@{SpringGreen}{0.26 0 0.76 0}{cmyk}{}{}% -\newxycolor@{OliveGreen}{0.64 0 0.95 0.40}{cmyk}{}{}% -\newxycolor@{RawSienna}{0 0.72 1. 0.45}{cmyk}{}{}% -\newxycolor@{Sepia}{0 0.83 1. 0.70}{cmyk}{}{}% -\newxycolor@{Brown}{0 0.81 1. 0.60}{cmyk}{}{}% -\newxycolor@{Tan}{0.14 0.42 0.56 0}{cmyk}{}{}% -\newxycolor@{Gray}{0 0 0 0.50}{cmyk}{}{}% -\newxycolor@{Black}{0 0 0 1.}{cmyk}{}{}% -\newxycolor@{White}{0 0 0 0}{cmyk}{}{}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\endinput - -% $Log: xyps-col.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.3 1996/12/18 10:02:23 ross -% no changes -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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. -% -% Revision 2.12 1995/04/03 05:42:16 ross -% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-f.doc b/Master/texmf-dist/source/generic/xypic/xyps-f.doc deleted file mode 100644 index fc3794d5815..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-f.doc +++ /dev/null @@ -1,270 +0,0 @@ -%% $Id: xyps-f.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Frame extension'' PostScript backend support. -%% Copyright (c) 1995-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@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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\expandafter\ifx\csname xyps-floaded\endcsname\empty - \message{not reloaded}\endinput \fi -\expandafter\let\csname xyps-floaded\endcsname=\empty \xycatcodes - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Frames} - -The included file |xyps-f.tex| (version \stripRCS$Revision: 3.7 $) provides -\PS\ support for the effects defined in the |frame| extension described -in~\S??g[:frame]. It implements some effects otherwise unattainable. - -This file is loaded and its effects are activated automatically whenever -|\xyoption{frame}| is requested and the current <driver> supports \PS\ -effects for frames. Should there be any need to turn off this support, the -following commands are available; they obey usual \TeX\ groupings. -% -\begin{defs} -|\NoPSframes| & remove \PS\ support\kern-50pt \cr -|\UsePSframes| & reinstate \PS. -\end{defs} -% -Without \PS\ support ellipses may be shown as circles and all filled -regions may be represented as black rectangles. -These commands are provided primarily for testing and trouble-shooting; -\eg~with <driver> configurations untested by the authors of \Xy-pic, -who should be notified of any difficulties. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Installation} - -The <driver>-file must call the following macro to rebind control sequences -defined in |xyframe|, thereby allowing the \PS\ methods to be used. - -\DOCMODE( -\xydef@\installPSframes@{% - \let\framed@body@@=\xyPSframed@body@ - \let\circled@x@@=\xyPScircled@x@ - \let\ellipsed@x@@=\xyPSellipsed@x@ - \installPSfills@ - \xyuncatcodes} - -\xydef@\UsePSframes{\installPSframes@} -\xydef@\NoPSframes{\UnloadFrames@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Frames: solid, dotted and dashed} - -For solid frames use \PS\ ovals, otherwise adjust the spacing between dashes -or dots according to the lengths, both vertical and horizontal. - -\DOCMODE( -\xydef@\xyPSframed@body@{\DN@{\framed@body@}% - \ifx\framehfill\frm@solidh@@ - \DN@{\xyPSframed@oval@\xyPSoval@Special}% -% \else\ifdim\frmradius@@=\z@\else - \else\ifdim\R@=\z@\else - \ifx\framehfill\frm@dashh@@ - \DN@{\xyPSframed@oval@\xyPSdashoval@Special}% - \else\ifx\framehfill\frm@doth@@ - \DN@{\xyPSframed@oval@\xyPSdotoval@Special}% - \fi\fi - \fi\fi \next@ } - -\xydef@\xyPSframed@oval@#1{\vglue\U@c - \hbox{\hglue\L@c\xypsoval@#1\hglue\R@c}\vglue\D@c} - - -\xydef@\xyPScircled@x@{\DN@{\xyPScircled@x@@\xyPScirc@Special}% - \ifx\framehfill\frm@doth@@ - \DN@{\xyPScircled@x@@\xyPSdotcirc@Special}% - \else\ifx\framehfill\frm@dashh@@ - \DN@{\xyPScircled@x@@\xyPSdashcirc@Special}% - \fi\fi \next@ } - -\xydef@\xyPScircled@x@@#1{\vglue2\R@ - \hbox{\hglue2\R@\xypscircle@#1\hglue2\R@}% - \vglue2\R@} -\DOCMODE) - -In practice the parameters |#1| and |#2| will hold <dimen>s. - -\DOCMODE( -\xydef@\xyPSellipsed@x@#1#2{% - \DN@{\xyPSellipsed@x@@\xyPScirc@Special}% - \ifx\framehfill\frm@doth@@ - \DN@{\xyPSellipsed@x@@\xyPSdotcirc@Special}% - \else\ifx\framehfill\frm@dashh@@ - \DN@{\xyPSellipsed@x@@\xyPSdashcirc@Special}% - \fi\fi \next@{#1}{#2}} - -\xydef@\xyPSellipsed@x@@#1#2#3{\vglue #3\vglue #3\relax - \hbox{\L@c = #2\relax \R@c=\L@c \D@c = #3\relax \U@c=\D@c - \hglue#2\hglue#2\relax\xypsellipse@#1\hglue#2\hglue#2\relax}% - \vglue #3\vglue #3\relax} -\DOCMODE) - - -These may be used for dashed frames. - -\DOCMODE( -\xydef@\xyPSdashhfill@{{\SemiDirectionChar=95 \Direction=3072 \xyPSdash@}} -\xydef@\xyPSdashvfill@{{\SemiDirection=31 \Direction=1023 \xyPSdash@}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{ovals and circles} - -The width, height, corner-radius are available as |\dimen@i|, |\dimen@ii| -and |\R@| respectively; we only need |\R@| here, -since the extents hold the real information that we need. - -\DOCMODE( -\xydef@\xypsoval@#1{% - \dimen@=\L@c \advance\dimen@\R@c - \dimen@ii=\U@c \advance\dimen@ii\D@c - \ifdim\dimen@ii<\dimen@ \relax \dimen@=\dimen@ii\fi \divide\dimen@\tw@ -% \R@=\frmradius@@ - \ifdim\R@>\dimen@ \relax \R@=\dimen@ \fi - \D@c=-\D@c \L@c=-\L@c - \edef\tmp@{\expandafter\removePT@\the\R@ - \space\expandafter\removePT@\the\R@c - \space\expandafter\removePT@\the\D@c - \space\expandafter\removePT@\the\L@c - \space\expandafter\removePT@\the\U@c }% - \expandafter#1\expandafter{\tmp@}} - -\xydef@\xypscircle@#1{\dimen@=\R@ - \edef\tmp@{\expandafter\removePT@\the\dimen@}% - \expandafter#1\expandafter{\tmp@}} - -\xydef@\xypsellipse@#1{\edef\tmp@{% - \expandafter\removePT@\the\U@c \space - \expandafter\removePT@\the\D@c \space - \expandafter\removePT@\the\L@c \space - \expandafter\removePT@\the\R@c }% - \expandafter#1\expandafter{\tmp@}} - -\xydef@\xyPSoval@Special#1{\PSmacro@{#1 ov}} -\xydef@\xyPScirc@Special#1{\PSmacro@{#1 ox}} -\xydef@\xyPSdotcirc@Special#1{\PSmacro@{#1 ot}} -\xydef@\xyPSdashcirc@Special#1{\PSmacro@{#1 od}} -\xydef@\xyPSdotoval@Special#1{\PSmacro@{#1 vt}} -\xydef@\xyPSdashoval@Special#1{\PSmacro@{#1 vd}} -\DOCMODE) - -The \PS\ operators |ov|, |ox| etc. are defined within |xyps-pro|, -having scope limited to |XYdict| and sub-dictionaries. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Filled regions} - -\DOCMODE( -\xydef@\xyPSfilledRegion#1#2{\setboxz@h{\lower\D@c\vbox{% - \vglue\U@c\hbox{#1#2\empty\hglue\L@c\hglue\R@c}\vglue\D@c}}% - \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@} - -\xydef@\filledRectangle@PS{% - \xyPSfilledRegion{\xypsoval@\xyPSfilloval@Special}} -\xydef@\filledCircle@PS#1{{\R@c=\R@ \L@c=\R@ \U@c=\R@ \D@c=\R@ - \xyPSfilledRegion{\xypscircle@\xyPSfillcirc@Special}#1}} -\xydef@\filledEllipse@PS{% - \xyPSfilledRegion{\xypsellipse@\xyPSfillellipse@Special}} -\xydef@\filledOval@PS{% - \xyPSfilledRegion{\xypsoval@\xyPSfilloval@Special}} - -\xydef@\frame@emph@PS#1{\filled@{#1}\relax} - -\xydef@\installPSfills@{% - \let\frame@emph@@=\frame@emph@PS - \let\filledRectangle@@=\filledRectangle@PS - \let\filledOval@@=\filledOval@PS - \let\filledCircle@@=\filledCircle@PS - \let\filledEllipse@@=\filledEllipse@PS -} -\DOCMODE) - -Rectangles are treated as a special case of ovals. -The |#2| parameter signifies whether the outline of the object -should also be stroked (|#2|=|\relax|) after being filled. -Such a stroke is always in black. - -\DOCMODE( -%\xydef@\xyPSfillrect@Special#1#2{% -% \ifx#2\relax\PSmacro@{#1 sfr}% -% \else\PSmacro@{#1 fr}\fi} -\xydef@\xyPSfilloval@Special#1#2{% - \ifx#2\relax\PSmacro@{#1 sfo}% - \else\PSmacro@{#1 fo}\fi} -\xydef@\xyPSfillcirc@Special#1#2{% - \ifx#2\relax\PSmacro@{#1 sfc}% - \else\PSmacro@{#1 fc}\fi} -\xydef@\xyPSfillellipse@Special#1#2{% - \ifx#2\relax\PSmacro@{#1 sfe}% - \else\PSmacro@{#1 fe}\fi} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xyps-f.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.4 1997/05/18 01:13:24 ross -% Essential bugfixes. -% -% Revision 3.3 1996/12/18 10:07:22 ross -% cosmetic changes to macro-names -% -% 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.0 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-l.doc b/Master/texmf-dist/source/generic/xypic/xyps-l.doc deleted file mode 100644 index 8dc1d1a1ae4..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-l.doc +++ /dev/null @@ -1,195 +0,0 @@ -%% $Id: xyps-l.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Line extension'' PostScript backend support. -%% 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@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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\expandafter\ifx\csname xyps-lloaded\endcsname\empty - \message{not reloaded}\endinput \fi -\expandafter\let\csname xyps-lloaded\endcsname=\empty \xycatcodes - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Line-styles} - -The included file |xyps-l.tex| (version \stripRCS$Revision: 3.7 $) provides -\PS\ support for the effects defined in the |line| extension described -in~\S??g[:line]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The \PS\ style methods are required, so ensure that they are loaded. - -\DOCMODE( -\expandafter\ifx\csname xyps-sloaded\endcsname\empty\else - \xyinputorelse@{xyps-s}{\xyerror@{Could not load xyps-s}{}}% - \xycatcodes\fi -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This file is loaded and its effects are activated automatically whenever -|\xyoption{line}| is requested and the current <driver> supports -\PS\ line styles. Should there be any need to turn off this support, -the following commands are available; they obey usual \TeX\ groupings. -% -\begin{defs} -|\NoPSlines| & remove \PS\ support\kern-50pt\cr -|\UsePSlines| & reinstate \PS. -\end{defs} -% -Without \PS\ support lines can be expected to be displayed in the default -style, having thickness of $.4$pt. -These commands are provided primarily for testing and trouble-shooting; -\eg~with <driver> configurations untested by the authors of \Xy-pic, -who should be notified of any difficulties. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Installation} - -The <driver>-file must call the following macro to rebind a control sequence -defined in |xyline|, thereby allowing the \PS\ method to be used. -The purpose of the |\xyPSlinew@| hook is to allow the \PS\ style sequencing -method to be used with other back-ends, changing just the contents of the -|\special|s actually placed. - -\DOCMODE( -\xydef@\installPSline@{\installPSstyle@ - \installPSlinestyles@ \installPSpolylines@ } - -\xydef@\UsePSlines{\installPSline@} -\xydef@\NoPSlines{\UnloadLine@\relax} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{widths, joins and caps} - -This, and the rebindings below, is all that is needed for the cleaner, -more sophisticated way. - -\DOCMODE( -\xydef@\xyPSlineSpecial@#1{\addtostyletoks@{ #1 lw}} -\xydef@\xyPScapSpecial@#1{\addtostyletoks@{ #1 lc}} -\xydef@\xyPSjoinSpecial@#1{\addtostyletoks@{ #1 lj}} -\xydef@\xyPSmiterSpecial@#1{\addtostyletoks@{ #1 ml}} - -\xydef@\installPSlinestyles@{% - \let\xylinewidth@@=\xylinewidth@ - \let\transxyline@@=\transxyline@ - \let\xylineSpecial@@=\xyPSlineSpecial@ - \let\resetxyline@@=\resetxyline@i -% - \let\xy@linecap@@=\xy@linecap@ - \let\xycapSpecial@@=\xyPScapSpecial@ - \let\resetxylinecap@@=\resetxylinecap@i -% - \let\xy@linejoin@@=\xy@linejoin@ - \let\xyjoinSpecial@@=\xyPSjoinSpecial@ - \let\resetxylinejoin@@=\resetxylinejoin@i -% - \let\xy@linemiter@@=\xy@linemiter@ - \let\xymiterSpecial@@=\xyPSmiterSpecial@ - \let\resetxylinemiter@@=\resetxylinemiter@i -} -\DOCMODE) - -The \PS\ operators |lw|, |lc|, |lj|, |ml| are defined in |xyps-ps| to set the -|linewidth|, |linecap|, |linejoin|, |miterlimit| graphics-state parameters, -respectively. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Poly-lines} - -\DOCMODE( -\xydef@\xypolylinePS@Special#1{\PSmacro@{#1 pl}} -\xydef@\xypolydotPS@Special#1{\PSmacro@{#1 pt}} -\xydef@\xypolydashPS@Special#1{\PSmacro@{#1 pd}} -\xydef@\xypolyfillPS@Special#1{\PSmacro@{#1 pf}} -\xydef@\xypolyeofillPS@Special#1{\PSmacro@{#1 pe}} - -\xydef@\installPSpolylines@{% - \let\xypolyline@Special=\xypolylinePS@Special - \let\xypolydot@Special=\xypolydotPS@Special - \let\xypolydash@Special=\xypolydashPS@Special - \let\xypolyfill@Special=\xypolyfillPS@Special - \let\xypolyeofill@Special=\xypolyeofillPS@Special - \let\xy@polystyle@@=\xy@polystyle@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xyps-l.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.4 1997/05/18 01:13:24 ross -% Essential bugfixes. -% -% Revision 3.3 1996/12/18 10:05:50 ross -% minor improvements to file-loading commands -% -% 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. -% -% Revision 2.9 1994/06/09 14:38:56 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% Revision 2.9 1994/06/09 14:38:56 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% NEW for version 2.9 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-pro.doc b/Master/texmf-dist/source/generic/xypic/xyps-pro.doc deleted file mode 100644 index 165e601261f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-pro.doc +++ /dev/null @@ -1,253 +0,0 @@ -%% $Id: xyps-pro.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``PostScript Prolog'' for PostScript support. -%% Copyright (c) 1993-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@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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. - -%\expandafter\let\csname xyps-proloaded\endcsname=\empty % - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This included file (version \stripRCS$Revision: 3.7 $) provides the \PS\ prolog -file. This contains the definitions of the main \PS\ programming structures -required to support the \PS\ effects available in \Xy-pic. A separate file -|xypsdict.doc| describes the extra \PS\ needed to support the \PS\ back-end. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\paragraph*{\PS\ Prolog} - -This creates the \PS\ dictionary called |XYdict| within the usual |userdict| -or any other dictionary supplied by the specific driver. -Commands loaded here are ones which may by used by extensions other than the -\PS\ back-end, which loads many more commands into this dictionary using -the code to be found in |xypsdict.tex|. - -\DOCMODE( -\begingroup \xycatcodes% - \count@=\xydashl@\relax \count@@=\xydashw@\relax% - \let\firstPS@@=\relax% - \xyPSobeylines@@% -% -\PSspecialdict@@{% -/XYdict where not{250 dict /XYdict exch def - /xy{mark exch XYdict begin countdictstack /xylevel exch def - xyopen xycolor mark xypatt xypattern stopped xyclose end - cleartomark}def /xyg{gsave xy}def - /xyf{currentfont exch xy grestore setfont}def - /xycc{{xychgcol}xy}def /xyc{XYdict begin xycolstore end}def - /xyx{/xyYpos exch def /xyXpos exch def}def - /xyp{currentpoint xyx}def %/xycp{currentpoint xyx}def - /xyd{setupDirection XYdirection 2 mul}def - /xyct{currentpoint xyt 2 copy 6 2 roll}def - /xyt{xyXpos xyYpos 2 copy translate}def /xyr{neg rotate xynt}def - /xyrs{neg rotate 3 -1 roll sub neg 3 1 roll sub exch moveto xynt}def - /xynt{neg exch neg exch translate}def /xys{scale xynt}def - /xyss{scale 3 -1 roll sub neg 3 1 roll sub exch moveto xynt}def - /xyi{0 0 transform grestore gsave itransform}def - }if}% -% -\tmp@false\def\do#1{\DN@{#1}\ifx\next@\nextii@\tmp@true\fi}% -\DNii@{17oztex}\xydriversselected@@\iftmp@\PSspecialdict@@{% - /@boxy{prespecialVM restore grestore}def - /@eoxy{gsave /prespecialVM save def}def - }% -\else \DNii@{oztex}\xydriversselected@@\iftmp@\PSspecialdict@@{% - /@oxy{prespecialVM restore grestore}def - /@oxy{gsave /prespecialVM save def}def - }\fi\fi% -% -\PSdict@@{/XYdict where pop begin XYdict begin}% -% -%\PSspecialdict@@{% -\PSdict@@{% - /xyopen{currentdict /XYddict known{XYddict null eq{} - {XYddict begin xyopen}ifelse}if}def - /xyclose{countdictstack -1 xylevel 1 add{pop end}for}def - /xychgcol{/xycolor exch def}def /xysetcol{xypush xychgcol}def -}% -\PSdict@@{% - /xypush{16 dict /XYddict exch def XYddict begin}def - /undef where - {pop /xypop{countdictstack xylevel eq{}{end}ifelse - currentdict /XYddict undef}def} - {/xypop{countdictstack xylevel eq{}{end}ifelse - /XYddict null def}def}ifelse - /pu /xypush load def /pp /xypop load def}% -% -\PSdict@@{% - /xypspt{72 72.27 div dup scale}bind def /pscorrect{.85 mul}bind def - /gstartxy{gsave xypspt xywidth xycap xyjoin xymiter newpath 0 0 moveto}def -% /grulexy{gsave xyrulth newpath 0 0 moveto}def - /xypath{gstartxy rmoveto counttomark 2 idiv -1 1{pop lineto}for}def - /xystroke{stroke grestore}bind def - /xyfill{closepath fill grestore}bind def - /xystfil{closepath gsave fill grestore 0 setgray - 0 setlinewidth xystroke}bind def - /xyeofill{closepath eofill grestore}bind def -% /xyclip{closepath fill grestore}bind def -% /xyeoclip{closepath eofill grestore}bind def -}% -\PSdict@@{% - /xypolyline{xypath xystroke}def /xypolyfill{xypath xyfill}def - /xydotsep{/@ currentlinewidth 2 mul def}def - /xypolydot{xypath xydotsep [xydt @] 0 setdash xystroke}def - /xypolydash{xypath xydotsep [@ @] 0 setdash xystroke}def - /xypolyeofill{xypath xyeofill}def /pe /xypolyeofill load def - /pl /xypolyline load def /pf /xypolyfill load def - /pt /xypolydot load def /pd /xypolydash load def }% -% -\PSdict@@{% - /arc4pop{arcto 4{pop}repeat}bind def - /xyoval{gstartxy oval closepath xystroke}def -% /xycircle{gstartxy dup dup neg dup dup neg oval xystroke}def - /xycircle{gstartxy circle xystroke}def - /circle{dup 0 moveto 0 0 3 -1 roll 0 360 arc}def - /oval{newpath 2 copy exch 5 index add 2 div exch 3 copy 10 3 roll - moveto 1 index dup 5 1 roll 3 index 7 index arc4pop - dup dup 4 1 roll 4 index exch 6 index arc4pop - 1 index dup 8 1 roll 4 index 4 index arc4pop - arc4pop closepath}def - /xyellipse{gstartxy counttomark 1 gt{squarify pop pop 1}if - circle xystroke}def - /ov /xyoval load def /ox /xyellipse load def }% -% -\PSdict@@{% - /dotit{dup currentlinewidth 6 mul div round div - /@ exch def [xydt @] 0 setdash}def - /elldash{dup 4 -1 roll 10 exch div dashit}def - /ovdash{dup 10 dashit}def - /dashit{div round 2 mul div /@ exch def [@ @] 0 setdash}def - /dotcirc{gstartxy cirlen dotit circle xystroke}def - /dashcirc{gstartxy cirlen dashit circle xystroke}def - /dotoval{gstartxy 5 copy ovlen dotit oval xystroke}def - /dashoval{gstartxy 5 copy ovlen ovdash oval xystroke}def - /cirlen{dup 6.283185 mul}bind def - /ovlen{3 -1 roll sub 3 1 roll sub add exch 1.716815 mul sub}def - /dotellipse{gstartxy counttomark 1 gt{squarify pop pop 1}if - cirlen dotit circle closepath xystroke}def - /dashellipse{gstartxy counttomark 1 gt{squarify add 2 div 1} - {1 exch 1 exch}ifelse cirlen elldash circle xystroke}def - /ot /dotellipse load def /od /dashellipse load def - /vt /dotoval load def /vd /dashoval load def }% -% -\PSdict@@{% - /filloval{gstartxy oval xyfill}def - /stfiloval{gstartxy oval xystfil}def - /fillcircle{gstartxy circle xyfill}def - /stfilcircle{gstartxy circle xystfil}def - /fillellipse{gstartxy squarify pop pop 1 circle xyfill}def - /stfilellipse{gstartxy squarify pop pop 1 circle xystfil}def - /squarify{4 copy sub 2 div 3 1 roll sub 2 div translate - add 2 div 3 1 roll add 2 div 2 copy scale - 2 copy add 2 div currentlinewidth exch div setlinewidth - newpath}def - /fe /fillellipse load def /sfe /stfilellipse load def - /fo /filloval load def /sfo /stfiloval load def - /fc /fillcircle load def /sfc /stfilcircle load def }% -% -\PSdict@@{% - /xywidth{.4 pscorrect setlinewidth}bind def - /xydash{[] 0 setdash}bind def /xycap{1 setlinecap}bind def - /xyjoin{1 setlinejoin}bind def /xymiter{10 setmiterlimit}bind def -}% -\PSdict@@{% - /cc{dup exec xychgcol}def - /lw{dup setlinewidth /@l exch def - /xywidth{@l setlinewidth}bind def}def - /lc{dup setlinecap /@c exch def - /xycap{@c setlinecap}bind def}def - /lj{dup setlinejoin /@j exch def - /xyjoin{@j setlinejoin}bind def}def - /ml{dup setmitrelimit /@m exch def - /xymiter{@m setmitrelimit}bind def}def -}% -\PSdict@@{% - /setupDirection{dup -2048 lt{3072 add neg 1024 exch} - {dup 0 lt{1024 add neg -1024}{dup 2048 lt{1024 sub -1024 exch} - {3072 sub 1024}ifelse}ifelse}ifelse atan - dup 180 gt{360 sub}if dup /XYdirection exch def rotate}def - }% -\PSdict@@{% - userdict begin - /gray{setgray}bind def /gray@{setgray}bind def - /rgb{setrgbcolor}bind def /rgb@{setrgbcolor}bind def - /hsb{sethsbcolor}bind def /hsb@{sethsbcolor}bind def - /setcmykcolor where{pop}{/setcmykcolor{dup 3 1 roll dup 5 1 roll - exch sub 1 add 5 1 roll exch sub 1 add 4 1 roll - exch sub 1 add 3 1 roll setrgbcolor}bind def}ifelse - /cmyk{setcmykcolor}bind def /cmyk@{setcmykcolor}bind def - /sethalftone where{/sethalftone load /tone exch def}if - /xycolarray 3 array def /xycolstore{currentrgbcolor 2 -1 0 - {exch xycolarray 3 1 roll put}for}def xycolstore - /xycolor{0 1 2{xycolarray exch get}for setrgbcolor}def - /xypatt{}def /xypattern{cleartomark}bind def - end}% -% -\PSdict@@{end end}% -% -\endgroup% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xyps-pro.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.6 1998/03/06 01:28:05 krisrose -% Releasing (with Y&Y fonts). -% -% Revision 3.3 1996/12/18 10:00:34 ross -% requires larger PostScript dictionary -% uses \xydriversselected@@ for optional loading with OzTeX -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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.1 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-ps.doc b/Master/texmf-dist/source/generic/xypic/xyps-ps.doc deleted file mode 100644 index c4c4bb4d35c..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-ps.doc +++ /dev/null @@ -1,750 +0,0 @@ -%% $Id: xyps-ps.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``PS-PS'' PostScript support. -%% 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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\expandafter\ifx\csname xyps-psloaded\endcsname\empty - \message{not reloaded}\endinput \fi -\expandafter\let\csname xyps-psloaded\endcsname=\empty \xycatcodes - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The included file |xyps-ps.tex| (version\stripRCS$Revision: 3.7 $) -provides support for \PS\ |\special| commands used by the |ps| backend -extension as well as \PS-based options, to produce special effects -not available directly with \TeX. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\paragraph*{\PS\ {\tt\string\special} commands} - -The \PS\ |\special|s which are used by \Xy-ps fall into four broad -classes: -% -\begin{enumerate} -\item execute a piece of code, e.g. to draw some graphic object; -\item add a new \PS\ definition to the existing dictionary of commands; -\item change the value of some parameters, storing them for later use; and -\item read \PS\ commands from a pre-existing file. -\end{enumerate} - -Since different drivers may provide different syntax for these classes -of command, \Xy-ps has different macros to optimize to interface to the -different drivers. Initially these control-sequence names are bound to -macros that do nothing. Upon specifying a driver, they will be bound -to a macro appropriate for that driver. - -\DOCMODE( -\xylet@\PSmacro@@=\eat@ -\xylet@\PSdict@@=\eat@ -\xylet@\PSspecial@@=\eat@ -\xylet@\PSread@@=\eat@ -\xylet@\PSinclude@@=\eat@ -\xylet@\PSraw@@=\eat@ -\xylet@\xyPSobeylines@@=\relax -\xylet@\PSspecialdict@@=\eat@ - -\xydef@\UnloadPSps@{% - \let\PSmacro@@=\eat@ - \let\PSdict@@=\eat@ - \let\PSspecial@@=\eat@ - \let\PSread@@=\eat@ - \let\PSinclude@@=\eat@ - \let\PSraw@@=\eat@ - \let\xyPSobeylines@@=\relax - \let\PSspecialdict@@=\eat@ -} -\DOCMODE) - -Unloading \PS\ requires also turning off the \PS-backend, -if it has been loaded. - -\DOCMODE( -\xydef@\UnloadPS@{\UnloadPSps@ - \expandafter\ifx\csname xypsloaded\endcsname\unknown\PSspecials@false - \else\expandafter\NoPSspecials\fi} -\xylet@\UnloadPS@@=\UnloadPS@ - -%\xyaddunsupport{ps}\UnloadPS@@ -\DOCMODE) - -\DOCMODE( -\ifx\undefined\dvitype@\xydef@\dvitype@{null}\fi -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Some drivers, in particular versions of \Textures\ earlier than 1.7, require -the \PS\ dictionary to be included with every page shipped out. -We do this by providing a routine which rebinds the |\shipout| primitive to -a macro |\xyPSshipout@| which prepends the \Xy-ps \PS\ dictionary to the box -being shipped-out. This routine |\@PSshipout| is called, if necessary, when -the driver has been specified. - -\DOCMODE( -\xylet@\xyrealshipout@=\shipout -\xydef@\xyPSshipout@{\setbox9=\copy\voidb@x - \afterassignment\xyPSshipout@i\setbox9=} -\xydef@\xyPSshipout@i{\ifvoid9 \expandafter\aftergroup\fi\xyPSshipout@ii} -\xydef@\xyPSshipout@ii{\xyrealshipout@\vbox{\XYpredict@@\box9}} - -\xydef@\@PSshipout{\global\let\shipout=\xyPSshipout@ } -\DOCMODE) - -The box register |\box9| is assumed to be a scratch register, used globally -according to \TeX\ conventions. - -When the \PS\ backend is loaded then we need to rebind |\shipout| to include -the full dictionary. - -\DOCMODE( -\xydef@\xyPSshipout@PSii{% - \ifUsePSdict@@\let\XYshipdict@=\includeXYPSdict@@ - \else\def\XYshipdict@{\XYpredict@@\XYdict@@}\fi - \xyrealshipout@\vbox{\XYshipdict@\box9}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -These two control sequences are used in the DVI-driver files -to control when the \PS\ <driver> can be altered. - -\DOCMODE( -\xydef@\firstPS@{%\fixedxydriver@ - \global\let\firstPS@@=\relax \global\let\firstPS@=\relax} -\xylet@\firstPS@@=\firstPS@ -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\subsection{Installation} -% -To install use of \PS\ requires loading the \PS\ dictionary. -However this can only be done when a <driver> is known to be able to -support it. Hence the |\installxyps@| command should be called only from -within a <driver>-file. - -Furthermore, the <driver>-file should define a value for |\installxyps@@| -to including anything specific to that <driver>; even if only -|\let\installxyps@@=\relax|. If |\dumpPSdict| has been specified, -then the dictionary must be written first, so it can be used with the -subsequent processing (see the subsection below). - -\DOCMODE( -\ifx\undefined\dumpPSdict@@ \xylet@\dumpPSdict@@=\relax \fi - -\xydef@\installxyps@{% - \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}\xycatcodes - \installxyps@@ \installxyps@x } - -\xylet@\installxyps@@=\relax -\xylet@\setupxyPS@@=\relax -\xywithoption{ps}{\let\setupxyPS@@=\setupxyPS@} - -\xydef@\installxyps@x{\dumpPSdict@@ - \ifx\xyrealshipout@\undefined \let\xyrealshipout@=\shipout\fi - \ifx \shipout \xyrealshipout@ - \ifUsePSdict@@ \DN@{\includePSmessage@\includeXYPSdict@\message{>}}% - \else \DN@{\XYdict@\endXYdict@}\fi - \else \DN@{\let\xyPSshipout@ii=\xyPSshipout@PSii \@PSshipout}\fi - \let\firstPS@=\relax \next@ - \let\XYpredict@=\relax - \setupxyPS@@ } - -\let\realinstallxyps@x=\installxyps@x -\ifx\undefined\AfterBeginDocument - \def\installxyps@x{\xysetup@@{\realinstallxyps@x}}% -\else - \def\installxyps@x{\AfterBeginDocument{\realinstallxyps@x}}% -\fi -\DOCMODE) - -In case no <driver> was known when a call to the |\installxyps@| method -was queued, e.g. by |\dumpPSdict{}| before any |\xyoption{|<driver>|}|, -then a check is made to see there is now a known <driver> which -supports \PS. If so then this installation is cancelled since another -should follow, otherwise the default <driver> of |dvips| is assumed. -The command |\xyPSdriver#1| is provided to allow users to change this -default <driver>. This may be necessary when multiple <driver>s are -required and the final one specified does not support \PS. - -\DOCMODE( -\xydef@\xydefaultdriver@{dvips} -\xydef@\xyPSdriver#1{\def\xydefaultdriver@{#1}} - -\xydef@\installxyps@orig{\DN@{}% - \ifx\xydriversselected@@\empty - \DN@{\expandafter\defaultinstallps@\expandafter{\xydefaultdriver@}}% - \else \def\do##1{% - \expandafter\ifx\csname##1@xy@ps\endcsname\relax - \DN@{\defaultinstallps@{##1}}}% - \xydriversselected@@ - \else \DN@##1{}\fi\fi \next@ } - -%\xylet@\installxyps@@=\installxyps@orig - -\xydef@\defaultinstallps@#1#2{% - \xywarning@{no driver specified, using #1 }% - \xyrequire{#1}\csname #1@xy@ps\endcsname{}} - -\xydef@\null@xy@ps{\installxyps@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection*{\PS\ escape} -??=[postscript escape] - -An extra <shape> modifier key allows arbitrary \PS\ code -to be applied to the current <object>. -% -\begin{defs} - |[!|<postscript code>|]| & for special effects\cr - |[psxy]| & stores current location.\cr -\end{defs} - -\DOCMODE( -\xydefcsname@{shape [!...]}#1{%\tracingall% - \expandafter\ifx\csname xyps-sloaded\endcsname\empty \DN@{\xyPSescapestyle@{#1}@@}% - \else\ifxyPSshapes@\DN@{\xyPSshapechar@{#1}@@}% - \else \DN@{\xyPScharwarning@}\fi\fi \next@ } -\xydefcsname@{shape [psxy]}{\ifxyPSshapes@\DN@{\xyPSpsxy@}% - \else \DN@{\xyPScharwarning@}\fi \next@ } -\DOCMODE) -% -\noindent -Normally the <postscript code> will be a simple command to alter the -\PS\ graphics state: -e.g. |[!1 0 0 setrgbcolor]| changes the colour used to render parts of -the <object>. -Any number of such <shape> modifiers is allowable, -however it is more efficient -to combine them into a single modifier, whenever possible. - -It is very important that braces |{| and |}| do not -appear explicitly in any <postscript code>, as this may upset the -\Xy-pic <object> parsing. However it is acceptable to have a -control sequence name here, expanding into more -intricate \PS\ code. This will not be expanded until -a later (safe) time. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -Due to differences within the DVI-drivers, such simple \PS\ -commands need not affect every part of an <object>. -In particular the lines, curves and arrowheads generated -by \Xy-pic use a different mechanism, -which should give the same result with all drivers. -This involves redefining some \PS\ procedures -which are always read prior to rendering one of these objects. -One simple way to specify a red line is as follows; -the |xycolor| extension provides more sophisticated support for colour. -The <shape> modifiers described in the previous section also use -this mechanism, so should work correctly with all drivers. - -\begin{code} -\def\colorxy(#1){% - /xycolor{#1 setrgbcolor}def} -... -\connect[!\colorxy(1 0 0)]\dir{-} -... -\end{code} -\displaycode - -\noindent -Note how the braces are inserted within the expansion of the -control sequence |\colorxy|, -which happens after parsing of the <connection>. -The following table shows which graphics parameters are -treated in this way, their default settings, and the type of -\PS\ code needed to change them. -% -\begin{defs} -colour &|/xycolor{0 setgray}def| \cr -line-width&|/xywidth{.4 setlinewidth}def|\kern-7pt \cr -dashing &|/xydash{[] 0 setdash}def| \cr -line-cap &|/xycap{1 setlinecap}def| \cr -line-join &|/xyjoin{1 setlinejoin}def|\kern-7pt \cr -\end{defs} -% -\noindent -This feature is meant primarily for modifying the rendering -of objects specified in \TeX\ and \Xy-pic, not for drawing new objects -within \PS. No guarantee can be given of the current location, -or scale, which may be different with different drivers. -However a good \PS\ programmer will be able to overcome -such difficulties and do much more. To aid in this the special -modifier |[psxy]| is provided to record the location where the -reference point of the current <object> will be placed. -Its coordinates are stored with keys |xyXpos| and |xyYpos|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -When the |\special| is placed the following registers contain important -values: -|\L@p| = horizontal displacement of \Xy-pic reference point from -the \TeX\ reference point (i.e. left-hand end of the box) - of the initial object; -|\D@p| = vertical displacement of \Xy-pic reference point from - the \TeX\ reference point (i.e. the baseline) of the initial object; -|\R@p| = horizontal offset, resulting from <shape> modifiers; -|\U@p| = vertical offset, initially |-\D@p| but alterable - by <shape> modifiers. - -\DOCMODE( -\xydef@\xyPSpsxy@{% - \setboxz@h{\dimen@=\L@p \advance\dimen@-\R@p - \dimen@ii=-\U@p \raise\dimen@ii\hbox to\z@{% - \kern\dimen@\xyPScurrpt@\kern-\dimen@}\boxz@}}% - -\xydef@\xyPScurrpt@{\ifxyPSshapes@\expandafter\xyPScurrpt@@\fi} -\DOCMODE) - -It is necessary to know the current \PS\ location. -Unfortunately the |currentpoint| operator frequently has no value. -The following code overcomes this difficulty. - -Some drivers may need to define this differently... - -\DOCMODE( -\xydef@\xyPScurrpt@@@{\PSspecial@@{xyi}\PSraw@@{userdict begin xyx end}} -\ifx\undefined\xyPScurrpt@@ \xylet@\xyPScurrpt@@=\xyPScurrpt@@@ \fi - -%\xydef@\xyPScurrpt@@@{\PSspecial@@{userdict begin -% 0 0 transform grestore gsave itransform -% /xyYpos exch def /xyXpos exch def end}} - -%\xydef@\xyPScurrpt@@@{% -% \PSspecial@@{0 0 transform grestore gsave itransform }% -% \PSraw@@{userdict begin /xyYpos exch def /xyXpos exch def end}} -\DOCMODE) - -The \PS\ operator called |xyx| is defined below, for storing the -location placed on the stack by |xyi|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection{Technical Note}: -The scoping is achieved by using two |\specials| so that the -resulting \PS\ file should ultimately look like: -\begin{defs1} -|... {| special code before|}| <object> |{|special code after|} ...| -\end{defs1} -The ``code after'' is to cancel the effect, returning the graphics -state to what it was prior to the ``code before''. -Not all DVI-drivers can achieve this sequencing. In particular \OzTeX\ -collects all |\specials| in the DVI-file and places their contents -at the beginning of the \PS\ file: any effect would be cancelled -immediately after it has been established. - -The user can add code to both parts by expressing the <shape> modifier -as follows: -% -\begin{defs1} - ??c![*]\dots|!|<code before>|<>|<code after>|]|\dots\ .\cr -\end{defs1} -% -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Further Technical Note}: -The ``code before'' does two things in addition to that code given -explicitly by the user. Firstly it issues a |gsave| then it opens -a new dictionary on the dictionary stack. The ``code after'' -contains the matching |grestore| after closing the new dictionary. - -Since objects can be built as |\composite|s and diagrams can be nested, -there is the possibility of generating long chains of nested -\PS\ dictionaries. For this reason the dictionary is kept -small, allowing only 8 key-value pairs to be |def|ined within it. -If more are required, the user should define a private -dictionary to hold the extra key-value pairs, making sure that it is -open when its entries need to be accessed. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xywarnifdefined\xyPSshapechar@ -\xywarnifdefined\xyPSsplitshape@ - -{\xyuncatcodes \catcode`@=11 - \gdef\xyPSshapechar@#1@@{\xyPSsplitshape@#1<><>@@}% - \gdef\xyPSsplitshape@#1<>#2<>#3@@{\xyPSsplitPS@{#1}{#2}}} - -%\xydef@\xyPSsplitPS@#1#2{%\aftergroup\show\aftergroup\relax -% \def\xyPSpre@{#1}\def\xyPSpost@{#2}\modPSboxz@ } - -\xydef@\xyPSrawA@#1{\expandafter\xyPSrawAA@ #1{}}% -\xydef@\xyPSrawAA@#1#2{\PSraw@@{{pu #1}xyg #2}% - \PSmessage{{pu #1}xyg #2}}% -\xydef@\xyPSrawZ@#1{\PSraw@@{{#1 pp}xyf}\PSmessage{{#1 pp}xyf}}% -\DOCMODE) - -The \PS\ operators |pu|, |pp|, |xyg| and |xyf| are defined below, -for push/pop of the |XYddict| stack, preceded/followed by a -|gsave|/|grestore| of the \PS\ graphics state. - -\DOCMODE( -\xydef@\modPSboxz@{% - \expandafter\DN@\expandafter{\xyPSpre@{}}\ifx\next@\empty\else - \setboxz@h{\expandafter\xyPSrawA@\expandafter{\xyPSpre@{}}\boxz@ - \expandafter\xyPSrawZ@\expandafter{\xyPSpost@}}\DN@{}\fi}% - -\xydef@\modPSdrop@{% - \expandafter\DNii@\expandafter{% - \expandafter\xyPSrawA@\expandafter{\xyPSpre@{}}}% - \DN@##1{\expandafter\def\expandafter\tmp@\expandafter{\nextii@ ##1}}% - \expandafter\next@\expandafter{\Drop@@}% - \expandafter\DNii@\expandafter{% - \expandafter\xyPSrawZ@\expandafter{\xyPSpost@}}% - \DN@##1{\expandafter\def\expandafter\Drop@@\expandafter{\tmp@ ##1}}% - \expandafter\next@\expandafter{\nextii@}}% - -\xydef@\modPSconnect@{% - \expandafter\DNii@\expandafter{% - \expandafter\xyPSrawA@\expandafter{\xyPSpre@{}}}% - \DN@##1{\expandafter\def\expandafter\tmp@\expandafter{\nextii@ ##1}}% - \expandafter\next@\expandafter{\Connect@@}% - \expandafter\DNii@\expandafter{% - \expandafter\xyPSrawZ@\expandafter{\xyPSpost@}}% - \DN@##1{\expandafter\def\expandafter\Connect@@\expandafter{\tmp@ ##1}}% - \expandafter\next@\expandafter{\nextii@}}% - -\xydef@\xyPSpre@{{}{}} -\xydef@\xyPSpost@{} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Some utility macros for controlling writing to the log-file. - -\DOCMODE( -\xydef@\PSmessage@#1{\W@{PS: #1, direction=\the\Direction}} -\xydef@\PSignore@#1{}% -\xydef@\showPSmessages{\let\PSmessage=\PSmessage@} -\xydef@\hidePSmessages{\let\PSmessage=\PSignore@} -\xylet@\PStracing=\showPSmessages -\hidePSmessages - -\xydef@\PSmacro@#1{\PSmacro@@{#1}\PSmessage{#1}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection*{\PS\ Header file} - -This creates a flag to indicate whether the user wishes to get the \PS\ -dictionary from an external header file. - -\DOCMODE( -\xydef@\includeXYPSdict@@{% - \expandafter\PSinclude@@\expandafter{\xyPSdictname}} -\xydef@\includeXYPSdict@r{\message{PS: includeXYPSdict}\includeXYPSdict@@ - \let\includeXYPSdict@=\relax} -\xylet@\includeXYPSdict@\includeXYPSdict@r - -\xydef@\endXYdict@{} - -\xydef@\includePSmessage@@{\message{<xyps: including \xyPSdictname}} -\xylet@\includePSmessage@=\includePSmessage@@ - -\xydef@\xyPSdictknown@{% -% \immediate\closein\xyPSdictread@ - \immediate\closein\xyread@ - \xywarning@{File \xyPSdictname\space already exists} - \message{ Do you wish to overwrite it \string? y/n }% - \read16 to \next - \DNii@{\xywarning@{You did not type Y or N -- try again please}% - \xyPSdictknown@}% - \DN@{Y }\ifx\next@\next \DNii@{\writePSdict@@}% - \else\DN@{y }\ifx\next@\next \DNii@{\writePSdict@@}% - \else\DN@{n }\ifx\next@\next \DNii@{\cancelPSdict@}% - \else\DN@{N }\ifx\next@\next \DNii@{\cancelPSdict@}% - \fi\fi\fi\fi \nextii@ } - -\xydef@\cancelPSdict@{% - \xywarning@{cancelling dump of PostScript dictionary}} - -\xydef@\noDictmessage@{% - \xywarning@{\dvitype@\space does not support the use of a header file}} -\DOCMODE) - -These macros are also defined in |xyps.doc|. To avoid warning messages -about redefinitions, that mechanism has been disabled. - -\DOCMODE( -\DN@{\csname newif\endcsname\ifUsePSdict@@\DN@{}} - \ifx\undefined\UsePSdict@@true\else\DN@{}\fi \next@ - -\ifx\undefined\xyPSdefaultdict - \xydef@\xyPSdefaultdict{% - \DN@##1.##2.##3@{\gdef\xyPSdictname{xy##1##2dict.pro}}% - \expandafter\next@\xyversion.@}% -\fi - -\ifx\undefined\UsePSheader@ - \xydef@\UsePSheader@#1{% - \DN@{#1}\ifx\next@\empty -% \ifx\xyPSdictname\undefined\xyPSdefaultdict\fi - \else \gdef\xyPSdictname{#1}\fi - \ifx\xyPSdictname\undefined\xyPSdefaultdict\fi - \gdef\xyHeaderMessage@{% - It includes a reference to the PostScript file \xyPSdictname.^^J}% - \UsePSdict@@true}% - \let\UsePSheader=\UsePSheader@ -\fi -\DOCMODE) - -This is used to write the dictionary to a file, suitable for inclusion -as a resource within any \PS\ document. It is fully conforming to -Adobe's document structuring guidelines. - -\DOCMODE( -\xywarnifdefined\xyPS@@ -\xywarnifdefined\xyPS@@@ -{\catcode`|=14 \catcode`\%=12 \catcode`\<=1 \catcode`\>=2 | - \gdef\xyPS@@<%%>\gdef\xyPS@@@<%!>} - -%\xydef@\writePSdict@@{\writePSdict@ \let\writePSdict@@=\relax} -\xydef@\writePSdict@@{\message{PS: writePSdict@@}\writePSdict@ - \def\writePSdict@@{\message{write PS relaxed}}} -{\catcode`|=14 \catcode`\%=12 - \gdef\writePSdict@{{\begingroup| - \immediate\openout\xywrite@=\xyPSdictname \relax - \message{<xyps: dumping \xyPSdictname}| - \def\PSdict@@@##1{\immediate\write\xywrite@{##1}}| - \let\xyPSobeylines@@=\obeyoutlines@ - \let\firstPS@@=\relax - \let\endXYdict@=\relax - \PSdict@@@{\xyPS@@@ PS-Adobe-3.0 Resource-procset}| - \PSdict@@@{\xyPS@@ Title: \xyPSdictname}| - \PSdict@@@{\xyPS@@ Version: REPLACEWITHVERSION}| - \PSdict@@@{\xyPS@@ Creator: Xy-ps backend to Xy-pic}| - \PSdict@@@{\xyPS@@ DocumentSuppliedProcSets: XYdict}| - \ifx\dvitype@\undefined - \PSdict@@@{\xyPS@@ For: use with Xy-pic}\else - \PSdict@@@{\xyPS@@ For: \dvitype@ use of Xy-pic}\fi - \PSdict@@@{\xyPS@@ BeginResource: procset XYdict}| - \def\PSspecialdict@@##1{\PSdict@@@{##1^^J}}| - \let\PSdict@@=\PSdict@@@ \let\xy@begindvi=\literal@| - \UsePSdict@@false\XYpredict@@| - \XYdict@@| - \PSdict@@@{\xyPS@@ EndResource}| - \immediate\closeout\xywrite@ - \message{>}| - \endgroup}}} -\DOCMODE) - -Within the expansion of |\XYdict@| the end-of-line tokens are still active. -The following expansion seems to work on all systems so far tested. - -\DOCMODE( -\xywarnifdefined\obeyoutlines@ -{\catcode`\^^M=\active% - \gdef\obeyoutlines@{\catcode`\^^M=\active \def^^M{^^J}% - \newlinechar=`\^^J\obeyspaces}} -\DOCMODE) - -The dictionary of \PS\ commands is split into two pieces according to whether -they are relevent to general \PS\ effects or only to the \PS\ backend. -These pieces are generated from code within the files |xyps-pro.tex| and -|xypsdict.tex|. -These files have corresponding |.doc| versions for documentation. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The following commands cause the parts of the \PS\ dictionary to be read -from the appropriate files. If |\ifUsePSdict@@| gives |\iftrue| then there -may be no need to do anything, since the definitions will be subsequently -loaded from the header file. Normally it is only necessary to read these -files once, using |\XYpredict@|. However some <driver>s may need it more -frequently, so instead call |\XYpredict@@| directly. - -\DOCMODE( -\xydef@\XYpredict@@{\ifUsePSdict@@\DN@{}\else - \DN@{\xy@begindvi{\xyinputorelse@{xyps-pro}% - {\xyerror@{Could not load xyps-pro}{}}\xyuncatcodes}}% - \next@ - \DN@{\xy@begindvi{\xyinputorelse@{xypspatt}% - {\xyerror@{Could not load xypspatt}{}}\xyuncatcodes}}\fi - \next@ } - -\xydef@\XYpredict@r{\XYpredict@@ \let\XYpredict@=\relax \installxyps@} -\xylet@\XYpredict@\XYpredict@r - -\xydef@\XYdict@{\XYdict@@\def\XYdict@{\message{PS relaxed}}}% -\xydef@\XYdict@@{\DN@{\xyinputorelse@{xypsdict}% - {\xyerror@{Could not load xypsdict}{}}\xyuncatcodes}% - \expandafter\xy@begindvi\expandafter{\next@}} - -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This command is for use in macro-packages, providing an easy way to force -the dictionary to load, when it has not done so using the usual mechanisms. - -\DOCMODE( - -\xydef@\forceload@XYdict{% - \let\includeXYPSdict@=\includeXYPSdict@r - \let\XYpredict@=\XYpredict@r - \let\XYdict@=\XYdict@@ \expandafter\installxyps@ } - -\DOCMODE) - - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Extensions} - -Several included files handle standard \PS\ implementations of -\Xy-pic extensions. - -A conditional |\ifxyPSshapes@| is used to indicate whether the special shape -effects implemented in |xyps-r.tex| can actually be fully supported by the -current driver. When not available, then an attempt to use these effects -simply results in a warning message. -After two attempts the warning message ``turns itself off''; -subsequent attempts are simply ignored cleanly. - -\DOCMODE( -\xynew@{if}\ifxyPSshapes@ \xyPSshapes@true - -\xydef@\xyPScharwarning@@{\xyPScharmessage@ - \gdef\xyPScharwarning@@{\xyPScharmessage@ - \xywarning@{...no further PostScript warnings will be given}% - \global\let\xyPScharwarning@@=\relax }} - -\xydef@\xyPScharmessage@{\xywarning@{% - the current <driver> does not fully support PostScript effects}}% -\DOCMODE) - -\paragraph*{Allow new \PS\ effects to be defined.} -% -This section describes how |\newxyPSshape| is used to define a new effect -which is available only in \PS; \ie\ having no analogue elsewhere within -\Xy-pic. - -The new effect will be called via |[|<name>|]|, which gets interpreted as -referring to |\csname xyshape@|<name>|@\endcsname|. -Hence a control sequence of this form must first be created, -if it does not already exist. -Its initial expansion is simply |\xyundefinedEffect@{|<name>|}{}@@| -which produces a warning message. - -\DOCMODE( -\xydef@\newxyshape#1#2#3{% - \DN@{#3}\ifx\next@\empty - \xydefcsname@{shape [#1]}{\csname xyshape@#1@\endcsname}% - \else \expandafter\def\csname shape [#1]\endcsname{% - \csname xyshape@#1@\endcsname}\fi - \DN@{#2}\ifx\next@\empty - \expandafter\def\csname xyshape@#1@\endcsname{% - \xyundefinedEffect@{#1}{}@@}% - \else \expandafter\def\csname xyshape@#1@\endcsname{#2}\fi } - -\xydef@\xyundefinedEffect@#1#2@@{% - \xywarning@{The #1 #2 effect is not implemented with the current driver}}% -\DOCMODE) - -When an implementation of the effect is available then -|\csname xyshape@|<name>|@\endcsname| is rebound -to |\csname xyPSshape@|<name>|@\endcsname|, -which expands to the contents of |#2| in |\newxyPSshape#1#2|. -If |#2| is empty then the expansion is the |\xyPSnotimplemented@@`|<name>|'@@| -warning message, which is especially useful during development. - -\DOCMODE( -\xydef@\newxyPSshape#1#2{% - \expandafter\DN@\expandafter{\csname shape [#1]\endcsname}% - \DNii@{\relax}\ifx\next@\nextii@ \newxyshape{#1}{}\relax\fi - \expandafter\DNii@\expandafter{\csname xyPSshape@#1@\endcsname}% - \expandafter\def\nextii@{#2}% - \ifx\nextii@\empty\expandafter\def\next@{\xyPSnotimplemented@@`#1'@@}% - \else - \edef\tmp@{\noexpand\let\expandafter\noexpand\next@ - \expandafter\noexpand\nextii@}% - \expandafter\tmp@\fi } - -\xydef@\xyPSnotimplemented@@#1@@{% - \xywarning@{This PostScript effect is not implemented yet}}% - -\xydef@\xyPSnotfinished@@{% - \xywarning@{This effect is not reliable yet; box sizes may be wrong}}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xyps-ps.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% 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/19 03:50:08 ross -% Maintenance release. -% -% Revision 3.3 1996/12/18 09:55:56 ross -% improvements to the file-loading commands -% more robust installation procedures -% shorter tracing messages -% dictionary no longer loads multiply -% -% 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.1 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-r.doc b/Master/texmf-dist/source/generic/xypic/xyps-r.doc deleted file mode 100644 index a329cce379a..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-r.doc +++ /dev/null @@ -1,226 +0,0 @@ -%% $Id: xyps-r.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``PostScript Rotations and Scaling''. -%% Copyright (c) 1993-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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\expandafter\ifx\csname xyps-rloaded\endcsname\empty - \message{not reloaded}\endinput \fi -\expandafter\let\csname xyps-rloaded\endcsname=\empty \xycatcodes - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Rotations and scaling} - -The included file |xyps-r.tex| (version \stripRCS$Revision: 3.7 $) provides -\PS\ support for the effects defined in the |rotate| extension described -in~\S??g[:rotate]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The \PS\ style methods are required, so ensure that they are loaded. - -\DOCMODE( -\expandafter\ifx\csname xyps-sloaded\endcsname\empty\else - \xyinputorelse@{xyps-s}{\xyerror@{Could not load xyps-s}{}}% - \xycatcodes\fi -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This file is loaded and its effects are activated automatically whenever -|\xyoption{rotate}| is requested and the current <driver> supports -\PS\ rotations. Should there be any need to turn off this support, -the following commands are available; they obey usual \TeX\ groupings. -% -\begin{defs} -|\NoPSrotate| & remove \PS\ support\kern-50pt\cr -|\UsePSrotate| & reinstate \PS. -\end{defs} -% -Without \PS\ support diagrams can be expected to be displayed unrotated -and unscaled. -These commands are provided primarily for testing and trouble-shooting; -\eg~with <driver> configurations untested by the authors of \Xy-pic, -who should be notified of persistent difficulties. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Installation} - -Call the following macro to allow the \PS\ mechanisms to be used. - -\DOCMODE( -\xydef@\installPSrotscale@{\installPSstyle@ - \let\xyRotate@@=\xyPSrotate@@ -% \let\xySpecialRotate@@=\xyPSspecialRotate@ - \let\doSpecialRotate@@=\doPSspecialRotate@@ -% \let\xyRotnamed@=\xyPSpsxy@ -% \let\xyRot@named@=\xyPSrot@named@@ - \let\xyscale@@=\xyPSscale@@ - \xyPSshapes@true - \xyuncatcodes } - -\xydef@\UsePSrotate{\installPSrotscale@} -\xydef@\NoPSrotate{\UnloadRotate@\relax} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -All effects defined in the |rotate| extension can be implemented using a \PS\ -<driver>. However different <driver>s need not handle things in the same way; -different \PS\ code may be required to match the specific environment used -by the <driver>. - -This file provides generic \PS\ code which is known to work correctly with -most drivers. It is written so as to indicate where modifications may be -made to accomodate specific <driver>s. For such driver-specific variations, -consult the appropriate <driver>-file, called |xy|<driver>|.doc|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Transform lists} - -\DOCMODE( -\xydef@\xyPSpretransform@{\xyPSrawA@{\preXYtransform@@}} -\xydef@\xyPSposttransform@{\xyPSrawZ@{\postXYtransform@@}} - -\let\preXYtransform@=\xyPSpretransform@ -\let\postXYtransform@=\xyPSposttransform@ - -\xydef@\xyPSrotSplit@{% - \expandafter\def\expandafter\preShape@@\expandafter{\xyPSpre@}% - \expandafter\def\expandafter\postShape@@\expandafter{\xyPSpost@}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Rescaling} - -\DOCMODE( -\xydef@\xyPSscale@@#1#2{% - \xyPSsplitPS@{\xyscale@start(#1,#2)}{\xyscale@end}% - \xyPSrotSplit@\xyPSpsxy@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Rotations} - -\DOCMODE( -\xydef@\xyPSrotate@@#1{% - \xyPSsplitPS@{\xyrot@start(#1 xyd)}{\xyrot@end}% - \xyPSrotSplit@\xyPSpsxy@ } - -\xydef@\xyPSspecialRotate@#1{% - \xyPSsplitPS@{\xyrot@start(#1)}{\xyrot@end}\xyPSrotSplit@\xyPSpsxy@ } - -\xydef@\doPSspecialRotate@@#1@@{\xyPSspecialRotate@{#1}} -\DOCMODE) - -The \PS\ operator |xyr| is defined in |xyps-ps.doc|, to store the given -parameter as a rotation angle. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Shearing} - -This feature is not implemented yet. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{PostScript commands} - -The \PS\ codes to start the rotation or scaling are given as functions, -|xyrot@start| and |xyscale@start| with arguments to include a specification -of the rotation-angle or scaling factors. - -\DOCMODE( -\xydef@\xyRotScale@@{% - \def\xyrot@start(##1){{xyt ##1\space xyr}}% - \def\xyscale@start(##1,##2){{xyt ##1\space##2\space xys}}% - \def\xyrot@end{}\def\xyscale@end{}} -\DOCMODE) - -These strings are placed using |\xyPSsplitPS@| so as to correctly -occur before and after the code for the actual <object> being typeset. -This is always followed by |\xyPSpsxy@|, which results in \PS\ code -to identify the current position, storing it with keys |xyXpos| and |xyYpos| -so as to be accessible to the code for the rotation or scaling. - -A specific <driver> must either call |\xyRotScale@@| to use this default -mechanism, or define its own macro to be called at installation time, -which sets alternative expansions to |\xyrot@start(#1)|, -|\xyscale@start(#1,#2)|, |\xyrot@end| and |\xyscale@end|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xyps-r.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.3 1996/12/18 10:05:50 ross -% minor improvements to file-loading commands -% -% 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. -% -% Revision 2.9 1994/06/09 14:38:56 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% Revision 2.9 1994/06/09 14:38:56 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% NEW for version 2.9 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-s.doc b/Master/texmf-dist/source/generic/xypic/xyps-s.doc deleted file mode 100644 index 990f03d6253..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-s.doc +++ /dev/null @@ -1,144 +0,0 @@ -%% $Id: xyps-s.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Style extension'' PostScript support. -%% 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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\expandafter\ifx\csname xyps-sloaded\endcsname\empty - \message{not reloaded}\endinput \fi -\expandafter\let\csname xyps-sloaded\endcsname=\empty \xycatcodes - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This included file (version \stripRCS$Revision: 3.7 $) provides a \PS\ -interface for the effects defined in the |style| extension. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\paragraph*{\PS\ Style lists} - -Note: The contents of the style lists |\preXY@style@| and |\postXY@style@| -should be `raw' \PS\ code. - -This prevents |\special|s from being inserted twice, once by |\Connect@@| -and once by |\Drop@@|, with straight lines using |\xyPSstraight@|. - -\DOCMODE( -\xydef@\xykillstyles@@{\Unloadstyle@}% -%\xydef@\xykillstyles@@{% -% \let\xypre@Style@@=\relax \let\xypost@Style@@=\relax} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{\PS\ Escape Style} - -\DOCMODE( -\xywarnifdefined\xyPSescapestyle@ -\xywarnifdefined\xyPSsplitescape@ - -{\xyuncatcodes \catcode`@=11 - \gdef\xyPSescapestyle@#1@@{\xyPSsplitescape@#1<><>@@}% - \gdef\xyPSsplitescape@#1<>#2<>#3@@{\xyescape@@{#1}{#2}}} - -\xydef@\xyPSsplitPS@#1#2{% - \def\xyPSpre@{#1}\def\xyPSpost@{#2}\modPSboxz@ } - -\xydef@\xyescape@@#1#2{\checkXyStyle@ - \applyFIFOstyle@\prexyescape@{#1}\postxyescape@{#2}} - -\xydef@\prexyescape@{\xyescapeSpecial@} -\xydef@\postxyescape@{\xyescapeSpecial@} - -\xylet@\xyescapeSpecial@=\eat@ -\let\xyescapeSpecial@=\addtostyletoks@ -\DOCMODE) - - - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Installation} - -The <driver>-file must call the following macro to rebind a control sequence -defined in |xystyle|, thereby allowing the \PS\ mechanisms to be used. - -\DOCMODE( -\xydef@\installPSstyle@{% -% \let\preXYstyle@=\xyPSprestyle@@ -% \let\postXYstyle@=\xyPSpoststyle@@ - \def\preXYstyle@@{\xyPSpre@}% - \let\xydoprestyles@=\xyPSrawstyleA@ - \let\xydopoststyles@=\xyPSrawZ@ - \let\xykillstyles@=\xykillstyles@@ - } -\xydef@\xyPSrawstyleA@#1{\xyPSrawA@{{#1}{}}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xyps-s.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.3 1996/12/18 10:07:44 ross -% style-handling code moved to xyps-ps -% minor improvements to file-loading commands -% -% 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. -% -% Revision 2.9 1994/06/09 14:38:56 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% Revision 2.9 1994/06/09 14:38:56 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% NEW for version 2.9 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps-t.doc b/Master/texmf-dist/source/generic/xypic/xyps-t.doc deleted file mode 100644 index 2140cd7e002..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps-t.doc +++ /dev/null @@ -1,168 +0,0 @@ -%% $Id: xyps-t.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``Pattern and Tile extension'' PostScript support. -%% 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@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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\expandafter\ifx\csname xyps-tloaded\endcsname\empty - \message{not reloaded}\endinput \fi -\expandafter\let\csname xyps-tloaded\endcsname=\empty \xycatcodes - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Patterns and tiles} - -The included file |xyps-t.tex| (version \stripRCS$Revision: 3.7 $) provides -\PS\ support for the effects defined in the |tile| extension described -in~\S??g[:tile]. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The \PS\ style methods are required, so ensure that they are loaded. - -\DOCMODE( -\expandafter\ifx\csname xyps-sloaded\endcsname\empty\else - \xyinputorelse@{xyps-s}{\xyerror@{Could not load xyps-s}{}}% - \xycatcodes\fi -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This file is loaded and its effects are activated automatically whenever -|\xyoption{tile}| is requested and the current <driver> supports -\PS\ patterns. Should there be any need to turn off this support, -the following commands are available; they obey usual \TeX\ groupings. -% -\begin{defs} -|\NoPStiles| & remove \PS\ support\kern-50pt\cr -|\UsePStiles| & reinstate \PS. -\end{defs} -% -Without \PS\ support tile patterns can be expected to be displayed as -solid black. -These commands are provided primarily for testing and trouble-shooting; -\eg~with <driver> configurations untested by the authors of \Xy-pic, -who should be notified of any difficulties. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Installation} - -Installation consists of rebinding the macros |\xypattern@| and -|\newxypattern@| and of reloading the standard patterns to include a -description for \PS. This installation should be delayed till after -|pattern| and the \PS\ <driver> have been installed. - -\DOCMODE( -\xydef@\installPSpatterns@{\installPSstyle@ - \let\xypattern@=\xyPSpattern@@ - \let\xypatternwarning@=\relax - \xystandardpatterns@ - \xyuncatcodes } - -\xylet@\UnloadPSpatterns@=\Unloadpattern@ - -\xydef@\UsePStiles{\installPSpatterns@} -\xydef@\NoPStiles{\UnloadPSpatterns@\relax} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -All effects defined in the |tile| extension can be implemented using -the \PS\ dictionary, loaded by |xyps-ps|. -This file provides ``generic'' \PS\ code which is known to work -correctly with most drivers. No attempt is made to provide special -code for particular drivers; for driver-specific variations, consult -the appropriate |xy|<driver>|.doc| file. - -\DOCMODE( -\xydef@\xyPSnewpattern@#1#2#3#4#5{% - \expandafter\DN@\expandafter{\csname shape [#1]\endcsname}% - \DNii@{\relax}\ifx\next@\nextii@\newxypattern{#1}{}\relax\fi - \DNii@{#4}\ifx\nextii@\empty - \expandafter\DNii@\expandafter{\csname xyPSshape@#1@\endcsname}% - \expandafter\def\nextii@{\xyPSpattern@{#2 #3}}\else - \expandafter\DNii@\expandafter{\csname xyPSshape@#1@\endcsname}% - \expandafter\def\nextii@{\xyPSpattern@{#4}}\fi - \ifx\nextii@\empty\expandafter\def\next@{\xyPSnotimplemented@@`#1'@@}% - \else - \edef\tmp@{\noexpand\let\expandafter\noexpand\next@ - \expandafter\noexpand\nextii@}\expandafter\tmp@\fi } - -\xydef@\xyPSpattern@{\ifPSspecials@\expandafter\xyPSpattern@@ - \else\expandafter\eat@\fi}%\xyPSpattern@@} - -\xydef@\xyPSpattern@@#1{\bgroup \checkXyStyle@ - \def\preStyle@@{\expandafter\addtostyletoks@\expandafter{\xyPSpre@}}% - \def\postStyle@@{\expandafter\addtostyletoks@\expandafter{\xyPSpost@}}% - \let\modPSboxz@=\modXYstyle@ \xyPS@pattern@@{#1}% - \toks@={\egroup\let\xy@style@=\relax \def\Drop@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\Drop@@}\def\Connect@@}% - \expandafter\addtotoks@\expandafter{\expandafter{\Connect@@}}% - \the\toks@ } - -\xydef@\xyPS@pattern@@#1{\xyPSsplitPS@{{#1}sp}{}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xyps-t.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.4 1997/05/18 01:13:24 ross -% Essential bugfixes. -% -% Revision 3.3 1996/12/18 10:05:50 ross -% minor improvements to file-loading commands -% -% 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.0 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyps.doc b/Master/texmf-dist/source/generic/xypic/xyps.doc deleted file mode 100644 index b083c7250ce..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyps.doc +++ /dev/null @@ -1,1209 +0,0 @@ -%% $Id: xyps.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``PostScript backend''. -%% 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@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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -\ifx\xyloaded\undefined \input xy \fi - -\xyprovide{ps}{PostScript backend}{\stripRCS$Revision: 3.7 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\Xy-ps is a `back-end' which provides \Xy-pic with the ability to produce DVI -files that use \PS\ |\specials| for drawing rather than the \Xy-pic fonts. - -In particular this makes it possible to print \Xy-pic DVI files on -systems which do not have the ability to load the special fonts. The -penalty is that the generated DVI files will only function with one -particular DVI driver program. Hence whenever \Xy-ps is activated it -will warn the user: -$$ -\xy - *+\txt<.8\hsize>{\Xy-pic Warning: The produced DVI file is "not - portable": It contains \PS\ {\tt\string\special}s for <one - particular> driver} - *\frm{-} -\endxy -$$ -A more complete discussion of the pros and cons of using this backend -is included below. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -%\paragraph*{Declarations.} -% -%\DOCMODE( -%\xyinputorelse@{xyps-ps}{\xydrivernoload@{xyps-ps}} -%\DOCMODE) -% -%\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\paragraph*{xyps-ps.tex:} -%??c[xyps-ps.tex] -%\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\paragraph*{xyps-ps.doc:} -%??c[xyps-ps.doc] -%\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\inputdoc!{xyps-ps.doc} -% -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Choosing the DVI-driver} -??=[choosing DVI-driver] - -Including |\xyoption{ps}| within the document preamble, tells \Xy-pic that -the \PS\ alternative to the fonts should be used, provided the means to do -this is also specified. This is done by also specifying a dvi-driver which -is capable of recognising and interpreting |\special| commands. Although -the file |xyps.tex| is read when the option request is encountered, the -macros contained therein will have no effect until an appropriate driver -has also been loaded. - -With \LaTeXe\ both the backend and driver may be specified, along with other -options, via a single |\usepackage| command, -see~\cite[page~317]{GMS94:LaTeXC}; e.g. -% -\begin{defs1} -|\usepackage[ps,textures,color,arrow]{xy}| -\end{defs1} -\noindent\unskip -% -The rebindings necessary to support \PS\ are not effected until the -|\begin{document}| command is encountered. This means that an alternative -driver may be selected, by another |\xyoption{|<driver>|}|, at any time -until the |\begin{document}|. Only the macros relevant to last named -<driver> will actually be installed. - - -The following table describes available support for \PS\ drivers. -Please consult the individual driver sections in part~??g[:drivers] for the -exact current list. -For each <driver> there is a corresponding file named |xy|<driver>|.tex| -which defines the necessary macros, as well as a documentation file named -|xy|<driver>|.doc|. The spelling is all lower-case, designed to be both -descriptive and unique for the 1st 8 characters of the file names. - -\vspace{.5pc}\noindent -\begin{tabular}{@{\hspace{1pt}}ll@{\hspace{0pt}}} -\hline -<driver> & \hfil Description\hfil \\ -\hline -\tt dvips & Tomas Rokicki's \dvips \\ -\tt dvips & Karl Berry's |dvipsk| \\ -\tt dvips & Thomas Kiffe's \dvips\ for Macintosh\\ -\tt textures & Blue Sky Research's \Textures\ v1.7+ \\ -\tt 16textures & Blue Sky Research's \Textures\ v1.6 \\ -\tt oztex & Andrew Trevorrow's \OzTeX\ v1.8+ \\ -\tt 17oztex & Andrew Trevorrow's \OzTeX\ v1.7 \\ -%\tt ln & Digital Corp. printers & $-$ \\ -%\tt dvitops &James Clark's dvitops & $?$ \\ -%\tt emtex & Eberhard Matte's em-\TeX & $-$ \\ -\hline -\end{tabular} -\vspace{.5pc} -%$*$ denotes full support, for all the features the driver can handle; -%$?$ denotes that some features have not been tested, but may still work; -%$-$ denotes no support as yet. - -Other DVI-drivers may also work using one of these files, if they use -conventions similar to |dvips|, \OzTeX\ or \Textures. Alternatively -it should not be too difficult to write the files required, using these -as a basis indicating the type of information needed to support the -specific |\special| commands. Anyone attempting to do this should inform -the author and convey a successful implementation to him for inclusion -within the \Xy-pic distribution. - -\NOTE: In some previous versions of \Xy-pic the \PS\ backend and driver -were loaded simultaneously by a command of the form -|\UsePSspecials{|<driver>|}|. For backward-compatibility these commands -should still work, but now loading the latest version of the given -<driver>. However their future use is discouraged in -favour of the option-loading mechanism, via |\xyoption{|<driver>|}|. -This latter mechanism is more flexible, both in handling upgrades of the -actual driver support and in being extensible to support more general -forms of |\special| commands. - -\medskip - -Once activated the \PS\ backend can be turned off and on again at will, -using the user following commands: -% -\begin{defs} - ??c![\NoPSspecials] & cancels \PS \cr - ??c![\UsePSspecials{}] & restores \PS -\end{defs} -\noindent\unskip -% -These obey normal \TeX\ scoping rules for environments; hence it is -sufficient to specify |\NoPSspecials| within an environment or grouping. -Use of \PS\ will be restored upon exiting from the environment. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The default level of \PS\ is [4], see below. - -\DOCMODE( -\xydef@\UsePSspecials{\DNii@{{[4]}}\xyFN@\UsePSspecials@i} -\xydef@\UsePSspecials@i{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\UsePSspecials@i}% - \else\ifx [\next \DN@[##1]{\DNii@{{[##1]}}\xyFN@\UsePSspecials@i}% - \else\ifcat 5\noexpand\next \DN@##1{\DNii@{{[##1]}}\xyFN@\UsePSspecials@i}% - \else\ifx\bgroup\next \DN@{\expandafter\UsePS@specials\nextii@}% - \else \DN@{\UsePS@specials{[4]}}% - \fi\fi\fi\fi \next@ } -\DOCMODE) - -\TODO: There is redundancy between here and |\UsePSspecials@|. -The value of |\setupxyPS@| \PS\ level could be set here rather than later -in |\PSspecials@|. - -\DOCMODE( -\xydef@\UsePS@specials#1#2{% - \ifx\empty\whichPSspecials@ - \DN@{#2}\ifx\next@\empty - \else - \expandafter\let\expandafter\next\csname#2@\endcsname -% \ifx\next\relax \DN@{\xyerror@{PostScript specials for `#2' not supported}{}}% - \ifx\next\relax \DN@{\UsePSspecials@{#2}{}}% -% \else \DN@{\expandafter\UsePSspecials@\csname#2@\endcsname#1}\fi - \else \DN@{\UsePSspecials@{#2}{#1}}\fi - \fi - \else - \DN@{#2}\ifx\next@\empty \DN@{\PSspecials@true}% - \else -% \edef\next@{\expandafter\string\csname#2@\endcsname}% - \DN@{#2}% - \edef\nextii@{\expandafter\string\whichPSspecials@}% - \ifx\next@\nextii@\DN@{\PSspecials@true}% - \else - \ifx\firstPS@@\relax - \DN@{\xyerror@{Only one PS <driver> allowed: \dvitype@ already loaded}{}}% - \else - \expandafter\let\expandafter\next\csname#2@\endcsname - \ifx\next\relax - \DN@{\xyerror@{PostScript specials for `#2' not supported}{}}% - \else - \xywarning@{Changing PS <driver> to #2 }% -% \DN@{\expandafter\UsePSspecials@\csname#2@\endcsname#1}% - \DN@{\UsePSspecials@{#2}{#1}}% - \fi - \fi - \fi - \fi - \fi \next@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The following control sequences will also load the corresponding driver. -They are retained for backwards compatibility only; -they may be phased out of future releases: -% -\begin{defs} - |\UseDVIPSspecials| & |dvips| \cr - |\UsePostScriptSpecials| & |dvips|\cr - |\UseTexturesPSspecials| & |Textures| \cr - |\UseTexturesSpecials| & |Textures| -\end{defs} -% -\DOCMODE( -\xydef@\UseDVIPSspecials{\UsePSspecials@\dvips@} -\xydef@\UseTexturesPSspecials{\UsePSspecials@\Textures@} -\xydef@\UseTexturesSpecials{\UsePSspecials@\Textures@} -\xydef@\UsePostScriptSpecials{\UsePSspecials@\dvips@} -\xydef@\UseOzTeXspecials{\UsePSspecials@\OzTeX@} -\xydef@\UseDVITOPSspecials{\UsePSspecials@\dvitops@} -%\xylet@\UseDVIPSSpecials=\UseDVIPSspecials -%\xylet@\UsePSspecials=\UsePostScriptSpecials -%\xylet@\UseTeXturesPSspecials=\UseTexturesPSspecials -%\xylet@\UseTexturesSpecials=\UseTexturesPSspecials -%\xylet@\UseTeXturesSpecials=\UseTexturesSpecials -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\message{drivers,} -\DOCMODE) - -First the driver is specified by |\UsePSspecials{|<driver>|}|. -This causes a special driver file to be read. -Use of fonts is restored at any point by calling |\NoPSspecials|, -after which use of \PS\ is re-instated by simply |\UsePSspecials|, -without need of an argument. -The commands described above for specific drivers are simply aliases -for |\UsePSspecials@{|<driver>|}|. - -Once the new bindings have been setup, then the use of |\special|s is -governed by the value of the conditional |\ifPSspecials@|. - -\DOCMODE( -\xydef@\loadPSdriver@#1#2{\xyinputorelse@{xy#1}% - {\xyrequire{#2}\expandafter\ifx\csname xy#2loaded\else % - {\xyerror@{Unable to load xy#1.tex for #2 driver}{}}\fi}} - -\xydef@\dvips@{\loadPSdriver@{ps-dvi}{dvips}} -\xydef@\Textures@{\loadPSdriver@{ps-txt}{Textures}} -\xydef@\OzTeX@{\loadPSdriver@{ps-oz}{OzTeX}} -\xydef@\dvitops@{\loadPSdriver@{ps-dto}{dvitops}} -\xydef@\dvipsone@{\loadPSdriver@{ps-one}{dvipsone}} -%\xydef@\dviwindo@{\loadPSdriver@{ps-wdo}{dviwindo}} -%\xydef@\dviwin@{\loadPSdriver@{ps-win}{dviwin}} -%\xydef@\pubps@{\loadPSdriver@{ps-pub}{pubps}} -\DOCMODE) - -The driver file contains definitions which are specific -to the particular driver. -Note that some drivers may not be able to support all of the \PS\ -effects that can be requested from within \Xy-pic. When an unsupported effect -is encountered, it is simply ignored; a warning message will be produced -unless too many such messages have already been issued. - -\DOCMODE( -\global\newif\ifPSspecials@ -%\xydef@\UsePSspecials@#1{\gdef\whichPSspecials@{#1}\xyFN@\PSspecials@} -\xydef@\UsePSspecials@#1{\def\whichPSspecials@{#1}% - \DN@{\Textures@}\ifx\next@\whichPSspecials@ - \DN@##1{\xyrequire{textures}% - \def\whichPSspecials@{textures}\xyps@options}% - \else\DN@{\dvips@}\ifx\next@\whichPSspecials@ - \DN@##1{\xyrequire{dvips}% - \def\whichPSspecials@{dvips}\xyps@options}% - \else\DN@{\OzTeX@}\ifx\next@\whichPSspecials@ - \DN@##1{\xyrequire{oztex}% - \def\whichPSspecials@{oztex}\xyps@options}% - \else\DN@{\dvitops@}\ifx\next@\whichPSspecials@ - \DN@##1{\xyrequire{dvitops}% - \def\whichPSspecials@{dvitops}\xyps@options}% - \else - \DN@##1{\xyrequire{ps}\xyrequire{#1}\xyps@options}% - \fi\fi\fi\fi \next@ } - -\xydef@\xyps@options{% - \xyrequire{ps}\xyrequire{line}\xyrequire{color}\xyrequire{crayon}% - \xyrequire{rotate}\xyrequire{tile}\xyrequire{frame}\xyuncatcodes } -\xydef@\whichPSspecials@{} - -\xydef@\NoPSspecials{\xyPSwarning@{off}% - \PSspecials@false\aftergroup\resetPS@} -\xydef@\resetPS@{\ifPSspecials@\xyPSwarning@{back on}\fi} -\xydef@\UsePSspecials@x{\PSspecials@true\resetPS@} - -\xydef@\xyPSwarning@#1{\xywarning@{PostScript switched #1}} -% -%\xydef@\xyPSraw@{% -% \ifPSspecials@\expandafter\PSraw@@\else\expandafter\eat@\fi } -\DOCMODE) - -% To install the back-end requires loading the \PS\ dictionary. -% However this can only be done when a <driver> is known to be able to -% support it. Hence the following command should be called only from -% within a <driver>-file. -% -% \DOCMODE( -% \DN@{\csname newif\endcsname\ifUsePSdict@@\DN@{}} -% \ifx\undefined\UsePSdict@@true\else\DN@{}\fi \next@ -% \DOCMODE) -% -% Furthermore, the <driver>-file should define a value for |\installxyps@@| -% to including anything specific to that <driver>; even if only -% |\let\installxyps@@=\relax|. If |\dumpPSdict| has been specified, -% then the dictionary must be written first, so it can be used with the -% subsequent processing. -% -% \DOCMODE( -% \xylet@\dumpPSdict@@=\relax -% -% \xydef@\installxyps@{% -% \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}\xycatcodes -% \installxyps@@ \installxyps@x -% \global\let\UsePSspecials=\UsePSspecials@x -% % \let\installxyps@@=\eat@ -% \PSspecials@true } -% -% \xylet@\installxyps@@=\relax -% -% \xydef@\installxyps@x{\dumpPSdict@@ -% \ifx\xyrealshipout@\undefined \let\xyrealshipout@=\shipout\fi -% \ifx \shipout \xyrealshipout@ -% \ifUsePSdict@@ \DN@{\includePSmessage@\includeXYPSdict@\message{>}}% -% \else \DN@{\XYdict@\endXYdict@}\fi -% \else \DN@{\let\xyPSshipout@ii=\xyPSshipout@PSii \@PSshipout}\fi -% \let\firstPS@=\relax \next@ -% \let\XYpredict@=\relax \setupxyPS@ } -% \DOCMODE) -% -% In case no <driver> was known when a call to the |\installxyps@| method -% was queued, e.g. by |\dumpPSdict{}| before any |\xyoption{|<driver>|}|, -% then a check is made to see there is now a known <driver> which -% supports \PS. If so then this installation is cancelled since another -% should follow, otherwise the default <driver> of |dvips| is assumed. -% The command |\xyPSdriver#1| is provided to allow users to change this -% default <driver>. This may be necessary when multiple <driver>s are -% required and the final one specified does not support \PS. -% -% \DOCMODE( -% \xydef@\xydefaultdriver@{dvips} -% \xydef@\xyPSdriver#1{\def\xydefaultdriver@{#1}} -% -% \xydef@\installxyps@orig{% -% \DN@{null}\ifx\next@\currentxydriver@\DN@{% -% \expandafter\defaultinstallps@\expandafter{\xydefaultdriver@}}% -% \else \DN@{}% -% \expandafter\expandafter\expandafter\ifx -% \expandafter\csname\currentxydriver@ @xy@ps\endcsname\relax -% \DN@{\expandafter\defaultinstallps@\expandafter{\xydefaultdriver@}}% -% \else \DN@##1{}\fi -%\xywarning@{will install \currentxydriver@\space shortly}%}% -% \fi \next@ } -% -% %\xylet@\installxyps@@=\installxyps@orig -% -% \xydef@\defaultinstallps@#1#2{% -% \xywarning@{no driver specified, using #1 }% -% \xyoption{#1}\csname #1@xy@ps\endcsname{}} -% -% \xydef@\null@xy@ps{\installxyps@} -% \DOCMODE) - -Unloading the \PS-backend is handled by the |unload| <driver>. - -\DOCMODE( -\xyaddunsupport{ps}{\csname UnloadPS@@\endcsname} -\DOCMODE) -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{adding new drivers} -??=[new drivers] - -Other drivers can be added by including an appropriate control-sequence name -for the driver at this point. The purpose of an expansion such as -|\xydef@\OzTeX@{\noexpand\OzTeX@}| is so that this name always refers to -a unique token. The macro |\PSspecials@@| defined below, detects this token -and then calls up the appropriate macro to make the necessary bindings. - -Thus adding a new driver involves 5 steps: -\begin{itemize} -\item 1 -Define a new control sequence, as just explained. -\item 2 -Define appropriately named macros to generate the desired |\special|s. -(See the existing ones for examples of what is needed here.) -\item 3 -Define a macro that will perform the appropriate bindings of the -different classes of |\special|. (See the existing ones for examples of -what is needed here.) -\item 4 -Determine how frequently the \Xy-ps dictionary must be included within -the PostScript file. Once (at the beginning) is the ideal, however it -may be necessary to include it with every page---this is the case with -\Textures. Also if the dictionary can be loaded as a header or prolog, -determine whether this can be done only once or must be for each page. -Also check whether a specific name is required, as with \OzTeX. -\item 5 -Check to see whether the |\dumpPSdict| macro correctly writes the dictionary -to a file. The |\endlinechar| can be important here. -\end{itemize} - -\Xy-ps works by rebinding existing control sequence names, in the \Xy-pic -kernel and extensions, to have new expansions. These new expansions may -eventually typeset nothing, or at most an empty box; instead they use a -|\special| command to place \PS\ code directly into the |.dvi| file -(or |DVI2| resources in the case of \Textures on the Macintosh). -The new expansions alter the \TeX\ processing, often simplifying it -considerably hence leading to savings in both time and memory requirement. - -It should not be possible to mix |\specials| intended for different drivers. -Thus the first use of |\PSspecials@| will establish which driver is required -then rebinds |\UsePSspecials@| so that no other driver can be used; -subsequent attempts to use |\UsePSspecials@| simply result in the same -driver being reinstated. - -\DOCMODE( -\xydef@\PSspecials@{% - \ifx\next[\DN@[##1]{\setxyPSlevel@{##1}\xyFN@\PSspecials@}% - \else\DN@{\whichPSspecials@\PSspecials@@}% - \fi \next@ }% - -\xydef@\PSspecials@@{% - \ifx\und@fined\PSmessage\hidePSmessages\fi \setupxyPS@} -\DOCMODE) - -An optional argument to the |\UsePSspecials| command -allows for some control over precisely when \PS\ -|\specials| will be used. -Similarly |\UseDVIPSspecials| and |\UseTexturesSpecials|, etc. can take an -optional argument. - -For example, |\UsePSspecials[1]| replaces only font characters -with a \PS\ drawing of the same character. -Both the \PS\ and the bitmapped fonts should produce (virtually) -identical printed images. This is primarily a test mode. - -|\UsePSspecials[2]| also only replaces font characters but such -that the number of possible directions is 8192, so that arrowheads -turns and hooks fit better. - -|\UsePSspecials[3]| draws straight and dotted lines from a -single |\special| command, and similarly for circle segments. -The printed output should be identical to that obtained with -|\UsePostScriptSpecials[2]|, but the size of the |.ps| file should -be smaller. - -|\UsePSspecials[4]| is the default level; -all PostScript is turned on. Dotted curves use equally spaced dots, -dashed curves have curved dashes; even dashed lines are better. - -|\UsePSspecials[0]| does no rebinding of fonts at all. -It allows the special effects, such as rotation, scaling, colour, etc -defined in extensions, to be implemented while using the Xy-pic fonts. - -\DOCMODE( -\xydef@\setupxyPSlevelO@{\relax} - -\xydef@\setxyPSlevel@#1{\ifcase#1% - \gdef\setupxyPS@{\setupxyPSlevelO@}% - \or\gdef\setupxyPS@{\setupxyPSlevelA@}% - \or\gdef\setupxyPS@{\setupxyPSlevelB@}% - \or\gdef\setupxyPS@{\setupxyPSlevelC@}% - \or\gdef\setupxyPS@{\setupxyPSlevelD@}% - \else\gdef\setupxyPS@{\setupxyPSlevelD@}\fi } - -\xywarnifdefined\setupxyPS@ - \gdef\setupxyPS@{\setupxyPSlevelD@ \gdef\setupxyPS@{\PSspecials@true}} - -\xydef@\PSincrease@#1{% - \xywarning@{The PS level may only increase: #1 is already active}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Why use \PS} -??=[why PostScript] - -At some sites users have difficulty installing the extra fonts used by -\Xy-pic. The |.tfm| files can always be installed locally but it may -be necessary for the |.pk| bitmap fonts (or the |.mf| \MF\ fonts) to -be installed globally, by the system administrator, for printing to -work correctly. If \PS\ is available then \Xy-ps allows this -latter step to be bypassed. - -\NOTE: with \Xy-ps it is still necessary to have the |.tfm| font -metric files correctly installed, as these contain information vital -for correct typesetting. - -\medskip\noindent -Other advantages obtained from using \Xy-ps are the following: -\begin{itemize} -\item[$\bullet$] -Circles and circle segments can be set for arbitrary radii. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item[$\bullet$] -solid lines are straighter and cleaner. -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -They are no longer typeset as a -collection of fixed-sized segments (drawn from the |xydash10| font). -Previously special placement algorithms were required, to construct lines of -arbitrary length in up to 8192 distinct directions, from the 128 characters -in the font. These algorithms are no longer required, giving improved -\TeX\ processing, as well as having smooth lines of arbitrary length and -direction limited only by the resolution of the \PS\ device. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item[$\bullet$] -The range of possible angles of directionals is greatly increased. -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -For arrow tips, hooks, and turns, there are now 8192 possible orientations -rather than just the 128 contained in the |xyatip10|, |xybtip10|, and -|xybsql10| fonts. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item[$\bullet$] -Spline curves are smoother. True dotted and dashed versions are now -possible, using equally spaced segments which are themselves curved. - -\item[$\bullet$] -The \PS\ file produced by a driver from an \Xy-ps DVI file is in -general significantly smaller than one produced by processing an -`ordinary' DVI file using the same driver. One reason for this is -that no font information for the \Xy-pic fonts is required in the -\PS\ file; this furthermore means that the use of \Xy-pic does -not in itself limit the \PS\ file to a particular -resolution.\footnote{Most \TeX\ \PS\ drivers store the images of -characters used in the text as bitmaps at a particular resolution. -This means that the \PS\ file can only be printed without loss -of quality (due to bitmap scaling) at exactly this resolution.} - -\item[$\bullet$] -The latest version of \Xy-pic now enables special effects such as -variable line thickness, gray-level and colour. Also, rotation of text -and (portions of) diagrams is now supported with some drivers. -Similarly whole diagrams can be scaled up or down to fit a given area on the -printed page. Future versions will allow the use of regions -filled with colour and/or patterns, as well as other attractive effects. - -\end{itemize} - -Some of the above advantages are significant, but they come at a price. -Known disadvantages of using \Xy-ps include the following: - -\begin{itemize} - -\item[$\bullet$] -A DVI file with specials for a particular \PS\ driver can only -be previewed if a previewer is available that supports exactly the -same |\special| format. -A separate \PS\ previewer will usually be required.\par -\smallskip -However recent versions of |xdvi| support viewing of \PS\ -using either the GhostScript program or via ``Display PostScript''. -The \PS\ produced by \Xy-ps can be viewed this way - -\item[$\bullet$] -DVI files created using \Xy-ps in fact lose their ``device-independence''. -So please do not distribute DVI files with \PS\ specials---send either -the \TeX\ source code, expecting the recipient to have \Xy-pic~\smiley, -or send a (compressed) \PS\ file. -\end{itemize} - -\noindent -The latter comment applies to files in which any special `back-end' support -is required, not just to \PS. Of course it can be ignored when you know -the configuration available to the intended recipient. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{\PS\ header file:} - -With some DVI-drivers it is more efficient to have the \PS\ commands -that \Xy-ps needs loaded initially from a separate ``header'' file. -To use this facility the following commands are available\dots -\begin{defs1} - ??c![\UsePSheader{}] \cr - ??c![\UsePSheader{<filename>}] \cr - ??c![\dumpPSdict{<filename>}] \cr - ??c![\xyPSdefaultdict] -\end{defs1} -\xyPSdefaultdict -Normally it is sufficient to invoke |\UsePSheader{}|, which invokes the -default name of {\tt\xyPSdictname}, referring to the current -version of \Xy-pic. -The optional <filename> allows a different file to be used. -Placing |\dumpPSdict{..}| within the document preamble causes the dictionary -to be written to the supplied <filename>. - -\DOCMODE( -\DN@{\csname newif\endcsname\ifUsePSdict@@\DN@{}} - \ifx\undefined\UsePSdict@@true\else\DN@{}\fi \next@ - -\ifx\undefined\xyPSdefaultdict - \xydef@\xyPSdefaultdict{% - \DN@##1.##2.##3@{\gdef\xyPSdictname{xy##1##2dict.pro}}% - \expandafter\next@\xyversion.@}% -\fi - -\ifx\undefined\UsePSheader@ - \xydef@\UsePSheader@#1{% - \DN@{#1}\ifx\next@\empty -% \ifx\xyPSdictname\undefined\xyPSdefaultdict\fi - \else \gdef\xyPSdictname{#1}\fi - \ifx\xyPSdictname\undefined\xyPSdefaultdict\fi - \gdef\xyHeaderMessage@{% - It includes a reference to the PostScript file \xyPSdictname.^^J}% - \UsePSdict@@true}% - \let\UsePSheader=\UsePSheader@ -\fi -\DOCMODE) - -See the documentation for the specific driver to establish where the -dictionary file should be located on any particular \TeX\ system. -Usually it is sufficient to have a copy in the current working directory. -Invoking the command |\dumpPSdict{}| will place a copy of the requisite -file, having the default name, in the current directory. -This file will be used as -the dictionary for the current processing, provided it is on the -correct directory path, so that the driver can locate it when needed. -Consult your local system administrator if you experience difficulties. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The `dump' cannot be performed until a driver has been installed. -This ensures that the correct `end-of-line' character is used. - -\DOCMODE( -\xydef@\dumpPSdict#1{\DN@{#1}\ifx\next@\empty - \ifx\undefined\xyPSdictname\xyPSdefaultdict\fi - \else\gdef\xyPSdictname{#1}\fi - \def\dumpPSdict@@{\writePSdict@@}% - \ifx\xydriversselected@@\empty\DN@{\xysetup@@\null@xy@ps}% - \else \DN@{\installxyps@x}\fi \next@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Multiple instances of |\UsePSheader| and |\dumpPSdict| are possible, only -the last will determine which file is used for the current document. -The command |\xyPSdefaultdict| reverts to the default name. - -Allowing an arbitrary <filename> with |\UsePSheader| is for flexibility, -to accommodate systems that may impose special requirements -on the filenames of files to be used as \PS\ header files. -\OzTeX\ is one such. It also caters for advanced users of \Xy-pic -who may wish to experiment with customised \PS\ to obtain new effects. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Hooking into \Xy-pic} -??=[hooks] - -\DOCMODE( -\message{hooks,} -\DOCMODE) - -This next macro streamlines the rebinding process. - -\DOCMODE( -\gdef\xyPSalternative@#1#2{% -\expandafter\global\expandafter\let\csname origxy#2@\endcsname=#1% - \xdef#1{\noexpand\ifPSspecials@ - \noexpand\expandafter\expandafter\noexpand\csname xyPS#2@\endcsname - \noexpand\else - \noexpand\expandafter\expandafter\noexpand\csname origxy#2@\endcsname - \noexpand\fi}}% -\DOCMODE) - -The commands |\setupxyPSlevelA@|, |\setupxyPSlevelB@|, |\setupxyPSlevelC@| -and |\setupxyPSlevelD@| actually perform the rebindings. -Each may be called precisely once, and each requires all lower levels are -also set. - -\DOCMODE( -\xydef@\setupxyPSlevelA@{\xyPStips@% - \xyPSalternative@{\Tip@@}{Tip}% - \xyPSalternative@{\Ttip@@}{Ttip}% - \xyPSalternative@{\Tip@@eu}{Tip@eu}% - \xyPSalternative@{\Ttip@@eu}{Ttip@eu}% - \xyPSalternative@{\hook@@}{hook}% - \xyPSalternative@{\ahook@@}{ahook}% - \xyPSalternative@{\bhook@@}{bhook}% - \xyPSalternative@{\aturn@@}{aturn}% - \xyPSalternative@{\bturn@@}{bturn}% - \xyPSalternative@{\squiggle@@}{squiggle}% - \xyPSalternative@{\stopper@@}{stopper}% - \xyPSalternative@{\line@@}{dash}% - \xyPSalternative@{\circhar@@}{circhar@}% -% \xywithoption{cmtip}{\xyPScmtips@}% - \gdef\setupxyPSlevelA@{\PSincrease@{1}}% - \global\let\UsePSspecials=\UsePSspecials@x \PSspecials@true} -% -\xydef@\setupxyPSlevelB@{% - \let\xyPSfont@=\empty \let\xyPSsemifont@=\empty - \xyPSalternative@{\cirrestrict@@}{cirrest}% - \gdef\setupxyPSlevelB@{\PSincrease@{2}}% - \setupxyPSlevelA@ } -% -\xydef@\setupxyPSlevelC@{% - \xyPSalternative@{\cirbuild@}{cirbuild}% - \xyPSalternative@{\CIRfull@}{CIRfull}% - \xyPSalternative@{\solid@}{solid}% - \xyPSalternative@{\point@}{point}% - \xywithoption{curve}{% - \xyPSalternative@{\splinesolid@}{splinesolid}}% - \gdef\setupxyPSlevelC@{\PSincrease@{3}}% - \setupxyPSlevelB@ }% -% -\xydef@\setupxyPSlevelD@{% - \xyPSalternative@{\dash@}{dashed}% -% \xyPSalternative@{\squiggle@}{squiggled}% - \xywithoption{curve}{% - \xyPSalternative@{\splinedashed@}{splinedashed}% - \xyPSalternative@{\splinedotted@}{splinedotted}}% - \gdef\setupxyPSlevelD@{}%\PSincrease@{4}}% - \setupxyPSlevelC@ } -\DOCMODE) - -The bindings are not performed until |\setupxyPS@| is called. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{Kernel improvements} -??=[kernel] - -\subsubsection*{Directionals:} - -These macros standardise the way a character is described in \PS. -First give the |\Direction| code then the operator name, -which is just a simple character string. -The modifiers |\xyPSfont@| and |\xyPSsemifont@| are empty in all -but the most primitive level of \PS\ usage. When non-empty -they restrict to using only angles corresponding to actual font -characters. - -\DOCMODE( -\xydef@\xyPSchar@#1{% - \PSmacro@{\the\Direction\space \xyPSfont@ #1}} - -\xydef@\xyPSsemichar@#1{% - \PSmacro@{\the\Direction\space \xyPSsemifont@ #1}} -\DOCMODE) - -These macros provide \PS\ code to round a |\Direction| code to that -corresponding to the nearest font character code, for Directional and -semi-Directional fonts respectively. - -\DOCMODE( -\xydef@\xyPSfont@{f }%{xyfont } -\xydef@\xyPSsemifont@{fs }%{xysdfont } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Before any binding we save the original expansions of control-sequences -whose names will be subject to rebinding. We give these first for each font. - -\paragraph*{tips} -Arrow heads in |\xyatipfont| and |\xybtipfont| - -The tips are all set as zero-sized characters\dots - -\DOCMODE( -\xydef@\xyPStip@{\xyPSchar@{t}}%{\xyPSchar@{tip}} -%\xydef@\xyPSatip@{\xyPSchar@{a}}%{\xyPSchar@{atip}} -%\xydef@\xyPSbtip@{\xyPSchar@{b}}%{\xyPSchar@{btip}} -\xydef@\xyPSTip@{\xyPSchar@{/XT tt}}%{\xyPSchar@{Tip}} -\xydef@\xyPSTtip@{\setboxz@h\bgroup - \reverseDirection@\line@ \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ - \kern-\L@c \boxz@ \kern\L@c \xyPSchar@{/Xt tT}}%{\xyPSchar@{Ttip}} -\xydef@\xyPSTip@eu@{\xyPSchar@{/ET tt}}%{\xyPSchar@{Tip}} -\xydef@\xyPSTtip@eu@{\setboxz@h\bgroup - \reverseDirection@\line@ \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ - \kern-\L@c \boxz@ \kern\L@c \xyPSchar@{/ET tT}}%{\xyPSchar@{Ttip}} -\DOCMODE) - -The mechanism to handle Computer Modern tips is a little different. -Here we must rebind |\xycm@| to avoid any calls to font names. -When |\PSspecialstrue| then we expand a macro which will -look at the following token to decide which type of tip -is required after |\tip@x|. - -\DOCMODE( -%\xydef@\xyPScmtips@{\xyPSalternative@{\xycm@}{cm}}% -\xydef@\xyPScm@\tip@x{\xyFN@\xyPScm@@}% -\xydef@\xyPScm@@{% - \ifx\next\tip@@ \DN@\tip@@{\tip@x\xyPScmtip@}% - \else\ifx\next\atip@@ \DN@\atip@@{\tip@x\xyPScmatip@}% - \else\ifx\next\btip@@ \DN@\btip@@{\tip@x\xyPScmbtip@}% - \else\DN@{}% - \fi\fi\fi \next@}% -% -\xydef@\xyPScmtip@{\xyPSchar@{ct}}%{\xyPSchar@{cmtip}} -\xydef@\xyPScmatip@{\xyPSchar@{ca}}%{\xyPSchar@{cmatip}} -\xydef@\xyPScmbtip@{\xyPSchar@{cb}}%{\xyPSchar@{cmbtip}} -\DOCMODE) - -From version 3.3 the font coding has changed, for greater flexibility -and consistency. In particular |\xycm@| is no longer defined. - -\DOCMODE( -\xydef@\xyPStips@{% - \xyPSalternative@{\atip@@}{atip}% - \xyPSalternative@{\btip@@}{btip}% - \xyPSalternative@{\tip@@}{abtip}% -}% - -\xydef@\xyPSatip@{\xyPSwhichatip@ - \expandafter\xyPSchar@\expandafter{\xyPSfont@@}}% -\xydef@\xyPSbtip@{\xyPSwhichbtip@ - \expandafter\xyPSchar@\expandafter{\xyPSfont@@}}% -\xydef@\xyPSabtip@{\xyPSwhichabtip@ - \expandafter\xyPSchar@\expandafter{\xyPSfont@@}}% - -\xydef@\xyPSwhichatip@{\ifx\xyatipfont\xy@@atfont - \expandafter\xyPSatip@i \else\def\xyPSfont@@{10 /xy A}\fi }% -\xydef@\xyPSwhichbtip@{\ifx\xybtipfont\xy@@btfont - \expandafter\xyPSbtip@i \else\def\xyPSfont@@{10 /xy B}\fi }% -\xydef@\xyPSwhichabtip@{\ifx\xyatipfont\xy@@atfont - \expandafter\xyPSabtip@i \else\def\xyPSfont@@{10 /xy AB}\fi }% -\xydef@\xyPSatip@i{% - \edef\xyPSfont@@{\tipsize@@\space/\tipfamily@@\space A}} -\xydef@\xyPSbtip@i{% - \edef\xyPSfont@@{\tipsize@@\space/\tipfamily@@\space B}} -\xydef@\xyPSabtip@i{% - \edef\xyPSfont@@{\tipsize@@\space/\tipfamily@@\space AB}} - -\xydef@\xyPSTtips@{% - \let\Ttip@xy=\Ttip@ - \let\Ttip@cm=\Ttip@ - \let\Ttip@eu=\Ttip@ } -\DOCMODE) - -\paragraph*{hooks, turns and squiggles:} -squiggles from: |\xybsqlfont| - -The hooks are zero-sized characters\dots - -\DOCMODE( -\xydef@\xyPShook@{\xyPSchar@{h}}%{\xyPSchar@{hook}} -\xydef@\xyPSahook@{\xyPSchar@{ha}}%{\xyPSchar@{ahook}} -\xydef@\xyPSbhook@{\xyPSchar@{hb}}%{\xyPSchar@{bhook}} -\DOCMODE) - -\dots so are the turns\dots - -\DOCMODE( -\xydef@\xyPSaturn@{\xyPSchar@{ta}}%{\xyPSchar@{aturn}} -\xydef@\xyPSbturn@{\xyPSchar@{tb}}%{\xyPSchar@{bturn}} -\DOCMODE) - -This handles squiggles as individual characters. -Squiggled connections should be handled separately, e.g. by - having |\xyPSsquiggle@| set the connection by something like - |\edef\Connect@@{\noexpand\xyPSsquiggled@ {\the\Direction}}|. - -\DOCMODE( -\xydef@\xyPSsquiggle@{\xyPSchar@{g}}%{\xyPSchar@{squigl}} -\DOCMODE) - -\TODO: -define composite |\xyPSsquiggled@| - -\TODO: -define composite |\xyPSdashsquiggled@| - -\paragraph*{dashes and stoppers:} -using characters from: |xydashfont| - -A stopper contributes zero size. -However a dash gets its size from the italic correction in the -|xydashfont|, accessed here using |\origxyline@@|. - -\DOCMODE( -\xydef@\xyPSstopper@{\xyPSchar@{st}}%{\xyPSchar@{stopper}} - -%\xydef@\xyPSfliptrue@{\DN@{\xyPSsemichar@{true dash}}} -\xydef@\xyPSfliptrue@{\DN@{\xyPSsemichar@{T d}}} - -\xydef@\xyPSdash@{% -% \DN@{\xyPSsemichar@{false dash}}% - \DN@{\xyPSsemichar@{F d}}% - \ifnum\SemiDirectionChar=31 - \ifdim\d@Y<\z@ - \ifdim\d@X<\z@ \ifx\xyPSsemifont@\empty\xyPSfliptrue@\fi\fi - \else - \ifdim\z@>\d@X - \ifx\xyPSsemifont@\empty\else\xyPSfliptrue@\fi - \else\xyPSfliptrue@\fi - \fi\fi - \next@ \setboxz@h{\origxydash@}\kern\wdz@ - \setbox\z@=\box\voidb@x } -\DOCMODE) - -\subsubsection*{Circles} - -full circles and circle segments: |\xycircfont| - -This handles the cases where a font character is called using |\circhar#1|. - -\DOCMODE( -\xydef@\xyPScirchar@#1{\count@=#1\edef\tmp@{\the\count@}% - \ifcase#1% - \xyPScirchar@@@{-180}{-135}{\tmp@}\dimen@=\partroottwo\R@ - \or\xyPScirchar@@@{-135}{-90}{\tmp@}\dimen@=\halfroottwo\R@ - \or\xyPScirchar@@@{-90}{-45}{\tmp@}\dimen@=\halfroottwo\R@ - \or\xyPScirchar@@@{-45}0{\tmp@}\dimen@=\partroottwo\R@ - \or\xyPScirchar@@@0{45}{\tmp@}\dimen@=\partroottwo\R@ - \or\xyPScirchar@@@{45}{90}{\tmp@}\dimen@=\halfroottwo\R@ - \or\xyPScirchar@@@{90}{135}{\tmp@}\dimen@=\halfroottwo\R@ - \or\xyPScirchar@@@{135}{180}{\tmp@}\dimen@=\partroottwo\R@ - \fi} - -\xydef@\xyPScirrest@{\relax}% -\DOCMODE) - -This replaces just the font character, called using |\circhar@@#1|. - -\DOCMODE( -\xydef@\xyPScirchar@@#1{\relax\count@=#1\edef\tmp@{\the\count@}% - \expandafter\xyPScirchar@@@\ifcase#1% - {-180}{-135}{\tmp@}\kern\partroottwo\R@ - \or{-135}{-90}{\tmp@}\kern\halfroottwo\R@ - \or{-90}{-45}{\tmp@}\kern\halfroottwo\R@ - \or{-45}0{\tmp@}\kern\partroottwo\R@ - \or 0{45}{\tmp@}\kern\partroottwo\R@ - \or{45}{90}{\tmp@}\kern\halfroottwo\R@ - \or{90}{135}{\tmp@}\kern\halfroottwo\R@ - \or{135}{180}{\tmp@}\kern\partroottwo\R@ - \fi} - -\xydef@\xyPScirchar@@@#1#2#3{\edef\tmp@{#1\space#2\space - \expandafter\removePT@\the\R@\space #3\space c}% - \PSmacro@{\tmp@}} -\DOCMODE) - -This next macro will allow for more general circle segments to be -done in \PS. The two parameters are the starting angle -and finishing angle respectively, measured anti-clockwise. - -\DOCMODE( -\xydef@\xyPScirc@#1#2{\edef\tmp@{\expandafter\removePT@\the\R@}% -% \PSmessage{\tmp@\space #1 #2 circ}\PSmacro@{\tmp@\space #1 #2 circ}} - \PSmacro@{\tmp@\space #1 #2 o}} -\DOCMODE) - -These gives full circles and circle segments built from quarter turns. - -\DOCMODE( -\xydef@\xyPSCIRfull@{\setboxz@h{\kern\R@\xyPScirc@0{360}\kern\R@}% - \wd\z@=\z@ \ht\z@=\R@ \dp\z@=\R@ \boxz@}% - -\xydef@\xyPScirbuild@{{% - \count@=\CIRlo@@ \count@@=\CIRhi@@ - \multiply\count@ by45 \advance\count@-180 \relax - \multiply\count@@ by45 \advance\count@@-180 \relax - \def\tmp@{}% - \ifx\CIRtest@@\CIRtest@inside - \ifnum\count@@>\count@ - \edef\tmp@{\noexpand\xyPScirc@{\the\count@}{\the\count@@}}\fi - \else\ifx\CIRtest@@\CIRtest@outside - \ifnum\count@>-180 \advance\count@ by360 \relax - \edef\tmp@{\noexpand\xyPScirc@{\the\count@@}{\the\count@}}% - \else - \ifnum\count@@<180 \relax - \edef\tmp@{\noexpand\xyPScirc@{\the\count@@}{180}}% - \fi\fi - \fi\fi - \kern\R@\tmp@\kern\R@}} -\DOCMODE) - -\subsubsection*{Lines} -solid, dashed and dotted; without using segments. - -This is based on |\straight@|. It is used by all three types of line, -taking an appropriate macro as the parameter |#1|. - -\DOCMODE( -\xydef@\xyPSstraight@#1{\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@c \raise\Y@c\hbox{#1}}% - \ht\z@=\z@ \wd\z@=\z@ \dp\z@=\z@ {\xykillstyles@\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@@ } -\DOCMODE) - -This is not needed unless styles are used, hence |xyps-s| is loaded. - -\DOCMODE( -\xylet@\xykillstyles@=\relax -\DOCMODE) - -Here is how solid lines are done. - -\DOCMODE( -%\xydef@\xyPSsolid@{\ifInvisible@ \let\next@=\no@@ -% \else \DN@{\xyPSstraight@\xyPSsolid@@@}\fi \next@ } - -\xydef@\xyPSsolid@{\straight@\xyPSsolidSpread@}% -\xydef@\xyPSsolidSpread@{\xyPSspread@{solid}{l}@@}% - -\xydef@\xyPSdottedSpread@{\xyPSspread@{dotted}{dt}@@}% - -\xydef@\xyPSdashed@{\line@ \def\Connect@@{\straight@\xyPSdashedSpread@}} -\xydef@\xyPSdashedSpread@{\xyPSspread@{dashed}{dd}@@}% - - -\xydef@\xyPSspread@#1#2@@#3\repeat@{\edef\tmp@{% - \expandafter\removePT@\the\d@X\space\expandafter\removePT@\the\d@Y}% - \setboxz@h{\kern\X@c \raise\Y@c\hbox{% - \PSmessage{#1 line:}\PSmacro@{\tmp@\space #2}}}% - \ht\z@=\z@ \wd\z@=\z@ \dp\z@=\z@ \boxz@} -\DOCMODE) - - -This replaces the \Xy-pic |\dash@| to give dashed lines: - -\DOCMODE( -%\xydef@\xyPSdashed@{\line@ \def\Connect@@{\xyPSstraight@\xyPSdashed@@}} -%\xydef@\xyPSdashed@@{\edef\tmp@{% -% \expandafter\removePT@\the\d@X\space\expandafter\removePT@\the\d@Y }% -% \PSmessage{dashed line: \tmp@}\PSmacro@{\tmp@\space dd}} -\DOCMODE) - -This replaces the \Xy-pic |\point@| to give dotted lines. -\Xy-pic defines |\zerodot| to be a small centred square -with side length |\xydashw@|. The \PS\ substitute is -a round dot of this radius. - -\DOCMODE( -\xydef@\xyPSpoint@{\xyPSzerodot@\egroup - \Invisible@false \Hidden@false \def\Leftness@{.5}\def\U@pness@{.5}\ctipEdge@ -% \def\Drop@@{\styledboxz@}\def\Connect@@{\xyPSstraight@\xyPSdotted@}} - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\xyPSdottedSpread@}} - -%\xydef@\xyPSdotted@{\edef\tmp@{% -% \expandafter\removePT@\the\d@X\space\expandafter\removePT@\the\d@Y }% -% \PSmessage{dotted line: \tmp@}\PSmacro@{\tmp@\space dt}} -\xydef@\xyPSzerodot@{\PSmessage{dot:}\PSmacro@{p}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Frames}\leavevmode - -These are used for dashed frames. - -%\DOCMODE( -%\xydef@\xyPSdashhfill@{{\SemiDirectionChar=95 \Direction=3072 \xyPSdash@}} -%\xydef@\xyPSdashvfill@{{\SemiDirection=31 \Direction=1023 \xyPSdash@}} -%\DOCMODE) - -This may do circular frames. - -%\DOCMODE( -%\xydef@\xyPScircled@#1{{\R@=#1\relax -% \setboxz@h{\dimen@=\X@c\advance\dimen@-\R@c\kern\dimen@ -% \raise\Y@c\hbox{\xyPSCIRfull@}}% -% \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@}} -%\DOCMODE) - -\paragraph*{Curves}\leavevmode - -\DOCMODE( -\xydef@\xyPScubic@#1{\readsplineparams@ - \PSmessage{CUBIC:}% - \DN@{#1}\ifx\next@\empty\PSmacro@{mark \cubicinfo@\space bz}% - \else\PSmacro@{mark \cubicinfo@\space b#1}\fi} - -\xydef@\xyPSsquine@#1{\readsplineparams@ - \PSmessage{SQUINE:}% - \DN@{#1}\ifx\next@\empty\PSmacro@{mark \squineinfo@\space q#1}% - \else\PSmacro@{mark \squineinfo@\space q#1}\fi} -\DOCMODE) - -\DOCMODE( -\xydef@\xyPSsplinesolid@{\ifx\splineinfo@\squineinfo@ - \expandafter\xyPSsquine@\else\expandafter\xyPScubic@\fi{}} - -\xydef@\xyPSsplinedashed@{\ifx\splineinfo@\squineinfo@ - \expandafter\xyPSsquine@\else\expandafter\xyPScubic@\fi{d}} - -\xydef@\xyPSsplinedotted@{\ifx\splineinfo@\squineinfo@ - \expandafter\xyPSsquine@\else\expandafter\xyPScubic@\fi{t}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xyps.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.4 1997/05/18 01:13:24 ross -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 03:50:08 ross -% Maintenance release. -% -% Revision 3.3 1996/12/18 09:31:46 ross -% revised interface to straight connections -% revised interface for tips, handles arbitrary scaling -% driver/option-loading now uses \xyrequire -% -% 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.14 1995/07/05 22:10:30 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:04:51 ross -% Ready for release of v3. -% -% Revision 2.12 1994/10/25 03:01:14 ross -% Final 3beta release [bug fixes & AMS-LaTeX fitting]. -% -% Revision 2.11 1994/07/05 06:34:32 ross -% fixed bug with quadratic curves -% fixed minor documentation bugs -% -% Revision 2.10 1994/06/15 12:46:03 ross -% Second release 3beta. -% Colour and line style saving works; label colouring bug fixed. -% -% Revision 2.9 1994/06/09 14:50:54 ross -% Release 3beta. -% Includes support for special effects: Rotations, Scaling, Line-width, Colour. -% Back-ends are separated into separate files. -% More back-ends are supported, experimentally --- needs testing. -% -% Revision 2.8 1994/04/08 10:36:40 ross -% Second 3alpha release. -% -% Revision 2.7 1994/03/28 10:57:02 ross -% First version. -% -% Initial version by Ross Moore based on XYps 2.6. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xypsdict.doc b/Master/texmf-dist/source/generic/xypic/xypsdict.doc deleted file mode 100644 index 34a63c0c4c5..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xypsdict.doc +++ /dev/null @@ -1,375 +0,0 @@ -%% $Id: xypsdict.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``PostScript backend prolog''. -%% Copyright (c) 1995-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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. - -%\let\xypsdictloaded=\empty % - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This file contains the addendum to the dictionary of \PS\ commands which -need to be available to the \PS\ driver when the \PS\ back-end has been -requested. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection*{\PS\ backend Dictionary} - -Open a group and set some constants. -Make sure the preliminary part is also loaded, in case |\XYpredict@| -has not been set to |\relax|. -Then make line-ends active. - -\DOCMODE( -\begingroup \xycatcodes% - \count@=\xydashl@\relax \count@@=\xydashw@\relax% - \XYpredict@\relax \xycatcodes \xyPSobeylines@@% -% -\PSdict@@{/XYdict where pop begin XYdict begin}% -% -\PSdict@@{% - /xysize 10 def /T true def /F false def -% /xypspt{72 72.27 div dup scale}bind def - /dimendiv{65536 div}bind def - /xysegl \number\count@\space dimendiv def - /xyopp{1 -1 scale}bind def - /xynormwidth{\number\count@@\space dimendiv pscorrect}bind def - /xywidth{xynormwidth setlinewidth}bind def -}% -%\PSdict@@{% -% /xy{mark exch countdictstack /xylevel exch def xyopen xycolor stopped -% xyclose cleartomark}def -%}% -\PSdict@@{% - /xyfont{4096 add 64 div round 64 mul 4096 sub}def /xydt 0.01 def - /xysdfont{4096 add 32 div round 32 mul 4096 sub}def - /xydots{xywidth 1 setlinecap [xydt 2] 0 setdash}bind def - /f /xyfont load def /fs /xysdfont load def}% -% -\PSdict@@{% - /xyCheckDir{dup 8 div 3 mul 3 -1 roll sub neg exch div 360 mul - dup dup XYdirection sub 180 div round 180 mul XYdirection add - dup 3 -1 roll sub abs 10 gt not{exch}if pop}def -}% -\ifdim\xydashw@=0pt\xydashw@=.4pt\fi\count@@=\xydashw@\relax% -\PSdict@@{% - /xyrulth{\number\count@@\space dimendiv pscorrect setlinewidth - 0 setlinecap}bind def -}% -\PSdict@@{% - /gsavexy{gsave xypspt XYdirection rotate xywidth newpath 0 0 moveto}def - /gchksavexy{gsave xypspt setupDirection xywidth newpath 0 0 moveto}def -}% -% -\PSdict@@{% - /xyswap{XYdirection 180 add /XYdirection exch def}def - /xyline{gstartxy setupDirection rlineto xystroke}def -}% -\PSdict@@{% - /dash{exch gchksavexy xysegl XYdirection dup - -90 lt{pop neg}{90 gt{neg}if}ifelse exch{neg}if - 0 rlineto xystroke}def - /stopper{gstartxy setupDirection 0 xysegl 2 div rmoveto - 0 xysegl neg rlineto xystroke }def - /d /dash load def /st /stopper load def}% -% -\PSdict@@{% - /solid{gstartxy xydash neg exch neg exch rlineto xystroke}def - /dashed{gstartxy 2 copy dup mul exch dup mul add sqrt dup - xysegl add xysegl 2 mul div round 2 mul 1 sub div [ exch dup ] 0 setdash - neg exch neg exch rlineto xystroke}def - /l /solid load def /dd /dashed load def}% -% -\PSdict@@{% - /dot{gstartxy 2 setlinecap [xydt 2] 0 setdash - 1 0 rlineto xystroke}def - /dotted{gstartxy 2 copy dup mul exch dup mul add sqrt dup - 2 div round 1 add div 2 setlinecap [xydt 3 -1 roll] 0 setdash - neg exch neg exch rlineto 0 0 rlineto xystroke}def - /p /dot load def /dt /dotted load def}% -% -\PSdict@@{% - /cubic{gstartxy docubic} def - /docubic{chkvalid - {chkcubedge 8 -2 roll moveto curveto xystroke pop} - {cleartomark grestore}ifelse}def - /chkcubedge{2 copy 1.0 eq{0.0 eq{pop pop}{cubicedge}ifelse} - {pop cubicedge}ifelse}def - /bz /cubic load def}% -% -\PSdict@@{% - /dotcubic{gstartxy 1 setlinecap [xydt 2] 0 setdash docubic}def - /dashcubic{gstartxy [5 5] 0 setdash docubic}def - /bt /dotcubic load def /bd /dashcubic load def}% -% -\PSdict@@{% - /squine{gstartxy dosquine}def - /dosquine{chkvalid - {chksquedge 2 copy moveto xysq2cub curveto xystroke pop} - {cleartomark grestore}ifelse}def - /q /squine load def}% -% -\PSdict@@{% - /chkvalid{2 copy lt{dup 1 gt{false}{true}ifelse}{false}ifelse}def -}% -\PSdict@@{% - /chksquedge{2 copy 1.0 eq{0.0 eq{pop pop}{squineedge}ifelse} - {pop squineedge}ifelse}def - /xysq2cub{xysq2cubit 6 1 roll xysq2cubit 6 1 roll 3 index 3 index - xysq2cubit 6 1 roll xysq2cubit 6 1 roll pop pop}def - /xysq2cubit{2 index 2 mul add 3 div}def -}% -\PSdict@@{% - /dotsquine{gstartxy 1 setlinecap [xydt 2] 0 setdash dosquine}def - /dashsquine{gstartxy [5 5] 0 setdash dosquine}def - /qt /dotsquine load def /qd /dashsquine load def}% -% -\PSdict@@{% -/xy4mul{8 copy - 5 -1 roll mul 5 1 roll 6 -1 roll mul 6 1 roll - 3 -1 roll mul exch 4 -1 roll mul 3 1 roll - add 3 1 roll add exch 10 2 roll - 7 -1 roll mul 7 1 roll 4 -1 roll mul 5 1 roll - 4 -1 roll mul 4 1 roll mul add 3 1 roll add - exch 3 -1 roll }def -}% -\PSdict@@{% - /xy44mul{4 copy 16 4 roll exch 3 1 roll 4 copy 12 4 roll - xy4mul 12 4 roll xy4mul 12 -4 roll 4 copy 16 4 roll - 8 4 roll xy4mul 12 4 roll xy4mul}def -}% -\PSdict@@{% - /cubicedge{10 2 roll exch 8 1 roll 3 -1 roll dup dup 9 2 roll - 5 -1 roll dup dup 9 1 roll 8 3 roll - 4 1 roll dup dup 5 3 roll dup dup 5 1 roll 3 -1 roll - 18 -2 roll 2 copy 1 sub neg 4 1 roll 1 sub neg exch 4 1 roll - xy444mul - pop pop pop 13 1 roll pop pop pop 9 1 roll 10 1 roll - pop 8 1 roll 7 1 roll 8 1 roll pop 5 1 roll 3 1 roll}def -}% -\PSdict@@{% - /xy444mul{4 copy 24 4 roll 12 -4 roll 16 4 roll 4 copy 16 4 roll - xy44mul 20 8 roll xy44mul - 12 -4 roll 4 -1 roll 7 1 roll exch 4 1 roll exch 6 -1 roll exch - 4 2 roll 16 8 roll 8 4 roll - 4 -1 roll 7 1 roll exch 4 1 roll exch 6 -1 roll exch 4 2 roll - 8 4 roll 16 4 roll 8 4 roll 20 -4 roll exch 3 1 roll - 4 copy 20 4 roll 4 copy 16 4 roll 4 copy 12 4 roll - xy4mul 28 4 roll xy4mul 20 4 roll xy4mul 12 4 roll xy4mul}def -}% -\PSdict@@{% - /squineedge{8 2 roll - exch 5 1 roll 3 -1 roll dup 6 2 roll 1 index exch - 10 -2 roll 2 copy 1 sub neg 4 1 roll 1 sub neg exch 4 1 roll - xy44mul 4 1 roll pop 5 1 roll 6 1 roll 3 -1 roll pop}def -}% -\PSdict@@{% - /xyshort{2 copy abs exch abs add xysegl .5 mul lt - {pop pop grestore}{rlineto xystroke}ifelse}def -}% -\PSdict@@{% - /tipwidth{xywidth xynormwidth dup currentlinewidth exch div - sqrt dup dup scale mul setlinewidth 1 setlinecap}def -}% -\PSdict@@{% - /halftip{tipwidth xysize 10 div 0 0 moveto - -.25 0 3 -1 roll -2.5 mul 0 xysize 2 div neg - dup .62 mul 2 div neg curveto}bind def -}% -% -\PSdict@@{/atip{gchksavexy halftip xystroke}def - /btip{gchksavexy xyopp halftip xystroke}def - /tip{gchksavexy gsave halftip stroke grestore - xyopp halftip xystroke}def - /t /tip load def /a /atip load def /b /btip load def}% -% -\PSdict@@{/cmatip{gchksavexy halfcmtip xystroke}def - /cmbtip{gchksavexy xyopp halfcmtip xystroke}def - /cmtip{gchksavexy gsave halfcmtip stroke grestore - xyopp halfcmtip xystroke}def - /halfcmtip{tipwidth 0 0 moveto - -.1333 0 .25 neg dup .125 3 -1 roll .25 curveto}bind def -% /cma{exch gchksavexy xyfscale cm halfxytip xystroke}def -% /cmb{exch gchksavexy xyfscale xyopp cm halfxytip xystroke}def -% /cmab{exch gchksavexy xyfscale gsave cm halfxytip stroke -% grestore xyopp cm halfxytip xystroke}def - /ct /cmtip load def /ca /cmatip load def /cb /cmbtip load def}% -% -\PSdict@@{% -% /halfxytip{xyfsize mul 2 div exch xyfsize mul neg tipwidth 0 0 moveto -% dup dup 5 -2 roll dup dup 4 2 roll mul 5 1 roll 3 1 roll curveto}bind def -% /eu{2 3 div 1 8 div 7 16 div}def -% /cm{1 3 div 1 5 div 1 2 div}def -% /XY{1 3 div 1 2 div .31}def -% /eua{exch gchksavexy xyfscale eu halfxytip xystroke}def -% /eub{exch gchksavexy xyfscale xyopp eu halfxytip xystroke}def -% /euab{exch gchksavexy xyfscale gsave eu halfxytip stroke -% grestore xyopp eu halfxytip xystroke}def -% /xya{exch gchksavexy xyfscale XY halfxytip xystroke}def -% /xyb{exch gchksavexy xyfscale xyopp XY halfxytip xystroke}def -% /xyab{exch gchksavexy xyfscale gsave XY halfxytip stroke -% grestore xyopp XY halfxytip xystroke}def -% - /xyfscale{/xyfsize exch def}def /xyfsize{10}def - /eu{-0.0551 0.0643 -0.0976 0.1386 -0.125 0.2188}def - /cm{-0.105 0.0437 -0.1804 0.1380 -0.2 0.25}def - /XY{-0.1753 0.0181 -0.3452 0.0708 -0.5 0.155}def - /tipstart{3 -1 roll gchksavexy exch xyfscale tipwidth dup XYdict exch - known{dup /xy eq{pop /XY}if}{pop /XY}ifelse XYdict exch get}def - /tipend{halfxytip xystroke}def - /halfxytip{1 1 6{pop xyfsize mul 6 1 roll}for 0 0 moveto curveto}def - /A{tipstart D}def /B{tipstart C}def /C{xyopp D}def /D{exec tipend}def - /AB{tipstart dup gsave exec halfxytip stroke grestore C}def -}% -%\PSdict@@{/aTip{gchksavexy halfTip xystroke}def -% /bTip{gchksavexy xyopp halfTip xystroke}def } -% -\PSdict@@{%/halfTip{360 32 div neg rotate halftip}bind def -% /halfTtip{.31 mul 1 atan rotate halftip}bind def -% /Tip{gchksavexy gsave halfTip stroke grestore -% xyopp halfTip xystroke}def -% /Ttip{gchksavexy xysegl neg 0 rlineto 0 0 moveto -% gsave -1 halfTtip stroke grestore xyopp -1 halfTtip xystroke}def -% - /Tip{exch gchksavexy /xyfsize{10}def tipwidth gsave - dup XYdict exch known{dup /xy eq{pop /XT}if}{pop /XT}ifelse - XYdict exch get dup - halfTip stroke grestore xyopp halfTip xystroke}def - /XT{360 32 div neg}def /Xt{-1 .31 mul 1 atan}def - /ET{360 64 div 5 mul neg}def /Et{-1 .31 mul 1 atan}def - /halfTip{exec rotate XY halfxytip}def /halfTtip{halfTip}def - /Ttip{exch gchksavexy /xyfsize{10}def tipwidth gsave - dup XYdict exch known{dup /xy eq{pop /Xt}if}{pop /Xt}ifelse - XYdict exch get dup - halfTtip stroke grestore xyopp halfTtip xystroke}def - /tt /Tip load def /tT /Ttip load def}% -% -\PSdict@@{/halfturn{xysegl 2 div dup dup neg exch rmoveto - 0 exch dup exch -180 -90 arc}bind def - /aturn{gchksavexy halfturn xystroke}def - /bturn{gchksavexy xyopp halfturn xystroke}def - /ta /aturn load def /tb /bturn load def}% -% -\dimen@=\xybsqll@\relax\count@=\dimen@% -% -\PSdict@@{% - /xysqll \the\count@\space dimendiv def - /squigl{gchksavexy xysqll dup neg 0 rmoveto - 2 div dup dup neg dup 3 -1 roll - 2 sqrt mul dup 5 1 roll - 135 45 arcn dup 3 -1 roll -135 -45 arc - xystroke}def - /g /squigl load def}% -% -\PSdict@@{/fullhook{0 xysegl 2 div dup -90 90 arcn}bind def - /halfhook{xysegl 2 div dup 0 exch 180 90 arcn}bind def -}% -\PSdict@@{/ahook{gchksavexy fullhook xystroke}def - /bhook{gchksavexy xyopp fullhook xystroke}def - /hook{gchksavexy gsave halfhook stroke grestore - xyopp halfhook xystroke}def - /h /hook load def /ha /ahook load def /hb /bhook load def}% -% -%\PSdict@@{/halfstop{90 rotate xysegl 1.4 mul 0 rlineto}bind def} -%\PSdict@@{/astop{gsavexy halfstop xystroke}def} -%\PSdict@@{/bstop{gsavexy xyopp halfstop xystroke}def} -%\PSdict@@{/abstop{gsavexy 90 rotate xysegl 1.4 mul -% dup 2 div 0 rmoveto neg 0 rlineto xystroke}def} -% -\PSdict@@{% - /xyqcirc{dup dup neg exch translate newpath - dup neg 0 exch moveto 0 0 3 -1 roll -90 0 arc}bind def -}% -% -\PSdict@@{% - /circ{gstartxy - 3 copy pop 2 copy cos mul 3 1 roll sin mul - rmoveto 0 0 5 2 roll arc xystroke}bind def - /o /circ load def}% -% -\PSdict@@{% - /circhar{gsave dup 3 gt{7 sub neg}if dup - 3 eq{pop dup 2 sqrt -2 div mul}{dup 1 eq{pop dup 2 sqrt 2 div mul} - {0 eq{dup}{0}ifelse}ifelse}ifelse - 0 translate 3 1 roll circ grestore}bind def - /c /circhar load def}% -% -\PSdict@@{end end}% -% -\endgroup% -\DOCMODE) - -Close the group and clean-up. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xypsdict.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% 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/19 03:50:08 ross -% Maintenance release. -% -% Revision 3.3 1996/12/18 09:36:42 ross -% PostScript support for scaling arrow-tips: CM and Euler -% -% Revision 3.2 1995/09/19 18:21:41 ross -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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.1. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xypspatt.doc b/Master/texmf-dist/source/generic/xypic/xypspatt.doc deleted file mode 100644 index e26fce5181a..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xypspatt.doc +++ /dev/null @@ -1,182 +0,0 @@ -%% $Id: xypspatt.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Xy-pic ``PostScript pattern prolog''. -%% Copyright (c) 1995-1998 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-1998 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. -%% -%% As a special exception, you may use this file and all files derived -%% from it without restrictions. This special exception was added with -%% version 3.7 of Xy-pic. -%% -%\let\xypspattloaded=\empty % - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This file contains the addendum to the dictionary of \PS\ commands which -need to be available to the \PS\ driver when patterns have been requested. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection*{\PS\ pattern support} - -Open a group, set the catcodes to normal and make line-ends active. - -\DOCMODE( -\begingroup \xycatcodes \xyPSobeylines@@% -% -\PSdict@@{/XYdict where pop begin XYdict begin}% -% -% -% use as: /name <data> :t to create a pattern object in XYdict -% -% eg <data>: /bk[1 1 1]def /fg[0 0 0]def -% <B1B1B13030300303031B1B1BD8D8D8C0C0C00C0C0C8D8D8D> fg bk -% -% (be careful with setmatrix , for consistency across <driver>s -% -\PSdict@@{/:patt -{XYddict begin -14 dict begin -/BGnd exch def % null OR color spec in rgb, as an array -/FGnd exch def % color spec in rgb, as an array -/PaintData exch def % pattern spec as a Hex string, 16 x 3-component -/PatternType 1 def -/PaintType 1 def -/BBox[0 0 1 1]def -/TilingType 1 def -/XStep 1 def -/YStep 1 def -/PatternMtx[24 0 0 24 0 0]def -/PaintProc BGnd null ne % defined according to BGnd and FGnd colours - {{begin BGnd aload pop setrgbcolor 0 0 1 1 rF - FGnd aload pop setrgbcolor - 24 24 true PatternMtx PaintData imagemask end}} - {{begin FGnd aload pop setrgbcolor - 24 24 true PatternMtx PaintData imagemask end}} - ifelse def - currentdict PatternMtx end - gsave patangle xyland{180 add}if % xyport not{180 add}if - rotate macfreq patfreq div dup neg exch scale matrix currentmatrix - grestore gsave setmatrix /DeviceRGB setcolorspace makepattern grestore - end}def}% -% -\PSdict@@{% -/rF{gsave % stack: x y dx dy rF - newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto - fill grestore}bind def }% -% -\PSdict@@{% - /setpatscreen{/pattstring exch store patfreq - patangle xyport not{90 add}if - {1 add 4 mul cvi pattstring exch get exch 1 add 4 mul cvi 7 sub - bitshift 1 and}setscreen}bind def - /setcolpattern{setpatscreen 64 div 1 exch sub currentrgbcolor - 1 1 3{pop 1 exch sub 3 index mul 1 exch sub 3 1 roll}for - setrgbcolor pop}def - /setgraypattern{setpatscreen 64 div setgray}def - /macfreq 9.375 def /patangle 0 def /patfreq 12.5 def}% -% -\PSdict@@{/checkland{% - /normland where{pop normland not}{false}ifelse - /xyland exch def - /por where{pop por}{/isls where{pop isls not /xyland true def} - {/land where{pop land not}{true} - ifelse}ifelse}ifelse /xyport exch def}def }% -% -\PSdict@@{% - /setpatfreq{/patfreq exch def}def - /setpatangle{/patangle exch def}def - /setbackcolor{/backcolor exch def}def - /setforecolor{/forecolor exch def}def - [1 1 1] setbackcolor xycolarray setforecolor - /bg /setbackcolor load def /fg /setforecolor load def - /pa /setpatangle load def /pq /setpatfreq load def }% -% -\PSdict@@{% - /xypattern{checkland counttomark dup 0 eq{pop} - {dup 1 eq{pop setpatscreen} - {dup 2 eq{pop setcolpattern} - {dup 3 eq{pop - /setcolorspace where { % - /.setcolorspace where{pop pop pop setcolpattern} %hack for Ghostscript - {/.buildpattern where {pop % hack for older Ghostscript - forecolor backcolor :patt setpattern % hack for older Ghostscript - }{pop pop setcolpattern}ifelse}ifelse} % hack for Ghostscript -% pop forecolor backcolor :patt setpattern} % hack for Ghostscript - {pop setcolpattern}ifelse} - {5 eq{/setcolorspace where{ % - /.setcolorspace where{pop pop pop pop pop setcolpattern} % Ghostscript - {/.buildpattern where {pop % hack for older Ghostscript - :patt setpattern % hack for older Ghostscript - }{pop pop pop pop setcolpattern}ifelse}ifelse} %hack for Ghostscript -% pop :patt setpattern} % hack for Ghostscript - {pop pop pop setcolpattern}ifelse - }{}ifelse}ifelse}ifelse}ifelse}ifelse cleartomark }def - /xysetpattern{/xypatt exch def}def - /sp /xysetpattern load def }% -% -\PSdict@@{end end}% -% -\endgroup% -\DOCMODE) - -Close the group and clean-up. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xypspatt.doc,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.3 1996/12/18 09:38:37 ross -% minor change to prevent multiple loading -% -% Revision 3.2 1995/09/19 18:21:41 ross -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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.1. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyrecat.doc b/Master/texmf-dist/source/generic/xypic/xyrecat.doc deleted file mode 100644 index 89b3c828f84..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyrecat.doc +++ /dev/null @@ -1,95 +0,0 @@ -%% $Id: xyrecat.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -%% -%% Xy-pic ``Reset Category Codes'' utility. -%% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. -%% -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent - However, it is possible to `repair' the problem in case any of the - characters |#$&'+-.<=>`| change category code: -% -\begin{defs1} -|\xyresetcatcodes| -\end{defs1} -\noindent\unskip -% - will load the file ??c![xyrecat.tex] (version - \stripRCS$Revision: 3.3 $) to do it. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:} -\DOCHEADER -\noindent - The command is defined in |xy.doc|: the purpose of this file is to be - reloadable such that the characters can be reread by \TeX\ with fresh - catcodes. - - The code redefines the special |\add|\dots|@| control sequences used - for parsing of just those characters, assuming |\next| is defined - correctly before loading it: - -\DOCMODE( -%\xyreuncatcodes -\xyuncatcodes - -\xyrecat @ 64 \catcode 64 11 - -\xymakeADD@\addHASH@ # 35 -\xymakeADD@\addDOLL@ $ 36 -\xymakeADD@\addAND@ & 38 -\xymakeADD@\addRQ@ ' 39 -\xymakeADD@\addPLUS@ + 43 -\xymakeADD@\addDASH@ - 45 -\xymakeADD@\addDOT@ . 46 -\xymakeADD@\addLT@ < 60 -\xymakeADD@\addEQ@ = 61 -\xymakeADD@\addGT@ > 62 -\xymakeADD@\addLQ@ ` 96 - -\endinput - -% $Log: xyrecat.doc,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% NEW file to go in version 3! -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyrefer.man b/Master/texmf-dist/source/generic/xypic/xyrefer.man deleted file mode 100644 index 6322060fd17..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyrefer.man +++ /dev/null @@ -1,509 +0,0 @@ -%% $Id: xyrefer.man,v 3.7 1999/02/16 15:12:50 krisrose Exp $ -%% -%% Wrapper to print ``Xy-pic Reference Manual''. -%% Copyright (c) 1994-1998 Kristoffer H. Rose <krisrose@brics.dk>. -%% All rights reserved. - -\documentclass{article} -\usepackage{xydoc} -\xyoption{knot} -\xyoption{crayon} -\xyoption{tile} -\makeindex -\begin{document} - -\title{ \Xy-pic Reference Manual } - -\author{ - Kristoffer H. Rose\\<krisrose@brics.dk>\thanks{% - BRICS, Computer Science, Aarhus University (bld. 540), - Ny Munkegade, DK--8000~Aarhus C, Denmark.} - \and - Ross Moore\\<ross@mpce.mq.edu.au>\thanks{% - MPCE (Mathematics dept.), Macquarie University, - North Ryde, Sydney, Australia NSW~2109.} -} -\date{Version \xyversion\quad<\xydate>} -\maketitle - -\begin{abstract} - This document summarises the capabilities of the \Xy-pic package for - typesetting graphs and diagrams in \TeX. For a general introduction - as well as availability information and conditions refer to the - User's Guide~\cite{R95:Xy-picUG}. - - A characteristic of \Xy-pic is that it is built around a "kernel - drawing language" which is a concise notation for general graphics, - \eg, -% -\begin{code} -\xy (3,0)*{A} ; (20,6)*+{B}*\cir{} **\dir{-} - ? *_!/3pt/\dir{)} *_!/7pt/\dir{:} - ?>* \dir{>} \endxy -\end{code} -% -$$\docode$$ -% - was drawn by the \Xy-pic kernel code -% -\displaycode\noindent -% - It is an object-oriented graphic language in the most literal sense: - `objects' in the picture have `methods' describing how they typeset, - stretch, etc. However, the syntax is rather terse. - - Particular applications make use of "extensions" that enhance the - graphic capabilities of the kernel to handle such diagrams as -% -\begin{code} -\xy *[o]=<40pt>\hbox{Round}="o"*\frm{oo}, - +<5em,-5em>@+, - (46,11)*+\hbox{Square}="s" *\frm{-,}, - -<5em,-5em>@+, - "o";"s" **{} ?*+\hbox{Bend}="b"*\frm{.}, - "o";"s"."b" **\crvs{-}, - "o"."b";"s" **\crvs{-} ?>*\dir{>} -\endxy -\end{code} -\vspace{-2pc} -$$\docode$$ -% - which was typeset by -% -\displaycode -\noindent -% - using the `curve' and `frame' extensions. - - All this is made accessible through the use of "features" that provide - convenient notation such that users can enter special classes of - diagrams in an intuitive form, \eg, the diagram -% -\begin{code} -\xymatrix{ - U \ar@/_/[ddr]_y \ar[dr] \ar@/^/[drr]^x \\ - & X \times_Z Y \ar[d]^q \ar[r]_p - & X \ar[d]_f \\ - & Y \ar[r]^g & Z } -\end{code} -$$\docode$$ -% - was typeset using the `matrix' features by the \Xy-pic input lines -% -\displaycode - - Features exist for many kinds of input; here is a knot typeset using - the `knots and links' feature: -% -\begin{code} -\xygraph{!{0;/r1pc/:/u.7pc/::}="A" - "A" [u(2.5)r]!{\xcapv[-1.5]} - [u]!{\xcaph\xcapv[1.5]|(-.15)\khole} - "A" [u]!{\xcapv[-3]} - [u]!{\xcaph[3]>(-.035)\khole}[rr]!{\xcapv[3]} - "A" [ur] !{\xunderh} - "A" [r] !{\xcapv-} [ur] !{\xcapv} - "A" [dr] !{\xunderh} - "A" [dd] !{\xoverh} [r]!{\xoverh} - "A" [rddd] !{\xunderh} [r] !{\xcapv} - "A" [ddd] !{\xcapv-\xcaph-} [r] !{\xcaph-}} -\end{code} -$$\docode$$ -% - The current implementation is programmed entirely within - ``standard \TeX\ and \MF'', \ie, using \TeX\ macros (no |\special|s) - and with fonts designed using \MF. Optionally special `drivers' make - it possible to produce DVI files with `specials' for extra graphics - capabilities, \eg, using \PS. -\end{abstract} - -\pagebreak -\tableofcontents -\listoffigures - -\begin{figure}[b] -\hbox to\hsize{% - \includegraphics{kris.eps} - \raise2em\hbox{Kristoffer Rose}\hss - Ross Moore - \includegraphics{ross.eps}} -\end{figure} - - -\section*{Preface} - - This reference manual gives concise descriptions of the modules of - \Xy-pic, written by the individual authors. Please direct any - \TeX\-nical question or suggestion for improvement directly to the - author of the component in question, preferably by electronic mail - using the indicated address. Complete documents and printed - technical documentation or software is most useful. - - The first part documents the \Xy-pic kernel which is always loaded. - The remaining parts describe the three kinds of options: "extensions" - in part~??g[:extensions] extend the kernel graphic capabilities, - "features" in part~??g[:features] provide special input syntax for - particular diagram types, and "drivers" in part~??g[:drivers] make it - possible to exploit the printing capabilities supported by DVI driver - programs. For each option it is indicated how it should be loaded. - The appendices contain answers to all the exercises, a summary of the - compatibility with version~2, and list some reasons why \Xy-pic might - sometimes halt with a cryptic \TeX\ error. - -\paragraph*{License.} -% - \Xy-pic is free software in the sense that it is available under the - following ??w![license]??w[copyright] conditions: -$$ -\xy*+[F-]\txt{\Xy-pic: Graphs and Diagrams with \TeX\\ - \copyright~1991--1998\quad Kristoffer H. Rose\\ - \copyright~1994--1998\quad Ross Moore\hglue2.75em\hglue1bp}\endxy -$$ -\begin{quotation} -% - The \Xy-pic package is ??w![free software]; you can redistribute it - and/or modify it under the terms of the ??w![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 ??w![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. -% -\end{quotation} -% - In practice this means that you are free to use \Xy-pic for your - documents but if you distribute any part of \Xy-pic (including - modified versions) to someone then you are obliged to ensure that the - full source text of \Xy-pic is available to them (the full text of - the license in the file ??c![COPYING] explains this in somewhat more - detail~\smiley~). - -\paragraph*{Notational conventions.} -% - We give descriptions of the "syntax" of pictures as \BNF??w[BNF] - rules; in explanations we will use upper case letters like $X$ and - $Y$ for <dimen>sions and lower case like $x$ and $y$ for <factor>s. - - - -\part{The Kernel} -??g=[kernel] -\subsubsection*{\noindent\rlap{\small\bf - Vers. \xyversion\ by Kristoffer H. Rose <krisrose@brics.dk>}} -\def\GROUP{part}\def\FILE{part} -\CompilePrefix{xy.doc-} -\inputdoc!{xy.doc} - - - -\part{Extensions} -??g=[extensions] -\def\GROUP{part}\def\FILE{section}% - - This part documents the graphic capabilities added by each standard - extension option. For each is indicated the described version - number, the author, and how it is loaded. - - Many of these are only fully supported when a suitable "driver" - option (described in part~??g[:drivers]) is also loaded, however, all - added constructions are always "accepted" even when not supported. - -\OSECTION{xycurve.doc} -\OSECTION{xyframe.doc} -\OSECTION{xytips.doc} -\OSECTION{xyline.doc} -\OSECTION{xyrotate.doc} -\OSECTION{xycolor.doc} -\OSECTION{xytile.doc} -\OSECTION{xyimport.doc} -\OSECTION{xymovie.doc} -\OSECTION{xyps.doc} -\OSECTION{xytpic.doc} -\OSECTION{xyemtex.doc} -\OSECTION{xynecula.doc} - - - - -\part{Features} -??g=[features] -\def\GROUP{part}\def\FILE{section}% - - This part documents the notation added by each standard feature - option. For each is indicated the described version number, the - author, and how it is loaded. - - The first two, `all' and `dummy', described in~\S\S??g[:all] - and~??g[:dummy], are trivial features that nevertheless prove useful - sometimes. The next two, `arrow' and `2cell', described - in~\S??g[:arrow] and~??g[:2cell], provide special commands for - objects that `point'. The following, `matrix' in~\S??g[:matrix], - `graph' in~\S??g[:graph], `poly' in~\S??g[:poly], and `knot' - in~\S??g[:knot], are "input modes" that support different overall - structuring of (parts of) \Xy-pictures. - -\OSECTION{xyall.doc} -\OSECTION{xydummy.doc} -\OSECTION{xyarrow.doc} -\OSECTION{xy2cell.doc} -\OSECTION{xymatrix.doc} -\OSECTION{xygraph.doc} -\OSECTION{xypoly.doc} -\OSECTION{xyweb.doc} -\OSECTION{xyarc.doc} -\OSECTION{xyknot.doc} -\OSECTION{xysmart.doc} - - - -\part{Drivers} -??g=[drivers] -\def\GROUP{part}\def\FILE{sub-section}% - - This part describes `drivers' that customise the parts of the DVI - file generated from \Xy-pictures to exploit special capabilities of - particular DVI driver programs through \TeX\'s |\special| command. - This makes the DVI files non-portable but is needed for full support - of some of the \Xy-pic extensions (described in - part~??g[:extensions]). - - Figure~??g[:f-drivers] at the end of this part summarises the - extensions supported by all drivers. - -%Alphabetically... -\makeatletter -\def\@listD{\leftmargin1em - \parsep 4\p@ \@plus2\p@ \@minus\p@ - \topsep 4\p@ \@plus2\p@ \@minus4\p@ - \itemsep\z@ \@plus\p@ } -\let\@listi\@listD -\let\PS@orig=\PS -\def\PS{{\small\PS@orig}} -\makeatother - -\section{Support for Specific Drivers} - -\DSECTION{xydvidrv.doc} -\DSECTION{xydvips.doc} -\DSECTION{xydvitops.doc} -\DSECTION{xyoztex.doc} -\DSECTION{xy17oztex.doc} -\DSECTION{xytextures.doc} -\DSECTION{xy16textures.doc} -\DSECTION{xyxdvi.doc} - -\begin{figure*}[bt] -\begin{center} -% -{\makeatletter \global\let\DoXXX=\xydriver@unload@support@@} -% -\def\beginXXX{\def\next{\otherbar c\otherbar}% - \def\doii##1##2{% - \expandafter\def\expandafter\next\expandafter{\next c\otherbar}}% - \DoXXX\relax - \def\1##1{\begin{tabular}{##1}}\expandafter\1\expandafter{\next}} -% -\def\ClearXXX{% - \def\doii##1##2{\expandafter\gdef\csname##1XXX\endcsname{-}}% - \DoXXX} -% -\def\SetXXX#1{% - \def\doii##1##2{\expandafter\gdef\csname##1XXX\endcsname{+}}% - \csname xydriver@#1@support@@\endcsname} -% -\def\XXXentry#1#2{#1} -\def\XXXlastentry#1#2{#1\\\hline} -% -\def\EchoXXX{\gdef\doii##1##2##3{% - \ifx##3\relax \expandafter\XXXlastentry \else \expandafter\XXXentry\fi - {\tt##1}{##3}}} -% -\def\PrintXXX{\gdef\doii##1##2##3{% - \ifx##3\relax \expandafter\XXXlastentry \else \expandafter\XXXentry\fi - {\csname##1XXX\endcsname}{##3}}} -% -\def\Head{\hline \EchoXXX \DRIVERvsEXTENSION &\DoXXX\relax} -\def\do#1{\expandafter\ifx\csname xydriver@#1@support@@\endcsname\DoXXX - \expandafter\dontdoRow\else\expandafter\doRow\fi{#1}} -\def\doRow#1{{\tt#1}\ClearXXX\SetXXX{#1}\PrintXXX&\DoXXX\relax} -\def\dontdoRow#1{} -\def\Rows{\csname xydriversloaded@@\endcsname} -% -\def\DRIVERvsEXTENSION{\hbox{\kern.1em % - \lower.25ex\hbox{\tiny<driver>}% - \kern-.15em$\bigm\backslash$\kern-.11em % - \raise.5ex\hbox{\tiny<extension>}}} -% -\beginXXX - \Head\relax\Rows -\end{tabular} -\end{center} -\caption{Extension implementation replaced by use of \protect<driver\protect> - specials.}??g=[f-drivers] -\end{figure*} - -\makeatletter -\let\do=\eat@ \def\doii#1#2{} -\let\xyrequire=\eat@ -\makeatother - -\medskip\noindent -The following \TeX\ implementation is also supported, -but currently uses the \dvips\ driver. - -\DSECTION{xycmactex.doc} -%\DSECTION{xydvipub.doc} -%\DSECTION{xydviwindo.doc} - -Other implementations not specifically mentioned here -may well work with one of the named <driver>s, though -perhaps not all features will actually be supported. - -\makeatletter -\let\@listi\@listI -\let\PS=\PS@orig -\makeatother - -\section{Extra features using \PS\ drivers} - - This section acknowledges the support for extra features available - when using a <driver> that supports use of |\special| commands with - native \PS. Extra macros are required to take advantage of this; - these are loaded automatically in conjunction with extensions - specified using the |\xyoption| command, provided a <driver> which - supports the extension, as indicated in ??g[:f-drivers], has also been - specified. - - Commands are also provided to turn off/on use of these features. - Such switches are particularly useful when developing complicated - diagrams, or when the intended output device does not support \PS; - e.g. for on-screen display. Alternatively, when attempting to use - drivers for which no explicit support has been provided, some - features may work others may not. Please inform the authors of - \Xy-pic of any successes or failures of such attempts. - -\inputdoc!{xyps-ps.doc} -\inputdoc!{xyps-c.doc} -\inputdoc!{xyps-f.doc} -\inputdoc!{xyps-l.doc} -\inputdoc!{xyps-r.doc} -\inputdoc!{xyps-t.doc} - -\section{Extra features using \TPIC\ drivers} - - Similarly a few extensions are supported better when |\special| - commands in the \TPIC\ format are supported. - -\inputdoc!{xytp-f.doc} - - - -\part*{Appendices}\label{Appendices} -\addtocontents{toc}{\protect\contentsline - {part}{Appendices}{\protect\pageref{Appendices}}}% - -\appendix -\def\GROUP{appendices}\def\FILE{appendix}% - -\ANSWERS - -\OSECTION{xyv2.doc} - -\section{Common Errors} - - In this appendix we describe some common cases where small mistakes - in \Xy-pictures result in \TeX\ error messages that may seem cryptic. - -\paragraph*{! Box expected.\\*% - ! A <box> was supposed to be here.} - - This message is common when an \Xy-pic <object> is mistyped such that - \Xy-pic expects but does not find a \TeX\ <box> construction. - -\paragraph*{! LaTeX Error: Bad math environment delimiter.\\*% - ! File ended while scanning use of \texttt{\string\xycompiled}.\\* - ! Argument of \texttt{\string\codeof@} has an extra \}.} - - These errors can happen while reading an incomplete compiled picture - (such a beast is created when \Xy-pic crashes during compilation due - to a syntax error or other such problem). - -\paragraph*{! Missing \} inserted.} - - This happens when |\endxy| was left out. - - -\bigskip\TODO: Also include the more obscure ones\dots - - - -\ANSWERS -\BIBLIOGRAPHY -\INDEX - -\end{document} - -% $Log: xyrefer.man,v $ -% Revision 3.7 1999/02/16 15:12:50 krisrose -% Interim release (Y&Y fonts now free). -% -% Revision 3.5 1997/05/29 21:02:36 krisrose -% Fixed "missing breaks"...and tidied up documentation! -% -% Revision 3.4 1997/05/18 04:59:43 krisrose -% Essential bugfixes. -% Also includes preliminary movie extension... -% -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/05 22:21:32 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:11:01 kris -% Release 3alpha. -% -% NEW for version 2.7. - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyrotate.doc b/Master/texmf-dist/source/generic/xypic/xyrotate.doc deleted file mode 100644 index 0500208b343..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyrotate.doc +++ /dev/null @@ -1,538 +0,0 @@ -%% $Id: xyrotate.doc,v 3.3 1996/12/18 09:40:16 ross Exp $ -%% -%% Xy-pic ``Rotate and Scale extension'' option. -%% Copyright (c) 1993-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{rotate}{Rotate and Scale extension}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This extension provides the ability to request that any object be displayed -rotated at any angle as well as scaled in various ways. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -These are effects which are not normally available within \TeX. -Instead they require a suitable `back-end' option to provide the necessary -|\special| commands, or extra fonts, together with appropriate -commands to implement the effects. Thus -$$ -\xy - *+\txt<.8\hsize>{Using this extension will have no effect on the output - unless used with a backend that explicitly supports it.} - *\frm{-} -\endxy -$$ - -\DOCMODE( -\xydef@\xyundefinedRotate@#1#2@@{%\egroup % - \xywarning@{The #1 #2 effect is not implemented with the current driver.}}% -\DOCMODE) - -The extension provides special effects that can be used with any \Xy-pic -<object> by defining |[|<shape>|]| modifiers. -The modification is local to the <object> currently being built, -so will have no effect if this object is never actually used. - -The following table lists the modifiers that have so far been -defined. They come in two types -- either -a single keyword, or a key-character with the following text treated -as a single argument. -% -\begin{defs} - |[@]| & align with current direction\cr - |[@|<direction>|]| & align to <direction>\cr - |[@!|<number>|]| & rotate <number> degrees\cr -% |[@=|<word>|]| & make |[|<word>|]| repeat the current transformations\cr -% |[@*]| & use previous transformations \cr -\noalign{\smallskip} - |[*|<number>|]| & scale by <number> \cr - |[*|<num>$_x$,<num>$_y$|]| & scale $x$ and $y$ separately \cr -%\noalign{\smallskip} -% |[<|<direction>|]| & shear y-axis to <direction> \cr -\noalign{\smallskip} - |[left]| & rotate anticlockwise by 90$^\circ$ \cr - |[right]| & rotate (clockwise) by 90$^\circ$ \cr - |[flip]| & rotate by 180$^\circ$; same as |[*-1,-1]| \cr - |[dblsize]| & scale to double size \cr - |[halfsize]| & scale to half size \cr -\end{defs} -% -These |[|<shape>|]| modifiers specify transformations of the <object> -currently being built. If the object has a rectangle edge then the size of -the rectangle is transformed to enclose the transformed object; with -a circle edge the radius is altered appropriately. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\TODO: -There should be an - |[@*]| form which repeats the set of transformations applied to the last -object which has been transformed, possibly in an earlier diagram. -Also an |[@=|<word>|]| form allowing a set of transformations to be saved -and used later, simply by specifying |[|<word>|]|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\medskip - -Each successive transformation acts upon the result of all previous. One -consequence of this is that the order of the shape modifiers can make a -significant difference in appearance---in general, transformations do not -commute. Even successive rotations can give different sized rectangles if -taken in the reverse order. - -Sometimes this change of size is not desirable. The following commands are -provided to modify this behaviour. -% -\begin{defs} - |\NoResizing| & prevents size adjustment \cr - |\UseResizing| & restores size adjustments \cr -\end{defs} -% -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\NoResizing{\xyNoResizing@} -\xydef@\UseResizing{\xyUseResizing@} - -\xydef@\xyNoResizing@{% - \global\let\origxyrescale@=\xyrescale@ - \global\let\origxyrotSizeMod@=\xyrotateSizeMod@ - \global\let\xyNoResizing@=\xyNoResizing@@ - \global\let\xyUseResizing@=\xyUseResizing@@ - \xyNoResizing@@ } - -\xydef@\xyNoResizing@@{% - \global\let\xyrescale@=\xyignorescale@ - \global\let\xyrotateSizeMod@=\xyignoreSizeMod@ - } - -\xylet@\xyUseResizing@=\relax -\xydef@\xyUseResizing@@{% - \global\let\xyrescale@=\origxyrescale@ - \global\let\xyrotateSizeMod@=\origxyrotSizeMod@ - } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent -The |\NoResizing| command is also useful to have at the beginning of a -document being typeset using a driver that cannot support scaling effects, -in particular when applied to whole diagrams. In any case an unscaled -version will result, but now the spacing and positioning will be appropriate -to the unscaled rather than the scaled size. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Interface} - -Recognize the <shape> characters and keywords. - -\DOCMODE( -\xydefcsname@{shape [@...]}#1{\xyrotatechar@#1@@}% -\xydefcsname@{shape [<...]}#1{\xyshearchar@{#1}@@}% -\xydefcsname@{shape [*...]}#1{\xyscalechar@{#1}@@}% - -\xydefcsname@{shape [left]}{\xyshape@left@} -\xydefcsname@{shape [right]}{\xyshape@right@} -\xydefcsname@{shape [flip]}{\xyshape@flip@} -\xydefcsname@{shape [halfsize]}{\xyshape@halfsize@} -\xydefcsname@{shape [dblsize]}{\xyshape@dblsize@} -\xydefcsname@{shape [vflip]}{\xyshape@vflip@} -\xydefcsname@{shape [hflip]}{\xyshape@hflip@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Each style modifier adds code to one, or both, of two global lists. -These contents of these lists, called |\preXYtransform@@| -and |\postXYtransform@@|. -An implementation must define macros which are to be bound -to the control sequence names |\preXYtransform@| and |\postXYtransform@|, -which are prepended and appended to the |\Drop@@| and |Connect@@| methods -for the current <object>. - -Also |\Drop@@| and |\Connect@@| must be modified, if this has not already -been done as indicated by |\xy@transform@| having expansion |\relax|. - -\DOCMODE( -\xydef@\preXYtransform@{} -\xydef@\postXYtransform@{} - -\xywarnifdefined\preXYtransform@@ -\xywarnifdefined\postXYtransform@@ - \gdef\preXYtransform@@{} - \gdef\postXYtransform@@{} -\xydef@\xy@transform@{} -\xydef@\preShape@@{} -\xydef@\postShape@@{} -\DOCMODE) - -The transformations must be implemented by emulating the adjoint coordinate -transformations. This requires that code be added to |preXYtransform@@| -in reverse order to the order of occurrence of the <shape> modifiers. -The code is added to |\postXYtransform@@| in natural order, so that each -addition to |\preXYtransform@@| can be closed off, if necessary, -in a correctly nested sequence. - -\DOCMODE( -\xydef@\modXYtransform@{% - \ifx\xy@transform@\empty - \transformDrop@\transformConnect@\resetTransform@\fi -%\show\preShape@@ - \DN@##1{\expandafter\def\expandafter\tmp@\expandafter{##1}}% - \expandafter\next@\expandafter{\preShape@@}% - \DN@##1{\expandafter\gdef\expandafter\preXYtransform@@\expandafter{% - \tmp@ ##1}}\expandafter\next@\expandafter{\preXYtransform@@}% - \DN@##1{\expandafter\def\expandafter\tmp@\expandafter{##1}}% - \expandafter\next@\expandafter{\postShape@@}% - \DN@##1{\expandafter\gdef\expandafter\postXYtransform@@\expandafter{% - \postXYtransform@@ ##1}}\expandafter\next@\expandafter{\tmp@}}% - -\xydef@\transformDrop@{\let\xy@transform@=\relax - \expandafter\def\expandafter\Drop@@\expandafter{% - \expandafter\preXYtransform@\Drop@@\postXYtransform@}} - -\xydef@\transformConnect@{\let\xy@transform@=\relax - \expandafter\def\expandafter\Connect@@\expandafter{% - \expandafter\preXYtransform@\Connect@@\postXYtransform@}} - -\xydef@\resetTransform@{\gdef\preXYtransform@@{}\gdef\postXYtransform@@{}} -\DOCMODE) - -\BUG: The reference point does not move correctly in \PS\ when a shift -modifier has been applied before a rotation. The object prints outside -of its bounding |\rectangleEdge|. Fix this!! - -Global macros are used, so that the same styles can be reused by -successive objects without having to re-interpret <shape> modifiers, -as described next. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Saving transformations} - -Once specified for an <object>, the collection of transformations can be -assigned a name, via |[>|<name>|]|. -The <name> here is any collection of letters -or other characters up to the closing |]|. -Subsequent use of |[>|<name>|]|, with the same or other <objects>s, -will re-establish the saved transformations, acting on the new <object> -with initial reference point appropriate to this <object>. - -\NOTE: Such namings are global and permanent. -They are intended to allow a particular set of transformations to be -easily repeated for different objects inside various pictures and diagrams -within the same document. - -\DOCMODE( -\xydef@\xynametransform@#1{% - \DN@{\expandafter\gdef\expandafter#1\expandafter{\the\toks@}}\next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Scaling and Scaled Text} - -The <shape> modifier can contain either a single scale factor, or a pair -indicating different factors in the $x$- and $y$-directions. -Negative values are allowed, to obtain reflections in the -coordinate axes, but not zero. - -\DOCMODE( -\xydef@\xyscalechar@#1@@{\xyscalechars@#1,#1,@@} - -\xydef@\xyscalechars@#1,#2,#3@@{% - \DN@{\xyrescale@(#1,#2)}% - \dimen@=#1\p@ - \ifdim\dimen@>\z@ \else \ifdim\dimen@<\z@ \else - \DN@{\xywarning@{invalid scaling factors #1, #2}}% - \fi\fi \dimen@=#2\p@ - \ifdim\dimen@>\z@ \else \ifdim\dimen@<\z@ \else - \DN@{\xywarning@{invalid scaling factors #1, #2 }}% - \fi\fi \next@ } - -\xydef@\xyrescale@(#1,#2){% - \setboxz@h{\xyscale@@{#1}{#2}% - \dimen@=\ifx-#1\R@c\advance\dimen@-\R@c \dimen@=-\dimen@ - \else#1\L@c \advance\dimen@-\L@c\fi - \kern\dimen@\boxz@\kern-\dimen@}% - \R@c=\if-#1\L@c\else#1\R@c\fi - \L@c=\if-#1\R@c\else#1\L@c\fi - \U@c=\if-#2\D@c\else#2\U@c\fi - \D@c=\if-#2\U@c\else#2\D@c\fi } - -\xydef@\xyignorescale@(#1,#2){\xywarning@{Ignoring rescale: #1,#2}% - \setboxz@h{\xyscale@@{#1}{#2}\boxz@}}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Some particular scalings. - -\DOCMODE( -\xydef@\xyshape@halfsize@{\xyrescale@(.5,.5)} -\xydef@\xyshape@dblsize@{\xyrescale@(2,2)} -\xydef@\xyshape@flip@{\xyrescale@(-1,-1)} -\xydef@\xyshape@vflip@{\xyrescale@(1,-1)} -\xydef@\xyshape@hflip@{\xyrescale@(-1,1)} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Rotation and Rotated Text} - -Within |[@...]| the |...| are parsed as a <direction> locally, based on the -current direction. The value of count register |\Direction| contains the -information to determine the requested direction. -When no <direction> is parsed then |[@]| requests a rotation to align with -the current direction. - -The special sequence |[@!...]| is provided to pass an angle directly to -the back-end. The \Xy-pic size and shape of the <object> with |\rectangleEdge| -is unchanged, even though the printed form may appear rotated. -This is a feature that must be implemented specially by the back-end. -For example, using the \PS\ back-end, |[@!45]| will show the object rotated -by 45$^\circ$ inside a box of the size of the unrotated object. - -\DOCMODE( -\xydef@\xyrotatechar@{\bgroup - \afterDIRECTIONorEMPTY{\xyrotateSizeMod@}{\xyFN@\xySpecialRotate@i}} - -\xydef@\xySpecialRotate@i{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\xySpecialRotate@i}% - \else\ifx @\next \let\next@=\xyrotateSizeMod@ - \else\addEQ@\ifx \next - \addEQ@\DN@##1@@{%\transformDrop@ - \expandafter\xynametransform@\csname shape [##1]\endcsname\egroup}% - \else\ifx !\next \DN@!{\egroup\getSpecialRotate@}% - \else\ifx *\next \DN@*@@{\egroup\transformDrop@}% - \else \DN@{\xySpecialRotate@@}% - \fi\fi\fi\fi\fi \next@ } - -\xydef@\getSpecialRotate@{\doSpecialRotate@@} -\DOCMODE) - -\TODO: Provide example of repeated, named transformation. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Installation} - -Initially there is no support for the actual effects. -They will be processed according to size/shape requirements, -but the actual rotation or re-sizing is ommitted. -A <driver> file is required to implement the effects. -It need to define alternative expansions to which -|\xyRotate@@#1|, |\xySpecialRotate@@#1@@|, |\doSpecialRotate@@#1@@| -and |\xyscale@@#1#2| can be bound. - -\DOCMODE( -\xydef@\xyRotate@#1{\xyundefinedRotate@{rotate}{#1}@@} -\xydef@\xySpecialRotate@#1@@{\xyundefinedRotate@{rotate}{#1}@@\egroup} -\xydef@\doSpecialRotate@#1@@{\xyundefinedRotate@{special rotate}{#1}@@} -\xydef@\xyscale@#1#2{\xyundefinedRotate@{scale}{#1,#2}@@} - -\xydef@\UnloadRotate@#1{% - \ifx#1\relax\else\xyunload@{rotation extension}\fi - \let\xyRotate@@=\xyRotate@ - \let\xySpecialRotate@@=\xySpecialRotate@ - \let\doSpecialRotate@@=\doSpecialRotate@ - \let\xyscale@@=\xyscale@ } - -\UnloadRotate@\relax - -\xyaddunsupport{rotate}{\UnloadRotate@\relax} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This adjusts the sizes of |\L@c|, |\R@c|, |\U@c| and |\D@c| appropriately. - -\DOCMODE( -\xydef@\xyrotateSizeMod@ @@{% - \L@p=\L@c \R@p=\R@c \U@p=\U@c \D@p=\D@c - \ifdim\cosDirection\p@>\z@ - \R@c=\cosDirection\R@p \L@c=\cosDirection\L@p - \U@c=\cosDirection\U@p \D@c=\cosDirection\D@p - \else - \R@c=\cosDirection\L@p \L@c=\cosDirection\R@p - \U@c=\cosDirection\D@p \D@c=\cosDirection\U@p - \fi - \advance\L@c \if-\sinDirection\D@p\else\sinDirection\U@p\fi - \advance\R@c \if-\sinDirection\U@p\else\sinDirection\D@p\fi - \advance\U@c \if-\sinDirection\L@p\else\sinDirection\R@p\fi - \advance\D@c \if-\sinDirection\R@p\else\sinDirection\L@p\fi - \dimen@ii=\L@c \advance\dimen@ii-\L@p - \edef\tmp@{\egroup \L@c=\the\L@c \R@c=\the\R@c \U@c=\the\U@c \D@c=\the\D@c - \dimen@ii=\the\dimen@ii \noexpand\setboxz@h\bgroup - \noexpand\xyRotate@@{\the\Direction}}\tmp@ - \xydropRotated@ } - -\xydef@\xydropRotated@@{% - \kern\dimen@ii \boxz@ \kern-\dimen@ii \modXYtransform@ \egroup } -\xylet@\xydropRotated@=\xydropRotated@@ - -\xydef@\xyignoreSizeMod@ @@{\xywarning@{Ignoring rotation}} -\DOCMODE) - -Some particular rotations. - -\DOCMODE( -\xydef@\xyshape@left@{\xyrotatechar@ v(0,1)@@} -\xydef@\xyshape@right@{\xyrotatechar@ v(0,-1)@@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Reflections} - -Reflections can be specified by a combination of rotation and a flip --- -either |[hflip]| or |[vflip]|. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Shear transformations} - -\DOCMODE( -\xydef@\xyshearchar@{\xyundefinedRotate@{shearing}} -\DOCMODE) - -\TODO: Provide the structure to support these; then implement it in \PS. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -The following diagram requires various options to be loaded and installed. -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\xyrequire{rotate}\xyrequire{color}\xyrequire{crayon}\xyrequire{line}% -\xyuncatcodes - -\paragraph*{Example} - -The diagram in figure~??[rotate and flips] illustrates many of the effects -described above as well as some additional ones defined by the |color| and -|rotate| extensions. - -\begin{figure*}[t] -\begin{code} -\UseCrayolaColors -\xy\drop[*1.25]\xybox{\POS -(0,0)*{A};(100,40)*{B}**{} - ?<<*[@_][red][o]=<5pt>{\heartsuit}; - ?>>>*[@_][Plum][o]=<3pt>{\clubsuit} - **[|*][|.5pt][thicker]\dir{-}, -?(.1)*[left]!RD\txt{label 1}*[red]\frm{.} -?(.2)*[!gsave newpath - xyXpos xyYpos moveto 50 dup rlineto - 20 setlinewidth 0 0 1 setrgbcolor stroke - grestore][psxy]{.}, -?(.2)*[@]\txt{label 2}*[red]\frm{.}, -?(.2)*[BurntOrange]{*}, -?(.3)*[halfsize]\txt{label 3}*[red]\frm{.} -?(.375)*[flip]\txt{label 4}*[red]\frm{.} -?(.5)*[dblsize]\txt{label 5}*[red]\frm{.} -?(.5)*[WildStrawberry]{*}, -?(.7)*[hflip]\txt{label 6}*[red]\frm{.} -?(.8)*[vflip]\txt{label 7}*[red]\frm{.} -?(.9)*[right]!LD\txt{label 8}*[red]\frm{.} -?(.5)*[@][*.66667]!/^30pt/ - \txt{special effect: aligned text} - *[red]\frm{.} -}\endxy -\end{code} -$$\docode$$ -\caption{Rotations, scalings and flips} -??=[rotate and flips] -\end{figure*} - -\begin{exercise} -Suggest the code used by the author to typeset ??[rotate and flips]. -\answercode -\answertext{This is how the author specified the diagram:} -\answertext\displaycode -\end{exercise} - -The actual code is given in the solution to the exercise. -Use it as a test of the capabilities of your DVI-driver. -The labels should fit snugly inside the accompanying rectangles, -rotated and flipped appropriately. - -\BUG: This figure also uses colours, alters line-thickness and includes -some \PS\ drawing. -The colours may print as shades of gray, -with the line from $A$ to $B$ being thicker than normal. -The wider band sloping downwards may have different width and length -according to the DVI-driver used; this depends on the coordinate system -used by the driver, when `raw' \PS\ code is included. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xyrotate.doc,v $ -% Revision 3.3 1996/12/18 09:40:16 ross -% no changes -% -% 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. -% -% Revision 2.12 1994/10/25 03:01:14 ross -% Final 3beta release [bug fixes & AMS-LaTeX fitting]. -% -% Revision 2.11 1994/07/05 06:38:37 ross -% some documentation was left out previously -% -% Revision 2.10 1994/06/15 12:46:03 ross -% Second release 3beta. -% Colour and line style saving works; label colouring bug fixed. -% -% Revision 2.9 1994/06/09 14:39:49 ross -% Release 3beta. -% -% NEW file to go in version 2.9 by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xysmart.doc b/Master/texmf-dist/source/generic/xypic/xysmart.doc deleted file mode 100644 index 2c1cfb82077..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xysmart.doc +++ /dev/null @@ -1,569 +0,0 @@ -%% $Id$ -%% -%% Xy-pic ``Smart Path feature'' option. -%% Copyright (c) 1998 George C. Necula <necula@cs.cmu.edu> -%% -%% 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-1998 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{smartpath}{Smart Path option}{\stripRCS$Revision: 0.0 $}% - {George C. Necula}{necula@cs.cmu.edu}% - {School of Computer Science, - Carnegie Mellon University, - 5000 Forbes Avenue, - Pittsburgh, PA 15213-3891, USA} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This extends the `arrow' feature, which is therefore required, with a - ``smart'' <path> between two <pos>itions. - -\DOCMODE( -\xyrequire{arrow}\xycatcodes -\DOCMODE) - - The <turn> syntax is extended with the construction -% -\begin{defs1} -% - ??w![<turn>] \iss ??c![`s] <diag> |_| <diag> <turnradius> -% -\end{defs1} -\noindent\unskip -% - ??c![\ar]"in"|_|"out"|/5pt| which draws a connector leaving $p$ in the - "in" <diag>onal direction and arrives at $c$ in the "out" <diag>onal - direction, using |5pt| turns. The connector contains only horizontal - or vertical lines and $\frac18$ sectors of circles of the given - (optional) <turnradius>. - - \BUG: Any labels are placed at the end of the connection. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -% The smart connection algorithm is as follows: -% -% A smart connector consists only of horizontal and vertical straight -% segments connected with 1/4 circles. 1/8 circles might be use at the start -% and end of the connector to reach a horizontal or a vertical. -% -% All possible connectors can be reduced to a series of equivalence classes, -% where two connectors are considered equivalent if they are identical after -% removing from each of them all the horizontal and vertical straight -% segments. Such a connector is called a representative. -% -% The algorithm first computes 10 representatives that start and end in the -% given directions and have at most one point where the orientation is -% changed. 5 of the representatives start counter-clockwise and the other -% 5 start clockwise. Among the counter-clockwise representatives, 1 does not -% have any change in orientation (one arc of circle starting and ending in the -% given directions). The other 4 are obtained by changing the orientation in -% the four points where the circle is tangent to a horizontal or a vertical. -% -% For each representative the algorithm determines if it can be extended with -% horizontal and vertical segments to reach the destination point when -% starting in the source point (the directions are already right by -% construction). For example, horizontal straight lines could be inserted -% in all the points where the representative is tangent to a horizontal line. -% In each such point a straight line segment can be inserted to extend the -% connector horizontally but only in the same direction of the connector at -% that point (the direction of the connetor in a point is towards the -% destination). For example, if the horizontal distance between the source and -% destination points is Dx and the horizontal distance between the start and -% the end of the representative connector is dx then the distance ``Dx - dx'' -% must be covered using horizontal straight lines. This distance is -% distributed equally among all the horizontal extension points of the right -% direction. If no such points exist, then the representative is discarded. -% The cost of a connector is the length of the representative plus the total -% length of straight extension segments, i.e., |Dx-dx| + |Dy-dy|. -% -% The algorithm selects among all the representatives that are not discarded, -% the one leading to the shortest connection. - - -% Change the PATHturn@ to recognize `s as a smart PATH. -\let\origPATHturn@=\PATHturn@ -\def\PATHturn@{% - \ifx \space@\next \expandafter\DN@\space{\xyFN@\PATHturn@}%gobble spaces - \else\ifx s\next - \let\origPATHturn@i=\PATHturn@i\let\PATHturn@i=\PATHsmartturn@i - \let\origPATHturn@cir=\PATHturn@cir\let\PATHturn@cir=\PATHsmartturn@cir - \DN@ s{\xyFN@\origPATHturn@}% Let the original routines do the parsing - \else - \DN@{\origPATHturn@}% - \fi\fi - \next@} - - -% Changed PATHturn@cir to allow half or full turns -\xydef@\PATHsmartturn@cir{% - \edef\next@{{\CIRin@@}{\expandafter\noexpand\CIRorient@@}{\CIRout@@}}% - \expandafter\PATHturn@i\next@} - - -% This is the changed function for placing the turn -\xydef@\PATHsmartturn@i#1#2#3{% - \DN@##1{% - \def\PATHinit@@{% - \xy@@{% - \def\sm@CIRin{#1}\def\sm@CIRout{#3}% The IN and OUT directions. Ignore - % the orientation - \ifx\sm@CIRout\empty %Only on direction is given. Use it as OUT and - %use the previous direction as IN - \let\sm@CIRout=\sm@CIRin - \let\sm@CIRin=\PATHlastout@@ - \fi - ##1\relax}% - \xy@@{\enter@{\basefromthebase@}}% - \xy@@{\sm@conn}% Draw the connection - \xy@@{\X@p=\X@c \Y@p=\Y@c \czeroEdge@% Save the start of the segment - \count@=\sm@CIRout\count@=\the\count@% Move forward a dash to - % touch the edge - \dimen@=\xydashl@ \ABfromdiag@ \advance\X@c\A@ \advance\Y@c\B@ - \edef\PATHpostpos@@{\X@c=\the\X@c \Y@c=\the\Y@c \noexpand\czeroEdge@ - \noexpand\PATHomitslide@@true}}% - \xy@@{\leave@ % - \edef\PATHlastout@@{\sm@CIRout}% Store the last direction - \count@=\sm@CIRout \dimen@=\xydashl@ \Directionfromdiag@}}}% - \expandafter\next@\expandafter{\the\toks@}\toks@={}% - \let\PATHextra@@=\empty - \def\PATHpost@@{\xy@@\PATHpostpos@@}% - \let\PATHlabelsextra@@=\relax - \let\PATHturn@i=\origPATHturn@i - \let\PATHturn@cir=\origPATHturn@cir - \xyFN@\PATHturn@ii} - - -\xydef@\sm@nil{} -\xydef@\sm@nnil{\sm@nil} -\xydef@\sm@maxcost{1000mm}% A very long connector - -% This computes and draws the connection -\xydef@\sm@conn{ -% \xy@showthe p{Source}\xy@showthe c{Dest}% -% \W@{Computing connector from p in \sm@CIRin\space to c in \sm@CIRout -% .Radius is \turnradius@}% - %Adjust the end points to the edge of the objects in the given directions - \enter@{\cfromthec@ \DirectionfromtheDirection@}\cfromp@% Adjust p - \count@=\sm@CIRin\count@=\the\count@ - \dimen@=\xydashl@ \ABfromdiag@ \advance\X@p\A@\advance\Y@p\B@ - \setupDirection@ \the\Edge@c\z@ \czeroEdge@ - \pfromc@ - \reverseDirection@ - % Now leave room for one dash to start with (for placing arrow tails) - \count@=\sm@CIRin\count@=\the\count@ - \dimen@=\xydashl@ \ABfromdiag@ - % Drop the arrow tail in the right place - \edef\tmp@{\noexpand\dir\artail@@}\expandafter\sm@drop@\tmp@ - \X@c=\X@p\advance\X@c\A@ \Y@c=\Y@p\advance\Y@c\B@ \czeroEdge@ - % Draw a straight connection from p to c - \sm@stri - % Set p to the end of the connection - \X@p=\X@c \Y@p=\Y@c - \leave@ -% \xy@showthe p{After adjust}% - \enter@{\pfromthep@ \DirectionfromtheDirection@}\pfromc@% Adjust c - \count@=\sm@CIRout\count@=\the\count@ - \dimen@=\xydashl@ \ABfromdiag@ \advance\X@p-\A@\advance\Y@p-\B@ - \setupDirection@ \the\Edge@c\z@ - \advance\X@c-\A@\advance\Y@c-\B@% Leave room for a dash to terminate the seg - \czeroEdge@ % The final segment will be drawn by PATH@segment - % Clear the tail setting for the last segment - \def\PATHlabelsnext@@{}% - \leave@ -% \xy@showthe c{After adjust}% - % Set the turn radius - \R@=\turnradius@ - \cirrestrict@@%Adjust the radius to fit the circles - % Initialize variables - \let\sm@circles=\sm@nil - \edef\sm@bestcost{\sm@maxcost}% Best so far is very bad - \sm@trycircles 1%Try counter clockwise first - \sm@trycircles{-1}%Try clockwise after -% -% Now check the best -% - \ifdim\sm@bestcost<\sm@maxcost -% \W@{}\W@{Best: \meaning\sm@bestconn}% - \cfromp@ -% \xy@showthe p{Source}% - \expandafter\sm@conndraw\sm@bestconn - \else - \xyerror@{Cannot draw the smart connector}{}% - \fi -} - -% Compute and examine 5 representatives, for the orientation given -% as #1 (1 for counter-clockwise and -1 for clockwise). -\xydef@\sm@trycircles#1{% - \ifnum #1>0% Compute the opposite orientation - \def\sm@CIRorienti{-1}% - \else - \def\sm@CIRorienti{1}% - \fi - % Generate lists of triples (IN,ORIENT,OUT) so that OUT_1=IN_2 and - % IN=IN_1 and OUT=OUT_2, and such that ORIENT_1=#1m ORIENT_2=-ORIENT_1 - % Then try each list in turn. - %Try one circle first (a singleton list) - \edef\tmp@{{{\sm@CIRin}{#1}{\sm@CIRout}}}% - \expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}% - %Now try lists of two circles. - %Advance "in" so that it is a multiple of 90 degrees (that is, odd) - \count@@=\sm@CIRin\count@@=\the\count@@\count@=\count@@ - \sm@roundcount@{#1}% - \edef\sm@savecount@{\the\count@}% - % See if we need to add a 1/8 starting circle - \ifnum\the\count@=\the\count@@ \else -% - \edef\tmp@{{{\sm@CIRin}{#1}{\the\count@}}% - {{\the\count@}{\sm@CIRorienti}{\sm@CIRout}}}% - \expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}% - \fi -% - \count@=\sm@savecount@\count@=\the\count@ - \sm@advancecount@ 2{#1}\edef\sm@savecount@{\the\count@}% Advance 90 deg. - \edef\tmp@{{{\sm@CIRin}{#1}{\the\count@}}% - {{\the\count@}{\sm@CIRorienti}{\sm@CIRout}}}% - \expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}% -% - \count@=\sm@savecount@\count@=\the\count@ - \sm@advancecount@ 2{#1}\edef\sm@savecount@{\the\count@}% Advance 90 deg. - \edef\tmp@{{{\sm@CIRin}{#1}{\the\count@}}% - {{\the\count@}{\sm@CIRorienti}{\sm@CIRout}}}% - \expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}% -% - \count@=\sm@savecount@\count@=\the\count@ - \sm@advancecount@ 2{#1}\edef\sm@savecount@{\the\count@}% Advance 90 deg. - \edef\tmp@{{{\sm@CIRin}{#1}{\the\count@}}% - {{\the\count@}{\sm@CIRorienti}{\sm@CIRout}}}% - \expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}% -} - -% Advance the direction in \count@ by #1 (each unit is 45deg) in the -% dirction #2, taking care of wrap-around -\xydef@\sm@advancecount@#1#2{% -% \W@{Advancing count from \the\count@\space by #1\space -% in \xy@showorient #2}% - \ifnum #2>0 - \edef\tmp@{#1}% - \else - \edef\tmp@{-#1}% - \fi - \advance\count@\tmp@\count@=\the\count@ - \ifnum\the\count@<0 \advance\count@ 8\fi - \ifnum\the\count@>7 \advance\count@ -8\fi - \count@=\the\count@ -% \W@{ Resulting count@=\the\count@}% -} - -% Round counter to the next odd element (multiple of 90deg) -% in the given direction -\xydef@\sm@roundcount@#1{% - \ifcase\the\count@ - \advance\count@ #1\or - \or \advance\count@ #1\or - \or \advance\count@ #1\or - \or \advance\count@ #1\fi - \count@=\the\count@ - \ifnum\the\count@<0 \advance\count@ 8\fi - \ifnum\the\count@>7 \advance\count@ -7\fi - \count@=\the\count@ -} - -\newif\ifsm@firstseg -\newif\ifsm@acceptable - -% Given a representative described as a list of triplets ending with sm@nil, -% verify if is can be extended to the right destination -\xydef@\sm@trycirclelist#1{% - \R@p=\z@\U@p=\R@p% Clear the deltas - \def\sm@exthp{0}\def\sm@exthm{0}% - \def\sm@extvp{0}\def\sm@extvm{0}% Clear the extension points - \def\sm@dxp{0pt}\def\sm@dxm{0pt}% - \def\sm@dyp{0pt}\def\sm@dym{0pt}% Reset the extensions - \def\sm@segs{}% % Clear the segment list - \sm@firstsegtrue % Mark the first segment - \def\sm@connlen{0pt}% % Initialize the connector length - \let\sm@tryclcont=\sm@trycirclelist@i - \sm@trycirclelist@i #1%Strip {} to expose the list elements -% -% The connector was processed -% -% Add an extra segment at then end, if ending in a multiple of 90 deg - \count@@=\sm@CIRout\count@@=\the\count@\count@=\the\count@ - \sm@roundcount@{1}% Direction does not matter - \ifnum\count@=\count@@ - \edef\sm@segs{\sm@segs{{\the\count@}{1}{\the\count@}}}%Accum segment - \fi -% \W@{After trying CL deltax=\the\R@p, deltay=\the\U@p}% -% \sm@showext{\space}% -% \W@{ \space Segs: \meaning\sm@segs}% - %Now see if the connector can be extended enough - \A@=\X@p\advance\A@\R@p\advance\A@ -\X@c\A@=-\A@ % A=Dx - \B@=\Y@p\advance\B@\U@p\advance\B@ -\Y@c\B@=-\B@ % B=Dy - \sm@acceptabletrue -% \W@{ \space Dx=\the\A@, Dy=\the\B@}% - \ifdim\A@>0pt - \ifnum\sm@exthp>0 \dimen@=\A@ \divide\dimen@\sm@exthp - \edef\sm@dxp{\the\dimen@}% - \else \sm@acceptablefalse\fi\fi - \ifdim\A@<0pt - \ifnum\sm@exthm>0 \dimen@=\A@ \divide\dimen@\sm@exthm - \edef\sm@dxm{\the\dimen@}% - \else \sm@acceptablefalse\fi - \A@=-\A@%Make it positive - \fi - \ifdim\B@>0pt - \ifnum\sm@extvp>0 \dimen@=\B@ \divide\dimen@\sm@extvp - \edef\sm@dyp{\the\dimen@}% - \else \sm@acceptablefalse\fi\fi - \ifdim\B@<0pt - \ifnum\sm@extvm>0 \dimen@=\B@ \divide\dimen@\sm@extvm - \edef\sm@dym{\the\dimen@}% - \else \sm@acceptablefalse\fi - \B@=-\B@ - \fi - \ifsm@acceptable - %Compute the cost of the connector - \dimen@=\sm@connlen\advance\dimen@\A@\advance\dimen@\B@ -% \W@{ \space Cost is \the\dimen@}% - %See if it is best so far - \ifdim\dimen@<\sm@bestcost - \edef\sm@bestcost{\the\dimen@}% - \edef\sm@bestconn{{\sm@dxp}{\sm@dxm}{\sm@dyp}{\sm@dym}{\sm@segs}}% - \fi - \fi -} - -\xydef@\sm@showext#1{% - \W@{#1\space hp=\sm@exthp,hm=\sm@exthm,vp=\sm@extvp - ,vm=\sm@extvm,len=\sm@connlen}} - -% Process the next element in the list that describes the representative -% -\xydef@\sm@trycirclelist@i#1{% - \def\@tmp{#1}% - \ifx \@tmp\sm@nnil \let\sm@tryclcont=\relax\else - \expandafter\sm@tryclcar\@tmp \fi - \sm@tryclcont} - -\xydef@\sm@tryclcar#1#2#3{% -% \W@{Trying one turn in #1\space orient #2\space out #3}% - %Compute deltax in R@p and deltay in U@p. Move them to center first. - \dimen@=\ifnum #2<0 -\fi\R@ - \count@=#1\count@=\the\count@ \ABfromdiag@ - \advance\R@p -\B@ \advance\U@p \A@ -% \xy@showdim{ After center}% - % Move them to exit - \count@=#3\count@=\the\count@ \ABfromdiag@ - \advance\R@p \B@ \advance\U@p -\A@ -% \xy@showdim{ After turn}% -% \xy@showthe p{ }% - % Now update the extension points - \sm@computeext{#1}{#2}{#3}% -} - -% -% Compute the extensions -% -\xydef@\sm@computeext#1#2#3{% -% \W@{Computing extents for turn in #1\space orient #2\space out #3}% - \ifsm@firstseg - \sm@accumext#1% - \sm@firstsegfalse - \fi - \count@@=#1\count@@=\the\count@@\count@=\count@@ - \dimen@=\sm@connlen -% \W@{Before rounding count@=\the\count@, count@@=\the\count@@}% - \sm@roundcount@{#2}% -% \W@{After rounding count@=\the\count@, count@@=\the\count@@}% - \ifnum \count@=\count@@ - \sm@advancecount@ 1{#2}% Advance by 90 degrees if odd. By 45 first - \advance\dimen@ 0.7854\R@% It was incremented with 1/8 circle - \ifnum \count@=#3% Check if done - \else - \sm@advancecount@ 1{#2}% Another 45 - \advance\dimen@ 0.7854\R@% It was incremented with 1/8 circle - \fi - \else - \advance\dimen@ 0.7854\R@% It was incremented with 1/8 circle - \fi - \edef\sm@connlen{\the\dimen@}% Save the connector length - \sm@accumext{\the\count@}% - \edef\sm@segs{\sm@segs{{#1}{#2}{\the\count@}}}%Accum segment - \ifnum\the\count@=#3 \else - \edef\tmp@{{\the\count@}{#2}{#3}}%Recursive call - \expandafter\sm@computeext\tmp@ - \fi -} - -% -% Accumulate the extensions -% -\xydef@\sm@accumext#1{% -% \W@{Accumulating extent for #1}% -% \sm@showext{Before accum:}% - \ifcase #1% - \or \count@@=\sm@extvm\advance\count@@ by1% - \edef\sm@extvm{\the\count@@}% 1 is V- - \or\or \count@@=\sm@exthp\advance\count@@ by1% - \edef\sm@exthp{\the\count@@}% 3 is H+ - \or\or \count@@=\sm@extvp\advance\count@@ by1% - \edef\sm@extvp{\the\count@@}% 5 is V+ - \or\or \count@@=\sm@exthm\advance\count@@ by1% - \edef\sm@exthm{\the\count@@}% 7 in H- - \fi -% \sm@showext{After accum:}% -} - - -% Draw a computed connector. -% 1,2,3,4 - dx+, dx-, dv+, dv- (lengths of straight connectors in each -% direction) -% 5 - a list of segments, each enclosed in a pair of braces. -\xydef@\sm@conndraw#1#2#3#4#5{% - \def\sm@contlist{\sm@drawseglist}% - \edef\sm@dxp{#1}% - \edef\sm@dxm{#2}% - \edef\sm@dyp{#3}% - \edef\sm@dym{#4}%Save deltas - \sm@drawseglist #5\sm@nil} -\xydef@\sm@drawseglist#1{% Get the first segment - \ifx #1\sm@nil \def\sm@contlist{}\else - \sm@drawseg #1\fi - \sm@contlist} - -% -% Draw a segment -% -\xydef@\sm@drawseg#1#2#3{% A segment is CIRin+CIRorient+CIRout -% \W@{Drawing segment in=#1\space out=\space #3}\xy@showthe c{Seg start}% - \def\CIRin@@{#1}\def\CIRout@@{#3}% - \sm@straight%See if a straight line is needed here. Insert it and - %reset c if needed - \ifnum\CIRin@@=\CIRout@@ \else - % Compute the center of the circle - \count@=\CIRin@@ - \dimen@=\ifnum #2<0 -\fi\R@ - \ABfromdiag@ - \advance\X@c -\B@ \advance\Y@c \A@ -% \xy@showthe c{Center of circle}% -% \xy@showdim{Before center}% - \ifnum #2>0 \def\CIRorient@@{\CIRacw@}% - \else \def\CIRorient@@{\CIRcw@}\fi - \drop@\literal@{\hbox\bgroup\cir@i}% Place the circle - % Now move the the end of the arc - \dimen@=\ifnum #2<0 -\fi\R@ - \count@=\CIRout@@\count@=\count@%Wierd. If I remove this last assignm -% %\count@ is not set - \ABfromdiag@ -% \xy@showthe c{Before advance}% -% \xy@showdim{Before advance}% - \advance\X@c\B@ \advance\Y@c-\A@ -% \xy@showthe c{After circle}% -% \xy@showdim{After circle}% - \fi -} - -\xydef@\sm@straight{% - \U@c=\z@\D@c=\U@c\L@c=\U@c\R@c=\U@c - \pfromc@ %Set p at the beginning of the segment - \ifcase \CIRin@@ \or% 1 is V- - \A@=\sm@dym\advance \Y@c\A@ %Wierd. I have to use the temporary A@!! - \or\or % 3 is H+ - \A@=\sm@dxp\advance \X@c\A@ - \or\or % 5 is V+ - \A@=\sm@dyp\advance \Y@c\A@ - \or\or % 7 is H- - \A@=\sm@dxm\advance \X@c\A@ \fi - \ifdim\X@c=\X@p\ifdim\Y@c=\Y@p\else \sm@stri \fi\else \sm@stri \fi -} - -\xydef@\sm@stri{% -% \W@{Drawing straight connection}\xy@showthe p{StrSrc}\xy@showthec{StrDst}% - \edef\tmp@{\expandafter\noexpand\arstemprefix@@\arstem@@}% - \expandafter\sm@connect@\tmp@} -\xydef@\sm@connect@#1#{% - \DN@##1{\connect@{#1}{##1}}\next@} - -\xydef@\sm@drop@#1#{% - \DN@##1{\drop@{#1}{##1}}\next@} - -% Compute and draw a connector. External interface -% 1 - in (for p) -% 2 - out (for c) -% 3 - suggested radius -\xydef@\smconn#1#2#3{% - \edef\sm@CIRin{#1}\edef\sm@CIRout{#2}%Memorize the directions - \R@=#3\R@=\the\R@ - \sm@conn} - -\xyendinput -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Here is an example illustrating a smart <path> (as well as the -% extensions of the `necula' extension of \S??[:necula]). -%% -%\xyuncatcodes\xyrequire{necula}\xycatcodes -%\begin{code} -%\def\triangle{[P:DL+/d1pc/,RC+/r1pc/,UL+/u1pc/]}% -%\def\diamond{[P:DL,DR,RC+/r1pc/,UR,UL,LC+/l1pc/]} -%\xy -%\xytracing\POS -% 0 *+<5mm>e|\triangle|[F-]\txt{Test}="one" , -% <2cm,1cm> *+<5mm>e|\diamond|[F.]\txt{Test}="two" -% \ar @{>->} `sdr_d/30pt "one" -%\endxy -%\end{code} -%\displaycode\noindent -%% -% will typeset -%% -%$$\docode$$ - - \BUG: This code should probably be merged with the `arrow' feature. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Finally the log. - -\DOCMODE( -% $Log$ -% Received from George. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xytex.ini b/Master/texmf-dist/source/generic/xypic/xytex.ini deleted file mode 100644 index 48e45e20d2f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xytex.ini +++ /dev/null @@ -1,60 +0,0 @@ -%% $Id: xytex.ini,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-latex-*- -%% -%% Generate plain + Xy-pic format file. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. - -% Load plain.tex -% -\input plain.tex - -% (Any other format parts should be loaded here before Xy-pic). - -% Load Xy-pic kernel: -% -\input xy - -% Extensions and features: You can replace this line with selective loading -% of particular options if you like. -% -\xyoption{all} - -% Now dump the format file. -% -\dump -\endinput - -% $Log: xytex.ini,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/06 02:56:02 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% NEW file to go in version 2.10! diff --git a/Master/texmf-dist/source/generic/xypic/xytextures.doc b/Master/texmf-dist/source/generic/xypic/xytextures.doc deleted file mode 100644 index 3b6be2c6b40..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xytextures.doc +++ /dev/null @@ -1,291 +0,0 @@ -%% $Id: xytextures.doc,v 3.3 1996/12/18 09:41:45 ross Exp $ -%% -%% Xy-pic ``Textures'' 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{textures}{Textures driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This driver provides support for version 1.7+ of Blue Sky Research's -\Textures\ application for Macintosh\footnote{Macintosh is a trademark of -Apple Computer Inc.}. It incorporates support for colour and all of -\Xy-pic's \PS\ effects. Earlier versions of \Textures\ should instead use -the driver option |\xyoption{16textures}|. - -Notice that version 1.7 suffers from a printing bug which may cause a \PS\ -error. A fix is kludged by making sure the first page has been shown in the -viewer before any pages with diagrams are sent to the printer. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\DOCMODE( -\xydef@\Textures@@#1{\dvimessage@{Textures}{#1}} - -\newdriver{% - \xyaddsupport{color}\texturesColor@@ - \xyaddsupport{crayon}\texturesCrayon@@ - \xyaddsupport{ps}\texturesPS@@ - \xyaddsupport{rotate}\texturesRotate@@ - \xyaddsupport{line}\texturesLine@@ - \xyaddsupport{frame}\texturesFrames@@ - \xyaddsupport{tile}\texturesTiles@@ - \xyaddsupport{cmtip}\relax -} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Supported |\special| effects are... -% -\begin{itemize} - -\item colour, both on-screen and with \PS\ - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Textures uses the colour-stack method, but it requires a separate -|\special| to set the new colour after having pushed the previous colour -onto the stack. - -\DOCMODE( -\xydef@\TexturesColor@push#1{\special{color push}\special{color #1}} - -\xydef@\TexturesColours@{\texturesPStypes@ - \let\xylocalColor@=\xystackcolor@ - \let\xycolor@push=\TexturesColor@push - \def\xycolor@{\xycolor@@}% - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}% - \installPScolor@ }\else\DN@{}\fi \next@ - \ifx\xycolor@@\xyNoColor@ \let\xycolor@@=\xycolor@raw@@\fi - \ifx\xycrayolaloaded\empty \DN@{\xystandardcolors@\texturesCrayon@@{}}% - \else\let\next@=\xystandardcolors@ \fi \next@ - \let\xycolorwarning@=\relax \Textures@@{color}% - \let\texturesColor@@=\relax - \let\UnloadColor@@=\NoTexturesColor@ - } - -\xydef@\texturesColor@@{\TexturesColours@} - -\xydef@\NoTexturesColor@{% - \let\xylocalColor@=\xyNoColor@@ - \let\xycolor@=\xyNoColor@ - \let\xycolorwarning@=\xycolorwarning@@ - \let\texturesColor@@=\TexturesColours@ - \let\UnloadColor@@=\UnloadColor@ - } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item crayon colours. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The 68 colours are those that |dvips| recognizes by name, -thanks to Tomas Rokicki. - -\DOCMODE( -\xydef@\texturesCrayon@@{\texturesColor@@\texturesCrayon@} -\xydef@\texturesCrayon@{\installCrayolaColors@}% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \PS\ back-end. - -\DOCMODE( -\xydef@\texturesPS@@{\texturesPS@} -\xydef@\texturesPSunload@{\UnloadPS@ - \let\UnloadPS@@=\UnloadPS@ - \let\texturesPS@@=\texturesPS@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Versions 1.7 and later of \Textures\ have the following kinds of |\special|, -the first two executing in the environment defined by the dictionary -|userdict|. In particular these versions of \Textures\ now allow the -\PS\ dictionary to be loaded into the main working dictionary. - -\begin{itemize} -\item |\special{rawpostscript #1}| puts code directly into the \PS\ file. -\item |\special{postscript #1}| wraps the code within |sps|...|eps|, -which involves a basis change within a |save/restore| pair. -\item |\special{prePostScript #1}| places the \PS\ code within the header -dictionary, called |TeXdict|. -\end{itemize} -Each of these has a corresponding version for reading the \PS\ commands -from a file. - -\DOCMODE( -\xydef@\texturesPStypes@{% - \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \ifx\PSspecial@@\TexturesSpecial@\else - \let\PSspecial@@=\TexturesSpecial@ - \let\PSmacro@@=\TexturesMacro@ - \let\PSdict@@=\TexturesDict@ - \let\PSraw@@=\TexturesRaw@ - \let\PSinclude@@=\TexturesInclude@ - \let\PSspecialdict@@=\TexturesSpecialDict@ - \let\xyPSobeylines@@=\obeyTextureslines@ - \Textures@@{PostScript}% - \fi \texturesCurrpt@ \XYpredict@ } - -\xydef@\TexturesSpecial@#1{\firstPS@@\special{postscript #1}} -\xydef@\TexturesMacro@#1{\special{postscript {#1}xy}} -\xydef@\TexturesDict@#1{\special{prePostScript #1}} -\xydef@\TexturesSpecialDict@#1{\special{prePostScript #1}} -\xydef@\TexturesInclude@#1{\firstPS@@\special{prePostScriptfile #1}} -\xydef@\TexturesRaw@#1{\firstPS@@\special{rawpostscript #1}}% - -{\catcode`\^^M=\active% - \gdef\next{\catcode`\^^M=\active \let^^M=\par% - \let\PSspecial@@=\TexturesDict@ \obeyspaces}} -\xylet@\obeyTextureslines@=\next -\DOCMODE) - -The |currentpoint| is defined for the ``raw'' specials. -For Textures this is the same as |\xyPScurrpt@@@|, in |xyps-ps.doc|. - -\DOCMODE( -\xydef@\texturesCurrpt@{\let\xyPScurrpt@@=\texturesCurrpt@@}% -\xydef@\texturesCurrpt@@{\PSspecial@@{xyi}\PSraw@@{userdict begin xyx end}} - -%\xydef@\texturesCurrpt@@{\PSspecial@@{% -% 0 0 transform grestore gsave itransform }% -% \PSraw@@{userdict begin /xyYpos exch def /xyXpos exch def end}} -\DOCMODE) - -The \PS\ operator called |xyx| is defined in |xyps-ps| for storing the -location placed on the stack by |xyi|. - -\medskip - -This installs the \PS\ backend. - -\DOCMODE( -\xydef@\texturesPS@{\texturesPStypes@ - \let\texturesPS@@=\relax - \let\UnloadPS@@=\texturesPSunload@ - \let\installxyps@@=\relax \installxyps@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item rotated/scaled diagrams and text, using \PS. -\DOCMODE( -\xydef@\texturesRotate@@{\texturesRotate@} - -\xydef@\texturesRotate@{\texturesPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}% - \xyRotScale@@ \installPSrotscale@ }% - \else\DN@{\xydriverfail@{rotations are}\UnloadRotate@\relax}\fi - \next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item variable line-widths and poly-lines, using \PS. -\DOCMODE( -\xydef@\texturesLine@@{\texturesLine@} - -\xydef@\texturesLine@{\texturesPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}% - \installPSline@ }% - \else\DN@{\xydriverfail@{line-widths are}\UnloadLine@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item extra frames and fills, using \PS. -\DOCMODE( -\xydef@\texturesFrames@@{\texturesFrames@} - -\xydef@\texturesFrames@{\texturesPStypes@ - \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@\texturesTiles@@{\texturesTiles@} - -\xydef@\texturesTiles@{\texturesPStypes@ - \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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{itemize} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xytextures.doc,v $ -% Revision 3.3 1996/12/18 09:41:45 ross -% minor improvements to file-loading commands -% -% 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: diff --git a/Master/texmf-dist/source/generic/xypic/xytile.doc b/Master/texmf-dist/source/generic/xypic/xytile.doc deleted file mode 100644 index c1509987bbb..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xytile.doc +++ /dev/null @@ -1,472 +0,0 @@ -%% $Id: xytile.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ -%% -%% Xy-pic ``Pattern and Tile extension'' 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@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{tile}{Pattern and Tile extension}{\stripRCS$Revision: 3.4 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This extension provides the ability to request that a filled region be -tiled using a particular pattern. - -This is an effect not normally available within \TeX. -Instead it requires a suitable <driver> option to provide the necessary -|\special| commands, together with any extra commands needed to implement -the effects. Thus -$$ -\xy - *+\txt<.8\hsize>{Using this extension will have no effect on the output - unless used with a dvi-driver that explicitly supports it.} - *\frm{-} -\endxy -$$ -All effects defined in the |tile| extension can be implemented using most -\PS\ <driver>s, loaded as |\xyoption{|<driver>|}|. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -Like using color, tiling with patterns is an instance of a special style, -since use of a pattern has no effect on the size or shape of the <object> -being typeset. It only affects how the <object> will appear on the printed -page or on-screen. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\LoadAllPatterns{xymacpat} -\def\MacPatterns{\begin{figure*}[ht] -$$ -% - \newcount\R \newcount\C - \def\n{\advance\R1 \C0 \POS(\R,\C)} - \def\F##1{\advance\C1 % - \POS(\R,\C)*+\txt\small{\phantom{filled}\\{\phantom{pattern}}}*[thicker]\frm{-},*[##1]\frm{**}, - +D*+!U\txt\small{##1}} -% -\R-1 \C0 \xy - 0;<0cm,-1.5cm>:<1.5cm,0cm>:: \relax -% \n,{\C1\POS(\R,\C)} - \n\F{mac01}\F{mac02}\F{mac03}\F{mac04}\F{mac05}\F{mac06}\F{mac07}\F{mac08} - \n\F{mac09}\F{mac10}\F{mac11}\F{mac12}\F{mac13}\F{mac14}\F{mac15}\F{mac16} - \n\F{mac17}\F{mac18}\F{mac19}\F{mac20}\F{mac21}\F{mac22}\F{mac23}\F{mac24} - \n\F{mac25}\F{mac26}\F{mac27}\F{mac28}\F{mac29}\F{mac30}\F{mac31}\F{mac32} - \n\F{mac33}\F{mac34}\F{mac35}\F{mac36}\F{mac37}\F{mac38} -% -\endxy -$$ -\caption{The 38 standard Macintosh patterns.} -??=[f.macpats] -\end{figure*}\let\MacPatterns=\relax} -\MacPatterns - -\paragraph*{Patterns} -Patterns are specified as a <shape> modifier, similar to the way colours -are specified by name. -The pattern is applied to the whole of the current <object> whether this be -text, an \Xy-pic line, curve or arrow-tip, or a composite object such as -a matrix or the complete picture. However some DVI-drivers may not support -use of patterns in all cases. - -If the current DVI-driver cannot support patterns then a request for one -simply produces a warning message in the log file. After two such -messages subsequent requests are ignored completely. -% -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xypatternwarning@@{\xypatternmessage@ - \gdef\xypatternwarning@{\xypatternmessage@ - \xywarning@{...no further pattern warnings will be given.}% - \global\let\xypatternwarning@=\relax }} -\xylet@\xypatternwarning@=\xypatternwarning@@ - -\xydef@\xypatternmessage@{% - \xywarning@{Current driver does not support patterns.}}% -\DOCMODE) - -This allows new patterns to be specified from raw data. -Make sure the usual catcodes are in place before the data is tokenised. - -\DOCMODE( -\xydef@\newxypattern{\begingroup\xycatcodes\newxypattern@i} -\xydef@\newxypattern@i#1#2{\edef\next@{\endgroup - \noexpand\newxyPattern{#1}{}{#2}{}}\next@} -\xydef@\newxyPattern#1#2#3#4{\newxypattern@{#1}{#2}{#3}{#4}{}} -\DOCMODE) - -Existing pattern names can be overridden using |\newxypattern@#1#2\relax|. - -\DOCMODE( -\xydef@\newxypattern@#1#2#3#4#5{% - \expandafter\let\expandafter\next@\csname shape [#1]\endcsname - \ifx\next@\relax - \DN@{#4}\ifx\next@\empty - \DN@{#2}\ifx\next@\empty - \DN@{\newxystyle{#1}{\xylocalpattern@{}{#3}\xypattern@{#3}}}% - \else - \DN@{\newxystyle{#1}{\xylocalpattern@{#2}{#3}\xypattern@{#2 #3}}}% - \fi - \else\DN@{#2#3}\ifx\next@\empty - \DN@{\newxystyle{#1}{\xylocalpattern@{#4}{}\xypattern@{#4}}}% - \else - \DN@{\newxystyle{#1}{\xylocalpattern@{#2}{#3}\xypattern@{#4}}}% - \fi\fi - \else \def\tmp@{\relax}\DNii@{#5}% - \ifx\nextii@\tmp@ - \DN@{#4}\ifx\next@\empty - \DN@{#2}\ifx\next@\empty - \DN@{\newxystyle{#1}{\xylocalpattern@{}{#3}\xypattern@{#3}}}% - \else - \DN@{\newxystyle{#1}{\xylocalpattern@{#2}{#3}\xypattern@{#2 #3}}}% - \fi - \else - \DN@{#2#3}\ifx\next@\empty - \DN@{\newxystyle{#1}{\xylocalpattern@{#4}{}\xypattern@{#4}}}% - \else - \DN@{\newxystyle{#1}{\xylocalpattern@{#2}{#3}\xypattern@{#4}}}% - \fi\fi - \else\DN@{}\fi\fi \next@\relax } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\begin{defs} -|[|<name>|]| & use named pattern \hfill \cr -\noalign{\smallskip} -\multispan2{??c![\newxypattern]|{|<name>|}{|<data>|}|}\cr -&\omit specify new pattern using <data>\hfil\cr -\noalign{\smallskip} -\multispan2{|\UsePatternFile{|<file>|}|}\cr -&\omit sets default file for patterns\hfil \cr -\noalign{\smallskip} -\multispan2{|\LoadAllPatterns{|<file>|}|}\cr -&\omit load all patterns in <file>\hfil \cr -\noalign{\smallskip} -\multispan2{|\LoadPattern{|<name>|}{|<file>|}|}\cr -&\omit load named pattern from <file> \hfil\cr -\noalign{\smallskip} -\multispan2{|\AliasPattern{|<alias>|}{|<name>|}{|<file>|}|}\cr -&\omit let <alias> denote pattern from <file>.\hfil -\end{defs} -% -Although pattern data may be specified directly using |\newxypattern|, it is -more usual to load it from a <file> in which many patterns are defined by -name, each on a separate line. By convention such files always end in |.xyp| -(\Xy-pattern) so no extension should be specified. The pattern is then -requested using either the name supplied in the file or by an alias. Once -|\UsePatternFile| has been used, then a null <file> argument to the other -commands will still find patterns in the default file. The default remains in -effect for the current level of \TeX\ grouping. - -For example, the following picture -\begin{code} -\AliasPattern{bricks}{mac12}{xymacpat} -\AliasPattern{bars}{mac08}{xymacpat} -\xy *+<5pc,3.1pc>{},{*[bricks]\frm{**}} - ,*+<2.5pc>[o]{},*[bars]\frm{**} -\endxy -\end{code} -$$\docode$$ -uses `filled' frames from the |frame| feature: -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -There are two methods, perhaps used simultaneously, for handling requests -for a pattern. The |\xylocalpattern@| is the normal method, patterning -whatever objects \TeX\ typesets from fonts or rules. -The more specialized |\xypattern@| is used with a \PS\ <driver>. - -Thus a <driver> which supports both pattern and \PS\ must define a method to -handle |\xylocalpattern@| but should leave alone |\xypattern@|. The latter -method will be adjusted appropriately when a \PS\ <driver> is installed. - -\DOCMODE( -\xydef@\xyNopattern@#1{} -\xylet@\xypattern@@=\xyNopattern@ -\xydef@\xyNopattern@@#1#2{\xypatternwarning@} - -\xylet@\xypattern@=\xypattern@@ -\xylet@\xylocalpattern@=\xyNopattern@@ -\DOCMODE) - -This is to facilitate unloading patterns when the <driver> is changed -to one that does not support this feature. This is the default state, -until an appropriate <driver> is loaded. - -\DOCMODE( -\xydef@\Unloadpattern@{% - \let\xylocalpattern@=\xyNopattern@@ - \let\xypattern@=\xyNopattern@ - \let\xypatternwarning@=\xypatternwarning@@ } - -\Unloadpattern@ -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Pattern data} -A region is tiled using copies of a single `cell' regularly placed so as to -seamlessly tile the entire region. The <data> appearing as an argument to -|\newxypattern| is ultimately passed to the dvi-driver. - -The simplest form of pattern data is: <num> <Hex-data>, where the data -is a 16-character string of Hexadecimal digits; i.e. 0--9, $A$--$F$. -Each Hex-digit equates to 4 binary bits, so this data contains 64 bits -representing pixels in an $8\times8$ array. -The <num> is an integer counting the number of `0's among the 64 bits. -Taken as a fraction of 64, this number or its complement, represents the -average density of `on' pixels within a single cell of the pattern. -Drivers unable to provide the fine detail of a pattern may simply use this -number, or its complement, as a gray-level or part of a colour specification -for the whole region to be tiled. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -A desirable set of standard patterns could be specified to be always loaded. -If such a set emerges indeed as being frequently desirable then it will be -included here. - -\DOCMODE( -\xydef@\xystandardpatterns@{}% -\DOCMODE) - -\NOTE: The driver file must call |\xystandardpatterns@| before these -patterns become accessible. This is to allow any <driver>-specific -definitions to be active when these patterns are defined. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xynew@{read}{\xypatread@} -\xydef@\defaultpattfile@{} - -\xydef@\xygetfilepatterns@#1{\DN@{#1}% - \ifx\next@\empty - \ifx\defaultpattfile@\empty \xywarning@{No pattern file specified.}% - \else \DN@{\expandafter\openpattfile@\expandafter{\defaultpattfile@}}\fi - \else \DN@{\openpattfile@{#1}}\fi \next@ } - -\xydef@\openpattfile@#1{\openin\xypatread@=#1.xyp % - \ifeof\xypatread@\xywarning@{No patterns in file: #1.xyp}% - \closein\xypatread@ - \else \expandafter \xyreadpatfile@ \fi }% - -\xydef@\UsePatternFile#1{\def\defaultpattfile@{#1}} - -\xydef@\LoadAllPatterns{\let\parsepattern@=\parsepattern@@ - \xygetfilepatterns@ } - -\xydef@\LoadPattern#1{\let\parsepattern@=\filepattern@@ - \def\pattname@{#1}\xygetfilepatterns@} - -\xydef@\AliasPattern#1#2{\let\parsepattern@=\aliaspattern@@ - \def\aliasname@{#1}\def\pattname@{#2}\xygetfilepatterns@} -\DOCMODE) - -The character |!| is used to delimit comments within pattern-data -files. - -\DOCMODE( -\xydef@\xyreadpatfile@{% - \loop@ \bgroup\xycatcodes - \global\read\xypatread@ to\xypatline@ - \ifeof\xypatread@ \aftergroup\endpatread@ - \else\aftergroup\morepatread@\fi \edef\next@{% - \egroup\noexpand\getxypattern@{\xypatline@!!!}\relax}\next@ - \repeat@ } -\xydef@\endpatread@{\closein\xypatread@\iffalse} -\xydef@\morepatread@{\iftrue} - -%\xydef@\getxypattern@{\futurelet\next\getxypattern@@} -\xydef@\getxypattern@#1{\def\next{#1}\getxypattern@@} -\xydef@\getxypattern@@{\DN@{!!!}\ifx\next\next@\DN@{}% - \else\DN@{\expandafter\parsepattern@\next}\fi \next@ } - -\xydef@\parsepattern@@#1 #2!#3\relax{\newxypattern{#1}{#2}} -\xydef@\filepattern@@#1 #2!#3\relax{\DN@{#1}% - \ifx\next@\pattname@ - \DN@{\expandafter\foundpattern@\expandafter{\pattname@}{#2}}% - \else\DN@{}\fi \next@ } -\xydef@\foundpattern@#1#2{\newxypattern{#1}{#2}\endpatread@\fi - \expandafter\eat@} -\xydef@\aliaspattern@@#1 #2!#3\relax{\DN@{#1}% - \ifx\next@\pattname@ - \DN@{\expandafter\foundpattern@\expandafter{\aliasname@}{#2}}% - \else\DN@{}\fi \next@ } - -%\xydef@\parsepattern@#1 #2!#3\relax{\message{#1:#2}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\medskip -\noindent -The file |xymacpat.xyp| contains defining data for the 38 standard -patterns available with the Macintosh Operating system. -Figure~??[f.macpats] displays all these patterns. - -% Comment this line an uncomment one below, to move the patterns to a -% later page. - -%\MacPatterns - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%\clearpage -\paragraph*{Rotating and Resizing Patterns} -% -Some implementations of patterns are sufficiently versatile to allow extra -parameters to affect the way the pattern data is interpreted. \PS\ is one -such implementation in which it is possible to rotate the whole pattern and -even to expand or contract the sizes of the basic cell. - -Due to the raster nature of output devices, not all such requests can be -guaranteed to produce aesthetic results on all devices. In practice only -rotations through specific angles (e.g 30$^\circ$, 45$^\circ$, 60$^\circ$) -and particular scaling ratios can be reliably used. -Thus there is no sophisticated interface provided by \Xy-pic to access these -features. However the `\PS\ escape' mechanism does allow a form of access, -when a \PS\ <driver> is handling pattern requests. - -Special \PS\ operators |pa| and |pf| set the pattern angle (normally 0) -and `frequency' measured in {\em cells per inch}. Hence, when used as an -<object>-modifier, |[! 30 pa 18.75 pq]| rotates the pattern by 30$^\circ$ -clockwise and uses a smaller pattern cell (larger frequency). -The default frequency of $12.5=300/(8\times3)$ means that -each pixel in a pattern cell corresponds, on a device of resolution -300{\small dpi}, to a $3\times3$ square of device pixels; -on such a device $18.75$ uses $2\times2$ squares. - -At 300{\small dpi} a frequency of $9.375=300/(8\times4)$ uses $4\times4$ -squares. These match the natural size for pixels on a 75{\small dpi} screen -and are pretty close for 72{\small dpi} screens. -Though appropriate for screen displays, these are `too chunky' for high -quality printed work. Doubling the frequency is too fine for some patterns, -hence the intermediate choice of $12.5$ as default. -In order for printed output to match the screen view, a \PS\ operator |macfreq| -has been defined to facilitate requests for $9.375$, via |[!macfreq]|. - -The next diagram displays changes to the frequency. -% -$$ - \newcount\R \newcount\C - \def\n{\advance\R1 \C0 \POS(\R,\C)} - \def\F#1#2{\advance\C1 % - \POS(\R,\C)*+\txt\small{filled\\pattern}*[thicker]\frm{-} - ,*[! #2 pq][#1]\frm{**}, - +D*+!U\txt\small{#2}} -% -\R-1 \C0 \xy - 0;<0cm,-1.5cm>:<2.0cm,0cm>:: \relax -% \n,{\C1\POS(\R,\C)} - \n\F{mac38}{9.375}\F{mac38}{12.5}\F{mac38}{18.75}\F{mac38}{37.5} - \n\F{mac16}{9.375}\F{mac16}{12.5}\F{mac16}{18.75}\F{mac16}{37.5} -% -\endxy -$$ - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\paragraph*{Saving patterns: \ } -% -When styles are saved using ??c[[=]<word>|]|, see note~??g[xy.doc:define -<shape>] of \S??g[xy.doc:object], then the current pattern (if any) is also -saved. Subsequent use of |[|<word>|]| recovers the pattern as well as colour -and line-style settings. This includes any explicit variations applied using -the ``Style Escape'' mechanism. - -Here is a variation of an earlier example, with extra effects. -\begin{code} -\UsePatternFile{xymacpat} -\AliasPattern{bricks}{mac12}{} -\LoadPattern{mac28}{}\LoadPattern{mac05}{} -\xy *=0[! macfreq -45 pa][mac28][|=Bars]{} -,*+<12pc,4pc>{}*[bricks]\frm{**} -,-<3.5pc,0pt>,*+<2.65pc>[o]{},*[Bars]\frm{**} -,*[thicker]\frm{o},+<6pc,0pt> -,*+<5pc, 2.7pc>{},*[mac05]\frm{**},*\frm{-,} -,*[white]\txt\Large\bf\sf{Kilroy\\was here} -\endxy -\end{code} -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Add this extension to the driver-tables as ``unload'', -unless an already-loaded driver can support it: - -\DOCMODE( -\DN@{\xyaddunsupport{tile}\Unloadpattern@}% -\ifx\xyeverywithoption@tile@\undefined -\else\ifx\xyeverywithoption@tile@\empty -\else - \DN@{\xysetup@@{\xywithoption{tile}{\xyeverywithoption@tile@\xydriversloaded@@}}}% -\fi\fi \next@ -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Uncomment this to move the patterns to a later page. - -%\MacPatterns - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xytile.doc,v $ -% Revision 3.4 1997/05/18 01:13:24 ross -% Essential bugfixes. -% -% Revision 3.3 1996/12/18 09:43:06 ross -% documentation change -% -% 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.0 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xytips.doc b/Master/texmf-dist/source/generic/xypic/xytips.doc deleted file mode 100644 index 93136a7e92f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xytips.doc +++ /dev/null @@ -1,239 +0,0 @@ -%% $Id: xytips.doc,v 3.3 1996/12/19 04:12:13 krisrose Exp $ -%% -%% Xy-pic ``More Tips'' extension. -%% Copyright (c) 1992-1996 Kristoffer H. Rose <kris@diku.dk> -%% -%% This file is part of the Xy-pic package for graphs and diagrams in TeX. -%% Copyright (c) 1991-1996 Kristoffer H. Rose <kris@diku.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{tips}{More Tips extension}{\stripRCS$Revision: 3.3 $}% - {Kristoffer H.~Rose}{kris@diku.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This extension provides several additional styles of `tips' for use - (primarily) as arrow heads, and makes it possible to define - customised tips. This is used to support tips that mimic the style - of the Computer Modern fonts\footnote{This function was earlier - supported by the |cmtip| extension which is still included in the - distribution but is now obsolete.} by Knuth~(see - \cite{K86:ComputerMT} and \cite[appendix~F]{K84:TeXbook}) and of the - Euler math fonts distributed by the \AMS. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - - First save the \Xy-commands that may need restoring. - -\DOCMODE( -\xylet@\tip@xy=\tip@ -\xylet@\atip@xy=\atip@ -\xylet@\btip@xy=\btip@ - -\xylet@\Tip@xy=\Tip@ -\xylet@\Ttip@xy=\Ttip@ - -\xylet@\tipjot@xy=\tipjot@ -\DOCMODE) - - Next declare the fonts (initially the original |cm| style). - -\DOCMODE( -\xyfont@\xy@@atfont=xycmat10 -\xyfont@\xy@@btfont=xycmbt10 -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Font selection is done with the command -% -\begin{defs1} -??c![\SelectTips] |{|<family>|}| |{|<size>|}| -\end{defs1} -% -\DOCMODE( -\xydef@\tipfamily@@{cm} -\xydef@\tipsize@@{10} - -\xydef@\SelectTips#1#2{% - \DN@{#1}\ifx\next@\empty\else \def\tipfamily@@{#1}\fi - \DN@{#2}\ifx\next@\empty\else \def\tipsize@@{#2}\fi - \csname tipfamily \tipfamily@@\endcsname \ignorespaces} -\DOCMODE) -\noindent\unskip -% - where the <family> and <size> should be selected from the following - table. -% -\begin{center} -\def\TIPS#1#2{\hbox{\SelectTips{#1}{#2}\UseTips - $\xy;/r1pc/**{}?>*@{>}**{-}\endxy~ - \xy;/r1pc/**{}?>*@2{>}**@2{-}\endxy~ - \xy;/r1pc/**{}?>*@3{>}**@3{-}\endxy$}}% -\leavevmode -\begin{tabular}{\otherbar c\otherbar c\otherbar c\otherbar c\otherbar} -\hline - Family & ??c![10] & ??c![11] & ??c![12] \\ -\hline - {}??c![xy] &{}\TIPS{xy}{10} &{}\TIPS{xy}{11} &{}\TIPS{xy}{12} \\ - {}??c![cm] &{}\TIPS{cm}{10} &{}\TIPS{cm}{11} &{}\TIPS{cm}{12} \\ - {}??c![eu] &{}\TIPS{eu}{10} &{}\TIPS{eu}{11} &{}\TIPS{eu}{12} \\ -\hline -\end{tabular} -\end{center} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The table is really encoded in control sequences - |\tipfamily|~<family> that look very much alike since all the - currently existing combinations are merely alternative fonts. This - is likely to change, however, \dots\smiley - - First |cm|, \ie, computer modern: these are simplified by the fact - that we can use the normal double arrows. - -\DOCMODE( -\xydefcsname@{tipfamily cm}{\loadtipfonts@ - \let\tip@=\tip@cm \let\atip@=\atip@cm \let\btip@=\btip@cm - \let\Tip@=\Tip@xy \let\Ttip@=\Ttip@xy \def\tipjot@{.2em}} - -\xydef@\loadtipfonts@{\edef\next##1##2{##1=xy\tipfamily@@##2\tipsize@@}% - \next{\font\xy@@atfont}{at} - \next{\font\xy@@btfont}{bt} -} - -\xydef@\tip@cm{\activatetips@ \tip@x\tip@@} -\xydef@\atip@cm{\activatetips@ \tip@x\atip@@} -\xydef@\btip@cm{\activatetips@ \tip@x\btip@@} - -\xydef@\activatetips@{\let\xyatipfont=\xy@@atfont \let\xybtipfont=\xy@@btfont} -\DOCMODE) - - Next Euler tips: the single tips merely reuse the |cm| code except - for the sligtly smaller distance between double tips; the double - arrows have to be recoded to mimic the steeper Euler appearance. - -\DOCMODE( -\xydefcsname@{tipfamily eu}{\loadtipfonts@ - \let\tip@=\tip@cm \let\atip@=\atip@cm \let\btip@=\btip@cm - \let\Tip@=\Tip@eu \let\Ttip@=\Ttip@eu \def\tipjot@{.15em}} - -\xydef@\Tip@eu{\kern1.5pt \vrule height1.5pt depth1.5pt width\z@ - \Tip@@eu \kern1.5pt \egroup - \U@c=1.5pt \D@c=1.5pt \L@c=1.5pt \R@c=1.5pt \Edge@c={\circleEdge}% - \Invisible@false \Hidden@false \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}} - -\xydef@\Tip@@eu{\count@=\DirectionChar - \advance\count@-10 \ifnum\count@<\z@ \advance\count@128 \fi - \xyatipfont\char\count@ - \advance\count@ 20 \ifnum127<\count@ \advance\count@-128 \fi - \xybtipfont\char\count@} - -\xydef@\Ttip@eu{\kern2.4pt \vrule height2.4pt depth2.4pt width\z@ - \Ttip@@eu \kern2.4pt \egroup - \U@c=2.4pt \D@c=2.4pt \L@c=2.4pt \R@c=2.4pt \Edge@c={\circleEdge}% - \Invisible@false \Hidden@false - \def\Leftness@{.5}\def\Upness@{.5}% - \def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}} - -\xydef@\Ttip@@eu{% - \setboxz@h\bgroup\reverseDirection@\line@ \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ - \kern-\L@c \boxz@ \kern\L@c \Tip@@eu} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - Once a selection is made, the following commands are available: -% -\begin{defs} -??c![\UseTips] & activate selected tips\cr -??c![\NoTips] & deactivate\cr -\end{defs} -% -\DOCMODE( -\xydef@\UseTips{\csname tipfamily \tipfamily@@\endcsname} - -\xydef@\NoTips{\let\tip@=\tip@xy \let\atip@=\atip@xy \let\btip@=\btip@xy - \let\Tip@=\Tip@xy \let\Ttip@=\Ttip@xy \let\tipjot@=\tipjot@xy} -\DOCMODE) -\noindent\unskip -% - They are local and thus can be switched on and/or off for individual - pictures using the \TeX\ grouping mechanism, \eg, -% -\begin{code} -\SelectTips{cm}{10} -\xy*{} \ar - @{*{\UseTips\dir_{<<}}-*{\NoTips\dir{>}}} - (20,5)*{} \endxy -\end{code} -\displaycode -\noindent -% - will typeset -$$ -\docode -$$ - regardless of which tips are used otherwise in the document. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{End \& log} - -\DOCMODE( -\xyendinput - -% $Log: xytips.doc,v $ -% Revision 3.3 1996/12/19 04:12:13 krisrose -% New for this maintenance release. -% -% Generalisation of xycmtip.doc,v 3.1 1995/09/05 20:31:32 kris Exp krisrose -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.6 1993/10/21 20:36:09 kris -% NEW file to go in version 2.7! -% -% Extracted from xypic.doc 2.6.1.1. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs how we are formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xytp-f.doc b/Master/texmf-dist/source/generic/xypic/xytp-f.doc deleted file mode 100644 index ed15b6fff6b..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xytp-f.doc +++ /dev/null @@ -1,306 +0,0 @@ -%% $Id: xytp-f.doc,v 3.3 1996/12/18 09:49:07 ross Exp $ -%% -%% Xy-pic ``Frame extension'' TPIC backend support. -%% 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\xytpfloaded\empty \message{not reloaded}\endinput \fi -\let\xytpfloaded=\empty \xycatcodes - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection{frames.} - -The included file |xytp-f.tex| -(version \stripRCS$Revision: 3.3 $) provides \TPIC\ support -for some of the effects defined in the |frame| extension. -This file is loaded and its effects are activated automatically whenever -|\xyoption{frame}| is requested and the current <driver> supports both -\TPIC\ and frames. Should there be any need to turn off this support, -the following commands are available; they obey usual \TeX\ groupings. -% -\begin{defs} -|\NoTPICframes| & remove \TPIC\ support\kern-50pt \cr -|\UseTPICframes| & reinstate \TPIC. -\end{defs} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Installation} - -The <driver>-file must call the following macro to rebind control sequences -defined in |xyframe|, thereby allowing the \TPIC\ methods to be used. - -\DOCMODE( -\xydef@\installTPICframes@{% - \let\framed@body@@=\xyTPICframed@body@ - \let\circled@x@@=\xyTPICcircled@x@ - \let\ellipsed@x@@=\xyTPICellipsed@x@ - \installTPICfills@ - \xyuncatcodes} - -\xydef@\UseTPICframes{\installTPICframes@} -\xydef@\NoTPICframes{\UnloadFrames@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Frames: solid, dotted and dashed} - -\DOCMODE( -\xydef@\xyTPICframed@body@{\DN@{\framed@body@}% - \ifdim\R@=\z@ - \ifx\framehfill\frm@solidh@@ - \DN@{\xyTPICframed@rect@i\xytpic@solid@@}% - \else\ifx\framehfill\frm@dashh@@ - \DN@{\xyTPICframed@rect@i\xytpic@dashed@@}% - \else\ifx\framehfill\frm@doth@@ - \DN@{\xyTPICframed@rect@i\xytpic@dotted@@}% - \fi\fi\fi\fi \next@ } - -\xydef@\xyTPICframed@rect@i#1{\vglue\U@c - \hbox{\hglue\L@c\xyTPICrect@{#1}\hglue\R@c}\vglue\D@c} - -%\xydef@\xyTPICframed@oval@#1{\vglue\U@c -% \hbox{\hglue\L@c\xyTPICoval@{}\hglue\R@c}\vglue\D@c} -\DOCMODE) - -Dotted and dashed circles have no particular support, whereas -solid circles and ellipses can use |\xyTPICfullcircle@|. - -\DOCMODE( -\xydef@\xyTPICcircled@x@{\DN@{\xyTPICcircled@xx{}}% - \ifx\framehfill\frm@doth@@ \DN@{\xyTPICdotcirc@}% - \else\ifx\framehfill\frm@dashh@@\DN@{\xyTPICdashcirc@}% - \fi\fi \next@ } - -\xydef@\xyTPICcircled@xx#1{\vglue2\R@ - \hbox{\hglue2\R@\xyTPICfullcircle@#1\hglue2\R@}\vglue2\R@} - -\xydef@\xyTPICdotcirc@{\let\zerodot=\framezerodot@@ - \L@=\R@ \circled@x@@ } -\xydef@\xyTPICdashcirc@{\L@=\R@ \circled@x@@ } - -\xydef@\xyTPICdotellip@{\ellipsed@x@@ } -\xydef@\xyTPICdashellip@{\ellipsed@x@@ } -\DOCMODE) - -In practice the parameters |#1| and |#2| will hold <dimen>s. - -\DOCMODE( -\xydef@\xyTPICellipsed@x@#1#2{\DN@{\xyTPICellipsed@xx{}}% - \ifx\framehfill\frm@doth@@\DN@{\xyTPICdotellip@}% - \else\ifx\framehfill\frm@dashh@@\DN@{\xyTPICdashellip@}% - \fi\fi \next@{#1}{#2}} - -\xydef@\xyTPICellipsed@xx#1#2#3{\vglue #3\vglue #3\relax - \hbox{\L@c = #2\relax \R@c=\L@c \D@c = #3\relax \U@c=\D@c - \hglue#2\hglue#2\relax \R@=#2\relax \L@=#3\relax - \xyTPICfullcircle@#1\hglue#2\hglue#2\relax}% - \vglue #3\vglue #3\relax} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xyTPICrect@#1{\DNii@{\relax}\DN@{#1}\toks@={}% - \ifx\next@\nextii@ \xytpic@pn0\relax\xytpic@bk - \def\xytpic@style@@{\xytpic@fp}% - \else\DNii@{\empty}% - \ifx\next@\nextii@\def\xytpic@style@@{\xytpic@ip}\xytpic@bk - \else\ifx\next@\empty\def\xytpic@style@@{\xytpic@ip}\xytpic@bk - \else#1\fi\fi\fi - \xytpic@pt\R@c - \expandafter\addtotoks@\expandafter{\expandafter{\the\count@}}% - \xytpic@pt\D@c - \expandafter\addtotoks@\expandafter{\expandafter{\the\count@}}% - \xytpic@pt{\L@c}% - \expandafter\addtotoks@\expandafter{\expandafter{\the\count@}}% - \xytpic@pt{\U@c}% - \expandafter\addtotoks@\expandafter{\expandafter{\the\count@}}% - \expandafter\xyTPICrect@x\the\toks@ - \DNii@{\relax}\DN@{#1}\ifx\next@\nextii@ - \def\xytpic@style@@{\xytpic@fp}\expandafter\xyTPICrect@x\the\toks@\fi } - -\xydef@\xyTPICrect@x#1#2#3#4{\xyTPIC@special{pa -#3 -#4}% - \xyTPIC@special{pa -#3 #2}\xyTPIC@special{pa #1 #2}% - \xyTPIC@special{pa #1 -#4}\xyTPIC@special{pa -#3 -#4}% - \xytpic@style@@ } - -\xydef@\xyTPICoval@#1{\DN@{#1}\DNii@{\relax}% - \ifx\next@\nextii@ \DN@{\xyTPICfilledoval@\relax}% - \else\DNii@{\empty}\ifx\next@\nextii@ \DN@{\xyTPICfilledoval@\empty}% - \else\DN@{\xyTPICoval@i{#1}}\fi\fi \next@ } - -%\xydef@\xyTPICoval@i#1{\bgroup -% \let\framehfill=\frm@solidh@@ -% \let\framevfill=\frm@solidv@@ -% \let\framed@body@@=\framed@body@ -% \edef\tmp@{{\R@}}\expandafter\framed@@\tmp@ -% \egroup } -\xylet@\xyTPICoval@i=\eat@ - -\xydef@\xyTPICfilledoval@#1{% - {\advance\L@c-\R@ \advance\R@c-\R@ \xyTPICrect@{\empty}}% - {\advance\U@c-\R@ \advance\D@c-\R@ \xyTPICrect@{\empty}}% - \L@=\R@ \bgroup - \dimen@=-\U@c \advance\dimen@\R@ \xytpic@pt\dimen@ - \edef\tmp@{\the\count@}% - \dimen@=-\L@c \advance\dimen@\R@ \xytpic@pt\dimen@ - \edef\tmp@{\noexpand\toks@={{\the\count@}{\tmp@}}}% - \setTPICcircstyle@ \xyTPICcircle@{\tmp@}\egroup - \bgroup - \dimen@=-\U@c \advance\dimen@\R@ \xytpic@pt\dimen@ - \edef\tmp@{\the\count@}% - \dimen@=\R@c \advance\dimen@-\R@ \xytpic@pt\dimen@ - \edef\tmp@{\noexpand\toks@={{\the\count@}{\tmp@}}}% - \setTPICcircstyle@ \xyTPICcircle@{\tmp@}\egroup - \bgroup - \dimen@=\D@c \advance\dimen@-\R@ \xytpic@pt\dimen@ - \edef\tmp@{\the\count@}% - \dimen@=-\L@c \advance\dimen@\R@ \xytpic@pt\dimen@ - \edef\tmp@{\noexpand\toks@={{\the\count@}{\tmp@}}}% - \setTPICcircstyle@ \xyTPICcircle@{\tmp@}\egroup - \bgroup - \dimen@=\D@c \advance\dimen@-\R@ \xytpic@pt\dimen@ - \edef\tmp@{\the\count@}% - \dimen@=\R@c \advance\dimen@-\R@ \xytpic@pt\dimen@ - \edef\tmp@{\noexpand\toks@={{\the\count@}{\tmp@}}}% - \setTPICcircstyle@ \xyTPICcircle@{\tmp@}\egroup - \DN@{#1}\DNii@{\relax}\ifx\next@\nextii@ - \def\tmp@{{\xytpic@pn0\def\xytpic@style@@{\xytpic@fp}}}% - \DN@{\expandafter\xyTPICoval@i\tmp@}% - \else\DN@{}\fi \next@ } - -%\xylet@\xyTPICoval@=\xyTPICrect@ - -\xydef@\setTPICcircstyle@{% - \def\xytpic@circstyle@@{\xytpic@ia}\xytpic@bk} - -\xydef@\xyTPICcircle@#1{\DNii@{\relax}% - \DN@{#1}\toks@={00}\ifx\next@\nextii@ - \xytpic@pn0\relax\xytpic@bk \def\xytpic@circstyle@@{\xytpic@ar}% - \else\DNii@{\empty}% - \ifx\next@\nextii@ \setTPICcircstyle@ - \else\ifx\next@\empty \setTPICcircstyle@ - \else#1\fi\fi\fi -% - \xytpic@pt\R@ - \expandafter\addtotoks@\expandafter{\expandafter{\the\count@}}% - \xytpic@pt\L@ - \expandafter\addtotoks@\expandafter{\expandafter{\the\count@}}% - \expandafter\xytpic@circstyle@@\the\toks@ 0\twoPi@} - -\xydef@\xyTPICellipse@{% - \X@p=\R@c \advance\X@p-\L@c \divide\X@p\tw@ \R@=\R@c \advance\R@-\X@p - \Y@p=\D@c \advance\Y@p-\U@c \divide\Y@p\tw@ \L@=\D@c \advance\L@-\Y@p - \xyTPICcircle@} - -\xydef@\xyTPICrect@Special#1#2#3#4{\TPICmacro@@{#1 fp}} -\xydef@\xyTPICdotrect@Special#1{\TPICmacro@@{#1 fp}} -\xydef@\xyTPICdashrect@Special#1{\TPICmacro@@{#1 fp}} -\xydef@\xyTPICcirc@Special#1{\TPICmacro@@{#1 ar}} -\xydef@\xyTPICdotcirc@Special#1{\TPICmacro@@{#1 ar}} -\xydef@\xyTPICdashcirc@Special#1{\TPICmacro@@{#1 ar}} -%\xydef@\xyTPICoval@Special#1{\TPICmacro@@{#1 fp}} -%\xydef@\xyTPICdotoval@Special#1{\TPICmacro@@{#1 fp}} -%\xydef@\xyTPICdashoval@Special#1{\TPICmacro@@{#1 fp}} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{Filled regions} - -\DOCMODE( -\xydef@\xyTPICfilledRegion#1#2{\vglue\U@c - \hbox{\hglue\L@c#1#2\empty\hglue\R@c}\vglue\D@c} - -\xydef@\filledRectangle@TPIC@@{%\W@{tp:\the\R@}% - \ifdim\R@=\z@ \DN@{\xyTPICfilledRegion\xyTPICrect@}% - \else \DN@{\xyTPICfilledRegion\xyTPICoval@}% - \fi \next@ } -\xydef@\filledCircle@TPIC@@#1{{\R@c=\R@ \L@c=\R@ \U@c=\R@ \D@c=\R@ - \xyTPICfilledRegion\xyTPICcircle@#1{}}} -\xydef@\filledEllipse@TPIC@@{\xyTPICfilledRegion\xyTPICellipse@} -\xydef@\filledOval@TPIC@@{\xyTPICfilledRegion\xyTPICoval@} - -\xydef@\installTPICfills@{% - \let\filledRectangle@@=\filledRectangle@TPIC@@ - \let\filledOval@@=\filledOval@TPIC@@ - \let\filledCircle@@=\filledCircle@TPIC@@ - \let\filledEllipse@@=\filledEllipse@TPIC@@ -} -\DOCMODE) - -Rectangles are treated as a special case of ovals. -The |#2| parameter signifies whether the outline of the object -should also be stroked (|#2|=|\relax|) after being filled. -Such a stroke is always in black. - -\DOCMODE( -\xydef@\xyTPICfillrect@Special#1#2{% - \ifx#2\relax\TPICmacro@@{#1 fp}% - \else\TPICmacro@@{#1 ip}\fi} -\xydef@\xyTPICfilloval@Special#1#2{% - \ifx#2\relax\TPICmacro@@{#1 fp}% - \else\TPICmacro@@{#1 ip}\fi} -\xydef@\xyTPICfillcirc@Special#1#2{% - \ifx#2\relax\TPICmacro@@{#1 ar}% - \else\TPICmacro@@{#1 ai}\fi} -\xydef@\xyTPICfillellipse@Special#1#2{% - \ifx#2\relax\TPICmacro@@{#1 ar}% - \else\TPICmacro@@{#1 ai}\fi} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\endinput - -% $Log: xytp-f.doc,v $ -% Revision 3.3 1996/12/18 09:49:07 ross -% cosmetic changes to macro names -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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.0 by by Ross Moore. -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xytpic.doc b/Master/texmf-dist/source/generic/xypic/xytpic.doc deleted file mode 100644 index 02cddcb977f..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xytpic.doc +++ /dev/null @@ -1,472 +0,0 @@ -%% $Id: xytpic.doc,v 3.3 1996/12/18 09:50:38 ross Exp $ -%% -%% Xy-pic ``tpic'' TPIC backend, for lines, curves and fills. -%% 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{tpic}{TPIC backend}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\ifx\undefined\TPIC \def\TPIC{{\smc tpic}}\fi -This option allows the \Xy-pic fonts to be replaced by \TPIC\ |\special|s, -when used with a dvi-driver capable of supporting them. Extra capabilities -include smoother lines, evenly spaced dotted/dashed curves, variable -line-widths, gray-scale fills of circles, ellipses and polygonal regions. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Use of \TPIC\ |\special|s offers an alternative to the \Xy-pic fonts. However -they require a dvi-driver that is capable of recognizing and interpreting -them. One such viewer is |xdvik|, Karl Berry's modification to the |xdvi| -viewer on \unix\ systems running X-windows or a derivative. |dvipsk|, Karl -Berry's modification to |dvips| also handles \TPIC\ |\special|s, so -|xdvik|/|dvipsk| is an good combination for quality screen-display and -\PS\ printing. - -Once loaded using |\xyoption{tpic}|, with an appropriate <driver> also -specified either already or subsequently, the following commands are -available to turn the \TPIC\ backend off/on. -% -\begin{defs} -|\NoTPICspecials| & turns off \TPIC\ specials.\kern-50pt\cr -|\UseTPICspecials| & reinstates \TPIC\ specials.\kern-30pt -\end{defs} - -\DOCMODE( -\xynew@{if}\ifTPICspecials@ -\xydef@\UseTPICspecials{\TPICspecials@true} -\xydef@\NoTPICspecials{\TPICspecials@false} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -There is a limit to the number of points allowable in a path. For paths -constructed by \Xy-pic, which includes spline curves, when the limit -is reached the path is automatically flushed and a new path commenced. -The following command can be used to customise this limit---initially -set at $300$ for use with \xdvi---to suit alternative <driver>s. -% -\begin{defs} -|\maxTPICpoints{|<num>|}| & set maximum for paths -\end{defs} - -\DOCMODE( -\xynew@{count}\xytpic@cnt -\xydef@\xytpic@max{300} -\xydef@\maxTPICpoints#1{\count@=#1 \relax - \ifnum\count@>\tw@ \edef\xytpic@max{\the\count@}% - \else\expandafter\xyTPICmaxwarning@\expandafter{\the\count@}\fi} -\xydef@\xyTPICmaxwarning@#1{max points must be at least 2, #1 invalid} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Each object involving \TPIC\ |\special|s must set the style, using -|\xytpic@set@| to store a macro as the expansion of |\xytpic@style@@|. -Currently this is global, since a \TPIC\ object must be completed once -it has been started --- perhaps this is not necessary. - -Note that |\xytpic@set@| uses |\xdef|, but has a |\noexpand| in its -expansion; this forces expansion of the argument, when there is one, -to the control sequence passed as the first token following |\xytpic@set@|. - -\DOCMODE( -\xydef@\xytpic@style@@{\xytpic@fp} -\xydef@\xytpic@reset@{\gdef\xytpic@style@@{\xytpic@fp}% - \global\xytpic@cnt=\z@ } -\xydef@\xytpic@set@#1{\xdef\xytpic@style@@{\noexpand#1}} -\DOCMODE) - -Here are the actual |\specials| that get placed in the dvi-file. - -\DOCMODE( -\xydef@\xytpic@pn#1{\xyTPIC@special{pn #1}} -\xydef@\xytpic@pa#1#2{\global\advance\xytpic@cnt\@ne\relax - \ifnum\xytpic@cnt=\xytpic@max\relax \xyTPIC@special{pa #1 #2}% - \kern-\X@c\raise-\Y@c\hbox{\xytpic@style@@}\kern\X@c -% \xytpic@ip - \global\xytpic@cnt=\@ne \relax\fi \xyTPIC@special{pa #1 #2}} -\xydef@\xytpic@fp{\xyTPIC@special{fp}} -\xydef@\xytpic@ip{\xyTPIC@special{ip}} -\xydef@\xytpic@da#1{\xyTPIC@special{da #1}} -\xydef@\xytpic@dt#1{\xyTPIC@special{dt #1}} -\xydef@\xytpic@sp#1{\xyTPIC@special{sp #1}} -\xydef@\xytpic@ar#1#2#3#4#5#6{\xyTPIC@special{ar #1 #2 #3 #4 #5 #6}} -\xydef@\xytpic@ia#1#2#3#4#5#6{\xyTPIC@special{ia #1 #2 #3 #4 #5 #6}} -\xydef@\xytpic@sh#1{\xyTPIC@special{sh #1}} -%\xydef@\xytpic@psb#1{\xyTPIC@special{:[begin] #1}} -%\xydef@\xytpic@pse#1{\xyTPIC@special{:[end]}} -% -\xydef@\xytpic@wh{\xyTPIC@special{sh 0}} % obsolete -\xydef@\xytpic@bk{\xyTPIC@special{sh 1}} % obsolete - -\xydef@\xyTPIC@special#1{\special{#1}} -\xydef@\xyTPIC@noisy#1{\W@{TPIC: #1}\special{#1}} -\xydef@\NoisyTPIC{\let\xyTPIC@special=\xyTPIC@noisy} -\DOCMODE) - -Some effects may require a \TPIC\ |\special| to be placed both -before and after the <object>. - -\DOCMODE( -\xydef@\xyTPICsplit@#1#2{\setboxz@h{#1\boxz@#2}}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\TPIC\ uses units of `milli-inches' for coordinates, -but inches for dot-separations and dash-length. - -\DOCMODE( -\xydef@\xytpic@pt#1{\dimen@=#1\divide\dimen@ by72 % - \multiply\dimen@ by 1000 \advance\dimen@.5\p@ - \count@=\dimen@ \divide\count@\p@ } -\xydef@\xytpic@in#1{\dimen@=#1\divide\dimen@ by72 % - \edef\next@{\expandafter\removePT@\the\dimen@}}% -\DOCMODE) - -The \TPIC\ location is calculated relative to the current \TeX\ reference -point. Hence most \TPIC\ objects start at the $(0,0)$ location. - -\DOCMODE( -\xydef@\xytpic@dot@@{\xytpic@pa00} -\xydef@\xytpic@width@{\xytpic@pt{\xylinethick@}% - \expandafter\xytpic@pn\expandafter{\the\count@}} -%\xylet@\xytpic@width@=\relax - -\xydef@\xytpic@line{% - \xytpic@dot@@ \xytpic@pt{-\d@X}\count@@=\count@ - \xytpic@pt\d@Y \edef\next@{{\the\count@@}{\the\count@}}% - \expandafter\xytpic@pa\next@ \xytpic@style@@ \xytpic@reset@ } - -\xydef@\xytpic@solid@@{\xytpic@set@\xytpic@fp} -\xydef@\xytpic@dashed@@{\xytpic@in\xydashl@ \xytpic@dad} -\xydef@\xytpic@dotted@@{\dimen@=.5\xydashl@ \xytpic@in\dimen@ \xytpic@dtd} -\xydef@\xytpic@dad{\expandafter\xytpic@set@\expandafter{% - \expandafter\xytpic@da\expandafter{\next@}}} -\xydef@\xytpic@dtd{\expandafter\xytpic@set@\expandafter{% - \expandafter\xytpic@dt\expandafter{\next@}}} - -\xydef@\xytpic@polysolid@{\xytpic@set@\xytpic@fp} -\xydef@\xytpic@polydashed@#1{\count@=#1 \xytpic@dad} -\xydef@\xytpic@polydotted@#1{\count@=#1 \xytpic@dtd} -\xydef@\xytpic@postpoly@{\xytpic@style@@ \xytpic@reset@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{re-bindings} - -This is similar to the mechanism used by the \PS\ back-end to rebind -``hooks'' to incorporate a switch according to the current value of -|\ifTPICspecials@|. - -\DOCMODE( -\xydef@\TPICalternative@#1#2{% -\expandafter\global\expandafter\let\csname origxy#2@\endcsname=#1% - \xdef#1{\noexpand\ifTPICspecials@ - \noexpand\expandafter\expandafter\noexpand\csname xytpic@#2@\endcsname - \noexpand\else - \noexpand\expandafter\expandafter\noexpand\csname origxy#2@\endcsname - \noexpand\fi}}% -\DOCMODE) - -Allow only one instance of |\setupxyTPIC@|; thereafter simply do -|\reloadxyTPIC@| to turn on anything that has been turned off. - -\DOCMODE( -\xydef@\setupxyTPIC@{\xywarning@{using TPIC specials}% - \TPICalternative@{\solid@}{solid}% - \TPICalternative@{\dash@}{dashed}% - \TPICalternative@{\point@}{point}% - \TPICalternative@{\circhar@@}{circhar}% - \TPICalternative@{\splinesolid@}{splinesolid}% -% \TPICalternative@{\splinedashed@}{splinedashed}% -% \TPICalternative@{\splinedotted@}{splinedotted}% - \xywithoption{frame}{\xyinputorelse@{xytp-f}{}\xyuncatcodes}% - \let\setupxyTPIC@=\reloadxyTPIC@ - \activateTPIC@ } - -\xydef@\xyunloadTPIC@{\xywarning@{TPIC specials turned off}% - \xywithoption{curve}{\xysetup@@\uninstallTPICcurves@ }% - \xywithoption{line}{\xysetup@@\uninstallTPICline@ }% - \xywithoption{frame}{\xysetup@@\uninstallTPICframes@ }% - \TPICspecials@false - \let\setupxyTPIC@=\reloadxyTPIC@ } - -\xydef@\activateTPIC@{% - \xywithoption{line}{\xysetup@@\installTPICline@}% - \xywithoption{curve}{\xysetup@@\installTPICcurves@}% - \xywithoption{frame}{\xysetup@@\installTPICframes@}% - \TPICspecials@true } - -\xydef@\reloadxyTPIC@{\xywarning@{TPIC specials back on}\activateTPIC@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{straight lines} - -\DOCMODE( -\xydef@\xytpic@solid@{% - \ifInvisible@ \let\next@=\no@@ - \else \DN@{\xyTPICstraight@{\xytpic@solid@@ \xytpic@line}}\fi - \next@ } - -\xydef@\xytpic@dashed@{\line@ - \def\Connect@@{\xyTPICstraight@{\xytpic@dashed@@ \xytpic@line}}} - -\xydef@\xytpic@point@{\xytpic@dot@@\xytpic@fp\egroup - \Invisible@false \Hidden@false \def\Leftness@{.5}\def\Upness@{.5}\ctipEdge@ - \def\Drop@@{\styledboxz@}% - \def\Connect@@{\xyTPICstraight@{\xytpic@dotted@@ \xytpic@line}}} - -\xydef@\xyTPICstraight@#1{\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@c \raise\Y@c\hbox{#1}}% - \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@@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{spline curves} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent -Of the curves defined in the |xycurve| extension, only solid spline curves -are supported. This is done by treating the spline as a polygon (poly-line) -with many segments. The dotted or dashed variants do not work correctly. - -Implementations of \TPIC\ draw dashed polygons such that the start and -finish of each segment is solid. Since these segments can be very short, -the effect is simply to create a solid line. Similarly the shortness of the -segments tends to give nothing at all for large portions of a dotted curve. -What is needed is an implementation whereby the on/off nature of a dashed -or dotted polygon is determined by the accumulated length, not the length -along just the current segment. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xydef@\xytpic@splinesolid@{\xyTPICspline@\xytpic@fp } -\xydef@\xytpic@splinedashed@{\xytpic@in\xydashl@\expandafter\xyTPICspline@ - \expandafter{\expandafter\xytpic@da\expandafter{\next@}}} -\xydef@\xytpic@splinedotted@{\xytpic@in{.5\xydashl@}\expandafter\xyTPICspline@ - \expandafter{\expandafter\xytpic@dt\expandafter{\next@}}} - -\xydef@\xyTPICspline@#1{\setbox\splinebox@=\copy\voidb@x %\zerodot - \SloppyCurves %\splinetol@=\xydashl@ % \xytpic@ip - \global\xytpic@cnt=\@ne \xytpic@set@{#1}% - \def\splineextra@@{\xyTPICspline@dot}% - \def\xycrvdrop@{ }\def\xycrvconn@{}\splineset@@ \xytpic@style@@} - -\xydef@\xyTPICspline@dot{\xytpic@pt{\X@c}\count@@=\count@ - \xytpic@pt{-\Y@c}\edef\next@{{\the\count@@}{\the\count@}}% - \expandafter\xytpic@pa\next@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{line width} - -\DOCMODE( -\xydef@\xyTPIClinewidth@#1{\xytpic@pt{#1}\edef\next@{\the\count@}} - -\xydef@\installTPICline@{% - \let\xylinewidth@@=\xylinewidth@ - \let\xylineSpecial@@=\xytpic@pn - \let\transxyline@@=\xyTPIClinewidth@ } - -\xydef@\uninstallTPICline@{\UnloadLine@}% -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{circles and ellipses} - -Here we catch circles and ellipses specified using the |\xycircle| command -from the |xycurve| extension. Since TPIC supports only solid circles, -we catch it only when the <style> is either |{}| or |{-}|. - -\DOCMODE( -\xydef@\xydoTPICcircle@#1{\DN@{#1}% - \ifx\next@\empty\DN@{\xyTPICfullcircle@}% - \else\expandafter\DNii@\expandafter{\addDASH@{}}% - \ifx\next@\nextii@\DN@{\L@=\R@ \xyTPICfullcircle@}% - \else\DN@{\dosolidcircle@{#1}}\fi\fi \next@ } - -\xydef@\xyTPICfullcircle@{\xyTPICpartcircle@{00}0\twoPi@}% - -\xydef@\xyTPICpartcircle@#1#2#3{% - \xytpic@pt{\R@}\expandafter\DNii@\expandafter{\the\count@}% - \xytpic@pt{\L@}\edef\next@{#1{\nextii@}{\the\count@}{#2}{#3}}% - \expandafter\xytpic@ar\next@ } - -\xydef@\qartPi@{0.7853981} -\xydef@\tartPi@{2.3561944} -\DOCMODE) - -This replaces just the font character, called using |\circhar@@#1|. - -\DOCMODE( -\xydef@\xytpic@circhar@#1{\xytpic@width@\ifcase#1% - \xytpic@pt{\R@}\edef\next@{{{\the\count@}0}}% - \expandafter\xyTPICcirchar@i\next@{\tartPi@}{\fullPi@}\kern\partroottwo\R@ - \or - \xytpic@pt{\halfroottwo\R@}\edef\next@{{{\the\count@}0}}% - \expandafter\xyTPICcirchar@i\next@{\halfPi@}{\tartPi@}\kern\halfroottwo\R@ - \or - \xytpic@pt{\z@}\edef\next@{{{\the\count@}0}}% - \expandafter\xyTPICcirchar@i\next@{\qartPi@}{\halfPi@}\kern\halfroottwo\R@ - \or - \xytpic@pt{-\halfroottwo\R@}\edef\next@{{{\the\count@}0}}% - \expandafter\xyTPICcirchar@i\next@0{\qartPi@}\kern\partroottwo\R@ - \or - \xytpic@pt{-\halfroottwo\R@}\edef\next@{{{\the\count@}0}}% - \expandafter\xyTPICcirchar@i\next@{-\qartPi@}0\kern\partroottwo\R@ - \or - \xytpic@pt{\z@}\edef\next@{{{\the\count@}0}}% - \expandafter\xyTPICcirchar@i\next@{-\halfPi@}{-\qartPi@}\kern\halfroottwo\R@ - \or - \xytpic@pt{\halfroottwo\R@}\edef\next@{{{\the\count@}0}}% - \expandafter\xyTPICcirchar@i\next@{-\tartPi@}{-\halfPi@}\kern\halfroottwo\R@ - \or - \xytpic@pt{\R@}\edef\next@{{{\the\count@}0}}% - \expandafter\xyTPICcirchar@i\next@{-\fullPi@}{-\tartPi@}\kern\partroottwo\R@ - \fi} - -\xydef@\xyTPICcirchar@i#1#2#3{\L@=\R@ \xyTPICpartcircle@{#1}{#2}{#3}} -\DOCMODE) - -\paragraph*{quadratic splines} - -\DOCMODE( -\xydef@\xyTPIC@spline@ii@{\DN@{\xy@spline@ii}% - \ifx\splineSTYLE@\empty\DN@{\xyTPICqspline@{0}}% - \else\expandafter\DNii@\expandafter{\addDASH@{}}% - \ifx\splineSTYLE@\nextii@\DN@{\xyTPICqspline@{0}}% - \else\expandafter\DNii@\expandafter{\addDOT@{}}% - \ifx\splineSTYLE@\nextii@\DN@{\xyTPICqspline@{-.5}}% - \else\expandafter\expandafter\expandafter\DNii@\expandafter\expandafter - \expandafter{\expandafter\addDASH@\addDASH@{}}% - \ifx\splineSTYLE@\nextii@\DN@{\xyTPICqspline@{}}% - \fi\fi\fi\fi - \next@ }% - -\xydef@\xyTPIC@accumulate{\xytpic@pt\X@c \count@@=\count@ - \xytpic@pt{-\Y@c}\edef\next@{{\the\count@@}{\the\count@}}% - \expandafter\xytpic@pa\next@ } - -\xydef@\xyTPICqspline@#1{\xytpic@width@ - \xytpic@in{#1\xydashl@}\expandafter\gdef\expandafter\xytpic@style@@ - \expandafter{\expandafter\xytpic@sp\expandafter{\next@}}% - \save@ \cfromp@ \xyTPIC@accumulate - \edef\smapp@@{\s@bot}\smapxy@i{\xyTPIC@accumulate}% - \leave@ \xyTPIC@accumulate \xytpic@style@@ \xytpic@reset@ - \enter@{}\xy@spline@x } -\DOCMODE) - -\DOCMODE( -\xydef@\installTPICcurves@{% - \let\dosolidcircle@@=\xydoTPICcircle@ - \let\xy@spline@ii@@=\xyTPIC@spline@ii@ - } -\xydef@\uninstallTPICcurves@{% - \let\dosolidcircle@@=\dosolidcircle@ - \let\xy@spline@ii@@=\xy@spline@ii } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{frames} -\DOCMODE( - \xywithoption{frame}{\xyinputorelse@{xytp-f}{}} -\DOCMODE) - -Implement color fills by reading from a |\TPICfillcolor|. -Implement pattern fills by reading from a |\TPICfillpatt|. -Read these whenever a fill is requested. - - -\DOCMODE( -\xydef@\uninstallTPICframes@{\UnloadFrames@} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xyendinput - -% $Log: xytpic.doc,v $ -% Revision 3.3 1996/12/18 09:50:38 ross -% adjusted Drop@@ for styles -% minor improvements to file-loading commands -% -% 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.1 by Ross Moore 1995/03/18. -% replaces xyps-col.doc -% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-column:77 -% fill-prefix:"" -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyv2.doc b/Master/texmf-dist/source/generic/xypic/xyv2.doc deleted file mode 100644 index aa237e4c2e5..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyv2.doc +++ /dev/null @@ -1,868 +0,0 @@ -%% $Id: xyv2.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -%% -%% Xy-pic ``Version 2 compatibility'' feature. -%% Copyright (c) 1993-1995 Kristoffer H. Rose <kris@diku.dk> -%% -%% 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-1995 Kristoffer H. Rose <kris@diku.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{v2}{Version 2 Compatibility}{\stripRCS$Revision: 3.4 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% - {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, - DK--8000 Aarhus~C} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - This \FILE\ describes the special backwards compatibility with - \Xy-pic version~2: diagrams written according to the ``Typesetting - diagrams with \Xy-pic: User's Manual''~\cite{R92:TypesettingDXUM} - should typeset correctly with this loaded. The compatibility is - available either as an \Xy-option or through the special files - |xypic.sty| and |xypic.tex| described below. - - There are a few exceptions to the compatibility: the features described - in~\S??[unsupported] below are not provided because they are not as - useful as the author originally thought and thus virtually never - used. And one extra command is provided to speed up typesetting of - documents with \Xy-pic version~2 diagrams by allowing the new - compilation functionality with old diagrams. - - The remaining sections list all the obsolete commands and suggest - ways to achieve the same things using \Xy-pic \xyversion, \ie, - without the use of this option. They are grouped as to what part of - \Xy-pic replaces them; the compilation command is described last. - - \NOTE: ``version 2'' is meant to cover all public releases of \Xy-pic - in 1991 and 1992, \ie, version 1.40 and versions~2.1 through~2.6. - The published manual cited above (for version 2.6) is the reference - in case of variations between these versions, and only things - documented in that manual will be supported by this - option!\footnote{In addition a few of the experimental facilities - supported in v2.7--2.12 are also supported.} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - - Before we start, the old name macro. - -\DOCMODE( -\xylet@\XY=\Xy -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Unsupported incompatibilities} -??=[unsupported] - - Here is a list of known incompatibilities with version 2 even when - the |v2| option is loaded. -% -\begin{itemize} -\item - Automatic `shortening' of arrow tails using ??c![|<<] breaks was a - bug and has been `fixed' so it does not work any more. - Put a |||<\hole| break before it. -\item - The version~2.6 ??c![*] position operator is not available. The - version 2.6 construction $t_0|;|t_1|*(|x|,|y|)|$ should be replaced by - the rather long but equivalent construction -$$ -\begin{array}{r@{}l} - |{|\,t_0\,|;p+/r/:|\,t_1\,|=|&|"1";p+/u/,x;(0,0);:|\\ - &|"1";p+/r/,y;(0,0);::|\,|(|x|,|y|)}| -\end{array} -$$ - In most cases $t_0|;|t_1|**{}?(|x|)|$, - possibly with a trailing $|+/^|\dots|/|$, suffices instead. -\item - Using $t_0|;|t_1|:(|x|,|y|)|$ as the target of an arrow command does - not work. Enclose it in braces, \ie, write -$$ - |{|\,t_0\,|;|\,t_1\,|:(|x|,|y|)}| -$$ -\item - The older ??c![\pit], ??c![\apit], and ??c![\bpit] commands are not - defined. Use |\dir{>}| (or |\tip|) with variants and rotation. -\item - The even older notation where an argument in braces to |\rto| and the - others was automatically taken to be a `tail' is not supported. Use - the supported |||<|\dots\ notation. -\end{itemize} -% - If you do not use these features then your version~2 (and earlier) - diagrams should typeset the same with this option loaded except that - sometimes the spacing with version~3 is slightly different from that - of version~2.6 which had some spacing bugs. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Obsolete kernel features} -??=[kernel] - - The following things are added to the kernel by this option and - described here: idioms, obsolete positions, obsolete connections, and - obsolete objects. For each we show the suggested way of doing the - same thing without this option: - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Removed \protect\AMS-\TeX\ idioms} - - Some idioms from \AMS-\TeX\ are no longer used by \Xy-pic: the - definition commands ??c![\define] and ??c![\redefine], and the size - commands ??c![\dsize], ??c![\tsize], ??c![\ssize], and ??c![\sssize]. - Please use the commands recommended for your format---for plain \TeX\ - these are |\def| for the first two and |\displaystyle|, |\textstyle|, - |\scriptstyle|, and |\scriptscriptstyle| for the rest. The |v2| - option ensures that they are available anyway. - -\DOCMODE( -\ifx\redefine\undefined \let\redefine=\def \fi -\ifx\define\undefined \let\define=\xydef@ \fi - -\ifx\dsize\undefined \let\dsize=\displaystyle \fi -\ifx\tsize\undefined \let\dsize=\textstyle \fi -\ifx\ssize\undefined \let\ssize=\scriptstyle \fi -\ifx\sssize\undefined \let\sssize=\scriptscriptstyle \fi -\DOCMODE) - - Version also 2 used the \AMS-\TeX\ ??c![\text] and a (non-object) box - construction ??c![\Text] which are emulated---|\text| is only defined - if not already defined, however, using the native one (of \AMS-\TeX\ - or \AMS-\LaTeX\ or whatever) if possible. Please use the |\txt| - object construction described in~\S??g[xy.doc:objectlib.text] - directly since it is more general and much more efficient! - -\DOCMODE( -\ifx\text\undefined - \def\text{\relax\textC}% - \xydef@\textC#1{\relax - \ifmmode\mathchoice - {\hbox{\the\textfont0\relax#1}}% - {\hbox{\the\textfont0\relax#1}}% - {\hbox{\the\scriptfont0\relax#1}}% - {\hbox{\the\scriptscriptfont0\relax#1}}% - \else{\relax#1}\fi} -\fi - -\xydef@\Text{\relax\xyFN@\Text@} - -\xydef@\TextC{\relax\textC}% - -\xydef@\Text@{% - \addLT@\ifx\next \addGT@{\addLT@\DN@##1}{\A@=##1\Text@i}% - \else \DN@{\A@=\maxdimen \Text@i}\fi \next@} - -\xydef@\Text@i#1{% - \ifmmode \mathchoice - {\expandafter\Text@ii\the\textfont0{#1}}% - {\expandafter\Text@ii\the\textfont0{#1}}% - {\expandafter\Text@ii\the\scriptfont0{#1}}% - {\expandafter\Text@ii\the\scriptscriptfont0{#1}}% - \else - \leavevmode \expandafter\Text@ii\the\textfont0{#1}% - \fi\ignorespaces} - -\xydef@\Text@ii{\hbox\bgroup \txt@i} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Obsolete state} - - Upto version 2.6 users could access the state variables ??c![\cL], - ??c![\cR], ??c![\cH], and ??c![\cD], which are defined. - -\DOCMODE( -\xylet@\cL=\L@c -\xylet@\cR=\R@c -\xylet@\cD=\D@c -\xylet@\cH=\U@c -\DOCMODE) - - From v2.7 to 2.12 users could use the names of the state |\dimen| - registers ??c![\Xmin], ??c![\Xmax], ??c![\Ymin], and ??c![\Ymax]; - ??c![\Xp], ??c![\Yp] ??c![\Dp], ??c![\Up], ??c![\Lp], and ??c![\Rp]; - ??c![\Xc], ??c![\Yc] ??c![\Dc], ??c![\Uc], ??c![\Lc], and ??c![\Rc]; - ??c![\Xorigin], ??c![\Yorigin], ??c![\Xxbase], ??c![\Yxbase], - ??c![\Xybase], and ??c![\Yybase]. Now the same effect can be - achieved using <corner>s but |v2| defines the aliases. - -\DOCMODE( -\xylet@\Xc=\X@c -\xylet@\Yc=\Y@c -\xylet@\Uc=\U@c -\xylet@\Dc=\D@c -\xylet@\Lc=\L@c -\xylet@\Rc=\R@c - -\xylet@\Xp=\X@p -\xylet@\Yp=\Y@p -\xylet@\Up=\U@p -\xylet@\Dp=\D@p -\xylet@\Lp=\L@p -\xylet@\Rp=\R@p - -\xylet@\dX=\d@X -\xylet@\dY=\d@Y - -\xylet@\Xorigin=\X@origin -\xylet@\Yorigin=\Y@origin -\xylet@\Xxbase =\X@xbase -\xylet@\Yxbase =\Y@xbase -\xylet@\Xybase =\X@ybase -\xylet@\Yybase =\Y@ybase - -\xylet@\Xmin=\X@min -\xylet@\Ymin=\Y@min -\xylet@\Xmax=\X@max -\xylet@\Ymax=\Y@max -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Obsolete position manipulation} - - In version~2 many things were done using individual <decor> control - sequences that are now done using <pos> operators. -% -\begin{defs} - Version 2 positioning\hfil & Replacement \cr - \noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} - ??c![\go]<pos> & |\POS;p,|<pos> \cr - ??c![\aftergo]|{|<decor>|}|<pos> \kern-2pc \cr - &\kern-3pc|\afterPOS{|<decor>|};p,|<pos> \cr - ??c![\merge] & |\POS.p\relax| \cr - ??c![\swap] & |\POS;\relax| \cr - ??c![\Drop]|{|<text>|}| & |\drop+{|<text>|}| \cr -\end{defs} -% -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - The code is basically that of |xy.doc| 2.6\dots - -\DOCMODE( -\xydef@\go{\aftergo{}} -\xydef@\aftergo#1{\xy@\aftergo{\enter@\pfromthec@}\afterPOS{\xy@@\leave@#1}} - -\xydef@\merge{\POS.p\relax} - -\xydef@\swap{\xy@\swap\swap@} - -\xydef@\Drop{\expandafter\drop\entrymodifiers@} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Obsolete connections} - - These connections are now implemented using directionals. -% -\begin{defs} - Version 2 connection\hfil & Replacement \cr - \noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} - ??c![\none] & |\connect h\dir{}| \cr - ??c![\solid] & |\connect h\dir{-}| \cr - ??c![\Solid] & |\connect h\dir2{-}| \cr - ??c![\Ssolid] & |\connect h\dir3{-}| \cr - ??c![\dashed] & |\connect h\dir{--}| \cr - ??c![\Dashed] & |\connect h\dir2{--}| \cr - ??c![\Ddashed] & |\connect h\dir3{--}| \cr - ??c![\dotted] & |\connect h\dir{.}| \cr - ??c![\Dotted] & |\connect h\dir2{.}| \cr - ??c![\Ddotted] & |\connect h\dir3{.}| \cr - ??c![\dottedwith]|{|<text>|}|& |\connect h{|<text>|}| \cr -\end{defs} -% - Note how the `hidden' specifier |h| should be used because version~2 - connections did not affect the size of diagrams. - -\DOCMODE( -\xydef@\none{\xy@\none{}\ignorespaces} - -\xydef@\solid{\connect h\dir{-}} -\xydef@\Solid{\connect h\dir2{-}} -\xydef@\Ssolid{\connect h\dir3{-}} - -\xydef@\dashed{\connect h\dir{--}} -\xydef@\Dashed{\connect h\dir2{--}} -\xydef@\Ddashed{\connect h\dir3{--}} - -\xydef@\dotted{\connect h\dir{.}} -\xydef@\Dotted{\connect h\dir2{.}} -\xydef@\Ddotted{\connect h\dir3{.}} - -\xydef@\dottedwith#1{\connect h{#1}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Obsolete tips} - - These objects all have |\dir|-names now: -% -\begin{defs} - Version 2 tip\hfil & Replacement \cr - \noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} - ??c![\notip] & |\dir{}| \cr - ??c![\stop] & |\dir{||}| \cr - ??c![\astop] & |\dir^{||}| \cr - ??c![\bstop] & |\dir_{||}| \cr - ??c![\tip] & |\dir{>}| \cr - ??c![\atip] & |\dir^{>}| \cr - ??c![\btip] & |\dir_{>}| \cr - ??c![\Tip] & |\dir2{>}| \cr - ??c![\aTip] - & \kern-2pc|\object=<5pt>:(32,-1)\dir^{>}|\kern-1pc \cr - ??c![\bTip] - & \kern-2pc|\object=<5pt>:(32,+1)\dir_{>}|\kern-1pc \cr - ??c![\Ttip] & |\dir3{>}| \cr - ??c![\ahook] & |\dir^{(}| \cr - ??c![\bhook] & |\dir_{(}| \cr - ??c![\aturn] & |\dir^{'}| \cr - ??c![\bturn] & |\dir_{'}| \cr -\end{defs} -% -\DOCMODE( -\xydef@\notip{\dir{}} - -\xydef@\stop{\dir{|}} -\xydef@\astop{\dir^{|}} -\xydef@\bstop{\dir_{|}} - -\xydef@\tip{\dir{>}} -\xydef@\atip{\dir^{>}} -\xydef@\btip{\dir_{>}} - -\xydef@\Tip{\dir2{>}} - -\xywarnifdefined\aTip -\xywarnifdefined\bTip -{\xyuncatcodes - \gdef\aTip{\object=<5pt>:(32,-1)\dir^{>}} - \gdef\bTip{\object=<5pt>:(32,+1)\dir_{>}}} - -\xydef@\Ttip{\dir3{>}} - -\xydef@\ahook{\dir^{(}} -\xydef@\bhook{\dir_{(}} - -\xydef@\aturn{\dir^{'}} -\xydef@\bturn{\dir_{'}} -\DOCMODE) - - The older commands |\pit|, |\apit|, and |\bpit|, are not provided. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Obsolete object constructions} - - The following object construction macros are made obsolete by the - enriched <object> format: -% -\begin{defs} - Version 2 object\hfil & Replacement \cr - \noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} - ??c![\rotate]|(|<factor>|)|<tip> \kern-4pc \cr - &\kern-3pc |\object:(|<factor>|,|<factor>|){|<tip>|}| \cr - ??c![\hole] & |\object+{}| \cr - ??c![\squash]<tip> & |\object=0{|<tip>|}| \cr - ??c![\grow]<tip> & |\object+{|<tip>|}| \cr - |\grow<|<dimen>|>|<tip> & |\object+<|<dimen>|>{|<tip>|}| \cr - ??c![\squarify]|{|<text>|}| & |\object+={|<text>|}| \cr - |\squarify<|<dimen>|>{|<text>|}| \kern-4pc \cr - &\kern-3pc |\object+=<|<dimen>|>{|<text>|}| \cr -\end{defs} -\noindent\unskip -% - where rotation is done in a slightly different manner in - version~\xyversion\ (it was never accurate in version~2). - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - These are mostly just the unmodified version 2.6 code: - -\DOCMODE( -\xydef@\rotate{\hbox\bgroup - \DN@{\ifx (\next %) - \DN@(####1){\rotate@ii{####1}}% - \else \DN@{\rotate@i}\fi\next@}\xyFN@\next@} - -\xydef@\rotate@i#1{\reverseDirection@ #1\OBJECT@x} - -\xydef@\rotate@ii#1#2{\dimen@=#1\p@ - \ifdim \dimen@=-\p@ \aboveDirection@\xydashl@ - \else\ifdim\dimen@= \p@ \belowDirection@\xydashl@ - \else\ifdim\dimen@<-1.5\p@ \advance\dimen@-2\p@ - \edef\next@{\expandafter\removePT@\the\dimen@}\vDirection@(-1,\next@){1pc}% - \else\ifdim\dimen@<-.5\p@ \vDirection@(#1,-1){1pc}% - \else\ifdim\dimen@< .5\p@ \vDirection@( 1,#1){1pc}% - \else\ifdim\dimen@<1.5\p@ \vDirection@(#1, 1){1pc}% - \else \dimen@=-\dimen@ \advance\dimen@2\p@ - \edef\next@{\expandafter\removePT@\the\dimen@}\vDirection@(-1,\next@){1pc}% - \fi\fi\fi\fi\fi\fi - #2\OBJECT@x} - -\xydef@\squash#1{% - \ifmmode\setboxz@h{\m@th${\mathstrut}#1{\mathstrut}$}\else\setboxz@h{#1}\fi - \setboxz@h{\kern-.5\wdz@ \dimen@=.5\ht\z@ \advance\dimen@-.5\dp\z@ - \lower\dimen@\boxz@}% - \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \boxz@} - -\xydef@\grow{% - \DN@{\ifx <\next \DN@<####1>{\dimen@=####1\grow@\empty}% - \else \DN@{\dimen@=2\p@ \grow@\empty}\fi\next@}\xyFN@\next@} - -\xydef@\grow@#1#{\grow@@{#1}} -\xydef@\grow@@#1#2{\relax - \ifmmode \setboxz@h{\kern\dimen@ \m@th$#2$\kern\dimen@}% - \else \setboxz@h{\kern\dimen@ {#2}\kern\dimen@}\fi - \dimen@ii=\ht\z@ \advance\dimen@ii\dimen@ \ht\z@=\dimen@ii - \dimen@ii=\dp\z@ \advance\dimen@ii\dimen@ \dp\z@=\dimen@ii \boxz@} - -\xydef@\squarify{\addEQ@{\addPLUS@\object}} -\DOCMODE) - - We also reimplement the version~2 undocumented ??c![\qc] quarter - circle which is now called |\corn@@| of the frame extension. - -\DOCMODE( -\xydef@\qc{\corn@@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Obsolete extensions \& features} -??=[extensions]??=[features] - - Version~2 had commutative diagram functionality corresponding to the - |frames| extension and parts of the |matrix| and |arrow| features. - These are therefore loaded and some extra definitions added to - emulate commands that have disappeared. - -\subsubsection*{Frames} - - The version 2 frame commands are emulated using the frame extension - (as well as the |\dotframed|, |\dashframed|, |\rounddashframed| - commands comm\-unicated to some users by electronic mail): -% -\begin{defs} - Version 2 object\hfil & Replacement \cr - \noalign{\nobreak\smallskip\nobreak\hrule\nobreak\smallskip\nobreak} - ??c![\framed] & |\drop\frm{-}| \cr - |\framed<|<dimen>|>| & |\drop\frm<|<dimen>|>{-}| \cr - ??c![\Framed] & |\drop\frm{=}| \cr - |\Framed<|<dimen>|>| & |\drop\frm<|<dimen>|>{=}| \cr - ??c![\dotframed] & |\drop\frm{.}| \cr - ??c![\dashframed] & |\drop\frm{--}| \cr - ??c![\rounddashframed] & |\drop\frm{o-}| \cr - ??c![\circled] & |\drop\frm{o}| \cr - ??c![\Circled] & |\drop\frm{oo}| \cr -\end{defs} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - For each of the above commands (and a few hidden ones) we parse the - above and convert to the proper format. - -\DOCMODE( -\xyrequire{frame}\xycatcodes - -\xydef@\framed{\relax\convertframed{-}} -\xydef@\Framed{\relax\convertframed{=}} - -\xydef@\circled{\relax\convertframed{o}} -\xydef@\Circled{\relax\convertframed{oo}} - -\xydef@\convertframed#1{\DNii@##1@{\drop\frm##1{#1}}\xyFN@\convertframed@i} - -\xydef@\convertframed@i{% - \addLT@\ifx \next - \addGT@{\addLT@\DN@##1}{\addGT@{\addLT@{\nextii@}##1}@}% - \else \DN@{\nextii@ @}\fi \next@} - -\xydef@\dotframed{\relax\drop\frm{.}} -\xydef@\dashframed{\relax\drop\frm{--}} -\xydef@\rounddashframed{\relax\drop\frm{o-}} - -\xydef@\filled{\DN@{% - \addLT@\ifx \next - \addGT@{\addLT@\DN@####1}{\xy@@{\frame@fill@@{####1}}}% - \else \DN@{\xy@@{\frame@fill@@\z@}}% - \fi\next@}\xyFN@\next@} - -\xydef@\Filled{\DN@{% - \addLT@\ifx \next - \addGT@{\addLT@\DN@####1}{\xy@@{\frame@emph@@{####1}}}% - \else \DN@{\xy@@{\frame@emph@@\z@}}% - \fi\next@}\xyFN@\next@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Matrices} - - The ??c![\diagram] <rows> ??c![\enddiagram] command is provided as an - alias for |\xymatrix{| <rows> |}| centered in math mode and - ??c![\LaTeXdiagrams] changes it to use |\begin| \dots\ |\end| syntax. - |v2| sets a special internal `old matrix' flag such that - trailing~|\\| are ignored and entries starting with~|*| are safe. - -\DOCMODE( -\xyrequire{matrix}\xycatcodes -\DOCMODE) - -\DOCMODE( -\xydef@\diagram#1\enddiagram{\relax\diagram@\diagram@@{#1}} - -\xydef@\diagram@{\relax - \ifmmode \DN@##1##2{\vcenter{\oldxymatrix@true \xy##1{\xymatrix{##2}}\endxy}}% - \else\DN@##1##2{{\oldxymatrix@true \xy/u.8ex/##1{\xymatrix{##2}}\endxy}}% - \fi \next@} - -\xydef@\LaTeXdiagrams{\def\diagram{\ltxdiagram@\diagram@@}% - \def\diagramnocompile{\ltxdiagram@\literal@}% Declared in Compiling - \def\diagramcompileto##1{\ltxdiagram@{\NoCompileMatrices\xycompileto{##1}}}} - -\xydef@\ltxdiagram@#1#2\end#3{\relax - \DN@{#3}\DNii@{diagram}\ifx\next@\nextii@\diagram@{#1}{#2}\end{diagram}% - \else\xyerr@{Put \string{\string} around \string\begin...\string\end\space - within diagrams}\fi} - -\xylet@\diagram@@=\literal@ - -\xydef@\NoisyDiagrams{} -\DOCMODE) - - ??c![\NoisyDiagrams] is ignored because the matrix feature always - outputs progress messages. - - Finally the version 2 ??c![\spreaddiagramrows], - |\spread|\-|diagramcolumns|??c[\spreaddiagramcolumns] spacing - commands are emulated using |\xymatrixrowsep| and |\xymatrixcolsep|: - -\DOCMODE( -\xydef@\spreaddiagramrows#1{\addPLUS@\xymatrixrowsep{#1}} -\xydef@\spreaddiagramcolumns#1{\addPLUS@\xymatrixcolsep{#1}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsubsection*{Arrows} - - The main arrow commands of version 2 were the ??c![\morphism] and - ??c![\definemorphism] commands which now have been replaced by the - |\ar| command. - - |v2| provides them as well as uses them to define the version~2 - commands ??c![\xto], ??c![\xline], ??c![\xdashed], ??c![\xdotted], - ??c![\xdouble], and all the derived commands |\dto|, |\urto|, \dots; - the |\arrow| commands of the $\beta$-releases of v3 is also provided. - - Instead of commands like |\rrto| and |\uldouble| you should use the - arrow feature replacements |\ar[rr]| and |\ar@{=}[ul]|. - - The predefined turning solid arrows |\lltou|, \dots, |\tord| are - defined as well; these are now easy to do with <turn>s. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% translating `old' arrows into `new' ones: -% \\\([durl][durl]*\)to \\ar[\1] -% \\\([durl][durl]*\)line \\ar@{-}[\1] -% \\\([durl][durl]*\)dashed \\ar@{--}[\1] -% \\\([durl][durl]*\)dotted \\ar@{.}[\1] -% \\\([durl][durl]*\)double \\ar@{=}[\1] - -\DOCMODE( -\xyrequire{arrow}\xycatcodes -\xylet@\arrow=\ar -\DOCMODE) - - |\morphism| is a reduced version of the |\ar| command. - -\DOCMODE( -%\xyuncatcodes \catcode35=6 -% \def\next#1#2#3{\relax \PATH ~={#1} ~>{\POS?>*{#2}\relax} ~<{\POS;?<*{#3};\relax}} -%\xycatcodes -%\xylet@\morphism=\next - -{\xyuncatcodes - \gdef\morPHISM#1#2#3{\PATH~={\oldconnect{#1}}~<{|<*{#3}}~>{|>*{#2}}}} - -\xydef@\morphism{\relax\morPHISM} - -\xylet@\connect@iii=\connect -\xydef@\oldconnect#1{% - \let\PATHlabelabove@@=\PATHlabelabove@ %KLUDGE! - \let\PATHlabelbelow@@=\PATHlabelbelow@ - \let\connect=\preconnect#1\let\connect=\connect@iii} -\DOCMODE) - - \TODO: Unpack this to what |\PATH| does\dots - - |\definemorphism| is essentially unchanged except we now use the - privacy checking commands. - -\DOCMODE( -\xydef@\definemorphism#1#2#3#4{% - \xydefcsname@{x#1}{\morphism{#2}{#3}{#4}}% - \xydefcsname@{u#1}{\morphism{#2}{#3}{#4}[u]}% - \xydefcsname@{d#1}{\morphism{#2}{#3}{#4}[d]}% - \xydefcsname@{l#1}{\morphism{#2}{#3}{#4}[l]}% - \xydefcsname@{r#1}{\morphism{#2}{#3}{#4}[r]}% - \xydefcsname@{uu#1}{\morphism{#2}{#3}{#4}[uu]}% - \xydefcsname@{dd#1}{\morphism{#2}{#3}{#4}[dd]}% - \xydefcsname@{ll#1}{\morphism{#2}{#3}{#4}[ll]}% - \xydefcsname@{rr#1}{\morphism{#2}{#3}{#4}[rr]}% - \xydefcsname@{ur#1}{\morphism{#2}{#3}{#4}[ur]}% - \xydefcsname@{ul#1}{\morphism{#2}{#3}{#4}[ul]}% - \xydefcsname@{dr#1}{\morphism{#2}{#3}{#4}[dr]}% - \xydefcsname@{dl#1}{\morphism{#2}{#3}{#4}[dl]}% - \xydefcsname@{uul#1}{\morphism{#2}{#3}{#4}[uul]}% - \xydefcsname@{uur#1}{\morphism{#2}{#3}{#4}[uur]}% - \xydefcsname@{ull#1}{\morphism{#2}{#3}{#4}[ull]}% - \xydefcsname@{urr#1}{\morphism{#2}{#3}{#4}[urr]}% - \xydefcsname@{ddl#1}{\morphism{#2}{#3}{#4}[ddl]}% - \xydefcsname@{ddr#1}{\morphism{#2}{#3}{#4}[ddr]}% - \xydefcsname@{dll#1}{\morphism{#2}{#3}{#4}[dll]}% - \xydefcsname@{drr#1}{\morphism{#2}{#3}{#4}[drr]}% - \xydefcsname@{uull#1}{\morphism{#2}{#3}{#4}[uull]}% - \xydefcsname@{uurr#1}{\morphism{#2}{#3}{#4}[uurr]}% - \xydefcsname@{ddll#1}{\morphism{#2}{#3}{#4}[ddll]}% - \xydefcsname@{ddrr#1}{\morphism{#2}{#3}{#4}[ddrr]}} - -\definemorphism{to}\solid\tip\notip -\definemorphism{line}\solid\notip\notip -\definemorphism{dashed}\dashed\notip\notip -\definemorphism{dotted}\dotted\notip\notip -\definemorphism{double}\Solid\notip\notip -\DOCMODE) - - \TODO: These could be "hugely" optimised by using the |arrow| feature - directly\dots - - Next the predefined bent morphisms of version 2. These required some - hacking to work; I hope this doesn't mean that the <path> semantics - has changed to much\dots\frowny - -\DOCMODE( -\xywarnifdefined\xyviitoi -\xywarnifdefined\xyviitoii - -\xydef@\XXtoY@#1#2#3#4#5{\save;[#3]\relax - \xy@@{% - \dimen@=\turnradius@ \ifdim#1<#2\relax \dimen@ii=#2\else\dimen@ii=#1\fi - \advance\dimen@\ifdim\dimen@>\dimen@ii +\dimen@\else +\dimen@ii\fi - \edef\xyviitoi{\the\dimen@}\leave@}% - \xto ~{[#3]} `#4[#3]#5/#4\xyviitoi/ `[#3]} - -\xydef@\toXY@#1#2#3#4#5{\xy@@{\idfromc@{@}% - \dimen@=\turnradius@ \dimen@ii=#1\relax - \advance\dimen@\ifdim\dimen@>\dimen@ii +\dimen@\else +\dimen@ii\fi - \edef\xyviitoi{\the\dimen@}% - \dimen@=\turnradius@ \dimen@ii=#2\relax - \advance\dimen@\ifdim\dimen@>\dimen@ii +\dimen@\else +\dimen@ii\fi - \edef\xyviitoii{\the\dimen@}}% - \morphism\solid{\object #4:(-1,0)\dir{>}}\notip - ~{`"@" "@"} `#3"@"#5/#3\xyviitoi/#5/#4\p@/ `"@"#5/#4\xyviitoii/} - -\xyuncatcodes \catcode64=11 % - -\xydef@\lltod{\XXtoY@\D@c\D@p{ll}{d}+} -\xydef@\lltou{\XXtoY@\U@c\U@p{ll}{u}+} -\xydef@\rrtod{\XXtoY@\D@c\D@p{rr}{d}+} -\xydef@\rrtou{\XXtoY@\U@c\U@p{rr}{u}+} -\xydef@\ddtol{\XXtoY@\L@c\L@p{dd}{l}+} -\xydef@\ddtor{\XXtoY@\R@c\R@p{dd}{r}+} -\xydef@\uutol{\XXtoY@\L@c\L@p{uu}{l}+} -\xydef@\uutor{\XXtoY@\R@c\R@p{uu}{r}+} - -\xydef@\told{\toXY@\L@c\D@c{l}{d}+} -\xydef@\tolu{\toXY@\L@c\U@c{l}{u}+} -\xydef@\tord{\toXY@\R@c\D@c{r}{d}+} -\xydef@\toru{\toXY@\R@c\U@c{r}{u}+} -\xydef@\todl{\toXY@\D@c\L@c{d}{l}+} -\xydef@\todr{\toXY@\D@c\R@c{d}{r}+} -\xydef@\toul{\toXY@\U@c\L@c{u}{l}+} -\xydef@\tour{\toXY@\U@c\R@c{u}{r}+} - -\xycatcodes -\DOCMODE) - - Finally the version 2 arrow radius default command that actually - never worked but some people might have hoped\dots - -\DOCMODE( -\xydef@\TurnRadius{\addEQ@\turnradius} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Obsolete loading} -??=[loading] - - The v2 User's Manual says that you can load \Xy-pic with the command - ??c![\input xypic] and as a \LaTeX~2.09 `style option' |[xypic]|. - This is made synonymous with loading this option by the files - ??c![xypic.tex] and ??c![xypic.sty] distributed with the |v2| option. - -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{description} - -\item[|xypic.tex|:] -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsubsection*{xypic.doc} -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\inputdoc!{xypic.doc} - -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\item[|xypic.sty|:] - Loads |xy.sty| and the |v2| feature. -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsubsection*{xypic.sty} -\inputdoc0{xypic.sty} - -\DOCMODE1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\end{description} -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - -\subsection{Compiling v2-diagrams} -??=[compiling] - - In order to make it possible to use the new compilation features even - on documents written with \Xy-pic v2, the following command was - added in v2.12: -% -\begin{defs1} -|\diagramcompileto{| <name> |}| \dots\ |\enddiagram| \cr -\end{defs1} -\noindent\unskip -% - which is like the ordinary diagram command except the result is - compiled (see note~??g[xy.doc:compile]). Note that compilation is - not quite safe in all cases! - -\DOCMODE( -\xydef@\diagramcompileto#1#2\enddiagram{\relax - \diagram@{\NoCompileMatrices\xycompileto{#1}}{#2}} -\DOCMODE) - - There is also the following command that switches on "automatic - compilation" of all diagrams created with the v2 |\diagram| \dots\ - |\enddiagram| command: -% -\begin{defs1} -|\CompileAllDiagrams| |{| <prefix> |}| \cr -|\NoCompileAllDiagrams| \cr -|\ReCompileAllDiagrams| \cr -\end{defs1} -\noindent\unskip -% - will apply |\xycompileto{|<prefix>$n$|}{|\dots|}| to each diagram - with~$n$ a sequence number starting from~1. Use |\CompileMatrices| - and |\CompilePrefix| instead! - - If for some reason a diagram does not work when compiled then replace - the |\diagram| command with |\diagramnocompile| (or in case you are - using the \LaTeX\ form, |\begin{diagramnocompile}|). - -\DOCMODE( -\xydef@\diagramnocompile#1\enddiagram{\relax\diagram@\literal@{#1}} -\DOCMODE) - -\DOCMODE( -\xydef@\CompileAllDiagrams#1{\CompilePrefix{#1}\CompileMatrices} -\xydef@\NoCompileAllDiagrams{\NoCompileMatrices} -\xydef@\ReCompileAllDiagrams{\CompileMatrices} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\subsection*{End \& log} - -\DOCMODE( -\xyendinput - -% $Log: xyv2.doc,v $ -% Revision 3.4 1997/05/18 01:14:25 krisrose -% Essential bugfixes. -% -% Revision 3.3 1996/12/19 14:43:55 krisrose -% Maintenance release. -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:31:32 kris -% Releasing! -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/05 22:10:12 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.11 1994/07/05 10:37:32 kris -% Third 3beta release [bug fixes]. -% Experimental graph feature included (for ECCT-94 presentation). -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% Revision 2.9 1994/06/09 14:59:19 kris -% Release 3beta. -% -% Revision 2.8 1994/04/08 04:30:00 kris -% Second (bug fix) 3alpha release. -% -% Revision 2.7 1994/03/08 02:06:01 kris -% Release 3alpha. -% -% Revision 2.6.9.1 1994/03/07 04:22:46 kris -% Last internal 3alpha and pre-2.7 release. -% -% NEW file to go in version 2.7 (extracted from xy.doc 2.6.1.1). -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Tell Emacs that this is a LaTeX document and how it is formatted: -% Local Variables: -% mode:latex -% fill-prefix:"\t" -% fill-column:77 -% paragraph-separate:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% paragraph-start:"^[ \t\f]*$\\|^[^\t]\\|\\\\\\\\\\|\\$\\$\\|[^\n\\\\][%&]" -% TeX-parse-self:nil -% LaTeX-indent-level:1 -% TeX-brace-indent-level:1 -% End: diff --git a/Master/texmf-dist/source/generic/xypic/xyweb.doc b/Master/texmf-dist/source/generic/xypic/xyweb.doc deleted file mode 100644 index 06b77d7e310..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyweb.doc +++ /dev/null @@ -1,326 +0,0 @@ -%% $Id: xyweb.doc,v 3.3 1996/12/18 09:52:11 ross Exp $ -%% -%% Xy-pic ``Lattice and web'' feature. -%% Copyright (c) 1994-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{web}{Lattice and web feature}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\noindent - This feature provides macros to facilitate typesetting of arrangements - of points within a 2-dimensional lattice or ``web-like'' structure. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\message{lattices,} -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -We need two counters and macros to access their values. - -\DOCMODE( -\xynew@{count}\lattice@A -\xynew@{count}\lattice@B -\xydef@\latticeA{\lattice@A} -\xydef@\latticeB{\lattice@B} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%\subsection{Lattices} -%\noindent -Currently the only routines implemented with this feature are some ``quick -and dirty'' macros for dropping objects at the points of an integer lattice. -\TODO: More sophisticated routines will be developed for later versions of -\Xy-pic, as the need arises. - -Mathematically speaking, let $\vec u$ and $\vec v$ be vectors pointing in -independent directions within the plane. Then the lattice spanned by -$\vec u$ and $\vec v$ is the infinite set of points $L$ given by: -$$ -L\;=\; \bigl\{ a\,\vec u + b\,\vec v\;;\; -\mbox{ for $a$, $b$ integers} \bigr\}\,. -$$ -Within \Xy-pic the vectors $\vec u$ and $\vec v$ can be established -as the current coordinate basis vectors. -The following macros typeset a finite subset of an abstract lattice. -% -\begin{defs} -|\xylattice#1#2#3#4| & points in lattice\cr -|\croplattice#1#2#3#4#5#6#7#8|\kern-44pt&\cr - &\dots in specific rectangle.\cr -\end{defs} -% -\noindent -The parameters |#1| \dots |#4| are to be integers -$a_{\min}$, $a_{\max}$, $b_{\min}$ and $b_{\max}$, -so that the portion of the lattice to be typeset -is that collection of vectors in $L$ for which -$a_{\min} \le a \le a_{\max}$ and $b_{\min} \le b \le b_{\max}$. -% -\begin{code} -\def\latticebody{% -\ifnum\latticeA=1 \ifnum\latticeB=-1 % -\else\drop{\circ}\fi\else\drop{\circ}\fi} -\xy *\xybox{0;<1.5pc,1mm>:<1mm,1.5pc>:: -,0,{\xylattice{-4}4{-3}3} - ,(1,-1)="a"*{\bullet}*+<2pt>!UL{a} - ,(-1,1)."a"*\frm{.}}="L" -,{"L"+L \ar "L"+R*+!L{s^{(1)}}} -,{"L"+D \ar "L"+U*+!D{s^{(2)}}} -\endxy -\end{code} -$$\docode$$ -\displaycode - -In the above code, notice how the basis is first established then the -|\xylattice| typeset. Doing this within an |\xybox| allows axes -to be sized and placed appropriately. -Since lattice points are determined by their (integer) coordinate -displacements, they can be revisited to add extra <object>s into -the overall picture. More generally, the origin for lattice-coordinates -is the current <pos> $c$, when the |\xylattice| command is encountered. -Easy accessibility is maintained, as seen in the next example. - -\medskip - -When the basis vectors $\vec u$ and $\vec v$ are not perpendicular -the collection of points with $a,b$ in these ranges will fill out -a skew parallelogram. Generally it is useful to plot only those points -lying within a fixed rectangle. -This is the purpose of |\croplattice|, with its extra parameters -|#5| \dots |#8| determining the `cropping' rectangle within which -lattice points will be typeset. Other points will not be typeset -even when $a$ and $b$ are within the specified ranges. -Explicitly the horizontal range of the cropping rectangle is $X_{\min}$ -to $X_{\max}$, with $X_{\min}$ being the $X$-coordinate of the vector -$|#5|\times\vec u$, where |#5| is a <number> (not necessarily an integer). -Similarly $X_{\max}$ is the $X$-coordinate of $|#6|\times\vec u$. -The vertical extents are $Y_{\min}$ and $Y_{\max}$, given by the -$Y$-coordinates of $|#7|\times\vec v$ and $|#8|\times\vec v$ respectively. -% -\begin{code} -\def\latticebody{% -\ifnum\latticeA=1 \ifnum\latticeB=-1 % -\else \drop{\circ}\fi\else -\ifnum\latticeA=0 \ifnum\latticeB=1\else -\drop{\circ}\fi\else\drop{\circ}\fi\fi} -\xy +(2,2)="o",0*\xybox{% - 0;<3pc,1.5mm>:<0.72pc,1.65pc>::,{"o" - \croplattice{-4}4{-4}4{-2.6}{2.6}{-3}3} - ,"o"+(0,1)="a"*{\bullet}*+!D{\alpha} - ,"o"+(1,-1)="b"*{\bullet}*+!L{\beta} - ,"o"+(0,-1)="c","o"+(-1,1)="d" - ,"a"."c"="e",!DR*{};"a"**\dir{.} - ,"e",!UL*{};"c"**\dir{.} - ,"b"."d"="f",!DL*{};"b"**\dir{.} - ,"f",!UR*{};"d"**\dir{.} - ,"e"."f"*\frm{.}}="L","o"."L"="L" - ,{"L"+L \ar "L"+R*+!L{s^{(1)}}} - ,{"L"+D \ar "L"+U*+!D{s^{(2)}}} -\endxy -\end{code} -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The routines |\xylattice| and |\croplattice| simply cycle through the -allowable range of values for |\lattice@A| and |\lattice@B|, -with |\lattice@B| varying within the inner loop. - -\DOCMODE( -\xydef@\xylattice#1#2#3#4{\xy@{LATTICE}{\xylattice@{#1}{#2}{#3}{#4}}}% - -\xydef@\xylattice@#1#2#3#4{% - \lattice@A=#1\relax - \loop \bgroup\lattice@B=#3\relax - \innerlatticeloop@{#4}% - \edef\tmp@{\egroup - \X@min=\the\X@min \X@max=\the\X@max - \Y@min=\the\Y@min \Y@max=\the\Y@max - }\tmp@ \ifnum\lattice@A<#2\relax \advance\lattice@A\@ne - \repeat } - -\xydef@\innerlatticeloop@#1{% - \loop \enter@{\cfromthec@}\enter@{\cplusthec@}% - \vfromcartesian@@ \the\lattice@A,\the\lattice@B @% - \edef\latticeX{\expandafter\removePT@\the\X@c}% - \edef\latticeY{\expandafter\removePT@\the\Y@c}% - \leave@ \latticebody \leave@ - \ifnum\lattice@B<#1\relax \advance\lattice@B\@ne - \repeat } -\DOCMODE) - -With |\xylattice| getting the picture size correct is simply -a matter of passing |\X@min|, |X@max|, etc. outside of the inner group. -However with |\croplattice| these are first set to correspond to the -`cropping rectangle' then subsequently merged with their original -values. - -\DOCMODE( -\xydef@\croplattice#1#2#3#4#5#6#7#8{\xy@{LATTICE}% - {\xycroplattice@{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}% - -\xydef@\xycroplattice@#1#2#3#4#5#6#7#8{% - \enter@{\X@min=\the\X@min \X@max=\the\X@max - \Y@min=\the\Y@min \Y@max=\the\Y@max}% - \enter@{\cfromthec@}\enter@{\cplusthec@}% - \vfromcartesian@@ #5,0 @\leave@ \X@min=\X@c \leave@ - \enter@{\cfromthec@}\enter@{\cplusthec@}% - \vfromcartesian@@ #6,0 @\leave@ \X@max=\X@c \leave@ - \enter@{\cfromthec@}\enter@{\cplusthec@}% - \vfromcartesian@@ 0,#7 @\leave@ \Y@min=\Y@c \leave@ - \enter@{\cfromthec@}\enter@{\cplusthec@}% - \vfromcartesian@@ 0,#8 @\leave@ \Y@max=\Y@c \leave@ - \lattice@A=#1\relax - \loop - \bgroup\lattice@B=#3\relax - \enter@{\cfromthec@}\innercroplatticeloop@{#4}\leave@ - \egroup - \ifnum\lattice@A<#2\relax \advance\lattice@A\@ne - \repeat \mergecropextents@ } - -\xydef@\innercroplatticeloop@#1{% - \loop - \enter@{\cfromthec@}\enter@{\cplusthec@}% - \vfromcartesian@@ \the\lattice@A,\the\lattice@B @% - \edef\latticeX{\expandafter\removePT@\the\X@c}% - \edef\latticeY{\expandafter\removePT@\the\Y@c}% - \leave@ \DN@{\latticebody}% - \ifdim\X@c<\X@min\DN@{}% - \else\ifdim\X@c>\X@max\DN@{}% - \else\ifdim\Y@c<\Y@min\DN@{}% - \else\ifdim\Y@c>\Y@max\DN@{}% - \fi\fi\fi\fi \next@ \leave@ - \ifnum\lattice@B<#1\relax \advance\lattice@B\@ne - \repeat } - -\xydef@\mergecropextents@{% - \edef\tmp@{% - \noexpand\ifdim\X@min>\the\X@min \X@min=\the\X@min\noexpand\fi - \noexpand\ifdim\X@max<\the\X@max \X@max=\the\X@max\noexpand\fi - \noexpand\ifdim\Y@min>\the\Y@min \Y@min=\the\Y@min\noexpand\fi - \noexpand\ifdim\Y@max<\the\Y@max \Y@max=\the\Y@max\noexpand\fi}% - \leave@ \tmp@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The |\latticebody| macro.} -At each lattice point within the specified range for $a,b$ (and within -the cropping rectangle when |\croplattice| is used), a macro called -|\latticebody| is expanded. This is meant to be user-definable, -so as to be able to adapt to any specific requirement. -It has a default expansion given by \dots -$$ -|\def\latticebody{\drop{\bullet}}|\,. -$$ -The following macros may be useful when specifying what to do at each -point of the lattice. -% -\begin{defs} -|\latticebody| & expanded at lattice points \cr -|\defaultlatticebody|\kern-20pt & \kern20pt resets to default \cr -|\latticeA| & $a$-value of lattice point\cr -|\latticeB| & $b$-value of lattice point\cr -|\latticeX| & $X$-coord, offset in |pt|s\dots\cr -|\latticeY| & $Y$-coord, \dots from lattice origin.\cr -\end{defs} -As in the examples presented above, the object dropped at the lattice -point can be varied according to its location, or omitted altogether. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The default |\latticebody| macro \dots - -\DOCMODE( -\xydef@\deflatticebody@{\def\latticebody{\drop{\bullet}}} -\xydef@\defaultlatticebody{\deflatticebody@} -\deflatticebody@ -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -In the final example the |\latticebody| macro -performs a calculation to decide which lattice points -should be emphasised: -% -\begin{code} -\def\latticebody{\dimen0=\latticeX pt - \ifdim\dimen0>0pt \divide\dimen0 by 64 - \dimen0=\latticeY\dimen0 \relax - \ifdim 0pt>\dimen0 \dimen0=-\dimen0 \fi - \ifdim 10pt>\dimen0 \drop{\bullet}% - \else\drop{.}\fi \else\drop{.}\fi} -\xy*\xybox{0;<3pc,2.57mm>:<.83pc,2.25pc>:: -,0,{\croplattice{-3}5{-5}5 - {-1.3}{4.5}{-3.4}{4.4}}}="L" -,{"L"+L \ar "L"+!R*+!L{\sigma^{(1)}}} -,{"L"+D \ar "L"+!U*+!D{\sigma^{(2)}}} -\endxy -\end{code} -%\displaycode -$$\docode$$ -\displaycode - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\DOCMODE( -\xyendinput - -% $Log: xyweb.doc,v $ -% Revision 3.3 1996/12/18 09:52:11 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.13 1995/07/05 10:36:22 ross -% Ready for v3 release? -% -% 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: diff --git a/Master/texmf-dist/source/generic/xypic/xyxdvi.doc b/Master/texmf-dist/source/generic/xypic/xyxdvi.doc deleted file mode 100644 index 0a33c52cf24..00000000000 --- a/Master/texmf-dist/source/generic/xypic/xyxdvi.doc +++ /dev/null @@ -1,335 +0,0 @@ -%% $Id: xyxdvi.doc,v 3.3 1996/12/18 09:53:22 ross Exp $ -%% -%% Xy-pic ``xdvi-driver'' 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{xdvi}{XDVI driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% - {Mathematics Department, Macquarie University, NSW~2109, Australia} - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -This driver provides support for extensions when using variants of the -|xdvi| driver, by Eric Cooper, Bob Scheifler, Mark Eichin and others. -It has been used successfully with |xdvi| patchlevel 20, by Paul Vojta, -and |xdvik| version~18f, by Karl Berry. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Some of the supported features assume that the implementation of |xdvi| is -linked to a \PS\ renderer; e.g. {\it Ghostscript} or {\sc Display \PS}. -If such support is not available, then invoking |xdvi| using the command -|xdvi -hushspecials| will suppress warning messages that might otherwise -be produced. -One drawback of such a setup is that much of the \PS\ is not -rendered until after all of the font characters, etc. have been placed on -the page. Thus text that was meant to be placed on top of a filled or -patterned region may appear to be obscured by it. However when printed, -using a \PS\ printer, the correct placement is obtained. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\paragraph*{Header:}\leavevmode -\DOCHEADER - -\paragraph*{Driver installation} -\DOCMODE( -\xydef@\xdvi@@#1{\dvimessage@{xdvi}{#1}} - -\newdriver{% - \xyaddsupport{color}\xdviColor@@ - \xyaddsupport{crayon}\xdviCrayola@@ - \xyaddsupport{ps}\xdviPS@@ - \xyaddsupport{rotate}\xdviRotate@@ - \xyaddsupport{line}\xdviLine@@ - \xyaddsupport{frame}\xdviFrames@@ - \xyaddsupport{tile}\xdviTiles@@ - \xyaddsupport{tpic}\xdviTPIC@ -} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Supported |\special| effects are... -% -\begin{itemize} - -\item colour, using \PS. - -Not all versions of |xdvi| support color |\special|s, so there is no direct -support for colour. However parts of pictures rendered using \PS\ may -appear coloured, due to interpretation of colour commands within the \PS. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -Disable the |\xylocalColor@| but enable the |\xycolor@| for use by \PS. - -\DOCMODE( -\xydef@\xdvi@Color@{\xdviPStypes@ - \let\xylocalColor@=\xyNoColor@@ -% \let\xylocalColor@=\xystackcolor@ -% \let\xycolor@push\xycolor@push@@ - \def\xycolor@{\xycolor@@}\let\xycolorwarning@=\relax - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}\installPScolor@ }% - \else\DN@{}\fi \next@ - \ifx\xycolor@@\xyNoColor@ \let\xycolor@@=\xycolor@raw@@\fi - \ifx\xycrayolaloaded\empty \DN@{\xystandardcolors@\xdviCrayola@{}}% - \else \DN@{\xystandardcolors@}\fi \next@ - \let\xdviColor@@=\relax - \let\UnloadColor@@=\NoXDVIcolor@ - }% - -\xydef@\xdviColor@@{\xdvi@Color@} - -\xydef@\NoXDVIcolor@{% - \def\xycolor@{\xycolor@@}% - \let\xycolor@@=\xyNoColor@ - \let\xylocalColor@=\xyNoColor@@ - \let\xycolorwarning@=\xycolorwarning@@ - \let\xdviColor@@=\xdvi@Color@ - \let\UnloadColor@@=\UnloadColor@ - } -\DOCMODE) - -If neither support file |colordvi.tex| nor |colordvi.sty| can be found, -then the normal colour support will not be available. However the colour -support for the \PS\ back-end can still be used. - -\DOCMODE( -\xydef@\NoXDVIcolordvi@{\xywarning@{% - Neither colordvi.tex nor colordvi.sty could be found.}% - \xyBEcolorcheck@}% -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item crayon colours. - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The 68 colours that |xdvi| recognizes by name are not loaded unless the -|crayon| option has been requested. - -\DOCMODE( -\xydef@\xdviCrayola@@{\xdviColor@@\xdviCrayola@} - -\xydef@\xdviCrayola@{% - \let\prevxycolor@=\newxycolor@ - \def\newxyXDVIcolor@##1##2##3{\prevxycolor@{##1}{}{##1}}% - \let\newxycolor@=\newxyXDVIcolor@ - \installCrayolaColors@ - \let\newxycolor@=\prevxycolor@ }% -\DOCMODE) - -Although any order of loading options: |ps|, |xdvi|, |color| and |crayon| -produces the desired result visually, the \PS\ code can be different -with different loading order. The most easily readable is obtained when -|crayon| is requested last. - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \PS\ back-end. -\DOCMODE( -\xydef@\xdviPS@@{\xdviPS@} - -\xydef@\xdviPS@unload{\UnloadPS@ - \let\UnloadPS@@=\UnloadPS@ - \let\xdviPS@@=\xdviPS@ } -\DOCMODE) - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -The latest versions of |xdvi| recognise most forms of |\special| command -that are recognised by |dvips|; these are used to support \PS\ effects. - -\DOCMODE( -\xydef@\xdviPStypes@{% - \xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}% - \ifx\PSspecial@@\xdviSpecial@\else - \let\PSspecial@@=\xdviSpecial@ - \let\PSmacro@@=\xdviMacro@ - \let\PSdict@@=\xdviDict@ - \let\PSspecialdict@@=\xdviDict@ - \let\PSraw@@=\xdviRaw@ - \let\PSinclude@@=\xdviInclude@ - \let\xyPSobeylines@@=\obeyXDVIlines@ - \let\xyPScurrpt@@=\xdviCurrpt@@ - \xdvi@@{PostScript}% - \fi \XYpredict@ } - -\xywarnifdefined\xdviSpecial@ -\xywarnifdefined\xdviMacro@ -\xywarnifdefined\xdviDict@ -\xywarnifdefined\xdviInclude@ -\xywarnifdefined\xdviRaw@ -{\catcode`\"=11 \catcode`\!=11 \catcode`\:=11 - \gdef\xdviSpecial@#1{\special{ps:: SDict begin #1 end}} - \gdef\xdviMacro@#1{\firstPS@@\special{" {#1}xy}} -% \gdef\xdviDict@#1{\special{! mark{#1}stopped cleartomark}} - \gdef\xdviDict@#1{\special{! #1}} - \gdef\xdviInclude@#1{\special{header=#1}} - \gdef\xdviRaw@#1{\special{ps: SDict begin #1 end}} - -\catcode`\^^M=\active % - \gdef\next{\catcode`\^^M=\active \let^^M=\space }}% -\xylet@\obeyXDVIlines@=\next -\DOCMODE) - -All the \PS\ definitions passed to |xdvi| by reading the -dictionary file are stored in a \PS\ dictionary which it defines, -called |SDict|. This must be the current dictionary whenever an \Xy-ps -command is to be executed. -This will be the case whenever the |\special{" |{\it commands}|}| or -|\special{! |{\it commands}|}| forms are used, but not when the -|\special{ps:: |{\it commands}|}| form is used. -Thus the |\xdviSpecial@| macro includes code to open |SDict| and -close it when finished; so also does the |\xdviRaw@| type, since this -is used with \Xy-pic\ \PS\ operators whose definitions have been placed -within |SDict|. - -The |currentpoint| is defined for the ``raw'' specials. - -\DOCMODE( -\xydef@\xdviCurrpt@{\let\xyPScurrpt@@=\xdviCurrpt@@}% -\xydef@\xdviCurrpt@@{\PSraw@@{xyp}} -\DOCMODE) - -The \PS\ operator called |xyp| is defined in |xyps-ps| for storing the -location read from |currentpoint|. - -\medskip - -This installs the \PS\ backend. - -\DOCMODE( -\xydef@\xdviPS@{\xdviPStypes@ - \let\xdviPS@@=\PSspecials@true - \let\UnloadPS@@=\xdviPS@unload - \let\installxyps@@=\relax \installxyps@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item rotated/scaled diagrams and text, using \PS. -\DOCMODE( -\xydef@\xdviRotate@@{\xdviRotate@} - -\xydef@\xdviRotate@{\xdviPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}% - \xdviCurrpt@ \xdviRotScale@ \installPSrotscale@ }% - \else\DN@{\xydriverfail@{rotations are}UnloadRotate@\relax}\fi - \next@ } - -\xydef@\xdviRotScale@{% - \def\xyrot@start(##1){{xyct ##1\space xyrs }}% - \def\xyrot@end{}% - \def\xyscale@start(##1,##2){{xyct ##1\space##2\space xyss }}% - \def\xyscale@end{}} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item variable line-widths and poly-lines, using \PS. -\DOCMODE( -\xydef@\xdviLine@@{\xdviLine@} - -\xydef@\xdviLine@{\xdviPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@ }% - \else\DN@{\xydriverfail@{line-widths are}\UnloadLine@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item extra frames and fills, using \PS. -\DOCMODE( -\xydef@\xdviFrames@@{\xdviFrames@} - -\xydef@\xdviFrames@{\xdviPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@ }% - \else\DN@{\xydriverfail@{frames are}\UnloadFrames@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item patterns and tiles, using \PS. -\DOCMODE( -\xydef@\xdviTiles@@{\xdviTiles@} - -\xydef@\xdviTiles@{\xdviPStypes@ - \expandafter\ifx\csname xyps-psloaded\endcsname\empty\DN@{% - \xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@ }% - \else\DN@{\xydriverfail@{Patterns are}\UnloadPSpatterns@\relax}\fi - \next@ } -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\item \TPIC\ drawing commands. -\DOCMODE( -\xydef@\xdviTPIC@@{\xdviTPIC@} - -\xydef@\xdviTPIC@{\setupxyTPIC@} -\DOCMODE) - -\DOCMODE3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\end{itemize} - -\DOCMODE2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\paragraph*{The end \& Log}\leavevmode - -\DOCMODE( -\xyendinput - -% $Log: xyxdvi.doc,v $ -% Revision 3.3 1996/12/18 09:53:22 ross -% minor improvements to file-loading commands -% -% Revision 3.2 1995/09/19 18:21:41 ross -% Bug fix release. -% -% Revision 3.1 1995/09/05 20:28:57 ross -% Releasing version 3.1! -% -% 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: diff --git a/Master/texmf-dist/tex/generic/xypic/movie.cls b/Master/texmf-dist/tex/generic/xypic/movie.cls index 7c3f29d73f6..94e191d0812 100644 --- a/Master/texmf-dist/tex/generic/xypic/movie.cls +++ b/Master/texmf-dist/tex/generic/xypic/movie.cls @@ -1,10 +1,10 @@ -%% $Id: movie.cls,v 3.4 1997/05/18 01:14:25 krisrose Exp $ -*-latex-*- +%% $Id: movie.cls,v 3.6 2010/06/10 18:45:49 krisrose Exp $ -*-latex-*- %% %% ``LaTeX Movie'' document class for DVI animations. -%% Copyright (c) 1994-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1994-1997 Kristoffer H. Rose <krisrose@tug.org> %% %% This file is part of the Xy-pic package for graphs and diagrams in TeX. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -17,8 +17,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi @@ -29,8 +28,8 @@ \def\next$#1: #2 #3${#2} \edef\next{\noexpand\ProvidesClass{movie}% - [\next$Date: 1997/05/18 01:14:25 $ - Movies in LaTeX v.\next$Revision: 3.4 $.]}\next + [\next$Date: 2010/06/10 18:45:49 $ + Movies in LaTeX v.\next$Revision: 3.6 $.]}\next %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Options. @@ -310,6 +309,12 @@ \endinput % $Log: movie.cls,v $ +% Revision 3.6 2010/06/10 18:45:49 krisrose +% Reference to GPL by URL. +% +% Revision 3.5 2010/04/16 06:06:51 krisrose +% Preparing for a new release... +% % Revision 3.4 1997/05/18 01:14:25 krisrose % Essential bugfixes. % diff --git a/Master/texmf-dist/tex/generic/xypic/xy.sty b/Master/texmf-dist/tex/generic/xypic/xy.sty index 32867e52f57..ca262f1b039 100644 --- a/Master/texmf-dist/tex/generic/xypic/xy.sty +++ b/Master/texmf-dist/tex/generic/xypic/xy.sty @@ -1,11 +1,11 @@ -%% $Id: xy.sty,v 3.3 1996/12/19 03:31:56 krisrose Exp $ +%% $Id: xy.sty,v 3.9 2010/06/10 18:45:49 krisrose Exp $ %% %% ``Xy-pic as LaTeX 2.09 style option and LaTeX 2e package''. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@tug.org> %% %% 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> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. % Load Xy-pic with catcode of @ set as it will be in user text: \count255=\the\catcode`\@ {\catcode`\@=11 \xdef\xystycatcode{\the\count255}} @@ -39,12 +38,15 @@ % Ensure that we are *really* running LaTeX2e...! \NeedsTeXFormat{LaTeX2e} +% So we can check for pdfTeX. +\RequirePackage{ifpdf} + % This file provides the current version of Xy-pic! \edef\next{% \noexpand\ProvidesPackage{xy}[\xydate\space Xy-pic version \xyversion]}\next -% Recognise some standard LaTeX2e class options (cf. `LaTeX Companion' p.317): -\DeclareOption{cmactex}{\xyoption{cmactex}} +% Recognise some standard LaTeX2e class options (cf. old `LaTeX Companion' p.317): +\DeclareOption{cmactex}{\xyoption{dvips}} % Thomas Kiffe's CMacTeX uses dvips \DeclareOption{dvips}{\xyoption{dvips}\xyoption{ps}} \DeclareOption{dvitops}{\xyoption{dvitops}\xyoption{ps}} \DeclareOption{emtex}{\xyoption{emtex}} @@ -53,7 +55,12 @@ \DeclareOption{textures}{\xyoption{textures}} \DeclareOption{xdvi}{\xyoption{xdvi}} -% This is special: +% Recognise standard aliases for the pdf option. +\DeclareOption{pdftex}{\xyoption{pdf}} +\DeclareOption{dvipdfm}{\xyoption{pdf}} +\DeclareOption{dvipdfmx}{\xyoption{pdf}} + +% This is special. \DeclareOption{colour}{\xyoption{color}} % :-) % This (obsolete) cmtip style option should be activated after loading: @@ -70,12 +77,36 @@ % Reinstall catcode of @... \catcode`\@=\xystycatcode -% ... process the options, and that is all. -\ProcessOptions +% ...and process the options. +\ProcessOptions\relax + +% Now, if no backend is loaded but we can generate PDF, do. +\ifpdf\makeatletter + \ifx\xydriversloaded@@\xydriversloaded@none + \makeatother\xyoption{pdf}\fi\fi +% That's all. \endinput % $Log: xy.sty,v $ +% Revision 3.9 2010/06/10 18:45:49 krisrose +% Reference to GPL by URL. +% +% Revision 3.8 2010/04/28 07:14:30 krisrose +% New Xy-pic home page installed. +% +% Revision 3.7 2010/04/26 01:45:23 krisrose +% First proper integration of xypdf into Xy-pic "make dist". +% +% Revision 3.6 2010/04/25 21:48:06 krisrose +% First proper integration of xypdf into Xy-pic "make dist". +% +% Revision 3.5 2010/04/20 20:36:43 krisrose +% Documentation updates. +% +% Revision 3.4 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.3 1996/12/19 03:31:56 krisrose % Maintenance release % diff --git a/Master/texmf-dist/tex/generic/xypic/xy.tex b/Master/texmf-dist/tex/generic/xypic/xy.tex index ae6d8085710..2fbf8cbe258 100644 --- a/Master/texmf-dist/tex/generic/xypic/xy.tex +++ b/Master/texmf-dist/tex/generic/xypic/xy.tex @@ -1,10 +1,10 @@ -%% xy.tex from $Id: xy.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xy.tex from $Id: xy.doc,v 3.20 2010/06/10 18:45:49 krisrose Exp $ %% %% Basic Xy-pictures: Xy-pic bootstrap and kernel macros. -%% Copyright (c) 1991-1999 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 Kristoffer H. Rose <krisrose@tug.org> %% %% This file is part of the Xy-pic package for graphs and diagrams in TeX. -%% Copyright (c) 1991-1999 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -17,8 +17,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined\else\message{not reloaded}\endinput\fi \let\xyloaded=\relax @@ -39,10 +38,10 @@ \xywarnifdefined\xyreuncatcodes \def\xyreuncatcodes{\edef\xyuncatcodes{% \catcode92 0 \catcode123 1 \catcode125 2 \catcode37 14 \catcode 9 \the\catcode 9 \catcode10 \the\catcode10 \catcode12 \the\catcode12 - \catcode35 \the\catcode35 \catcode36 \the\catcode36 \catcode38 \the\catcode38 - \catcode43 \the\catcode43 \catcode45 \the\catcode45 \catcode46 \the\catcode46 - \catcode47 \the\catcode47 - \catcode60 \the\catcode60 \catcode61 \the\catcode61 \catcode62 \the\catcode62 + \catcode35 \the\catcode35 \catcode36 \the\catcode36 \catcode38 \the\catcode38 + \catcode43 \the\catcode43 \catcode45 \the\catcode45 \catcode46 \the\catcode46 + \catcode47 \the\catcode47 + \catcode60 \the\catcode60 \catcode61 \the\catcode61 \catcode62 \the\catcode62 \catcode64 \the\catcode64 \catcode96 \the\catcode96 \newlinechar \the\newlinechar \endlinechar \the\endlinechar }} \xyreuncatcodes @@ -120,21 +119,22 @@ \xydef@\stripRCS@#1: #2@ #3@@@{% \ifx @#2\string?\else\ifx :#2\else\stripRCS@@#2\fi\fi} \xydef@\stripRCS@@#1 #2: @{#1} -\edef\next{\stripRCS$Revision: 3.7 $} -\xylet@\xyversion=\next -\edef\next{\stripRCS$Date: 1999/02/16 15:12:50 $} +\xydef@\xyversion{3.8.1} +\edef\next{\stripRCS$Date: 2010/06/10 18:45:49 $} \xylet@\xydate=\next \xydef@\Xygreet@{% \W@{}% \W@{ Xy-pic version \xyversion\space<\xydate>}% - \W@{ Copyright (c) 1991-1998 by Kristoffer H. Rose <krisrose@ens-lyon.fr>}% + \W@{ Copyright (c) 1991-2010 by Kristoffer H. Rose <krisrose@tug.org>}% \W@{ Xy-pic is free software: see the User\string's Guide for details.}% \W@{}} \Xygreet@ \expandafter\everyjob\expandafter{\the\everyjob\Xygreet@} \message{Loading kernel:} -\xydef@\Xy{\leavevmode +\xydef@\Xy@{\leavevmode \hbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}}} +\ifx\undefined\DeclareRobustCommand\let\Xy=\Xy@ +\else\DeclareRobustCommand{\Xy}{\Xy@}\fi \message{messages;} \xywarnifdefined\thelineno@ \ifx\inputlineno\undefined \edef\thelineno@{\string?} @@ -150,8 +150,8 @@ \xydef@\xybug@#1{{\newlinechar=10 \errhelp{This is a bug in Xy-pic and should not happen!^^J% If it did then please send a bug report with the offending Xy-pic code^^J% -to the author of Xy-pic, krisrose@ens-lyon.fr.}% - \errmessage{Xy-pic BUG: #1 -- notify krisrose@ens-lyon.fr.}}} +to the author of Xy-pic, krisrose@tug.org.}% + \errmessage{Xy-pic BUG: #1 -- notify krisrose@tug.org.}}} \message{fonts;} \xydef@\xyfont@#1{\ifx#1\undefined \DN@{\global\font#1}\expandafter\next@ \else \xywarning@{Using previously loaded \string#1\space font}\fi} @@ -341,6 +341,7 @@ to the author of Xy-pic, krisrose@ens-lyon.fr.}% \xydef@\CORNER@i{% \ifx D\next \DN@ D{\xy@{D}{\Y@c=-\D@c \nextii@\X@c \B@=\Y@c}\CORNER@ii}% \else\ifx U\next \DN@ U{\xy@{U}{\Y@c= \U@c \nextii@\X@c \B@=\Y@c}\CORNER@ii}% + \else\ifx A\next \DN@ A{\xy@{A}{\Y@c=\fontdimen22\textfont\tw@ \nextii@\X@c \B@=\Y@c}\CORNER@ii}% \else\ifx L\next \DN@ L{\xy@{L}{\X@c=-\L@c \nextii@\Y@c \A@=\X@c}\CORNER@ii}% \else\ifx R\next \DN@ R{\xy@{R}{\X@c= \R@c \nextii@\Y@c \A@=\X@c}\CORNER@ii}% \else\ifx C\next \DN@ C{\xy@{C}{\X@c= \A@ \Y@c= \B@}\CORNER@ii}% @@ -353,7 +354,7 @@ to the author of Xy-pic, krisrose@ens-lyon.fr.}% \else\ifx (\next \DN@(##1){\xy@{(##1)}{\X@c=##1\X@c \Y@c=##1\Y@c}\afterVECTOR@}% \else \let\next@=\afterVECTOR@ - \fi\fi\fi\fi\fi\fi\fi\fi \next@} + \fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} \xydef@\CORNER@ii{\xy@@{\let\nextii@=\eat@}% \VECTORempty@false \xyFN@\CORNER@i} \xydef@\VECTOR@other{% @@ -914,7 +915,9 @@ to the author of Xy-pic, krisrose@ens-lyon.fr.}% \else\ifdim\dimen@>\p@ \U@c=\dimen@ \advance\U@c-\p@ \D@c=-\L@c \fi\fi \else \D@c=\dimen@ \U@c=\Upness@\dimen@ \advance\D@c-\U@c \fi} \def\checkZeroEdge@{% - \DN@{}% + \expandafter\DN@\expandafter{\the\Edge@c}\def\nextii@{\zeroEdge}% + \ifx\next@\nextii@\Edge@c={\rectangleEdge}\fi + \DN@{}\def\nextii@{}% \ifdim\zz@\L@c \ifdim\zz@\R@c \ifdim\zz@\U@c \ifdim\zz@\D@c \DN@{\Edge@c={\zeroEdge}}\fi\fi\fi\fi \next@} @@ -1994,7 +1997,8 @@ be prepared for a lot of warnings about redefinitions).}% \message{loaded}\xyuncatcodes\endinput} \expandafter\xylet@\expandafter\xyprovidedocmode@\csname DOCMODE\endcsname \xylet@\xyenddocmode@=\relax -\xydef@\xydriversloaded@@{\do{unload}} +\xydef@\xydriversloaded@none{\do{unload}} +\xylet@\xydriversloaded@@=\xydriversloaded@none \xylet@\xydriversselected@@=\empty \xylet@\xydriver@unload@support@@=\empty \xydef@\selectdriver@#1{\DN@{#1}\edef\next@{\codeof\next@}% diff --git a/Master/texmf-dist/tex/generic/xypic/xy16textures.tex b/Master/texmf-dist/tex/generic/xypic/xy16textures.tex index 9b5d328beeb..058ebcc4a75 100644 --- a/Master/texmf-dist/tex/generic/xypic/xy16textures.tex +++ b/Master/texmf-dist/tex/generic/xypic/xy16textures.tex @@ -1,11 +1,11 @@ -%% xy16textures.tex from $Id: xy16textures.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ +%% xy16textures.tex from $Id: xy16textures.doc,v 3.6 2010/06/10 18:45:49 krisrose Exp $ %% %% Xy-pic ``Textures v1.6'' driver interface option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{16textures}{Textures v1.6 driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{16textures}{Textures v1.6 driver}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\oldTextures@@#1{\dvimessage@{Textures v1.6}{#1}} \newdriver{% diff --git a/Master/texmf-dist/tex/generic/xypic/xy17oztex.tex b/Master/texmf-dist/tex/generic/xypic/xy17oztex.tex index 02bfc53a299..bb7552a0d87 100644 --- a/Master/texmf-dist/tex/generic/xypic/xy17oztex.tex +++ b/Master/texmf-dist/tex/generic/xypic/xy17oztex.tex @@ -1,11 +1,11 @@ -%% xy17oztex.tex from $Id: xy17oztex.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ +%% xy17oztex.tex from $Id: xy17oztex.doc,v 3.7 2010/06/10 18:45:49 krisrose Exp $ %% %% Xy-pic ``OzTeX v1.7'' driver interface option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{17oztex}{OzTeX v1.7 driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{17oztex}{OzTeX v1.7 driver}{\stripRCS$Revision: 3.7 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\OzTeX@@#1{\dvimessage@{OzTeX v1.7}{#1}} \newdriver{% diff --git a/Master/texmf-dist/tex/generic/xypic/xy2cell.tex b/Master/texmf-dist/tex/generic/xypic/xy2cell.tex index 732d18573a5..60e5b4d7dbe 100644 --- a/Master/texmf-dist/tex/generic/xypic/xy2cell.tex +++ b/Master/texmf-dist/tex/generic/xypic/xy2cell.tex @@ -1,11 +1,11 @@ -%% xy2cell.tex from $Id: xy2cell.doc,v 3.3 1996/12/18 14:21:23 ross Exp $ +%% xy2cell.tex from $Id: xy2cell.doc,v 3.6 2010/06/10 18:45:49 krisrose Exp $ %% %% Xy-pic ``2-cell'' feature. -%% Copyright (c) 1993-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% for more details. %% %% You should have received a copy of the GNU General Public License along -%% with this macro package; if not, write to the Free Software Foundation, -%% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%% with this macro package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{2cell}{Two-cell feature}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{2cell}{Two-cell feature}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xyrequire{curve}\xycatcodes \message{two-cells,} diff --git a/Master/texmf-dist/tex/generic/xypic/xyall.tex b/Master/texmf-dist/tex/generic/xypic/xyall.tex index 927a3f145a2..d874ff6948f 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyall.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyall.tex @@ -1,11 +1,11 @@ -%% xyall.tex from $Id: xyall.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ +%% xyall.tex from $Id: xyall.doc,v 3.6 2010/06/10 18:45:49 krisrose Exp $ %% %% Xy-pic ``All features'' option. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@tug.org> %% %% 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> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{all}{All features}{\stripRCS$Revision: 3.3 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{all}{All features}{\stripRCS$Revision: 3.6 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \xyrequire{curve} diff --git a/Master/texmf-dist/tex/generic/xypic/xyarc.tex b/Master/texmf-dist/tex/generic/xypic/xyarc.tex index 689c28b48bb..2b73334aa9b 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyarc.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyarc.tex @@ -1,11 +1,11 @@ -%% xyarc.tex from $Id: xyarc.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ +%% xyarc.tex from $Id: xyarc.doc,v 3.7 2010/06/10 18:45:49 krisrose Exp $ %% %% Xy-pic ``Circles, Ellipses and Arcs'' feature. -%% Copyright (c) 1995-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1995-1997 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-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{arc}{Circle, Ellipse, Arc feature}{\stripRCS$Revision: 3.4 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{arc}{Circle, Ellipse, Arc feature}{\stripRCS$Revision: 3.7 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xyrequire{curve} \xycatcodes diff --git a/Master/texmf-dist/tex/generic/xypic/xyarrow.tex b/Master/texmf-dist/tex/generic/xypic/xyarrow.tex index 76a5361b2db..2e5e94ed374 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyarrow.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyarrow.tex @@ -1,11 +1,11 @@ -%% xyarrow.tex from $Id: xyarrow.doc,v 3.5 1997/05/28 13:05:01 krisrose Exp $ +%% xyarrow.tex from $Id: xyarrow.doc,v 3.7 2010/06/10 18:45:49 krisrose Exp $ %% %% Xy-pic ``Arrows and Paths'' feature. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@tug.org> %% %% 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@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{arrow}{Arrow and Path feature}{\stripRCS$Revision: 3.5 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{arrow}{Arrow and Path feature}{\stripRCS$Revision: 3.7 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \message{path,} diff --git a/Master/texmf-dist/tex/generic/xypic/xycmactex.tex b/Master/texmf-dist/tex/generic/xypic/xycmactex.tex index 80de58f6e38..9e31902a301 100644 --- a/Master/texmf-dist/tex/generic/xypic/xycmactex.tex +++ b/Master/texmf-dist/tex/generic/xypic/xycmactex.tex @@ -1,11 +1,11 @@ -%% xycmactex.tex from $Id: xycmactex.doc,v 3.3 1996/12/18 08:54:25 ross Exp $ +%% xycmactex.tex from $Id: xycmactex.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``CMacTeX'' driver interface option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{cmactex}{CMacTeX driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{cmactex}{CMacTeX driver}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xyrequire{dvips} \xyendinput diff --git a/Master/texmf-dist/tex/generic/xypic/xycmtip.tex b/Master/texmf-dist/tex/generic/xypic/xycmtip.tex index c3649f870aa..fbad3532db9 100644 --- a/Master/texmf-dist/tex/generic/xypic/xycmtip.tex +++ b/Master/texmf-dist/tex/generic/xypic/xycmtip.tex @@ -1,10 +1,10 @@ -%% xycmtip.tex from $Id: xycmtip.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ +%% xycmtip.tex from $Id: xycmtip.doc,v 3.5 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Computer Modern tips'' extension. -%% Copyright (c) 1992-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1992-1996 Kristoffer H. Rose <krisrose@tug.org> %% %% This file is part of the Xy-pic package for graphs and diagrams in TeX. -%% Copyright (c) 1991-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -17,12 +17,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{cmtip}{Computer Modern tip extension}{\stripRCS$Revision: 3.3 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{cmtip}{Computer Modern tip extension}{\stripRCS$Revision: 3.5 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \xyrequire{tips}\xycatcodes diff --git a/Master/texmf-dist/tex/generic/xypic/xycolor.tex b/Master/texmf-dist/tex/generic/xypic/xycolor.tex index 2e08f4e632c..d387544ee12 100644 --- a/Master/texmf-dist/tex/generic/xypic/xycolor.tex +++ b/Master/texmf-dist/tex/generic/xypic/xycolor.tex @@ -1,11 +1,11 @@ -%% xycolor.tex from $Id: xycolor.doc,v 3.3 1996/12/19 03:50:08 ross Exp $ +%% xycolor.tex from $Id: xycolor.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Colour extension'' option. -%% Copyright (c) 1993-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{color}{Colour extension}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{color}{Colour extension}{\stripRCS$Revision: 3.10 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\xycolorwarning@@{\xycolormessage@ \gdef\xycolorwarning@{\xycolormessage@ diff --git a/Master/texmf-dist/tex/generic/xypic/xycrayon.tex b/Master/texmf-dist/tex/generic/xypic/xycrayon.tex index 5056e8de87e..a8f0b9b2e07 100644 --- a/Master/texmf-dist/tex/generic/xypic/xycrayon.tex +++ b/Master/texmf-dist/tex/generic/xypic/xycrayon.tex @@ -1,11 +1,11 @@ -%% xycrayon.tex from $Id: xycrayon.doc,v 3.3 1996/12/18 08:58:16 ross Exp $ +%% xycrayon.tex from $Id: xycrayon.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Crayola colours'' PostScript backend support. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{crayon}{Crayola Colours}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{crayon}{Crayola Colours}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\installCrayolaColors@{% \xyinputorelse@{xyps-col}{\xyerror@{Could not load Crayola colours}{}}% diff --git a/Master/texmf-dist/tex/generic/xypic/xycurve.tex b/Master/texmf-dist/tex/generic/xypic/xycurve.tex index d298f07f043..010ee0d5d24 100644 --- a/Master/texmf-dist/tex/generic/xypic/xycurve.tex +++ b/Master/texmf-dist/tex/generic/xypic/xycurve.tex @@ -1,11 +1,11 @@ -%% xycurve.tex from $Id: xycurve.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xycurve.tex from $Id: xycurve.doc,v 3.11 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Curves and Splines'' extension. -%% Copyright (c) 1993-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-1997 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-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{curve}{Curve and Spline extension}{\stripRCS$Revision: 3.7 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{curve}{Curve and Spline extension}{\stripRCS$Revision: 3.11 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \message{curve,} \xynew@{count}\crv@cnt@ diff --git a/Master/texmf-dist/tex/generic/xypic/xydummy.tex b/Master/texmf-dist/tex/generic/xypic/xydummy.tex index d95ebb23c3d..9e44bc525e6 100644 --- a/Master/texmf-dist/tex/generic/xypic/xydummy.tex +++ b/Master/texmf-dist/tex/generic/xypic/xydummy.tex @@ -1,11 +1,11 @@ -%% xydummy.tex from $Id: xydummy.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ +%% xydummy.tex from $Id: xydummy.doc,v 3.5 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Dummy'' option. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@tug.org> %% %% 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> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{dummy}{Dummy option}{\stripRCS$Revision: 3.3 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{dummy}{Dummy option}{\stripRCS$Revision: 3.5 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \xynew@{count}\xydummyrequires@@ diff --git a/Master/texmf-dist/tex/generic/xypic/xydvidrv.tex b/Master/texmf-dist/tex/generic/xypic/xydvidrv.tex index 00314b5e95a..8d7b2b03749 100644 --- a/Master/texmf-dist/tex/generic/xypic/xydvidrv.tex +++ b/Master/texmf-dist/tex/generic/xypic/xydvidrv.tex @@ -1,11 +1,11 @@ -%% xydvidrv.tex from $Id: xydvidrv.doc,v 3.3 1996/12/18 09:12:40 ross Exp $ +%% xydvidrv.tex from $Id: xydvidrv.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``dvidrv-driver'' option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{dvidrv}{dvidrv driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{dvidrv}{dvidrv driver}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\dvidrv@@#1{\dvimessage@{dvidrv}{#1}} \newdriver{% diff --git a/Master/texmf-dist/tex/generic/xypic/xydvips.tex b/Master/texmf-dist/tex/generic/xypic/xydvips.tex index 7ae92f1a350..dd62683b451 100644 --- a/Master/texmf-dist/tex/generic/xypic/xydvips.tex +++ b/Master/texmf-dist/tex/generic/xypic/xydvips.tex @@ -1,11 +1,11 @@ -%% xydvips.tex from $Id: xydvips.doc,v 3.3 1996/12/18 09:13:14 ross Exp $ +%% xydvips.tex from $Id: xydvips.doc,v 3.8 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``dvips-driver'' option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{dvips}{DVIPS driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{dvips}{DVIPS driver}{\stripRCS$Revision: 3.8 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\dvips@@#1{\dvimessage@{dvips}{#1}} \newdriver{% @@ -36,7 +35,7 @@ \xyaddsupport{tile}\dvipsTiles@@ \xyaddsupport{tpic}\dvipsTPIC@ \xyaddsupport{emtex}\dvipsEM@ - \xyaddsupport{cmtip}\relax + \xyaddsupport{tips}\dvipsTIPS@ } \xydef@\dvips@Color@{\dvipsPStypes@ \let\xylocalColor@=\xystackcolor@ @@ -142,4 +141,14 @@ \xydef@\dvipsTPIC@{\setupxyTPIC@} \xydef@\dvipsEM@@{\dvipsEM@} \xydef@\dvipsEM@{\setupxyEMTeX@} +\xydef@\dvipsTIPS@{ + \PSdict@@{/XYdict where pop begin XYdict begin}% + \PSdict@@{% + /lu{0.04 0.0 -0.16 0.125 -0.11 0.0 + 1 1 6{pop xyfsize mul 6 1 roll}for + lineto lineto lineto closepath fill + 0 0 0 0 0 0}def + }% + \PSdict@@{end end}% +} \xyendinput diff --git a/Master/texmf-dist/tex/generic/xypic/xydvitops.tex b/Master/texmf-dist/tex/generic/xypic/xydvitops.tex index d607b4ceb92..8bc7ae6dc97 100644 --- a/Master/texmf-dist/tex/generic/xypic/xydvitops.tex +++ b/Master/texmf-dist/tex/generic/xypic/xydvitops.tex @@ -1,11 +1,11 @@ -%% xydvitops.tex from $Id: xydvitops.doc,v 3.3 1996/12/18 09:14:36 ross Exp $ +%% xydvitops.tex from $Id: xydvitops.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``DVITOPS-driver'' option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{dvitops}{DVITOPS driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{dvitops}{DVITOPS driver}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\dvitops@@#1{\dvimessage@{DVITOPS}{#1}} \newdriver{% diff --git a/Master/texmf-dist/tex/generic/xypic/xyemtex.tex b/Master/texmf-dist/tex/generic/xypic/xyemtex.tex index 5437223ac64..bc698bba81a 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyemtex.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyemtex.tex @@ -1,11 +1,11 @@ -%% xyemtex.tex from $Id: xyemtex.doc,v 3.3 1996/12/18 09:18:00 ross Exp $ +%% xyemtex.tex from $Id: xyemtex.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``em-TeX'' back-end extension. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% 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.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{emtex}{em-TeX backend}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xynew@{if}\ifEMspecials@ \xydef@\UseEMspecials{\EMspecials@true} diff --git a/Master/texmf-dist/tex/generic/xypic/xyframe.tex b/Master/texmf-dist/tex/generic/xypic/xyframe.tex index 879ca3c3329..f94aad1ffac 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyframe.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyframe.tex @@ -1,11 +1,11 @@ -%% xyframe.tex from $Id: xyframe.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyframe.tex from $Id: xyframe.doc,v 3.11 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Frames and Brackets'' extension. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@tug.org> %% %% 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@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{frame}{Frame and Bracket extension}{\stripRCS$Revision: 3.7 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{frame}{Frame and Bracket extension}{\stripRCS$Revision: 3.11 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \xydef@\frm{\hbox{}\dimen@=\L@c \advance\dimen@\R@c \wdz@=\dimen@ @@ -299,7 +298,7 @@ \xydef@\ellipsed@#1#2{\setboxz@h\bgroup \relax \setboxz@h{\vbox{\ellipsed@x@@{#1}{#2}}}% \A@=\X@c \advance\A@-.5\wd\z@ - \B@=\Y@c \advance\B@-.5\ht\z@ \advance\B@.5\dp\z@ \advance\B@.2\p@ + \B@=\Y@c \advance\B@-.5\ht\z@ \advance\B@.5\dp\z@ \edef\tmp@{\egroup\dimen@=\the\wdz@}% \kern\A@ \raise\B@\boxz@ \tmp@ \divide\dimen@4 \ht\z@=\z@ \dp\z@=\z@ \wd\z@=\z@ \boxz@} @@ -497,11 +496,12 @@ \expandafter\expandafter\expandafter{% \expandafter\whichframe@@\expandafter}\expandafter{\whichoptions@@}} \xydef@\saveframestyles@{% - \edef\afterframe@preStyle@{\preXY@style@}% - \edef\afterframe@postStyle@{\postXY@style@}} + \expandafter\def\expandafter\afterframe@preStyle@\expandafter{\preXY@style@}% + \expandafter\def\expandafter\afterframe@postStyle@\expandafter{\postXY@style@}} \xydef@\restoreframestyles@{% - \xdef\preXY@style@{\afterframe@preStyle@}\def\afterframe@preStyle@{}% - \xdef\postXY@style@{\afterframe@postStyle@}\def\afterframe@postStyle@{}} + \expandafter\gdef\expandafter\preXY@style@\expandafter{\afterframe@preStyle@}% + \expandafter\gdef\expandafter\postXY@style@\expandafter{\afterframe@postStyle@}% + \def\afterframe@preStyle@{}\def\afterframe@postStyle@{}} \xydef@\xycircleframe@x@{\L@=\R@ \xycircleframe@x@i}% \xydef@\xyellipseframe@x@#1#2{\R@=#1\relax \L@=#2\relax \xycircleframe@x@i} \xydef@\xycircleframe@x@i{% diff --git a/Master/texmf-dist/tex/generic/xypic/xygraph.tex b/Master/texmf-dist/tex/generic/xypic/xygraph.tex index d8b2284a33d..a4b4dbbd4d2 100644 --- a/Master/texmf-dist/tex/generic/xypic/xygraph.tex +++ b/Master/texmf-dist/tex/generic/xypic/xygraph.tex @@ -1,11 +1,11 @@ -%% xygraph.tex from $Id: xygraph.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xygraph.tex from $Id: xygraph.doc,v 3.9 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Graph Combinator feature'' option. -%% Copyright (c) 1994-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1994-1997 Kristoffer H. Rose <krisrose@tug.org> %% %% 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@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{graph}{Graph feature}{\stripRCS$Revision: 3.7 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{graph}{Graph feature}{\stripRCS$Revision: 3.9 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \xyrequire{arrow}\xycatcodes diff --git a/Master/texmf-dist/tex/generic/xypic/xyidioms.tex b/Master/texmf-dist/tex/generic/xypic/xyidioms.tex index a214a7f45bb..82b22a97cb8 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyidioms.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyidioms.tex @@ -1,11 +1,11 @@ -%% xyidioms.tex from $Id: xyidioms.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ +%% xyidioms.tex from $Id: xyidioms.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Format-dependent idioms for Xy-pic. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@tug.org> %% %% 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@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyidiomsloaded\empty \message{not reloaded}\endinput \fi \let\xyidiomsloaded=\empty diff --git a/Master/texmf-dist/tex/generic/xypic/xyimport.tex b/Master/texmf-dist/tex/generic/xypic/xyimport.tex index 5898aaa61cd..b185d99b8f5 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyimport.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyimport.tex @@ -1,11 +1,11 @@ -%% xyimport.tex from $Id: xyimport.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ +%% xyimport.tex from $Id: xyimport.doc,v 3.12 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Import feature'' option. -%% Copyright (c) 1993-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-1997 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-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{import}{Import graphics extension}{\stripRCS$Revision: 3.6 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{import}{Import graphics extension}{\stripRCS$Revision: 3.12 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\xyimport#1#{\xyimport@{#1}} \xydef@\xyimport@#1#2{\xydelayimport@{#1}{#2}} diff --git a/Master/texmf-dist/tex/generic/xypic/xyknot.tex b/Master/texmf-dist/tex/generic/xypic/xyknot.tex index dfe7d5006be..5366faa6e1f 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyknot.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyknot.tex @@ -1,11 +1,11 @@ -%% xyknot.tex from $Id: xyknot.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ +%% xyknot.tex from $Id: xyknot.doc,v 3.8 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Knots and Links'' feature. -%% Copyright (c) 1994-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1994-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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% for more details. %% %% You should have received a copy of the GNU General Public License along -%% with this macro package; if not, write to the Free Software Foundation, -%% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%% with this macro package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{knot}{Knots and Links feature}{\stripRCS$Revision: 3.4 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{knot}{Knots and Links feature}{\stripRCS$Revision: 3.8 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \message{knots and links,} \xyrequire{arrow}\xycatcodes diff --git a/Master/texmf-dist/tex/generic/xypic/xylatex.ini b/Master/texmf-dist/tex/generic/xypic/xylatex.ini deleted file mode 100644 index 3ba119f8437..00000000000 --- a/Master/texmf-dist/tex/generic/xypic/xylatex.ini +++ /dev/null @@ -1,77 +0,0 @@ -%% $Id: xylatex.ini,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-latex-*- -%% -%% Generate LaTeX + Xy-pic format file. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. - -% Load LaTeX (2e) but don't dump yet. -% (This ca - -\let\xypicsaveddump=\dump -\let\dump=\endinput -\input latex.ltx - -% KERNEL: -% -\input xy - -% Extensions and features: You can replace this line with selective loading -% of particular options if you like. -% -\xyoption{all} - -% BACKEND: Default is NOT to load any backend but by uncommenting the -% following line you can include the PostScript backend by default. -% -%\xyoption{ps} - -% DRIVERS: Default is NOT to load any driver but by uncommenting the -% following line you can include the DVIPS driver (or any other one you -% choose) by default (this will not select it, only make it available). -% -%\xyoption{dvips} - -% Finally dump the format file (using the hack above): -% -\xypicsaveddump - -% $Log: xylatex.ini,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.2 1995/09/19 18:22:27 kris -% Bug fix release. -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/06 02:56:02 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.12 1994/10/25 11:34:25 kris -% Interim release just before v3 [works with AMS-LaTeX 1.2]... -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% NEW file to go in version 2.10! diff --git a/Master/texmf-dist/tex/generic/xypic/xyline.tex b/Master/texmf-dist/tex/generic/xypic/xyline.tex index a6cee47e41a..5c7aa91ea89 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyline.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyline.tex @@ -1,11 +1,11 @@ -%% xyline.tex from $Id: xyline.doc,v 3.6 1998/03/06 01:28:05 krisrose Exp $ +%% xyline.tex from $Id: xyline.doc,v 3.9 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Line Width'' extension. -%% Copyright (c) 1993-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-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-1996 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{line}{Line styles extension}{\stripRCS$Revision: 3.6 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{line}{Line styles extension}{\stripRCS$Revision: 3.9 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydefcsname@{*stylechar@|@}#1{\xyFN@\xywidthchar@#1@@}% \xydefcsname@{style [thinner]}{\xyshape@thinner@} diff --git a/Master/texmf-dist/tex/generic/xypic/xymacpat.xyp b/Master/texmf-dist/tex/generic/xypic/xymacpat.xyp index 2987acd7bbe..628170b5d6f 100644 --- a/Master/texmf-dist/tex/generic/xypic/xymacpat.xyp +++ b/Master/texmf-dist/tex/generic/xypic/xymacpat.xyp @@ -1,11 +1,11 @@ -% $Id: xymacpat.xyp,v 3.3 1996/12/18 09:25:21 ross Exp $ +% $Id: xymacpat.xyp,v 3.6 2010/06/10 18:45:50 krisrose Exp $ % % Patterns for Xy-pic tile extension. -% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ % 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. +% with this package; if not, see http://www.gnu.org/licenses/. % mac01 00 <FFFFFFFFFFFFFFFF> mac02 08 <DDFF77FFDDFF77FF> diff --git a/Master/texmf-dist/tex/generic/xypic/xymatrix.tex b/Master/texmf-dist/tex/generic/xypic/xymatrix.tex index 1a66f80a1a8..fd15a38d54f 100644 --- a/Master/texmf-dist/tex/generic/xypic/xymatrix.tex +++ b/Master/texmf-dist/tex/generic/xypic/xymatrix.tex @@ -1,11 +1,11 @@ -%% xymatrix.tex from $Id: xymatrix.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ +%% xymatrix.tex from $Id: xymatrix.doc,v 3.8 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Matrix'' feature. -%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-1997 Kristoffer H. Rose <krisrose@tug.org> %% %% 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@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{matrix}{Matrix feature}{\stripRCS$Revision: 3.4 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{matrix}{Matrix feature}{\stripRCS$Revision: 3.8 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \xynew@{count}\Row @@ -384,7 +383,7 @@ \else\addPLUS@\ifx \next \let\next@=\xymatrix@addop \else\addDASH@\ifx \next \let\next@=\xymatrix@addop \else\addEQ@\ifx \next \let\next@=\xymatrix@addop - \else\ifx 1\next \DN@1{\def\everyentry@{\vphantom(}% + \else\ifx 1\next \DN@1{% \let\objectmargin@=\p@ \xyFN@\xymatrix@setup}% \else\ifx R\next \def\xymatrix@addop@@{\xymatrix@R}\DN@ R{\xymatrix@addop}% \else\ifx C\next \def\xymatrix@addop@@{\xymatrix@C}\DN@ C{\xymatrix@addop}% @@ -395,7 +394,7 @@ \else\ifx *\next \DN@*{\xyFN@\xymatrix@mods}% \else \DN@{\afterDIRECTIONorEMPTY {\xymatrix@rotation \xyFN@\xymatrix@setup}{% - \xyerror@{<addop> or <direction> or one of RCMLHW*! expected}{}% + \xyerror@{<addop> or <direction> or one of 1RCMLHW*! expected}{}% \xyFN@\xymatrix@setup}}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next@} \xydef@\xymatrix@fix{% @@ -470,17 +469,24 @@ \xyerror@{Impossible @*<addop><size> <setup>.}{}\xyFN@\xymatrix@setup} \xywarnifdefined\entrymodifiers \expandafter\def\addEQ@\entrymodifiers#1{\def\entrymodifiers@{#1}\ignorespaces} -\xydef@\entrymodifiers@{\entrybox} +\xydef@\entrymodifiers@{!\entrybox} \xydef@\entrybox#1{\hbox{\setbox\z@=\objectbox{#1}% - \L@p=\wdz@ \D@p=\ht\z@ \advance\D@p\dp\z@ - \dimen@=\objectwidth@ \advance\dimen@-\L@p - \ifdim\dimen@>\z@ \advance\L@p\dimen@ \R@p=.5\dimen@ \else \R@p=\z@ \fi - \dimen@=\objectheight@ \advance\dimen@-\D@p - \ifdim\dimen@>\z@ \advance\D@p\dimen@ \fi - \dimen@=\objectmargin@ \advance\L@p2\dimen@ \advance\D@p2\dimen@ - \U@p=-.5\ht\z@ \advance\U@p.5\dp\z@ \advance\R@p\objectmargin@ +%% Old code: +%%New code: + \A@=\wdz@ \R@p=\z@ + \dimen@=\objectwidth@ \advance\dimen@-\A@ + \ifdim\dimen@>\z@ \advance\A@\dimen@ \R@p=.5\dimen@ \fi + \dimen@=\objectmargin@ \advance\A@2\dimen@ \advance\R@p\dimen@ + \B@=\ht\z@ \advance\B@\dp\z@ \U@p=-\fontdimen22\textfont\tw@ + \dimen@=\objectheight@ \advance\dimen@-\B@ + \ifdim\dimen@>\z@ \advance\B@\dimen@ \fi + \dimen@=\objectmargin@ \advance\B@2\dimen@ \setboxz@h{\kern\R@p \raise\U@p\boxz@}% - \wdz@=\L@p \ht\z@=.5\D@p \dp\z@=.5\D@p \boxz@}} + \wdz@=\A@ + \advance\B@-\ht\z@ \advance\B@-\dp\z@ \B@=.5\B@ + \dimen@=\ht\z@ \advance\dimen@\B@ \ht\z@=\dimen@ + \dimen@=\dp\z@ \advance\dimen@\B@ \dp\z@=\dimen@ + \boxz@}} \xywarnifdefined\everyentry \expandafter\def\addEQ@\everyentry#1{\def\everyentry@{#1}\ignorespaces} \xylet@\everyentry@=\empty diff --git a/Master/texmf-dist/tex/generic/xypic/xymovie.tex b/Master/texmf-dist/tex/generic/xypic/xymovie.tex index f7efad3e7f4..28f632b477b 100644 --- a/Master/texmf-dist/tex/generic/xypic/xymovie.tex +++ b/Master/texmf-dist/tex/generic/xypic/xymovie.tex @@ -1,11 +1,11 @@ -%% xymovie.tex from $Id: xymovie.doc,v 3.5 1997/05/28 13:05:01 krisrose Exp $ +%% xymovie.tex from $Id: xymovie.doc,v 3.7 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Movie Storyboard extension'' option. -%% Copyright (c) 1996-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1996-1997 Kristoffer H. Rose <krisrose@tug.org> %% %% 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@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{movie}{Movie Storyboard extension}{\stripRCS$Revision: 3.5 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{movie}{Movie Storyboard extension}{\stripRCS$Revision: 3.7 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \xynew@{dimen}\m@height diff --git a/Master/texmf-dist/tex/generic/xypic/xynecula.tex b/Master/texmf-dist/tex/generic/xypic/xynecula.tex index 2b9bd72b4ff..5af498241d2 100644 --- a/Master/texmf-dist/tex/generic/xypic/xynecula.tex +++ b/Master/texmf-dist/tex/generic/xypic/xynecula.tex @@ -1,11 +1,11 @@ -%% xynecula.tex from $Id$ +%% xynecula.tex from $Id: xynecula.doc,v 3.3 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Necula extensions'' option. %% Copyright (c) 1998 George C. Necula <necula@cs.cmu.edu> %% %% 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-1998 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -18,11 +18,10 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{necula}{Necula's extensions}{\stripRCS$Revision: 0.0 $}% +\xyprovide{necula}{Necula's extensions}{\stripRCS$Revision: 3.3 $}% {George C. Necula}{necula@cs.cmu.edu}% {School of Computer Science, Carnegie Mellon University, diff --git a/Master/texmf-dist/tex/generic/xypic/xyoztex.tex b/Master/texmf-dist/tex/generic/xypic/xyoztex.tex index 8cf7b7456ea..397623ef797 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyoztex.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyoztex.tex @@ -1,11 +1,11 @@ -%% xyoztex.tex from $Id: xyoztex.doc,v 3.3 1996/12/18 09:26:26 ross Exp $ +%% xyoztex.tex from $Id: xyoztex.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``OzTeX'' driver interface option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{oztex}{OzTeX driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{oztex}{OzTeX driver}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\OzTeX@@#1{\dvimessage@{OzTeX}{#1}} \newdriver{% diff --git a/Master/texmf-dist/tex/generic/xypic/xypdf-co.tex b/Master/texmf-dist/tex/generic/xypic/xypdf-co.tex new file mode 100644 index 00000000000..956c26f0206 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/xypdf-co.tex @@ -0,0 +1,124 @@ +%% +%% This is file `xypdf-co.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xypdf.dtx (with options: `color') +%% +%% The xypdf package for TeX and LaTeX +%% Copyright (c) 2010 by Daniel Müllner (M\"ullner) +%% <http://www.math.uni-bonn.de/people/muellner> +%% -------------------------------------------------------------------------- +%% +%% This program 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. +%% +%% This program 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. +%% +%% The GNU General Public License is available at +%% <http://www.gnu.org/licenses/>. +%% +%% -------------------------------------------------------------------------- +%% +%% This file is part of the xypdf package for TeX and LaTeX2e. The xypdf +%% package may be distributed and/or modified under the conditions 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 distribution consists of the following files: +%% +%% xypdf.dtx - Documented source code +%% xypdf.ins - Installation script +%% xypdf.pdf - Documentation (generated from xypdf.dtx) +%% +%% The files with the TeX code are generated by the following command: +%% +%% latex xypdf.ins +%% +%% This generates the files xypdf.tex, xypdf-co.tex, xypdf-cu.tex, +%% xypdf-fr.tex, xypdf-li.tex and xypdf-ro.tex. +%% +%% -------------------------------------------------------------------------- +%% +%% The xypdf package improves the output quality of the Xy-pic package when +%% PDF documents are generated. It produces generic PDF code for graphical +%% elements like lines, curves and circles instead of approximating these +%% elements with glyphs in special fonts as the original Xy-pic package does. +%% The xypdf package works with both TeX and LaTeX in the occurrences of +%% pdfTeX, XeTeX and eTeX with dvipdfm(x) to generate PDF files. It is being +%% integrated and distributed together with Xy-pic, starting with Xy-pic +%% version 3.8. +%% +%% The copyright for the xypdf package is by its author, Daniel Müllner +%% (Muellner, M\"ullner). +%% + +\xycatcodes +\expandafter\let\csname xypdf-co@loaded\endcsname\@empty +\@ifdefinable\xP@colorname\relax +\@ifdefinable\xP@colA\relax +\@ifdefinable\xP@colB\relax +\@ifdefinable\xP@colC\relax +\@ifdefinable\xP@colD\relax +\xP@hook{color}{newxycolor} +\newcommand*\xP@newxycolor[2]{\def\xP@colorname{#1}\xP@parsecolor#2 @} +\@ifdefinable\xP@parsecolor\relax +\def\xP@parsecolor#1 #2 #3@{\def\xP@colA{#1}\def\xP@colB{#2}\ifx\xP@colB\xP@gray +\xP@newcolor\xP@colorname\xP@colA\xP@gray\newxycolor +\else +\xP@parsecolor@#3 @\fi +} +\@ifdefinable\xP@parsecolor@\relax +\def\xP@parsecolor@#1 #2 #3 #4@{\def\xP@colC{#1}\def\xP@colD{#2}\ifx\xP@colD\xP@rgb +\xP@newcolor\xP@colorname{\xP@colA,\xP@colB,\xP@colC}\xP@rgb\newxycolor +\else +\def\@tempa{#3}\ifx\@tempa\xP@cmyk +\xP@newcolor\xP@colorname{\xP@colA,\xP@colB,\xP@colC,\xP@colD}{cmyk}\newxycolor +\else +\PackageError{xypdf}{Syntax error in \string\newxycolor}{}\fi +} +\newcommand*\xP@gray{gray} +\newcommand*\xP@rgb{rgb} +\newcommand*\xP@cmyk{cmyk} +\xP@hook{color}{OBJECT@shape} +\newcommand*\xP@OBJECT@shape[1]{\DN@{shape [#1]}\expandafter\let\expandafter\nextii@\csname\codeof\next@\endcsname +\ifx\nextii@\relax\DN@{style [#1]}\expandafter\let\expandafter\nextii@\csname\codeof\next@\endcsname +\ifx\nextii@\relax\DN@{\xP@checkcolor{#1}}\else\DN@{\nextii@\xyFN@\OBJECT@}\fi +\else\expandafter\addtotoks@\expandafter{\nextii@}\DN@{\xyFN@\OBJECT@}\fi \next@} +\newcommand*\xP@checkcolor[1]{\@ifundefined{\string\color@\detokenize{#1}}{\OBJECT@shapei[#1]}{\xP@append\toks@{\noexpand\xP@color{{\detokenize{#1}}}}\xyFN@\OBJECT@ +}} +\newcommand*\xP@color[1]{\def\preStyle@@{\styletoks@{\xP@protectedcolor#1}}\let\postStyle@@\@empty +\modXYstyle@ +} +\@ifdefinable\xP@protectedcolor\relax +\protected\def\xP@protectedcolor{\@ifundefined{color}\xP@pdfcolor\color +} +\@ifdefinable\xP@pdfcolor\relax +\def\xP@pdfcolor[#1]#2{\edef\@tempa{#1}\ifx\@tempa\xP@gray +\DN@{\xP@graycolor{#2}}\else\ifx\@tempa\xP@rgb +\DN@{\xP@rgbcolor#2@}\else\ifx\@tempa\xP@cmyk +\DN@{\xP@cmykcolor#2@}\fi\fi\fi +\aftergroup\xP@resetcolor +\next@ +}\newcommand*\xP@graycolor[1]{\xP@setcolor{#1}gG}\@ifdefinable\xP@rgbcolor\relax +\def\xP@rgbcolor#1,#2,#3@{\xP@setcolor{#1 #2 #3}{rg}{RG}} +\@ifdefinable\xP@cmykcolor\relax +\def\xP@cmykcolor#1,#2,#3,#4@{\xP@setcolor{#1 #2 #3 #4}kK} +\newcommand*\xP@newcolor[4]{\expandafter\let\expandafter\next@\csname shape [#1]\endcsname +\ifx\next@\relax +\@ifundefined{\string\color@#1}\relax +{\xP@warning{xypdf}{The color `#1' is overridden by \string#4}}\DN@{\newxystyle{#1}{\xP@unnamedcolor{#2}{#3}}}\else +\DN@{}\fi +\next@\relax} +\newcommand*\xP@unnamedcolor[2]{\xP@color{[#2]{#1}}} +\newcommand\xP@definecrayolacolor[2]{\xP@newcolor{#1}{#2}{cmyk}\UseCrayolaColors}\newcommand*\xP@installCrayolaColors{\xP@definecrayolacolor{GreenYellow}{.15,0,.69,0}\xP@definecrayolacolor{Yellow}{0,0,1,0}\xP@definecrayolacolor{Goldenrod}{0,.1,.84,0}\xP@definecrayolacolor{Dandelion}{0,.29,.84,0}\xP@definecrayolacolor{Apricot}{0,.32,.52,0}\xP@definecrayolacolor{Peach}{0,.5,.7,0}\xP@definecrayolacolor{Melon}{0,.46,.5,0}\xP@definecrayolacolor{YellowOrange}{0,.42,1,0}\xP@definecrayolacolor{Orange}{0,.61,.87,0}\xP@definecrayolacolor{BurntOrange}{0,.51,1,0}\xP@definecrayolacolor{Bittersweet}{0,.75,1,.24}\xP@definecrayolacolor{RedOrange}{0,.77,.87,0}\xP@definecrayolacolor{Mahogany}{0,.85,.87,.35}\xP@definecrayolacolor{Maroon}{0,.87,.68,.32}\xP@definecrayolacolor{BrickRed}{0,.89,.94,.28}\xP@definecrayolacolor{Red}{0,1,1,0}\xP@definecrayolacolor{OrangeRed}{0,1,.5,0}\xP@definecrayolacolor{RubineRed}{0,1,.13,0}\xP@definecrayolacolor{WildStrawberry}{0,.96,.39,0}\xP@definecrayolacolor{Salmon}{0,.53,.38,0}\xP@definecrayolacolor{CarnationPink}{0,.63,0,0}\xP@definecrayolacolor{Magenta}{0,1,0,0}\xP@definecrayolacolor{VioletRed}{0,.81,0,0}\xP@definecrayolacolor{Rhodamine}{0,.82,0,0}\xP@definecrayolacolor{Mulberry}{.34,.9,0,.02}\xP@definecrayolacolor{RedViolet}{.07,.9,0,.34}\xP@definecrayolacolor{Fuchsia}{.47,.91,0,.08}\xP@definecrayolacolor{Lavender}{0,.48,0,0}\xP@definecrayolacolor{Thistle}{.12,.59,0,0}\xP@definecrayolacolor{Orchid}{.32,.64,0,0}\xP@definecrayolacolor{DarkOrchid}{.4,.8,.2,0}\xP@definecrayolacolor{Purple}{.45,.86,0,0}\xP@definecrayolacolor{Plum}{.5,1,0,0}\xP@definecrayolacolor{Violet}{.79,.88,0,0}\xP@definecrayolacolor{RoyalPurple}{.75,.9,0,0}\xP@definecrayolacolor{BlueViolet}{.86,.91,0,.04}\xP@definecrayolacolor{Periwinkle}{.57,.55,0,0}\xP@definecrayolacolor{CadetBlue}{.62,.57,.23,0}\xP@definecrayolacolor{CornflowerBlue}{.65,.13,0,0}\xP@definecrayolacolor{MidnightBlue}{.98,.13,0,.43}\xP@definecrayolacolor{NavyBlue}{.94,.54,0,0}\xP@definecrayolacolor{RoyalBlue}{1,.5,0,0}\xP@definecrayolacolor{Blue}{1,1,0,0}\xP@definecrayolacolor{Cerulean}{.94,.11,0,0}\xP@definecrayolacolor{Cyan}{1,0,0,0}\xP@definecrayolacolor{ProcessBlue}{.96,0,0,0}\xP@definecrayolacolor{SkyBlue}{.62,0,.12,0}\xP@definecrayolacolor{Turquoise}{.85,0,.2,0}\xP@definecrayolacolor{TealBlue}{.86,0,.34,.02}\xP@definecrayolacolor{Aquamarine}{.82,0,.3,0}\xP@definecrayolacolor{BlueGreen}{.85,0,.33,0}\xP@definecrayolacolor{Emerald}{1,0,.5,0}\xP@definecrayolacolor{JungleGreen}{.99,0,.52,0}\xP@definecrayolacolor{SeaGreen}{.69,0,.5,0}\xP@definecrayolacolor{Green}{1,0,1,0}\xP@definecrayolacolor{ForestGreen}{.91,0,.88,.12}\xP@definecrayolacolor{PineGreen}{.92,0,.59,.25}\xP@definecrayolacolor{LimeGreen}{.5,0,1,0}\xP@definecrayolacolor{YellowGreen}{.44,0,.74,0}\xP@definecrayolacolor{SpringGreen}{.26,0,.76,0}\xP@definecrayolacolor{OliveGreen}{.64,0,.95,.4}\xP@definecrayolacolor{RawSienna}{0,.72,1,.45}\xP@definecrayolacolor{Sepia}{0,.83,1,.7}\xP@definecrayolacolor{Brown}{0,.81,1,.6}\xP@definecrayolacolor{Tan}{.14,.42,.56,0}\xP@definecrayolacolor{Gray}{0,0,0,.5}\xP@definecrayolacolor{Black}{0,0,0,1}\xP@definecrayolacolor{White}{0,0,0,0}} +\xywithoption{crayon}{\xP@installCrayolaColors +\renewcommand*\installCrayolaColors@{}} +\xyendinput +%% +%% End of file `xypdf-co.tex'. diff --git a/Master/texmf-dist/tex/generic/xypic/xypdf-cu.tex b/Master/texmf-dist/tex/generic/xypic/xypdf-cu.tex new file mode 100644 index 00000000000..135d7e480c4 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/xypdf-cu.tex @@ -0,0 +1,1182 @@ +%% +%% This is file `xypdf-cu.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xypdf.dtx (with options: `curve') +%% +%% The xypdf package for TeX and LaTeX +%% Copyright (c) 2010 by Daniel Müllner (M\"ullner) +%% <http://www.math.uni-bonn.de/people/muellner> +%% -------------------------------------------------------------------------- +%% +%% This program 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. +%% +%% This program 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. +%% +%% The GNU General Public License is available at +%% <http://www.gnu.org/licenses/>. +%% +%% -------------------------------------------------------------------------- +%% +%% This file is part of the xypdf package for TeX and LaTeX2e. The xypdf +%% package may be distributed and/or modified under the conditions 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 distribution consists of the following files: +%% +%% xypdf.dtx - Documented source code +%% xypdf.ins - Installation script +%% xypdf.pdf - Documentation (generated from xypdf.dtx) +%% +%% The files with the TeX code are generated by the following command: +%% +%% latex xypdf.ins +%% +%% This generates the files xypdf.tex, xypdf-co.tex, xypdf-cu.tex, +%% xypdf-fr.tex, xypdf-li.tex and xypdf-ro.tex. +%% +%% -------------------------------------------------------------------------- +%% +%% The xypdf package improves the output quality of the Xy-pic package when +%% PDF documents are generated. It produces generic PDF code for graphical +%% elements like lines, curves and circles instead of approximating these +%% elements with glyphs in special fonts as the original Xy-pic package does. +%% The xypdf package works with both TeX and LaTeX in the occurrences of +%% pdfTeX, XeTeX and eTeX with dvipdfm(x) to generate PDF files. It is being +%% integrated and distributed together with Xy-pic, starting with Xy-pic +%% version 3.8. +%% +%% The copyright for the xypdf package is by its author, Daniel Müllner +%% (Muellner, M\"ullner). +%% + +\xycatcodes +\expandafter\let\csname xypdf-cu@loaded\endcsname\@empty +\newcommand*\xP@tempvar[2]{\@ifdefinable#1\relax +\let#1#2} +\xP@tempvar\xP@bigdim\quotPTK@ +\xP@tempvar\xP@parA\L@p +\xP@tempvar\xP@velA\U@p +\xP@tempvar\xP@parB\R@p +\xP@tempvar\xP@velB\D@p +\xP@tempvar\xP@parC\X@origin +\xP@tempvar\xP@velC\Y@origin +\xP@tempvar\xP@parD\X@xbase +\xP@tempvar\xP@velD\Y@xbase +\xP@tempvar\xP@parE\X@ybase +\xP@tempvar\xP@velE\Y@ybase +\xP@tempvar\xP@lenA\X@min +\xP@tempvar\xP@lenB\Y@min +\xP@tempvar\xP@partlen\X@max +\xP@tempvar\xP@oldpartlen\Y@max +\xP@tempvar\xP@tolerance\almostz@ +\xP@tempvar\xP@A\L@p +\xP@tempvar\xP@B\U@p +\xP@tempvar\xP@C\R@p +\xP@tempvar\xP@D\D@p +\xP@tempvar\xP@E\X@origin +\xP@tempvar\xP@F\Y@origin +\xP@tempvar\xP@G\X@xbase +\xP@tempvar\xP@H\Y@xbase +\xP@tempvar\xP@I\X@ybase +\xP@tempvar\xP@J\Y@ybase +\xP@tempvar\xP@K\X@min +\xP@tempvar\xP@L\Y@min +\xP@tempvar\xP@fa\X@max +\xP@tempvar\xP@fd\Y@max +\xP@tempvar\xP@tm\almostz@ +\xP@tempvar\xP@xm\K@dXdY +\xP@tempvar\xP@ym\K@dYdX +\@tempcnta\count11\relax +\xP@newdimen\xP@off +\xP@newdimen\xP@ta +\xP@newdimen\xP@tb +\xP@newdimen\xP@tc +\xP@newdimen\xP@M +\xP@newdimen\xP@oldobj +\xP@newdimen\xP@Tax +\xP@newdimen\xP@Tay +\xP@newdimen\xP@Tdx +\xP@newdimen\xP@Tdy +\xP@newdimen\xP@Tmx +\xP@newdimen\xP@Tmy +\xP@newdimen\xP@xa +\xP@newdimen\xP@ya +\xP@newdimen\xP@xb +\xP@newdimen\xP@yb +\xP@newdimen\xP@xc +\xP@newdimen\xP@yc +\xP@newdimen\xP@xd +\xP@newdimen\xP@yd +\count11\@tempcnta +\xP@tempvar\xP@a\X@ybase +\xP@tempvar\xP@b\Y@ybase +\xP@tempvar\xP@c\X@min +\xP@tempvar\xP@valA\Y@min +\xP@tempvar\xP@valB\X@max +\xP@tempvar\xP@devA\Y@max +\xP@tempvar\xP@devB\almostz@ +\xP@tempvar\xP@ti\K@dXdY +\xP@tempvar\xP@tip\K@dYdX +\xP@tempvar\xP@sa\xP@Tax +\xP@tempvar\xP@sb\xP@Tay +\xP@tempvar\xP@sc\xP@Tdx +\xP@tempvar\xP@Ab\xP@Tdy +\xP@tempvar\xP@AAb\xP@Tmx +\xP@tempvar\xP@Aba\xP@Tmy +\xP@tempvar\xP@Abb\xP@xa +\xP@tempvar\xP@Abc\xP@ya +\xP@tempvar\xP@AAba\xP@xb +\xP@tempvar\xP@AAbb\xP@yb +\xP@tempvar\xP@AAbc\xP@xc +\xP@tempvar\xP@dta\xP@yc +\xP@tempvar\xP@dtb\xP@xd +\xP@tempvar\xP@dtc\xP@yd +\xP@tempvar\xP@temppar\X@origin +\xP@tempvar\xP@tempvel\Y@origin +\xP@tempvar\xP@posX\X@xbase +\xP@tempvar\xP@posY\Y@xbase +\xP@tempvar\xP@oldpar\X@ybase +\xP@tempvar\xP@lastpar\Y@ybase +\xP@tempvar\xP@tempvel@\X@min +\xP@tempvar\xP@parinc\Y@min +\xP@tempvar\xP@squiglen\almostz@ +\xP@tempvar\xP@scaleone\K@ +\xP@tempvar\xP@scaletwo\KK@ +\xP@tempvar\xP@scalethree\Direction +\xP@hook{curve}{splinesolid@} +\newcommand*\xP@splinesolid@{\xP@spline\xP@setsolidpat} +\xP@hook{curve}{splinedashed@} +\newcommand*\xP@splinedashed@{\xP@spline\xP@setdashpat} +\xP@hook{curve}{splinedotted@} +\newcommand*\xP@splinedotted@{\xP@spline\xP@setdottedpat} +\newcommand*\xP@spline[1]{\readsplineparams@ +\ifdim\dimen5<\dimen7 +\xP@preparespline +\ifdim\@tempdimb>\z@ +#1\xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\L@c\U@c\xP@coor\R@c\D@c\xP@coor\X@c\Y@c c}\xP@savec +\fi +\fi +} +\newcommand*\xP@preparespline{\ifx\splineinfo@\squineinfo@ +\L@c\dimexpr(\X@p+2\A@)/3\relax +\U@c\dimexpr(\Y@p+2\B@)/3\relax +\R@c\dimexpr(\X@c+2\A@)/3\relax +\D@c\dimexpr(\Y@c+2\B@)/3\relax +\fi +\xP@shavespline +\xP@bezierlength +} +\newcommand*\xP@inibigdim{\xP@bigdim5040pt} +\newcommand*\xP@shavespline{\xP@shaveprec{\dimen5*\xP@bigdim/\p@}{\dimen7*\xP@bigdim/\p@}} +\newcommand*\xP@shaveprec[2]{{\xP@inibigdim +\A@\dimexpr#1\relax +\B@\dimexpr#2\relax +\@tempswatrue +\ifdim\A@=\z@\ifdim\B@=\xP@bigdim\@tempswafalse\fi\fi +\if@tempswa +\L@p\dimexpr\L@c-\X@p\relax +\U@p\dimexpr\R@c-\L@p-\L@c\relax +\R@p\dimexpr\X@c-3\R@c+3\L@c-\X@p\relax +\D@p\dimexpr\U@c-\Y@p\relax +\X@min\dimexpr\D@c-\D@p-\U@c\relax +\Y@min\dimexpr\Y@c-3\D@c+3\U@c-\Y@p\relax +\xdef\@gtempa{\X@p\the\dimexpr\X@p+(3\L@p+(3\U@p+\R@p*\A@/\xP@bigdim)*\A@/\xP@bigdim)*\A@/\xP@bigdim\relax +\Y@p\the\dimexpr\Y@p+(3\D@p+(3\X@min+\Y@min*\A@/\xP@bigdim)*\A@/\xP@bigdim)*\A@/\xP@bigdim\relax +\L@c\the\dimexpr\X@p+(2\A@+\B@)*\L@p/\xP@bigdim+((\A@+2\B@)*\U@p/\xP@bigdim+\R@p*\A@/\xP@bigdim*\B@/\xP@bigdim)*\A@/\xP@bigdim\relax +\U@c\the\dimexpr\Y@p+(2\A@+\B@)*\D@p/\xP@bigdim+((\A@+2\B@)*\X@min/\xP@bigdim+\Y@min*\A@/\xP@bigdim*\B@/\xP@bigdim)*\A@/\xP@bigdim\relax +\R@c\the\dimexpr\X@p+(2\B@+\A@)*\L@p/\xP@bigdim+((\B@+2\A@)*\U@p/\xP@bigdim+\R@p*\B@/\xP@bigdim*\A@/\xP@bigdim)*\B@/\xP@bigdim\relax +\D@c\the\dimexpr\Y@p+(2\B@+\A@)*\D@p/\xP@bigdim+((\B@+2\A@)*\X@min/\xP@bigdim+\Y@min*\B@/\xP@bigdim*\A@/\xP@bigdim)*\B@/\xP@bigdim\relax +\X@c\the\dimexpr\X@p+(3\L@p+(3\U@p+\R@p*\B@/\xP@bigdim)*\B@/\xP@bigdim)*\B@/\xP@bigdim\relax +\Y@c\the\dimexpr\Y@p+(3\D@p+(3\X@min+\Y@min*\B@/\xP@bigdim)*\B@/\xP@bigdim)*\B@/\xP@bigdim\relax}\else +\global\let\@gtempa\relax +\fi +}\@gtempa +} +\newcommand*\xP@bezierlength{{\xP@inibigdim +\@tempdimb\z@ +\xP@parA\z@ +\xP@velocity\z@\xP@velA +\xP@parC.5\xP@bigdim +\xP@velocity\xP@parC\xP@velC +\xP@velocity\xP@bigdim\xP@velE +\xP@oldpartlen\dimexpr(\xP@velA+4\xP@velC+\xP@velE)/6\relax +\xP@tolerance\xP@max{1sp}{\dimexpr\xP@oldpartlen/100000\relax}\xP@arclength\xP@parC\xP@velC\xP@bigdim\xP@velE\xP@oldpartlen +\global\dimen@i\@tempdimb +}\@tempdimb\dimen@i +} +\newcommand*\xP@velocity[2]{{\@tempdima\dimexpr#1\relax +\xP@tangent +\global\dimen@i\@tempdimb +}#2\dimen@i +} +\newcommand*\xP@tangent{\d@X3\xP@precbeziertan\X@p\L@c\R@c\X@c\@tempdima +\d@Y3\xP@precbeziertan\Y@p\U@c\D@c\Y@c\@tempdima +\xP@veclen +} +\newcommand*\xP@tangentvec[1]{{\@tempdima#1\relax +\xP@tangent +\ifdim\@tempdimb=\z@ +\L@p\dimexpr\X@c-\X@p+(\L@c-\R@c)*3\relax +\U@p\dimexpr\Y@c-\Y@p+(\U@c-\D@c)*3\relax +\d@X\dimexpr\L@p*\@tempdima/\xP@bigdim+(\X@p-2\L@c+\R@c)\relax +\d@Y\dimexpr\U@p*\@tempdima/\xP@bigdim+(\Y@p-2\U@c+\D@c)\relax +\xP@veclen +\ifdim\@tempdimb=\z@ +\d@X\L@p +\d@Y\U@p +\xP@veclen +\ifdim\@tempdimb=\z@ +\xP@warning{xypdf}{Cannot determine a tangent vector to a curve}\@tempdimb\p@ +\fi +\fi +\fi +\global\dimen@i\d@X +\global\dimen3\d@Y +\global\dimen5\@tempdimb +}\d@X\dimen@i +\d@Y\dimen3\relax +\@tempdimb\dimen5\relax +} +\newcommand*\xP@arclength[5]{\xP@parE#3\xP@velE#4\xP@parC#1\xP@velC#2\xP@oldpartlen#5\xP@parB\dimexpr(\xP@parC+\xP@parA)/2\relax +\xP@velocity\xP@parB\xP@velB +\xP@parD\dimexpr(\xP@parE+\xP@parC)/2\relax +\xP@velocity\xP@parD\xP@velD +\xP@lenA +\dimexpr(\xP@velA+4\xP@velB+\xP@velC)/6*(\xP@parC-\xP@parA)/\xP@bigdim\relax +\xP@lenB +\dimexpr(\xP@velC+4\xP@velD+\xP@velE)/6*(\xP@parE-\xP@parC)/\xP@bigdim\relax +\xP@partlen\dimexpr\xP@lenA+\xP@lenB\relax +{\@tempdima\dimexpr\xP@oldpartlen-\xP@partlen\relax +\expandafter}\ifdim\ifdim\@tempdima<\z@-\fi\@tempdima>\xP@tolerance +\edef\next@{\noexpand\xP@arclength\xP@parB\xP@velB\xP@parC\xP@velC\xP@lenA +\noexpand\xP@arclength{\the\xP@parD}{\the\xP@velD}{\the\xP@parE}{\the\xP@velE}{\the\xP@lenB}}\else +\xP@parA\xP@parE +\xP@velA\xP@velE +\advance\@tempdimb\xP@partlen +\DN@{}\fi +\next@ +} +\xP@hook{curve}{@crv@} +\newcommand*\xP@@crv@[2]{\DN@{#1#2}\ifx\next@\@empty \edef\next@{\crv@defaultshape}\ifx\bstartPLACE@\@empty\xdef\crvSTYLE@@{{\crv@defaultshape}}\fi +\else +\ifx\bstartPLACE@\@empty\gdef\crvSTYLE@@{#1{#2}}\fi +\fi +\ifx\next@\@empty\crv@noobject \DN@{\crv@{}{\xy@@crvaddstack@}}\else\def\tmp@{-}\ifx\next@\tmp@ \DN@{\crv@{}{\xy@@crvaddstack@}}\else\def\tmp@{=}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir{=}}}\else\def\tmp@{2-}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir{2.}}}\else\def\tmp@{3-}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir{3.}}}\else\def\tmp@{--}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@specialtemplate@{--}}\else\def\tmp@{==}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir2{--}}}\else\def\tmp@{2--}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir2{--}}}\else\def\tmp@{3--}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir3{--}}}\else\def\tmp@{.}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@specialtemplate@{.}}\else\def\tmp@{:}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir{:}}}\else\def\tmp@{2.}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir{:}}}\else\def\tmp@{3.}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir3{.}}}\else\def\tmp@{~}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir{~}}}\else\def\tmp@{2~}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir2{~}}}\else\def\tmp@{3~}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir3{~}}}\else\def\tmp@{~~}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir{~~}}}\else\def\tmp@{2~~}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir2{~~}}}\else\def\tmp@{3~~}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@normaltemplate{\dir3{~~}}}\else\def\tmp@{..}\ifx\next@\tmp@ +\DN@{\expandafter\crv@\crv@specialtemplate@{.}}\else +\DN@{\expandafter\crv@\crv@othertemplate{\dir#1{#2}}}\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@} +\xP@hook{curve}{xysplinespecialcases@} +\newcommand*\xP@xysplinespecialcases@{\ifx\@empty\xycrvdrop@ +\ifx\@empty\xycrvconn@\DN@{\splinesolid@}\else\DN@{ \dir{-}}\ifx\next@\xycrvconn@\DN@{\splinesolid@}\else\DN@{ \dir2{-}}\ifx\next@\xycrvconn@\DN@{\splinedoubled@}\else\DN@{ \dir{=}}\ifx\next@\xycrvconn@\DN@{\splineribboned@}\else\DN@{ \dir{2.}}\ifx\next@\xycrvconn@\DN@{\splinedoubled@}\else\DN@{ \dir3{-}}\ifx\next@\xycrvconn@\DN@{\splinetrebled@}\else\DN@{ \dir{3.}}\ifx\next@\xycrvconn@\DN@{\splinetrebled@}\else\DN@{ \dir{--}}\ifx\next@\xycrvconn@\DN@{\splinedashed@}\else\DN@{ \dir{.}}\ifx\next@\xycrvconn@\DN@{\splinedotted@}\else\DN@{ \dir{:}}\ifx\next@\xycrvconn@\DN@{\splinedbldotted@}\else\DN@{ \dir2{.}}\ifx\next@\xycrvconn@\DN@{\splinedbldotted@}\else\DN@{ \dir3{.}}\ifx\next@\xycrvconn@\DN@{\xP@splinetrbldotted}\else\DN@{ \dir2{--}}\ifx\next@\xycrvconn@\DN@{\xP@splinedbldashed}\else\DN@{ \dir3{--}}\ifx\next@\xycrvconn@\DN@{\xP@splinetrbldashed}\else\DN@{ \dir{~}}\ifx\next@\xycrvconn@\DN@{\xP@splinesquiggled}\else\DN@{ \dir2{~}}\ifx\next@\xycrvconn@\DN@{\xP@splinedblsquiggled}\else\DN@{ \dir3{~}}\ifx\next@\xycrvconn@\DN@{\xP@splinetrblsquiggled}\else\DN@{ \dir{~~}}\ifx\next@\xycrvconn@\DN@{\xP@splinebrokensquiggled}\else\DN@{ \dir2{~~}}\ifx\next@\xycrvconn@\DN@{\xP@splinebrokendblsquiggled}\else\DN@{ \dir3{~~}}\ifx\next@\xycrvconn@\DN@{\xP@splinebrokentrblsquiggled}\else\ifdim\splinetol@>\z@\else\splinedefaulttol@\fi +\DN@{\splineset@@}\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +\else +\DN@{\splineset@@}\fi +\ifInvisible@\DN@{}\fi +\next@ +} +\xP@hook{curve}{splinedoubled@} +\newcommand*\xP@splinedoubled@{\xP@checkspline\xP@splinemultsolid\xP@doublestroke} +\xP@hook{curve}{splineribboned@} +\@ifdefinable\xP@splineribboned@\relax +\let\xP@splineribboned@\xP@splinedoubled@ +\xP@hook{curve}{splinetrebled@} +\newcommand*\xP@splinetrebled@{\xP@checkspline\xP@splinemultsolid\xP@trblstroke} +\newcommand*\xP@doublestroke{\xydashh@/2,-\xydashh@/2} +\newcommand*\xP@trblstroke{\xydashh@,\z@,-\xydashh@} +\newcommand*\xP@checkspline[1]{\readsplineparams@ +\let\next@\@gobble +\ifdim\dimen5<\dimen7 +\xP@preparespline +\ifdim\@tempdimb>\z@ +\ifdim\@tempdimb<2\dimexpr\xP@preclw\relax +\let\next@\xP@splinemultsolid +\else +\let\next@#1\fi +\fi +\fi +\next@ +} +\newcommand*\xP@splinemultsolid[1]{{\xP@inibigdim +\@temptokena{}\xP@setsolidpat +\@for\@tempa:={#1}\do{\xP@paintsolid\z@\xP@bigdim}\xP@stroke{\the\@temptokena}}} +\newcommand*\xP@paintsolid[2]{{\xP@savepts +\xP@a#1\relax +\xP@c#2\relax +\xP@movetotrue +\xP@paintsolid@ +\xdef\@gtempa{\the\@temptokena}}\@temptokena\expandafter{\@gtempa}} +\newcommand*\xP@paintsolid@{\xP@b\xP@c +\xP@off\dimexpr\@tempa\relax +\ifdim\xP@off=\z@ +\xP@shaveprec\xP@a\xP@c +\else +\loop +\xP@restorepts +\xP@offsetsegment +\xP@testoffset +\unless\ifxP@offsetok +\xP@b\dimexpr\xP@a+(\xP@b-\xP@a)*7/10\relax +\repeat +\fi +\xP@append\@temptokena{\ifxP@moveto\xP@coor\X@p\Y@p m \fi +\xP@coor\L@c\U@c\xP@coor\R@c\D@c\xP@coor\X@c\Y@c c }\xP@movetofalse +\ifdim\xP@b<\xP@c\relax +\xP@a\xP@b +\expandafter\xP@paintsolid@ +\fi +} +\@ifdefinable\ifxP@moveto\relax +\@ifdefinable\xP@movetotrue\relax +\@ifdefinable\xP@movetofalse\relax +\newif\ifxP@moveto +\newcommand*\xP@savepts{\xP@xa\X@p +\xP@ya\Y@p +\xP@xb\L@c +\xP@yb\U@c +\xP@xc\R@c +\xP@yc\D@c +\xP@xd\X@c +\xP@yd\Y@c +} +\newcommand*\xP@restorepts{\X@p\xP@xa +\Y@p\xP@ya +\L@c\xP@xb +\U@c\xP@yb +\R@c\xP@xc +\D@c\xP@yc +\X@c\xP@xd +\Y@c\xP@yd +} +\@ifdefinable\xP@tmx\relax +\@ifdefinable\xP@tmy\relax +\newcommand*\xP@Tmxy{*\xP@Tmx/\xP@Tmy} +\newcommand*\xP@Tmyx{*\xP@Tmy/\xP@Tmx} +\newcommand*\xP@Tmzero{*\z@} +\newcommand*\xP@offsetsegment{{\xP@tangentvec\xP@a +\xP@xa\dimexpr\xP@precbezierpoly\X@p\L@c\R@c\X@c\xP@a/8+\d@Y*\xP@off/\@tempdimb\relax +\xP@ya\dimexpr\xP@precbezierpoly\Y@p\U@c\D@c\Y@c\xP@a/8-\d@X*\xP@off/\@tempdimb\relax +\xP@scaleT +\xP@Tax\d@X +\xP@Tay\d@Y +\xP@E\@tempdimb +\xP@tangentvec\xP@b +\xP@xd\dimexpr\xP@precbezierpoly\X@p\L@c\R@c\X@c\xP@b/8+\d@Y*\xP@off/\@tempdimb\relax +\xP@yd\dimexpr\xP@precbezierpoly\Y@p\U@c\D@c\Y@c\xP@b/8-\d@X*\xP@off/\@tempdimb\relax +\xP@scaleT +\xP@Tdx-\d@X +\xP@Tdy-\d@Y +\xP@F\@tempdimb +\xP@M\z@ +\xP@Max\xP@M\xP@Tdx +\xP@Max\xP@M\xP@Tdy +\xP@L\dimexpr\xP@Tax*\xP@Tdx/\xP@M+\xP@Tay*\xP@Tdy/\xP@M\relax +\xP@tm\dimexpr(\xP@a+\xP@b)/2\relax +\ifdim\xP@L>\dimexpr\xP@E*\xP@F/\xP@M*49/50\relax +\d@X-\dimexpr\xP@Tay+\xP@Tdy\relax +\d@Y\dimexpr\xP@Tax+\xP@Tdx\relax +\xP@veclen +\xP@A\dimexpr\X@c-\X@p\relax +\xP@B\dimexpr\Y@c-\Y@p\relax +\xP@M\z@ +\xP@Max\xP@M\xP@A +\xP@Max\xP@M\xP@B +\ifdim\xP@M=\z@ +\xP@A\dimexpr\R@c-\L@c\relax +\xP@B\dimexpr\D@c-\U@c\relax +\xP@Max\xP@M\xP@A +\xP@Max\xP@M\xP@B +\fi +\xP@M\dimexpr\d@X*\xP@A/\xP@M+\d@Y*\xP@B/\xP@M\relax +\ifdim\xP@M<\z@ +\multiply\d@X\m@ne +\multiply\d@Y\m@ne +\fi +\else +\xP@tangentvec\xP@tm +\fi +\xP@xm\dimexpr\xP@precbezierpoly\X@p\L@c\R@c\X@c\xP@tm+8\d@Y*\xP@off/\@tempdimb\relax +\xP@ym\dimexpr\xP@precbezierpoly\Y@p\U@c\D@c\Y@c\xP@tm-8\d@X*\xP@off/\@tempdimb\relax +\xP@Tmx\d@X +\xP@Tmy\d@Y +\xP@ifabsless\xP@Tmy\xP@Tmx +\let\xP@tmy\xP@Tmyx +\let\xP@tmx\@empty +\else +\ifdim\xP@Tmy=\z@ +\let\xP@tmx\xP@Tmzero +\let\xP@tmy\xP@Tmzero +\else +\let\xP@tmy\@empty +\let\xP@tmx\xP@Tmxy +\fi +\fi +\xP@fa\p@ +\xP@fd\p@ +\xP@tm\p@ +\count@\z@ +\loop +\xP@offsetpoints +\@tempswafalse +\ifnum10>\count@ +\xP@objfun\xP@oldobj +\ifdim\xP@oldobj>\xP@maxobjfun\relax\@tempswatrue\fi +\fi +\if@tempswa +\xP@offsetloop +\repeat +\xdef\@gtempa{\X@p\the\xP@xa\Y@p\the\xP@ya +\L@c\the\xP@xb\U@c\the\xP@yb\R@c\the\xP@xc\D@c\the\xP@yc +\X@c\the\xP@xd\Y@c\the\xP@yd\relax}}\@gtempa +} +\newcommand*\xP@scaleT{\xP@B6.28\xP@off +\xP@abs\xP@B +\xP@C\dimexpr\d@X*\xP@B/\@tempdimb\relax +\xP@D\dimexpr\d@Y*\xP@B/\@tempdimb\relax +\xP@A\dimexpr\xP@b-\xP@a\relax +\d@X\dimexpr\xP@C+\d@X*\xP@A/\xP@bigdim\relax +\d@Y\dimexpr\xP@D+\d@Y*\xP@A/\xP@bigdim\relax +\@tempdimb\dimexpr\xP@B+\@tempdimb*\xP@A/\xP@bigdim\relax +} +\newcommand*\xP@offsetloop{\xP@C\dimexpr\xP@C/2\relax +\xP@G\dimexpr\xP@G/2\relax +\xP@ta\dimexpr2\p@-\xP@tm\relax +\xP@tb\dimexpr\xP@tm*\xP@ta/\p@\relax +\xP@A\dimexpr\xP@Tax*\xP@tb/\p@*\xP@ta/\p@\relax +\xP@B\dimexpr\xP@Tdx*\xP@tb/\p@*\xP@tm/\p@\relax +\xP@E\dimexpr\xP@Tay*\xP@tb/\p@*\xP@ta/\p@\relax +\xP@F\dimexpr\xP@Tdy*\xP@tb/\p@*\xP@tm/\p@\relax +\xP@tb\dimexpr2\p@-3\xP@tm\relax +\xP@tc\dimexpr\xP@tb+2\p@\relax +\xP@I\dimexpr(2\xP@Tay\xP@tmx-2\xP@Tax\xP@tmy)*\xP@tb/\p@*\xP@ta/\p@\relax +\xP@J\dimexpr(2\xP@Tdy\xP@tmx-2\xP@Tdx\xP@tmy)*\xP@tc/\p@*\xP@tm/\p@\relax +\xP@K\dimexpr((\xP@yd-\xP@ya+(\xP@yb-\xP@yc)*3) +*\xP@tm/\p@+(\xP@yc-2\xP@yb+\xP@ya)*2)*12\xP@tmx +-((\xP@xd-\xP@xa+(\xP@xb-\xP@xc)*3) +*\xP@tm/\p@+(\xP@xc-2\xP@xb+\xP@xa)*2)*12\xP@tmy\relax +\xP@solvelinearsystem +\ifxP@validsol +\xP@correctsol +\ifdim\xP@ta=\z@ +\ifdim\xP@tb=\z@ +\ifdim\xP@tc=\z@ +\xP@validsolfalse +\fi\fi\fi +\fi +\ifxP@validsol +\else +\xP@applinsys +\advance\xP@fa-\xP@ta +\advance\xP@fd-\xP@tb +\advance\xP@tm-\xP@tc +\ifdim\xP@tm<\z@\xP@tm\z@\fi +\ifdim\xP@tm>2\p@\xP@tm2\p@\fi +\fi +\advance\count@\@ne +} +\newcommand*\xP@maxsol{3pt} +\newcommand*\xP@correctsol{\xP@M\z@ +\xP@Max\xP@M\xP@ta +\xP@Max\xP@M\xP@tb +\xP@Max\xP@M\xP@tc +\ifdim\xP@M>\xP@maxsol +\xP@ta\dimexpr\xP@maxsol*\xP@ta/\xP@M\relax +\xP@tb\dimexpr\xP@maxsol*\xP@tb/\xP@M\relax +\xP@tc\dimexpr\xP@maxsol*\xP@tc/\xP@M\relax +\fi +\advance\xP@fa-\xP@ta +\advance\xP@fd-\xP@tb +\xP@M\xP@tm +\advance\xP@tm-\xP@tc +\ifdim\xP@tm<\z@\xP@tm\z@\fi +\ifdim\xP@tm>2\p@\xP@tm2\p@\fi +{\xP@offsetpoints +\xP@objfun\xP@M +\expandafter}\ifdim\xP@M>\xP@oldobj +\advance\xP@fa\xP@ta +\advance\xP@fd\xP@tb +\xP@tm\xP@M +\xP@validsolfalse +\fi +} +\newcommand*\xP@objfun[1]{\xP@D\dimexpr\xP@bezierpoly\xP@xa\xP@xb\xP@xc\xP@xd\xP@tm-\xP@xm\relax +\xP@H\dimexpr\xP@bezierpoly\xP@ya\xP@yb\xP@yc\xP@yd\xP@tm-\xP@ym\relax +\xP@C\xP@beziertan\xP@xa\xP@xb\xP@xc\xP@xd\xP@tm +\xP@G\xP@beziertan\xP@ya\xP@yb\xP@yc\xP@yd\xP@tm +\xP@L\dimexpr\xP@G\xP@tmx-\xP@C\xP@tmy\relax +#1\z@ +\xP@Max#1\xP@D +\xP@Max#1\xP@H +\xP@Max#1\xP@L +#1\ifdim#1>4843165sp +\maxdimen +\else +\dimexpr\xP@D*\xP@D/\p@+\xP@H*\xP@H/\p@+\xP@L*\xP@L/\p@\relax +\fi +} +\newcommand*\xP@offsetpoints{\xP@xb\dimexpr\xP@xa+\xP@Tax*\xP@fa/196608\relax +\xP@yb\dimexpr\xP@ya+\xP@Tay*\xP@fa/196608\relax +\xP@xc\dimexpr\xP@xd+\xP@Tdx*\xP@fd/196608\relax +\xP@yc\dimexpr\xP@yd+\xP@Tdy*\xP@fd/196608\relax +} +\newcommand*\xP@bezierpoly[5]{\dimexpr(((#4-#1+(#2-#3)*3)*#5/\p@+(#1-2#2+#3)*6)*#5/\p@+(#2-#1)*12)*#5/\p@ ++#1*8\relax +} +\newcommand*\xP@precbezierpoly[5]{\dimexpr(((#4-#1+(#2-#3)*3)*2*#5/\xP@bigdim+(#1-2#2+#3)*6)*2*#5/\xP@bigdim ++(#2-#1)*12)*2*#5/\xP@bigdim+#1*8\relax +} +\newcommand*\xP@beziertan[5]{\dimexpr((#4-#1+(#2-#3)*3)*3*#5/32768+(#1-2#2+#3)*24)*#5/\p@+(#2-#1)*24\relax +} +\newcommand*\xP@precbeziertan[5]{\dimexpr((#4-#1+(#2-#3)*3)*#5/\xP@bigdim+(#1-2#2+#3)*2)*#5/\xP@bigdim ++#2-#1\relax +} +\@ifdefinable\xP@varone\relax +\@ifdefinable\xP@vartwo\relax +\@ifdefinable\xP@varthree\relax +\@ifdefinable\ifxP@validsol\relax +\@ifdefinable\xP@validsoltrue\relax +\@ifdefinable\xP@validsolfalse\relax +\newif\ifxP@validsol +\newcommand*\xP@solvelinearsystem{{\xP@scalerow\xP@A\xP@B\xP@C\xP@D +\xP@scalerow\xP@E\xP@F\xP@G\xP@H +\xP@scalerow\xP@I\xP@J\xP@K\xP@L +\xP@scalecol\xP@A\xP@E\xP@I\xP@scaleone +\xP@scalecol\xP@B\xP@F\xP@J\xP@scaletwo +\xP@scalecol\xP@C\xP@G\xP@K\xP@scalethree +\let\xP@varone\xP@ta +\let\xP@vartwo\xP@tb +\let\xP@varthree\xP@tc +\count@\m@ne +\@tempcnta\m@ne +\xP@ifabsless\xP@A\xP@B\@tempcnta\z@\xP@M\xP@B +\else\xP@M\xP@A\fi +\xP@ifabsless\xP@M\xP@C\@tempcnta\@ne\xP@M\xP@C\fi +\xP@ifabsless\xP@M\xP@E\@tempcnta\m@ne\count@\z@\xP@M\xP@E\fi +\xP@ifabsless\xP@M\xP@F\@tempcnta\z@\count@\z@\xP@M\xP@F\fi +\xP@ifabsless\xP@M\xP@G\@tempcnta\@ne\count@\z@\xP@M\xP@G\fi +\xP@ifabsless\xP@M\xP@I\@tempcnta\m@ne\count@\@ne\xP@M\xP@I\fi +\xP@ifabsless\xP@M\xP@J\@tempcnta\z@\count@\@ne\xP@M\xP@J\fi +\xP@ifabsless\xP@M\xP@K\@tempcnta\@ne\count@\@ne\fi +\ifcase\count@ +\xP@swapdim\xP@A\xP@E +\xP@swapdim\xP@B\xP@F +\xP@swapdim\xP@C\xP@G +\xP@swapdim\xP@D\xP@H +\or +\xP@swapdim\xP@A\xP@I +\xP@swapdim\xP@B\xP@J +\xP@swapdim\xP@C\xP@K +\xP@swapdim\xP@D\xP@L +\fi +\ifcase\@tempcnta +\xP@swapdim\xP@A\xP@B +\xP@swapdim\xP@E\xP@F +\xP@swapdim\xP@I\xP@J +\let\xP@varone\xP@tb +\let\xP@vartwo\xP@ta +\xP@swapnum\xP@scaleone\xP@scaletwo +\or +\xP@swapdim\xP@A\xP@C +\xP@swapdim\xP@E\xP@G +\xP@swapdim\xP@I\xP@K +\let\xP@varone\xP@tc +\let\xP@varthree\xP@ta +\xP@swapnum\xP@scaleone\xP@scalethree +\fi +\multiply\xP@E\m@ne +\multiply\xP@I\m@ne +\ifdim\xP@A=\z@ +\else +\advance\xP@F\dimexpr\xP@B*\xP@E/\xP@A\relax +\advance\xP@G\dimexpr\xP@C*\xP@E/\xP@A\relax +\advance\xP@H\dimexpr\xP@D*\xP@E/\xP@A\relax +\advance\xP@J\dimexpr\xP@B*\xP@I/\xP@A\relax +\advance\xP@K\dimexpr\xP@C*\xP@I/\xP@A\relax +\advance\xP@L\dimexpr\xP@D*\xP@I/\xP@A\relax +\fi +\count@\m@ne +\xP@ifabsless\xP@F\xP@G\@tempcnta\z@\xP@M\xP@G +\else\@tempcnta\m@ne\xP@M\xP@F\fi +\xP@ifabsless\xP@M\xP@J\@tempcnta\m@ne\count@\z@\xP@M\xP@J\fi +\xP@ifabsless\xP@M\xP@K\@tempcnta\z@\count@\z@\fi +\ifnum\count@=\z@ +\xP@swapdim\xP@F\xP@J +\xP@swapdim\xP@G\xP@K +\xP@swapdim\xP@H\xP@L +\fi +\ifnum\@tempcnta=\z@ +\xP@swapdim\xP@B\xP@C +\xP@swapdim\xP@F\xP@G +\xP@swapdim\xP@J\xP@K +\let\@tempa\xP@varthree +\let\xP@varthree\xP@vartwo +\let\xP@vartwo\@tempa +\xP@swapnum\xP@scaletwo\xP@scalethree +\fi +\ifdim\xP@F=\z@ +\else +\advance\xP@K\dimexpr-\xP@G*\xP@J/\xP@F\relax +\advance\xP@L\dimexpr-\xP@H*\xP@J/\xP@F\relax +\fi +\xP@ifabsless{\dimexpr\xP@L/60\relax}{\dimexpr\xP@K/\xP@scalethree\relax}\xP@validsoltrue +\xP@varthree\dimexpr\xP@L*(\xP@scalethree*\p@)/\xP@K\relax +\else +\xP@validsolfalse +\fi +\xP@checkabs{\xP@H/8191}{\xP@F/\xP@scaletwo}\xP@checkabs{\xP@G/\xP@scalethree/136}{\xP@F/\xP@scaletwo}\ifxP@validsol +\xP@vartwo\dimexpr\xP@H*(\xP@scaletwo*\p@)/\xP@F +-\xP@varthree*\xP@scaletwo/\xP@scalethree*\xP@G/\xP@F\relax +\xP@checkabs\xP@vartwo{60pt}\fi +\xP@checkabs{\xP@D/5461}{\xP@A/\xP@scaleone}\xP@checkabs{\xP@B/\xP@scaletwo/91}{\xP@A/\xP@scaleone}\xP@checkabs{\xP@C/\xP@scalethree/91}{\xP@A/\xP@scaleone}\ifxP@validsol +\xP@varone\dimexpr\xP@D*(\xP@scaleone*\p@)/\xP@A +-\xP@vartwo*\xP@scaleone/\xP@scaletwo*\xP@B/\xP@A +-\xP@varthree*\xP@scaleone/\xP@scalethree*\xP@C/\xP@A\relax +\xP@checkabs\xP@varone{60pt}\fi +\xdef\@gtempa{\ifxP@validsol +\xP@ta\the\xP@ta\relax +\xP@tb\the\xP@tb\relax +\xP@tc\the\xP@tc\relax +\noexpand\xP@validsoltrue +\else +\noexpand\xP@validsolfalse +\fi +}}\@gtempa +} +\newcommand*\xP@scalerow[4]{\xP@M\z@ +\xP@Max\xP@M#1\xP@Max\xP@M#2\xP@Max\xP@M#3\xP@Max\xP@M#4\count@134217727 +\loop +\divide\xP@M\tw@ +\ifdim\xP@M>\z@ +\divide\count@\tw@ +\repeat +\advance\count@\@ne +\multiply#1\count@ +\multiply#2\count@ +\multiply#3\count@ +\multiply#4\count@ +} +\newcommand*\xP@scalecol[4]{\xP@M\z@ +\xP@Max\xP@M#1\xP@Max\xP@M#2\xP@Max\xP@M#3#416777215 +\loop +\divide\xP@M\tw@ +\ifdim\xP@M>\z@ +\divide#4\tw@ +\repeat +\advance#4\@ne +\multiply#1#4\multiply#2#4\multiply#3#4} +\newcommand*\xP@checkabs[2]{\xP@ifabsless{\dimexpr#1\relax}{\dimexpr#2\relax}\else\xP@validsolfalse\fi} +\newcommand*\xP@applinsys{{\xP@applinsys@ +\xP@ta\xP@dta +\xP@tb\xP@dtb +\xP@tc\xP@dtc +\xP@checkapp +\if@tempswa +\xP@modobj +\xP@applinsys@ +\xP@checkapp +\if@tempswa +\xP@modsol +\xP@modobj +\xP@applinsys@ +\xP@modsol +\fi +\fi +\xdef\@gtempa{\xP@ta\the\xP@ta\relax +\xP@tb\the\xP@tb\relax +\xP@tc\the\xP@tc\relax +}}\@gtempa +} +\newcommand*\xP@checkapp{\@tempswatrue +\ifdim\xP@dta=\z@ +\ifdim\xP@dtb=\z@ +\ifdim\xP@dtc=\z@ +\@tempswafalse +\fi\fi\fi +} +\newcommand*\xP@modobj{\advance\xP@D +\dimexpr-\xP@A*\xP@dta/\p@-\xP@B*\xP@dtb/\p@-\xP@C*\xP@dtc/\p@\relax +\advance\xP@H +\dimexpr-\xP@E*\xP@dta/\p@-\xP@F*\xP@dtb/\p@-\xP@G*\xP@dtc/\p@\relax +\advance\xP@L +\dimexpr-\xP@I*\xP@dta/\p@-\xP@J*\xP@dtb/\p@-\xP@K*\xP@dtc/\p@\relax +} +\newcommand*\xP@modsol{\advance\xP@ta\xP@dta +\advance\xP@tb\xP@dtb +\advance\xP@tc\xP@dtc +} +\newcommand*\xP@applinsys@{{\xP@sa\z@ +\xP@Max\xP@sa\xP@A +\xP@Max\xP@sa\xP@B +\xP@Max\xP@sa\xP@C +\xP@Max\xP@sa\xP@E +\xP@Max\xP@sa\xP@F +\xP@Max\xP@sa\xP@G +\xP@Max\xP@sa\xP@I +\xP@Max\xP@sa\xP@J +\xP@Max\xP@sa\xP@K +\xP@sa\ifdim\xP@sa<5460pt\thr@@\xP@sa\else\maxdimen\fi +\xP@sb\z@ +\xP@Max\xP@sb\xP@D +\xP@Max\xP@sb\xP@H +\xP@Max\xP@sb\xP@L +\ifdim\xP@sb>\z@ +\xP@D\dimexpr\xP@D*\maxdimen/\xP@sb\relax +\xP@H\dimexpr\xP@H*\maxdimen/\xP@sb\relax +\xP@L\dimexpr\xP@L*\maxdimen/\xP@sb\relax +\fi +\xP@Aba\dimexpr\xP@A*\xP@D/\xP@sa+\xP@E*\xP@H/\xP@sa+\xP@I*\xP@L/\xP@sa\relax +\xP@Abb\dimexpr\xP@B*\xP@D/\xP@sa+\xP@F*\xP@H/\xP@sa+\xP@J*\xP@L/\xP@sa\relax +\xP@Abc\dimexpr\xP@C*\xP@D/\xP@sa+\xP@G*\xP@H/\xP@sa+\xP@K*\xP@L/\xP@sa\relax +\xP@AAba\dimexpr\xP@A*\xP@Aba/\xP@sa+\xP@B*\xP@Abb/\xP@sa ++\xP@C*\xP@Abc/\xP@sa\relax +\xP@AAbb\dimexpr\xP@E*\xP@Aba/\xP@sa+\xP@F*\xP@Abb/\xP@sa ++\xP@G*\xP@Abc/\xP@sa\relax +\xP@AAbc\dimexpr\xP@I*\xP@Aba/\xP@sa+\xP@J*\xP@Abb/\xP@sa ++\xP@K*\xP@Abc/\xP@sa\relax +\xP@sc\z@ +\xP@Max\xP@sc\xP@Aba +\xP@Max\xP@sc\xP@Abb +\xP@Max\xP@sc\xP@Abc +\xP@Max\xP@sc\xP@AAba +\xP@Max\xP@sc\xP@AAbb +\xP@Max\xP@sc\xP@AAbc +\ifdim\xP@sc=\z@ +\xP@AAb\z@ +\else +\xP@Ab\dimexpr\xP@Aba*\xP@bigdim/\xP@sc*\xP@Aba/\xP@sc ++\xP@Abb*\xP@bigdim/\xP@sc*\xP@Abb/\xP@sc ++\xP@Abc*\xP@bigdim/\xP@sc*\xP@Abc/\xP@sc +\relax +\xP@AAb\dimexpr\xP@AAba*\xP@bigdim/\xP@sc*\xP@AAba/\xP@sc ++\xP@AAbb*\xP@bigdim/\xP@sc*\xP@AAbb/\xP@sc ++\xP@AAbc*\xP@bigdim/\xP@sc*\xP@AAbc/\xP@sc +\relax +\fi +\xdef\@gtempa{\ifdim\xP@AAb=\z@ +\xP@dta\z@ +\xP@dtb\z@ +\xP@dtc\z@ +\else +\xP@dta\the\dimexpr\xP@Aba*\xP@sb/\xP@sa*\p@/\xP@AAb*\xP@Ab/\maxdimen +\relax +\xP@dtb\the\dimexpr\xP@Abb*\xP@sb/\xP@sa*\p@/\xP@AAb*\xP@Ab/\maxdimen +\relax +\xP@dtc\the\dimexpr\xP@Abc*\xP@sb/\xP@sa*\p@/\xP@AAb*\xP@Ab/\maxdimen +\relax +\fi +}}\@gtempa +} +\@ifdefinable\ifxP@offsetok\relax +\@ifdefinable\xP@offsetoktrue\relax +\@ifdefinable\xP@offsetokfalse\relax +\newif\ifxP@offsetok +\newcommand*\xP@maxdev{.1pt} +\newcommand*\xP@maxobjfun{.005pt} +\newcommand*\xP@testoffset{{\gdef\xP@afteroffsetok{\xP@offsetoktrue}\def\xP@offsetokif{\ifdim\xP@ti<1.85pt}\xP@ti.1pt +\loop +\xP@tip\dimexpr\xP@a+(\xP@b-\xP@a)*\xP@ti/131072\relax +\L@p\xP@precbezierpoly\xP@xa\xP@xb\xP@xc\xP@xd\xP@tip +\U@p\xP@precbezierpoly\xP@ya\xP@yb\xP@yc\xP@yd\xP@tip +\xP@valA\dimexpr\xP@bezierpoly\X@p\L@c\R@c\X@c\xP@ti-\L@p\relax +\xP@valB\dimexpr\xP@bezierpoly\Y@p\U@c\D@c\Y@c\xP@ti-\U@p\relax +\d@X3\xP@precbeziertan\xP@xa\xP@xb\xP@xc\xP@xd\xP@tip +\d@Y3\xP@precbeziertan\xP@ya\xP@yb\xP@yc\xP@yd\xP@tip +\xP@veclen +\@tempdimc\dimexpr(\xP@b-\xP@a)*\@tempdimb/\xP@bigdim\relax +\xP@abs\@tempdimc +\ifdim.01pt<\@tempdimc +\xP@devA\dimexpr\xP@valA*\d@X/\@tempdimb+\xP@valB*\d@Y/\@tempdimb\relax +\xP@devB\dimexpr\xP@valA*\d@Y/\@tempdimb-\xP@valB*\d@X/\@tempdimb-8\xP@off +\relax +\xP@abs\xP@devA +\xP@abs\xP@devB +\@tempdima\dimexpr\xP@devA+\xP@devB\relax +\else +\ifdim\@tempdimc=\z@ +\@tempdima\z@ +\else +{\d@X\xP@valA +\d@Y\xP@valB +\xP@veclen@ +\global\dimen@i\@tempdimb +}\@tempdima\dimen@i +\advance\@tempdima\ifdim\xP@off>\z@-\fi8\xP@off +\xP@abs\@tempdima +\fi +\fi +\ifdim\@tempdima>\xP@maxdev +\divide\L@p-8\relax +\divide\U@p-8\relax +{\xP@transformcoor\X@p\Y@p +\xP@transformcoor\L@c\U@c +\xP@transformcoor\R@c\D@c +\xP@transformcoor\X@c\Y@c +\xP@findzero +}\fi +\xP@offsetokif +\advance\xP@ti.1pt +\repeat +\expandafter}\xP@afteroffsetok +} +\newcommand*\xP@afteroffsetok{} +\newcommand*\xP@offsetokif{} +\newcommand*\xP@transformcoor[2]{\advance#1\L@p +\advance#2\U@p +\@tempdima\dimexpr#1*\d@X/\@tempdimb+#2*\d@Y/\@tempdimb\relax +#2\dimexpr#2*\d@X/\@tempdimb-#1*\d@Y/\@tempdimb\relax +#1\@tempdima +} +\newcommand*\xP@findzero{\xP@setleftvalue{.05}\xP@setrightvalue{.05}\ifdim\xP@valB<\z@\xP@reversecoeff\fi +\ifdim\xP@valA>\z@ +\@tempswatrue +\@for\@tempa:={.1,.15,.2,.25,.35,.5,1.1}\do{\if@tempswa +\xP@setleftvalue\@tempa +\ifdim\xP@valA<\z@\@tempswafalse\fi +\if@tempswa +\xP@setrightvalue\@tempa +\ifdim\xP@valB<\z@ +\@tempswafalse +\xP@reversecoeff +\fi +\fi +\fi +}\if@tempswa +\L@p\xP@ti +\xP@valA\xP@bezierpoly\X@p\L@c\R@c\X@c\L@p +\ifdim\xP@valA<\z@ +\xP@setrightvalue{.05}\else +\U@p\L@p +\xP@valB\xP@valA +\fi +\fi +\fi +\loop +\ifnum\numexpr\U@p-\L@p\relax>\@ne +\xP@ti\dimexpr(\L@p+\U@p)/2\relax +\xP@devA\xP@bezierpoly\X@p\L@c\R@c\X@c\xP@ti +\ifdim\xP@devA>\z@ +\U@p\xP@ti +\xP@valB\xP@devA +\else +\L@p\xP@ti +\xP@valA\xP@devA +\fi +\repeat +\xP@ifabsless\xP@valB\xP@valA +\L@p\U@p +\xP@valA\xP@valB +\fi +\xP@valB\dimexpr\xP@bezierpoly\Y@p\U@c\D@c\Y@c\L@p+8\xP@off\relax +\xP@abs\xP@valA +\xP@abs\xP@valB +\ifdim\dimexpr\xP@valA+\xP@valB\relax>\xP@maxdev\relax +\xP@failed +\fi +} +\newcommand*\xP@failed{\global\let\xP@offsetokif\iffalse +\gdef\xP@afteroffsetok{\xP@offsetokfalse}} +\newcommand*\xP@reversecoeff{\multiply\X@p\m@ne +\multiply\L@c\m@ne +\multiply\R@c\m@ne +\multiply\X@c\m@ne +\multiply\xP@valA\m@ne +\multiply\xP@valB\m@ne +} +\newcommand*\xP@setleftvalue[1]{\L@p\dimexpr\xP@ti-#1\p@\relax +\ifdim\L@p<-.1pt\L@p-.1pt\fi +\xP@valA\xP@bezierpoly\X@p\L@c\R@c\X@c\L@p +} +\newcommand*\xP@setrightvalue[1]{\U@p\dimexpr\xP@ti+#1\p@\relax +\ifdim\U@p>2.1\p@\U@p2.1\p@\fi +\xP@valB\xP@bezierpoly\X@p\L@c\R@c\X@c\U@p +} +\newcommand*\xP@splinedbldashed{\xP@checkspline\xP@splinemultdashed\xP@doublestroke} +\newcommand*\xP@splinetrbldashed{\xP@checkspline\xP@splinemultdashed\xP@trblstroke} +\newcommand*\xP@splinemultdashed[1]{\xP@testcont\xP@dashmacro +\@tempcnta +\ifxP@splinecont +\numexpr2*((\@tempdimb-\xydashl@/3)/(2*\xydashl@))\relax +\else +\numexpr2*((\@tempdimb+\xydashl@)/(2*\xydashl@))-1\relax +\fi +\ifnum\@tempcnta>\@ne +\xP@splinemultdashed@#1\else +\ifnum\@tempcnta=\@ne +\xP@splinemultsolid#1 +\else +\xP@savec +\fi +\fi +\global\let\xP@lastpattern\xP@dashmacro +} +\newcommand*\xP@splinemultdashed@[1]{{\xP@inibigdim +\@tempdima\dimexpr\@tempdimb/\@tempcnta\relax +\xP@temppar\z@ +\toks@{}\xP@savec +\ifodd\@tempcnta +\else +\xP@slide +\fi +\@tempcnta\z@ +\loop +\advance\@tempcnta\@ne +\xP@append\toks@{\ifodd\@tempcnta\noexpand\xP@paintdash\fi +{\the\xP@temppar}}\xP@oldpar\xP@temppar +\xP@slide +\ifdim\xP@temppar<\xP@bigdim +\repeat +\xP@lastpar +\ifodd\@tempcnta +\xP@temppar +\xP@append\toks@{{\the\xP@temppar}}\else +\xP@oldpar +\fi +\@temptokena{}\xP@setsolidpat +\global\let\xP@lastpattern\xP@dashmacro +\@for\@tempa:={#1}\do{\the\toks@}\xP@stroke{\the\@temptokena}}} +\newcommand*\xP@paintdash[2]{\xP@paintsolid{\dimexpr#1*\xP@bigdim/\xP@lastpar\relax}{\dimexpr#2*\xP@bigdim/\xP@lastpar\relax}} +\xP@hook{curve}{splinedbldotted@} +\newcommand*\xP@splinedbldotted@{\let\xP@normalmult\@ne +\xP@checkspline\xP@splinemultdotted\xP@doublestroke} +\newcommand*\xP@splinetrbldotted{\let\xP@normalmult\tw@ +\xP@checkspline\xP@splinemultdotted\xP@trblstroke} +\newcommand*\xP@multidottedpat{\def\xP@pattern{0 J [\xP@coor\xP@preclw{\xydashh@-\xP@preclw}]0 d}\global\let\xP@lastpattern\xP@dotmacro +} +\@ifdefinable\xP@normalmult\relax +\newcommand\xP@splinemultdotted[1]{{\xP@inibigdim +\xP@temppar\z@ +\xP@testcont\xP@dotmacro +\ifxP@splinecont +\@tempdimc\dimexpr\@tempdimb/(\@tempdimb/131072+1)\relax +\@tempdima\dimexpr\@tempdimc-\xP@preclw/2\relax +\xP@slide +\@tempdima\@tempdimc +\else +\@tempdima\dimexpr\xP@preclw/2\relax +\xP@slide +\@tempdima\dimexpr\@tempdimb-\xP@preclw\relax +\ifdim\@tempdima<\z@\@tempdima\z@\fi +\@tempdima\dimexpr\@tempdima/(\@tempdima/131072+1)\relax +\fi +\xP@savec +\toks@{}\ifdim\xP@temppar<\xP@bigdim +\loop +\xP@append\toks@{\noexpand\xP@paintdot{\the\xP@temppar}}\xP@oldpar\xP@temppar +\xP@slide +\ifdim\xP@temppar<\xP@bigdim +\repeat +\xP@velocity\xP@bigdim\xP@tempvel +\ifdim +\ifdim\xP@preclw<\xP@tempvel +\dimexpr2\xP@bigdim-\xP@oldpar-\xP@preclw*\xP@bigdim/\xP@tempvel\relax +\else +-\maxdimen +\fi<\xP@temppar +\xP@temppar\xP@oldpar +\else +\xP@append\toks@{\noexpand\xP@paintdot{\the\xP@temppar}}\fi +\@tempdima\dimexpr\xP@preclw/2\relax +\xP@slide +\xP@lastpar\xP@temppar +\@temptokena{}\the\toks@ +\xP@multidottedpat +\xP@stroke{\the\@temptokena}\else +\global\let\xP@lastpattern\@empty +\fi +}} +\newcommand*\xP@slide{{\xP@slide@ +\global\dimen@i\xP@temppar +}\xP@temppar\dimen@i +} +\newcommand*\xP@slide@{\xP@velocity\xP@temppar\xP@tempvel +\@tempdimc\dimexpr\xP@bigdim*\@tempdima/\@tempdimb\relax +\count@\z@ +\@tempswatrue +\loop +\xP@velocity{\xP@temppar+\@tempdimc}\xP@tempvel@ +\ifdim\dimexpr\@tempdima*4/13\relax>\xP@tempvel@ +\@tempswafalse +\else +\xP@parinc\dimexpr\@tempdima*\xP@bigdim/\xP@tempvel@ +-(\xP@tempvel+\xP@tempvel@)/2*\@tempdimc/\xP@tempvel@\relax +\advance\@tempdimc\xP@parinc +\ifdim\@tempdimc>.12\xP@bigdim +\@tempswafalse +\else +\ifdim\xP@parinc=\z@ +\@tempswafalse +\else +\ifnum\count@=9\relax +\@tempswafalse +\fi +\fi +\fi +\fi +\if@tempswa +\advance\count@\@ne +\repeat +\ifdim\xP@temppar<5461pt +\ifdim\@tempdimc>.1\xP@bigdim +\@tempswatrue +\fi +\fi +\if@tempswa +{\dimen5\xP@temppar +\advance\xP@temppar.1\xP@bigdim +\ifdim\xP@temppar>5461pt\xP@temppar5461pt\fi +\dimen7\xP@temppar +\xP@shaveprec{\dimen5}{\dimen7}\xP@bezierlength +\global\dimen@i\dimexpr\@tempdima-\@tempdimb\relax +\global\dimen3\xP@temppar +}\@tempdima\dimen@i +\xP@temppar\dimen3\relax +\expandafter\xP@slide@ +\else +\advance\xP@temppar\@tempdimc +\fi +} +\newcommand*\xP@paintdot[1]{\@tempdima\dimexpr#1*\xP@bigdim/\xP@lastpar\relax +\xP@tangent +\xP@posX\dimexpr\xP@precbezierpoly\X@p\L@c\R@c\X@c\@tempdima/8\relax +\xP@posY\dimexpr\xP@precbezierpoly\Y@p\U@c\D@c\Y@c\@tempdima/8\relax +\@tempdima\dimexpr(\xydashh@+\xP@preclw/\xP@normalmult)/2\relax +\L@p\dimexpr\d@Y*\@tempdima/\@tempdimb\relax +\U@p\dimexpr-\d@X*\@tempdima/\@tempdimb\relax +\xP@append\@temptokena{\xP@coor{\xP@posX+\L@p*\xP@normalmult}{\xP@posY+\U@p*\xP@normalmult}m \xP@coor{\xP@posX-\L@p*(\xP@normalmult+\@ne)}{\xP@posY-\U@p*(\xP@normalmult+\@ne)}l }} +\newcommand*\xP@splinesquiggled{\xP@checkspline\xP@splinesquiggled@\z@} +\newcommand*\xP@splinedblsquiggled{\xP@checkspline\xP@splinesquiggled@\xP@doublestroke} +\newcommand*\xP@splinetrblsquiggled{\xP@checkspline\xP@splinesquiggled@\xP@trblstroke} +\newcommand*\xP@splinesquiggled@[1]{{\xP@inibigdim +\xP@testcont\xP@oddsquigglemacro +\ifxP@splinecont +\def\xP@squigsign{-}\else +\let\xP@squigsign\@empty +\fi +\xP@savec +\@tempcnta=\numexpr\@tempdimb/\xybsqll@\relax +\ifnum\@tempcnta<\tw@\@tempcnta\tw@\fi +\multiply\@tempcnta\tw@ +\@tempdima\dimexpr\@tempdimb/\@tempcnta\relax +\xP@squiglen\@tempdima +\xP@temppar\z@ +\toks@{}\@tempcnta\z@ +\loop +\advance\@tempcnta\@ne +\xP@append\toks@{\noexpand\xP@paintsquiggle{\the\xP@temppar}}\xP@oldpar\xP@temppar +\xP@slide +\ifdim\xP@temppar<\xP@bigdim +\repeat +\xP@lastpar +\ifodd\@tempcnta +\xP@oldpar +\advance\@tempcnta\m@ne +\else +\xP@temppar +\xP@append\toks@{\noexpand\xP@paintsquiggle{\the\xP@temppar}}\fi +\@temptokena{}\xP@setsolidpat +\global\expandafter\let\expandafter\xP@lastpattern +\ifodd\numexpr\@tempcnta/2\if\xP@squigsign-+1\fi\relax +\xP@oddsquigglemacro +\else +\xP@evensquigglemacro +\fi +\@for\@tempa:={#1}\do{\let\xP@dosquiggle\xP@dosquiggle@ +\count@\z@ +\the\toks@ +}\xP@stroke{\the\@temptokena}}} +\newcommand*\xP@paintsquiggle[1]{\xP@squigglevectors{#1}\xP@dosquiggle +\ifnum\count@=\thr@@\relax\count@\z@\else\advance\count@\@ne\fi +} +\newcommand*\xP@squigglevectors[1]{\@tempdima\dimexpr#1*\xP@bigdim/\xP@lastpar\relax +\xP@tangent +\xP@posX\dimexpr\xP@precbezierpoly\X@p\L@c\R@c\X@c\@tempdima/8-\d@Y*(\@tempa)/\@tempdimb\relax +\xP@posY\dimexpr\xP@precbezierpoly\Y@p\U@c\D@c\Y@c\@tempdima/8+\d@X*(\@tempa)/\@tempdimb\relax +\L@p\dimexpr\d@X*\xP@squiglen/\@tempdimb\relax +\U@p\dimexpr\d@Y*\xP@squiglen/\@tempdimb\relax +\R@p\dimexpr\L@p*543339720/1311738121\relax +\D@p\dimexpr\U@p*543339720/1311738121\relax +\X@min\dimexpr\L@p*362911648/967576667\relax +\Y@min\dimexpr\U@p*362911648/967576667\relax +\X@max\dimexpr(\L@p+\xP@squigsign\U@p)*173517671/654249180\relax +\Y@max\dimexpr(\L@p-\xP@squigsign\U@p)*173517671/654249180\relax +} +\@ifdefinable\xP@dosquiggle@\relax +\newcommand*\xP@dosquiggle@{\edef\next@{\xP@coor{\xP@posX}{\xP@posY}m +\xP@coor{\xP@posX+\Y@max}{\xP@posY+\xP@squigsign\X@max}}\let\xP@dosquiggle\xP@dosquiggle@@ +} +\newcommand*\xP@dosquiggle@@{\xP@append\@temptokena{\next@\expandafter\xP@coor +\ifcase\count@ +{\xP@posX-\Y@max}{\xP@posY-\xP@squigsign\X@max}\xP@coor\xP@posX\xP@posY +\or +{\xP@posX-\xP@squigsign\D@p-\X@min}{\xP@posY+\xP@squigsign\R@p-\Y@min}\xP@coor{\xP@posX-\xP@squigsign\D@p}{\xP@posY+\xP@squigsign\R@p}\or +{\xP@posX-\X@max}{\xP@posY+\xP@squigsign\Y@max}\xP@coor\xP@posX\xP@posY +\or +{\xP@posX+\xP@squigsign\D@p-\X@min}{\xP@posY-\xP@squigsign\R@p-\Y@min}\xP@coor{\xP@posX+\xP@squigsign\D@p}{\xP@posY-\xP@squigsign\R@p}\fi c }\edef\next@{\expandafter\xP@coor +\ifcase\count@ +{\xP@posX+\Y@max}{\xP@posY+\xP@squigsign\X@max}\or +{\xP@posX-\xP@squigsign\D@p+\X@min}{\xP@posY+\xP@squigsign\R@p+\Y@min}\or +{\xP@posX+\X@max}{\xP@posY-\xP@squigsign\Y@max}\or +{\xP@posX+\xP@squigsign\D@p+\X@min}{\xP@posY-\xP@squigsign\R@p+\Y@min}\fi +}} +\newcommand*\xP@splinebrokensquiggled{\xP@checkspline\xP@splinebrokensquiggled@\z@} +\newcommand*\xP@splinebrokendblsquiggled{\xP@checkspline\xP@splinebrokensquiggled@\xP@doublestroke} +\newcommand*\xP@splinebrokentrblsquiggled{\xP@checkspline\xP@splinebrokensquiggled@\xP@trblstroke} +\newcommand*\xP@splinebrokensquiggled@[1]{{\xP@inibigdim +\xP@testcont\xP@brokensquigglemacro +\ifxP@splinecont +\let\xP@squigsign\@firstoftwo +\else +\let\xP@squigsign\@secondoftwo +\fi +\xP@savec +\@tempcnta\numexpr(\@tempdimb\xP@squigsign{}{+2*\xybsqll@})/(4*\xybsqll@)\relax +\ifnum\@tempcnta<\@ne\@tempcnta\@ne\fi +\@tempdima\dimexpr\@tempdimb/(8*\@tempcnta\xP@squigsign{}{-4})\relax +\xP@squiglen\@tempdima +\xP@temppar\z@ +\xP@squigsign{\xP@slide\xP@slide\xP@slide\xP@slide}{}\count@\z@ +\toks@{}\loop +\xP@append\toks@{\noexpand\xP@paintbrokensquiggle{\the\xP@temppar}}\xP@slide +\xP@append\toks@{{\the\xP@temppar}}\xP@slide +\xP@append\toks@{{\the\xP@temppar}}\xP@slide +\xP@append\toks@{{\the\xP@temppar}}\xP@slide +\xP@append\toks@{{\the\xP@temppar}}\xP@lastpar\xP@temppar +\advance\count@\@ne +\ifnum\count@<\@tempcnta +\xP@slide +\xP@slide +\xP@slide +\xP@slide +\repeat +\@temptokena{}\xP@setsolidpat +\global\let\xP@lastpattern\xP@brokensquigglemacro +\let\xP@squigsign\@empty +\@for\@tempa:={#1}\do{\the\toks@}\xP@stroke{\the\@temptokena}}} +\newcommand*\xP@paintbrokensquiggle[5]{\xP@squigglevectors{#1}\xP@append\@temptokena{\xP@coor\xP@posX\xP@posY m \xP@coor{\xP@posX+\Y@max}{\xP@posY+\X@max}}\xP@squigglevectors{#2}\xP@append\@temptokena{\xP@coor{\xP@posX-\D@p-\X@min}{\xP@posY+\R@p-\Y@min}\xP@coor{\xP@posX-\D@p}{\xP@posY+\R@p}c \xP@coor{\xP@posX-\D@p+\X@min}{\xP@posY+\R@p+\Y@min}}\xP@squigglevectors{#3}\xP@append\@temptokena{\xP@coor{\xP@posX-\X@max}{\xP@posY+\Y@max}\xP@coor\xP@posX\xP@posY c \xP@coor{\xP@posX+\X@max}{\xP@posY-\Y@max}}\xP@squigglevectors{#4}\xP@append\@temptokena{\xP@coor{\xP@posX+\D@p-\X@min}{\xP@posY-\R@p-\Y@min}\xP@coor{\xP@posX+\D@p}{\xP@posY-\R@p}c \xP@coor{\xP@posX+\D@p+\X@min}{\xP@posY-\R@p+\Y@min}}\xP@squigglevectors{#5}\xP@append\@temptokena{\xP@coor{\xP@posX-\Y@max}{\xP@posY-\X@max}\xP@coor\xP@posX\xP@posY c }} +\xyendinput +%% +%% End of file `xypdf-cu.tex'. diff --git a/Master/texmf-dist/tex/generic/xypic/xypdf-fr.tex b/Master/texmf-dist/tex/generic/xypic/xypdf-fr.tex new file mode 100644 index 00000000000..38bbe8247e0 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/xypdf-fr.tex @@ -0,0 +1,437 @@ +%% +%% This is file `xypdf-fr.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xypdf.dtx (with options: `frame') +%% +%% The xypdf package for TeX and LaTeX +%% Copyright (c) 2010 by Daniel Müllner (M\"ullner) +%% <http://www.math.uni-bonn.de/people/muellner> +%% -------------------------------------------------------------------------- +%% +%% This program 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. +%% +%% This program 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. +%% +%% The GNU General Public License is available at +%% <http://www.gnu.org/licenses/>. +%% +%% -------------------------------------------------------------------------- +%% +%% This file is part of the xypdf package for TeX and LaTeX2e. The xypdf +%% package may be distributed and/or modified under the conditions 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 distribution consists of the following files: +%% +%% xypdf.dtx - Documented source code +%% xypdf.ins - Installation script +%% xypdf.pdf - Documentation (generated from xypdf.dtx) +%% +%% The files with the TeX code are generated by the following command: +%% +%% latex xypdf.ins +%% +%% This generates the files xypdf.tex, xypdf-co.tex, xypdf-cu.tex, +%% xypdf-fr.tex, xypdf-li.tex and xypdf-ro.tex. +%% +%% -------------------------------------------------------------------------- +%% +%% The xypdf package improves the output quality of the Xy-pic package when +%% PDF documents are generated. It produces generic PDF code for graphical +%% elements like lines, curves and circles instead of approximating these +%% elements with glyphs in special fonts as the original Xy-pic package does. +%% The xypdf package works with both TeX and LaTeX in the occurrences of +%% pdfTeX, XeTeX and eTeX with dvipdfm(x) to generate PDF files. It is being +%% integrated and distributed together with Xy-pic, starting with Xy-pic +%% version 3.8. +%% +%% The copyright for the xypdf package is by its author, Daniel Müllner +%% (Muellner, M\"ullner). +%% + +\xyrequire{curve}\xycatcodes +\expandafter\let\csname xypdf-fr@loaded\endcsname\@empty +\newcommand*\xP@framedrop[1]{\expandafter\frmDrop@\expandafter{\expandafter\def\expandafter\prevEdge@@\expandafter{\prevEdge@@}#1\frmradius@@}} +\xP@hook{frame}{frm{-}} +\expandafter\newcommand\expandafter*\csname xP@frm{-}\endcsname{\xP@framedrop\xP@solidframe +} +\newcommand*\xP@solidframe[1]{\R@#1\relax +\xP@setsolidpat +\let\xP@fillorstroke\xP@stroke +\xP@frameifnotzero\xP@oval +} +\newcommand*\xP@frameifnotzero[1]{\setboxz@h{\hskip\X@c\raise\Y@c\hbox{\DN@{\zeroEdge}\ifx\next@\prevEdge@@ +\else +#1\fi +}}\wd\z@\z@\ht\z@\z@\dp\z@\z@ +\boxz@ +} +\newcommand*\xP@oval{\hskip-\L@c +\lower\D@c\hbox{\dimen@\dimexpr\L@c+\R@c\relax +\dimen@ii\dimexpr\U@c+\D@c\relax +\R@\xP@min\R@{.5\dimen@}\R@\xP@min\R@{.5\dimen@ii}\@tempdimb\dimexpr2\dimen@+2\dimen@ii-\R@*696621973/405764219\relax +\ifdim\R@=\z@ +\xP@fillorstroke{0 0 \xP@coor\dimen@\dimen@ii re}\else +\def\@tempa{*119763188/267309217}\xP@fillorstroke{\xP@dim\R@0 m \xP@dim{\R@\@tempa}0 0 \xP@dim{\R@\@tempa}0 \xP@dim\R@ c \ifdim2\R@=\dimen@ii\else +0 \xP@dim{\dimen@ii-\R@}l \fi +0 \xP@dim{\dimen@ii-\R@\@tempa}\xP@coor{\R@\@tempa}\dimen@ii +\xP@coor\R@\dimen@ii c \ifdim2\R@=\dimen@\else +\xP@coor{\dimen@-\R@}\dimen@ii l \fi +\xP@coor{\dimen@-\R@\@tempa}\dimen@ii +\xP@coor\dimen@{\dimen@ii-\R@\@tempa}\xP@coor\dimen@{\dimen@ii-\R@} c \ifdim2\R@=\dimen@ii\else +\xP@coor\dimen@\R@ l \fi +\xP@coor\dimen@{\R@\@tempa}\xP@dim{\dimen@-\R@\@tempa}0 \xP@dim{\dimen@-\R@}0 c h}\fi +}} +\xP@hook{frame}{frm[o]{-}} +\expandafter\newcommand\expandafter*\csname xP@frm[o]{-}\endcsname{\xP@framedrop{\xP@ellipseframe\xP@setsolidpat}} +\newcommand*\xP@ellipseframe[2]{\xP@getradii{#2}\DN@{\zeroEdge}\ifx\next@\prevEdge@@ +\else +\def\xP@fillorstroke{#1\xP@stroke}\setboxz@h{\hskip\X@c\raise\Y@c\hbox{\xP@framedellipse}}\wd\z@\z@\ht\z@\z@\dp\z@\z@ +\boxz@ +\fi +} +\xP@hook{frame}{frm{.}} +\expandafter\newcommand\expandafter*\csname xP@frm{.}\endcsname{\xP@framedrop\xP@rectframedotted +} +\newcommand*\xP@rectframedotted[1]{\R@#1\relax +\xP@frameifnotzero{\ifdim\R@=\z@ +\xP@dottedrect +\else +\xP@dottedoval +\fi +}} +\newcommand*\xP@dottedrect{\hskip-\L@c +\lower\D@c\hbox{\dimen@ii\dimexpr\U@c+\D@c\relax +\@tempdimc\dimexpr\xP@preclw/-2\relax +\@tempdimb\dimexpr\L@c+\R@c+\xP@preclw\relax +\xP@contfalse +\xP@setdottedpat +\dimen@\dimexpr\@tempdimb+\@tempdima/2+\@tempdimc\relax +\xP@stroke{\xP@dim\@tempdimc0 m \xP@dim\dimen@0 l \xP@coor\@tempdimc\dimen@ii m \xP@coor\dimen@\dimen@ii l}\let\xP@testcont\xP@alwaysconttrue +\@tempdimb\dimen@ii +\xP@setdottedpat +\dimen@\dimexpr\L@c+\R@c\relax +\advance\dimen@ii\dimexpr\@tempdimc-\@tempdima/2\relax +\multiply\@tempdimc\m@ne +\xP@stroke{0 \xP@dim\@tempdimc m 0 \xP@dim\dimen@ii l \xP@coor\dimen@\@tempdimc m \xP@coor\dimen@\dimen@ii l}}} +\newcommand*\xP@dottedoval{\def\xP@fillorstroke{\xP@setcldottedpat\xP@stroke}\xP@oval +} +\xP@hook{frame}{frm[o]{.}} +\expandafter\newcommand\expandafter*\csname xP@frm[o]{.}\endcsname{\xP@framedrop{\xP@ellipseframe\xP@setcldottedpat}} +\xP@hook{frame}{frm{--}} +\expandafter\newcommand\expandafter*\csname xP@frm{--}\endcsname{\xP@framedrop\xP@rectframedashed +} +\newcommand*\xP@rectframedashed[1]{\R@#1\relax +\xP@frameifnotzero{\ifdim\R@=\z@ +\xP@dashedrect +\else +\xP@dashedoval +\fi +}} +\newcommand*\xP@dashedrect{\hskip-\L@c +\lower\D@c\hbox{\dimen@\dimexpr\L@c+\R@c\relax +\dimen@ii\dimexpr\U@c+\D@c\relax +\@tempdimb\dimen@ +\xP@contfalse +\xP@setdashpat +\xP@stroke{0 0 m \xP@dim\dimen@0 l 0 \xP@dim\dimen@ii m \xP@coor\dimen@\dimen@ii l}\@tempdimb\dimen@ii +\xP@setdashpat +\xP@stroke{0 0 m 0 \xP@dim\dimen@ii l \xP@dim\dimen@0 m \xP@coor\dimen@\dimen@ii l}}} +\newcommand*\xP@dashedoval{\def\xP@fillorstroke{\xP@setcldashpat\xP@stroke}\xP@oval +} +\xP@hook{frame}{frm[o]{--}} +\expandafter\newcommand\expandafter*\csname xP@frm[o]{--}\endcsname{\xP@framedrop{\xP@ellipseframe\xP@setcldashpat}} +\xP@hook{frame}{frm{,}} +\expandafter\newcommand\expandafter*\csname xP@frm{,}\endcsname{\xP@framedrop\xP@frameshadow +} +\newcommand*\xP@frameshadow[1]{\R@#1\relax +\ifdim\R@=\z@\R@1.2pt\relax\fi +\xP@frameifnotzero\xP@shadow +} +\newcommand*\xP@shadow{\hskip\dimexpr\R@c+\R@/2\relax +\lower\dimexpr\D@c+\R@/2\relax\hbox{\def\xP@pattern{0 J 0 j []0 d}\edef\xP@lw{\xP@dim\R@}\xP@stroke{\xP@dim{\R@/2-\L@c-\R@c} 0 m 0 0 l 0 \xP@dim{\D@c+\U@c-\R@/2}l}}} +\xP@hook{frame}{frm{o-}} +\expandafter\newcommand\expandafter*\csname xP@frm{o-}\endcsname{\xP@framedrop\xP@roundedrectframe +} +\newcommand*\xP@roundedrectframe[1]{\R@#1\relax +\ifdim\R@=\z@\R@\xydashl@\relax\fi +\xP@frameifnotzero\xP@roundedrectangle +} +\newcommand*\xP@roundedrectangle{\dimen@\dimexpr\L@c+\R@c\relax +\dimen@ii\dimexpr\U@c+\D@c\relax +\R@\xP@min\R@{.5\dimen@}\R@\xP@min\R@{.5\dimen@ii}\hskip-\L@c +\lower\D@c\hbox{\@tempdimb\dimexpr2\dimen@+2\dimen@ii-\R@*696621973/405764219\relax +\def\@tempa{*119763188/267309217}\xP@setsolidpat +\xP@stroke{\xP@dim\R@0 m \xP@dim{\R@\@tempa}0 0 \xP@dim{\R@\@tempa}0 \xP@dim\R@ c \ifdim2\R@=\dimen@ii\else +0 \xP@dim{\dimen@ii-\R@}m \fi +0 \xP@dim{\dimen@ii-\R@\@tempa}\xP@coor{\R@\@tempa}\dimen@ii +\xP@coor\R@\dimen@ii c \ifdim2\R@=\dimen@\else +\xP@coor{\dimen@-\R@}\dimen@ii m \fi +\xP@coor{\dimen@-\R@\@tempa}\dimen@ii +\xP@coor\dimen@{\dimen@ii-\R@\@tempa}\xP@coor\dimen@{\dimen@ii-\R@} c \ifdim2\R@=\dimen@ii\else +\xP@coor\dimen@\R@ m \fi +\xP@coor\dimen@{\R@\@tempa}\xP@dim{\dimen@-\R@\@tempa}0 \xP@dim{\dimen@-\R@}0 c}\xP@contfalse +\@tempdimb\dimexpr\L@c+\R@c-2\R@\relax +\ifdim\@tempdimb<\z@\@tempdimb\z@\fi +\xP@setdashpat +\ifdim\@tempdima>\z@ +\dimen@\dimexpr\@tempdimb+\R@-\@tempdima/2\relax +\dimen@ii\dimexpr\U@c+\D@c\relax +\xP@stroke{\xP@dim{\R@+\@tempdima}0 m \xP@dim\dimen@ 0 l \xP@coor{\R@+\@tempdima}\dimen@ii m \xP@coor\dimen@\dimen@ii l}\fi +\@tempdimb\dimexpr\U@c+\D@c-2\R@\relax +\ifdim\@tempdimb<\z@\@tempdimb\z@\fi +\xP@setdashpat +\ifdim\@tempdima>\z@ +\dimen@\dimexpr\L@c+\R@c\relax +\dimen@ii\dimexpr\@tempdimb+\R@-\@tempdima/2\relax +\xP@stroke{0 \xP@dim{\R@+\@tempdima}m 0 \xP@dim\dimen@ii l \xP@coor\dimen@{\R@+\@tempdima}m \xP@coor\dimen@\dimen@ii l}\fi +}} +\xP@hook{frame}{frm{=}} +\expandafter\newcommand\expandafter*\csname xP@frm{=}\endcsname{\xP@framedrop\xP@dsframe +} +\newcommand*\xP@dsframe[1]{\R@#1\relax +\xP@frameifnotzero\xP@dsoval +} +\newcommand*\xP@dsoval{\dimen@\dimexpr(\L@c+\R@c)/2\relax +\ifdim\dimen@<\xydashh@\dimen@\xydashh@\fi +\dimen@ii\dimexpr(\U@c+\D@c)/2\relax +\ifdim\dimen@ii<\xydashh@\dimen@ii\xydashh@\fi +\R@\xP@min\R@\dimen@ +\R@\xP@min\R@\dimen@ii +\xP@setsolidpat +\let\xP@fillorstroke\xP@stroke +\xP@oval +\hskip\L@c +\advance\L@c-\xydashh@ +\advance\R@c-\xydashh@ +\advance\U@c-\xydashh@ +\advance\D@c-\xydashh@ +\advance\R@-\xydashh@ +\ifdim\R@<\z@\R@\z@\fi +\xP@oval +} +\xP@hook{frame}{frm[o]{=}} +\expandafter\newcommand\expandafter*\csname xP@frm[o]{=}\endcsname{\xP@framedrop\xP@dsellframe +} +\xP@hook{frame}{frm{ee}} +\expandafter\newcommand\expandafter*\csname xP@frm{ee}\endcsname{\xP@framedrop\xP@dsellframe +} +\newcommand*\xP@dsellframe[1]{\xP@getradii{#1}\xP@frameifnotzero\xP@dsellipse +} +\@ifdefinable\xP@temppath\relax +\newcommand*\xP@dsellipse{\hskip\dimexpr(\R@c-\L@c)/2\relax +\lower\dimexpr(\D@c-\U@c)/2\relax +\hbox{\advance\A@-\xydashh@ +\advance\B@-\xydashh@ +\ifdim\A@<\z@\A@\z@\fi +\ifdim\B@<\z@\B@\z@\fi +\def\xP@fillorstroke{\edef\xP@temppath}\xP@ellipse@ +\xP@inibigdim +\let\@tempa\xydashh@ +\xP@offsetellipse +\xP@setsolidpat +\xP@stroke{\xP@temppath\space\the\@temptokena h}}} +\newcommand*\xP@offsetellipse{\xP@movetotrue +\@temptokena{}\xP@offsetelliptseg\A@\z@\A@{\B@*173517671/654249180}{\A@*554561898/619869377}{\B@*34221476/65864945}{\A@*543339720/768398401}{\B@*543339720/768398401}\xP@offsetelliptseg{\A@*543339720/768398401}{\B@*543339720/768398401}{\A@*34221476/65864945}{\B@*554561898/619869377}{\A@*173517671/654249180}\B@\z@\B@ +\xP@mirrorpath +} +\newcommand*\xP@mirrorpath{\edef\@tempa{\the\@temptokena\relax\space\space\space\space}\let\@tempb\@empty +\let\@tempc\@empty +\expandafter\xP@mirrorpath@\@tempa +} +\@ifdefinable\xP@mirrorpath@\relax +\def\xP@mirrorpath@#1 #2 #3 #4 #5 #6 #7 {\ifx\relax#4\xP@append\@temptokena{\@tempb\xP@minus#1 \xP@minus#2 #3 \@tempc h}\else +\edef\@tempb{\xP@minus#6 #7 \xP@minus#4 #5 \xP@minus#1 #2 c \@tempb\if#3m\else\xP@minus#1 \xP@minus#2 #3 \fi\xP@minus#4 \xP@minus#5 \xP@minus#6 \xP@minus#7 }\edef\@tempc{#6 \xP@minus#7 #4 \xP@minus#5 #1 \xP@minus#2 c \@tempc}\expandafter\xP@mirrorpath@ +\fi +} +\@ifdefinable\xP@minus\relax +\def\xP@minus#1 {\if-#1 \else\ifdim\dimexpr#1pt\relax=\z@\else-\fi#1 \fi} +\newcommand*\xP@insertbefore[2]{{\edef\@tempa{#1{#2\the#1}}\expandafter}\@tempa} +\newcommand*\xP@offsetelliptseg[8]{\X@p\dimexpr#1\relax +\Y@p\dimexpr#2\relax +\L@c\dimexpr#3\relax +\U@c\dimexpr#4\relax +\R@c\dimexpr#5\relax +\D@c\dimexpr#6\relax +\X@c\dimexpr#7\relax +\Y@c\dimexpr#8\relax +\xP@savepts +\xP@a\z@ +\xP@c\xP@bigdim +\xP@paintsolid@ +} +\newcommand*\xP@getradii[1]{\edef\@tempa{#1}\expandafter\xP@getradii@\@tempa,\maxdimen,@} +\@ifdefinable\xP@getradii@\relax +\def\xP@getradii@#1,#2,#3@{\A@#1\relax +\B@#2\relax +\ifdim\B@=\maxdimen +\A@\dimexpr(\L@c+\R@c)/2\relax +\B@\dimexpr(\U@c+\D@c)/2\relax +\fi +} +\xP@hook{frame}{frm{o}} +\expandafter\newcommand\expandafter*\csname xP@frm{o}\endcsname{\xP@framedrop{\xP@circleframe\xP@setsolidpat}} +\xP@hook{frame}{frm{-o}} +\expandafter\newcommand\expandafter*\csname xP@frm{-o}\endcsname{\xP@framedrop{\xP@circleframe\xP@setcldashpat}} +\xP@hook{frame}{frm{.o}} +\expandafter\newcommand\expandafter*\csname xP@frm{.o}\endcsname{\xP@framedrop{\xP@circleframe\xP@setcldottedpat}} +\newcommand*\xP@circleframe[2]{\R@#2\relax +\def\xP@fillorstroke{#1\xP@stroke}\DN@{\zeroEdge}\ifx\next@\prevEdge@@ +\ifdim\R@>\z@ +\xP@circleframe@ +\fi +\else +\ifdim\R@=\z@ +\A@\dimexpr(\L@c+\R@c)/2\relax +\B@\dimexpr(\U@c+\D@c)/2\relax +\R@\xP@max\A@\B@ +\fi +\xP@circleframe@ +\fi +} +\newcommand*\xP@circleframe@{\setboxz@h{\hskip\X@c\raise\Y@c\hbox{\xP@circle}}\wd\z@\z@\ht\z@\z@\dp\z@\z@ +\boxz@ +} +\xP@hook{frame}{frm{e}} +\expandafter\newcommand\expandafter*\csname xP@frm{e}\endcsname{\xP@framedrop{\xP@ellipseframe\xP@setsolidpat}} +\xP@hook{frame}{frm{-e}} +\expandafter\newcommand\expandafter*\csname xP@frm{-e}\endcsname{\xP@framedrop{\xP@ellipseframe\xP@setcldashpat}} +\xP@hook{frame}{frm{.e}} +\expandafter\newcommand\expandafter*\csname xP@frm{.e}\endcsname{\xP@framedrop{\xP@ellipseframe\xP@setcldottedpat}} +\xP@hook{frame}{frm2{.e}} +\expandafter\newcommand\expandafter*\csname xP@frm2{.e}\endcsname{\xP@framedrop\xP@dsdottedellframe +} +\newcommand*\xP@dsdottedellframe[1]{\xP@getradii{#1}\xP@frameifnotzero\xP@dsdottedellipse +} +\newcommand*\xP@dsdottedellipse{\hskip\dimexpr(\R@c-\L@c)/2\relax +\lower\dimexpr(\D@c-\U@c)/2\relax +\hbox{\@tempdima.5\xydashh@\relax +\advance\A@-\@tempdima +\advance\B@-\@tempdima +\ifdim\A@<\@tempdima\A@\@tempdima\fi +\ifdim\B@<\@tempdima\B@\@tempdima\fi +\let\xP@normalmult\@ne +\xP@specialellipse{\xP@splinemultdotted\xP@doublestroke}}} +\newcommand*\xP@specialellipse[1]{\def\@tempa{*147546029/267309217}\X@p\A@ +\Y@p\z@ +\L@c\A@ +\U@c\dimexpr\B@\@tempa\relax +\R@c\dimexpr\A@\@tempa\relax +\D@c\B@ +\X@c\z@ +\Y@c\B@ +\xP@bezierlength +\let\xP@testcont\xP@alwaysconttrue +#1\X@p\z@ +\Y@p\B@ +\L@c-\R@c +\D@c\U@c +\U@c\B@ +\R@c-\A@ +\X@c-\A@ +\Y@c\z@ +#1\X@p-\A@ +\Y@p\z@ +\R@c\L@c +\L@c-\A@ +\U@c-\D@c +\D@c-\B@ +\X@c\z@ +\Y@c-\B@ +#1\X@p\z@ +\Y@p-\B@ +\L@c-\R@c +\D@c\U@c +\U@c-\B@ +\R@c\A@ +\X@c\A@ +\Y@c\z@ +#1} +\newcommand*\xP@alwaysconttrue[1]{\xP@splineconttrue} +\xP@hook{frame}{frm2{-e}} +\expandafter\newcommand\expandafter*\csname xP@frm2{-e}\endcsname{\xP@framedrop\xP@dsdashellframe +} +\newcommand*\xP@dsdashellframe[1]{\xP@getradii{#1}\xP@frameifnotzero\xP@dsdashellipse +} +\newcommand*\xP@dsdashellipse{\hskip\dimexpr(\R@c-\L@c)/2\relax +\lower\dimexpr(\D@c-\U@c)/2\relax +\hbox{\advance\A@-\xydashh@ +\advance\B@-\xydashh@ +\ifdim\A@<\z@\A@\z@\fi +\ifdim\B@<\z@\B@\z@\fi +\xP@specialellipse{\xP@splinemultdashed\xP@elldoublestroke}}} +\newcommand*\xP@elldoublestroke{\z@,\xydashh@} +\newcommand*\xP@fill[1]{\xP@literal{#1 f}} +\newcommand*\xP@fillstroke[1]{\xP@literal{\xP@dim{\xP@preclw/2}w 1 j 0 G #1 b}} +\newcommand*\xP@fillorstroke{} +\xP@hook{frame}{frm{*}} +\expandafter\newcommand\expandafter*\csname xP@frm{*}\endcsname{\xP@framedrop{\let\xP@fillorstroke\xP@fill\xP@framefill}} +\xP@hook{frame}{frm{**}} +\expandafter\newcommand\expandafter*\csname xP@frm{**}\endcsname{\xP@framedrop{\let\xP@fillorstroke\xP@fillstroke\xP@framefill}} +\newcommand*\xP@framefill[1]{\R@#1\relax +\xP@setsolidpat +\setboxz@h{\hskip\X@c\raise\Y@c\hbox{\DN@{\rectangleEdge}\ifx\next@\prevEdge@@ +\DN@{\xP@oval}\else +\DN@{\circleEdge}\ifx\next@\prevEdge@@ +\ifdim\R@=\z@ +\DN@{\xP@filledellipse}\else +\DN@{\restR@max\xP@circle}\fi +\else +\ifdim\R@=\z@ +\DN@{\xP@oval}\else +\DN@{\xP@circle}\fi +\fi +\fi +\next@ +}}\wd\z@\z@\ht\z@\z@\dp\z@\z@ +\boxz@ +} +\newcommand*\xP@circle{\xP@ellipse\R@\R@ +} +\newcommand*\xP@filledellipse{\xP@ellipse{\dimexpr(\L@c+\R@c)/2\relax}{\dimexpr(\U@c+\D@c)/2\relax}} +\newcommand*\xP@framedellipse{\xP@ellipse\A@\B@ +} +\newcommand*\xP@ellipse[2]{\hskip\dimexpr(\R@c-\L@c)/2\relax +\lower\dimexpr(\D@c-\U@c)/2\relax +\hbox{\A@#1\relax +\B@#2\relax +\xP@ellipse@ +}} +\newcommand*\xP@ellipse@{\X@p\dimexpr\A@*543339720/768398401\relax +\Y@p\dimexpr\B@*543339720/768398401\relax +\L@c\dimexpr\A@*34221476/65864945\relax +\U@c\dimexpr\B@*554561898/619869377\relax +\R@c\dimexpr\A@*173517671/654249180\relax +\D@c\B@ +\X@c\z@ +\Y@c\B@ +\xP@bezierlength +\@tempdima\@tempdimb +\X@p\A@ +\Y@p\z@ +\L@c\A@ +\U@c\dimexpr\B@*173517671/654249180\relax +\R@c\dimexpr\A@*554561898/619869377\relax +\D@c\dimexpr\B@*34221476/65864945\relax +\X@c\dimexpr\A@*543339720/768398401\relax +\Y@c\dimexpr\B@*543339720/768398401\relax +\xP@bezierlength +\@tempdimb4\dimexpr\@tempdima+\@tempdimb\relax +\edef\@tempa{\xP@dim\A@0 m +\xP@coor\L@c\U@c +\xP@coor\R@c\D@c +\xP@coor\X@c\Y@c c \xP@coor{\A@*34221476/65864945}{\B@*554561898/619869377}\xP@coor{\A@*173517671/654249180}\B@ +0 \xP@dim\B@ c }\@temptokena\expandafter{\@tempa}\xP@mirrorpath +\xP@fillorstroke{\the\@temptokena}} +\xyendinput +%% +%% End of file `xypdf-fr.tex'. diff --git a/Master/texmf-dist/tex/generic/xypic/xypdf-li.tex b/Master/texmf-dist/tex/generic/xypic/xypdf-li.tex new file mode 100644 index 00000000000..f977ceb3aae --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/xypdf-li.tex @@ -0,0 +1,65 @@ +%% +%% This is file `xypdf-li.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xypdf.dtx (with options: `line') +%% +%% The xypdf package for TeX and LaTeX +%% Copyright (c) 2010 by Daniel Müllner (M\"ullner) +%% <http://www.math.uni-bonn.de/people/muellner> +%% -------------------------------------------------------------------------- +%% +%% This program 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. +%% +%% This program 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. +%% +%% The GNU General Public License is available at +%% <http://www.gnu.org/licenses/>. +%% +%% -------------------------------------------------------------------------- +%% +%% This file is part of the xypdf package for TeX and LaTeX2e. The xypdf +%% package may be distributed and/or modified under the conditions 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 distribution consists of the following files: +%% +%% xypdf.dtx - Documented source code +%% xypdf.ins - Installation script +%% xypdf.pdf - Documentation (generated from xypdf.dtx) +%% +%% The files with the TeX code are generated by the following command: +%% +%% latex xypdf.ins +%% +%% This generates the files xypdf.tex, xypdf-co.tex, xypdf-cu.tex, +%% xypdf-fr.tex, xypdf-li.tex and xypdf-ro.tex. +%% +%% -------------------------------------------------------------------------- +%% +%% The xypdf package improves the output quality of the Xy-pic package when +%% PDF documents are generated. It produces generic PDF code for graphical +%% elements like lines, curves and circles instead of approximating these +%% elements with glyphs in special fonts as the original Xy-pic package does. +%% The xypdf package works with both TeX and LaTeX in the occurrences of +%% pdfTeX, XeTeX and eTeX with dvipdfm(x) to generate PDF files. It is being +%% integrated and distributed together with Xy-pic, starting with Xy-pic +%% version 3.8. +%% +%% The copyright for the xypdf package is by its author, Daniel Müllner +%% (Muellner, M\"ullner). +%% + +\xycatcodes +\expandafter\let\csname xypdf-li@loaded\endcsname\@empty +\xyendinput +%% +%% End of file `xypdf-li.tex'. diff --git a/Master/texmf-dist/tex/generic/xypic/xypdf-ro.tex b/Master/texmf-dist/tex/generic/xypic/xypdf-ro.tex new file mode 100644 index 00000000000..81721de1cc4 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/xypdf-ro.tex @@ -0,0 +1,129 @@ +%% +%% This is file `xypdf-ro.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xypdf.dtx (with options: `rotate') +%% +%% The xypdf package for TeX and LaTeX +%% Copyright (c) 2010 by Daniel Müllner (M\"ullner) +%% <http://www.math.uni-bonn.de/people/muellner> +%% -------------------------------------------------------------------------- +%% +%% This program 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. +%% +%% This program 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. +%% +%% The GNU General Public License is available at +%% <http://www.gnu.org/licenses/>. +%% +%% -------------------------------------------------------------------------- +%% +%% This file is part of the xypdf package for TeX and LaTeX2e. The xypdf +%% package may be distributed and/or modified under the conditions 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 distribution consists of the following files: +%% +%% xypdf.dtx - Documented source code +%% xypdf.ins - Installation script +%% xypdf.pdf - Documentation (generated from xypdf.dtx) +%% +%% The files with the TeX code are generated by the following command: +%% +%% latex xypdf.ins +%% +%% This generates the files xypdf.tex, xypdf-co.tex, xypdf-cu.tex, +%% xypdf-fr.tex, xypdf-li.tex and xypdf-ro.tex. +%% +%% -------------------------------------------------------------------------- +%% +%% The xypdf package improves the output quality of the Xy-pic package when +%% PDF documents are generated. It produces generic PDF code for graphical +%% elements like lines, curves and circles instead of approximating these +%% elements with glyphs in special fonts as the original Xy-pic package does. +%% The xypdf package works with both TeX and LaTeX in the occurrences of +%% pdfTeX, XeTeX and eTeX with dvipdfm(x) to generate PDF files. It is being +%% integrated and distributed together with Xy-pic, starting with Xy-pic +%% version 3.8. +%% +%% The copyright for the xypdf package is by its author, Daniel Müllner +%% (Muellner, M\"ullner). +%% + +\xycatcodes +\expandafter\let\csname xypdf-ro@loaded\endcsname\@empty +\xP@hook{rotate}{xyscale@@} +\newcommand*\xP@xyscale@@[2]{\setboxz@h{\hskip\L@p +\hskip-\R@p +\lower\U@p\hbox{\xP@cm{#1}00{#2}{\raise\U@p\hb@xt@\z@{\hskip-\L@p\boxz@\hss}}}}\global\let\xP@lastpattern\@empty +} +\xP@hook{rotate}{xyRotate@@} +\newcommand\xP@xyRotate@@{\xP@rotate@\xP@trigfromdir} +\xP@hook{rotate}{doSpecialRotate@@} +\@ifdefinable\xP@doSpecialRotate@@\relax +\def\xP@doSpecialRotate@@#1@@{\xP@rotate@\xP@trig{#1}} +\newcommand*\xP@rotate@[2]{\setboxz@h{#1{#2}\hskip\L@p +\hskip-\R@p +\lower\U@p\hbox{\xP@cm\cosDirection\sinDirection +{\if-\sinDirection\else-\sinDirection\fi}\cosDirection +{\raise\U@p\hb@xt@\z@{\hskip-\L@p\boxz@\hss}}}}\global\let\xP@lastpattern\@empty +} +\newcommand*\xP@trig[1]{\@tempdima\dimexpr#1pt\relax +\@tempdimb\@tempdima +\divide\@tempdimb23592960 +\advance\@tempdima-23592960\@tempdimb +\ifdim\@tempdima<\z@\advance\@tempdima360pt\fi +\@tempdimb\@tempdima +\divide\@tempdimb5898240 +\ifcase\@tempdimb +\xP@sinpoly +\edef\sinDirection{\xP@EARPT\@tempdimb}\@tempdima\dimexpr90pt-\@tempdima\relax +\xP@sinpoly +\edef\cosDirection{\xP@EARPT\@tempdimb}\or +\@tempdima\dimexpr180pt-\@tempdima\relax +\xP@sinpoly +\edef\sinDirection{\xP@EARPT\@tempdimb}\@tempdima\dimexpr90pt-\@tempdima\relax +\xP@sinpoly +\edef\cosDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}\or +\@tempdima\dimexpr\@tempdima-180pt\relax +\xP@sinpoly +\edef\sinDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}\@tempdima\dimexpr90pt-\@tempdima\relax +\xP@sinpoly +\edef\cosDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}\or +\@tempdima\dimexpr360pt-\@tempdima\relax +\xP@sinpoly +\edef\sinDirection{\xP@EARPT\dimexpr-\@tempdimb\relax}\@tempdima\dimexpr90pt-\@tempdima\relax +\xP@sinpoly +\edef\cosDirection{\xP@EARPT\@tempdimb}\else +\PackageError{xypdf}{Unexpected case in sin/cos calculation}{Feel free to contact the author of the xypdf package with a minimal example.}\fi +} +\newcommand*\xP@sinpoly{{\ifdim\@tempdima<49pt +\ifdim\@tempdima<27pt +\@tempdimb\dimexpr((\@tempdima*-529771058/16039085-1384933sp)*\@tempdima/268756075+10714164sp)*\@tempdima/613777813\relax +\else +\advance\@tempdima-27pt +\@tempdimb\dimexpr(((\@tempdima*-743101305/20672414-238989613sp)*\@tempdima/80975565+42661556sp)*\@tempdima/622461739+2\p@)*157520747/693945047\relax +\fi +\else +\ifdim\@tempdima<70pt +\advance\@tempdima-49pt +\@tempdimb\dimexpr(((\@tempdima*-348406699/107952940-55079229sp)*\@tempdima/866635628+408805sp)*\@tempdima/26926757+\p@)*135751711/179873976\relax +\else +\advance\@tempdima-70pt +\@tempdimb\dimexpr(((\@tempdima*-1015850353/137849442-460519207sp)*\@tempdima/8742349+142263941sp)*\@tempdima/972432199+23\p@)*31253604/764969669\relax +\fi +\fi +\global\dimen@i\@tempdimb +}\@tempdimb\dimen@i +} +\xyendinput +%% +%% End of file `xypdf-ro.tex'. diff --git a/Master/texmf-dist/tex/generic/xypic/xypdf.tex b/Master/texmf-dist/tex/generic/xypic/xypdf.tex new file mode 100644 index 00000000000..5a573463545 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/xypdf.tex @@ -0,0 +1,523 @@ +%% +%% This is file `xypdf.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% xypdf.dtx (with options: `basic') +%% +%% The xypdf package for TeX and LaTeX +%% Copyright (c) 2010 by Daniel Müllner (M\"ullner) +%% <http://www.math.uni-bonn.de/people/muellner> +%% -------------------------------------------------------------------------- +%% +%% This program 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. +%% +%% This program 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. +%% +%% The GNU General Public License is available at +%% <http://www.gnu.org/licenses/>. +%% +%% -------------------------------------------------------------------------- +%% +%% This file is part of the xypdf package for TeX and LaTeX2e. The xypdf +%% package may be distributed and/or modified under the conditions 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 distribution consists of the following files: +%% +%% xypdf.dtx - Documented source code +%% xypdf.ins - Installation script +%% xypdf.pdf - Documentation (generated from xypdf.dtx) +%% +%% The files with the TeX code are generated by the following command: +%% +%% latex xypdf.ins +%% +%% This generates the files xypdf.tex, xypdf-co.tex, xypdf-cu.tex, +%% xypdf-fr.tex, xypdf-li.tex and xypdf-ro.tex. +%% +%% -------------------------------------------------------------------------- +%% +%% The xypdf package improves the output quality of the Xy-pic package when +%% PDF documents are generated. It produces generic PDF code for graphical +%% elements like lines, curves and circles instead of approximating these +%% elements with glyphs in special fonts as the original Xy-pic package does. +%% The xypdf package works with both TeX and LaTeX in the occurrences of +%% pdfTeX, XeTeX and eTeX with dvipdfm(x) to generate PDF files. It is being +%% integrated and distributed together with Xy-pic, starting with Xy-pic +%% version 3.8. +%% +%% The copyright for the xypdf package is by its author, Daniel Müllner +%% (Muellner, M\"ullner). +%% + +\ifx\xyloaded\undefined\input xy \fi +\xyprovide{pdf}{PDF driver}{1.4}{Daniel M\"ullner\newline}{\url{http://www.math.uni-bonn.de/people/muellner}}{} +\ifx\makeatletter\undefined\input miniltx \fi +\newcommand*\xypdfdate{2010/05/13} +\newdriver{\xyaddsupport{pdf}\xP@pdf@on +\xyaddsupport{color}\xP@color@on +\xyaddsupport{curve}\xP@curve@on +\xyaddsupport{frame}\xP@frame@on +\xyaddsupport{rotate}\xP@rotate@on +} +\xyaddunsupport{pdf}\xP@pdf@off +\xyaddunsupport{color}\xP@color@off +\xyaddunsupport{curve}\xP@curve@off +\xyaddunsupport{frame}\xP@frame@off +\xyaddunsupport{rotate}\xP@rotate@off +\newcommand*\xypdfon{\xP@pdf@on +\xP@color@on +\xP@curve@on +\xP@frame@on +\xP@line@on +\xP@rotate@on +} +\newcommand*\xypdfoff{\xP@pdf@off +\xP@color@off +\xP@curve@off +\xP@frame@off +\xP@line@off +\xP@rotate@off +} +\ifx\unexpanded\@undefined +\PackageError{xypdf}{eTeX is needed for the xypdf package}{} +\fi +\newcommand*\xP@testpdfsave{\ifpdf +\ifx\pdfsave\@undefined +\PackageError{xypdf}{pdfTeX version 1.40.0 or higher is needed for the xypdf^^Jpackage with PDF output}{}\fi +\fi +\let\xP@testpdfsave\@undefined +} +\ifx\PackageWarning\@undefined +\newcommand*\xP@warning[2]{{\newlinechar`\^^J\@warning{Package #1 Warning: #2\@empty.}}} +\else +\newcommand*\xP@warning{\PackageWarning} +\fi +\newcommand*\xP@pdf@on{} +\newcommand*\xP@pdf@off{} +\newcommand*\xP@color@on{} +\newcommand*\xP@color@off{} +\newcommand*\xP@curve@on{} +\newcommand*\xP@curve@off{} +\newcommand*\xP@frame@on{} +\newcommand*\xP@frame@off{} +\newcommand*\xP@line@on{} +\newcommand*\xP@line@off{} +\newcommand*\xP@rotate@on{} +\newcommand*\xP@rotate@off{} +\newcommand*\xP@hook[2]{\edef\next@{\let\expandafter\noexpand\csname xP@old@#2\endcsname +\expandafter\noexpand\csname#2\endcsname}\next@ +\expandafter\edef\csname xP@#1@on\endcsname{\unexpanded\expandafter\expandafter\expandafter{\csname xP@#1@on\endcsname}\let\expandafter\noexpand\csname#2\endcsname +\expandafter\noexpand\csname xP@#2\endcsname +}\expandafter\edef\csname xP@#1@off\endcsname{\unexpanded\expandafter\expandafter\expandafter{\csname xP@#1@off\endcsname}\let\expandafter\noexpand\csname#2\endcsname +\expandafter\noexpand\csname xP@old@#2\endcsname +}} +\newcommand*\xP@defpdfliteral{\ifpdf +\newcommand*\xP@literal[1]{\pdfsave\pdfliteral{##1}\pdfrestore} +\newcommand*\xP@cm[5]{\pdfsave +\pdfsetmatrix{##1 ##2 ##3 ##4}##5\pdfrestore +} +\@ifundefined{@pdfcolorstack}{\def\@pdfcolorstack{\z@}}{}\newcommand*\xP@setcolor[3]{\pdfcolorstack\@pdfcolorstack push{##1 ##2 ##1 ##3}} +\newcommand*\xP@resetcolor{\pdfcolorstack\@pdfcolorstack pop\relax}\else +\newcommand*\xP@literal{\xP@warning{xypdf}{The produced DVI file is NOT PORTABLE. Convert it with^^Jdvipdfm(x) to the PDF format but do not expect the DVI file itself to be^^Jdisplayed correctly\@gobble}\global\let\xP@literal\xP@literal@ +\xP@literal +} +\newcommand*\xP@literal@[1]{\special{pdf:content ##1}} +\newcommand*\xP@cm[5]{\special{pdf:btrans matrix ##1 ##2 ##3 ##4 0 0}##5\special{pdf:etrans}} +\newcommand*\xP@setcolor[3]{\special{pdf:bcolor[##1]}} +\newcommand*\xP@resetcolor{\special{pdf:ecolor}}\fi +\let\xP@defpdfliteral\@undefined +} +\DN@{\@firstofone} +\DNii@{xy} +\ifx\@currname\nextii@ +\ifx\AtEndOfPackage\@undefined +\else +\DN@{\AtEndOfPackage}\fi +\fi +\next@ +{\RequirePackage{ifpdf}\xP@testpdfsave +\xP@defpdfliteral} +\ifx\pdfdecimaldigits\@undefined +\newcommand*\xP@digits{2} +\else +\@ifdefinable\xP@digits\relax +\xdef\xP@digits{\the\pdfdecimaldigits} +\ifnum\pdfdecimaldigits<2 +\xP@warning{xypdf}{The precision in \string\pdfdecimaldigits\space is only \xP@digits\space +decimals.^^JIt is recommended to set \string\pdfdecimaldigits\space to 2 or 3 for best output quality\@gobble} +\fi +\fi +\newcommand*\xP@dim[1]{\expandafter\xP@removePT\the\dimexpr(#1)*800/803\relax\space} +\newcommand*\xP@precdim[1]{\xP@EARPT\dimexpr(#1)*800/803\relax\space} +\newcommand*\xP@EARPT{\expandafter\removePT@\the} +\newcommand*\xP@coor[1]{\xP@dim{#1}\xP@dim} +\@ifdefinable\xP@removePT\relax +{\@makeother\p\@makeother\t\gdef\xP@removePT#1pt{\xP@removePT@#10000@}} +\@ifdefinable\xP@removePT@\relax +\ifcase\xP@digits +\def\xP@removePT@#1.#2#3@{\ifnum#2<5 +#1\else +\the\numexpr-\if-#1-\else-#1+\fi\@ne\relax +\fi +} +\or +\def\xP@removePT@#1#2.#3#4#5@{\ifnum#4<5 +#1#2\if#30\else +.#3\fi +\else +\expandafter\xP@removePT +\the\dimexpr#1#2.#3pt+\if#1--\fi.12pt\relax +\fi +} +\or +\def\xP@removePT@#1#2.#3#4#5#6@{\ifnum#5<5 +#1#2\if#40\if#30\else +.#3\fi +\else +.#3#4\fi +\else +\expandafter\xP@removePT +\the\dimexpr#1#2.#3#4pt+\if#1--\fi786sp\relax +\fi +} +\or +\def\xP@removePT@#1#2.#3#4#5#6#7@{\ifnum#6<5 +#1#2\if#50\if#40\if#30\else +.#3\fi +\else +.#3#4\fi +\else +.#3#4#5\fi +\else +\expandafter\xP@removePT +\the\dimexpr#1#2.#3#4#5pt+\if#1--\fi79sp\relax +\fi +} +\or +\def\xP@removePT@#1#2.#3#4#5#6#7#8@{\ifnum#7<5 +#1#2\if#60\if#50\if#40\if#30\else +.#3\fi +\else +.#3#4\fi +\else +.#3#4#5\fi +\else +.#3#4#5#6\fi +\else +\expandafter\xP@removePT +\the\dimexpr#1#2.#3#4#5#6pt+\if#1--\fi8sp\relax +\fi +} +\else +\let\xP@dim\xP@precdim +\fi +\AtBeginDocument{{\setbox0\hbox{$ $}}\@ifdefinable\xP@lw\relax +\@ifdefinable\xP@preclw\relax +\edef\xP@preclw{\the\fontdimen8\textfont3}\edef\xP@lw{\xP@dim\xP@preclw}\PackageInfo{xypdf}{Line width: \xP@preclw}} +\xP@hook{pdf}{line@} +\newcommand*\xP@line@{\setboxz@h{\xP@setsolidpat +\xP@stroke{0 0 m \xP@coor{\cosDirection\xydashl@}{\sinDirection\xydashl@}l}}\U@c\sinDirection\xydashl@ +\D@c\z@ +\ifdim\U@c<\z@ +\multiply\U@c\m@ne +\xP@swapdim\U@c\D@c +\fi +\ht\z@\U@c +\dp\z@\D@c +\R@c\cosDirection\xydashl@ +\L@c\z@ +\ifdim\R@c<\z@ +\multiply\R@c\m@ne +\xP@swapdim\L@c\R@c +\fi +\hskip\L@c\boxz@\hskip\R@c +\edef\tmp@{\egroup\U@c\the\U@c\D@c\the\D@c\L@c\the\L@c\R@c\the\R@c}\tmp@ +\Edge@c={\rectangleEdge}\edef\Upness@{\ifdim\z@<\U@c1\else0\fi}\edef\Leftness@{\ifdim\z@<\L@c1\else0\fi}\def\Drop@@{\styledboxz@}\def\Connect@@{\solid@}} +\xP@hook{pdf}{solid@} +\newcommand*\xP@solid@{\straight@\xP@solidSpread} +\@ifdefinable\xP@solidSpread\relax +\def\xP@solidSpread#1\repeat@{{\@tempswatrue +\ifdim\X@p=\X@c +\ifdim\Y@p=\Y@c +\@tempswafalse +\fi +\fi +\if@tempswa +\xP@setsolidpat +\xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi +}} +\newcommand*\xP@pattern{} +\newcommand*\xP@setsolidpat{\def\xP@pattern{1 J 1 j []0 d}\global\let\xP@lastpattern\xP@solidmacro +} +\newcommand*\xP@stroke[1]{\xP@literal{\xP@lw w \xP@pattern\space#1 S}} +\xP@hook{pdf}{dash@} +\newcommand\xP@dash@{\line@\def\Connect@@{\straight@\xP@dashedSpread}} +\@ifdefinable\xP@dashedSpread\relax +\def\xP@dashedSpread#1\repeat@{{\xP@veclen +\ifdim\@tempdimb>\z@ +\xP@setdashpat +\xP@savec +\xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi +}} +\newcommand*\xP@setdashpat{\xP@testcont\xP@dashmacro +\ifxP@splinecont +{\count@\numexpr2*((\@tempdimb-\xydashl@/3)/(2*\xydashl@))\relax +\global\dimen@i +\ifnum\count@>\z@ +\dimexpr\@tempdimb/\count@\relax +\else +\z@ +\fi +}\@tempdima\dimen@i +\edef\xP@pattern{1 J 1 j [\ifdim\@tempdima>\z@ +\xP@precdim\@tempdima]\xP@precdim\@tempdima +\else +]0 \fi +d}\else +\@tempdima +\ifdim\@tempdimb>\xydashl@ +\dimexpr\@tempdimb/(2*((\@tempdimb+\xydashl@)/(2*\xydashl@))-1)\relax +\else +\z@ +\fi +\edef\xP@pattern{1 J 1 j [\ifdim\@tempdima>\z@\xP@precdim\@tempdima\fi +]0 d}\fi +\global\let\xP@lastpattern\xP@dashmacro +} +\newcommand*\xP@setcldashpat{{\count@\numexpr2*((\@tempdimb-\xydashl@/3)/(2*\xydashl@))\relax +\xdef\@gtempa{1 J 1 j [\ifnum\count@>\z@\xP@precdim{\@tempdimb/\count@}\fi]\ifnum\count@>\z@\xP@precdim{\@tempdimb*3/2/\count@}\else0 \fi d}}\edef\xP@pattern{\@gtempa}} +\xP@hook{pdf}{point@} +\newcommand*\xP@point@{\xP@zerodot\egroup\Invisible@false +\Hidden@false\def\Leftness@{.5}\def\U@pness@{.5}\ctipEdge@ +\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\xP@dottedSpread}} +\newcommand*\xP@zerodot{\hb@xt@\z@{\hss +\vbox to\z@{\vss\hrule\@width\xP@preclw\@height\xP@preclw\vss}\hss}} +\@ifdefinable\xP@dottedSpread\relax +\def\xP@dottedSpread#1\repeat@{{\xP@veclen +\ifdim\@tempdimb>\z@ +\xP@setdottedpat +\xP@savec +\xP@stroke{\xP@coor\X@p\Y@p m \xP@coor\X@c\Y@c l}\fi +}} +\newcommand*\xP@setdottedpat{\xP@testcont\xP@dotmacro +\ifxP@splinecont +\@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax +\edef\xP@pattern{0 J [\ifdim\@tempdima>\z@ +\xP@precdim\xP@preclw\xP@precdim\@tempdima +\fi +]\xP@precdim{\xP@preclw+1sp}d}\else +\advance\@tempdimb-\xP@preclw +\ifdim\@tempdimb<\z@\@tempdimb\z@\fi +\@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax +\edef\xP@pattern{0 J [\ifdim\@tempdima>\z@ +\xP@precdim\xP@preclw\xP@precdim\@tempdima +\fi +]0 d}\fi +\global\let\xP@lastpattern\xP@dotmacro +} +\newcommand*\xP@setcldottedpat{\@tempdima\dimexpr\@tempdimb/(\@tempdimb/131072+1)-\xP@preclw\relax +\edef\xP@pattern{0 J [\ifdim\@tempdima>\z@ +\xP@precdim\xP@preclw\xP@precdim\@tempdima +\fi +]\xP@precdim{\dimexpr\xP@preclw+\@tempdima/2\relax}d}} +\newcommand*\xP@abs[1]{\ifdim#1<\z@\multiply#1\m@ne\fi} +\newcommand*\xP@ifabsless[2]{\ifpdfabsdim#1<#2} +\ifx\ifpdfabsdim\@undefined +\renewcommand*\xP@ifabsless[2]{\ifdim\ifdim#1<\z@-\fi#1<\ifdim#2<\z@-\fi#2} +\@gobble\fi +\fi +\newcommand*\xP@swapdim[2]{\@tempdima#1#1#2#2\@tempdima} +\newcommand*\xP@swapnum[2]{\@tempcnta#1#1#2#2\@tempcnta} +\newcommand*\xP@min[2]{\ifdim#1<#2#1\else#2\fi} +\newcommand*\xP@max[2]{\ifdim#1>#2#1\else#2\fi} +\newcommand*\xP@Max[2]{#1\ifdim#2<\z@\xP@max#1{-#2}\else\xP@max#1#2\fi} +\newcommand*\xP@sqrt{\loop +\@tempdimb\dimexpr(\@tempdimc+(\@tempdima*\p@/\@tempdimc))/2\relax +\unless\ifdim\@tempdimc=\@tempdimb +\@tempdimc\@tempdimb\relax +\repeat +} +\newcommand*\xP@veclen{{\xP@veclen@ +\global\dimen@i\@tempdimb +}\@tempdimb\dimen@i +} +\newcommand*\xP@veclen@{\xP@abs\d@Y +\ifdim\d@X=\z@ +\@tempdimb\d@Y +\else +\xP@abs\d@X +\ifdim\d@Y=\z@ +\@tempdimb\d@X +\else +\@tempswatrue +\ifdim\d@X>5931641sp\relax\@tempswafalse\fi +\ifdim\d@Y>5931641sp\relax\@tempswafalse\fi +\if@tempswa +\count@\@ne +\loop +\@tempdima\dimexpr\d@X*\d@X/\p@+\d@Y*\d@Y/\p@\relax +\ifdim\@tempdima<4096pt +\@tempcnta\ifdim\@tempdima<1024pt\ifdim\@tempdima<256pt8\else4\fi\else\tw@\fi +\multiply\d@X\@tempcnta +\multiply\d@Y\@tempcnta +\multiply\count@\@tempcnta +\repeat +\@tempdimc\dimexpr(\d@X+\d@Y)*3/4\relax +\xP@sqrt +\@tempdimb\dimexpr\@tempdimb/\count@\relax +\else +\ifdim\d@X>83042982sp\relax\@tempswatrue\fi +\ifdim\d@Y>83042982sp\relax\@tempswatrue\fi +\if@tempswa +\@tempdima\dimexpr\d@X/182*\d@X/11927552+\d@Y/182*\d@Y/11927552\relax +\@tempdimc\dimexpr(\d@X+\d@Y)*3/728\relax +\xP@sqrt +\multiply\@tempdimb182\relax +\else +\@tempdima\dimexpr\d@X*\d@X/12845056+\d@Y*\d@Y/12845056\relax +\@tempdimc\dimexpr(\d@X+\d@Y)*3/56\relax +\xP@sqrt +\multiply\@tempdimb14\relax +\fi +\fi +\fi +\fi +} +\xP@hook{pdf}{squiggledSpread@} +\@ifdefinable\xP@squiggledSpread@\relax +\def\xP@squiggledSpread@#1\repeat@{{\xP@veclen +\ifdim\@tempdimb>\z@ +\edef\@tempa{\xP@coor\X@p\Y@p m }\toks@\expandafter{\@tempa}\@tempcnta\numexpr\@tempdimb/\xybsqll@\relax +\ifnum\@tempcnta<\tw@\@tempcnta\tw@\fi +\@tempdima\dimexpr\d@X/\@tempcnta\relax +\@tempdimc\dimexpr\d@Y/\@tempcnta\relax +\xP@testcont\xP@oddsquigglemacro +\ifxP@splinecont +\def\xP@squigsign{-}\else +\let\xP@squigsign\@empty +\fi +\count@\z@ +\loop +\xP@append\toks@{\xP@coor{\X@p+\d@X*\count@/\@tempcnta+(\@tempdima +-\xP@squigsign\ifodd\count@-\fi\@tempdimc)*147546029/534618434}{\Y@p+\d@Y*\count@/\@tempcnta+(\@tempdimc ++\xP@squigsign\ifodd\count@-\fi\@tempdima)*147546029/534618434}}\advance\count@\@ne +\xP@append\toks@{\xP@coor{\X@p+\d@X*\count@/\@tempcnta-(\@tempdima +-\xP@squigsign\ifodd\count@-\fi\@tempdimc)*147546029/534618434}{\Y@p+\d@Y*\count@/\@tempcnta-(\@tempdimc ++\xP@squigsign\ifodd\count@-\fi\@tempdima)*147546029/534618434}\xP@coor{\X@p+\d@X*\count@/\@tempcnta}{\Y@p+\d@Y*\count@/\@tempcnta}c }\ifnum\count@<\@tempcnta +\repeat +\xP@setsolidpat +\global\expandafter\let\expandafter\xP@lastpattern +\ifodd\numexpr\count@\if\xP@squigsign-+1\fi\relax +\xP@oddsquigglemacro +\else +\xP@evensquigglemacro +\fi +\xP@savec +\xP@stroke{\the\toks@}\fi +}} +\newcommand*\xP@squigsign{} +\newcommand*\xP@append[2]{{\edef\@tempa{#1{\the#1#2}}\expandafter}\@tempa +} +\xP@hook{pdf}{circhar@@} +\newcommand*\xP@circhar@@[1]{\expandafter\xP@circhar@@@\ifcase#1 000{-173517671/654249180}{65307479/619869377}{-34221476/65864945}{225058681/768398401}{-543339720/768398401}\or +0{-543339720/768398401}{181455824/967576667}{-554561898/619869377}{826676217/1870772527}{-1}{543339720/768398401}{-1}\or +0{-1}{173517671/654249180}{-1}{34221476/65864945}{-554561898/619869377}{543339720/768398401}{-543339720/768398401}\or +0{-543339720/768398401}{181455824/967576667}{-34221476/65864945}{225058681/768398401}{-173517671/654249180}{225058681/768398401}0\or +0{543339720/768398401}{181455824/967576667}{34221476/65864945}{225058681/768398401}{173517671/654249180}{225058681/768398401}0\or +01{173517671/654249180}1{34221476/65864945}{554561898/619869377}{543339720/768398401}{543339720/768398401}\or +0{543339720/768398401}{181455824/967576667}{554561898/619869377}{826676217/1870772527}1{543339720/768398401}1\or +000{173517671/654249180}{65307479/619869377}{34221476/65864945}{225058681/768398401}{543339720/768398401}\fi} +\newcommand\xP@circhar@@@[8]{\xP@setsolidpat +\xP@stroke{\xP@coor{\R@*#1}{\R@*#2}m +\xP@coor{\R@*#3}{\R@*#4}\xP@coor{\R@*#5}{\R@*#6}\xP@coor{\R@*#7}{\R@*#8}c}\vrule width\z@ height\R@ depth\R@ +\kern\dimexpr\R@*#7\relax +} +\xP@hook{pdf}{cirrestrict@@} +\newcommand*\xP@cirrestrict@@{\count@\z@\relax} +\newcommand*\xP@trigfromdir[1]{{\Direction#1\relax +\count@-\Direction +\advance\count@4096 +\divide\count@2048 +\ifcase\count@ +\d@X\K@\p@ +\d@Y\numexpr\Direction-3*\K@\relax\p@ +\or +\d@X\numexpr\Direction-\K@\relax\p@ +\d@Y-\K@\p@ +\or +\d@X-\K@\p@ +\d@Y\numexpr-\Direction-\K@\relax\p@ +\or +\d@X\numexpr-\Direction-3*\K@\relax\p@ +\d@Y\K@\p@ +\else +\PackageError{xypdf}{Unexpected case in direction calculation}{Feel free to contact the author of the xypdf package with a minimal example.}\fi +\xP@veclen +\xdef\@gtempa{\def\noexpand\cosDirection{\xP@EARPT\dimexpr\d@X*\p@/\@tempdimb\relax}\def\noexpand\sinDirection{\xP@EARPT\dimexpr\d@Y*\p@/\@tempdimb\relax}}}\@gtempa +} +\outer\def\@tempa{\alloc@1\dimen\dimendef\insc@unt} +\let\xP@newdimen\newdimen +\ifx\newdimen\@tempa +\def\xP@newdimen{\alloc@1\dimen\dimendef\insc@unt} +\fi +\outer\def\@tempa#1{\count@=\escapechar\escapechar=-1 +\expandafter\expandafter\expandafter +\def\@if#1{true}{\let#1=\iftrue}\expandafter\expandafter\expandafter +\def\@if#1{false}{\let#1=\iffalse}\@if#1{false}\escapechar=\count@} +\let\@tempa\relax +\newcommand*\xP@lastX{} +\newcommand*\xP@lastY{} +\newcommand*\xP@lastpattern{} +\newcommand*\xP@solidmacro{solid} +\newcommand*\xP@dotmacro{dot} +\newcommand*\xP@dashmacro{dash} +\newcommand*\xP@evensquigglemacro{evensquiggle} +\newcommand*\xP@oddsquigglemacro{oddsquiggle} +\newcommand*\xP@brokensquigglemacro{brokensquiggle} +\renewcommand*\xyinside@{\global\let\xP@lastpattern\@empty +\saveXyStyle@ \aftergroup\xycheck@end +\setboxz@h\bgroup +\plainxy@ +\X@c=\z@\Y@c=\z@\czeroEdge@ +\X@p=\z@\Y@p=\z@\U@p=\z@\D@p=\z@\L@p=\z@\R@p=\z@\Edge@p={\zeroEdge}\X@min=\hsize\X@max=-\hsize\Y@min=\hsize\Y@max=-\hsize +\mathsurround=\z@ +\expandafter\POS\everyxy@@ +} +\newcommand*\xP@savec{\xdef\xP@lastX{\the\X@c}\xdef\xP@lastY{\the\Y@c}} +\@ifdefinable\ifxP@splinecont\relax +\@ifdefinable\xP@splineconttrue\relax +\@ifdefinable\xP@splinecontfalse\relax +\newif\ifxP@splinecont +\newcommand*\xP@testcont[1]{\xP@splinecontfalse +\ifxP@cont +\ifx\xP@lastpattern#1\ifdim\xP@lastX=\X@p +\ifdim\xP@lastY=\Y@p +\xP@splineconttrue +\fi +\fi +\fi +\fi +} +\@ifdefinable\ifxP@cont\relax +\@ifdefinable\xP@conttrue\relax +\@ifdefinable\xP@contfalse\relax +\newif\ifxP@cont +\newcommand*\xypdfcontpatternon{\xP@conttrue} +\newcommand*\xypdfcontpatternoff{\xP@contfalse} +\xP@conttrue +\let\@tempa\@undefined +\let\nextii@\@undefined +\DN@{\xywithoption{color}{\message{Xy-pic pdf driver: `color' extension support}\@ifundefined{xypdf-co@loaded}{\input xypdf-co\relax}{\message{not reloaded}}}\xywithoption{curve}{\message{Xy-pic pdf driver: `curve' extension support}\@ifundefined{xypdf-cu@loaded}{\input xypdf-cu\relax}{\message{not reloaded}}}\xywithoption{frame}{\message{Xy-pic pdf driver: `frame' extension support}\@ifundefined{xypdf-fr@loaded}{\input xypdf-fr\relax}{\message{not reloaded}}}\xywithoption{line}{\message{Xy-pic pdf driver: `line' extension support}\@ifundefined{xypdf-li@loaded}{\input xypdf-li\relax}{\message{not reloaded}}}\xywithoption{rotate}{\message{Xy-pic pdf driver: `rotate' extension support}\@ifundefined{xypdf-ro@loaded}{\input xypdf-ro\relax}{\message{not reloaded}}}} +\next@ +\xyendinput +%% +%% End of file `xypdf.tex'. diff --git a/Master/texmf-dist/tex/generic/xypic/xypic.sty b/Master/texmf-dist/tex/generic/xypic/xypic.sty index 1a493530c68..befdb653b4e 100644 --- a/Master/texmf-dist/tex/generic/xypic/xypic.sty +++ b/Master/texmf-dist/tex/generic/xypic/xypic.sty @@ -1,7 +1,7 @@ -%% $Id: xypic.sty,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-tex-*- +%% $Id: xypic.sty,v 3.4 2010/04/16 06:06:52 krisrose Exp $ -*-tex-*- %% %% LaTeX style option to load Xy-pic in version 2 compatibility mode. -%% by Kristoffer H. Rose <krisrose@brics.dk> +%% by Kristoffer H. Rose <krisrose@tug.org> %% %% This file is in the public domain. It is distributed in the hope that it %% will be useful, but WITHOUT ANY WARRANTY; without even the implied @@ -13,6 +13,9 @@ \endinput % $Log: xypic.sty,v $ +% Revision 3.4 2010/04/16 06:06:52 krisrose +% Preparing for a new release... +% % Revision 3.3 1996/12/19 03:31:56 krisrose % Maintenance release % diff --git a/Master/texmf-dist/tex/generic/xypic/xypic.tex b/Master/texmf-dist/tex/generic/xypic/xypic.tex index 99231e6cbe9..b7fa5200ed7 100644 --- a/Master/texmf-dist/tex/generic/xypic/xypic.tex +++ b/Master/texmf-dist/tex/generic/xypic/xypic.tex @@ -1,11 +1,11 @@ -%% xypic.tex from $Id: xypic.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ +%% xypic.tex from $Id: xypic.doc,v 3.5 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic v2 compatibility loading. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@tug.org> %% %% 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> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \input xyv2 \endinput diff --git a/Master/texmf-dist/tex/generic/xypic/xypicture.tex b/Master/texmf-dist/tex/generic/xypic/xypicture.tex new file mode 100644 index 00000000000..62fdd140634 --- /dev/null +++ b/Master/texmf-dist/tex/generic/xypic/xypicture.tex @@ -0,0 +1,55 @@ +%% xypicture.tex from $Id: xypicture.doc,v 3.5 2010/06/10 18:45:50 krisrose Exp $ +%% +%% Xy-pic ``LaTeX Picture Mode'' option. +%% Copyright (c) 199802010 Kristoffer H. Rose <krisrose@tug.org> +%% +%% 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-1998 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{picture}{LaTeX Picture extension}{\stripRCS$Revision: 3.5 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% + {IBM T.J.Watson Research Center, P.O.Box 704, Yorktown Heights, NY 10598, USA} +\xynew@{dimen}\xyp@xsize +\xynew@{dimen}\xyp@ysize +\xylet@\xyp@arrow=\relax +{\xyuncatcodes\makeatletter + \gdef\xyp@tail{} + \gdef\xyp@mid{-} + \gdef\xyp@head{>} +} +\xydef@\xyvector(#1,#2)#3{% + \xyp@xsize#3\relax + \ifnum#1<\z@\multiply\xyp@xsize\m@ne\fi + \xyp@ysize\xyp@xsize\relax + \ifnum#1=\z@ + \xyp@xsize\z@ + \ifnum#2<\z@\multiply\xyp@ysize\m@ne\fi + \else + \multiply\xyp@ysize#2\relax\divide\xyp@ysize#1\relax + \fi + \edef\xyp@arrow{\noexpand\arAT{\xyp@tail\xyp@mid\xyp@head}}% + \ifnum#1<\z@ + \makebox(\xyp@xsize,\xyp@ysize){% + \begin{xy} 0;<\unitlength,\z@>:% + \xyp@arrow(\xyp@xsize,\xyp@ysize) + \end{xy}}% + \else + \xyp@arrow(\xyp@xsize,\xyp@ysize)\relax + \fi +} +\xyendinput diff --git a/Master/texmf-dist/tex/generic/xypic/xypoly.tex b/Master/texmf-dist/tex/generic/xypic/xypoly.tex index 566d7f2f4b3..e966a7708b6 100644 --- a/Master/texmf-dist/tex/generic/xypic/xypoly.tex +++ b/Master/texmf-dist/tex/generic/xypic/xypoly.tex @@ -1,11 +1,11 @@ -%% xypoly.tex from $Id: xypoly.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xypoly.tex from $Id: xypoly.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Polygon'' feature. -%% Copyright (c) 1994-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1994-1997 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-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% for more details. %% %% You should have received a copy of the GNU General Public License along -%% with this macro package; if not, write to the Free Software Foundation, -%% Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%% with this macro package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{poly}{Polygon feature}{\stripRCS$Revision: 3.7 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{poly}{Polygon feature}{\stripRCS$Revision: 3.10 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xyrequire{arrow}\xycatcodes \message{polygons,} diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-c.tex b/Master/texmf-dist/tex/generic/xypic/xyps-c.tex index 35fa9cbda6b..36fdb97e869 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-c.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-c.tex @@ -1,11 +1,11 @@ -%% xyps-c.tex from $Id: xyps-c.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-c.tex from $Id: xyps-c.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Colour extension'' PostScript backend support. -%% Copyright (c) 1993-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-col.tex b/Master/texmf-dist/tex/generic/xypic/xyps-col.tex index fde17330900..d4c54e29193 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-col.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-col.tex @@ -1,11 +1,11 @@ -%% xyps-col.tex from $Id: xyps-col.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-col.tex from $Id: xyps-col.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Crayola colour names'' PostScript colour support. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-f.tex b/Master/texmf-dist/tex/generic/xypic/xyps-f.tex index a9db9c911c5..db8a946c107 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-f.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-f.tex @@ -1,11 +1,11 @@ -%% xyps-f.tex from $Id: xyps-f.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-f.tex from $Id: xyps-f.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Frame extension'' PostScript backend support. -%% Copyright (c) 1995-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1995-1997 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-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-l.tex b/Master/texmf-dist/tex/generic/xypic/xyps-l.tex index f20cf2b3c1b..019f8c0e7c1 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-l.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-l.tex @@ -1,11 +1,11 @@ -%% xyps-l.tex from $Id: xyps-l.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-l.tex from $Id: xyps-l.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Line extension'' PostScript backend support. -%% Copyright (c) 1993-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-1997 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-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-pro.tex b/Master/texmf-dist/tex/generic/xypic/xyps-pro.tex index 55117c46714..319416c25de 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-pro.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-pro.tex @@ -1,11 +1,11 @@ -%% xyps-pro.tex from $Id: xyps-pro.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-pro.tex from $Id: xyps-pro.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``PostScript Prolog'' for PostScript support. -%% Copyright (c) 1993-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-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-1996 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-ps.tex b/Master/texmf-dist/tex/generic/xypic/xyps-ps.tex index a2dced0f496..7d8339a45a2 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-ps.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-ps.tex @@ -1,11 +1,11 @@ -%% xyps-ps.tex from $Id: xyps-ps.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-ps.tex from $Id: xyps-ps.doc,v 3.11 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``PS-PS'' PostScript support. -%% Copyright (c) 1993-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-1997 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-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with @@ -210,7 +209,7 @@ \let\endXYdict@=\relax \PSdict@@@{\xyPS@@@ PS-Adobe-3.0 Resource-procset}| \PSdict@@@{\xyPS@@ Title: \xyPSdictname}| - \PSdict@@@{\xyPS@@ Version: 3.7}| + \PSdict@@@{\xyPS@@ Version: 3.8.1}| \PSdict@@@{\xyPS@@ Creator: Xy-ps backend to Xy-pic}| \PSdict@@@{\xyPS@@ DocumentSuppliedProcSets: XYdict}| \ifx\dvitype@\undefined diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-r.tex b/Master/texmf-dist/tex/generic/xypic/xyps-r.tex index e75960a8d8b..fa99f5474b2 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-r.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-r.tex @@ -1,11 +1,11 @@ -%% xyps-r.tex from $Id: xyps-r.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-r.tex from $Id: xyps-r.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``PostScript Rotations and Scaling''. -%% Copyright (c) 1993-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-s.tex b/Master/texmf-dist/tex/generic/xypic/xyps-s.tex index 4a5c1d4ae37..36f5d9fb590 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-s.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-s.tex @@ -1,11 +1,11 @@ -%% xyps-s.tex from $Id: xyps-s.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-s.tex from $Id: xyps-s.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Style extension'' PostScript support. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyps-t.tex b/Master/texmf-dist/tex/generic/xypic/xyps-t.tex index e199011ac11..3ffa520d3f9 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps-t.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps-t.tex @@ -1,11 +1,11 @@ -%% xyps-t.tex from $Id: xyps-t.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps-t.tex from $Id: xyps-t.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Pattern and Tile extension'' PostScript support. -%% Copyright (c) 1993-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-1997 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-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyps.tex b/Master/texmf-dist/tex/generic/xypic/xyps.tex index a1ed1acf4df..c0eb345a686 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyps.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyps.tex @@ -1,11 +1,11 @@ -%% xyps.tex from $Id: xyps.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xyps.tex from $Id: xyps.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``PostScript backend''. -%% Copyright (c) 1993-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-1997 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-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,16 +18,15 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with %% version 3.7 of Xy-pic. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{ps}{PostScript backend}{\stripRCS$Revision: 3.7 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{ps}{PostScript backend}{\stripRCS$Revision: 3.10 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\UsePSspecials{\DNii@{{[4]}}\xyFN@\UsePSspecials@i} \xydef@\UsePSspecials@i{% diff --git a/Master/texmf-dist/tex/generic/xypic/xypsdict.tex b/Master/texmf-dist/tex/generic/xypic/xypsdict.tex index 2b3191a5352..296fec6aa48 100644 --- a/Master/texmf-dist/tex/generic/xypic/xypsdict.tex +++ b/Master/texmf-dist/tex/generic/xypic/xypsdict.tex @@ -1,11 +1,11 @@ -%% xypsdict.tex from $Id: xypsdict.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xypsdict.tex from $Id: xypsdict.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``PostScript backend prolog''. -%% Copyright (c) 1995-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1995-1997 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-1997 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xypspatt.tex b/Master/texmf-dist/tex/generic/xypic/xypspatt.tex index 876098693e2..2d59f581edb 100644 --- a/Master/texmf-dist/tex/generic/xypic/xypspatt.tex +++ b/Master/texmf-dist/tex/generic/xypic/xypspatt.tex @@ -1,11 +1,11 @@ -%% xypspatt.tex from $Id: xypspatt.doc,v 3.7 1999/02/16 15:12:50 krisrose Exp $ +%% xypspatt.tex from $Id: xypspatt.doc,v 3.10 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``PostScript pattern prolog''. -%% Copyright (c) 1995-1998 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1995-1998 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-1998 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% %% As a special exception, you may use this file and all files derived %% from it without restrictions. This special exception was added with diff --git a/Master/texmf-dist/tex/generic/xypic/xyrecat.tex b/Master/texmf-dist/tex/generic/xypic/xyrecat.tex index c24a0254d12..d437089ebca 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyrecat.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyrecat.tex @@ -1,11 +1,11 @@ -%% xyrecat.tex from $Id: xyrecat.doc,v 3.3 1996/12/19 03:31:56 krisrose Exp $ +%% xyrecat.tex from $Id: xyrecat.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Reset Category Codes'' utility. -%% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@tug.org> %% %% 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> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \xyuncatcodes \xyrecat @ 64 \catcode 64 11 diff --git a/Master/texmf-dist/tex/generic/xypic/xyrotate.tex b/Master/texmf-dist/tex/generic/xypic/xyrotate.tex index 0b9bb2f8b27..818a969c139 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyrotate.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyrotate.tex @@ -1,11 +1,11 @@ -%% xyrotate.tex from $Id: xyrotate.doc,v 3.3 1996/12/18 09:40:16 ross Exp $ +%% xyrotate.tex from $Id: xyrotate.doc,v 3.7 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Rotate and Scale extension'' option. -%% Copyright (c) 1993-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{rotate}{Rotate and Scale extension}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{rotate}{Rotate and Scale extension}{\stripRCS$Revision: 3.7 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\xyundefinedRotate@#1#2@@{% \xywarning@{The #1 #2 effect is not implemented with the current driver.}}% diff --git a/Master/texmf-dist/tex/generic/xypic/xysmart.tex b/Master/texmf-dist/tex/generic/xypic/xysmart.tex index 74c75f5de6b..2baf70941b3 100644 --- a/Master/texmf-dist/tex/generic/xypic/xysmart.tex +++ b/Master/texmf-dist/tex/generic/xypic/xysmart.tex @@ -1,11 +1,11 @@ -%% xysmart.tex from $Id$ +%% xysmart.tex from $Id: xysmart.doc,v 3.4 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Smart Path feature'' option. %% Copyright (c) 1998 George C. Necula <necula@cs.cmu.edu> %% %% 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-1998 Kristoffer H. Rose <krisrose@ens-lyon.fr> +%% Copyright (c) 1991-2010 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 @@ -18,11 +18,10 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{smartpath}{Smart Path option}{\stripRCS$Revision: 0.0 $}% +\xyprovide{smart}{Smart Path option}{\stripRCS$Revision: 3.4 $}% {George C. Necula}{necula@cs.cmu.edu}% {School of Computer Science, Carnegie Mellon University, diff --git a/Master/texmf-dist/tex/generic/xypic/xytex.ini b/Master/texmf-dist/tex/generic/xypic/xytex.ini deleted file mode 100644 index 48e45e20d2f..00000000000 --- a/Master/texmf-dist/tex/generic/xypic/xytex.ini +++ /dev/null @@ -1,60 +0,0 @@ -%% $Id: xytex.ini,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-latex-*- -%% -%% Generate plain + Xy-pic format file. -%% Copyright (c) 1993-1996 Kristoffer H. Rose <krisrose@brics.dk> -%% -%% 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. - -% Load plain.tex -% -\input plain.tex - -% (Any other format parts should be loaded here before Xy-pic). - -% Load Xy-pic kernel: -% -\input xy - -% Extensions and features: You can replace this line with selective loading -% of particular options if you like. -% -\xyoption{all} - -% Now dump the format file. -% -\dump -\endinput - -% $Log: xytex.ini,v $ -% Revision 3.3 1996/12/19 03:31:56 krisrose -% Maintenance release -% -% Revision 3.0 1995/07/07 20:14:21 kris -% Major release w/new User's Guide! -% -% Revision 2.14 1995/07/06 02:56:02 kris -% Buglets... -% -% Revision 2.13 1995/07/04 15:11:17 kris -% Ready to release v3? -% -% Revision 2.10 1994/06/15 12:55:07 kris -% Second 3beta release: bug fixes. -% -% NEW file to go in version 2.10! diff --git a/Master/texmf-dist/tex/generic/xypic/xytextures.tex b/Master/texmf-dist/tex/generic/xypic/xytextures.tex index 216ea89938f..f0cfa58c35c 100644 --- a/Master/texmf-dist/tex/generic/xypic/xytextures.tex +++ b/Master/texmf-dist/tex/generic/xypic/xytextures.tex @@ -1,11 +1,11 @@ -%% xytextures.tex from $Id: xytextures.doc,v 3.3 1996/12/18 09:41:45 ross Exp $ +%% xytextures.tex from $Id: xytextures.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Textures'' driver interface option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{textures}{Textures driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{textures}{Textures driver}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\Textures@@#1{\dvimessage@{Textures}{#1}} \newdriver{% diff --git a/Master/texmf-dist/tex/generic/xypic/xytile.tex b/Master/texmf-dist/tex/generic/xypic/xytile.tex index 1b7af8f47e1..c5b0e35504b 100644 --- a/Master/texmf-dist/tex/generic/xypic/xytile.tex +++ b/Master/texmf-dist/tex/generic/xypic/xytile.tex @@ -1,11 +1,11 @@ -%% xytile.tex from $Id: xytile.doc,v 3.4 1997/05/18 01:13:24 ross Exp $ +%% xytile.tex from $Id: xytile.doc,v 3.7 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Pattern and Tile extension'' option. -%% Copyright (c) 1993-1997 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1993-1997 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-1997 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{tile}{Pattern and Tile extension}{\stripRCS$Revision: 3.4 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{tile}{Pattern and Tile extension}{\stripRCS$Revision: 3.7 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\xypatternwarning@@{\xypatternmessage@ \gdef\xypatternwarning@{\xypatternmessage@ diff --git a/Master/texmf-dist/tex/generic/xypic/xytips.tex b/Master/texmf-dist/tex/generic/xypic/xytips.tex index ec17981bf23..2c53c464265 100644 --- a/Master/texmf-dist/tex/generic/xypic/xytips.tex +++ b/Master/texmf-dist/tex/generic/xypic/xytips.tex @@ -1,10 +1,10 @@ -%% xytips.tex from $Id: xytips.doc,v 3.3 1996/12/19 04:12:13 krisrose Exp $ +%% xytips.tex from $Id: xytips.doc,v 3.7 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``More Tips'' extension. %% Copyright (c) 1992-1996 Kristoffer H. Rose <kris@diku.dk> %% %% This file is part of the Xy-pic package for graphs and diagrams in TeX. -%% Copyright (c) 1991-1996 Kristoffer H. Rose <kris@diku.dk> +%% Copyright (c) 1991-2010 Kristoffer H. Rose <kris@diku.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 @@ -17,11 +17,10 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{tips}{More Tips extension}{\stripRCS$Revision: 3.3 $}% +\xyprovide{tips}{More Tips extension}{\stripRCS$Revision: 3.7 $}% {Kristoffer H.~Rose}{kris@diku.dk}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} @@ -33,6 +32,8 @@ \xylet@\tipjot@xy=\tipjot@ \xyfont@\xy@@atfont=xycmat10 \xyfont@\xy@@btfont=xycmbt10 +\xyfont@\xy@@alfont=xyluat10 +\xyfont@\xy@@blfont=xylubt10 \xydef@\tipfamily@@{cm} \xydef@\tipsize@@{10} \xydef@\SelectTips#1#2{% @@ -72,6 +73,9 @@ \xydef@\Ttip@@eu{% \setboxz@h\bgroup\reverseDirection@\line@ \wdz@=\z@ \ht\z@=\z@ \dp\z@=\z@ \kern-\L@c \boxz@ \kern\L@c \Tip@@eu} +\xydefcsname@{tipfamily lu}{\loadtipfonts@ + \let\tip@=\tip@cm \let\atip@=\atip@cm \let\btip@=\btip@cm + \let\Tip@=\Tip@xy \let\Ttip@=\Ttip@xy \def\tipjot@{.2em}} \xydef@\UseTips{\csname tipfamily \tipfamily@@\endcsname} \xydef@\NoTips{\let\tip@=\tip@xy \let\atip@=\atip@xy \let\btip@=\btip@xy \let\Tip@=\Tip@xy \let\Ttip@=\Ttip@xy \let\tipjot@=\tipjot@xy} diff --git a/Master/texmf-dist/tex/generic/xypic/xytp-f.tex b/Master/texmf-dist/tex/generic/xypic/xytp-f.tex index bd48e695025..6389032d0ee 100644 --- a/Master/texmf-dist/tex/generic/xypic/xytp-f.tex +++ b/Master/texmf-dist/tex/generic/xypic/xytp-f.tex @@ -1,11 +1,11 @@ -%% xytp-f.tex from $Id: xytp-f.doc,v 3.3 1996/12/18 09:49:07 ross Exp $ +%% xytp-f.tex from $Id: xytp-f.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Frame extension'' TPIC backend support. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,8 +18,7 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xytpfloaded\empty \message{not reloaded}\endinput \fi \let\xytpfloaded=\empty \xycatcodes diff --git a/Master/texmf-dist/tex/generic/xypic/xytpic.tex b/Master/texmf-dist/tex/generic/xypic/xytpic.tex index 1a7930e7a34..8244243f94c 100644 --- a/Master/texmf-dist/tex/generic/xypic/xytpic.tex +++ b/Master/texmf-dist/tex/generic/xypic/xytpic.tex @@ -1,11 +1,11 @@ -%% xytpic.tex from $Id: xytpic.doc,v 3.3 1996/12/18 09:50:38 ross Exp $ +%% xytpic.tex from $Id: xytpic.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``tpic'' TPIC backend, for lines, curves and fills. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{tpic}{TPIC backend}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{tpic}{TPIC backend}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xynew@{if}\ifTPICspecials@ \xydef@\UseTPICspecials{\TPICspecials@true} diff --git a/Master/texmf-dist/tex/generic/xypic/xyv2.tex b/Master/texmf-dist/tex/generic/xypic/xyv2.tex index f69b9d065bc..05f98ba5962 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyv2.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyv2.tex @@ -1,11 +1,11 @@ -%% xyv2.tex from $Id: xyv2.doc,v 3.4 1997/05/18 01:14:25 krisrose Exp $ +%% xyv2.tex from $Id: xyv2.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Version 2 compatibility'' feature. %% Copyright (c) 1993-1995 Kristoffer H. Rose <kris@diku.dk> %% %% 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-1995 Kristoffer H. Rose <kris@diku.dk> +%% Copyright (c) 1991-2010 Kristoffer H. Rose <kris@diku.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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{v2}{Version 2 Compatibility}{\stripRCS$Revision: 3.4 $}% - {Kristoffer H.~Rose}{krisrose@brics.dk}% +\xyprovide{v2}{Version 2 Compatibility}{\stripRCS$Revision: 3.6 $}% + {Kristoffer H.~Rose}{krisrose@tug.org}% {BRICS/Computer Science, University of Aarhus, Ny Munkegade, building 540, DK--8000 Aarhus~C} \xylet@\XY=\Xy diff --git a/Master/texmf-dist/tex/generic/xypic/xyweb.tex b/Master/texmf-dist/tex/generic/xypic/xyweb.tex index d25fd047a3b..5a0fb5c579d 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyweb.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyweb.tex @@ -1,11 +1,11 @@ -%% xyweb.tex from $Id: xyweb.doc,v 3.3 1996/12/18 09:52:11 ross Exp $ +%% xyweb.tex from $Id: xyweb.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``Lattice and web'' feature. -%% Copyright (c) 1994-1996 Ross Moore <ross@mpce.mq.edu.au> +%% Copyright (c) 1994-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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{web}{Lattice and web feature}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{web}{Lattice and web feature}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \message{lattices,} \xynew@{count}\lattice@A diff --git a/Master/texmf-dist/tex/generic/xypic/xyxdvi.tex b/Master/texmf-dist/tex/generic/xypic/xyxdvi.tex index d36bba7f475..d91b4ad135e 100644 --- a/Master/texmf-dist/tex/generic/xypic/xyxdvi.tex +++ b/Master/texmf-dist/tex/generic/xypic/xyxdvi.tex @@ -1,11 +1,11 @@ -%% xyxdvi.tex from $Id: xyxdvi.doc,v 3.3 1996/12/18 09:53:22 ross Exp $ +%% xyxdvi.tex from $Id: xyxdvi.doc,v 3.6 2010/06/10 18:45:50 krisrose Exp $ %% %% Xy-pic ``xdvi-driver'' option. -%% Copyright (c) 1995-1996 Ross Moore <ross@mpce.mq.edu.au> +%% 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-1996 Kristoffer H. Rose <krisrose@brics.dk> +%% Copyright (c) 1991-2010 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 @@ -18,12 +18,11 @@ %% 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. +%% with this package; if not, see http://www.gnu.org/licenses/. %% \ifx\xyloaded\undefined \input xy \fi -\xyprovide{xdvi}{XDVI driver}{\stripRCS$Revision: 3.3 $}% - {Ross Moore}{ross@mpce.mq.edu.au}% +\xyprovide{xdvi}{XDVI driver}{\stripRCS$Revision: 3.6 $}% + {Ross Moore}{ross.moore@mq.edu.au}% {Mathematics Department, Macquarie University, NSW~2109, Australia} \xydef@\xdvi@@#1{\dvimessage@{xdvi}{#1}} \newdriver{% |