summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/qsymbols
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/qsymbols
Initial commit
Diffstat (limited to 'macros/latex/contrib/qsymbols')
-rw-r--r--macros/latex/contrib/qsymbols/CATALOG15
-rw-r--r--macros/latex/contrib/qsymbols/COPYING339
-rw-r--r--macros/latex/contrib/qsymbols/MANIFEST7
-rw-r--r--macros/latex/contrib/qsymbols/Makefile110
-rw-r--r--macros/latex/contrib/qsymbols/README30
-rw-r--r--macros/latex/contrib/qsymbols/qsymbols.pdfbin0 -> 148244 bytes
-rw-r--r--macros/latex/contrib/qsymbols/qsymbols.sty854
-rw-r--r--macros/latex/contrib/qsymbols/qsymbols.tex494
8 files changed, 1849 insertions, 0 deletions
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.
+
+ <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/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 <kris@diku.dk>
+#
+# 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 <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/macros/latex/contrib/qsymbols/qsymbols.pdf b/macros/latex/contrib/qsymbols/qsymbols.pdf
new file mode 100644
index 0000000000..311aea9046
--- /dev/null
+++ b/macros/latex/contrib/qsymbols/qsymbols.pdf
Binary files 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 <kris@diku.dk>
+%
+% 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@{"</-"}\nleftarrow
+\fi
+\newqsymbol@@{"</="}\nLeftarrow
+
+\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 <dir> 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 "...{...}..." <labels>.
+%
+% 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 <kris@diku.dk>
+%
+% 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>& & &`<?>&`<!>&`<:->&`<R>&`<C>&`<a> \\
+\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;"</=";&`"</="& &\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 <form> 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 "...{...}..." <labels>.
+%
+% 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.