% $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.