From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/qsymbols/CATALOG | 15 + macros/latex/contrib/qsymbols/COPYING | 339 ++++++++++++ macros/latex/contrib/qsymbols/MANIFEST | 7 + macros/latex/contrib/qsymbols/Makefile | 110 ++++ macros/latex/contrib/qsymbols/README | 30 + macros/latex/contrib/qsymbols/qsymbols.pdf | Bin 0 -> 148244 bytes macros/latex/contrib/qsymbols/qsymbols.sty | 854 +++++++++++++++++++++++++++++ macros/latex/contrib/qsymbols/qsymbols.tex | 494 +++++++++++++++++ 8 files changed, 1849 insertions(+) create mode 100644 macros/latex/contrib/qsymbols/CATALOG create mode 100644 macros/latex/contrib/qsymbols/COPYING create mode 100644 macros/latex/contrib/qsymbols/MANIFEST create mode 100644 macros/latex/contrib/qsymbols/Makefile create mode 100644 macros/latex/contrib/qsymbols/README create mode 100644 macros/latex/contrib/qsymbols/qsymbols.pdf create mode 100644 macros/latex/contrib/qsymbols/qsymbols.sty create mode 100644 macros/latex/contrib/qsymbols/qsymbols.tex (limited to 'macros/latex/contrib/qsymbols') diff --git a/macros/latex/contrib/qsymbols/CATALOG b/macros/latex/contrib/qsymbols/CATALOG new file mode 100644 index 0000000000..4d18ae18f1 --- /dev/null +++ b/macros/latex/contrib/qsymbols/CATALOG @@ -0,0 +1,15 @@ +Name: qsymbols +Version: 1.10 <1996/12/17> + +Description: Qsymbols is a LaTeX 2e package defining systematic mnemonic + abbreviations, of the form `... for math symbols and "..." for arrows. + It accesses symbols of the amssymb and stmaryrd packages. + Optionally, arbitrary arrows can be typeset using Xy-pic. + +Keywords: mnemonic mathematical symbols, arrows. +See-Also: xypic. + +Author: Kristoffer H. Rose +Problems-To: krisrose@brics.dk +URL: http://www.bricsw.dk/\protect \unhbox \voidb@x \penalty \@M \ {}krisrose/ +Address: BRICS, Aarhus University, Ny Munkegade bld.540, DK-8000 Aarhus C diff --git a/macros/latex/contrib/qsymbols/COPYING b/macros/latex/contrib/qsymbols/COPYING new file mode 100644 index 0000000000..a43ea2126f --- /dev/null +++ b/macros/latex/contrib/qsymbols/COPYING @@ -0,0 +1,339 @@ + 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. + + + Copyright (C) 19yy + + 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. + + , 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/macros/latex/contrib/qsymbols/MANIFEST b/macros/latex/contrib/qsymbols/MANIFEST new file mode 100644 index 0000000000..0783aab6fe --- /dev/null +++ b/macros/latex/contrib/qsymbols/MANIFEST @@ -0,0 +1,7 @@ +CATALOG +COPYING +MANIFEST +README +qsymbols.ps +qsymbols.sty +qsymbols.tex diff --git a/macros/latex/contrib/qsymbols/Makefile b/macros/latex/contrib/qsymbols/Makefile new file mode 100644 index 0000000000..ef436869bc --- /dev/null +++ b/macros/latex/contrib/qsymbols/Makefile @@ -0,0 +1,110 @@ +# $Id: Makefile,v 1.8 1996/12/05 04:50:53 krisrose Exp krisrose $ +# +# `Quoted math symbol/arrow abbreviations' package for LaTeX 2e: Makefile. +# Copyright (c) 1994 Kristoffer H. Rose +# +# This 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. +# +# This 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. + + +# DIRECTORIES. +# +#USR = /usr/local +USR = $$SYS +# +TEXDIR = $(USR)/lib/tex/inputs + + +# PROGRAMS. +# +INSTALL = install -c -m444 +RM = rm -f +GZIP = gzip -v9 +GZ = .gz +# +LATEX = latex +DVIPS = dvips + + +# GENERIC TARGETS. +# +.DEFAULT: all +.PHONY: all install clean realclean +# +ALL = COPYING README CATALOG qsymbols.sty qsymbols.tex qsymbols.ps +# +all: $(ALL) +# +install: qsymbols.sty + $(INSTALL) qsymbols.sty $(TEXDIR) + @echo + @echo Please ensure that the file COPYING is available on your system. + @echo +# +clean: + $(RM) *.aux *.toc *.lof *.blg *.log *.idx *.ilg *.bbl *.dvi \ + ./#* *~ core *.BAK *JNL +# +realclean: clean + $(RM) CATALOG *.ps + +# GENERATION TARGETS. +# +qsymbols.ps: qsymbols.tex qsymbols.sty + $(LATEX) qsymbols && $(LATEX) qsymbols && $(LATEX) qsymbols + $(DVIPS) qsymbols -o +# +CATALOG: CATALOG.doc + $(LATEX) CATALOG.doc + mv -f CATALOG.out CATALOG + + +# DISTRIBUTION. +# +.PHONY: dist ftp +# +PUB = $$HOME/pub +DISTDIR = $(PUB) +FTPDIR = /home/ftp/Staff/krisrose/TeX +# +dist: $(ALL) + mkdir -p $(DISTDIR)/qsymbols + $(INSTALL) $(ALL) $(DISTDIR)/qsymbols + cd $(DISTDIR)/qsymbols;\ + find . -type f -print | sed 's,^./,,' | sort > MANIFEST + +ftp: all dist + cd $(DISTDIR);\ + tar cvf - qsymbols | $(GZIP) > $(FTPDIR)/qsymbols.tar$(GZ) + +# RCS dependencies. +# +Makefile:; test -d RCS -a -f RCS/Makefile,v && co Makefile || : +CATALOG.doc:; test -d RCS -a -f RCS/CATALOG.doc,v && co CATALOG.doc || : +COPYING:; test -d RCS -a -f RCS/COPYING,v && co COPYING || : +README:; test -d RCS -a -f RCS/README,v && co README || : +qsymbols.sty:; test -d RCS -a -f RCS/qsymbols.sty,v && co qsymbols.sty || : +qsymbols.tex:; test -d RCS -a -f RCS/qsymbols.tex,v && co qsymbols.tex || : + +# $Log: Makefile,v $ +# Revision 1.8 1996/12/05 04:50:53 krisrose +# Fits qsymbols.sty 1.9 +# +# Revision 1.7 1994/12/12 01:29:28 kris +# Updates for Xy-pic v3 in progress... +# +# Revision 1.1 1994/10/28 22:27:37 kris +# Initial revision +# +# Based on Xy-pic Makefile. diff --git a/macros/latex/contrib/qsymbols/README b/macros/latex/contrib/qsymbols/README new file mode 100644 index 0000000000..55e9e20775 --- /dev/null +++ b/macros/latex/contrib/qsymbols/README @@ -0,0 +1,30 @@ +DESCRIPTION: + + Qsymbols is a LaTeX 2e package defining systematic mnemonic + abbreviations, of the form `... for math symbols and "..." for arrows. + + It accesses symbols of the amssymb and stmaryrd packages. + + Optionally, arbitrary arrows can be typeset using Xy-pic. + + See the file CATALOG for the current release details. + +INSTALLATION INSTRUCTIONS: + + (1) Install qsymbol.sty in a directory searched by LaTeX. + + (2) Make sure the COPYING file is accessible to users. + +DOCUMENTATION: + + Qsymbols is documented in the manual included with the package: + + qsymbols.tex LaTeX source (requires Xy-pic to typeset) + qsymbols.ps Adobe PostScript version + +AUTHOR: + + Kristoffer Høgsbro ROSE + BRICS + 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/macros/latex/contrib/qsymbols/qsymbols.pdf b/macros/latex/contrib/qsymbols/qsymbols.pdf new file mode 100644 index 0000000000..311aea9046 Binary files /dev/null and b/macros/latex/contrib/qsymbols/qsymbols.pdf differ diff --git a/macros/latex/contrib/qsymbols/qsymbols.sty b/macros/latex/contrib/qsymbols/qsymbols.sty new file mode 100644 index 0000000000..a7af5a8aca --- /dev/null +++ b/macros/latex/contrib/qsymbols/qsymbols.sty @@ -0,0 +1,854 @@ +% $Id: qsymbols.sty,v 1.12 1997/01/07 23:56:44 krisrose Exp $ +% +% `Quoted math symbol abbreviations' package for LaTeX2e. +% Copyright © 1994 Kristoffer H. Rose +% +% This 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. +% +% This 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. +% +\NeedsTeXFormat{LaTeX2e} + +\def\tmp#1Revision: #2 $,#3Date: #4 #5 ${% + \ProvidesPackage{qsymbols}[#4 Quoted math symbol abbreviations v.#2] + \def\qsymbolsversion{#2}\def\qsymbolsdate{#4}} +\tmp$Revision: 1.12 $,$Date: 1997/01/07 23:56:44 $ + +% Process Options such that \xyloaded is indicator... + +\DeclareOption{noams}{\let\qsym@noams=\relax} +\DeclareOption{nostmary}{\let\qsym@nostmary=\relax} + +\DeclareOption{dvips}{\PassOptionsToPackage{dvips}{xy}} + +\newif\ifpurexy@ +\DeclareOption{xy}{\let\qsym@xy=\relax \purexy@false} +\DeclareOption{purexy}{\let\qsym@xy=\relax \purexy@true} + +\newif\ifoldcm@ +\DeclareOption{oldcm}{\oldcm@true} + +\def\qsymsmash@@{} +\DeclareOption{smash}{\gdef\qsymsmash@@{\ht\z@=\z@ \dp\z@=\z@}} + +\def\qW@@#1#2{} +\def\qW@debug#1#2{\begingroup#1\immediate\write16{#2}\endgroup} +\DeclareOption{debug}{\let\qW@@=\qW@debug} + +\DeclareOption*{% + \expandafter\PassOptionsToPackage\expandafter{\CurrentOption}{xy}} + +\ProcessOptions\relax + +% Import of symbols. + +\ifnum\the\catcode`\"=\active \def\restoredbl@{\catcode`\"=\active}% +\else \let\restoredbl@=\relax \fi + +\catcode`\"=12 + +\ifx\qsym@noams\undefined + \let\blacktriangle=\undefined % Sic. + \RequirePackage{amssymb,amsbsy} +\fi + +\ifx\qsym@nostmary\undefined + \RequirePackage{stmaryrd} +\fi + +\ifx\qsym@xy\relax + \ifx\xyloaded\undefined \RequirePackage[arrow,cmtip]{xy}% + \else \xyoption{arrow}\xyoption{cmtip}\makeatletter \fi +\fi + +\ifx\UseTips\undefined + \let\qTips=\UseComputerModernTips + \let\qTips=\NoComputerModernTips +\else + \let\qTips=\UseTips \let\qNoTips=\NoTips +\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% SETUP. + +% Activate ` in math mode to look up qsymbol. + +\def\active@q{\futurelet\tmp\qsym@} +{\catcode`\`=\active \global\let`=\active@q} +\mathcode`\`="8000 + +% Definition commands. + +\def\qsym@#1{\ifx\bgroup\tmp \def\tmp{`{#1}}\else\def\tmp{`#1}\fi + \expandafter\let\expandafter\@tmp\csname\space\codeof\tmp\endcsname + \avoidrelax@\@tmp{\@warning{Unknown symbol \codeof\tmp}}} + +\def\avoidrelax@#1#2{\ifx#1\relax\def\av@id{#2}\else\let\av@id=#1\fi \av@id} + +\def\newqsymbol#1{\def\tmp{#1}\edef\tmp{\codeof\tmp}% + \expandafter\let\expandafter\@tmp\csname\space\tmp\endcsname + \ifx\@tmp\relax\else \@warning{Redefining qsymbol \tmp}\fi + \expandafter\def\csname\space\tmp\endcsname} + +\def\newqsymbol@#1#2{\def\tmp{#1}% + \expandafter\def\csname\space\codeof\tmp\endcsname{#2}} + +\def\newqsymbol@@#1#2{\ifx#2\undefined \else \newqsymbol@{#1}{#2}\fi} + +% Boxification...not really an optimisation anymore. + +\newcommand{\boxifyqsymbol}[2][]{\def\tmp{#2}\edef\tmp{\codeof\tmp}% + \edef\tmp{{\expandafter\noexpand\csname\space\tmp @box\endcsname}{\tmp}}% + \DN@##1##2{\AtBeginDocument{% + \newsavebox{##1}\sbox{##1}{$#2$}% + \expandafter\def\csname\space##2\endcsname{#1{\usebox{##1}}}}}% + \expandafter\next@\tmp} + +% Auxiliaries (from Xy-pic)... + +%\ifx\xyloaded\undefined +{\catcode`\:=12 \catcode`\>=12 % to ensure that all of :->< are other... + \gdef\codeof#1{\expandafter\codeof@\meaning#1<-:} + \gdef\codeof@#1:->#2<-:{#2}} + +\def\space@.{\futurelet\space@\relax}\space@. % +\def\DN@{\def\next@} +\def\DNii@{\def\nextii@} +%\fi + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% SINGLE SYMBOLS. + +% Letters: + +\newqsymbol@{`a}\alpha +\newqsymbol@{`b}\beta +\newqsymbol@{`c}\chi +\newqsymbol@{`d}\delta +\newqsymbol@{`D}\Delta +\newqsymbol@{`e}\epsilon +\newqsymbol@{`f}\phi +\newqsymbol@{`F}\Phi +\newqsymbol@{`g}\gamma +\newqsymbol@{`G}\Gamma +\newqsymbol@{`h}\eta +\newqsymbol@{`i}\iota +\newqsymbol@{`j}\psi +\newqsymbol@{`J}\Psi +\newqsymbol@{`k}\kappa +\newqsymbol@{`l}\lambda +\newqsymbol@{`L}\Lambda +\newqsymbol@{`m}\mu +\newqsymbol@{`n}\nu +\newqsymbol@{`p}\pi +\newqsymbol@{`P}\Pi +\newqsymbol@{`q}\theta +\newqsymbol@{`Q}\Theta +\newqsymbol@{`r}\rho +\newqsymbol@{`s}\sigma +\newqsymbol@{`S}\Sigma +\newqsymbol@{`t}\tau +\newqsymbol@{`u}\varrho +\newqsymbol@{`v}\varphi +\newqsymbol@{`w}\omega +\newqsymbol@{`W}\Omega +\newqsymbol@{`x}\xi +\newqsymbol@{`X}\Xi +\newqsymbol@{`y}\upsilon +\newqsymbol@{`Y}\Upsilon +\newqsymbol@{`z}\zeta + +% Symbols: + +\newqsymbol@{`+}\pm +\newqsymbol@{`*}\times +\newqsymbol@{`:}\in +\newqsymbol@{`;}\notin +\newqsymbol@{`/}\setminus +\newqsymbol@{`U}\cup +\newqsymbol@@{`C}\complement +\newqsymbol@{`_}\bot +\newqsymbol@{`T}\top +\newqsymbol@{`o}\circ +\newqsymbol@{`.}\cdot +\newqsymbol@{`=}\equiv +\newqsymbol@{`~}\simeq +\newqsymbol@{`E}\exists +\newqsymbol@{`A}\forall +\newqsymbol@{`!}\lnot +\newqsymbol@{`^}\land +\newqsymbol@{`V}\lor + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CIRCLED & BOXED OPERATIONS. + +% Circled: + +\newqsymbol@{`(}{\oqsym@} + +\def\oqsym@#1){\def\tmp{`(#1)}% + \expandafter\let\expandafter\@tmp\csname\space\codeof\tmp\endcsname\relax + \avoidrelax@\@tmp{\encircle{#1}}} + +\ifx\varbigcirc\undefined \let\varbigcirc=\bigcirc \fi +\def\encircle#1{\ensuremath{% + \def\nextii@{\kern-.1em % + \ooalign{\hfil\hbox{$\mathstrut\scriptstyle#1$}\hfil\crcr + $\varbigcirc$}\kern-.1em}% + \mathchoice{\hbox{\nextii@}}{\hbox{\nextii@}}% + {\hbox{\scriptsize\nextii@}}{\hbox{\tiny\nextii@}}}} + +\newqsymbol@{`()}\bigcirc +\newqsymbol@{`(?)}\circ +\newqsymbol@{`(!)}\bullet +\newqsymbol@@{`(R)}\circledR +\newqsymbol@{`(C)}\copyright + +% Circled symbols overridden by stmaryrd (bold) variants if available. +\newqsymbol@{`(+)}\oplus \newqsymbol@@{`(+)}\varoplus +\newqsymbol@{`(-)}\ominus \newqsymbol@@{`(-)}\varominus +\newqsymbol@{`(`*)}\otimes \newqsymbol@@{`(`*)}\varotimes +\newqsymbol@@{`(/)}\oslash \newqsymbol@@{`(/)}\varoslash +\newqsymbol@@{`(|)}\obar \newqsymbol@@{`(|)}\varobar +\newqsymbol@@{`(`/)}\obslash \newqsymbol@@{`(`/)}\varobslash +\newqsymbol@{`(`.)}\odot \newqsymbol@@{`(`.)}\varodot +\newqsymbol@@{`(*)}\oast \newqsymbol@@{`(*)}\varoast +\newqsymbol@@{`(`o)}\ocircle \newqsymbol@@{`(`o)}\varocircle +\newqsymbol@@{`(`^)}\owedge \newqsymbol@@{`(`^)}\varowedge +\newqsymbol@@{`(`V)}\ovee \newqsymbol@@{`(`V)}\varovee +\newqsymbol@@{`(<)}\olessthan \newqsymbol@@{`(<)}\varolessthan +\newqsymbol@@{`(>)}\ogreaterthan \newqsymbol@@{`(>)}\varogreaterthan + +% Boxed: + +\newqsymbol@{`[}{\boxedqsym@} + +\def\boxedqsym@#1]{\def\tmp{`[#1]}% + \expandafter\let\expandafter\@tmp\csname\space\codeof\tmp\endcsname\relax + \avoidrelax@\@tmp{\enbox{#1}}} + +\def\enbox#1{\ensuremath{% + \def\nextii@{\kern-.1em \hbox{% + \ooalign{\hfil\raise.1em\hbox{$\scriptstyle#1$}\hfil\crcr + $\square$}\kern-.1em}}% + \mathchoice{\hbox{\nextii@}}{\hbox{\nextii@}}% + {\hbox{\scriptsize\nextii@}}{\hbox{\tiny\nextii@}}}} + +\newqsymbol@@{`[+]}\boxplus +\newqsymbol@@{`[-]}\boxminus +\newqsymbol@@{`[`*]}\boxtimes +\newqsymbol@@{`[/]}\boxslash +\newqsymbol@@{`[|]}\boxbar +\newqsymbol@@{`[`/]}\boxbslash +\newqsymbol@@{`[`.]}\boxdot +\newqsymbol@@{`[*]}\boxast +\newqsymbol@@{`[`o]}\boxcircle + +\def\bull{% + \mathbin{\vcenter{% + \setbox0=\hbox{\kern1pt \vrule height.4ex depth.4ex width.8ex }% + \ht0=.5ex \dp0=.5ex \wd0=1ex \box0}}} + +\def\whitebull{% + \mathbin{\vcenter{% + \setbox0=\hbox{\kern1pt % + \vrule height.4ex depth.4ex width.1ex % + \rlap{\vrule height.4ex depth -.3ex width.6ex }% + \vrule height-.3ex depth.4ex width.6ex % + \vrule height .4ex depth.4ex width .1ex }% + \ht0=.5ex \dp0=.5ex \wd0=1ex \box0}}} + +\newqsymbol@{`[]}\square +\newqsymbol@{`[?]}\whitebull +\newqsymbol@{`[!]}\bull + +% Angled: + +\newqsymbol@{`<}\angledqsym@ + +\def\angledqsym@#1>{\def\tmp{`<#1>}% + \csname\space\codeof\tmp\endcsname\relax} + +\newqsymbol@{`<>}\lozenge +\newqsymbol@{`}\diamond + +% Braced: + +\newqsymbol@{`{}}\emptyset \newqsymbol@@{`{}}\varnothing + +% Faces: + +\def\smiley{{\hbox{\rlap{$\varbigcirc$}\kern.13em$\scriptstyle\ddot\smile$}}} +\def\frowny{{\hbox{\rlap{$\varbigcirc$}\kern.13em$\scriptstyle\ddot\frown$}}} +\def\weeny{{\hbox{\rlap{$\varbigcirc$}\kern.20em$% + \scriptstyle\ddot{\mkern.5mu\smash{-}\mkern-.5mu}$}}} +\def\oopsy{{\hbox{\rlap{$\bigcirc$}\kern.5ex$\scriptstyle\ddot\sim$}}} + +\newqsymbol@{`(:-)}\smiley +\newqsymbol@{`[:-]}\frowny +\newqsymbol@{`<:->}\weeny +\newqsymbol@{`{:-}}\oopsy + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BOLD SYMBOLS + +\newqsymbol@{`@}{\futurelet\tmp\boldqsymbol} + +\def\boldqsymbol{% + \ifx `\tmp \DN@`{\futurelet\tmp\boldqsymbol@}% + \else \let\next@=\boldsymbol \fi \next@} + +\def\boldqsymbol@{% + \ifx [\tmp \DN@[##1]{\boldsymbol{`[##1]}}%] + \else\ifx (\tmp \DN@(##1){\boldsymbol{`(##1)}}%) + \else\ifx <\tmp \DN@<##1>{\boldsymbol{`<##1>}}%> + \else\ifx \bgroup\tmp \DN@##1{\boldsymbol{`{##1}}}% + \else \DN@##1{\boldsymbol{`##1}}% + \fi\fi\fi\fi \next@} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ORDERINGS. + +\newqsymbol@{``}{\qsymord@} + +\def\xqsym@@#1#2{% + \expandafter\let\expandafter\1\csname qsym@@#1\endcsname + \def\2{\expandafter\def\csname qsym@@#1\endcsname}% + \expandafter\2\expandafter{\1#2}} + +\def\qsymord@{\def\qsym@@@{``}% + \let\qsym@@=\empty\let\qsym@@x=\empty\let\qsym@@v=\empty\let\qsym@@m=\empty + \futurelet\tmp\qsymord@i} + +{\restoredbl@ + \gdef\qsymord@i{% + \ifx `\tmp \def\@tmp##1{\futurelet\tmp\qsymord@i}\xqsym@@{@}`\xqsym@@{x}x% + \else\ifx "\tmp + \def\@tmp"##1"{\xqsym@@{@}{"##1"}% + \mathbin{\vcenter{\hbox{% + $\let\undefinedarrow@=\undefinedarrowtrue@ + \def\qrightdirection@@{(0,-1):0}\qsymar##1 $}}}}% + \else\ifx\undefined\tmp \let\@tmp=\qsymord@ii + \else\ifcat A\tmp \def\@tmp##1{\csname##1@ord\endcsname}% + \else \let\@tmp=\qsymord@ii \fi\fi\fi\fi \@tmp}} + +\def\qsymord@ii{\def\@tmp##1{\xqsym@@{@}{##1}\futurelet\tmp\qsymord@ii}% + \ifx /\tmp \xqsym@@{x}n% + \else\ifx =\tmp \def\qsym@@m{eq}% + \else\ifx -\tmp \def\qsym@@v{dash}% + \else\ifx +\tmp \def\qsym@@v{plus}% + \else\ifx <\tmp \def\qsym@@{less}% + \else\ifx >\tmp \def\qsym@@{gtr}% + \else\ifx (\tmp \def\qsym@@{subset}% + \else\ifx )\tmp \def\qsym@@{supset}% + \else\ifx [\tmp \def\qsym@@{sqsubset}% + \else\ifx ]\tmp \def\qsym@@{sqsupset}% + \else\ifx \{\tmp\def\qsym@@{prec}% + \else\ifx \}\tmp\def\qsym@@{succ}% + \else\ifx \<\tmp\def\qsym@@{triangleleft}% + \else\ifx \>\tmp\def\qsym@@{triangleright}% + \else\ifx ~\tmp \def\qsym@@{sim}% + \else\ifx \~\tmp\def\qsym@@{backsim}% + \else \let\@tmp=\qsymord@x + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \@tmp} + +\def\qsymord@x{% + \expandafter\let\expandafter\@tmp\csname\qsym@@x\qsym@@\qsym@@v\qsym@@m\endcsname + \ifx\@tmp\relax \@warning{Undefined ordering \codeof\qsym@@@}% + \else\qW@@{}{Q \codeof\qsym@@@\space : + \expandafter\string\csname\qsym@@x\qsym@@\qsym@@v\qsym@@m\endcsname}\fi + \@tmp} + +\mathchardef\less="313C % < +\let\lesseq=\leq \let\nlesseq=\nleq +\def\xless{\mathrel{\wedge}} \let\xxless=\bigwedge + +\mathchardef\gtr="313E % > +\let\gtreq=\geq \let\ngtreq=\ngeq +\def\xgtr{\mathrel{\vee}} \let\xxgtr=\bigvee + +\let\subsetdash=\in % `set inclusion' relations +\def\nsubset{\not\subset} +\let\nsubsetdash=\notin +\def\nsubseteq{\not\subseteq} +\def\nsubsetplus{\not\subsetplus} +\def\nsubsetpluseq{\not\subsetpluseq} +\let\xsubset=\cap \let\xxsubset=\bigcap +\let\xsubsetplus=\nplus +\let\xxsubsetplus=\bignplus +\let\xsubsetdash=\pitchfork + +\let\supsetdash=\ni +\let\xsupset=\cup \let\xxsupset=\bigcup +\let\xsupsetplus=\uplus +\let\xxsupsetplus=\biguplus +\def\nsupset{\not\supset} +\def\nsupseteq{\not\supseteq} +\def\nsupsetplus{\not\supsetplus} +\def\nsupsetpluseq{\not\supsetpluseq} + +\def\nsqsubset{\not\sqsubset} % `open square' relations +\def\nsqsubseteq{\not\sqsubseteq} +\def\nsqsupset{\not\sqsupset} +\def\nsqsupseteq{\not\sqsupseteq} +\let\xsqsubset=\sqcap +\let\xsqsupset=\sqcup +\let\xxsqsubset=\bigsqcap +\let\xxsqsupset=\bigsqcup + +\let\xprec=\curlywedge % `curly' relations +\let\xsucc=\curlyvee +\let\xxprec=\bigcurlywedge +\let\xxsucc=\bigcurlyvee + +\let\triangleleft=\vartriangleleft % `triangle' relations +\let\triangleright=\vartriangleright +\let\xtriangleleft=\vartriangle +\let\xtriangleright=\triangledown +\let\xxtriangleleft=\bigtriangleup +\let\xxtriangleright=\bigtriangledown + +\def\nsim{\not\sim} % ~ +\def\nsimeq{\not\simeq} +\let\xsim=\wr +\def\nbacksim{\not\backsim} +\def\nbacksimeq{\not\backsimeq} +\def\xbacksim{\smallint} +\def\xxbacksim{\int} + +\def\U@ord{\bigcup} % Abbreviations... ``U +\expandafter\def\csname\string^@ord\endcsname{\bigwedge} % ``^ +\def\V@ord{\bigvee} % ``V +\def\S@ord{\sum} % ``S +\def\P@ord{\prod} % ``P + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ARROWS. + +\newif\ifqsym@@conn +\newif\ifqsym@@not +\newif\ifqsym@@ss + +% Activate "..." in math mode to look up qsymbol arrow. + +{\restoredbl@ \gdef\active@dq#1"{\def\qsym@@@{"#1"}\qsymar#1 }} +{\catcode`\"=\active \global\let"=\active@dq} +\mathcode`\"="8000 + +\newqsymbol@{`"}{\active@dq} + +\def\qsymar{\let\qsym@@=\empty + \let\qsym@@v=\empty \let\qsym@@m=\empty \let\qsym@@x=\empty + \def\qsym@@w{{10.1pt}}% + \qsym@@connfalse \qsym@@notfalse + \setbox\qsymar@labelbox=\copy\voidb@x + \qsym@@sstrue \let\qsym@@sb=\empty \let\qsym@@sp=\empty + \futurelet\tmp\qsymar@} + +\newbox\qsymar@labelbox + +\def\qsymar@hasconn{% + \ifqsym@@conn \qsymar@expand \else \qsym@@conntrue \fi} + +{% REPAIR bug of the 2e version of AMS-LaTeX where \makeatother is broken... + \ifx\@ifpackageloaded\undefined \makeatother + \else \@ifpackageloaded{amstex}{\catcode`\@=\active}{\makeatother}\fi + \gdef\addATto#1{#1@}} + +\def\qsym@@labelmargin{\labelmargin{1pt}} +\def\qsymarv@#1{\def\qsym@@v{#1}\def\qsym@@labelmargin{\labelmargin{#1pt}}} + +\def\qsymar@{% + \DN@##1{\xqsym@@{}{##1}\xqsym@@{m}{##1}\futurelet\tmp\qsymar@}%default + \ifx\space@\tmp \expandafter\DN@\space{\qsymar@i}%terminate at space + \else\ifx2\tmp \qsymarv@{2}\xqsym@@{}2\DN@2{\futurelet\tmp\qsymar@}% + \else\ifx3\tmp \qsymarv@{3}\xqsym@@{}3\DN@3{\futurelet\tmp\qsymar@}% + \else\ifx^\tmp \def\qsym@@v{^}\xqsym@@{}^\DN@^{\futurelet\tmp\qsymar@}% + \else\ifx_\tmp \def\qsym@@v{_}\xqsym@@{}_\DN@_{\futurelet\tmp\qsymar@}% + \else\ifx<\tmp + \else\ifx>\tmp + \else\ifx|\tmp + \else\ifx-\tmp \qsymar@hasconn + \else\ifx=\tmp \qsymar@hasconn \xqsym@@{m}-\qsymarv@{2}% + \xqsym@@{}=\DN@={\futurelet\tmp\qsymar@}% + \else\ifx.\tmp \qsymar@hasconn + \else\ifx:\tmp \qsymar@hasconn\xqsym@@{m}.\qsymarv@{2}% + \xqsym@@{}:\DN@:{\futurelet\tmp\qsymar@}% + \else\ifx~\tmp \qsymar@hasconn \qsymar@expand + \else\ifx x\tmp + \else\ifx o\tmp + \else\ifx`\tmp + \else\ifx'\tmp + \else\ifx!\tmp + \qsymar@expand \DN@!{\futurelet\tmp\qsymar@}% + \else\ifx \bgroup\tmp \DN@##1{\futurelet\tmp\qsymar@group##1@@}% + \else\addATto\ifx\tmp + \DN@##1##2{\xqsym@@{x}{##1##2}\futurelet\tmp\qsymar@}% + \else\ifx (\tmp \qsymar@expand\qsymar@expand + \DN@(##1){\xqsym@@{}{(##1)}% + \xqsym@@{x}{|*=/2\R@c/\hbox{\encircle{##1}}}% + \futurelet\tmp\qsymar@}% + \else\ifx [\tmp \qsymar@expand\qsymar@expand + \DN@[##1]{\xqsym@@{}{[##1]}\xqsym@@{x}{|*\hbox{\enbox{##1}}}% + \futurelet\tmp\qsymar@}% + \else\ifx *\tmp \DN@*{\qsymar@star}% + \else\ifx /\tmp \xqsym@@{}{/}% + \ifqsym@@not + \DN@/{\xqsym@@{x}{|-/.7pt/*\dir2{/}}\futurelet\tmp\qsymar@}% + \else \DN@/{\xqsym@@{x}{|-/-.7pt/*\dir2{/}}\futurelet\tmp\qsymar@}% + \qsym@@nottrue \fi + \else\ifcat A\noexpand\tmp + \DN@##1{\expandafter\let\expandafter\next@\csname qac@##1\endcsname + \ifx\next@\relax \DN@{\qsymar@badescape{##1}}\fi \next@}% + \else\ifcat .\noexpand\tmp + \DN@##1{\expandafter\let\expandafter\next@\csname qac@##1\endcsname + \ifx\next@\relax \DN@{\qsymar@badescape{##1}}\fi \next@}% + \else \let\next@=\qsymar@i + \@warning{Ignored weird token in arrow: \meaning\tmp}% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi + \next@} + +\def\qsymar@badescape#1{\DN@{\futurelet\tmp\qsymar@}% + \@warning{Undefined qsymbol arrow macro #1}} + +\def\qsymar@expand{\DNii@##1{\dimen@=##1}\expandafter\nextii@\qsym@@w\relax + \ifdim\dimen@<11pt \def\qsym@@w{{15.1pt}}% + \else\ifdim\dimen@<16pt \def\qsym@@w{{20.1pt}}% + \else\ifdim\dimen@<21pt \def\qsym@@w{{25.1pt}}% + \else \advance\dimen@5pt \edef\qsym@@w{{\the\dimen@}}\fi\fi\fi} + +% Measure/keep label + +\def\qsymar@group#1@@{% + \ifx ^\tmp \let\next@=\qsymar@label + \else\ifx _\tmp \let\next@=\qsymar@label + \else \qsym@@ssfalse + \ifx |\tmp \let\next@=\qsymar@label \else \DN@##1@@{}\fi + \fi\fi \next@#1{}@@% + \xqsym@@{x}{#1}\futurelet\tmp\qsymar@} + +\def\qsymar@label#1#2#3@@{% + \DN@{#3}\ifx\next@\empty + \ifqsym@@ss \qsym@@ssfalse + \ifx ^\tmp \ifx\qsym@@sp\empty \qsym@@sstrue \def\qsym@@sp{#2}\fi + \else\ifx _\tmp \ifx\qsym@@sb\empty \qsym@@sstrue \def\qsym@@sb{#2}\fi + \fi\fi + \fi + \DN@{\qsymar@label@@{#2}}% + \else \qsym@@ssfalse \DN@{\qsymar@label@#3@@}\fi \next@} + +\def\qsymar@label@#1#2@@{\DN@{#2}% + \ifx\next@\empty \DN@{\qsymar@label@@{#1}}% + \else \DN@{\qsymar@label@#2@@}\fi \next@} + +\def\qsymar@label@@#1{\setbox\z@=\hbox{$\m@th\scriptstyle\;{#1}\;$}% + \DNii@##1{\dimen@=##1}\expandafter\nextii@\qsym@@w\relax + \loop\ifdim\dimen@<\wd\z@ \qsymar@expand \repeat} + +\def\qsymar@star#1#{\qsymar@star@{#1}} +\def\qsymar@star@#1#2{\xqsym@@{}{*#1{#2}}\xqsym@@{m}{*#1{#2}}% + \futurelet\tmp\qsymar@} + +\def\qsymar@i{% + \ifingraph@ \DN@{\ingraph@false \qsymar@x\GRAPHar@}% + \else\if\inxy@ \DN@{\qsymar@x\ar}% + \else + \edef\nextii@{\codeof\qsym@@}% + \expandafter\let\expandafter\tmp\csname\space"\nextii@"\endcsname + \if\undefinedarrow@\tmp + \ifx\xyloaded\undefined + \DN@{\@warning{arrow "\nextii@" undefined}}% + \else + \DNii@##1{\setboxz@h{\kern\p@\qTips\qsym@@labelmargin + $\expandafter\xy\qrightdirection@@ + \qsymar@x\ar*{}+/v(1,0)##1/*{}\relax + \endxy$\kern\p@}\mathrel{\qsymsmash@@\boxz@}}% + \DN@{\expandafter\nextii@\qsym@@w}% + \qW@@{}{Q \codeof\qsym@@@\space : Xy-pic}\fi + \else + \ifx\qsym@@sp\empty \ifx\qsym@@sb\empty \qsym@@ssfalse \fi\fi + \ifqsym@@ss \xqsym@@{}{@}% + \expandafter\let\expandafter\@tmp\csname\space"\codeof\qsym@@"\endcsname + \ifx\@tmp\relax + \expandafter\def\expandafter\tmp\expandafter{\expandafter$\tmp$}% + \else \let\tmp=\@tmp \fi + \let\next@=\qsymar@stretch + \qW@@{\DN@##1{\dimen@=##1}\expandafter\next@\qsym@@w}% + {Q \codeof\qsym@@@\space + : \codeof\tmp\space + FROM \the\dimen@\space + LIMITS \string_{\codeof\qsym@@sb} \string^{\codeof\qsym@@sp}}% + \else + \let\next@=\tmp + \qW@@{}{Q \codeof\qsym@@@\space : \codeof\tmp\space + LIMITS \string_{\codeof\qsym@@sb} \string^{\codeof\qsym@@sp}}% + \fi + \fi + \fi\fi \next@} + +\def\qrightdirection@@{} +\def\undefinedarrow@#1{\ifx#1\relax TT\else TF\fi} +\def\undefinedarrowtrue@#1{TT} + +\def\qsymar@x#1{% + %% Eval #1 @\qsym@@v{\qsym@@m}\qsym@@x ... + \DN@{\addAT@#1}% + \DNii@{\expandafter\expandafter\expandafter\next@ + \expandafter\qsym@@v\expandafter{\qsym@@m}}% + \expandafter\nextii@\qsym@@x}% + +% Automatic stretching to fit a label: +\def\qsymar@stretch{\mathrel{\m@th + \DN@##1{\dimen@=##1}\expandafter\next@\qsym@@w\relax + \setbox\z@=\hbox{\tmp}\ifdim\dimen@<\wd\z@ \dimen@=\wd\z@ \fi + \setbox2=\hbox{$\m@th\scriptstyle\;{\qsym@@sp}\;$}% + \ifdim\dimen@<\wd2 \dimen@=\wd2 \fi + \setbox4=\hbox{$\m@th\scriptstyle\;{\qsym@@sb}\;$}% + \ifdim\dimen@<\wd4 \dimen@=\wd4 \fi + \setbox\z@=\hbox to \dimen@{\hfil\tmp\hfil}% + \dimen@=\ht\z@ \advance\dimen@-.3ex \ht\z@=\dimen@ + \dimen@=\dp\z@ \advance\dimen@-.3ex \dp\z@=\dimen@ + \qsymsmash@@{\textstyle\mathop{\box\z@}\limits^{\box2}_{\box4}}}} + +%% User's additional constructions...and the two (only) original ones. + +\def\newqsymbolarrowcharxy#1#2{% + \DN@{#1}\expandafter\def\csname qac@\codeof\next@\endcsname{% + \futurelet\tmp\qsymar@group#2@@}} + +\newqsymbolarrowcharxy{?}{^-*-<3pt,1pt>{\scriptstyle=}} +\newqsymbolarrowcharxy{+}{^-*-<3pt,1pt>{\scriptstyle+}} + +\newif\ifingraph@ + +% `Canned' arrows; single arrows avoided when `oldcm' option specified (they +% were ugly before getting fixed -- this is *still* bad with Y&Ys PS fonts). + +\ifpurexy@\else + +\newqsymbol@{"-"}{-} +\newqsymbol@{"-@"}{\genericarrowfill---} +\newqsymbol@{"/-"}{\not-} + +\newqsymbol@{"="}{=} +\newqsymbol@{"=@"}{\genericarrowfill===} +\newqsymbol@{"/="}{\not=} + +\newqsymbol@{"3-"}\equiv +\newqsymbol@{"3-@"}{\genericarrowfill\equiv\equiv\equiv} +\newqsymbol@{"3/-"}{\not\equiv} + +\newqsymbol@{"~"}\sim +\newqsymbol@{"2~"}\approx + +\ifoldcm@\else +\newqsymbol@{"<-"}\leftarrow \newqsymbol@{"<-!"}\longleftarrow +\newqsymbol@{"<-@"}\leftarrowfill +\fi +\newqsymbol@{"<="}\Leftarrow \newqsymbol@{"<=!"}\Longleftarrow +\newqsymbol@{"<=@"}{\genericarrowfill\Leftarrow==} + +\newqsymbol@@{"<3"}\Lleftarrow +\ifx\Llefttarrow\undefined\else + \newqsymbol@{"<3@"}{\genericarrowfill\Lleftarrow\equiv\equiv}\fi + +\ifoldcm@\else +\newqsymbol@{""}\rightarrow \newqsymbol@{"-!>"}\longrightarrow +\newqsymbol@{"->@"}\rightarrowfill +\fi +\newqsymbol@{"=>"}\Rightarrow \newqsymbol@{"=!>"}\Longrightarrow +\newqsymbol@{"=>@"}{\genericarrowfill==\Rightarrow} + +\newqsymbol@@{"3>"}\Rrightarrow +\ifx\Rrightarrow\undefined\else + \newqsymbol@{"3>@"}{\genericarrowfill\equiv\equiv\Rrightarrow}\fi + +\ifoldcm@\else +\newqsymbol@@{"-/>"}\nrightarrow +\fi +\newqsymbol@@{"=/>"}\nRightarrow + +\ifoldcm@\else +\newqsymbol@{"<->"}\leftrightarrow \newqsymbol@{"<-!>"}\longleftrightarrow +\newqsymbol@{"<->@"}{\genericarrowfill\leftarrowfill-\rightarrowfill} +\fi +\newqsymbol@{"<=>"}\Leftrightarrow \newqsymbol@{"<=!>"}\Longleftrightarrow +\newqsymbol@{"<=>@"}{\genericarrowfill\Leftarrowfill=\Rightarrowfill} + +\ifoldcm@\else +\newqsymbol@@{""}\nleftrightarrow +\fi +\newqsymbol@@{""}\nLeftrightarrow + +\ifoldcm@\else +\newqsymbol@@{"<-|"}\mapsfrom \newqsymbol@@{"<-!|"}\longmapsfrom +\ifx\mapsfrom\undefined + \newqsymbol@{"<-|@"}{\genericarrowfill\leftarrow-\mapsfromchar}\fi +\fi +\newqsymbol@@{"<=|"}\Mapsfrom \newqsymbol@@{"<=!|"}\Longmapsfrom +\ifx\Mapsfrom\undefined + \newqsymbol@{"<=|@"}{\genericarrowfill\Leftarrow=\Mapsfromchar}\fi + +\ifoldcm@\else +\newqsymbol@{"|->"}\mapsto \newqsymbol@@{"|-!>"}\longmapsto +\newqsymbol@{"|->@"}{\genericarrowfill\mapstochar-\rightarrow} +\fi +\newqsymbol@@{"|=>"}\Mapsto \newqsymbol@@{"|=!>"}\Longmapsto +\ifx\Mapsto\undefined + \newqsymbol@{"|=>@"}{\genericarrowfill\Mapstochar=\Rightarrow}\fi + +\ifoldcm@\else +\newqsymbol@{"<-'"}\hookleftarrow +\newqsymbol@{"<-'@"}{\genericarrowfill\leftarrow-\rhook} + +\newqsymbol@{"`->"}\hookrightarrow +\newqsymbol@{"`->@"}{\genericarrowfill\lhook-\rightarrow} + +\newqsymbol@{"^<-"}\leftharpoonup \newqsymbol@{"^->"}\rightharpoonup +\newqsymbol@{"_<-"}\leftharpoondown \newqsymbol@{"_->"}\rightharpoondown +\fi + +\newqsymbol@@{"<--"}\dashleftarrow +\newqsymbol@@{"-->"}\dashrightarrow + +\ifoldcm@\else +\newqsymbol@{"<<-"}{\leftarrow\mkern-15mu\leftarrow} +\newqsymbol@{"<<-@"}{\genericarrowfill{\leftarrow\mkern-15mu\leftarrow}--} +\fi +\newqsymbol@{"<<="}{\Leftarrow\mkern-15mu\Leftarrow} +\newqsymbol@{"<<=@"}{\genericarrowfill{\Leftarrow\mkern-15mu\Leftarrow}==} + +\ifoldcm@\else +\newqsymbol@{"->>"}{\rightarrow\mkern-15mu\rightarrow} +\newqsymbol@{"->>@"}{\genericarrowfill--{\rightarrow\mkern-15mu\rightarrow}} +\fi +\newqsymbol@{"=>>"}{\Rightarrow\mkern-15mu\Rightarrow} +\newqsymbol@{"=>>@"}{\genericarrowfill=={\Rightarrow\mkern-15mu\Rightarrow}} + +\newqsymbol@@{"<~"}\leftsquigarrow \newqsymbol@@{"~>"}\rightsquigarrow +\newqsymbol@@{"<~>"}\leftrightsquigarrow + +\ifoldcm@\else +\newqsymbol@@{"<-<"}\leftarrowtail +\newqsymbol@@{">->"}\rightarrowtail +\fi + +\newqsymbol@@{"<|-"}\leftarrowtriangle +\newqsymbol@@{"<|-@"}{\genericarrowfill\leftarrowtriangle--} + +\newqsymbol@@{"-|>"}\rightarrowtriangle +\newqsymbol@@{"-|>@"}{\genericarrowfill--\rightarrowtriangle} + +\newqsymbol@@{"<|-|>"}\leftrightarrowtriangle +\newqsymbol@@{"<|-|>@"}{\genericarrowfill\leftarrowtriangle-\rightarrowtriangle} + +\newqsymbol@@{"-o"}\multimap +\newqsymbol@@{"-o@"}{\genericarrowfill--\multimap} + +\newqsymbol@@{"|-"}\vdash \newqsymbol@@{"|/-"}\nvdash +\newqsymbol@@{"||-"}\Vdash \newqsymbol@@{"||/-"}\nVdash +\newqsymbol@@{"|="}\vDash \newqsymbol@@{"|/="}\nvDash +\newqsymbol@@{"-|"}\dashv + +\def\genericarrowfill#1#2#3{$\m@th\mathord{#1}\mkern-6mu% + \cleaders\hbox{$\mkern-2mu\mathord{#2}\mkern-2mu$}\hfill + \mkern-6mu\mathord{#3}$} + +\fi + +% Xy-pic additions... + +\ifx\xyloaded\undefined \def\inxy@{TF}\else + +\newdir{|>}{!/+4.6pt/\dir{|}*:(1,-.2)\hbox{\qNoTips\dir^{>}}% + *:(1,+.2)\hbox{\qNoTips\dir_{>}}} + +\newdir{<|}{!/-4.6pt/\dir{|}*:(1,-.2)\hbox{\qNoTips\dir_{<}}% + *:(1,+.2)\hbox{\qNoTips\dir^{<}}} + +\newdir{`}{\dir^{(}} +\newdir{'}{\dir^{)}} + +\newdir{/}{:(1,-.3)\dir3{|}} + +% DIAGRAMS: make `... work in Xy-graphs also: + +\let\qsymbolsGRAPH@=\GRAPH@ + +\def\GRAPH@{% + \ifx `\next \DN@`{\ingraph@true\active@q}% + \else \let\next@=\qsymbolsGRAPH@ \fi \next@} + +\fi + +%% Restore possibly active " :-) + +\restoredbl@ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% END. + +\endinput + +% $Log: qsymbols.sty,v $ +% Revision 1.12 1997/01/07 23:56:44 krisrose +% Spacing bug with debugging fixed. +% +% Revision 1.11 1997/01/06 18:55:01 krisrose +% Deactivate " after ``. +% +% Revision 1.10 1996/12/17 18:26:33 krisrose +% Fixed bugs with new stretchable arrows. +% +% Revision 1.9 1996/12/05 04:29:15 krisrose +% Handles sub/superscripts without Xy-pic. +% Cleaned up & ready for Xy-pic version 3.3. +% +% Revision 1.8 1995/05/09 17:27:33 kris +% Intermediate. +% Arrow group decorations now properly measured. +% Bug fixes. +% +% Revision 1.7 1994/12/12 01:29:28 kris +% Updates for Xy-pic v3 in progress... +% +% Revision 1.6 1994/11/16 14:05:40 kris +% Intermediate version fits internal Xy-pic... +% +% Revision 1.5 1994/10/28 18:19:36 kris +% Added '{..} and documented "...{...}..." . +% +% Revision 1.4 1994/10/28 15:08:17 kris +% Added boldsymbol support. +% +% Revision 1.3 1994/10/26 16:47:02 kris +% Fixed a few things :-) +% +% Revision 1.2 1994/10/26 02:10:17 kris +% Integrated qarrow; use Xy-pic is an option. +% +% Revision 1.1 1994/10/24 22:55:12 kris +% Initial revision +% +% Extracted from kris.sty 1.9. + +% Tell Emacs what this is... +% Local Variables: +% mode:latex +% fill-column:77 +% End: diff --git a/macros/latex/contrib/qsymbols/qsymbols.tex b/macros/latex/contrib/qsymbols/qsymbols.tex new file mode 100644 index 0000000000..79a4df6d2d --- /dev/null +++ b/macros/latex/contrib/qsymbols/qsymbols.tex @@ -0,0 +1,494 @@ +% $Id: qsymbols.tex,v 1.8 1996/12/05 04:27:20 krisrose Exp $ +% +% `Quoted math symbol abbreviations' package for LaTeX2e. +% Copyright © 1994 Kristoffer H. Rose +% +% This 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. +% +% This 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. +% +\NeedsTeXFormat{LaTeX2e} +\documentclass[a4paper]{article} +\usepackage{shortvrb} \let\|=| \MakeShortVerb\| +\usepackage{amsmath} + +%\usepackage[debug]{qsymbols} +\usepackage[xy,curve,matrix,oldcm,debug]{qsymbols} +%\usepackage[purexy,curve,matrix,debug]{qsymbols} + +\newcommand\QSYMBOLS{\texttt{qsymbols}} +\newcommand\AMS{{\the\textfont2 A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} + +\ifx\Xy\undefined + \newcommand{\Xy}{\leavevmode + \hbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}}} + \newcommand{\xymatrix}[1]{} +\fi + +\begin{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title{ Summary of \QSYMBOLS } + +\author{Kristoffer H.~Rose% + \thanks{E-mail: \texttt{kris\@diku.dk}, + W3~URL: \texttt{http://www.diku.dk/users/kris/}.}} + +\date{Version \qsymbolsversion\ $\langle$\qsymbolsdate$\rangle$} + +\maketitle + +\begin{abstract}\noindent + \QSYMBOLS\ is a \LaTeX~\cite{L94:LaTeX} package defining systematic + mnemonic abbreviations, starting with a single open quote |`| for symbols, + and in double quotes |"|\dots|"| for arrows, for characters from the + |amssymb| and |stmaryrd| fonts. Optionally a very large class of arrows + can be typeset using the \Xy-pic package. +\end{abstract} + +\tableofcontents + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Introduction} + +\QSYMBOLS\ sets up a number of mnemonic and compact abbreviations for math +symbols from \LaTeX\ and the packages \texttt{amssymb} and \texttt{stmaryrd}, +which it loads. The abbreviations all start with the backquote character |`| +except for arrows that are of the form |"->"|. Some are a single characters, +some a more complicated pattern, but always the idea is to use abbreviations +that hint at the \textit{visual} appearance of the symbol. Finally it is +possible for the user to add more abbreviations of the simpler categories. + +You can retrieve \QSYMBOLS\ as well as the \texttt{amssymb} and +\texttt{stmaryrd} packages by anonymous ftp from all CTAN archives in +directory \texttt{/tex-archive\slash macros\slash latex\slash contrib\slash + supported/}\footnote{The `home' of \QSYMBOLS\ is \texttt{ftp.diku.dk} in + directory \texttt{/diku/users/kris/TeX/qsymbols/}.} (each package has its +own subdirectory). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Simple symbols} + +\subsection{Greek letters} + +All the standard greek letters used in math are available as |`| followed by +a letter: either lowercase: +\[ +\begin{array}{\|r\|*{25}{@{\hspace{1ex}}c}\|} + \hline + x &|a|&|b|&|c|&|d|&|e|&|f|&|g|&|h|&|i|&|j|&|k|&|l|&|m|&|n|&|p|&|q| + &|r|&|s|&|t|&|u|&|v|&|w|&|x|&|y|&|z|\\ + \hline + |`|x &`a &`b &`c &`d &`e &`f &`g &`h &`i &`j &`k &`l &`m &`n &`p &`q + &`r &`s &`t &`u &`v &`w &`x &`y &`z \\ +\hline +\end{array} +\] +or uppercase: +\[ +\begin{array}{\|r\|*{11}c\|} + \hline + X &|D|&|F|&|G|&|J|&|L|&|P|&|Q|&|S|&|W|&|X|&|Y|\\ + \hline + |`|X &`D &`F &`G &`J &`L &`P &`Q &`S &`W &`X &`Y \\ + \hline +\end{array} +\] + +\subsection{Common symbols} + +Simple symbols are available using |`| followed by a symbolic representation +of the symbol. The most common have single character representations: +\[ +\begin{array}{\|r\|*{18}{@{\hspace{.5pc}}c}\|} + \hline + x +&|+|&|*|&|:|&|;|&|/|&|U|&|C|&|_|&|T|&|o|&|.|&|=|&|~|&|E|&|A|&|!|&|^|&|V|\\ + \hline + |`|x +&`+ &`* &`: &`; &`/ &`U &`C &`_ &`T &`o &`. &`= &`~ &`E &`A &`! &`^ &`V \\ + \hline +\end{array} +\] + +\subsection{Circled and Boxed Symbols} + +These are represented using round and square brackets, respectively: +\[ +\begin{array}{\|r\|*{20}{@{\hspace{.5pc}}c}\|} +\hline + x| |& & |+|& |-|& |`*|& |/|& \| & |`/|&|`.|& |*|& |`o| + & |`^|& |`V|& |<|& |>|& |?|& |!|& |:-|& |R|& |C|& |a| \\ +\hline +|`(|x|)|&`()&`(+)&`(-)&`(`*)&`(/)&\varobar&`(`/)&`(`.)&`(*)&`(`o) + &`(`^)&`(`V)&`(<)&`(>)&`(?)&`(!)&`(:-)&`(R)&`(C)&`(a) \\ +\hline +|`[|x|]|&`[]&`[+]&`[-]&`[`*]&`[/]&\boxbar &`[`/]&`[`.]&`[*]&`[`o] + &`[`^]&`[`V]&`[<]&`[>]&`[?]&`[!]&`[:-]&`[R]&`[C]&`[a] \\ +\hline +|`<|x|>|&`<>&`<+>&`<->&`<`*>&`& &`<`/>&`<`.>&`<*>&`<`o> + &`<`^>&`<`V>& & &`&`&`<:->&`&`&` \\ +\hline +|`{|x|}|&`{}&`{+}&`{-}&`{`*}&`{/}& &`{`/}&`{`.}&`{*}&`{`o} + &`{`^}&`{`V}& & &`{?}&`{!}&`{:-}&`{R}&`{C}&`{a} \\ +\hline +\end{array} +\] +As it can be seen, `undefined' codes of the forms |`(a)| and |`[a]| result in +the contents being circled and boxed, respectively. + +\subsection{Bold symbols} + +The \AMS-\LaTeX\ |\boldsymbol| command is available by using the special +abbreviation |`@|$x$ for the bold version $`@x$ of $x$ as well as |`@`|$x$ +where $x$ is on one of the forms described in this section, i.e., |`@`a| +gives~$`@`a$. + +\subsection{Adding new symbols} + +Symbols of all the above forms can be added using the form +$$ +|\newqsymbol|~|{`|\mbox{\it code}|}|~|{|\mbox{\it expansion}|}| +$$ which makes |`|\textit{code} behave as \textit{expansion} in math mode. +\textit{code} should be either a single character or some characters enclosed +in |()|, |[]|, |<>|, or |{}|. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Orderings} + +Two to four consecutive |`|s indicate an ordering relation: +\[ +\def\e{\epsilon} +\def\be{{\backepsilon}} +\begin{array}{\|c\|*6{@{\hspace{\jot}}c}\|*6{@{\hspace{\jot}}c}\|} + \hline + \e,\be &|``|\e &|``/|\e &|``|\e|=| &|``/|\e|=| &|```|\e &|````|\e + &|``|\be &|``/|\be &|``|\be|=| &|``/|\be|=| &|```|\be &|````|\be \\ + \hline + |<|,|>| & ``< & ``/< & ``<= & ``/<= & ```< & ````< + & ``> & ``/> & ``>= & ``/>= & ```> & ````> \\ + |(|,|)| & ``( & ``/( & ``(= & ``/(= & ```( & ````( + & ``) & ``/) & ``)= & ``/)= & ```) & ````) \\ + |[|,|]| & ``[ & ``/[ & ``[= & ``/[= & ```[ & ````[ + & ``] & ``/] & ``]= & ``/]= & ```] & ````] \\ + |\{|,|\}| & ``\{ & ``/\{ & ``\{= & ``/\{= & ```\{ & ````\{ + & ``\} & ``/\} & ``\}= & ``/\}= & ```\} & ````\} \\ + |\<|,|\>| & ``\< & ``/\< & ``\<= & ``/\<= & ```\< & ````\< + & ``\> & ``/\> & ``\>= & ``/\>= & ```\> & ````\> \\ + | ~|,|\~| & ``~ & ``/~ & ``~= & ``/~= & ```~ & ````~ + & ``\~ & ``/\~ & ``\~= & ``/\~= & ```\~ & ````\~ \\ + |(-|,|-)| & ``(- & ``/(- & ``(-= & ``/(-= & ```(- & ````(- + & ``-) & ``/-) & ``-)= & ``/-)= & ```-) & ````-) \\ + |(+|,|+)| & ``(+ & ``/(+ & ``(+= & ``/(+= & ```(+ & ````(+ + & ``+) & ``/+) & ``+)= & ``/+)= & ```+) & ````+) \\ + \hline +\end{array} +\] +Some abbreviations are provided for convenience: +\[ +\begin{array}{\|r\|*{4}c\|} +\hline +x & |U|& |V|& |S|& |P|\\ +\hline +|``|x &``U &``V &``S &``P \\ +\hline +\end{array} +\] +There is no simple way to add more orderings. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Arrows} + +Double quotes |"|\dots|"| make it possible to typeset arrows. On some +systems |"| is reserved for other uses, in that case you can use |`"|\dots|"| +instead. + +\subsection{Canned arrows} + +The available arrows are shown in figure~\ref{f.canned-arrows} where $!$ +means that the arrow is available in a long version by adding a |!| just +after the stem character (one of |-=|), and |?| means that it stretches to +accomodate labels (when no |!|s are given, see below). + +\begin{figure*}[ht] +$$ +\begin{array}{\|ccl\|ccl\|ccl\|} +\hline +\verb;"<-"; &`"<-" &!@&\verb;"<->";&`"<->"&!&\verb;"->";&`"->"&!@ \\ +\verb;"<="; &`"<=" &!@&\verb;"<=>";&`"<=>"&!&\verb;"=>";&`"=>"&!@ \\ +\verb;"<3"; &`"<3" &@ &&& &\verb;"3>";&`"3>"&@ \\ +\verb;"";&`""& &\verb;"-/>";&`"-/>"& \\ +\verb;"";&`""& &\verb;"=/>";&`"=/>"& \\ +\hline +\verb;"^<-";&`"^<-"& &&& &\verb;"^->";&`"^->"& \\ +\verb;"_<-";&`"_<-"& &&& &\verb;"_->";&`"_->"& \\ +\hline +\verb;"<-|";&`"<-|"&!@&&& &\verb;"|->";&`"|->"&!@\\ +\verb;"<=|";&`"<=|"&!@&&& &\verb;"|=>";&`"|=>"&!@\\ +\hline +\verb;"<-'";&`"<-'"&@&&& &\verb;"`->";&`"`->"&@\\ +\verb;"<-<";&`"<-<"& &&& &\verb;">->";&`">->"& \\ +\hline +\verb;"<|-";&`"<|-"&@&\verb;"<|-|>";&`"<|-|>"&@&\verb;"-|>";&`"-|>"&@\\ +&& &&& &\verb;"-o";&`"-o" &@\\ +\hline +\verb;"<--";&`"<--"& &&& &\verb;"-->";&`"-->"& \\ +&& &\verb;"<~>";&`"<~>"& &\verb;"~>";&`"~>"& \\ +\hline +\verb;"<<-";&`"<<-"&@&&& &\verb;"->>";&`"->>"&@\\ +\verb;"<<=";&`"<<="&@&&& &\verb;"=>>";&`"=>>"&@\\ +\hline +\hline +\verb;"|-";&`"|-"& &\verb;"|/-";&`"|/-"& &\verb;"-|";&`"-|"& \\ +\verb;"|=";&`"|="& &\verb;"|/=";&`"|/="& &&& \\ +\verb;"||-";&`"||-"& &\verb;"||/-";&`"||/-"&&&& \\ +\hline +\end{array} +$$ +\caption{Standard `canned' arrow symbols.} +\label{f.canned-arrows} +\end{figure*} + +\subsection{Labelling arrows} + +Inserting |{^|$s$|}| or |{_|$s$|}|, where $s$ is a legal super- or subscript, +respectively, will typeset these as limits, and even grows it in those cases +where the arrow is marked with a ``@'' in the table. +\[ +\begin{array}{\|c\|*3c\|} + \hline + x &|-{_1}>|&|3>{^{`a`.`b}}|&{\verb,<|-|>{_{\mbox{push}}},}\\ + \hline + |"|x|"| &"-{_1}>"&"3>{^{`a`.`b}}"& "<|-|>{_{\mbox{push}}}"\\ + \hline +\end{array} +\] + +\subsection{Adding new arrows} + +You can add more `canned' arrows of this kind with commands +$$ +|\newqsymbol|~|{"|\mbox{\it arrow}|"}|~|{|\mbox{\it expansion}|}| +$$ +which makes |"|\textit{arrow}|"| behave as \textit{expansion} in math mode. + +Similarly, you can add stretchable arrows using commands of the form +$$ +|\newqsymbol|~|{"|\mbox{\it arrow}|@"}|~|{|\mbox{\it filler}|}| +$$ which makes |"|\textit{arrow}|"| stretch under long labels as +\textit{filler} dictates: this should behave as the plain \TeX\ command +|\rightarrowfill| or use the macro +$$ +|\genericarrowfill{|\textit{tail}|}{|\textit{leader}|}{|\textit{head}|}| +$$ +\QSYMBOLS\ includes, for example, the declaration +$$ +|\newqsymbol{"3>@"}{\genericarrowfill\equiv\equiv\Rrightarrow}| +$$ + +\subsection{Using \Xy-pic for arrows} + +If the option |[xy]| is used in the |\usepackage| command, or if +\Xy-pic~\cite{R94:Xy-picRM}\footnote{\Xy-pic version~3 is needed for this to + work.} is already loaded, then the \Xy-pic arrow feature (with the `cmtip' +extension) is used to allow a much more general class of arrows. + +First, all blank entries in figure~\ref{f.canned-arrows} are filled; if the +option |[purexy]| is used instead of |[xy]| then all the entries of the table +are replaces with \Xy-pic generated arrows (this gives a somewhat more +homogenous look and avoids loading of |ams| and |stmary| arrows). + +Second, general arrows can be constructed according to the following rules: +\begin{itemize} + +\item Basic arrows are composed by combining the variants + |23^_|, the tips |<>|\verb,|,|xo`'|, and the connectors |-=.:~|. + +\item The character |/| `negates' the arrow (once or twice) similar to the + way |\not| does for relations: + \[ + \begin{array}{\|c\|*2c\|} + \hline + x &|`-/>|&|=//!>| \\ + \hline + \mbox{\tt "}x\mbox{\tt "} &"`-/>"&"=//!>"\\ + \hline + \end{array} + \] + +\item Each |!| character makes the arrow a bit longer. + \[ + \begin{array}{\|c\|*4c\|} + \hline + x &|->|&|-!>|&|-!!>| &|-!!!>| \\ + \hline + \mbox{\tt "}x\mbox{\tt "} &"->"&"-!>"&"-!!>" &"-!!!>" \\ + \hline + \end{array} + \] + \textit{Note}: Some arrows are automatically made a bit longer, e.g., the + |<~>| arrow shown above. + +\item The form |*|\emph{object} inserts the \Xy-pic \emph{object} which will + be used for the tail, shaft, or tip as indicated by the position. Here are + some examples: + \[ + \begin{array}{\|c\|*2c\|} + \hline + x &|*{x}-*{y}!|&\verb+*{}*{*}|!!+\\ + \hline + |"|x|"| &"*{x}-*{y}!"& "*{}*{*}|!!"\\ + \hline + \end{array} + \] + as in the examples it is recommended to specify all three of tail, shaft, + and head, when using this, in particular an empty tail when the shaft is + specified with |*| because otherwise it is taken as the tail. + +\item The forms |(|$x$|)| and |[|$x$|]| insert a break with $x$ in a + circle and box, respectively: + \[ + \begin{array}{\|c\|*2c\|} + \hline + x &|(1)>|&|[1]>>|\\ + \hline + |"|x|"| &"(1)>"&"[1]>>"\\ + \hline + \end{array} + \] + +\item The special code |{|$\ell$|}| adds the $\ell$ material to the end of + the \Xy-pic arrow: All \Xy-pic $\langle$labels$\rangle$ can be used as + described in~\cite[\S16]{R94:Xy-picRM}, for example, + \[ + \begin{array}{\|c\|*1c\|} + \hline + x &\verb,={|{`b}}!!|>,\\ + \hline + |"|x|"| & "={|{`b}}!!|>"\\ + \hline + \end{array} + \] + Use this with care! + +\item Similarly the special code |@{|$\ell$|}| adds the $|@|\ell$ material + (note the omission of the braces) to the beginning of the \Xy-pic arrow: + all \Xy-pic arrow $\langle$form$\rangle$s can be used
to the + beginning of the arrow specification; this can be used to as described + in~\cite[\S16]{R94:Xy-picRM}, for example, + \[ + \begin{array}{\|c\|*2c\|} + \hline + x &\verb;|-@{/^/}!!!>|; &\verb;->!!!!@{(dr,ul)};\\ + \hline + |"|x|"| + & "|-@{/^/}!!!>|" & "->!!!!@{(dr,ul)}"\\ + \hline + \end{array} + \] + Use this with care! + +\end{itemize} + +\subsection{Using \protect\QSYMBOLS\ arrows in \protect\Xy-pic diagrams} + +Finally it is possible to some extent to use \QSYMBOLS\ arrows in \Xy-pic +matrices (as described in the \Xy-pic User's Guide~\cite{R94:Xy-picUG}) and +graphs (as described in the \Xy-pic Reference +Manual~\cite[\S19]{R94:Xy-picRM}). First notice that you should always use +the |`"|\dots|"| form. Second, the entire |`"|\dots|"| construction behaves +as an arrow made with |\ar| for matrices and |:| for graphs, that is, you +must add a `target address' for the arrow after it. Further information of +this can be found + +Here is the canonical pull-back example diagram from category theory typeset +using qsymbols: +\begin{verbatim} + \xymatrix{ + U `"->"@/_/[ddr]_y `".>"[dr]|-{(x,y)} `"->"@/^/[drr]^x \\ + & X \times_Z Y `"=>"[d]^q `"=>"[r]_p & X `"=>"[d]_f \\ + & Y `"=>"[r]^g & Z } +\end{verbatim} +typesets +\begin{displaymath} + \xymatrix{ + U `"->"@/_/[ddr]_y `".>"[dr]|-{(x,y)} `"->"@/^/[drr]^x \\ + & X \times_Z Y `"=>"[d]^q `"=>"[r]_p & X `"=>"[d]_f \\ + & Y `"=>"[r]^g & Z } +\end{displaymath} +As you can see, \Xy-pic is loaded by \QSYMBOLS\ and as a convenience \Xy-pic +options may be passed to \QSYMBOLS. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{thebibliography}{1} + +\bibitem{L94:LaTeX} +Leslie Lamport. +\newblock {\em {\LaTeX}---A Document Preparation System}. +\newblock Addison-Wesley, 2nd edition, 1994. + +\bibitem{R94:Xy-picUG} +Kristoffer~H. Rose. +\newblock {\Xy}-pic user's guide. +\newblock Mathematics Report 94--148, MPCE, Macquarie University, NSW 2109, + Australia, June 1994. +\newblock For version 2.10+. Latest version available with URL {\tt + ftp://ftp.diku.dk\slash diku\slash users\slash kris\slash TeX\slash xy\slash + xyguide.ps}. + +\bibitem{R94:Xy-picRM} +Kristoffer~H. Rose and Ross Moore. +\newblock {\Xy}-pic reference manual. +\newblock Mathematics Report 94--155, MPCE, Macquarie University, NSW 2109, + Australia, June 1994. +\newblock For version 2.10+. Latest version available by anonymous ftp in {\tt + ftp.diku.dk: /diku\slash users\slash kris\slash TeX\slash xyrefer.ps.Z}. + +\end{thebibliography} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\end{document} + +% $Log: qsymbols.tex,v $ +% Revision 1.8 1996/12/05 04:27:20 krisrose +% Handles sub/superscripts without Xy-pic; cleaned up. +% +% Revision 1.7 1994/12/12 01:29:28 kris +% Updates for Xy-pic v3 in progress... +% +% Changed `" to `@ and made `" = ". +% +% Revision 1.5 1994/10/28 18:19:28 kris +% Added '{..} and documented "...{...}..." . +% +% Revision 1.4 1994/10/28 15:08:46 kris +% Added boldsymbol support. +% +% Revision 1.3 1994/10/26 16:47:07 kris +% Fixed a few things :-) +% +% Revision 1.2 1994/10/26 02:10:17 kris +% Integrated qarrow; use of Xy-pic is an option. +% +% Revision 1.1 1994/10/24 22:55:12 kris +% Initial revision +% +% From kris-sty.tex 1.4. -- cgit v1.2.3