%%% ====================================================================
%%%  @LaTeX-file{
%%%     author          = "Scott Pakin",
%%%     version         = "7.0",
%%%     date            = "08 October 2002",
%%%     time            = "13:02:17 MDT",
%%%     filename        = "symbols.tex",
%%%     checksum        = "14588 6070 19232 230710",
%%%     email           = "pakin@uiuc.edu (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "symbols, LaTeX, typesetting, accents,
%%%                        mathematical, scientific, dingbats",
%%%     supported       = "yes",
%%%     abstract        = "This document lists thousands of symbols and
%%%                        the corresponding LaTeX commands that
%%%                        produce them.  Some of these symbols are
%%%                        guaranteed to be available in every LaTeX2e
%%%                        system; others require fonts and packages
%%%                        that may not accompany a given distribution
%%%                        and that therefore need to be installed.
%%%                        All of the fonts and packages used to
%%%                        prepare this document -- as well as this
%%%                        document itself -- are freely available
%%%                        from the Comprehensive TeX Archive Network
%%%                        (http://www.ctan.org).",
%%%     docstring       = "This LaTeX document showcases thousands of
%%%                        symbols that are available to authors.  The
%%%                        original version of this document was
%%%                        written by David Carlisle on 1994/10/02.
%%%                        It was subsequently changed and expanded by
%%%                        Scott Pakin.
%%%
%%%                        To build this document, run ``latex
%%%                        symbols'', then ``makeindex -s gind.ist
%%%                        symbols'', then two more ``latex symbols''
%%%                        commands.  This ensures the stability of
%%%                        all generated content (tables, references,
%%%                        etc.)
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by
%%%                        the equivalent of the standard UNIX wc
%%%                        (word count) utility output of lines,
%%%                        words, and characters.  This is produced by
%%%                        Robert Solovay's checksum utility.  This file
%%%                        header was produced with the help of Nelson
%%%                        Beebe's filehdr utility.  Both checksum and
%%%                        filehdr are available from CTAN
%%%                        (http://www.ctan.org)."
%%%  }
%%% ====================================================================

\NeedsTeXFormat{LaTeX2e}

\documentclass{article}
\usepackage{array}
\usepackage{longtable}
\usepackage{textcomp}
\usepackage{latexsym}
\usepackage{varioref}
\usepackage{xspace}
\usepackage{makeidx}
\usepackage{verbatim}

\newcommand{\doctitle}{Comprehensive \LaTeX\ Symbol List}  % Reusable
\title{The \doctitle}

\author{\person{Scott}{Pakin} \texttt{<pakin@uiuc.edu>}%
  \thanks{The original version of this document was written by
    \person{David}{Carlisle}, with several additional tables provided by
    \person{Alexander}{Holt}.  See Section~\vref{about-doc} for more
    information about who did what.}}
\date{8 October 2002}

\makeindex

%%%
%%% TO-DO LIST
%%%   * Proofread, especially looking for symbols defined by more
%%%     than one symbol set or symbols that should be in a table
%%%     but aren't.
%%%   * Figure out how to make this file play nice with hyperref.
%%%   * Add more symbol tables.  (Did we miss any common, standard, or
%%%     useful ones?)
%%%   * Further index symbols by _description_ (e.g., "perpendicular"
%%%     for "\perp").  This would be really useful, but extremely
%%%     time-consuming to do.  Note that Adobe's Web site has a list
%%%     of the names of all the Zapf Dingbats characters.  Unfortunately,
%%%     these names can be rather long, like "notched upper right-shadowed
%%%     white rightwards arrow" for \ding{241}.
%%%   * Find some way to associate each package with a flag indicating
%%%     whether the corresponding fonts are in bitmapped or vector
%%%     format.
%%%   * Verify that there aren't any missing symbols in the current
%%%     packages (especially after font upgrades).
%%%


% Index "X Y" and "Y, X".  The "begin" and "end" variants are for page ranges.
\newcommand{\idxboth}[2]{\mbox{}\index{#1 #2}\index{#2>#1}}
\newcommand{\idxbothbegin}[2]{\mbox{}\index{#1 #2|(}\index{#2>#1|(}}
\newcommand{\idxbothend}[2]{\mbox{}\index{#1 #2|)}\index{#2>#1|)}}

% Index logical styles.
\newcommand{\pkgname}[1]{%
  \textsf{#1}%
  \index{#1=\textsf{#1} (package)}%
  \index{packages>\textsf{#1}}}
\newcommand{\optname}[2]{%
  \textsf{#2}%
  \index{#2=\textsf{#2} (\textsf{#1} package option)}%
  \index{package options>\textsf{#2} (\textsf{#1})}}
\newcommand{\filename}[1]{%
  \texttt{#1}%
  \index{#1=\texttt{#1} (file)}}
\newcommand{\PSfont}[1]{%
  #1%
  \index{#1}%
  \index{fonts, PostScript>#1}%
  \index{PostScript fonts}%
}
\DeclareRobustCommand{\person}[2]{#1\index{#2, #1} #2}

% Index common words and phrases.
\newcommand{\latex}{\LaTeX\index{LaTeX=\string\LaTeX}\xspace}
\newcommand{\latexE}{\LaTeXe\index{LaTeX2e=\string\LaTeXe}\xspace}
\newcommand{\metafont}{\MF\index{Metafont=\string\MF}\xspace}
\newcommand{\tex}{\TeX\index{TeX=\string\TeX}\xspace}
\newcommand{\xypic}{%
  \mbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}-pic}%
  \index{Xy-pic=\mbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}-pic}}}
\newcommand{\TeXbook}{%
  The \TeX{}book\index{TeXbook, The=\TeX{}book, The}~\cite{Knuth:ct-a}\xspace}
\newcommand{\ctt}{%
  \texttt{comp.text.tex}%
  \index{comp.text.tex=\texttt{comp.text.tex} (newsgroup)}\xspace}
\newcommand{\fntenc}[1][]{%
  \def\firstarg{#1}%
  font encoding%
  \ifx\firstarg\empty%
    \index{font encodings}%
  \else
    \index{font encodings>\firstarg}%
  \fi
}
\newcommand{\selftex}{\expandafter\filename\expandafter{\jobname.tex}\xspace}
\newcommand{\fontdefdtx}{\filename{fontdef.dtx}\xspace}
\newcommand{\thanhhanthe}{Th\`anh, H\`an Th\diatop[\'|\^e]}   % "|" confuses MakeIndex.

% Index TeXbook symbols and the CTAN repository.
\newcommand{\idxTBsyms}{%
  \index{symbols>TeXbook=\TeX{}book}%
  \index{TeXbook, The=\TeX{}book, The>symbols from}%
}
\newcommand{\idxCTAN}{%
  \index{Comprehensive TeX Archive Network=Comprehensive \string\TeX{} Archive Network}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% There are a number of symbols (e.g., \Square) that are defined by      %
% multiple packages.  In order to typeset all the variants in this       %
% document, we have to give glyph a unique name.  To do that, we define  %
% \savesymbol{XXX}, which renames a symbol from \XXX to \origXXX, and    %
% \restoresymbols{yyy}{XXX}, which renames \origXXX back to \XXX and     %
% defines a new command, \yyyXXX, which corresponds to the most recently %
% loaded version of \XXX.                                                %
%                                                                        %

% Save a symbol that we know is going to get redefined.
\def\savesymbol#1{%
  \expandafter\let\expandafter\origsym\expandafter=\csname#1\endcsname
  \expandafter\let\csname orig#1\endcsname=\origsym
  \expandafter\let\csname#1\endcsname=\relax
}

% Restore a previously saved symbol, and rename the current one.
\def\restoresymbol#1#2{%
  \expandafter\let\expandafter\newsym\expandafter=\csname#2\endcsname
  \expandafter\global\expandafter\let\csname#1#2\endcsname=\newsym
  \expandafter\let\expandafter\origsym\expandafter=\csname orig#2\endcsname
  \expandafter\global\expandafter\let\csname#2\endcsname=\origsym
}

%                                                                        %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% Each of the packages used by this document is loaded conditionally.
% However, it might be nice to know if we have a complete set.  So we
% define \ifcomplete which starts true, but gets set to false if any
% package is missing.
\newif\ifcomplete
\completetrue


% \IfStyFileExists* is just like \IfFileExists, except that it appends
% ".sty" to its first argument.  \IfStyFileExists is the same as
% \IfStyFileExists*, but it additionally adds its first argument to a list
% (\missingpkgs) and marks the document as incomplete (with
% \completefalse) if the .sty file doesn't exist.
\makeatletter
\newcommand{\missingpkgs}{}
\newcommand{\foundpkgs}{}
\newcommand{\if@sty@file@exists@star}[3]{\IfFileExists{#1.sty}{#2}{#3}}
\newcommand{\if@sty@file@exists}[3]{%
  \IfFileExists{#1.sty}%
               {#2\@cons\foundpkgs{{#1}}}%
               {#3\completefalse\@cons\missingpkgs{{#1}}}
}
\newcommand{\IfStyFileExists}{%
  \@ifstar{\if@sty@file@exists@star}{\if@sty@file@exists}
}
\makeatother

% We get a few packages for free.
\makeatletter
\@cons\foundpkgs{{textcomp}}
\@cons\foundpkgs{{latexsym}}
\makeatother
\newcommand{\TC}{\pkgname{textcomp}}

% The following was taken from amsmath.sty.
\makeatletter
  \newcommand{\AmSfont}{%
    \usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil bb\else m\fi}{n}}
\makeatother
\providecommand{\AmS}{{\protect\AmSfont
  A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}

% Typeset a string in various encodings.
\newcommand{\encone}[1]{{\fontencoding{T1}\selectfont#1}}
\newcommand{\encfour}[1]{{\fontencoding{T4}\selectfont#1}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newif\ifAMS
\newcommand\AMS{\AmS\index{AMS=\AmS}}
\IfStyFileExists{amssymb}
  {\AMStrue
   \savesymbol{angle} \savesymbol{rightleftharpoons}
   \savesymbol{lefthapoondown} \savesymbol{rightharpoonup}
   \usepackage{amssymb}
   \restoresymbol{AMS}{angle} \restoresymbol{AMS}{rightleftharpoons}
   \restoresymbol{AMS}{lefthapoondown} \restoresymbol{AMS}{rightharpoonup}
  }
  {}

\newif\ifST
\newcommand\ST{\pkgname{stmaryrd}}
\IfStyFileExists{stmaryrd}
  {\STtrue
   \savesymbol{lightning}
   \savesymbol{bigtriangleup} \savesymbol{bigtriangledown}
   \usepackage{stmaryrd}
   \restoresymbol{ST}{lightning}
   \restoresymbol{ST}{bigtriangleup} \restoresymbol{ST}{bigtriangledown}
  }
  {}

\newif\ifEU
\IfStyFileExists{euscript}
  {\EUtrue\usepackage[mathcal]{euscript}
   \renewcommand{\mathcal}[1]{\mbox{\usefont{U}{eus}{m}{n}##1}}
  }
  {\let\CMcal\mathcal}

\newif\ifWASY
\newcommand\WASY{\pkgname{wasysym}}
\IfStyFileExists{wasysym}
  {\WASYtrue
   \savesymbol{lightning}
   \usepackage{wasysym}
   \restoresymbol{WASY}{lightning}
  }
  {}

\newif\ifPI
\newcommand\PI{\pkgname{pifont}}
\IfStyFileExists{pifont}
  {\PItrue\usepackage{pifont}}
  {}

\newif\ifMC
\newcommand\MC{\pkgname{mathcomp}}
\IfStyFileExists{mathcomp}
  {\MCtrue}
  {}

\newif\ifMARV
\newcommand\MARV{\pkgname{marvosym}}
\IfStyFileExists{marvosym}
  {\MARVtrue
   \savesymbol{Rightarrow}
   \usepackage{marvosym}[2000/05/01]  % Major rewrite at this version.
   \restoresymbol{marv}{Rightarrow}
  }
  {}

\newif\ifMAN
\newcommand\MAN{\pkgname{manfnt}}
\IfStyFileExists{manfnt}
  {\MANtrue\usepackage{manfnt}}
  {}

\newif\ifDING
\newcommand\DING{\pkgname{bbding}}
\IfStyFileExists{bbding}
  {\DINGtrue
   \savesymbol{Cross} \savesymbol{Square}
   \usepackage{bbding}
   \restoresymbol{ding}{Cross} \restoresymbol{ding}{Square}
  }
  {}

\newif\ifIFS
\newcommand\IFS{\pkgname{ifsym}}
\IfStyFileExists{ifsym}
  {\IFStrue
   \savesymbol{Letter} \savesymbol{Square} \savesymbol{Cross} \savesymbol{Sun}
   \savesymbol{TriangleUp} \savesymbol{TriangleDown} \savesymbol{Circle}
   \savesymbol{Lightning}
   \usepackage[alpine,clock,electronic,geometry,misc,weather]{ifsym}[2000/04/18]
   \restoresymbol{ifs}{Letter} \restoresymbol{ifs}{Square}
   \restoresymbol{ifs}{Cross} \restoresymbol{ifs}{Sun}
   \restoresymbol{ifs}{TriangleUp} \restoresymbol{ifs}{TriangleDown}
   \restoresymbol{ifs}{Circle} \restoresymbol{ifs}{Lightning}
  }
  {}

\newif\ifTIPA
\newcommand\TIPA{\pkgname{tipa}}
\IfStyFileExists{tipa}
  {\TIPAtrue\usepackage[safe]{tipa}}
  {}

% We use the *-form of \IfStyFileExists, because the package is named
% "wsuipa", while the .sty file is named "ipa.sty".
\makeatletter
\newif\ifWIPA
\newcommand\WIPA{\pkgname{wsuipa}}
\IfStyFileExists*{ipa}
  {\@cons\foundpkgs{{wsuipa}}
   \WIPAtrue
   \savesymbol{baro} \savesymbol{eth} \savesymbol{openo} \savesymbol{thorn}
   \usepackage{ipa}
   \restoresymbol{WSU}{baro}  \restoresymbol{WSU}{eth}
   \restoresymbol{WSU}{openo} \restoresymbol{WSU}{thorn}
  }
  {\completefalse\@cons\missingpkgs{{wsuipa}}}
\makeatother

\newif\ifULSY
\newcommand\ULSY{\pkgname{ulsy}}
\IfStyFileExists{ulsy}
  {\ULSYtrue\usepackage{ulsy}}
  {}

\newif\ifASP
\newcommand\ASP{\pkgname{ar}}
\IfStyFileExists{ar}
  {\ASPtrue\usepackage{ar}}
  {}

% pxfonts relies on txfonts (I think), so either package can be loaded.
% Note that txfonts/pxfonts redefine every LaTeX and AMS character,
% which is not what we want.  As a result, we have to rely on some
% serious trickery to prevent our old characters from getting redefined.
\newif\ifTX
\newcommand\TX{\pkgname{txfonts}}
\newcommand\PX{\pkgname{pxfonts}}
\newcommand\TXPX{\pkgname{txfonts}/\pkgname{pxfonts}}
\makeatletter
\IfStyFileExists{txfonts}
  {\TXtrue
   % Manually declare the new txfonts fonts.
   \DeclareSymbolFont{lettersA}{U}{txmia}{m}{it}
   \SetSymbolFont{lettersA}{bold}{U}{txmia}{bx}{it}
   \DeclareFontSubstitution{U}{txmia}{m}{it}
   \DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n}
   \SetSymbolFont{symbolsC}{bold}{U}{txsyc}{bx}{n}
   \DeclareFontSubstitution{U}{txsyc}{m}{n}
   \DeclareSymbolFont{largesymbolsA}{U}{txexa}{m}{n}
   \SetSymbolFont{largesymbolsA}{bold}{U}{txexa}{bx}{n}
   \DeclareFontSubstitution{U}{txexa}{m}{n}
   % Prevent txfonts from redeclaring any old fonts.
   \let\origDeclareMathAlphabet=\DeclareMathAlphabet
   \renewcommand{\DeclareMathAlphabet}[5]{}
   \let\origDeclareSymbolFont=\DeclareSymbolFont
   \renewcommand{\DeclareSymbolFont}[5]{}
   \let\origSetSymbolFont=\SetSymbolFont
   \renewcommand{\SetSymbolFont}[6]{}
   \let\origDeclareFontSubstitution=\DeclareFontSubstitution
   \renewcommand{\DeclareFontSubstitution}[4]{}
   % Load txfonts.
   \savesymbol{angle} \savesymbol{rightleftharpoons}
   \usepackage{txfonts}
   \restoresymbol{TX}{angle} \restoresymbol{TX}{rightleftharpoons}
   % Restore the old font commands.
   \global\let\DeclareSymbolFont=\origDeclareSymbolFont
   \global\let\SetSymbolFont=\origSetSymbolFont
   \global\let\DeclareFontSubstitution=\origDeclareFontSubstitution
   \global\let\DeclareMathAlphabet=\origDeclareMathAlphabet
   % Restore the default fonts.
   \renewcommand\rmdefault{cmr}
   \renewcommand\sfdefault{cmss}
   \renewcommand\ttdefault{cmtt}
   \ifAMS
     \DeclareMathAlphabet\mathfrak{U}{euf}{m}{n}
   \fi
   % Are \textcent, \textsterling, \mathcent, \mathsterling, \L, \l,
   % and \r the only symbols that get screwed up?
   \let\origtextcent=\textcent
   \gdef\textcent{{\fontencoding{TS1}\selectfont\origtextcent}}
   \let\origtextsterling=\textsterling
   \gdef\textsterling{{\fontencoding{TS1}\selectfont\origtextsterling}}
   \DeclareTextCommand{\L}{OT1}
     {\leavevmode\setbox\z@\hbox{L}\hb@xt@\wd\z@{\hss\@xxxii L}}
   \DeclareTextCommand{\l}{OT1}
     {{\@xxxii l}}
   \DeclareTextAccent{\r}{OT1}{23}
   \renewcommand{\mathcent}{\mbox{\usefont{OT1}{txr}{m}{n}\char"A2}}
   \renewcommand{\mathsterling}{\mbox{\usefont{OT1}{txr}{m}{n}\char"A3}}
  }
  {}
\makeatother

% Here's a real problem child: mathabx, which also redefines virtually
% every symbol provided by LaTeX2e and AMS.  We have to resort to our
% most devious trickery to get mathabx to load properly.
\newif\ifABX
\newcommand\ABX{\pkgname{mathabx}}
\let\origDeclareMathSymbol=\DeclareMathSymbol
\let\origDeclareMathDelimiter=\DeclareMathDelimiter
\let\origDeclareMathRadical=\DeclareMathRadical
\let\origDeclareMathAccent=\DeclareMathAccent
\makeatletter
  % Redefine \DeclareMathSymbol to stick "ABX" in front of each symbol name.
  \renewcommand{\DeclareMathSymbol}[4]{%
    \edef\newname{\expandafter\@gobble\string#1}
    \ifx\newname\@empty
    \else
      \edef\newname{ABX\newname}
      \expandafter\origDeclareMathSymbol\expandafter{%
        \csname\newname\endcsname}{#2}{#3}{#4}%
    \fi
  }
  % Do the same for \DeclareMathDelimiter.
  \def\DeclareMathDelimiter#1{%
    \edef\newname{\expandafter\@gobble\string#1}
    \def\eatfour##1##2##3##4{}%
    \def\eatfive##1##2##3##4##5{}%
    \ifx\newname\@empty
      \if\relax\noexpand#1%
        \def\next{\eatfive}
      \else
        \def\next{\eatfour}
      \fi
    \else
      \edef\newname{ABX\newname}
      \def\next{%
        \expandafter\origDeclareMathDelimiter\expandafter{%
          \csname\newname\endcsname}}
    \fi
    \next
  }
  % Do the same for \DeclareMathAccent.
  \renewcommand{\DeclareMathAccent}[4]{%
    \edef\newname{\expandafter\@gobble\string#1}
    \ifx\newname\@empty
    \else
      \edef\newname{ABX\newname}
      \expandafter\origDeclareMathAccent\expandafter{%
        \csname\newname\endcsname}{#2}{#3}{#4}%
    \fi
  }
  % Redefine \DeclareMathRadical to do nothing.
  \renewcommand{\DeclareMathRadical}[5]{}
\makeatother
\let\proofmode=1
\IfStyFileExists{mathabx}
  {\ABXtrue
   \savesymbol{not} \savesymbol{widering}\savesymbol{Moon}
   \savesymbol{notowner} \savesymbol{iint} \savesymbol{iiint}
   \savesymbol{oint} \savesymbol{oiint} \savesymbol{bigboxperp}
   \savesymbol{bigoperp} \savesymbol{boxedcirc} \savesymbol{boxeddash}
   \savesymbol{boxeedast} \savesymbol{boxperp} \savesymbol{boy}
   \savesymbol{Cap} \savesymbol{centerdot} \savesymbol{circledast}
   \savesymbol{circledcirc} \savesymbol{circleddash} \savesymbol{Cup}
   \savesymbol{curvearrowtopleft} \savesymbol{curvearrowtopleftright}
   \savesymbol{curvearrowtopright} \savesymbol{doteqdot}
   \savesymbol{geqslant} \savesymbol{gets} \savesymbol{girl}
   \savesymbol{Join} \savesymbol{land} \savesymbol{leqslant}
   \savesymbol{looparrowupleft} \savesymbol{looparrowupright}
   \savesymbol{lor} \savesymbol{lsemantic}
   \savesymbol{mayaleftdelimiter} \savesymbol{mayarightdelimiter}
   \savesymbol{ndivides} \savesymbol{nequiv} \savesymbol{ngeqslant}
   \savesymbol{ni} \savesymbol{nleqslant} \savesymbol{notni}
   \savesymbol{notowns} \savesymbol{notsign} \savesymbol{operp}
   \savesymbol{rsemantic} \savesymbol{sqCap} \savesymbol{sqCup}
   \savesymbol{to} \savesymbol{ulsh} \savesymbol{ursh}
   \savesymbol{overbrace} \savesymbol{underbrace}
   \savesymbol{overgroup} \savesymbol{undergroup}

   \usepackage{mathabx}

   \restoresymbol{ABX}{not} \restoresymbol{ABX}{widering}
   \restoresymbol{ABX}{Moon} \restoresymbol{ABX}{notowner}
   \restoresymbol{ABX}{iint} \restoresymbol{ABX}{iiint}
   \restoresymbol{ABX}{oint} \restoresymbol{ABX}{oiint}
   \restoresymbol{ABX}{bigboxperp} \restoresymbol{ABX}{bigoperp}
   \restoresymbol{ABX}{boxedcirc} \restoresymbol{ABX}{boxeddash}
   \restoresymbol{ABX}{boxeedast} \restoresymbol{ABX}{boxperp}
   \restoresymbol{ABX}{boy} \restoresymbol{ABX}{Cap}
   \restoresymbol{ABX}{centerdot} \restoresymbol{ABX}{circledast}
   \restoresymbol{ABX}{circledcirc} \restoresymbol{ABX}{circleddash}
   \restoresymbol{ABX}{Cup} \restoresymbol{ABX}{curvearrowtopleft}
   \restoresymbol{ABX}{curvearrowtopleftright}
   \restoresymbol{ABX}{curvearrowtopright}
   \restoresymbol{ABX}{doteqdot} \restoresymbol{ABX}{geqslant}
   \restoresymbol{ABX}{gets} \restoresymbol{ABX}{girl}
   \restoresymbol{ABX}{Join} \restoresymbol{ABX}{land}
   \restoresymbol{ABX}{leqslant} \restoresymbol{ABX}{looparrowupleft}
   \restoresymbol{ABX}{looparrowupright} \restoresymbol{ABX}{lor}
   \restoresymbol{ABX}{lsemantic}
   \restoresymbol{ABX}{mayaleftdelimiter}
   \restoresymbol{ABX}{mayarightdelimiter}
   \restoresymbol{ABX}{ndivides} \restoresymbol{ABX}{nequiv}
   \restoresymbol{ABX}{ngeqslant} \restoresymbol{ABX}{ni}
   \restoresymbol{ABX}{nleqslant} \restoresymbol{ABX}{notni}
   \restoresymbol{ABX}{notowns} \restoresymbol{ABX}{notsign}
   \restoresymbol{ABX}{operp} \restoresymbol{ABX}{rsemantic}
   \restoresymbol{ABX}{sqCap} \restoresymbol{ABX}{sqCup}
   \restoresymbol{ABX}{to} \restoresymbol{ABX}{ulsh}
   \restoresymbol{ABX}{ursh} \restoresymbol{ABX}{overbrace}
   \restoresymbol{ABX}{underbrace} \restoresymbol{ABX}{overgroup}
   \restoresymbol{ABX}{undergroup}
  }
  {}
\let\DeclareMathAccent=\origDeclareMathAccent
\let\DeclareMathRadical=\origDeclareMathRadical
\let\DeclareMathDelimiter=\origDeclareMathDelimiter
\let\DeclareMathSymbol=\origDeclareMathSymbol
\ifABX
  % Define only those accents that are not defined elsewhere.
  \DeclareMathAccent{\widecheck}     {0}{mathx}{"71}
  \DeclareMathAccent{\widebar}       {0}{mathx}{"73}
  \DeclareMathAccent{\widearrow}     {0}{mathx}{"74}
  % Redefine all let-bound symbols.
  \let\ABXcenterdot=\ABXsqbullet
  \let\ABXcircledast=\ABXoasterisk
  \let\ABXcircledcirc=\ABXocirc
  % Redefine commands that are used by other commands.
  \DeclareMathSymbol{\ABXnotsign}    {3}{matha}{"7F}
  \DeclareMathSymbol{\ABXvarnotsign} {3}{mathb}{"7F}
  \DeclareMathSymbol{\ABXnotowner}   {3}{matha}{"53}
  \makeatletter
    \def\ABXoverbrace{\overbrace@{\bracefill\ABXbraceld\ABXbracemd\ABXbracerd\ABXbracexd}}
    \def\ABXunderbrace{\underbrace@{\bracefill\ABXbracelu\ABXbracemu\ABXbraceru\ABXbracexu}}
    \def\ABXovergroup{\overbrace@{\bracefill\ABXbraceld{}\ABXbracerd\ABXbracexd}}
    \def\ABXundergroup{\underbrace@{\bracefill\ABXbracelu{}\ABXbraceru\ABXbracexu}}
  \makeatother
  % Define a command to select the mathb font.
  \newcommand{\mathbfont}{\usefont{U}{mathb}{m}{n}}
\fi    % ABX test

\newif\ifFC
\newcommand\FC{\pkgname{fc}}
\IfStyFileExists{fclfont}
  {\FCtrue
   \let\origlbrace=\{
   \let\origrbrace=\}
   \let\origbar=\|
   \let\origdollar=\$
   \let\origspace=\_
   \let\origS=\S
   \let\origpounds=\pounds
   \input{t4enc.def}
   \global\let\{=\origlbrace
   \global\let\}=\origrbrace
   \global\let\|=\origbar
   \global\let\$=\origdollar
   \global\let\_=\origspace
   \global\let\S=\origS
   \global\let\pounds=\origpounds
  }
  {}

\newif\ifASCII
\newcommand\ASCII{\pkgname{ascii}}
\IfStyFileExists{ascii}
  {\ASCIItrue\usepackage{ascii}}
  {}

\newif\ifARK                           % ark10 and dingbat fonts
\newcommand\ARK{\pkgname{dingbat}}
\IfStyFileExists{dingbat}
  {\ARKtrue
   \savesymbol{checkmark}
   \usepackage{dingbat}
   \restoresymbol{ARK}{checkmark}
  }
  {}

\newif\ifSKULL
\newcommand\SKULL{\pkgname{skull}}
\IfStyFileExists{skull}
  {\SKULLtrue
   \let\origDeclareSymbolFont=\DeclareSymbolFont
   \let\origDeclareMathSymbol=\DeclareMathSymbol
   \def\DeclareSymbolFont##1##2##3##4##5{}
   \def\DeclareMathSymbol##1##2##3##4{}
   \usepackage{skull}
   \let\DeclareSymbolFont=\origDeclareSymbolFont
   \let\DeclareMathSymbol=\origDeclareMathSymbol
   \newcommand{\skull}{{\usefont{U}{skulls}{m}{n}\char'101}}
  }
  {}

\newif\ifEUSYM
\newcommand\EUSYM{\pkgname{eurosym}}
\IfStyFileExists{eurosym}
  {\EUSYMtrue\usepackage{eurosym}}
  {}

\newif\ifESV
\newcommand\ESV{\pkgname{esvect}}
\IfStyFileExists{esvect}
  {\ESVtrue
   \usepackage{esvect}
   \DeclareMathSymbol{\fldra}{\mathrel}{esvector}{'021}
   \DeclareMathSymbol{\fldrb}{\mathrel}{esvector}{'022}
   \DeclareMathSymbol{\fldrc}{\mathrel}{esvector}{'023}
   \DeclareMathSymbol{\fldrd}{\mathrel}{esvector}{'024}
   \DeclareMathSymbol{\fldre}{\mathrel}{esvector}{'025}
   \DeclareMathSymbol{\fldrf}{\mathrel}{esvector}{'026}
   \DeclareMathSymbol{\fldrg}{\mathrel}{esvector}{'027}
   \DeclareMathSymbol{\fldrh}{\mathrel}{esvector}{'030}
  }
  {}

% yfonts re-encodes \aa and \AA as LY, so we have to re-re-encode them
% as OT1.
\IfStyFileExists{yfonts}
  {\usepackage{yfonts}
   \DeclareTextCommand{\aa}{OT1}{{\accent23a}}
   \DeclareTextCommand{\AA}{OT1}{{\accent23A}}}
  {}

\newif\ifYH
\newcommand\YH{\pkgname{yhmath}}
\IfStyFileExists{yhmath}
  {\YHtrue
   \let\origRequirePackage=\RequirePackage    % We don't want amsmath loaded.
   \def\RequirePackage##1{}
   \usepackage{yhmath}
   \let\RequirePackage=\origRequirePackage
  }
  {}

% At the time of this writing we're completely out of math alphabets.
% (Knuth shortsightedly assumed that 16 would be plenty for anyone.)
% Hence, instead of loading the esint package we manually define all of
% its characters as text characters.  Yuck.
\newif\ifES
\newcommand\ES{\pkgname{esint}}
\IfStyFileExists{esint}
  {\EStrue
   % Center an esint character against an ordinary integral.
   \newsavebox{\esbox}
   \newlength{\intcenterdelta}
   \newcommand{\esintchar}[1]{%
     \ifodd##1
       \sbox{\esbox}{$\int$}%
     \else
       \sbox{\esbox}{$\displaystyle\int$}%
     \fi
     \setlength  {\intcenterdelta}{0.5\ht\esbox}%
     \addtolength{\intcenterdelta}{-0.5\dp\esbox}%
     \sbox{\esbox}{\usefont{U}{esint}{m}{n}\char##1\relax}%
     \addtolength{\intcenterdelta}{-0.5\ht\esbox}%
     \addtolength{\intcenterdelta}{0.5\dp\esbox}%
     \raisebox{\intcenterdelta}{\usebox{\esbox}}%
   }
   % Manually define all of the characters we care about.
   \newcommand{\ESintT}{\esintchar{'001}}
   \newcommand{\ESintD}{\esintchar{'002}}
   \newcommand{\ESiintT}{\esintchar{'003}}
   \newcommand{\ESiintD}{\esintchar{'004}}
   \newcommand{\ESiiintT}{\esintchar{'005}}
   \newcommand{\ESiiintD}{\esintchar{'006}}
   \newcommand{\ESiiiintT}{\esintchar{'007}}
   \newcommand{\ESiiiintD}{\esintchar{'010}}
   \newcommand{\ESdotsintT}{\esintchar{'011}}
   \newcommand{\ESdotsintD}{\esintchar{'012}}
   \newcommand{\ESointT}{\esintchar{'013}}
   \newcommand{\ESointD}{\esintchar{'014}}
   \newcommand{\ESoiintT}{\esintchar{'015}}
   \newcommand{\ESoiintD}{\esintchar{'016}}
   \newcommand{\ESsqintT}{\esintchar{'017}}
   \newcommand{\ESsqintD}{\esintchar{'020}}
   \newcommand{\ESsqiintT}{\esintchar{'021}}
   \newcommand{\ESsqiintD}{\esintchar{'022}}
   \newcommand{\ESointctrclockwiseT}{\esintchar{'027}}
   \newcommand{\ESointctrclockwiseD}{\esintchar{'030}}
   \newcommand{\ESointclockwiseT}{\esintchar{'031}}
   \newcommand{\ESointclockwiseD}{\esintchar{'032}}
   \newcommand{\ESvarointclockwiseT}{\esintchar{'033}}
   \newcommand{\ESvarointclockwiseD}{\esintchar{'034}}
   \newcommand{\ESvarointctrclockwiseT}{\esintchar{'035}}
   \newcommand{\ESvarointctrclockwiseD}{\esintchar{'036}}
   \newcommand{\ESfintT}{\esintchar{'037}}
   \newcommand{\ESfintD}{\esintchar{'040}}
   \newcommand{\ESvaroiintT}{\esintchar{'041}}
   \newcommand{\ESvaroiintD}{\esintchar{'042}}
   \newcommand{\ESlandupintT}{\esintchar{'043}}
   \newcommand{\ESlandupintD}{\esintchar{'044}}
   \newcommand{\ESlanddownintT}{\esintchar{'045}}
   \newcommand{\ESlanddownintD}{\esintchar{'046}}
  }
  {}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% If we have mflogo.sty, use it.  Otherwise, define "\MF" the "boring" way.
\IfStyFileExists*{mflogo}
  {\usepackage{mflogo}}
  {\newcommand{\MF}{Metafont}}

% If we have booktabs.sty, use it.  Otherwise, define all its line types
% in terms of \hline and \cline.
\IfStyFileExists*{booktabs}
  {\usepackage{booktabs}}
  {\newcommand{\toprule}{\hline}
   \newcommand{\midrule}{\hline}
   \newcommand{\bottomrule}{\hline}
   \def\cmidrule(##1)##2{\cline{##2}}
  }

% If we have url.sty, use it.  Otherwise, define \url as \texttt.
\IfStyFileExists*{url}
  {\usepackage{url}
   \def\UrlBreaks{}
   \def\UrlBigBreaks{\do/}}
  {\newcommand{\url}[1]{\texttt{##1}}}

% If we have geometry.sty, use it.  Otherwise, a lot of tables are going
% to stick out into the margin.
\IfStyFileExists*{geometry}
  {\usepackage{geometry}}
  {}

% If we have multicol.sty, load it.
\newif\ifhavemulticol
\IfStyFileExists*{multicol}
  {\havemulticoltrue\usepackage{multicol}}
  {}

% If we have rotating.sty, load it.
\newif\ifhaverotating
\IfStyFileExists*{rotating}
  {\haverotatingtrue\usepackage{rotating}}
  {}

% amsmath causes all sorts of conflicts with the rest of this document.
% As a workaround, we extract the minimum we need from amsmath, then load
% only amsopn and amstext.  (Doing this earlier *also* causes conflicts. :-( )
\ifAMS
  \makeatletter
    \def\arrowfill@#1#2#3#4{%
      $\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
       \relax#4#1\mkern-7mu%
       \cleaders\hbox{$#4\mkern-2mu#2\mkern-2mu$}\hfill
       \mkern-7mu#3$%
    }
    \def\leftarrowfill@{\arrowfill@\leftarrow\relbar\relbar}
    \def\rightarrowfill@{\arrowfill@\relbar\relbar\rightarrow}
    \def\leftrightarrowfill@{\arrowfill@\leftarrow\relbar\rightarrow}
    \let\@@overline=\overline
    \def\varinjlim{%
      \mathop{\mathpalette\varlim@{\rightarrowfill@\textstyle}}\nmlimits@
    }
    \def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcr
     \noalign{\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}}
    \renewcommand{\overrightarrow}{%
      \mathpalette{\overarrow@\rightarrowfill@}}
    \renewcommand{\overleftarrow}{%
      \mathpalette{\overarrow@\leftarrowfill@}}
    \newcommand{\overleftrightarrow}{%
      \mathpalette{\overarrow@\leftrightarrowfill@}}
    \def\underarrow@#1#2#3{%
     \vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr
     \noalign{\nointerlineskip\kern1.3\ex@}#1#2\crcr}}}
    \newcommand{\underrightarrow}{%
      \mathpalette{\underarrow@\rightarrowfill@}}
    \newcommand{\underleftarrow}{%
      \mathpalette{\underarrow@\leftarrowfill@}}
    \newcommand{\underleftrightarrow}{%
      \mathpalette{\underarrow@\leftrightarrowfill@}}
    \newcommand{\overset}[2]{\binrel@{#2}%
      \binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
    \def\binrel@#1{\begingroup
      \setboxz@h{\thinmuskip0mu
        \medmuskip\m@ne mu\thickmuskip\@ne mu
        \setbox\tw@\hbox{$#1\m@th$}\kern-\wd\tw@
        ${}#1{}\m@th$}%
      \edef\@tempa{\endgroup\let\noexpand\binrel@@
        \ifdim\wdz@<\z@ \mathbin
        \else\ifdim\wdz@>\z@ \mathrel
        \else \relax\fi\fi}%
      \@tempa
    }
    \let\binrel@@\relax
    \def\ext@arrow#1#2#3#4#5#6#7{%
      \mathrel{\mathop{%
        \setbox\z@\hbox{#5\displaystyle}%
        \setbox\tw@\vbox{\m@th
          \hbox{$\scriptstyle\mkern#3mu{#6}\mkern#4mu$}%
          \hbox{$\scriptstyle\mkern#3mu{#7}\mkern#4mu$}%
          \copy\z@
        }%
        \hbox to\wd\tw@{\unhbox\z@}}%
      \limits
        \@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi
                           #7\if0#2\else\mkern#2mu\fi}}%
        \@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi
                           #6\if0#2\else\mkern#2mu\fi}}}%
    }
    \newcommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
    \newcommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}}
  \makeatother
  \usepackage{amsopn}
  \usepackage{amstext}
\fi

% If we have the accents package, use it (for an example in the section
% on constructing new symbols).
\newif\ifACCENTS
\IfStyFileExists{accents}
  {\ACCENTStrue
   \savesymbol{undertilde}
   \usepackage{accents}
   \restoresymbol{ACCENTS}{undertilde}
  }
  {}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Because most (La)TeX builds are limited to 16 math alphabets, we       %
% define our own _text_ commands below instead of doing a \usepackage,   %
% because the latter would invoke a \DeclareMathAlphabet.                %
%                                                                        %

\IfStyFileExists{mathrsfs}
  {\newcommand{\mathscr}[1]{\mbox{\usefont{U}{rsfs}{m}{n} ##1}}}
  {}

\IfStyFileExists{zapfchan}
  {\newcommand{\mathpzc}[1]{\mbox{\usefont{OT1}{pzc}{m}{it} ##1}}}
  {}

\IfStyFileExists{bbold}
  {\newcommand{\BBmathbb}[1]{\mbox{\usefont{U}{bbold}{m}{n} ##1}}
   % We have to manually define all of the symbols we care about.
   \newcommand{\BBsym}[1]{\ensuremath{\BBmathbb{\char##1}}}
   \newcommand{\Langle}{\BBsym{`<}}
   \newcommand{\Lbrack}{\BBsym{`[}}
   \newcommand{\Lparen}{\BBsym{`(}}
   \newcommand{\bbalpha}{\BBsym{"0B}}
   \newcommand{\bbbeta}{\BBsym{"0C}}
   \newcommand{\bbgamma}{\BBsym{"0D}}
   \newcommand{\Rparen}{\BBsym{`)}}
   \newcommand{\Rbrack}{\BBsym{`]}}
   \newcommand{\Rangle}{\BBsym{"3E}}
  }
  {}

\IfStyFileExists{dsfont}
  {\newcommand{\mathds}[1]{\mbox{\usefont{U}{dsrom}{m}{n}##1}}
   \newcommand{\mathdsss}[1]{\mbox{\usefont{U}{dsss}{m}{n}##1}}}
  {}

\IfStyFileExists{bbm}
  {\newcommand{\mathbbm}[1]{\mbox{\usefont{U}{bbm}{m}{n}##1}}
   \newcommand{\mathbbmss}[1]{\mbox{\usefont{U}{bbmss}{m}{n}##1}}
   \newcommand{\mathbbmtt}[1]{\mbox{\usefont{U}{bbmtt}{m}{n}##1}}}
  {}

% \mathfrak is defined by a number of packages, to check for it by name.
\ifx\mathfrak\undefined
\else
  \renewcommand{\mathfrak}[1]{\mbox{\fontencoding{U}\fontfamily{euf}\selectfont#1}}
\fi

%                                                                        %
%                                                                        %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Resolve the stmaryrd/wasysym \lightning conflict by defining \lightning
% to use stmaryrd in math mode and wasysym in text mode.
\DeclareRobustCommand{\lightning}{\ifmmode\STlightning\else\WASYlightning\fi}

% Index a symbol, which may or may not begin with a backslash.  (Is
% there a better way to do this?)  Also, if symbol is given as an
% optional argument is given, typeset that symbol in the index, as well.
% We define a related macro for indexing accents.  In a previous version
% of this file, \indexaccent additionally included "see also accents" in
% the index.  This became distracting so I made \indexaccent a synonym
% for \indexcommand for the time being.
\begingroup
 \catcode`\|=0
 \catcode`\\=12
 |gdef|sanitize#1#2!!!{%
   |ifx#1\%
     #2%
   |else%
     #1#2%
   |fi%
}
|endgroup
\makeatletter
\newcommand{\indexcommand}[2][]{%
  \edef\sanitized{\expandafter\sanitize\string#2!!!}%
  \def\first@arg{#1}%
  \ifx\first@arg\@empty
    \expandafter\index\expandafter{\sanitized=\string\verb+\string#2+}%
  \else
    \expandafter\index\expandafter{\sanitized=\string\verb+\string#2+ (#1)}%
  \fi
}
\let\indexaccent=\indexcommand
\makeatother

% Enable the use of makeindex's nicer-looking gind.ist style.
% I swiped the following from doc.dtx.
\makeatletter
\newif\ifscan@allowed
\def\efill{\hfill\nopagebreak}%
\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus 1fill}%
\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}%
\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
           \dotfil~\ignorespaces}%
\makeatother

% If we have the multicol package, typeset the index in three columns instead
% of the usual two.
\ifhavemulticol
  \makeatletter
  \renewenvironment{theindex}{%
    \clearpage
    \section*{\indexname}

    If you're having trouble locating a symbol, try looking under
    ``T'' for ``\texttt{\string\text}$\ldots$''.  Many text-mode
    commands begin with that prefix.  Also, accents are shown
    over/under a black box, e.g.,~``\,\blackacchack{\'}\,''
    for~``\texttt{\string\'}''.

    Some symbol entries appear to be listed repeatedly.  This happens
    when multiple packages define identical (or nearly identical)
    glyphs with the same symbol name.%
\ifAMS\ifABX
    \footnote{This occurs frequently with \pkgname{amssymb} and
    \pkgname{mathabx}.}
\fi\fi
    \setlength{\columnsep}{1em}%
    \begin{multicols}{3}%
    \let\item\@idxitem
  }{%
    \end{multicols}%
  }
  \makeatother
\fi

% Define a counter to keep track of how many symbols are listed.
% Output this counter to the log file at the end of each run.
% Define \prevtotalsymbols to be the total number of symbols from
% the previous run.
\newcounter{totalsymbols}
\newcommand{\incsyms}{\addtocounter{totalsymbols}{1}}
\makeatletter
\AtEndDocument{%
  \typeout{Number of symbols documented: \thetotalsymbols}
  \immediate\write\@auxout{%
    \noexpand\gdef\noexpand\prevtotalsymbols{\thetotalsymbols}}
}
\makeatother

% Define \prevtotalsymbols as "??" if this is our first run.  Define
% \approxcount as "~" unless explicitly defined otherwise in the .aux
% file.  To get a true count you should count the number of lines in the
% .ind file that contain "\item \verb".  Write and empty definition of
% \approxcount and the correct definition of \prevtotalsymbols to the
% .aux file.
\makeatletter
  \@ifundefined{prevtotalsymbols}{%
    \def\prevtotalsymbols{\fbox{\textbf{??}}}%
  }{}
  \@ifundefined{approxcount}{%
    \def\approxcount{\ensuremath{\sim}}%
  }{}
\makeatother

% Define \blackacc to display an accented box, given an accent command.
% Define \blackacchack to display and accented "a" and then black out
% the "a".
\newlength\awd
\newlength\aht
\newlength\adp
\settowidth{\awd}{a}
\settoheight{\aht}{a}
\settodepth{\adp}{a}
\advance\aht by \adp
\gdef\blackacchack#1{#1a\llap{\rule[-\adp]{\awd}{\aht}}}
\gdef\blackacc#1{#1{\rule[-\adp]{\awd}{\aht}}}

% Symbol+verbatim for various types of symbols
\def\E#1{%
  \begingroup
    \lccode`|=`\\
    \def\EStruename{ES#1T}
    \lowercase{\incsyms\index{#1=\string\verb+\string|#1+ (\string|\EStruename)}}
  \endgroup
  \csname ES#1T\endcsname & \csname ES#1D\endcsname &
  \ttfamily\expandafter\string\csname#1\endcsname
}
\def\Jf#1#2{\incsyms\indexcommand{#1}{\fontencoding{T4}\selectfont#1#2} &
  \ttfamily\string#1\string{#2\string}}
\makeatletter
  \def\K@opt@arg[#1]#2{\incsyms\indexcommand[#1]{#2}#1 &\ttfamily\string#2}
  \def\K@no@opt@arg#1{\incsyms\indexcommand[#1]{#1}#1 &\ttfamily\string#1}
  \def\K{\@ifnextchar[{\K@opt@arg}{\K@no@opt@arg}}
\makeatother
\def\Ka#1{\incsyms\indexcommand[\string{\string\ascii\string#1\string}]{#1}{\ascii#1} &\ttfamily\string#1}
\def\Ks#1{\incsyms\indexcommand[\string\encone{\string#1}]{#1}{\encone{#1}} &\ttfamily\string#1$^*$}
\def\Kt#1{\incsyms\indexcommand[\string\encone{\string#1}]{#1}{\encone{#1}} &\ttfamily\string#1}
\makeatletter
  \def\N@opt@arg[#1]#2{\incsyms\indexcommand[$\string#1$]{#2}$#1$ & $\Big#1$ &\ttfamily\string#2}
  \def\N@no@opt@arg#1{\incsyms\indexcommand[$\string#1$]{#1}$#1$ & $\Big#1$ &\ttfamily\string#1}
  \def\N{\@ifnextchar[{\N@opt@arg}{\N@no@opt@arg}}
\makeatother
\def\Nb#1{\incsyms\indexcommand[\brackethack]{#1}$#1$ & $\Big#1$ &\ttfamily\string#1}
\def\Q#1{\incsyms\indexaccent[\string\blackacchack{\string#1}]{#1}#1{A}#1{a} &
         \ttfamily\string#1\string{A\string}\string#1\string{a\string}}
\def\Qc#1{\incsyms\indexaccent[\string\blackacc{\string#1}]{#1}#1{A}#1{a} &
         \ttfamily\string#1\string{A\string}\string#1\string{a\string}}
\def\Qt#1{\incsyms\indexaccent[\string\encone{\string\blackacc{\string#1}}]{#1}{\encone{#1{A}#1{a}}} &
          \ttfamily\string#1\string{A\string}\string#1\string{a\string}}
\def\Qf#1{\incsyms\indexaccent[\string\encfour{\string\blackacchack{\string#1}}]{#1}{\encfour{#1{A}#1{a}}} &
          \ttfamily\string#1\string{A\string}\string#1\string{a\string}}
\makeatletter
  % We use \displaystyle so that variable-sized symbols will be big.
  \def\R@opt@arg[#1]#2{\incsyms\indexcommand[$\string#1$]{#2}$#1$ & $\displaystyle#1$ &\ttfamily\string#2}
  \def\R@no@opt@arg#1{\incsyms\indexcommand[$\string#1$]{#1}$#1$ & $\displaystyle#1$ &\ttfamily\string#1}
  \def\R{\@ifnextchar[{\R@opt@arg}{\R@no@opt@arg}}
\makeatother
\def\Tp#1{\incsyms\indexcommand{\ding}\ding{#1} &\ttfamily\string\ding\string{#1\string}}
\def\Tm#1{\incsyms\indexcommand{\maya}$\mayadigit{#1}$ &\ttfamily\string\maya\string{#1\string}}
\newcommand{\V}[2][]{\incsyms#1 & \indexcommand[#2]{#2}#2 &\ttfamily\string#2}
\makeatletter
  \newcommand{\VV}[2]{%
    \incsyms\indexaccent[$\string\blackacc{\string\vv}$]{\vv}%
    \expandafter\let\expandafter\fldrVV\csname fldr#1\endcsname
    \def\vectfill@{\traitfill@\relbaredd\relbareda\fldrVV}%
    $\vv{#2}$ & \texttt{\string\vv\string{#2\string}}
    with package option \optname{esvect}{#1}
  }
  \def\W@opt@arg[#1]#2#3{%
    \incsyms\indexaccent[$\string\blackacc{\string#1}$]{#2}%
    $#1{#3}$ &\ttfamily\string#2\string{#3\string}}
  \def\W@no@opt@arg#1#2{%
    \incsyms\indexaccent[$\string\blackacc{\string#1}$]{#1}%
    $#1{#2}$ &\ttfamily\string#1\string{#2\string}}
  \def\W{\@ifnextchar[{\W@opt@arg}{\W@no@opt@arg}}
\makeatother
\def\Wf#1#2{\incsyms\indexcommand{#1}$#1{#2}$ &\ttfamily\string#1\string{#2\string}}
\def\Ww#1#2#3{\incsyms\indexcommand{#2}$#1{#3}$ &\ttfamily\string#2\string{#3\string}}
\makeatletter
  \def\X@opt@arg[#1]#2{\incsyms\indexcommand[$\string#1$]{#2}$#1$ &\ttfamily\string#2}
  \def\X@no@opt@arg#1{\incsyms\indexcommand[$\string#1$]{#1}$#1$ &\ttfamily\string#1}
  \def\X{\@ifnextchar[{\X@opt@arg}{\X@no@opt@arg}}
\makeatother
\def\Y#1{\incsyms\indexcommand[$\string\big\string#1$]{#1}$\big#1$ & $\Bigg#1$ &\ttfamily\string#1}
\def\Z#1{\incsyms\indexcommand[$\string#1$]{#1}\ttfamily\string#1}

% Display and index a command, but not its symbol (\cmd).  \cmdI shows
% the symbol in the index, with optional explicit formatting.  \cmdX is
% the same as \cmdI, but with the optional argument hardwired to the
% command displayed in math mode.
\makeatletter
\def\cmd#1{\texttt{\string#1}\indexcommand{#1}}
\newcommand{\cmdI}[2][]{%
  \def\first@arg{#1}%
  \ifx\first@arg\@empty
    \texttt{\string#2}\indexcommand[#2]{#2}%
  \else
    \texttt{\string#2}\indexcommand[#1]{#2}%
  \fi
}
\newcommand{\cmdX}[1]{\cmdI[$\string#1$]{#1}}
\makeatother


% Redefine the LaTeX commands that are replaced by textcomp.
% This was swiped right out of ltoutenc.dtx, but with "\text..."
% changed to "\ltext...".
\DeclareTextCommandDefault{\ltextcopyright}{\textcircled{c}}
\DeclareTextCommandDefault{\ltextregistered}{\textcircled{\scshape r}}
\DeclareTextCommandDefault{\ltexttrademark}{\textsuperscript{TM}}
\DeclareTextCommandDefault{\ltextordfeminine}{\textsuperscript{a}}
\DeclareTextCommandDefault{\ltextordmasculine}{\textsuperscript{o}}


% Needed by the References section.  This was copy&pasted from ltlogos.dtx.
\makeatletter
\DeclareRobustCommand{\LaT}{L\kern-.36em%
        {\sbox\z@ T%
         \vbox to\ht\z@{\hbox{\check@mathfonts
                              \fontsize\sf@size\z@
                              \math@fontsfalse\selectfont
                              A}%
                        \vss}%
        }%
        \kern-.15em T%
}
\makeatother

% Display a metavariable.
\newcommand{\meta}[1]{$\langle$\textit{#1}$\rangle$}

% Many tables have notes beneath them.  Define an environment in which to
% display such a note, with an optional, superscripted math symbol
% preceding it.
\newenvironment{tablenote}[1][]{
  \makebox[1em]{\ensuremath{^{#1}}}%
  \begin{minipage}[t]{0.75\textwidth}%
  \setlength{\parskip}{2ex}
}{%
  \end{minipage}%
}

% Define a couple of messages we reuse repeatedly.
\newcommand{\twosymbolmessage}{%
  \begin{tablenote}
    Where two symbols are present, the left one is the ``faked'' symbol
    that \latexE{} provides by default, and the right one is the ``true''
    symbol that \TC\ makes available.
  \end{tablenote}
}

\newcommand{\notpredefinedmessage}{%
  \begin{tablenote}[*]
    Not predefined in \latexE.  Use one of the packages
    \pkgname{latexsym}, \pkgname{amsfonts}, \pkgname{amssymb},
    \pkgname{txfonts}, \pkgname{pxfonts}, or \pkgname{wasysym}.
  \end{tablenote}
}

\newcommand{\notpredefinedmessageABX}{%
  \begin{tablenote}[*]
    Not predefined in \latexE.  Use one of the packages
    \pkgname{latexsym}, \pkgname{amsfonts}, \pkgname{amssymb},
    \pkgname{mathabx}, \pkgname{txfonts}, \pkgname{pxfonts}, or
    \pkgname{wasysym}.
  \end{tablenote}
}


% Define an environment in which to write a single table of symbols.  The
% environment looks a lot like a table, but it doesn't float, and it gets
% an entry in the table of contents (as a subsubsection that looks like a
% subsection), as opposed to the list of tables.
%
% The first argument is a conditional.  The table will appear only if
% the value of the conditional is true.  The second argument is the
% table's caption.
\makeatletter
\def\fnum@table{\textsc{\tablename}~\thetable}
\newenvironment{symtable}[2][true]{%
  \expandafter\global\expandafter\let%
    \expandafter\ifshowsymtable\csname if#1\endcsname
  \ifshowsymtable
    \noindent%
    \begin{minipage}[t]{\linewidth}    % Prevent page breaks
    \begin{center}
    \addtocounter{table}{1}%
    \protected@edef\@currentlabel{\thetable}%
    \addcontentsline{toc}{subsubsection}{%
      \protect\numberline{\tablename~\thetable:}{#2}}%
    \@makecaption{\fnum@table}{#2}\medskip
    \let\next=\relax
  \else
    % The following was taken verbatim from verbatim.sty.
    \let\do\@makeother\dospecials\catcode`\^^M\active
    \let\verbatim@startline\relax
    \let\verbatim@addtoline\@gobble
    \let\verbatim@processline\relax
    \let\verbatim@finish\relax
    \let\next=\verbatim@
  \fi
  \next
}{%
  \ifshowsymtable
    \end{center}
    \end{minipage}
    \vskip 8ex minus 2ex
  \fi
}
\makeatother

% Same as the above, but allows page breaks.
\makeatletter
\newenvironment{longsymtable}[2][true]{%
  \expandafter\global\expandafter\let%
    \expandafter\ifshowsymtable\csname if#1\endcsname
  \ifshowsymtable
    \mbox{}%
    \begin{center}%
    \addtocounter{table}{1}%
    \protected@edef\@currentlabel{\thetable}%
    \addcontentsline{toc}{subsubsection}{%
      \protect\numberline{\tablename~\thetable:}{#2}}%
    \@makecaption{\fnum@table}{#2}%
    \def\lt@indexed{}%
    \let\next=\relax
  \else
    % The following was taken verbatim from verbatim.sty.
    \let\do\@makeother\dospecials\catcode`\^^M\active
    \let\verbatim@startline\relax
    \let\verbatim@addtoline\@gobble
    \let\verbatim@processline\relax
    \let\verbatim@finish\relax
    \let\next=\verbatim@
  \fi
  \next
}{%
  \ifshowsymtable
    \let\@elt=\index\lt@indexed  % Close our index ranges.
    \end{center}
    \addtocounter{table}{-1}     % Make up for longtable's counter increment.
    \vskip 8ex minus 2ex
  \fi
}
\makeatother

% Define \index-like commands for use with longsymtable that
% automatically apply to the entire table, not just the start of it.
\makeatletter
\newcommand{\ltindex}[1]{%
  \index{#1|(}%
  \@cons{\lt@indexed}{{#1|)}}%
}
\newcommand{\ltidxboth}[2]{\mbox{}\ltindex{#1 #2}\ltindex{#2>#1}}
\makeatother


% Define a table environment that's similar to symtable, except that it
% floats and it doesn't write an entry into the Table of Contents.  This
% is used for tables that contain something other than symbol lists.
\newenvironment{nonsymtable}[1]{%
  \begin{table}[htbp]
  \centering
  \caption{#1}\medskip
}{%
  \end{table}
}

% Do the same as the above, but typeset the table in landscape mode (or
% not, if we haven't loaded the rotating package).
\ifhaverotating
  \newenvironment{nonsymtableL}[1]{%
    \begin{sidewaystable}[htbp]
    \centering
    \caption{#1}\medskip
  }{%
    \end{sidewaystable}
  }
\else
  \newenvironment{nonsymtableL}{\begin{nonsymtable}}{\end{nonsymtable}}
\fi

% Make sure we have enough room in the table of contents for
% the word "Table" at the beginning of each symtable entry.
\makeatletter
\settowidth{\@tempdimc}{Table~999:\hspace*{0.5em}}
\renewcommand*\l@subsubsection{\@dottedtocline{3}{1.5em}{\the\@tempdimc}}
\makeatother

% Paragraphs with tall symbols should get a little extra interline spacing.
\newenvironment{morespacing}[1]{\advance\baselineskip by #1\relax}{\par}

% Sometimes, we need a little more horizontal spacing, too.
\newcommand{\qqquad}{\qquad\quad}

% The following are needed later on for various examples but must be
% declared here in the preamble.
\ifAMS
  \DeclareMathOperator{\newlogsym}{newlogsym}
  \DeclareMathOperator*{\newlogsymSTAR}{newlogsym}
\fi
\DeclareMathOperator{\atan}{atan}
\DeclareMathOperator*{\lcm}{lcm}

% Use Donald Arseneau's improved float parameters.
\renewcommand{\topfraction}{.85}
\renewcommand{\bottomfraction}{.7}
\renewcommand{\textfraction}{.15}
\renewcommand{\floatpagefraction}{.66}
\renewcommand{\dbltopfraction}{.66}
\renewcommand{\dblfloatpagefraction}{.66}
\setcounter{topnumber}{9}
\setcounter{bottomnumber}{9}
\setcounter{totalnumber}{20}
\setcounter{dbltopnumber}{9}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\sloppy
\maketitle

\begin{abstract}
  This document lists \approxcount\prevtotalsymbols{} symbols and the
  corresponding \latex{} commands that produce them.  Some of these
  symbols are guaranteed to be available in every \latexE{} system;
  others require fonts and packages that may not accompany a given
  distribution and that therefore need to be installed.  All of the
  fonts and packages used to prepare this document---as well as this
  document itself---are freely available from the
  Comprehensive\idxCTAN{} \TeX{} Archive Network
  (\url{http://www.ctan.org}).
\end{abstract}

\tableofcontents

% Now that we've output the table of contents, let's make \section start a
% new page.  I toyed with the idea of changing the documentclass from
% article to report, but I like having the abstract on the same page as
% the title and the start of the table of contents; I want the tables
% numbered consecutively throughout the document; and I like the smaller,
% less gaudy section headings the article class offers.  In short, article
% seems a better fit than report.
\makeatletter
\let\origsection=\section
\renewcommand\section{\@startsection {section}{1}{\z@}%
                                     {-3.5ex \@plus -1ex \@minus -.2ex}%
                                     {2.3ex \@plus.2ex}%
                                     {\clearpage\normalfont\Large\bfseries}}
\makeatother


% Define an integral containing a dash or a double-dash.
\def\Xint#1{\mathchoice
   {\XXint\displaystyle\textstyle{#1}}%
   {\XXint\textstyle\scriptstyle{#1}}%
   {\XXint\scriptstyle\scriptscriptstyle{#1}}%
   {\XXint\scriptscriptstyle\scriptscriptstyle{#1}}%
   \!\int}
\def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$}
     \vcenter{\hbox{$#2#3$}}\kern-.5\wd0}}
\def\ddashint{\Xint=}
\def\dashint{\Xint-}


% Many symbols are merely alphanumerics typeset with a math alphabet.
% Guide the user from the most common of these to the Math Alphabets
% table.
%
% QUESTION: How standard are the following?
%    * Bernoulli (script B)
%    * domain (script D)
%    * expected value (script E)
%    * imaginary line (script I)
%    * M matrix (script M)
%    * Mellin transform (script M)
%    * null space (script N)
%    * order of (script o)
%    * real line (script R)
%    * Schwartz class (script S)
%
\ifcomplete
  \makeatletter
  \newcommand{\indexMA}[2][]{%
    \def\first@arg{#1}%
    \ifx\first@arg\@empty
      \index{#2|see{alphabets, math}}%
    \else
      \index{#2=#2 (\string#1)|see{alphabets, math}}%
    \fi
  }
  \makeatother
\else
  \newcommand{\indexMA}[2][]{%
    \index{#2|see{alphabets, math}}%
}
\fi
\indexMA[\mathscr{F}]{Fourier transform}
\indexMA[\mathscr{H}]{Hamiltonian}
\indexMA[\mathscr{H}]{Hilbert space}
\indexMA[\mathscr{L}]{Lagrangian}
\indexMA[\mathscr{L}]{Laplace transform}
\indexMA[\mathscr{P}]{power set}
\indexMA[$\mathbbm{C}$]{complex numbers}
%\indexMA{imaginary numbers}
\indexMA[$\mathbbm{Z}$]{integers}
\indexMA[$\mathbbm{N}$]{natural numbers}
\indexMA{number sets}
%\indexMA{prime numbers}
\indexMA[$\mathbbm{H}$]{quaternions}
\indexMA[$\mathbbm{Q}$]{rational numbers}
\indexMA[$\mathbbm{R}$]{real numbers}
\indexMA[$\mathbbm{1}$]{unity}

% Provide "see also"s for every accent whose name I happen to know.
\index{cedilla|see{accents}}
\index{circumflex|see{accents}}
\index{diaeresis=di\ae{}resis|see{accents}}
\index{hacek=h\'{a}\v{c}ek|see{accents}}
\index{Hungarian umlaut|see{accents}}
\index{macron|see{accents}}
\index{ogonek|see{accents}}
\index{umlaut|see{accents}}

% Provide "see also"s for the common logical operators.
\index{logical operators>and|see{\texttt{\string\wedge}}}
\index{logical operators>or|see{\texttt{\string\vee}}}
\index{logical operators>not|see{\texttt{\string\neg}}}
\index{operators>logical|see{logical operators}}
\index{and|see{\texttt{\string\wedge}}}
\index{or|see{\texttt{\string\vee}}}
\index{not|see{\texttt{\string\neg}}}
\index{set operators>union|see{\texttt{\string\cup}}}
\index{set operators>intersection|see{\texttt{\string\cap}}}
\index{operators>set|see{set operators}}
\index{union|see{\texttt{\string\cup}}}
\index{intersection|see{\texttt{\string\cap}}}

% Provide "see also"s for various punctuation marks.
\index{paragraph mark|see{\texttt{\string\P}}}
\index{pilcrow|see{\texttt{\string\P}}}
\index{percent sign|see{\texttt{\string\%}}}
\index{dollar sign|see{\texttt{\string\$}}}
\index{cents|see{\texttt{\string\textcent}}}
\index{hash mark|see{\texttt{\string\#}}}
\index{ampersand|see{\texttt{\string\&}}}
\index{section mark|see{\texttt{\string\S}}}
\index{caret|see{\texttt{\string\^}}}
\index{swung dash|see{\texttt{\string\sim}}}
\index{underscore|see{\texttt{\string\_}}}
\index{less-than sign|see{inequalities}}
\index{greater-than sign|see{inequalities}}
\index{plus-or-minus sign|see{\texttt{\string\pm}}}

% Provide a few other useful "see also"s.
\index{CTAN|see{Comprehensive \TeX{} Archive Network}}
\index{script letters|see{alphabets, math}}
\index{blackboard bold|see{alphabets, math}}
\index{fraktur|see{alphabets, math}}
\index{letters|see{alphabets}}
\index{numbers|see{digits}}
\index{numerals|see{digits}}
\index{degrees|see{\texttt{\string\textdegree}}}
\index{registered trademark|see{\texttt{\string\textregistered}}}
\index{trademark|see{\texttt{\string\texttrademark}}}
\index{Cedi|see{\texttt{\string\textcolonmonetary}}}
\index{iff=\texttt{\string\iff}|see{\texttt{\string\Longleftrightarrow}}}
\index{to=\texttt{\string\to}|see{\texttt{\string\rightarrow}}}
\ifAMS
  \index{implies=\texttt{\string\implies}|see{\texttt{\string\Longrightarrow}}}
  \index{impliedby=\texttt{\string\impliedby}|see{\texttt{\string\Longleftarrow}}}
  \index{division times|see{\texttt{\string\divideontimes}}}
  \index{does not exist|see{\texttt{\string\nexists}}}
  \index{ring equal to|see{\texttt{\string\circeq}}}
  \index{ring in equal to|see{\texttt{\string\eqcirc}}}
\fi
\ifTIPA
  \index{symbols>dictionary|see{symbols, phonetic}}
  \index{dictionary symbols|see{phonetic symbols}}
  \index{pronunciation symbols|see{phonetic symbols}}
\fi    % TIPA test
\index{abzuglich=abz\"uglich|see{\texttt{\string\textdiscount}}}
\index{diacritics|see{accents}}
\index{parts per thousand|see{\texttt{\string\textperthousand}}}
\index{prescription|see{\texttt{\string\textrecipe}}}
\index{pharmaceutical prescription|see{\texttt{\string\textrecipe}}}
\ifMARV
  \index{Deleatur=\texttt{\string\Deleatur}|see{\texttt{\string\Denarius}}}
  \index{mouse|see{\texttt{\string\ComputerMouse}}}
\fi    % MARV test
\index{playing cards|see{card suits}}
\ifABX
  \index{nibar=\texttt{\string\nibar}|see{\texttt{\string\ownsbar}}}
  \index{ring equal to|see{\texttt{\string\circeq}}}
  \index{ring in equal to|see{\texttt{\string\eqcirc}}}
\fi    % ABX test
\index{rationalized Planck constant|see{\texttt{\string\hbar}}}
\index{options|see{package options}}
\index{cardinality|see{\texttt{\string\aleph}}}
\index{wreath product|see{\texttt{\string\wr}}}
\index{reverse solidus|see{\texttt{\string\textbackslash}}}
\index{radicals|see{\texttt{\string\sqrt} \emph{and} \texttt{\string\surd}}}
\index{roots|see{\texttt{\string\sqrt}}}
\index{square root|see{\texttt{\string\sqrt}}}
\index{cube root|see{\texttt{\string\sqrt}}}
\ifcomplete
  \index{smiley faces|see{\texttt{\string\Smiley}, \texttt{\string\smiley},
    \texttt{\string\SOH}, \emph{and} \texttt{\string\STX}}}
\fi
\index{Weierstrass p function=Weierstrass $\wp$ function|see{\texttt{\string\wp}}}

% \notowns can be mapped to various things depending on package availability.
\ifABX
  \ifTX
    \index{notowns=\texttt{\string\notowns}|see{\texttt{\string\notowner}
      \emph{and} \texttt{\string\notni}}}
  \else
    \index{notowns=\texttt{\string\notowns}|see{\texttt{\string\notowner}}}
  \fi
\else
  \ifTX
    \index{notowns=\texttt{\string\notowns}|see{\texttt{\string\notni}}}
  \fi
\fi

% The following were generated automatically from txfonts.sty.
\ifTX
  \index{circledplus=\texttt{\string\circledplus}|see{\texttt{\string\oplus}}}
  \index{circledminus=\texttt{\string\circledminus}|see{\texttt{\string\ominus}}}
  \index{circledtimes=\texttt{\string\circledtimes}|see{\texttt{\string\otimes}}}
  \index{circledslash=\texttt{\string\circledslash}|see{\texttt{\string\oslash}}}
  \index{circleddot=\texttt{\string\circleddot}|see{\texttt{\string\odot}}}
  \index{le=\texttt{\string\le}|see{\texttt{\string\leq}}}
  \index{ge=\texttt{\string\ge}|see{\texttt{\string\geq}}}
  \index{gets=\texttt{\string\gets}|see{\texttt{\string\leftarrow}}}
  \index{to=\texttt{\string\to}|see{\texttt{\string\rightarrow}}}
  \index{owns=\texttt{\string\owns}|see{\texttt{\string\ni}}}
  \index{lnot=\texttt{\string\lnot}|see{\texttt{\string\neg}}}
  \index{land=\texttt{\string\land}|see{\texttt{\string\wedge}}}
  \index{lor=\texttt{\string\lor}|see{\texttt{\string\vee}}}
  \index{restriction=\texttt{\string\restriction}|see{\texttt{\string\upharpoonright}}}
  \index{Doteq=\texttt{\string\Doteq}|see{\texttt{\string\doteqdot}}}
  \index{doublecup=\texttt{\string\doublecup}|see{\texttt{\string\Cup}}}
  \index{doublecap=\texttt{\string\doublecap}|see{\texttt{\string\Cap}}}
  \index{llless=\texttt{\string\llless}|see{\texttt{\string\lll}}}
  \index{gggtr=\texttt{\string\gggtr}|see{\texttt{\string\ggg}}}
  %\index{Box=\texttt{\string\Box}|see{\texttt{\string\square}}}
  \index{ne=\texttt{\string\ne}|see{\texttt{\string\neq}}}
  %\index{notowns=\texttt{\string\notowns}|see{\texttt{\string\notni}}}
  \index{lrJoin=\texttt{\string\lrJoin}|see{\texttt{\string\Join}}}
  %\index{bowtie=\texttt{\string\bowtie}|see{\texttt{\string\lrtimes}}}
  \index{dasharrow=\texttt{\string\dasharrow}|see{\texttt{\string\dashrightarrow}}}
  \index{circledotright=\texttt{\string\circledotright}|see{\texttt{\string\circleddotright}}}
  \index{circledotleft=\texttt{\string\circledotleft}|see{\texttt{\string\circleddotleft}}}
\fi    % TX test


\section{Introduction}

Welcome to the \doctitle!  This document strives to be your primary
source of \latex{} symbol information: font samples, \latex{}
commands, packages, usage details, caveats---everything needed to put
thousands of different symbols at your disposal.  All of the fonts
covered herein meet the following criteria:

\begin{enumerate}
  \item They are freely available from the Comprehensive\idxCTAN{}
  \TeX{} Archive Network (\url{http://www.ctan.org}).

  \item All of their symbols have \latexE{} bindings.  That is, a user
  should be able to access a symbol by name, not just by
  \cmd{\char}\meta{number}.
\end{enumerate}

\noindent
These are not particularly limiting criteria; the \doctitle{} contains
samples of \approxcount\prevtotalsymbols{} symbols---quite a large
number.  Some of these symbols are guaranteed to be available in every
\latexE{} system; others require fonts and packages that may not
accompany a given distribution and that therefore need to be
installed.  See
\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages+wherefiles}
for help with installing new fonts and packages.


\subsection{Document Usage}

Each section of this document contains a number of font tables.  Each
table shows a set of symbols, with the corresponding \latex{} command
to the right of each symbol.  A table's caption indicates what package
needs to be loaded in order to access that table's symbols.  For
example, the symbols in Table~\ref{old-style-nums}, ``\TC\ Old-Style
Numerals'', are made available by putting
``\cmd{\usepackage}\verb|{textcomp}|'' in your document's preamble.
``\AMS'' means to use the \AMS{} packages, viz.\ \pkgname{amssymb}
and/or \pkgname{amsmath}.  Notes below a table provide additional
information about some or all the symbols in that table.

One note that appears a few times in this document, particularly in
Section~\ref{body-text-symbols}, indicates that certain symbols do not
exist in the OT1 \fntenc[OT1] (Donald\index{Knuth, Donald E.} Knuth's
original, 7-bit \fntenc[7-bit], which is the default \fntenc{} for
\latex) and that you should use \pkgname{fontenc} to select a
different encoding, such as T1 (a common 8-bit
\fntenc[8-bit]\index{font encodings>T1}).  That means that you should
put ``\cmd{\usepackage}\verb|[|\meta{encoding}\verb|]{fontenc}|'' in
your document's preamble, where \meta{encoding} is, e.g.,
\texttt{T1}\index{font encodings>T1} or \texttt{LY1}\index{font
encodings>LY1}.  To limit the change in \fntenc[limiting scope of] to
the current group, use
``\cmd{\fontencoding}\verb|{|\meta{encoding}\verb|}|\cmd{\selectfont}''.

Section~\ref{addl-info} contains some additional information about the
symbols in this document.  It shows which symbol names are not unique
across packages, gives examples of how to create new symbols out of
existing symbols, explains how symbols are spaced in math mode,
presents a \latex{} ASCII\index{ASCII} and Latin~1\index{Latin 1}
tables, and provides some information about this document itself.  The
\doctitle{} ends with an index of all the symbols in the document and
various additional useful terms.


\ifcomplete

\subsection{Frequently Requested Symbols}

There are a number of symbols that are requested over and over again
on \ctt.  If you're looking for such a symbol the following list will
help you find it quickly.

\newenvironment{symbolfaq}{%
  \ifhavemulticol
    \setlength{\columnsep}{3em}%
    \begin{multicols}{2}%
  \fi
  \setlength{\parskip}{1ex}%
  \newcommand{\faq}[2]{%
    \noindent##1\quad\dotfill\quad\makebox[1em][r]{##2}\par}%
}{%
  \ifhavemulticol
    \end{multicols}%
  \fi
}

\begin{symbolfaq}
  \faq{\textvisiblespace, as in
       ``Spaces\textvisiblespace are\textvisiblespace significant.''}
      {\pageref{text-predef}}
  \faq{\'{\i}, \`{\i}, \={\i}, \^{\i}, etc.\ (versus \'i, \`i, \=i, and \^i)}
      {\pageref{text-accents}}
  \faq{\textcent}
      {\pageref{tc-currency}}
  \faq{\EUR}
      {\pageref{marv-currency}}
  \faq{\textcopyright, \textregistered, and \texttrademark}
      {\pageref{tc-legal}}
  \faq{\textperthousand}
      {\pageref{tc-misc}}
  \faq{$\oiint$}
      {\pageref{txpx-large}}
  \faq{$\therefore$}
      {\pageref{ams-rel}}
  \faq{$\coloneqq$ and $\Coloneqq$}
      {\pageref{txpx-rel}}
  \faq{$\adots$}
      {\pageref{yhmath-dots}}
  \faq{\textdegree, as in ``180\textdegree'' or ``15\textcelsius''}
      {\pageref{tc-math}}
  \faq{\mathscr{L}, \mathscr{F}, etc.}
      {\pageref{alphabets}}
  \faq{\mathbbm{N}, \mathbbm{Z}, \mathbbm{R}, etc.}
      {\pageref{alphabets}}
  \faq{\diatop[{\diatop[\'|\=]}|a],
       \diatop[{\diatop[\`|\^]}|e], etc.
       (i.e., several accents per character)}
      {\pageref{multiple-accents}}
  \faq{$\dashint$}
      {\pageref{dashint}}
  \faq{$<$ and $>$ (instead of < and >)}
      {\pageref{upside-down}}
  \faq{\textasciitilde\ (or $\sim$)}
      {\pageref{tildes}}
\end{symbolfaq}

\fi    % ifcomplete


\section{Body-text symbols}
\label{body-text-symbols}
\idxbothbegin{body-text}{symbols}

This section lists symbols that are intended for use in running text,
such as punctuation marks, accents, ligatures, and currency symbols.

\bigskip

\begin{symtable}{\latexE{} Escapable ``Special'' Characters}
\index{special characters=``special'' characters}
\index{escapable characters}
\label{special-escapable}
\begin{tabular}{*6{ll@{\qqquad}}ll}
\K\$              & \K\%              & \K\_           & \K\}      &
\K\&              & \K\#              & \K\{
\end{tabular}
\end{symtable}


\begin{symtable}{\latexE{} Commands Defined to Work in Both Math and Text Mode}
\index{dots (ellipses)} \index{ellipses (dots)}
\label{math-text}
\begin{tabular}{*3{lll@{\qqquad}}lll}
\V\$              & \V\_              & \V\ddag           & \V\{      \\
\V\P              & \V[\ltextcopyright]\copyright
                                      & \V\dots           & \V\}      \\
\V\S              & \V\dag            & \V\pounds         \\
\end{tabular}

\bigskip
\twosymbolmessage
\end{symtable}


\begin{symtable}{Predefined \latexE{} Text-Mode Commands}
\label{text-predef}
\begin{tabular}{lll@{\qqquad}lll}
\V\textasciicircum     & \V\textless            \\
\V\textasciitilde      & \V[\ltextordfeminine]\textordfeminine    \\
\V\textasteriskcentered & \V[\ltextordmasculine]\textordmasculine \\
\V\textbackslash       & \V\textparagraph       \\
\V\textbar             & \V\textperiodcentered  \\
\V\textbraceleft       & \V\textquestiondown    \\
\V\textbraceright      & \V\textquotedblleft    \\
\V\textbullet          & \V\textquotedblright   \\
\V[\ltextcopyright]\textcopyright
                       & \V\textquoteleft       \\
\V\textdagger          & \V\textquoteright      \\
\V\textdaggerdbl       & \V[\ltextregistered]\textregistered      \\
\V\textdollar          & \V\textsection         \\
\V\textellipsis        & \V\textsterling        \\
\V\textemdash          & \V[\ltexttrademark]\texttrademark        \\
\V\textendash          & \V\textunderscore      \\
\V\textexclamdown      & \V\textvisiblespace    \\
\V\textgreater         \\
\end{tabular}

\bigskip
\twosymbolmessage
\end{symtable}


\begin{symtable}{Non-ASCII Letters (Excluding Accented Letters)}
\index{letters>non-ASCII}\index{ASCII}
\label{non-ascii}
\begin{tabular}{*4{ll@{\hspace*{3em}}}ll}
\K\aa      & \Ks\DH     & \K\L       & \K\o       & \K\ss      \\
\K\AA      & \Ks\dh     & \K\l       & \K\O       & \K\SS      \\
\K\AE      & \Ks\DJ     & \Ks\NG     & \K\OE      & \Ks\TH     \\
\K\ae      & \Ks\dj     & \Ks\ng     & \K\oe      & \Ks\th     \\
\end{tabular}

\bigskip
\begin{tablenote}[*]
  Not available in the OT1 \fntenc[OT1].  Use the \pkgname{fontenc}
  package to select an alternate \fntenc[T1], such as T1.
\end{tablenote}
\end{symtable}


\begin{symtable}[FC]{Letters Used to Typeset African Languages}
\index{alphabets>African}
\begin{tabular}{*6{ll@{\qquad}}ll}
\Jf\B{D} & \Jf\m{c} & \Jf\m{f} & \Jf\m{k} & \Jf\M{t}     & \Jf\m{Z} \\
\Jf\B{d} & \Jf\m{D} & \Jf\m{F} & \Jf\m{N} & \Jf\M{T}     & \Jf\T{E} \\
\Jf\B{H} & \Jf\M{d} & \Jf\m{G} & \Jf\m{n} & \Jf\m{t}     & \Jf\T{e} \\
\Jf\B{h} & \Jf\M{D} & \Jf\m{g} & \Jf\m{o} & \Jf\m{T}     & \Jf\T{O} \\
\Jf\B{t} & \Jf\m{d} & \Jf\m{I} & \Jf\m{O} & \Jf\m{u}$^*$ & \Jf\T{o} \\
\Jf\B{T} & \Jf\m{E} & \Jf\m{i} & \Jf\m{P} & \Jf\m{U}$^*$ \\
\Jf\m{b} & \Jf\m{e} & \Jf\m{J} & \Jf\m{p} & \Jf\m{Y}     \\
\Jf\m{B} & \Jf\M{E} & \Jf\m{j} & \Jf\m{s} & \Jf\m{y}     \\
\Jf\m{C} & \Jf\M{e} & \Jf\m{K} & \Jf\m{S} & \Jf\m{z}     \\
\end{tabular}

\bigskip
\begin{tablenote}
  These characters all need the T4 \fntenc[T4], which is provided by
  the \FC\ package.
\end{tablenote}

\bigskip
\begin{tablenote}[*]
  \verb|\m{v}| and \verb|\m{V}| are synonyms for \verb|\m{u}| and
  \verb|\m{U}|.
\end{tablenote}
\end{symtable}


\begin{symtable}{Punctuation Marks Not Found in OT1}
\index{punctuation}
\label{punc-no-OT1}
\begin{tabular}{*8l}
\Kt\guillemotleft  & \Kt\guilsinglleft & \Kt\quotedblbase & \Kt\textquotedbl \\
\Kt\guillemotright & \Kt\guilsinglright & \Kt\quotesinglbase \\
\end{tabular}

\bigskip
\begin{tablenote}
  To get these symbols, use the \pkgname{fontenc} package to select an
  alternate \fntenc[T1], such as~T1.
\end{tablenote}
\end{symtable}


\begin{symtable}[PI]{\PI\ Decorative Punctuation Marks}
\index{punctuation}
\label{pi-punctuation}
\begin{tabular}{*5{ll}}
\Tp{123} & \Tp{125} & \Tp{161} & \Tp{163} \\
\Tp{124} & \Tp{126} & \Tp{162} \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Phonetic Symbols}
\idxboth{phonetic}{symbols}
\idxboth{linguistic}{symbols}
\index{alphabets>phonetic}
\label{wasy-phonetics}
\begin{tabular}{*8l}
\K\DH             & \K\dh             & \K\openo          \\
\K\Thorn          & \K\inve           & \K\thorn          \\
\end{tabular}
\end{symtable}


\begin{longsymtable}[TIPA]{\TIPA\ Phonetic Symbols}
\ltidxboth{phonetic}{symbols}
\ltidxboth{linguistic}{symbols}
\ltindex{alphabets>phonetic}
\label{tipa-phonetic}
\begin{longtable}{*3{ll}}
\multicolumn{6}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{6}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\K\textbabygamma       & \K\textglotstop        & \K\textrtailn         \\
\K\textbarb            & \K\texthalflength      & \K\textrtailr         \\
\K\textbarc            & \K\texthardsign        & \K\textrtails         \\
\K\textbard            & \K\texthooktop         & \K\textrtailt         \\
\K\textbardotlessj     & \K\texthtb             & \K\textrtailz         \\
\K\textbarg            & \K\texthtbardotlessj   & \K\textrthook         \\
\K\textbarglotstop     & \K\texthtc             & \K\textsca            \\
\K\textbari            & \K\texthtd             & \K\textscb            \\
\K\textbarl            & \K\texthtg             & \K\textsce            \\
\K\textbaro            & \K\texthth             & \K\textscg            \\
\K\textbarrevglotstop  & \K\texththeng          & \K\textsch            \\
\K\textbaru            & \K\texthtk             & \K\textschwa          \\
\K\textbeltl           & \K\texthtp             & \K\textsci            \\
\K\textbeta            & \K\texthtq             & \K\textscj            \\
\K\textbullseye        & \K\texthtrtaild        & \K\textscl            \\
\K\textceltpal         & \K\texthtscg           & \K\textscn            \\
\K\textchi             & \K\texthtt             & \K\textscoelig        \\
\K\textcloseepsilon    & \K\texthvlig           & \K\textscomega        \\
\K\textcloseomega      & \K\textinvglotstop     & \K\textscr            \\
\K\textcloserevepsilon & \K\textinvscr          & \K\textscripta        \\
\K\textcommatailz      & \K\textiota            & \K\textscriptg        \\
\K\textcorner          & \K\textlambda          & \K\textscriptv        \\
\K\textcrb             & \K\textlengthmark      & \K\textscu            \\
\K\textcrd             & \K\textlhookt          & \K\textscy            \\
\K\textcrg             & \K\textlhtlongi        & \K\textsecstress      \\
\K\textcrh             & \K\textlhtlongy        & \K\textsoftsign       \\
\K\textcrinvglotstop   & \K\textlonglegr        & \K\textstretchc       \\
\K\textcrlambda        & \K\textlptr            & \K\texttctclig        \\
\K\textcrtwo           & \K\textltailm          & \K\textteshlig        \\
\K\textctc             & \K\textltailn          & \K\texttheta          \\
\K\textctd             & \K\textltilde          & \K\textthorn          \\
\K\textctdctzlig       & \K\textlyoghlig        & \K\texttoneletterstem \\
\K\textctesh           & \K\textObardotlessj    & \K\texttslig          \\
\K\textctj             & \K\textOlyoghlig       & \K\textturna          \\
\K\textctn             & \K\textomega           & \K\textturncelig      \\
\K\textctt             & \K\textopencorner      & \K\textturnh          \\
\K\textcttctclig       & \K\textopeno           & \K\textturnk          \\
\K\textctyogh          & \K\textpalhook         & \K\textturnlonglegr   \\
\K\textctz             & \K\textphi             & \K\textturnm          \\
\K\textdctzlig         & \K\textpipe            & \K\textturnmrleg      \\
\K\textdoublebaresh    & \K\textprimstress      & \K\textturnr          \\
\K\textdoublebarpipe   & \K\textraiseglotstop   & \K\textturnrrtail     \\
\K\textdoublebarslash  & \K\textraisevibyi      & \K\textturnscripta    \\
\K\textdoublepipe      & \K\textramshorns       & \K\textturnt          \\
\K\textdoublevertline  & \K\textrevapostrophe   & \K\textturnv          \\
\K\textdownstep        & \K\textreve            & \K\textturnw          \\
\K\textdyoghlig        & \K\textrevepsilon      & \K\textturny          \\
\K\textdzlig           & \K\textrevglotstop     & \K\textupsilon        \\
\K\textepsilon         & \K\textrevyogh         & \K\textupstep         \\
\K\textesh             & \K\textrhookrevepsilon & \K\textvertline       \\
\K\textfishhookr       & \K\textrhookschwa      & \K\textvibyi          \\
\K\textg               & \K\textrhoticity       & \K\textvibyy          \\
\K\textgamma           & \K\textrptr            & \K\textwynn           \\
\K\textglobfall        & \K\textrtaild          & \K\textyogh           \\
\K\textglobrise        & \K\textrtaill          &                       \\
\end{longtable}

\begin{tablenote}
  \TIPA\ defines shortcut characters for many of the above.  It also
  defines a command \cmd{\tone} for denoting tone letters (pitches).
  See the \TIPA\ documentation for more information.
\end{tablenote}
\end{longsymtable}


\begin{longsymtable}[WIPA]{\WIPA\ Phonetic Symbols}
\ltidxboth{phonetic}{symbols}
\ltidxboth{linguistic}{symbols}
\ltindex{alphabets>phonetic}
\label{wipa-phonetic}
\begin{longtable}{*4{ll}}
\multicolumn{8}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{8}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\K\babygamma        & \K\eng            & \K\labdentalnas     & \K\schwa            \\
\K\barb             & \K\er             & \K\latfric          & \K\sci              \\
\K\bard             & \K\esh            & \K\legm             & \K\scn              \\
\K\bari             & \K[\WSUeth]\eth   & \K\legr             & \K\scr              \\
\K\barl             & \K\flapr          & \K\lz               & \K\scripta          \\
\K[\WSUbaro]\baro   & \K\glotstop       & \K\nialpha          & \K\scriptg          \\
\K\barp             & \K\hookb          & \K\nibeta           & \K\scriptv          \\
\K\barsci           & \K\hookd          & \K\nichi            & \K\scu              \\
\K\barscu           & \K\hookg          & \K\niepsilon        & \K\scy              \\
\K\baru             & \K\hookh          & \K\nigamma          & \K\slashb           \\
\K\clickb           & \K\hookheng       & \K\niiota           & \K\slashc           \\
\K\clickc           & \K\hookrevepsilon & \K\nilambda         & \K\slashd           \\
\K\clickt           & \K\hv             & \K\niomega          & \K\slashu           \\
\K\closedniomega    & \K\inva           & \K\niphi            & \K\taild            \\
\K\closedrevepsilon & \K\invf           & \K\nisigma          & \K\tailinvr         \\
\K\crossb           & \K\invglotstop    & \K\nitheta          & \K\taill            \\
\K\crossd           & \K\invh           & \K\niupsilon        & \K\tailn            \\
\K\crossh           & \K\invlegr        & \K\nj               & \K\tailr            \\
\K\crossnilambda    & \K\invm           & \K\oo               & \K\tails            \\
\K\curlyc           & \K\invr           & \K[\WSUopeno]\openo & \K\tailt            \\
\K\curlyesh         & \K\invscr         & \K\reve             & \K\tailz            \\
\K\curlyyogh        & \K\invscripta     & \K\reveject         & \K\tesh             \\
\K\curlyz           & \K\invv           & \K\revepsilon       & \K[\WSUthorn]\thorn \\
\K\dlbari           & \K\invw           & \K\revglotstop      & \K\tildel           \\
\K\dz               & \K\invy           & \K\scd              & \K\yogh             \\
\K\ejective         & \K\ipagamma       & \K\scg              \\
\end{longtable}
\end{longsymtable}


\begin{symtable}{Text-Mode Accents}
\index{accents}
\label{text-accents}
\ifFC
  \begin{tabular}{*3{ll@{\hspace*{3em}}}ll}
  \Q\" & \Q\`          & \Q\H          & \Q\u \\
  \Q\' & \Q\b          & \Qt\k$^\dag$  & \Q\v \\
  \Q\. & \Q\c          & \Q\r          & \Q\~ \\
  \Q\= & \Q\d          & \Q\t          \\
  \Q\^ & \Qf\G$^\ddag$ & \Qf\U$^\ddag$ \\
  \end{tabular}
\else
  \begin{tabular}{*3{ll@{\hspace*{3em}}}ll}
  \Q\"    & \Q\^    & \Q\d         & \Q\t    \\
  \Q\'    & \Q\`    & \Q\H         & \Q\u    \\
  \Q\.    & \Q\b    & \Qt\k$^\dag$ & \Q\v    \\
  \Q\=    & \Q\c    & \Q\r         & \Q\~    \\
  \end{tabular}
\fi    % FC test
\par\medskip
\begin{tabular}{ll@{\hspace*{3em}}ll}
\Q\newtie$^*$ & \Qc\textcircled
\end{tabular}

\bigskip
\begin{tablenote}[*]
  Requires the \TC\ package.
\end{tablenote}

\medskip
\begin{tablenote}[\dag]
  Not available in the OT1 \fntenc[OT1].  Use the \pkgname{fontenc}
  package to select an alternate \fntenc[T1], such as T1.
\end{tablenote}

\ifFC
\medskip
\begin{tablenote}[\ddag]
  Requires the T4 \fntenc[T4], provided by the \FC\ package.
\end{tablenote}
\fi

\bigskip
\begin{tablenote}
  \index{dotless i=dotless $i~(\imath)$>text mode}
  \index{dotless j=dotless $j~(\jmath)$>text mode}
  Also note the existence of \cmdI{\i} and \cmdI{\j}, which produce
  dotless versions of ``i'' and ``j'' (viz., ``\i'' and ``\j'').  These
  are useful when the accent is supposed to replace the dot.  For
  example, ``\verb|na\"{\i}ve|'' produces a correct ``na\"{\i}ve'',
  while ``\verb|na\"{i}ve|'' would yield the rather odd-looking
  ``na\"{i}ve''.  (``\verb|na\"{i}ve|'' \emph{does} work in encodings
  other than OT1, however.)
\end{tablenote}
\end{symtable}


\begin{longsymtable}[TIPA]{\TIPA\ Text-Mode Accents}
\ltindex{accents}
\label{tipa-accents}
\renewcommand{\arraystretch}{1.25}  % Keep high and low accents from touching.
\begin{longtable}{ll}
\multicolumn{2}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{2}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\Q\textacutemacron      \\
\Q\textacutewedge       \\
\Q\textadvancing        \\
\Q\textbottomtiebar     \\
\Q\textbrevemacron      \\
\Q\textcircumacute      \\
\Q\textcircumdot        \\
\Q\textdotacute         \\
\Q\textdotbreve         \\
\Q\textdotbreve         \\
\Q\textdoublegrave      \\
\Q\textdoublevbaraccent \\
\Q\textgravecircum      \\
\Q\textgravedot         \\
\Q\textgravemacron      \\
\Q\textgravemid         \\
\Q\textinvsubbridge     \\
\Q\textlowering         \\
\Q\textmidacute         \\
\Q\textovercross        \\
\Q\textoverw            \\
\Q\textpolhook          \\
\Q\textraising          \\
\Q\textretracting       \\
\Q\textringmacron       \\
\Q\textroundcap         \\
\Q\textseagull          \\
\Q\textsubacute         \\
\Q\textsubarch          \\
\Q\textsubbar           \\
\Q\textsubbridge        \\
\Q\textsubcircum        \\
\Q\textsubdot           \\
\Q\textsubgrave         \\
\Q\textsublhalfring     \\
\Q\textsubplus          \\
\Q\textsubrhalfring     \\
\Q\textsubring          \\
\Q\textsubsquare        \\
\Q\textsubtilde         \\
\Q\textsubumlaut        \\
\Q\textsubw             \\
\Q\textsubwedge         \\
\Q\textsuperimposetilde \\
\Q\textsyllabic         \\
\Q\texttildedot         \\
\Q\texttoptiebar        \\
\Q\textvbaraccent       \\
\end{longtable}

\begin{tablenote}
  \TIPA\ defines shortcut sequences for many of the above.  See the
  \TIPA\ documentation for more information.
\end{tablenote}
\end{longsymtable}


\begin{symtable}[WIPA]{\WIPA\ Text-Mode Accents}
\index{accents}
\label{wipa-accents}
\renewcommand{\arraystretch}{1.25}  % Keep high and low accents from touching.
\begin{tabular}{ll}
\Q\dental \\
\Q\underarch
\end{tabular}
\end{symtable}


\begin{symtable}[WIPA]{\WIPA\ Diacritics}
\index{accents}
\label{wipa-diacritics}
\renewcommand{\arraystretch}{1.25}  % Keep high and low accents from touching.
\begin{tabular}{*5{ll}}
\K\ain        & \K\leftp    & \K\overring   & \K\stress     & \K\underwedge \\
\K\corner     & \K\leftt    & \K\polishhook & \K\syllabic   & \K\upp        \\
\K\downp      & \K\length   & \K\rightp     & \K\underdots  & \K\upt        \\
\K\downt      & \K\midtilde & \K\rightt     & \K\underring  \\
\K\halflength & \K\open     & \K\secstress  & \K\undertilde \\
\end{tabular}

\bigskip
\begin{tablenote}
  The \WIPA\ package defines all of the above as ordinary characters,
  not as accents.  However, it does provide \cmd{\diatop} and
  \cmd{\diaunder} commands, which are used to compose diacritics with
  other characters.  For example, \verb+\diatop[\overring|a]+ produces
  ``\diatop[\overring|a]'', and \verb+\diaunder[\underdots|a]+
  produces ``\diaunder[\underdots|a]''.  See the \WIPA\ documentation
  for more information.
\end{tablenote}
\end{symtable}


\begin{symtable}{\TC\ Diacritics}
\index{accents}
\label{tc-accent-chars}
\begin{tabular}{*3{ll}}
\K\textacutedbl      & \K\textasciicaron    & \K\textasciimacron \\
\K\textasciiacute    & \K\textasciidieresis & \K\textgravedbl    \\
\K\textasciibreve    & \K\textasciigrave    & \K\texttildelow    \\
\end{tabular}

\bigskip

\begin{tablenote}
  The \TC\ package defines all of the above as ordinary characters,
  not as accents.
\end{tablenote}
\end{symtable}


\begin{symtable}{\TC\ Currency Symbols}
\idxboth{currency}{symbols}
\label{tc-currency}
\begin{tabular}{*4{ll}}
\K\textbaht          & \K\textdollar         & \K\textguarani  & \K\textwon \\
\K\textcent          & \K\textdollaroldstyle & \K\textlira     & \K\textyen \\
\K\textcentoldstyle  & \K\textdong           & \K\textnaira    \\
\K\textcolonmonetary & \K\texteuro           & \K\textpeso     \\
\K\textcurrency      & \K\textflorin         & \K\textsterling \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Currency Symbols}
\idxboth{currency}{symbols}
\index{euro signs}
\label{marv-currency}
\begin{tabular}{*4{ll}ll}
\K\Denarius   & \K\EUR    & \K\EURdig   & \K\EURtm      & \K\Pfund      \\
\K\Ecommerce  & \K\EURcr  & \K\EURhv    & \K\EyesDollar & \K\Shilling   \\
\end{tabular}

\bigskip
\begin{tablenote}
  The different euro signs are meant to be compatible with different
  fonts---\PSfont{Courier} (\texttt{\string\EURcr}),
  \PSfont{Helvetica} (\texttt{\string\EURhv}), \PSfont{Times}
  (\texttt{\string\EURtm}), and the \MARV\ digits listed in
  Table~\ref{marv-math} (\texttt{\string\EURdig}).
\end{tablenote}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Currency Symbols}
\idxboth{currency}{symbols}
\label{wasy-currency}
\begin{tabular}{*2{ll}}
\K\cent & \K\currency \\
\end{tabular}
\end{symtable}


\begin{symtable}[EUSYM]{\EUSYM\ Euro Signs}
\idxboth{currency}{symbols}
\index{euro signs}
\label{eurosym-euros}
\begin{tabular}{*4{ll}}
\K\geneuro & \K\geneuronarrow & \K\geneurowide & \K\officialeuro \\
\end{tabular}

\bigskip

\begin{tablenote}
  \cmd{\euro} is automatically mapped to one of the above---by
  default, \cmdI{\officialeuro}---based on a \EUSYM\ package option.
  See the \EUSYM\ documentation for more information.  The
  \verb|\geneuro|\dots{} characters are generated from the current
  body font's ``C'' character and therefore may not appear exactly as
  shown.
\end{tablenote}
\end{symtable}


\begin{symtable}{\TC\ Legal Symbols}
\label{tc-legal}
\begin{tabular}{*2{lll@{\qquad}}lll}
\V\textcircledP & \V[\ltextcopyright]\textcopyright   & \V\textservicemark \\
\V\textcopyleft & \V[\ltextregistered]\textregistered & \V[\ltexttrademark]\texttrademark \\
\end{tabular}

\bigskip
\twosymbolmessage
\end{symtable}


\begin{symtable}{\TC\ Old-Style Numerals}
\idxboth{old-style}{digits}
\label{old-style-nums}
\begin{tabular}{*3{ll}}
\K\textzerooldstyle  & \K\textfouroldstyle  & \K\texteightoldstyle \\
\K\textoneoldstyle   & \K\textfiveoldstyle  & \K\textnineoldstyle  \\
\K\texttwooldstyle   & \K\textsixoldstyle   \\
\K\textthreeoldstyle & \K\textsevenoldstyle \\
\end{tabular}

\bigskip
\begin{tablenote}
  Rather than use the bulky \cmd{\textoneoldstyle},
  \cmd{\texttwooldstyle}, etc.\ commands shown above, consider using
  \cmd{\oldstylenums}\verb|{|$\ldots$\verb|}| to typeset an old-style
  number.
\end{tablenote}
\end{symtable}


\begin{symtable}{Miscellaneous \TC\ Symbols}
\index{musical notes}
\label{tc-misc}
\begin{tabular}{lll@{\qquad}lll}
\V\textasteriskcentered     & \V\textopenbullet           \\
\V\textbardbl               & \V[\ltextordfeminine]\textordfeminine \\
\V\textbigcircle            & \V[\ltextordmasculine]\textordmasculine \\
\V\textblank                & \V\textparagraph            \\
\V\textbrokenbar            & \V\textperiodcentered       \\
\V\textbullet               & \V\textpertenthousand       \\
\V\textdagger               & \V\textperthousand          \\
\V\textdaggerdbl            & \V\textpilcrow              \\
\V\textdblhyphen            & \V\textquotesingle          \\
\V\textdblhyphenchar        & \V\textquotestraightbase    \\
\V\textdiscount             & \V\textquotestraightdblbase \\
\V\textestimated            & \V\textrecipe               \\
\V\textinterrobang          & \V\textreferencemark        \\
\V\textinterrobangdown      & \V\textsection              \\
\V\textmusicalnote          & \V\textthreequartersemdash  \\
\V\textnumero               & \V\texttwelveudash          \\
\end{tabular}

\bigskip
\twosymbolmessage
\end{symtable}


\begin{symtable}[WASY]{Miscellaneous \WASY\ Text-Mode Symbols}
\label{wasy-text}
\begin{tabular}{ll}
\K\permil \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Commands Defined to Work in Both Math and Text Mode}
\label{ams-math-text}
\begin{tabular}{*2{ll@{\qquad}}ll}
\X\checkmark & \X\circledR & \X\maltese
\end{tabular}
\end{symtable}

\idxbothend{body-text}{symbols}


\section{Mathematical symbols}
\label{math-symbols}
\idxbothbegin{mathematical}{symbols}

Most, but not all, of the symbols in this section are math-mode only.
That is, they yield a ``\texttt{Missing~\$ inserted}''\index{Missing
\$ inserted=``\texttt{Missing~\$ inserted}''} error message if not
used within \verb|$|$\ldots$\verb|$|, \verb|\[|$\ldots$\verb|\]|, or
another math-mode environment.  Operators marked as ``variable-sized''
are taller in displayed formulas, shorter in in-text formulas, and
possibly shorter still when used in various levels of superscripts or
subscripts.

\ifcomplete
Alphanumeric symbols (e.g., ``$\!\mathscr{L}\,$'' and
``$\varmathbb{Z}$'') are usually produced using one of the math
alphabets in Table~\ref{alphabets} rather than with an explicit symbol
command.  Look there first if you need a symbol for a transform,
number set, or some other alphanumeric.

\idxboth{contradiction}{symbols} Although there have been many
requests on \ctt for a contradiction symbol, the ensuing discussion
invariably reveals innumerable ways to represent contradiction in a
proof, including ``\blitza''~(\cmdI{\blitza}),
``$\Rightarrow\Leftarrow$''~(\cmdX{\Rightarrow}\cmdX{\Leftarrow}),
``$\bot$''~(\cmdX{\bot}),
``$\nleftrightarrow$''~(\cmdX{\nleftrightarrow}), and
``\textreferencemark''~(\cmdI{\textreferencemark}).  Because of the
lack of notational consensus, it is probably better to spell out
``Contradiction!''\ than to use a symbol for this purpose.  Similarly,
discussions on \ctt have revealed that there are a variety of ways to
indicate the mathematical notion of ``is
defined\idxboth{definition}{symbols} as''.  Common candidates include
``$\triangleq$''~(\cmdX{\triangleq}), ``$\equiv$''~(\cmdX{\equiv}),
``$\coloneqq$''~(\cmdX{\coloneqq}), and ``$\stackrel{\text{\tiny
def}}{=}$''~(\cmd{\stackrel}\verb|{|\cmd{\text}\verb|{\tiny|
\verb|def}}{=}|).

\fi

\bigskip

\begin{symtable}{Binary Operators}
\idxboth{binary}{operators}
\label{bin}
\begin{tabular}{*4{ll}}
\X\amalg           & \X\cup          & \X\oplus    & \X\times           \\
\X\ast             & \X\dagger       & \X\oslash   & \X\triangleleft    \\
\X\bigcirc         & \X\ddagger      & \X\otimes   & \X\triangleright   \\
\X\bigtriangledown & \X\diamond      & \X\pm       & \X\unlhd$^*$       \\
\X\bigtriangleup   & \X\div          & \X\rhd$^*$  & \X\unrhd$^*$       \\
\X\bullet          & \X\lhd$^*$      & \X\setminus & \X\uplus           \\
\X\cap             & \X\mp           & \X\sqcap    & \X\vee             \\
\X\cdot            & \X\odot         & \X\sqcup    & \X\wedge           \\
\X\circ            & \X\ominus       & \X\star     & \X\wr              \\
\end{tabular}

\bigskip
\notpredefinedmessage
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Binary Operators}
\idxboth{binary}{operators}
\index{semidirect products}
\label{ams-bin}
\begin{tabular}{*3{ll}}
\X\barwedge        & \X\circledcirc     & \X\intercal        \\
\X\boxdot          & \X\circleddash     & \X\leftthreetimes  \\
\X\boxminus        & \X\Cup             & \X\ltimes          \\
\X\boxplus         & \X\curlyvee        & \X\rightthreetimes \\
\X\boxtimes        & \X\curlywedge      & \X\rtimes          \\
\X\Cap             & \X\divideontimes   & \X\smallsetminus   \\
\X\centerdot       & \X\dotplus         & \X\veebar          \\
\X\circledast      & \X\doublebarwedge  \\
\end{tabular}
\end{symtable}


\begin{symtable}[ST]{\ST\ Binary Operators}
\idxboth{binary}{operators}
\label{st-bin}
\begin{tabular}{*3{ll}}
\X\baro                & \X\interleave          & \X\varoast             \\
\X\bbslash             & \X\leftslice           & \X\varobar             \\
\X\binampersand        & \X\merge               & \X\varobslash          \\
\X\bindnasrepma        & \X\minuso              & \X\varocircle          \\
\X\boxast              & \X\moo                 & \X\varodot             \\
\X\boxbar              & \X\nplus               & \X\varogreaterthan     \\
\X\boxbox              & \X\obar                & \X\varolessthan        \\
\X\boxbslash           & \X\oblong              & \X\varominus           \\
\X\boxcircle           & \X\obslash             & \X\varoplus            \\
\X\boxdot              & \X\ogreaterthan        & \X\varoslash           \\
\X\boxempty            & \X\olessthan           & \X\varotimes           \\
\X\boxslash            & \X\ovee                & \X\varovee             \\
\X\curlyveedownarrow   & \X\owedge              & \X\varowedge           \\
\X\curlyveeuparrow     & \X\rightslice          & \X\vartimes            \\
\X\curlywedgedownarrow & \X\sslash              & \X\Ydown               \\
\X\curlywedgeuparrow   & \X\talloblong          & \X\Yleft               \\
\X\fatbslash           & \X\varbigcirc          & \X\Yright              \\
\X\fatsemi             & \X\varcurlyvee         & \X\Yup                 \\
\X\fatslash            & \X\varcurlywedge       \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Binary Operators}
\idxboth{binary}{operators}
\label{wasy-bin}
\begin{tabular}{*4{ll}}
\X\lhd & \X\ocircle & \X\RHD   & \X\unrhd \\
\X\LHD & \X\rhd     & \X\unlhd            \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Binary Operators}
\idxboth{binary}{operators}
\label{txpx-bin}
\begin{tabular}{*3{ll}}
\X\circledbar    & \X\circledwedge  & \X\medcirc       \\
\X\circledbslash & \X\invamp        & \X\sqcapplus     \\
\X\circledvee    & \X\medbullet     & \X\sqcupplus     \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Binary Operators}
\idxboth{binary}{operators}
\index{asterisks}
\index{semidirect products}
\label{abx-bin}
\begin{tabular}{*3{ll}}
\X[\ABXast]\ast                   & \X[\ABXcurlywedge]\curlywedge         & \X[\ABXsqcap]\sqcap               \\
\X[\ABXAsterisk]\Asterisk         & \X[\ABXdivdot]\divdot                 & \X[\ABXsqcup]\sqcup               \\
\X[\ABXbarwedge]\barwedge         & \X[\ABXdivideontimes]\divideontimes   & \X[\ABXsqdoublecap]\sqdoublecap   \\
\X[\ABXbigstar]\bigstar           & \X[\ABXdotdiv]\dotdiv                 & \X[\ABXsqdoublecup]\sqdoublecup   \\
\X[\ABXbigvarstar]\bigvarstar     & \X[\ABXdotplus]\dotplus               & \X[\ABXsquare]\square             \\
\X[\ABXblackdiamond]\blackdiamond & \X[\ABXdottimes]\dottimes             & \X[\ABXsquplus]\squplus           \\
\X[\ABXcap]\cap                   & \X[\ABXdoublebarwedge]\doublebarwedge & \X[\ABXudot]\udot                 \\
\X[\ABXcircplus]\circplus         & \X[\ABXdoublecap]\doublecap           & \X[\ABXuplus]\uplus               \\
\X[\ABXcoasterisk]\coasterisk     & \X[\ABXdoublecup]\doublecup           & \X[\ABXvarstar]\varstar           \\
\X[\ABXcoAsterisk]\coAsterisk     & \X[\ABXltimes]\ltimes                 & \X[\ABXvee]\vee                   \\
\X[\ABXconvolution]\convolution   & \X[\ABXpluscirc]\pluscirc             & \X[\ABXveebar]\veebar             \\
\X[\ABXcup]\cup                   & \X[\ABXrtimes]\rtimes                 & \X[\ABXveedoublebar]\veedoublebar \\
\X[\ABXcurlyvee]\curlyvee         & \X[\ABXsqbullet]\sqbullet             & \X[\ABXwedge]\wedge               \\
\end{tabular}

\bigskip

\begin{tablenote}
  Many of the above glyphs go by multiple names.
  \cmdI[$\string\ABXcenterdot$]{\centerdot} is equivalent to
  \cmdI[$\string\ABXsqbullet$]{\sqbullet}, and
  \cmdI[$\string\ABXast$]{\ast} is equivalent to \cmdI{*}.
  \cmdI[$\string\ABXasterisk$]{\asterisk} produces the same glyph as
  \cmdI[$\string\ABXast$]{\ast}, but as an ordinary symbol, not a
  binary operator.  Similarly, \cmdI[$\string\ABXbigast$]{\bigast}
  produces a large-operator version of the
  \cmdI[$\string\ABXAsterisk$]{\Asterisk} binary operator, and
  \cmdI[$\string\ABXbigcoast$]{\bigcoast} produces a large-operator
  version of the \cmdI[$\string\ABXcoAsterisk$]{\coAsterisk} binary
  operator.
\end{tablenote}
\end{symtable}


\begin{symtable}[ULSY]{\ULSY\ Geometric Binary Operators}
\idxboth{binary}{operators}
\label{ulsy-geometric-bin}
\begin{tabular}{ll}
\K\odplus \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Geometric Binary Operators}
\idxboth{binary}{operators}
\label{abx-geometric-bin}
\begin{tabular}{*3{ll}}
\X[\ABXblacktriangledown]\blacktriangledown   & \X[\ABXboxright]\boxright           & \X[\ABXominus]\ominus                         \\
\X[\ABXblacktriangleleft]\blacktriangleleft   & \X[\ABXboxslash]\boxslash           & \X[\ABXoplus]\oplus                           \\
\X[\ABXblacktriangleright]\blacktriangleright & \X[\ABXboxtimes]\boxtimes           & \X[\ABXoright]\oright                         \\
\X[\ABXblacktriangleup]\blacktriangleup       & \X[\ABXboxtop]\boxtop               & \X[\ABXoslash]\oslash                         \\
\X[\ABXboxasterisk]\boxasterisk               & \X[\ABXboxtriangleup]\boxtriangleup & \X[\ABXotimes]\otimes                         \\
\X[\ABXboxbackslash]\boxbackslash             & \X[\ABXboxvoid]\boxvoid             & \X[\ABXotop]\otop                             \\
\X[\ABXboxbot]\boxbot                         & \X[\ABXoasterisk]\oasterisk         & \X[\ABXotriangleup]\otriangleup               \\
\X[\ABXboxcirc]\boxcirc                       & \X[\ABXobackslash]\obackslash       & \X[\ABXovoid]\ovoid                           \\
\X[\ABXboxcoasterisk]\boxcoasterisk           & \X[\ABXobot]\obot                   & \X[\ABXsmalltriangledown]\smalltriangledown   \\
\X[\ABXboxdiv]\boxdiv                         & \X[\ABXocirc]\ocirc                 & \X[\ABXsmalltriangleleft]\smalltriangleleft   \\
\X[\ABXboxdot]\boxdot                         & \X[\ABXocoasterisk]\ocoasterisk     & \X[\ABXsmalltriangleright]\smalltriangleright \\
\X[\ABXboxleft]\boxleft                       & \X[\ABXodiv]\odiv                   & \X[\ABXsmalltriangleup]\smalltriangleup       \\
\X[\ABXboxminus]\boxminus                     & \X[\ABXodot]\odot                                                                   \\
\X[\ABXboxplus]\boxplus                       & \X[\ABXoleft]\oleft                                                                 \\
\end{tabular}
\end{symtable}



\begin{symtable}{Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\label{op}
\renewcommand{\arraystretch}{1.75}  % Keep tall symbols from touching.
\begin{tabular}{*3{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
\R\bigcap    & \R\bigotimes & \R\bigwedge  & \R\prod      \\
\R\bigcup    & \R\bigsqcup  & \R\coprod    & \R\sum       \\
\R\bigodot   & \R\biguplus  & \R\int       \\
\R\bigoplus  & \R\bigvee    & \R\oint      \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\label{ams-large}
\renewcommand{\arraystretch}{1.85}  % Keep tall symbols from touching.
\begin{tabular}{l@{$\:$}ll@{\qquad}l@{$\:$}ll}
\R\idotsint & \R\iiint \\
\R\iiiint   & \R\iint  \\
\end{tabular}
\end{symtable}


\begin{symtable}[ST]{\ST\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\label{st-large}
\renewcommand{\arraystretch}{1.75}  % Keep tall symbols from touching.
\begin{tabular}{*2{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
\R\bigbox        & \R\biginterleave & \R\bigsqcap                            \\
\R\bigcurlyvee   & \R\bignplus      & \R[\STbigtriangledown]\bigtriangledown \\
\R\bigcurlywedge & \R\bigparallel   & \R[\STbigtriangleup]\bigtriangleup     \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\label{wasy-large}
\renewcommand{\arraystretch}{1.85}  % Keep tall symbols from touching.
\begin{tabular}{*2{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
\R\iiint & \R\oiint  & \R\varoint \\
\R\iint  & \R\varint              \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\label{abx-large}
\renewcommand{\arraystretch}{1.75}  % Keep tall symbols from touching.
\begin{tabular}{*2{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
\R[\ABXbigcurlyvee]\bigcurlyvee            & \R[\ABXbigboxslash]\bigboxslash           & \R[\ABXbigoright]\bigoright           \\
\R[\ABXbigsqcap]\bigsqcap                  & \R[\ABXbigboxtimes]\bigboxtimes           & \R[\ABXbigoslash]\bigoslash           \\
\R[\ABXbigcurlywedge]\bigcurlywedge        & \R[\ABXbigboxtop]\bigboxtop               & \R[\ABXbigotop]\bigotop               \\
\R[\ABXbigboxasterisk]\bigboxasterisk      & \R[\ABXbigboxtriangleup]\bigboxtriangleup & \R[\ABXbigotriangleup]\bigotriangleup \\
\R[\ABXbigboxbackslash]\bigboxbackslash    & \R[\ABXbigboxvoid]\bigboxvoid             & \R[\ABXbigovoid]\bigovoid             \\
\R[\ABXbigboxbot]\bigboxbot                & \R[\ABXbigcomplementop]\bigcomplementop   & \R[\ABXbigplus]\bigplus               \\
\R[\ABXbigboxcirc]\bigboxcirc              & \R[\ABXbigoasterisk]\bigoasterisk         & \R[\ABXbigsquplus]\bigsquplus         \\
\R[\ABXbigboxcoasterisk]\bigboxcoasterisk  & \R[\ABXbigobackslash]\bigobackslash       & \R[\ABXbigtimes]\bigtimes             \\
\R[\ABXbigboxdiv]\bigboxdiv                & \R[\ABXbigobot]\bigobot                   & \R[\ABXiiintop]\iiint                 \\
\R[\ABXbigboxdot]\bigboxdot                & \R[\ABXbigocirc]\bigocirc                 & \R[\ABXiintop]\iint                   \\
\R[\ABXbigboxleft]\bigboxleft              & \R[\ABXbigocoasterisk]\bigocoasterisk     & \R[\ABXintop]\int                     \\
\R[\ABXbigboxminus]\bigboxminus            & \R[\ABXbigodiv]\bigodiv                   & \R[\ABXoiintop]\oiint                 \\
\R[\ABXbigboxplus]\bigboxplus              & \R[\ABXbigoleft]\bigoleft                 & \R[\ABXointop]\oint                   \\
\R[\ABXbigboxright]\bigboxright            & \R[\ABXbigominus]\bigominus                                                       \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\label{txpx-large}
\renewcommand{\arraystretch}{1.85}  % Keep tall symbols from touching.
\begin{tabular}{l@{$\:$}ll@{\hspace{4em}}l@{$\:$}ll}
\R\bigsqcapplus       & \R\ointclockwise         \\
\R\bigsqcupplus       & \R\ointctrclockwise      \\
\R\fint               & \R\sqiiint               \\
\R\idotsint           & \R\sqiint                \\
\R\iiiint             & \R\sqint                 \\
\R\iiint              & \R\varoiiintclockwise    \\
\R\iint               & \R\varoiiintctrclockwise \\
\R\oiiintclockwise    & \R\varoiintclockwise     \\
\R\oiiintctrclockwise & \R\varoiintctrclockwise  \\
\R\oiiint             & \R\varointclockwise      \\
\R\oiintclockwise     & \R\varointctrclockwise   \\
\R\oiintctrclockwise  & \R\varprod               \\
\R\oiint                                         \\
\end{tabular}
\end{symtable}


\begin{symtable}[ES]{\ES\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\label{es-large}
\renewcommand{\arraystretch}{1.85}  % Keep tall symbols from touching.
\begin{tabular}{*2{l@{\quad}ll@{\hspace{4em}}}l@{\quad}ll}
\E{dotsint}     & \E{ointclockwise}       \\
\E{fint}        & \E{ointctrclockwise}    \\
\E{iiiint}      & \E{sqiint}              \\
\E{iiint}       & \E{sqint}               \\
\E{iint}        & \E{varoiint}            \\
\E{landdownint} & \E{varointclockwise}    \\
\E{landupint}   & \E{varointctrclockwise} \\
\E{oiint}                                 \\
\end{tabular}
\end{symtable}


\begin{symtable}{Binary Relations}
\idxboth{relational}{symbols}
\index{tacks}
\label{rel}
\begin{tabular}{*4{ll}}
\X\approx   & \X\equiv    & \X\perp     & \X\smile  \\
\X\asymp    & \X\frown    & \X\prec     & \X\succ   \\
\X\bowtie   & \X\Join$^*$ & \X\preceq   & \X\succeq \\
\X\cong     & \X\mid      & \X\propto   & \X\vdash  \\
\X\dashv    & \X\models   & \X\sim                  \\
\X\doteq    & \X\parallel & \X\simeq                \\
\end{tabular}

\bigskip
\notpredefinedmessageABX
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{ams-rel}
\begin{tabular}{*3{ll}}
\X\approxeq      & \X\eqcirc        & \X\succapprox    \\
\X\backepsilon   & \X\fallingdotseq & \X\succcurlyeq   \\
\X\backsim       & \X\multimap      & \X\succsim       \\
\X\backsimeq     & \X\pitchfork     & \X\therefore     \\
\X\because       & \X\precapprox    & \X\thickapprox   \\
\X\between       & \X\preccurlyeq   & \X\thicksim      \\
\X\Bumpeq        & \X\precsim       & \X\varpropto     \\
\X\bumpeq        & \X\risingdotseq  & \X\Vdash         \\
\X\circeq        & \X\shortmid      & \X\vDash         \\
\X\curlyeqprec   & \X\shortparallel & \X\Vvdash        \\
\X\curlyeqsucc   & \X\smallfrown    &                  \\
\X\doteqdot      & \X\smallsmile    &                  \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Negated Binary Relations}
\index{binary relations>negated}
\index{relational symbols>negated binary}
\label{ams-nrel}
\begin{tabular}{*3{ll}}
\X\ncong     & \X\nshortparallel & \X\nVDash      \\
\X\nmid      & \X\nsim           & \X\precnapprox \\
\X\nparallel & \X\nsucc          & \X\precnsim    \\
\X\nprec     & \X\nsucceq        & \X\succnapprox \\
\X\npreceq   & \X\nvDash         & \X\succnsim    \\
\X\nshortmid & \X\nvdash                          \\
\end{tabular}
\end{symtable}


\begin{symtable}[ST]{\ST\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{st-rel}
\begin{tabular}{*2{ll}}
\X\inplus & \X\niplus \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{wasy-rel}
\begin{tabular}{*3{ll}}
\X\invneg & \X\leadsto & \X\wasypropto \\
\X\Join   & \X\logof                   \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{txpx-rel}
\begin{tabular}{*3{ll}}
\X\circledgtr  & \X\lJoin                & \X\opentimes      \\
\X\circledless & \X\lrtimes              & \X\Perp           \\
\X\colonapprox & \X\multimap             & \X\preceqq        \\
\X\Colonapprox & \X\multimapboth         & \X\precneqq       \\
\X\coloneq     & \X\multimapbothvert     & \X\rJoin          \\
\X\Coloneq     & \X\multimapdot          & \X\strictfi       \\
\X\Coloneqq    & \X\multimapdotboth      & \X\strictif       \\
\X\coloneqq    & \X\multimapdotbothA     & \X\strictiff      \\
\X\Colonsim    & \X\multimapdotbothAvert & \X\succeqq        \\
\X\colonsim    & \X\multimapdotbothB     & \X\succneqq       \\
\X\Eqcolon     & \X\multimapdotbothBvert & \X\varparallel    \\
\X\eqcolon     & \X\multimapdotbothvert  & \X\varparallelinv \\
\X\eqqcolon    & \X\multimapdotinv       & \X\VvDash         \\
\X\Eqqcolon    & \X\multimapinv                              \\
\X\eqsim       & \X\openJoin                                 \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Negated Binary Relations}
\index{binary relations>negated}
\index{relational symbols>negated binary}
\label{txpx-nrel}
\begin{tabular}{*3{ll}}
\X\napproxeq   & \X\npreccurlyeq & \X\nthickapprox       \\
\X\nasymp      & \X\npreceqq     & \X\ntwoheadleftarrow  \\
\X\nbacksim    & \X\nprecsim     & \X\ntwoheadrightarrow \\
\X\nbacksimeq  & \X\nsimeq       & \X\nvarparallel       \\
\X\nbumpeq     & \X\nsuccapprox  & \X\nvarparallelinv    \\
\X\nBumpeq     & \X\nsucccurlyeq & \X\nVdash             \\
\X\nequiv      & \X\nsucceqq                             \\
\X\nprecapprox & \X\nsuccsim                             \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{abx-rel}
\begin{tabular}{*3{ll}}
\X[\ABXbetween]\between         & \X[\ABXdivides]\divides             & \X[\ABXrisingdotseq]\risingdotseq \\
\X[\ABXbotdoteq]\botdoteq       & \X[\ABXdotseq]\dotseq               & \X[\ABXsuccapprox]\succapprox     \\
\X[\ABXBumpedeq]\Bumpedeq       & \X[\ABXeqbumped]\eqbumped           & \X[\ABXsucccurlyeq]\succcurlyeq   \\
\X[\ABXbumpedeq]\bumpedeq       & \X[\ABXeqcirc]\eqcirc               & \X[\ABXsuccdot]\succdot           \\
\X[\ABXcirceq]\circeq           & \X[\ABXeqcolon]\eqcolon             & \X[\ABXsuccsim]\succsim           \\
\X[\ABXcoloneq]\coloneq         & \X[\ABXfallingdotseq]\fallingdotseq & \X[\ABXtherefore]\therefore       \\
\X[\ABXcorresponds]\corresponds & \X[\ABXggcurly]\ggcurly             & \X[\ABXtopdoteq]\topdoteq         \\
\X[\ABXcurlyeqprec]\curlyeqprec & \X[\ABXllcurly]\llcurly             & \X[\ABXvDash]\vDash               \\
\X[\ABXcurlyeqsucc]\curlyeqsucc & \X[\ABXprecapprox]\precapprox       & \X[\ABXVdash]\Vdash               \\
\X[\ABXDashV]\DashV             & \X[\ABXpreccurlyeq]\preccurlyeq     & \X[\ABXVDash]\VDash               \\
\X[\ABXDashv]\Dashv             & \X[\ABXprecdot]\precdot             & \X[\ABXVvdash]\Vvdash             \\
\X[\ABXdashVv]\dashVv           & \X[\ABXprecsim]\precsim                                                 \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Negated Binary Relations}
\index{binary relations>negated}\index{relational symbols>negated binary}
\label{abx-nrel}
\begin{tabular}{*3{ll}}
\X[\ABXnapprox]\napprox           & \X[\ABXnotperp]\notperp           & \X[\ABXnvDash]\nvDash           \\
\X[\ABXncong]\ncong               & \X[\ABXnprec]\nprec               & \X[\ABXnVDash]\nVDash           \\
\X[\ABXncurlyeqprec]\ncurlyeqprec & \X[\ABXnprecapprox]\nprecapprox   & \X[\ABXnVdash]\nVdash           \\
\X[\ABXncurlyeqsucc]\ncurlyeqsucc & \X[\ABXnpreccurlyeq]\npreccurlyeq & \X[\ABXnvdash]\nvdash           \\
\X[\ABXnDashv]\nDashv             & \X[\ABXnpreceq]\npreceq           & \X[\ABXnVvash]\nVvash           \\
\X[\ABXndashV]\ndashV             & \X[\ABXnprecsim]\nprecsim         & \X[\ABXprecnapprox]\precnapprox \\
\X[\ABXndashv]\ndashv             & \X[\ABXnsim]\nsim                 & \X[\ABXprecneq]\precneq         \\
\X[\ABXnDashV]\nDashV             & \X[\ABXnsimeq]\nsimeq             & \X[\ABXprecnsim]\precnsim       \\
\X[\ABXndashVv]\ndashVv           & \X[\ABXnsucc]\nsucc               & \X[\ABXsuccnapprox]\succnapprox \\
\X[\ABXneq]\neq                   & \X[\ABXnsuccapprox]\nsuccapprox   & \X[\ABXsuccneq]\succneq         \\
\X[\ABXnotasymp]\notasymp         & \X[\ABXnsucccurlyeq]\nsucccurlyeq & \X[\ABXsuccnsim]\succnsim       \\
\X[\ABXnotdivides]\notdivides     & \X[\ABXnsucceq]\nsucceq                                             \\
\X[\ABXnotequiv]\notequiv         & \X[\ABXnsuccsim]\nsuccsim                                           \\
\end{tabular}

\bigskip

\begin{tablenote}
  \index{not equal=not equal ($\ABXvarnotsign!=$ vs.\ $\ABXnotsign!=$)}
  The \cmd{\changenotsign} command toggles the behavior of \cmd{\not}
  to produce either a vertical or a diagonal slash through a binary
  operator.  Thus, ``\verb|$a \not= b$|'' can be made to produce
  either ``$a \ABXnotsign= b$'' or ``$a \ABXvarnotsign= b$''.
\end{tablenote}
\end{symtable}


\begin{symtable}{Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{subsets}
\begin{tabular}{*3{ll}}
\X\sqsubset$^*$ & \X\sqsupseteq & \X\supset   \\
\X\sqsubseteq   & \X\subset     & \X\supseteq \\
\X\sqsupset$^*$ & \X\subseteq                 \\
\end{tabular}

\bigskip
\notpredefinedmessageABX
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{ams-subsets}
\begin{tabular}{*3{ll}}
\X\nsubseteq  & \X\subseteqq  & \X\supsetneqq    \\
\X\nsupseteq  & \X\subsetneq  & \X\varsubsetneq  \\
\X\nsupseteqq & \X\subsetneqq & \X\varsubsetneqq \\
\X\sqsubset   & \X\Supset     & \X\varsupsetneq  \\
\X\sqsupset   & \X\supseteqq  & \X\varsupsetneqq \\
\X\Subset     & \X\supsetneq                     \\
\end{tabular}
\end{symtable}


\begin{symtable}[ST]{\ST\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{st-subsets}
\begin{tabular}{*2{ll}}
\X\subsetplus   & \X\supsetplus   \\
\X\subsetpluseq & \X\supsetpluseq \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{wasy-subset}
\begin{tabular}{*2{ll}}
\X\sqsubset & \X\sqsupset \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{txpx-subset}
\begin{tabular}{*3{ll}}
\X\nsqsubset   & \X\nsqsupseteq & \X\nSupset \\
\X\nsqsubseteq & \X\nSubset                  \\
\X\nsqsupset   & \X\nsubseteqq               \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{abx-subsets}
\begin{tabular}{*4{ll}}
\X[\ABXnsqsubset]\nsqsubset             & \X[\ABXnsupset]\nsupset                 & \X[\ABXsqsupseteq]\sqsupseteq           & \X[\ABXsupseteq]\supseteq               \\
\X[\ABXnsqSubset]\nsqSubset             & \X[\ABXnSupset]\nSupset                 & \X[\ABXsqsupseteqq]\sqsupseteqq         & \X[\ABXsupseteqq]\supseteqq             \\
\X[\ABXnsqsubseteq]\nsqsubseteq         & \X[\ABXnsupseteq]\nsupseteq             & \X[\ABXsqsupsetneq]\sqsupsetneq         & \X[\ABXsupsetneq]\supsetneq             \\
\X[\ABXnsqsubseteqq]\nsqsubseteqq       & \X[\ABXnsupseteqq]\nsupseteqq           & \X[\ABXsqsupsetneqq]\sqsupsetneqq       & \X[\ABXsupsetneqq]\supsetneqq           \\
\X[\ABXnsqsupset]\nsqsupset             & \X[\ABXsqsubset]\sqsubset               & \X[\ABXsubset]\subset                   & \X[\ABXvarsqsubsetneq]\varsqsubsetneq   \\
\X[\ABXnsqSupset]\nsqSupset             & \X[\ABXsqSubset]\sqSubset               & \X[\ABXSubset]\Subset                   & \X[\ABXvarsqsubsetneqq]\varsqsubsetneqq \\
\X[\ABXnsqsupseteq]\nsqsupseteq         & \X[\ABXsqsubseteq]\sqsubseteq           & \X[\ABXsubseteq]\subseteq               & \X[\ABXvarsqsupsetneq]\varsqsupsetneq   \\
\X[\ABXnsqsupseteqq]\nsqsupseteqq       & \X[\ABXsqsubseteqq]\sqsubseteqq         & \X[\ABXsubseteqq]\subseteqq             & \X[\ABXvarsqsupsetneqq]\varsqsupsetneqq \\
\X[\ABXnsubset]\nsubset                 & \X[\ABXsqsubsetneq]\sqsubsetneq         & \X[\ABXsubsetneq]\subsetneq             & \X[\ABXvarsubsetneq]\varsubsetneq       \\
\X[\ABXnSubset]\nSubset                 & \X[\ABXsqsubsetneqq]\sqsubsetneqq       & \X[\ABXsubsetneqq]\subsetneqq           & \X[\ABXvarsubsetneqq]\varsubsetneqq     \\
\X[\ABXnsubseteq]\nsubseteq             & \X[\ABXsqSupset]\sqSupset               & \X[\ABXsupset]\supset                   & \X[\ABXvarsupsetneq]\varsupsetneq       \\
\X[\ABXnsubseteqq]\nsubseteqq           & \X[\ABXsqsupset]\sqsupset               & \X[\ABXSupset]\Supset                   & \X[\ABXvarsupsetneqq]\varsupsetneqq     \\
\end{tabular}
\end{symtable}


\begin{symtable}{Inequalities}
\index{binary relations}\index{relational symbols>binary}
\index{inequalities}
\label{inequal-rel}
\begin{tabular}{*5{ll}}
\X\geq & \X\gg & \X\leq & \X\ll & \X\neq \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Inequalities}
\index{binary relations}\index{relational symbols>binary}
\index{inequalities}
\label{ams-inequal-rel}
\begin{tabular}{*3{ll}}
\X\eqslantgtr  & \X\gtrless     & \X\lneq      \\
\X\eqslantless & \X\gtrsim      & \X\lneqq     \\
\X\geqq        & \X\gvertneqq   & \X\lnsim     \\
\X\geqslant    & \X\leqq        & \X\lvertneqq \\
\X\ggg         & \X\leqslant    & \X\ngeq      \\
\X\gnapprox    & \X\lessapprox  & \X\ngeqq     \\
\X\gneq        & \X\lessdot     & \X\ngeqslant \\
\X\gneqq       & \X\lesseqgtr   & \X\ngtr      \\
\X\gnsim       & \X\lesseqqgtr  & \X\nleq      \\
\X\gtrapprox   & \X\lessgtr     & \X\nleqq     \\
\X\gtrdot      & \X\lesssim     & \X\nleqslant \\
\X\gtreqless   & \X\lll         & \X\nless     \\
\X\gtreqqless  & \X\lnapprox                   \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Inequalities}
\index{binary relations}\index{relational symbols>binary}
\index{inequalities}
\label{wasy-inequal-rel}
\begin{tabular}{*2{ll}}
\X\apprge & \X\apprle \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Inequalities}
\index{binary relations}\index{relational symbols>binary}
\index{inequalities}
\label{txpx-inequal-rel}
\begin{tabular}{*3{ll}}
\X\ngg         & \X\ngtrsim     & \X\nlesssim \\
\X\ngtrapprox  & \X\nlessapprox & \X\nll      \\
\X\ngtrless    & \X\nlessgtr                  \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Inequalities}
\index{binary relations}\index{relational symbols>binary}
\index{inequalities}
\label{abx-inequal-rel}
\begin{tabular}{*4{ll}}
\X[\ABXeqslantgtr]\eqslantgtr     & \X[\ABXgtreqless]\gtreqless       & \X[\ABXlesssim]\lesssim           & \X[\ABXngtr]\ngtr                 \\
\X[\ABXeqslantless]\eqslantless   & \X[\ABXgtreqqless]\gtreqqless     & \X[\ABXll]\ll                     & \X[\ABXngtrapprox]\ngtrapprox     \\
\X[\ABXgeq]\geq                   & \X[\ABXgtrless]\gtrless           & \X[\ABXlll]\lll                   & \X[\ABXngtrsim]\ngtrsim           \\
\X[\ABXgeqq]\geqq                 & \X[\ABXgtrsim]\gtrsim             & \X[\ABXlnapprox]\lnapprox         & \X[\ABXnleq]\nleq                 \\
\X[\ABXgg]\gg                     & \X[\ABXgvertneqq]\gvertneqq       & \X[\ABXlneq]\lneq                 & \X[\ABXnleqq]\nleqq               \\
\X[\ABXggg]\ggg                   & \X[\ABXleq]\leq                   & \X[\ABXlneqq]\lneqq               & \X[\ABXnless]\nless               \\
\X[\ABXgnapprox]\gnapprox         & \X[\ABXleqq]\leqq                 & \X[\ABXlnsim]\lnsim               & \X[\ABXnlessapprox]\nlessapprox   \\
\X[\ABXgneq]\gneq                 & \X[\ABXlessapprox]\lessapprox     & \X[\ABXlvertneqq]\lvertneqq       & \X[\ABXnlesssim]\nlesssim         \\
\X[\ABXgneqq]\gneqq               & \X[\ABXlessdot]\lessdot           & \X[\ABXneqslantgtr]\neqslantgtr   & \X[\ABXnvargeq]\nvargeq           \\
\X[\ABXgnsim]\gnsim               & \X[\ABXlesseqgtr]\lesseqgtr       & \X[\ABXneqslantless]\neqslantless & \X[\ABXnvarleq]\nvarleq           \\
\X[\ABXgtrapprox]\gtrapprox       & \X[\ABXlesseqqgtr]\lesseqqgtr     & \X[\ABXngeq]\ngeq                 & \X[\ABXvargeq]\vargeq             \\
\X[\ABXgtrdot]\gtrdot             & \X[\ABXlessgtr]\lessgtr           & \X[\ABXngeqq]\ngeqq               & \X[\ABXvarleq]\varleq             \\
\end{tabular}

\bigskip

\begin{tablenote}
  \ABX\ defines \verb|\leqslant| and \verb|\le| as synonyms for
  \cmdX{\leq}, \verb|\geqslant| and \verb|\ge| as synonyms for
  \cmdX{\geq}, \verb|\nleqslant| as a synonym for \cmdX{\nleq}, and
  \verb|\ngeqslant| as a synonym for \cmdX{\ngeq}.
\end{tablenote}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Triangle Relations}
\index{triangle relations}\index{relational symbols>triangle}
\label{ams-triangle-rel}
\begin{tabular}{*4{ll}}
\X\blacktriangleleft  & \X\ntrianglelefteq  & \X\trianglelefteq  & \X\vartriangleleft  \\
\X\blacktriangleright & \X\ntriangleright   & \X\triangleq       & \X\vartriangleright \\
\X\ntriangleleft      & \X\ntrianglerighteq & \X\trianglerighteq                       \\
\end{tabular}
\end{symtable}


\begin{symtable}[ST]{\ST\ Triangle Relations}
\index{triangle relations}\index{relational symbols>triangle}
\label{st-triangle-rel}
\begin{tabular}{*2{ll}}
\X\trianglelefteqslant  & \X\trianglerighteqslant  \\
\X\ntrianglelefteqslant & \X\ntrianglerighteqslant \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Triangle Relations}
\index{triangle relations}\index{relational symbols>triangle}
\label{abx-triangle-rel}
\begin{tabular}{*4{ll}}
\X[\ABXntriangleleft]\ntriangleleft       & \X[\ABXntrianglerighteq]\ntrianglerighteq & \X[\ABXtriangleright]\triangleright       & \X[\ABXvartriangleright]\vartriangleright \\
\X[\ABXntrianglelefteq]\ntrianglelefteq   & \X[\ABXtriangleleft]\triangleleft         & \X[\ABXtrianglerighteq]\trianglerighteq   &                                           \\
\X[\ABXntriangleright]\ntriangleright     & \X[\ABXtrianglelefteq]\trianglelefteq     & \X[\ABXvartriangleleft]\vartriangleleft   &                                           \\
\end{tabular}
\end{symtable}


\begin{symtable}{Arrows}
\index{arrows}
\label{arrow}
\begin{tabular}{*3{ll}}
\X\Downarrow          & \X\longleftarrow      & \X\nwarrow     \\
\X\downarrow          & \X\Longleftarrow      & \X\Rightarrow  \\
\X\hookleftarrow      & \X\longleftrightarrow & \X\rightarrow  \\
\X\hookrightarrow     & \X\Longleftrightarrow & \X\searrow     \\
\X\leadsto$^*$        & \X\longmapsto         & \X\swarrow     \\
\X\leftarrow          & \X\Longrightarrow     & \X\uparrow     \\
\X\Leftarrow          & \X\longrightarrow     & \X\Uparrow     \\
\X\Leftrightarrow     & \X\mapsto             & \X\updownarrow \\
\X\leftrightarrow     & \X\nearrow            & \X\Updownarrow \\
\end{tabular}

\bigskip
\notpredefinedmessage
\end{symtable}


\begin{symtable}{Harpoons}
\index{harpoons}
\label{harpoons}
\begin{tabular}{*3{ll}}
\X\leftharpoondown   & \X\rightharpoondown  & \X\rightleftharpoons \\
\X\leftharpoonup     & \X\rightharpoonup                           \\
\end{tabular}
\end{symtable}


\begin{symtable}{\TC\ Text-Mode Arrows}
\index{arrows}
\label{tc-arrows}
\begin{tabular}{*2{ll}}
\K\textdownarrow & \K\textrightarrow \\
\K\textleftarrow & \K\textuparrow    \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Arrows}
\index{arrows}
\label{ams-arrows}
\begin{tabular}{*3{ll}}
\X\circlearrowleft  & \X\leftleftarrows      & \X\rightleftarrows   \\
\X\circlearrowright & \X\leftrightarrows     & \X\rightrightarrows  \\
\X\curvearrowleft   & \X\leftrightsquigarrow & \X\rightsquigarrow   \\
\X\curvearrowright  & \X\Lleftarrow          & \X\Rsh               \\
\X\dashleftarrow    & \X\looparrowleft       & \X\twoheadleftarrow  \\
\X\dashrightarrow   & \X\looparrowright      & \X\twoheadrightarrow \\
\X\downdownarrows   & \X\Lsh                 & \X\upuparrows        \\
\X\leftarrowtail    & \X\rightarrowtail      &                      \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Negated Arrows}
\index{arrows>negated}
\label{ams-narrows}
\begin{tabular}{*3{ll}}
\X\nLeftarrow      & \X\nLeftrightarrow & \X\nRightarrow     \\
\X\nleftarrow      & \X\nleftrightarrow & \X\nrightarrow     \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Harpoons}
\index{harpoons}
\label{ams-harpoons}
\begin{tabular}{*3{ll}}
\X\downharpoonleft  & \X\leftrightharpoons                        & \X\upharpoonleft  \\
\X\downharpoonright & \X[\AMSrightleftharpoons]\rightleftharpoons & \X\upharpoonright \\
\end{tabular}
\end{symtable}


\begin{symtable}[ST]{\ST\ Arrows}
\index{arrows}
\label{st-arrows}
\begin{tabular}{*3{ll}}
\X\leftarrowtriangle      & \X\Mapsfrom           & \X\shortleftarrow  \\
\X\leftrightarroweq       & \X\mapsfrom           & \X\shortrightarrow \\
\X\leftrightarrowtriangle & \X\Mapsto             & \X\shortuparrow    \\
\X\lightning              & \X\nnearrow           & \X\ssearrow        \\
\X\Longmapsfrom           & \X\nnwarrow           & \X\sswarrow        \\
\X\longmapsfrom           & \X\rightarrowtriangle                      \\
\X\Longmapsto             & \X\shortdownarrow                          \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Arrows}
\index{arrows}
\label{txpx-arrows}
\begin{tabular}{*3{ll}}
\X\boxdotLeft         & \X\circleddotright    & \X\Diamondleft        \\
\X\boxdotleft         & \X\circleleft         & \X\Diamondright       \\
\X\boxdotright        & \X\circleright        & \X\DiamondRight       \\
\X\boxdotRight        & \X\dashleftrightarrow & \X\leftsquigarrow     \\
\X\boxLeft            & \X\DiamonddotLeft     & \X\Nearrow            \\
\X\boxleft            & \X\Diamonddotleft     & \X\Nwarrow            \\
\X\boxright           & \X\Diamonddotright    & \X\Rrightarrow        \\
\X\boxRight           & \X\DiamonddotRight    & \X\Searrow            \\
\X\circleddotleft     & \X\DiamondLeft        & \X\Swarrow            \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Arrows}
\index{arrows}
\label{abx-arrows}
\begin{tabular}{*3{ll}}
\X[\ABXcirclearrowleft]\circlearrowleft               & \X[\ABXleftarrow]\leftarrow                     & \X[\ABXnwarrow]\nwarrow                   \\
\X[\ABXcirclearrowright]\circlearrowright             & \X[\ABXleftleftarrows]\leftleftarrows           & \X[\ABXrestriction]\restriction           \\
\X[\ABXcurvearrowbotleft]\curvearrowbotleft           & \X[\ABXleftrightarrow]\leftrightarrow           & \X[\ABXrightarrow]\rightarrow             \\
\X[\ABXcurvearrowbotleftright]\curvearrowbotleftright & \X[\ABXleftrightarrows]\leftrightarrows         & \X[\ABXrightleftarrows]\rightleftarrows   \\
\X[\ABXcurvearrowbotright]\curvearrowbotright         & \X[\ABXleftrightsquigarrow]\leftrightsquigarrow & \X[\ABXrightrightarrows]\rightrightarrows \\
\X[\ABXcurvearrowleft]\curvearrowleft                 & \X[\ABXleftsquigarrow]\leftsquigarrow           & \X[\ABXrightsquigarrow]\rightsquigarrow   \\
\X[\ABXcurvearrowleftright]\curvearrowleftright       & \X[\ABXlefttorightarrow]\lefttorightarrow       & \X[\ABXrighttoleftarrow]\righttoleftarrow \\
\X[\ABXcurvearrowright]\curvearrowright               & \X[\ABXlooparrowdownleft]\looparrowdownleft     & \X[\ABXRsh]\Rsh                           \\
\X[\ABXdlsh]\dlsh                                     & \X[\ABXlooparrowdownright]\looparrowdownright   & \X[\ABXsearrow]\searrow                   \\
\X[\ABXdowndownarrows]\downdownarrows                 & \X[\ABXlooparrowleft]\looparrowleft             & \X[\ABXswarrow]\swarrow                   \\
\X[\ABXdowntouparrow]\downtouparrow                   & \X[\ABXlooparrowright]\looparrowright           & \X[\ABXupdownarrows]\updownarrows         \\
\X[\ABXdownuparrows]\downuparrows                     & \X[\ABXLsh]\Lsh                                 & \X[\ABXuptodownarrow]\uptodownarrow       \\
\X[\ABXdrsh]\drsh                                     & \X[\ABXnearrow]\nearrow                         & \X[\ABXupuparrows]\upuparrows             \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Negated Arrows}
\index{arrows>negated}
\label{abx-narrows}
\begin{tabular}{*3{ll}}
\X[\ABXnLeftarrow]\nLeftarrow & \X[\ABXnleftrightarrow]\nleftrightarrow & \X[\ABXnrightarrow]\nrightarrow \\
\X[\ABXnleftarrow]\nleftarrow & \X[\ABXnLeftrightarrow]\nLeftrightarrow & \X[\ABXnRightarrow]\nRightarrow \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Harpoons}
\index{harpoons}
\label{abx-harpoons}
\begin{tabular}{*3{ll}}
\X[\ABXbarleftharpoon]\barleftharpoon         & \X[\ABXleftharpoonup]\leftharpoonup           & \X[\ABXrightleftharpoons]\rightleftharpoons   \\
\X[\ABXbarrightharpoon]\barrightharpoon       & \X[\ABXleftleftharpoons]\leftleftharpoons     & \X[\ABXrightrightharpoons]\rightrightharpoons \\
\X[\ABXdowndownharpoons]\downdownharpoons     & \X[\ABXleftrightharpoon]\leftrightharpoon     & \X[\ABXupdownharpoons]\updownharpoons         \\
\X[\ABXdownharpoonleft]\downharpoonleft       & \X[\ABXleftrightharpoons]\leftrightharpoons   & \X[\ABXupharpoonleft]\upharpoonleft           \\
\X[\ABXdownharpoonright]\downharpoonright     & \X[\ABXrightbarharpoon]\rightbarharpoon       & \X[\ABXupharpoonright]\upharpoonright         \\
\X[\ABXdownupharpoons]\downupharpoons         & \X[\ABXrightharpoondown]\rightharpoondown     & \X[\ABXupupharpoons]\upupharpoons             \\
\X[\ABXleftbarharpoon]\leftbarharpoon         & \X[\ABXrightharpoonup]\rightharpoonup                                                         \\
\X[\ABXleftharpoondown]\leftharpoondown       & \X[\ABXrightleftharpoon]\rightleftharpoon                                                     \\
\end{tabular}
\end{symtable}


\begin{symtable}[ULSY]{\ULSY\ Contradiction Symbols}
\idxboth{contradiction}{symbols}
\label{ulsy}\medskip
\begin{tabular}{*6{ll}}
\K\blitza & \K\blitzb & \K\blitzc & \K\blitzd & \K\blitze \\
\end{tabular}
\end{symtable}


\begin{symtable}{Extension Characters}
\index{extension characters}
\label{ext}
\begin{tabular}{*2{ll}}
\X\relbar & \X\Relbar \\
\end{tabular}
\end{symtable}


\begin{symtable}[ST]{\ST\ Extension Characters}
\index{extension characters}
\label{st-ext}
\begin{tabular}{*3{ll}}
\X\Arrownot   &\X\Mapsfromchar &\X\Mapstochar \\
\X\arrownot   &\X\mapsfromchar
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Extension Characters}
\index{extension characters}
\label{txpx-ext}
\begin{tabular}{*3{ll}}
\X\Mappedfromchar  & \X\Mmappedfromchar & \X\Mmapstochar     \\
\X\mappedfromchar  & \X\mmappedfromchar & \X\mmapstochar     \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Extension Characters}
\index{extension characters}
\label{abx-ext}
\begin{tabular}{*3{ll}}
\X[\ABXmapsfromchar]\mapsfromchar & \X[\ABXmapstochar]\mapstochar \\
\X[\ABXMapsfromchar]\Mapsfromchar & \X[\ABXMapstochar]\Mapstochar \\
\end{tabular}
\end{symtable}



\begin{symtable}{Log-like Symbols}
\idxboth{log-like}{symbols}
\index{atomic math objects}
\label{log}
\begin{tabular}{*8l}
\Z\arccos & \Z\cos  & \Z\csc & \Z\exp & \Z\ker    & \Z\limsup & \Z\min & \Z\sinh \\
\Z\arcsin & \Z\cosh & \Z\deg & \Z\gcd & \Z\lg     & \Z\ln     & \Z\Pr  & \Z\sup  \\
\Z\arctan & \Z\cot  & \Z\det & \Z\hom & \Z\lim    & \Z\log    & \Z\sec & \Z\tan  \\
\Z\arg    & \Z\coth & \Z\dim & \Z\inf & \Z\liminf & \Z\max    & \Z\sin & \Z\tanh
\end{tabular}

\bigskip
\begin{tablenote}
  Calling the above ``symbols'' may be a bit
  misleading.\footnotemark{} Each log-like symbol merely produces the
  eponymous textual equivalent, but with proper surrounding spacing.
  See Section~\ref{math-spacing} for more information about log-like
  symbols.  As \cmd{\bmod} and \cmd{\pmod} are arguably not symbols we
  refer the reader to the Short Math Guide for
  \latex~\cite{Downes:smg} for samples.
\end{tablenote}
\end{symtable}
\footnotetext{Michael\index{Downes, Michael J.} J. Downes prefers the
more general term, ``atomic\index{atomic math objects} math objects''.}


\begin{symtable}[AMS]{\AMS\ Log-like Symbols}
\idxboth{log-like}{symbols}
\index{atomic math objects}
\label{ams-log}
\renewcommand{\arraystretch}{1.5}  % Keep tall symbols from touching.
\begin{tabular}{*2{ll@{\qquad}}ll}
\X\injlim     & \X\varinjlim  & \X\varlimsup  \\
\X\projlim    & \X\varliminf  & \X\varprojlim
\end{tabular}

\bigskip
\begin{tablenote}
  Load the \pkgname{amsmath} package to get these symbols.  See
  Section~\ref{math-spacing} for some additional comments regarding
  log-like symbols.  As \cmd{\mod} and \cmd{\pod} are arguably not
  symbols we refer the reader to the Short Math Guide for
  \latex~\cite{Downes:smg} for samples.
\end{tablenote}
\end{symtable}


\begin{symtable}{Greek Letters}
\index{Greek}\index{alphabets>Greek}
\label{greek}
\begin{tabular}{*8l}
\X\alpha        &\X\theta       &\X o           &\X\tau         \\
\X\beta         &\X\vartheta    &\X\pi          &\X\upsilon     \\
\X\gamma        &\X\iota        &\X\varpi       &\X\phi         \\
\X\delta        &\X\kappa       &\X\rho         &\X\varphi      \\
\X\epsilon      &\X\lambda      &\X\varrho      &\X\chi         \\
\X\varepsilon   &\X\mu          &\X\sigma       &\X\psi         \\
\X\zeta         &\X\nu          &\X\varsigma    &\X\omega       \\
\X\eta          &\X\xi                                          \\
                                                                \\
\X\Gamma        &\X\Lambda      &\X\Sigma       &\X\Psi         \\
\X\Delta        &\X\Xi          &\X\Upsilon     &\X\Omega       \\
\X\Theta        &\X\Pi          &\X\Phi
\end{tabular}

\bigskip
\begin{tablenote}
  The remaining Greek majuscules\index{majuscules} can be produced with
  ordinary Latin letters.  The symbol ``M'', for instance, is used for
  both an uppercase ``m'' and an uppercase ``$\mu$''.
\end{tablenote}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Greek Letters}
\index{Greek}\index{alphabets>Greek}
\label{ams-greek}
\begin{tabular}{*4l}
\X\digamma      &\X\varkappa
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Upright Greek Letters}
\index{Greek}\index{alphabets>Greek}
\index{upright Greek letters}
\label{txpx-greek}
\begin{tabular}{*4{ll}}
\X\alphaup      & \X\thetaup      & \X\piup         & \X\phiup        \\
\X\betaup       & \X\varthetaup   & \X\varpiup      & \X\varphiup     \\
\X\gammaup      & \X\iotaup       & \X\rhoup        & \X\chiup        \\
\X\deltaup      & \X\kappaup      & \X\varrhoup     & \X\psiup        \\
\X\epsilonup    & \X\lambdaup     & \X\sigmaup      & \X\omegaup      \\
\X\varepsilonup & \X\muup         & \X\varsigmaup   \\
\X\zetaup       & \X\nuup         & \X\tauup        \\
\X\etaup        & \X\xiup         & \X\upsilonup    \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Variant Latin Letters}
\index{letters>variant Latin}
\label{txpx-variant}
\begin{tabular}{*3{ll@{\qquad}}ll}
\X\varg & \X\varv & \X\varw & \X\vary \\
\end{tabular}

\bigskip
\begin{tablenote}
  Pass the \optname{txfonts/pxfonts}{varg} option to \TXPX\ to
  replace~$g$, $v$, $w$, and~$y$ with~$\varg$, $\varv$, $\varw$,
  and~$\vary$ in every mathematical expression in your document.
\end{tablenote}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Hebrew Letters}
\index{Hebrew}\index{alphabets>Hebrew}
\label{ams-hebrew}
\begin{tabular}{*6l}
\X\beth & \X\gimel & \X\daleth
\end{tabular}

\bigskip
\begin{tablenote}
\cmdX{\aleph} appears in Table~\vref{ord}.
\end{tablenote}
\end{symtable}


\begin{symtable}{Letter-like Symbols}
\idxboth{letter-like}{symbols}
\index{tacks}
\label{letter-like}
\begin{tabular}{*5{ll}}
\X\bot    & \X\forall & \X\imath & \X\ni      & \X\top \\
\X\ell    & \X\hbar   & \X\in    & \X\partial & \X\wp  \\
\X\exists & \X\Im     & \X\jmath & \X\Re               \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Letter-like Symbols}
\idxboth{letter-like}{symbols}
\label{ams-letter-like}
\begin{tabular}{*3{ll}}
\X\Bbbk       & \X\complement & \X\hbar    \\
\X\circledR   & \X\Finv       & \X\hslash  \\
\X\circledS   & \X\Game       & \X\nexists \\
\end{tabular}
\end{symtable}


\begin{symtable}[TX]{\TXPX\ Letter-like Symbols}
\idxboth{letter-like}{symbols}
\label{txpx-letter-like}
\begin{tabular}{*4{ll}}
\X\mathcent & \X\mathsterling & \X\notin & \X\notni \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Letter-like Symbols}
\idxboth{letter-like}{symbols}
\label{abx-letter-like}
\begin{tabular}{*4{ll}}
\X[\ABXbarin]\barin           & \X[\ABXin]\in             & \X[\ABXnottop]\nottop             & \X[\ABXvarnotin]\varnotin       \\
\X[\ABXcomplement]\complement & \X[\ABXnexists]\nexists   & \X[\ABXowns]\owns                 & \X[\ABXvarnotowner]\varnotowner \\
\X[\ABXexists]\exists         & \X[\ABXnotbot]\notbot     & \X[\ABXownsbar]\ownsbar                                             \\
\X[\ABXFinv]\Finv             & \X[\ABXnotin]\notin       & \X[\ABXpartial]\partial                                             \\
\X[\ABXGame]\Game             & \X[\ABXnotowner]\notowner & \X[\ABXpartialslash]\partialslash                                   \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Delimiters}
\index{delimiters}
\label{ams-del}
\begin{tabular}{*2{ll}}
\X\ulcorner & \X\urcorner \\
\X\llcorner & \X\lrcorner
\end{tabular}
\end{symtable}


\begin{symtable}[ST]{\ST\ Delimiters}
\index{delimiters}
\label{st-del}
\begin{tabular}{*4{ll}}
\X\Lbag          &\X\Rbag          &\X\lbag          &\X\rbag    \\
\X\llceil        &\X\rrceil        &\X\llfloor       &\X\rrfloor \\
\X\llparenthesis &\X\rrparenthesis
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Delimiters}
\index{delimiters}
\label{abx-del}
\begin{tabular}{*2{ll}}
\X[\ABXlcorners]\lcorners & \X[\ABXrcorners]\rcorners \\[3ex]
\X[\ABXulcorner]\ulcorner & \X[\ABXurcorner]\urcorner \\
\X[\ABXllcorner]\llcorner & \X[\ABXlrcorner]\lrcorner \\
\end{tabular}
\end{symtable}


\begin{symtable}{Variable-sized Delimiters}
\index{delimiters>variable-sized}
\label{dels}
\renewcommand{\arraystretch}{1.75}  % Keep tall symbols from touching.
\gdef\brackethack{]}                % Keep the index from getting confused.
\begin{tabular}{lll@{\qquad}lll@{\hspace*{1.5cm}}lll@{\qquad}lll}
\N\downarrow & \N\Downarrow & \N{[}          & \Nb{]}         \\
\N\langle    & \N\rangle    & \N|$^*$        & \N\|           \\
\N\lceil     & \N\rceil     & \N\uparrow     & \N\Uparrow     \\
\N\lfloor    & \N\rfloor    & \N\updownarrow & \N\Updownarrow \\
\N(          & \N)          & \N\{           & \N\}           \\
\N/          & \N\backslash                                   \\
\end{tabular}

\bigskip
\begin{tablenote}
  When used with \cmd{\left} and \cmd{\right}, these symbols expand to
  the height of the enclosed math expression.  Note that \cmdX{\vert}
  is a synonym for \verb+|+, and \cmdX{\Vert} is a synonym for
  \verb+\|+.
\end{tablenote}

\bigskip
\begin{tablenote}[*]
  e-\TeX{}\index{e-tex=e-\TeX} provides a \cmd{\middle} analogue
  to \cmd{\left} and \cmd{\right} that can be used to make an internal
  ``$|$'' expand to the height of the surrounding \cmd{\left} and
  \cmd{\right} symbols.  A similar effect can be achieved in
  conventional \latex using the \pkgname{braket} package.
\end{tablenote}
\end{symtable}


\begin{symtable}{Large, Variable-Sized Delimiters}
\index{delimiters>variable-sized}
\label{ldels}
\renewcommand{\arraystretch}{2.5}  % Keep tall symbols from touching.
\begin{tabular}{*3{lll@{\qquad}}lll}
\Y\lmoustache & \Y\rmoustache & \Y\lgroup    & \Y\rgroup \\
\Y\arrowvert  & \Y\Arrowvert  & \Y\bracevert
\end{tabular}

\bigskip
\begin{tablenote}
  These symbols \emph{must} be used with \cmd{\left} and \cmd{\right}.
  The \ABX\ package, however, redefines
  \cmdI[$\string\big\string\lgroup$]{\lgroup} and
  \cmdI[$\string\big\string\rgroup$]{\rgroup} so that those symbols
  can work without \cmd{\left} and \cmd{\right}.
\end{tablenote}
\end{symtable}


\begin{symtable}[ST]{Variable-Sized \ST\ Delimiters}
\index{delimiters>variable-sized}
\label{st-var-del}
\begin{tabular}{lll@{\qquad}lll}
\N\llbracket & \N\rrbracket
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Variable-Sized Delimiters}
\index{delimiters>variable-sized}
\label{abx-var-dels}
\renewcommand{\arraystretch}{2.5}  % Keep tall symbols from touching.
\begin{tabular}{lll@{\qquad}lll}
\N[\ABXlbbbrack]\lbbbrack   & \N[\ABXrbbbrack]\rbbbrack \\
\N[\ABXlfilet]\lfilet       & \N[\ABXrfilet]\rfilet     \\
\N[\ABXthickvert]\thickvert & \N[\ABXvvvert]\vvvert     \\
\end{tabular}
\end{symtable}


\begin{symtable}{\TC\ Text-Mode Delimiters}
\label{tc-delimiters}
\begin{tabular}{*2{ll}}
\K\textlangle    & \K\textrangle    \\
\K\textlbrackdbl & \K\textrbrackdbl \\
\K\textlquill    & \K\textrquill    \\
\end{tabular}
\end{symtable}


\begin{symtable}{Math-Mode Accents}
\index{accents}
\label{math-accents}
\begin{tabular}{*4{ll}}
\W\acute{a}    & \W\check{a}    & \W\grave{a}    & \W\tilde{a} \\
\W\bar{a}      & \W\ddot{a}     & \W\hat{a}      & \W\vec{a}   \\
\W\breve{a}    & \W\dot{a}      & \W\mathring{a}               \\
\end{tabular}

\bigskip

\begin{tablenote}
  \index{dotless i=dotless $i~(\imath)$>math mode}
  \index{dotless j=dotless $j~(\jmath)$>math mode}
  Also note the existence of \cmdX{\imath} and \cmdX{\jmath}, which
  produce dotless versions of ``\textit{i}'' and ``\textit{j}''.  (See
  Table~\vref{ord}.)  These are useful when the accent is supposed to
  replace the dot.  For example, ``\verb|\hat{\imath}|'' produces a
  correct ``$\,\hat{\imath}\,$'', while ``\verb|\hat{i}|'' would yield
  the rather odd-looking ``\,$\hat{i}\,$''.
\end{tablenote}
\end{symtable}


\begin{symtable}{\AMS\ Math-Mode Accents}
\index{accents}
\label{ams-math-accents}
\begin{tabular}{*2{ll}}
\W\dddot{a}    & \W\ddddot{a} \\
\end{tabular}

\bigskip

\begin{tablenote}
  These accents are also provided by the \ABX\ package.
\end{tablenote}
\end{symtable}


\begin{symtable}{\YH\ Math-Mode Accents}
\index{accents}
\label{yhmath-accents}
\begin{tabular}{ll}
\W\ring{a}
\end{tabular}

\bigskip

\begin{tablenote}
  This symbol is largely obsolete, as standard \latexE has supported
  \cmdI[$\string\blackacc{\string\mathring}$]{\mathring} since
  June,~1998~\cite{ltnews09}.
\end{tablenote}
\end{symtable}


\begin{symtable}{Extensible Accents}
\index{accents}
\idxboth{extensible}{accents}
\idxboth{extensible}{arrows}
\label{extensible-accents}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{*4l}
\W\widetilde{abc}$^*$   &\W\widehat{abc}$^*$                    \\
\W\overleftarrow{abc}   &\W\overrightarrow{abc}                 \\
\W\overline{abc}        &\W\underline{abc}                      \\
\W\overbrace{abc}       &\W\underbrace{abc}                     \\[5pt]
\W\sqrt{abc}            &$\sqrt[n]{abc}$&\verb|\sqrt[n]{abc}|
\end{tabular}

\bigskip

\begin{tablenote}[*]
  Made more extensible by the \YH\ package.
\end{tablenote}
\end{symtable}


\begin{symtable}[YH]{\YH\ Extensible Accents}
\idxboth{extensible}{accents}
\label{yhmath-extensible-accents}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{*4l}
\W\wideparen{abc} & \W\widetriangle{abc} \\[5pt]
\W\widering{abc}                         \\
\end{tabular}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Extensible Accents}
\idxboth{extensible}{accents}
\idxboth{extensible}{arrows}
\label{extensible-arrows}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{ll@{\qquad}ll}
\W\overleftrightarrow{abc}  & \W\underleftrightarrow{abc} \\
\W\underleftarrow{abc}      & \W\underrightarrow{abc}     \\[2ex]
\multicolumn{4}{p{0.75\textwidth}}{%
  The following are a sort of ``reverse accent'' in that the argument
  text serves as a superscript to the arrow.  In addition, the
  optional first argument (not shown) serves as a subscript to the
  arrow.  See the Short Math Guide for \latex~\cite{Downes:smg} for
  further examples.
} \\~\\[-2ex]
\W\xleftarrow{abc}          & \W\xrightarrow{abc}         \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Extensible Accents}
\index{accents}
\idxboth{extensible}{accents}
\idxboth{extensible}{arrows}
\label{abx-extensible-accents}
\renewcommand{\arraystretch}{1.75}
\begin{tabular}{ll@{\qquad}ll}
\W[\ABXoverbrace]\overbrace{abc}   & \W[\ABXwidebar]\widebar{abc}     \\
\W[\ABXovergroup]\overgroup{abc}   & \W[\ABXwidecheck]\widecheck{abc} \\
\W[\ABXunderbrace]\underbrace{abc} & \W[\ABXwideparen]\wideparen{abc} \\
\W[\ABXundergroup]\undergroup{abc} & \W[\ABXwidering]\widering{abc}   \\
\W[\ABXwidearrow]\widearrow{abc}                                      \\
\end{tabular}

\bigskip

\begin{tablenote}
  The braces shown for \verb|\overbrace| and \verb|\underbrace| appear
  in their minimum size.  They can expand arbitrarily wide, however.
\end{tablenote}
\end{symtable}


\begin{symtable}[ESV]{\ESV\ Extensible Accents}
\index{accents}
\idxboth{extensible}{accents}
\idxboth{extensible}{arrows}
\label{esv-extensible-accents}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{ll}
\VV{a}{abc} \\
\VV{b}{abc} \\
\VV{c}{abc} \\
\VV{d}{abc} \\
\VV{e}{abc} \\
\VV{f}{abc} \\
\VV{g}{abc} \\
\VV{h}{abc} \\
\end{tabular}

\bigskip

\begin{tablenote}
  \ESV\ also defines a \verb|\vv*| macro which is used to typeset
  arrows over vector variables with subscripts.  See the \ESV\
  documentation for more information.
\end{tablenote}
\end{symtable}


\begin{symtable}{Dots}
\idxboth{dot}{symbols}
\index{dots (ellipses)} \index{ellipses (dots)}
\label{dots}
\begin{tabular}{*{3}{ll@{\hspace*{1.5cm}}}ll}
\X\cdotp & \X\colon$^*$ & \X\ldotp & \X\vdots \\
\X\cdots & \X\ddots     & \X\ldots            \\
\end{tabular}

\bigskip
\begin{tablenote}[*]
  While ``\texttt{:}'' is valid in math mode, \cmd{\colon} uses
  different surrounding spacing.  See Section~\ref{math-spacing} and the
  Short Math Guide for \latex~\cite{Downes:smg} for more information on
  math-mode spacing.
\end{tablenote}
\end{symtable}


\begin{symtable}[AMS]{\AMS\ Dots}
\idxboth{dot}{symbols}
\index{dots (ellipses)} \index{ellipses (dots)}
\label{ams-dots}
\begin{tabular}{*{2}{ll@{\hspace*{1.5cm}}}ll}
\X[\cdots]\dotsb & \X[\cdots]\dotsi & \X[\ldots]\dotso \\
\X[\ldots]\dotsc & \X[\cdots]\dotsm                    \\
\end{tabular}

\bigskip
\begin{tablenote}
  The \AMS\ dot symbols are named according to their intended usage:
  \cmdI[$\string\cdots$]{\dotsb} between pairs of binary operators/relations,
  \cmdI[$\string\ldots$]{\dotsc} between pairs of commas,
  \cmdI[$\string\cdots$]{\dotsi} between pairs of integrals,
  \cmdI[$\string\cdots$]{\dotsm} between pairs of multiplication signs, and
  \cmdI[$\string\ldots$]{\dotso} between other symbol pairs.
\end{tablenote}
\end{symtable}


\begin{symtable}[YH]{\YH\ Dots}
\index{dots (ellipses)} \index{ellipses (dots)}
\idxboth{dot}{symbols}
\label{yhmath-dots}
\begin{tabular}{ll}
\X\adots
\end{tabular}
\end{symtable}


\begin{symtable}{Miscellaneous \latexE{} Symbols}
\idxboth{miscellaneous}{symbols}
\index{card suits}
\index{diamonds (suit)}
\index{hearts (suit)}
\index{clubs (suit)}
\index{spades (suit)}
\index{musical notes}
\index{dots (ellipses)}
\index{ellipses (dots)}
\index{null set}
\index{dotless i=dotless $i~(\imath)$>math mode}
\index{dotless j=dotless $j~(\jmath)$>math mode}
\label{ord}
\begin{tabular}{*4{ll}}
\X\aleph       & \X\Diamond$^*$ & \X\infty    & \X\prime     \\
\X\angle       & \X\diamondsuit & \X\mho$^*$  & \X\sharp     \\
\X\backslash   & \X\emptyset    & \X\nabla    & \X\spadesuit \\
\X\Box$^*$     & \X\flat        & \X\natural  & \X\surd      \\
\X\clubsuit    & \X\heartsuit   & \X\neg      & \X\triangle  \\
\end{tabular}

\bigskip
\notpredefinedmessage
\end{symtable}


\begin{symtable}[AMS]{Miscellaneous \AMS\ Symbols}
\idxboth{miscellaneous}{symbols}
\index{stars}
\index{triangles}
\index{null set}
\label{ams-misc}
\begin{tabular}{*3{ll}}
\X[\AMSangle]\angle & \X\blacktriangledown & \X\mho            \\
\X\backprime        & \X\diagdown          & \X\sphericalangle \\
\X\bigstar          & \X\diagup            & \X\square         \\
\X\blacklozenge     & \X\eth               & \X\triangledown   \\
\X\blacksquare      & \X\lozenge           & \X\varnothing     \\
\X\blacktriangle    & \X\measuredangle     & \X\vartriangle    \\

\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{Miscellaneous \WASY\ Symbols}
\label{wasy-math}
\begin{tabular}{*3{ll}}
\X\Box     & \X\mho$^*$  & \K\wasytherefore \\
\X\Diamond & \K\varangle                    \\
\end{tabular}

\bigskip
\begin{tablenote}[*]
  \WASY\ also defines an \cmdI{\agemO} symbol, which is the same glyph
  as \cmdX{\mho} but is intended for use in text mode.
\end{tablenote}
\end{symtable}


\begin{symtable}[TX]{Miscellaneous \TXPX\ Symbols}
\idxboth{miscellaneous}{symbols}
\index{card suits}
\index{diamonds (suit)}
\index{hearts (suit)}
\index{clubs (suit)}
\index{spades (suit)}
\label{txpx-misc}
\begin{tabular}{*3{ll}}
\X\Diamondblack & \X\lambdaslash    & \X\varheartsuit \\
\X\Diamonddot   & \X\varclubsuit    & \X\varspadesuit \\
\X\lambdabar    & \X\vardiamondsuit                   \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{Miscellaneous \ABX\ Symbols}
\idxboth{miscellaneous}{symbols}
\index{null set}
\index{semidirect products}
\label{abx-misc}
\begin{tabular}{*4{ll}}
\X[\ABXdegree]\degree     & \X[\ABXfourth]\fourth                 & \X[\ABXmeasuredangle]\measuredangle     & \X[\ABXsecond]\second                 \\
\X[\ABXdiagdown]\diagdown & \X[\ABXhash]\hash                     & \X[\ABXpitchfork]\pitchfork             & \X[\ABXsphericalangle]\sphericalangle \\
\X[\ABXdiagup]\diagup     & \X[\ABXinfty]\infty                   & \X[\ABXpropto]\propto                   & \X[\ABXthird]\third                   \\
\X[\ABXdiameter]\diameter & \X[\ABXleftthreetimes]\leftthreetimes & \X[\ABXrightthreetimes]\rightthreetimes & \X[\ABXvarhash]\varhash               \\
\end{tabular}
\end{symtable}


\begin{symtable}{Miscellaneous \TC\ Text-Mode Math Symbols}
\label{tc-math}
\begin{tabular}{*3{ll}}
\K\textdegree          & \K\textonehalf     & \K\textthreequarters \\
\K\textdiv             & \K\textonequarter  & \K\textthreesuperior \\
\K\textfractionsolidus & \K\textonesuperior & \K\texttimes         \\
\K\textlnot            & \K\textpm          & \K\texttwosuperior   \\
\K\textminus           & \K\textsurd                               \\
\end{tabular}
\end{symtable}


\begin{symtable}{\MC\ Math Symbols}
\label{mc-math}
\begin{tabular}{*3{ll}}
\K[\textcelsius]\tccentigrade & \K[\textohm]\tcohm                       & \K[\textperthousand]\tcperthousand \\
\K[\textmu]\tcmu             & \K[\textpertenthousand]\tcpertenthousand &                                    \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Mayan Digits}
\index{digits>Mayan}
\label{abx-mayan}
\begin{tabular}{*2{ll@{\qquad}}ll}
  \Tm{0} & \Tm{2} & \Tm{4} \\
  \Tm{1} & \Tm{3} & \Tm{5} \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Math Symbols}
\index{digits}
\label{marv-math}
\begin{tabular}{*4{ll@{\qquad}}ll}
\K\MVZero  & \K\MVTwo   & \K\MVFour  & \K\MVSix   & \K\MVEight \\
\K\MVOne   & \K\MVThree & \K\MVFive  & \K\MVSeven & \K\MVNine  \\
\end{tabular}

\bigskip
\begin{tabular}{*3{ll@{\qquad}}ll}
\K\Anglesign       & \K\Squaredot       & \K\Vectorarrowhigh \\
\K\Corresponds     & \K\Vectorarrow     \\
\end{tabular}
\end{symtable}


\begin{symtable}{Math Alphabets}
\idxboth{math}{alphabets}
\label{alphabets}
\begin{tabular}{*3l}
        &                & Required package                   \\
\hline
\Wf\mathrm{ABCdef123}    & \textit{none}                      \\
\Ww\textit\mathit{ABCdef123}    & \textit{none}               \\
\Wf\mathnormal{ABCdef123}& \textit{none}                      \\
\Ww\CMcal\mathcal{ABC}   & \textit{none}                      \\

\ifx\mathscr\undefined\else
\Wf\mathscr{ABC}         & \pkgname{mathrsfs} \\
\fi

\ifEU
\Wf\mathcal{ABC}         & \pkgname{euscript} with the
                           \optname{euscript}{mathcal} option \\
\multicolumn{1}{r@{}}{\emph{or}}
        &\verb|\mathscr{ABC}|
                         & \pkgname{euscript} with the
                           \optname{euscript}{mathscr} option \\
\fi

\ifx\mathpzc\undefined\else
\Wf\mathpzc{ABCdef123}   & \textit{none}; manually defined$^*$    \\
\fi

\ifx\mathbb\undefined\else
\Wf\mathbb{ABC}          & \pkgname{amsfonts}, \pkgname{amssymb},
                           \pkgname{txfonts}, or \pkgname{pxfonts} \\
\fi

\ifx\varmathbb\undefined\else
\Wf\varmathbb{ABC}       & \pkgname{txfonts} or \pkgname{pxfonts} \\
\fi

\ifx\BBmathbb\undefined\else
\Ww\BBmathbb\mathbb{ABCdef123}
                         & \pkgname{bbold} or \pkgname{mathbbol}$^\dag$  \\
\fi

\ifx\mathbbm\undefined\else
\Wf\mathbbm{ABCdef12}    & \pkgname{bbm}                         \\
\Wf\mathbbmss{ABCdef12}  & \pkgname{bbm}                         \\
\Wf\mathbbmtt{ABCdef12}  & \pkgname{bbm}                         \\
\fi

\ifx\mathds\undefined\else
\Wf\mathds{ABC1}         & \pkgname{dsfont}                      \\
\Ww\mathdsss\mathds{ABC1}
                         & \pkgname{dsfont} with the
                           \optname{dsfont}{sans} option \\
\fi

\ifx\mathfrak\undefined\else
\Wf\mathfrak{ABCdef123}  & \pkgname{eufrak}                      \\
\fi

\ifx\textfrak\undefined\else
\Wf\textfrak{ABCdef123}  & \pkgname{yfonts}                      \\
\Wf\textswab{ABCdef123}  & \pkgname{yfonts}                      \\
\fi
\end{tabular}

\ifx\mathpzc\undefined\else
\bigskip
\begin{tablenote}[*]
  Put ``\verb|\DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}|'' in your
  document's preamble to make \verb|\mathpzc| typeset its argument in
  \PSfont{Zapf Chancery}.
\end{tablenote}
\fi

\ifx\BBmathbb\undefined\else
\bigskip
\begin{tablenote}[\dag]
  The \pkgname{mathbbol} package defines some additional blackboard bold
  characters: parentheses, square brackets, angle brackets, and---if the
  \optname{mathbbol}{bbgreekl} option is passed to
  \pkgname{matbbol}---Greek\index{Greek} letters.  For instance,
  ``$\BBmathbb{\char`<\char`[\char`(\char"0B\char"0C\char"0D\char`)\char`]\char`>}$''
  is produced by
  ``\cmd{\mathbb}\verb|{|\cmdI{\Langle}\linebreak[1]%
  \cmdI{\Lbrack}\linebreak[1]\cmdI{\Lparen}\linebreak[1]%
  \cmdI{\bbalpha}\linebreak[1]\cmdI{\bbbeta}\linebreak[1]%
  \cmdI{\bbgamma}\linebreak[1]\cmdI{\Rparen}\linebreak[1]%
  \cmdI{\Rbrack}\linebreak[1]\cmdI{\Rangle}\verb|}|''.
\end{tablenote}
\fi

\end{symtable}

\idxbothend{mathematical}{symbols}


\section{Science and technology symbols}
\idxbothbegin{scientific}{symbols}
\idxbothbegin{technological}{symbols}

This section lists symbols that are employed in various branches of
science and engineering (and, because we were extremely liberal in our
classification, astrology, too).

\bigskip


\begin{symtable}[WASY]{\WASY\ Electrical and Physical Symbols}
\idxboth{electrical}{symbols}
\idxboth{physical}{symbols}
\label{wasy-electic}
\begin{tabular}{*{9}{ll@{\qquad}}ll}
\K\AC             & \K\VHF            & \K\photon         &
\K\HF             & \K\gluon          \\
\end{tabular}
\end{symtable}


\begin{symtable}[IFS]{\IFS\ Pulse Diagram Symbols}
\idxboth{pulse diagram}{symbols}
\idxboth{engineering}{symbols}
\label{pulse-diagram}
\begin{tabular}{*4{ll}}
\K\FallingEdge   & \K\LongPulseLow & \K\PulseLow    & \K\ShortPulseHigh \\
\K\LongPulseHigh & \K\PulseHigh    & \K\RaisingEdge & \K\ShortPulseLow  \\
\end{tabular}

\bigskip
\begin{tablenote}
  In addition, within
  \verb|\textifsym{|$\ldots$\verb|}|\indexcommand{\textifsym}, the
  following codes are valid:

  \begin{center}
  \begin{tabular}{*7{ll@{\hspace{3em}}}ll}
    \textifsym{l} & l &
    \textifsym{m} & m &
    \textifsym{h} & h &
    \textifsym{d} & d &
    \textifsym{<} & \textless &
    \textifsym{>} & \textgreater \\[4pt]

    \textifsym{L} & L &
    \textifsym{M} & M &
    \textifsym{H} & H &
    \textifsym{D} & D &
    \textifsym{<<} & \textless\textless &
    \textifsym{>>} & \textgreater\textgreater \\
  \end{tabular}
  \end{center}

  This enables one to write ``\verb|\textifsym{mm<DDD>mm}|'' to get
  ``\textifsym{mm<DDD>mm}'' or ``\verb+\textifsym{L|H|L|H|L}+'' to get
  ``\textifsym{L|H|L|H|L}''.

  Finally, \cmd{\textifsym} supports the display of
  segmented\idxboth{segmented}{digits} digits, as would appear on an
  LCD\idxboth{LCD}{digits}: ``\verb|\textifsym{-123.456}|'' produces
  ``\textifsym{-123.456}''.  ``\verb|\textifsym{b}|'' outputs a blank
  with the same width as an ``\textifsym{8}''.
\end{tablenote}
\end{symtable}


\begin{symtable}[ASP]{\ASP\ Aspect Ratio Symbol}
\index{aspect ratio}
\label{aspect-ratio}
\begin{tabular}{ll}
\K\AR
\end{tabular}
\end{symtable}


\begin{symtable}{\TC\ Text-Mode Science and Engineering Symbols}
\label{tc-science}
\begin{tabular}{*4{ll}}
\K\textcelsius & \K\textmho & \K\textmu & \K\textohm \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Astronomical Symbols}
\idxboth{astronomical}{symbols}
\label{wasy-astro}
\begin{tabular}{*8l}
\K\ascnode        & \K\jupiter        & \K\newmoon        & \K\venus      \\
\K\astrosun       & \K\leftmoon       & \K\pluto          & \K\vernal     \\
\K\descnode       & \K\mars           & \K\rightmoon      \\
\K\earth          & \K\mercury        & \K\saturn         \\
\K\fullmoon       & \K\neptune        & \K\uranus         \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Astronomical Symbols}
\idxboth{astronomical}{symbols}
\label{marv-astronomy}
\begin{tabular}{*5{ll}}
\K\Mercury & \K\Mars    & \K\Uranus  & \K\Sun     \\
\K\Venus   & \K\Jupiter & \K\Neptune & \K\Moon    \\
\K\Earth   & \K\Saturn  & \K\Pluto   \\
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Astronomical Symbols}
\idxboth{astronomical}{symbols}
\label{abx-astronomy}
\begin{tabular}{*5{ll}}
\X[\ABXMercury]\Mercury & \X[\ABXEarth]\Earth     & \X[\ABXJupiter]\Jupiter & \X[\ABXUranus]\Uranus   & \X[\ABXPluto]\Pluto     \\
\X[\ABXVenus]\Venus     & \X[\ABXMars]\Mars       & \X[\ABXSaturn]\Saturn   & \X[\ABXNeptune]\Neptune &                         \\[3ex]

\X[\ABXfullmoon]\fullmoon   & \X[\ABXleftmoon]\leftmoon   & \X[\ABXnewmoon]\newmoon     & \X[\ABXrightmoon]\rightmoon \\
\X[\ABXSun]\Sun           & \X[\ABXvarEarth]\varEarth \\
\end{tabular}

\bigskip

\begin{tablenote}
  \ABX\ also defines \cmdI[$\string\ABXVenus$]{\girl} as an alias for
  \cmdI[$\string\ABXVenus$]{\Venus}, \cmdI[$\string\ABXMars$]{\boy} as
  an alias for \cmdI[$\string\ABXMars$]{\Mars}, and
  \cmdI[$\string\ABXleftmoon$]{\Moon} as an alias for
  \cmdI[$\string\ABXleftmoon$]{\leftmoon}.
\end{tablenote}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Astrological Symbols}
\idxboth{astrological}{symbols}
\idxboth{zodiacal}{symbols}
\label{wasy-astrology}
\begin{tabular}{*4{ll}}
\K\aries       & \K\cancer      & \K\libra       & \K\capricornus \\
\K\taurus      & \K\leo         & \K\scorpio     & \K\aquarius    \\
\K\gemini      & \K\virgo       & \K\sagittarius & \K\pisces      \\
\end{tabular}

\bigskip

\begin{tabular}{*2{ll}}
\K\conjunction & \K\opposition
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Astrological Symbols}
\idxboth{astrological}{symbols}
\idxboth{zodiacal}{symbols}
\label{marv-astrology}
\begin{tabular}{*4{ll}}
\K\Aries       & \K\Cancer      & \K\Libra       & \K\Capricorn   \\
\K\Taurus      & \K\Leo         & \K\Scorpio     & \K\Aquarius    \\
\K\Gemini      & \K\Virgo       & \K\Sagittarius & \K\Pisces      \\
\end{tabular}

\bigskip
\begin{tablenote}
  Note that \cmdI{\Aries}\,$\ldots$\,\linebreak[1]\cmdI{\Pisces} can also be
  specified with
  \cmd{\Zodiac}\verb|{1}|\,$\ldots$\,\linebreak[1]\cmd{\Zodiac}\verb|{12}|.
\end{tablenote}
\end{symtable}


\begin{symtable}[ABX]{\ABX\ Astrological Symbols}
\idxboth{astrological}{symbols}
\idxboth{zodiacal}{symbols}
\label{abx-astrology}
\begin{tabular}{*3{ll}}
\X[\ABXAries]\Aries & \X[\ABXTaurus]\Taurus & \X[\ABXGemini]\Gemini \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ APL Symbols}
\index{APL>symbols}
\index{symbols>APL}
\label{wasy-APLsym}
\begin{tabular}{*6l}
\K\APLbox          & \K\APLinv           & \K\APLstar        \\
\K\APLcomment      & \K\APLleftarrowbox  & \K\APLup          \\
\K\APLdown         & \K\APLlog           & \K\APLuparrowbox  \\
\K\APLdownarrowbox & \K\APLminus         & \K\notbackslash   \\
\K\APLinput        & \K\APLrightarrowbox & \K\notslash       \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ APL Modifiers}
\index{APL>modifiers}
\index{accents}
\label{wasy-APLmod}
\begin{tabular}{*2{ll@{\qqquad}}ll}
\W\APLcirc{} & \W\APLnot{} & \W\APLvert{} \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Computer Hardware Symbols}
\idxboth{computer hardware}{symbols}
\label{marv-computer}
\begin{tabular}{*2{ll}ll}
\K\ComputerMouse   & \K\ParallelPort    & \K\SerialInterface \\
\K\Keyboard        & \K\Printer         & \K\SerialPort      \\
\end{tabular}
\end{symtable}


\begin{symtable}[ASCII]{\ASCII\ Control Characters (IBM)}
\index{ASCII}\index{IBM}\index{control characters}\index{carriage return}
\label{ibm-ascii}
\begin{tabular}{*5{ll@{\hspace{3em}}}ll}
\Ka\SOH & \Ka\BEL & \Ka\CR  & \Ka\DCc & \Ka\EM  & \Ka\US        \\
\Ka\STX & \Ka\BS  & \Ka\SO  & \Ka\DCd & \Ka\SUB & \Ka\splitvert \\
\Ka\ETX & \Ka\HT  & \Ka\SI  & \Ka\NAK & \Ka\ESC & \Ka\DEL       \\
\Ka\EOT & \Ka\LF  & \Ka\DLE & \Ka\SYN & \Ka\FS  \\
\Ka\ENQ & \Ka\VT  & \Ka\DCa & \Ka\ETB & \Ka\GS  \\
\Ka\ACK & \Ka\FF  & \Ka\DCb & \Ka\CAN & \Ka\RS  \\
\end{tabular}

\bigskip

\begin{tablenote}
  \texttt{SOH}, \texttt{STX}, \texttt{ETX},~$\ldots$, \texttt{US} are
  the names of ASCII characters~1--31.  \texttt{DEL} is the name of
  ASCII character~127.  \cmd{\splitvert} doesn't correspond to a control
  character but is merely the ``$|$'' character shown IBM style.

  These characters must be entered with the \texttt{ascii} font in
  effect, for example, ``\verb|{\ascii\STX}|''.  See the \ASCII\
  package documentation for more information.
\end{tablenote}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Communication Symbols}
\idxboth{communication}{symbols}
\label{marv-comm}
\begin{tabular}{*4{ll}ll}
\K\Email      & \K\fax        & \K\Faxmachine & \K\Lightning  & \K\Pickup  \\
\K\Emailct    & \K\FAX        & \K\Letter     & \K\Mobilefone & \K\Telefon \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Engineering Symbols}
\idxboth{engineering}{symbols}
\label{marv-engineering}
\begin{tabular}{*3{ll}ll}
\K\Beam         & \K\Force        & \K\Octosteel         & \K\RoundedTTsteel \\
\K\Bearing      & \K\Hexasteel    & \K\Rectpipe          & \K\Squarepipe     \\
\K\Circpipe     & \K\Lefttorque   & \K\Rectsteel         & \K\Squaresteel    \\
\K\Circsteel    & \K\Lineload     & \K\Righttorque       & \K\Tsteel         \\
\K\Fixedbearing & \K\Loosebearing & \K\RoundedLsteel$^*$ & \K\TTsteel        \\
\K\Flatsteel    & \K\Lsteel       & \K\RoundedTsteel$^*$ \\
\end{tabular}

\bigskip

\begin{tablenote}[*]
  \cmdI{\RoundedLsteel} and \cmdI{\RoundedTsteel} seem to be swapped,
  at least in the 2000/05/01 version of \pkgname{marvosym}.
\end{tablenote}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Biological Symbols}
\label{wasy-bio}
\begin{tabular}{*2{ll}}
\K\female & \K\male \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Biological Symbols}
\idxboth{biological}{symbols}
\label{marv-bio}
\begin{tabular}{*3{ll}ll}
\K\Female        & \K\FemaleMale    & \K\MALE          & \K\Neutral       \\
\K\FEMALE        & \K\Hermaphrodite & \K\Male          \\
\K\FemaleFemale  & \K\HERMAPHRODITE & \K\MaleMale      \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Safety-Related Symbols}
\idxboth{safety-related}{symbols}
\label{marv-safety}
\begin{tabular}{*3{ll}ll}
\K\Biohazard     & \K\CEsign        & \K\Explosionsafe & \K\Radioactivity \\
\K\BSEfree       & \K\Estatically   & \K\Laserbeam     & \K\Stopsign      \\
\end{tabular}
\end{symtable}

\idxbothend{scientific}{symbols}
\idxbothend{technological}{symbols}


\section{Dingbats}
\idxbothbegin{dingbat}{symbols}

Dingbats are symbols such as stars, arrows, and geometric shapes.
They are commonly used as bullets in itemized lists or, more
generally, as a means to draw attention to the text that follows.

The \PI\ dingbat package warrants special mention.  Among other
capabilities, \PI\ provides a \latex\ interface to the \PSfont{Zapf
Dingbats} font (one of the standard~35 PostScript\index{PostScript
fonts} fonts).  However, rather than name each of the dingbats
individually, \PI\ merely provides a single \cmd{\ding} command, which
outputs the character that lies at a given position in the font.  The
consequence is that the \PI\ symbols can't be listed by name in this
document's index, so be mindful of that fact when searching for a
particular symbol.

\bigskip


\begin{symtable}[DING]{\DING\ Arrows}
\label{bbding-arrows}
\begin{tabular}{*3{ll}}
\K\ArrowBoldDownRight    & \K\ArrowBoldRightShort  & \K\ArrowBoldUpRight \\
\K\ArrowBoldRightCircled & \K\ArrowBoldRightStrobe \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Arrows}
\index{arrows}
\label{pi-arrows}
\begin{tabular}{*5{ll}}
\Tp{212} & \Tp{221} & \Tp{230} & \Tp{239} & \Tp{249} \\
\Tp{213} & \Tp{222} & \Tp{231} & \Tp{241} & \Tp{250} \\
\Tp{214} & \Tp{223} & \Tp{232} & \Tp{242} & \Tp{251} \\
\Tp{215} & \Tp{224} & \Tp{233} & \Tp{243} & \Tp{252} \\
\Tp{216} & \Tp{225} & \Tp{234} & \Tp{244} & \Tp{253} \\
\Tp{217} & \Tp{226} & \Tp{235} & \Tp{245} & \Tp{254} \\
\Tp{218} & \Tp{227} & \Tp{236} & \Tp{246} \\
\Tp{219} & \Tp{228} & \Tp{237} & \Tp{247} \\
\Tp{220} & \Tp{229} & \Tp{238} & \Tp{248} \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Scissors}
\index{scissors}
\label{marv-scissors}
\begin{tabular}{*3{ll}}
\K\Cutleft       & \K\Cutright      & \K\Leftscissors  \\
\K\Cutline       & \K\Kutline       & \K\Rightscissors \\
\end{tabular}
\end{symtable}


\begin{symtable}[DING]{\DING\ Scissors}
\index{scissors}
\label{scissors}
\begin{tabular}{*2{ll}}
\K\ScissorHollowLeft        & \K\ScissorLeftBrokenTop     \\
\K\ScissorHollowRight       & \K\ScissorRight             \\
\K\ScissorLeft              & \K\ScissorRightBrokenBottom \\
\K\ScissorLeftBrokenBottom  & \K\ScissorRightBrokenTop    \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Scissors}
\index{scissors}
\label{pi-scissors}
\begin{tabular}{*4{ll}}
\Tp{33} & \Tp{34} & \Tp{35} & \Tp{36} \\
\end{tabular}
\end{symtable}


\begin{symtable}[ARK]{\ARK\ Pencils}
\index{pencils}
\vspace{1ex}
\begin{tabular}{*2{ll}}
\K\largepencil & \K\smallpencil \\
\end{tabular}
\end{symtable}


\begin{symtable}[DING]{\DING\ Pencils and Nibs}
\index{pencils}
\index{nibs}
\label{pencils-nibs}
\begin{tabular}{*3{ll}}
\K\NibLeft         & \K\PencilLeft      & \K\PencilRightDown \\
\K\NibRight        & \K\PencilLeftDown  & \K\PencilRightUp   \\
\K\NibSolidLeft    & \K\PencilLeftUp    \\
\K\NibSolidRight   & \K\PencilRight     \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Pencils and Nibs}
\index{pencils}
\index{nibs}
\label{pi-pencils}
\begin{tabular}{*5{ll}}
\Tp{46} & \Tp{47} & \Tp{48} & \Tp{49} & \Tp{50} \\
\end{tabular}
\end{symtable}


\begin{symtable}[ARK]{\ARK\ Hands}
\index{hands}
\label{ark-hands}
\renewcommand{\arraystretch}{1.25}
\begin{tabular}{*3{ll}}
\K\leftpointright  & \K\rightpointleft  & \K\rightpointright \\
\K\leftthumbsdown  & \K\rightthumbsdown \\
\K\leftthumbsup    & \K\rightthumbsup   \\
\end{tabular}
\end{symtable}


\begin{symtable}[DING]{\DING\ Hands}
\index{hands}
\label{hands}
\begin{tabular}{*3{ll}}
\K\HandCuffLeft    & \K\HandCuffRightUp & \K\HandPencilLeft  \\
\K\HandCuffLeftUp  & \K\HandLeft        & \K\HandRight       \\
\K\HandCuffRight   & \K\HandLeftUp      & \K\HandRightUp     \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Hands}
\index{hands}
\label{pi-hands}
\begin{tabular}{*4{ll}}
\Tp{42} & \Tp{43} & \Tp{44} & \Tp{45} \\
\end{tabular}
\end{symtable}


\begin{symtable}[DING]{\DING\ Crosses and Plusses}
\index{crosses}
\index{plusses}
\index{crucifixes}
\label{crosses-plusses}
\begin{tabular}{*3{ll}}
\K[\dingCross]\Cross  & \K\CrossOpenShadow    & \K\PlusOutline        \\
\K\CrossBoldOutline   & \K\CrossOutline       & \K\PlusThinCenterOpen \\
\K\CrossClowerTips    & \K\Plus               \\
\K\CrossMaltese       & \K\PlusCenterOpen     \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Crosses and Plusses}
\index{crosses}
\index{plusses}
\index{crucifixes}
\label{pi-crosses-plusses}
\begin{tabular}{*4{ll}}
\Tp{57} & \Tp{59} & \Tp{61} & \Tp{63} \\
\Tp{58} & \Tp{60} & \Tp{62} & \Tp{64} \\
\end{tabular}
\end{symtable}


\begin{symtable}[DING]{\DING\ Xs and Check Marks}
\index{check marks}
\index{Xs}
\label{ding-check-marks}
\begin{tabular}{*3{ll}}
\K\Checkmark     & \K\XSolid        & \K\XSolidBrush   \\
\K\CheckmarkBold & \K\XSolidBold    \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Xs and Check Marks}
\index{check marks}
\index{Xs}
\label{pi-check-marks}
\begin{tabular}{*3{ll}}
\Tp{51} & \Tp{53} & \Tp{55} \\
\Tp{52} & \Tp{54} & \Tp{56} \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Xs and Check Marks}
\index{check marks}
\index{Xs}
\label{wasy-check-marks}
\begin{tabular}{*6l}
\K\CheckedBox & \K\Square & \K\XBox
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Circled Numbers}
\index{circled numbers}
\index{digits>circled}
\label{circled-numbers}
\begin{tabular}{*4{ll}}
\Tp{172} & \Tp{182} & \Tp{192} & \Tp{202} \\
\Tp{173} & \Tp{183} & \Tp{193} & \Tp{203} \\
\Tp{174} & \Tp{184} & \Tp{194} & \Tp{204} \\
\Tp{175} & \Tp{185} & \Tp{195} & \Tp{205} \\
\Tp{176} & \Tp{186} & \Tp{196} & \Tp{206} \\
\Tp{177} & \Tp{187} & \Tp{197} & \Tp{207} \\
\Tp{178} & \Tp{188} & \Tp{198} & \Tp{208} \\
\Tp{179} & \Tp{189} & \Tp{199} & \Tp{209} \\
\Tp{180} & \Tp{190} & \Tp{200} & \Tp{210} \\
\Tp{181} & \Tp{191} & \Tp{201} & \Tp{211} \\
\end{tabular}

\bigskip

\begin{tablenote}
  \PI\ (part of the \pkgname{psnfss} package) provides a
  \cmd{dingautolist} environment which resembles \texttt{enumerate}
  but uses circled numbers as bullets.\footnotemark{} See the
  \pkgname{psnfss} documentation for more information.
\end{tablenote}
\end{symtable}
\footnotetext{In fact, \cmd{dingautolist} can use any set of
  consecutive \PSfont{Zapf Dingbats} symbols.}


\begin{symtable}[WASY]{\WASY\ Stars}
\index{stars}
\index{Jewish star}\index{Star of David}
\label{wasy-stars}
\begin{tabular}{*6l}
\K\davidsstar & \K\hexstar & \K\varhexstar
\end{tabular}
\end{symtable}


\begin{symtable}[DING]{\DING\ Stars, Flowers, and Similar Shapes}
\index{asterisks}
\index{clovers}
\index{flowers}
\index{sparkles}
\index{snowflakes}
\index{stars}
\index{Jewish star}\index{Star of David}
\label{star-like}
\begin{tabular}{*3{ll}}
\K\Asterisk                & \K\FiveFlowerPetal      & \K\JackStar                  \\
\K\AsteriskBold            & \K\FiveStar             & \K\JackStarBold              \\
\K\AsteriskCenterOpen      & \K\FiveStarCenterOpen   & \K\SixFlowerAlternate        \\
\K\AsteriskRoundedEnds     & \K\FiveStarConvex       & \K\SixFlowerAltPetal         \\
\K\AsteriskThin            & \K\FiveStarLines        & \K\SixFlowerOpenCenter       \\
\K\AsteriskThinCenterOpen  & \K\FiveStarOpen         & \K\SixFlowerPetalDotted      \\
\K\DavidStar               & \K\FiveStarOpenCircled  & \K\SixFlowerPetalRemoved     \\
\K\DavidStarSolid          & \K\FiveStarOpenDotted   & \K\SixFlowerRemovedOpenPetal \\
\K\EightAsterisk           & \K\FiveStarOutline      & \K\SixStar                   \\
\K\EightFlowerPetal        & \K\FiveStarOutlineHeavy & \K\SixteenStarLight          \\
\K\EightFlowerPetalRemoved & \K\FiveStarShadow       & \K\Snowflake                 \\
\K\EightStar               & \K\FourAsterisk         & \K\SnowflakeChevron          \\
\K\EightStarBold           & \K\FourClowerOpen       & \K\SnowflakeChevronBold      \\
\K\EightStarConvex         & \K\FourClowerSolid      & \K\Sparkle                   \\
\K\EightStarTaper          & \K\FourStar             & \K\SparkleBold               \\
\K\FiveFlowerOpen          & \K\FourStarOpen         & \K\TwelweStar                \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Stars, Flowers, and Similar Shapes}
\index{asterisks}
\index{clovers}
\index{flowers}
\index{sparkles}
\index{snowflakes}
\index{stars}
\label{pi-star-like}
\begin{tabular}{*5{ll}}
\Tp{65} & \Tp{74} & \Tp{83} & \Tp{92} & \Tp{101} \\
\Tp{66} & \Tp{75} & \Tp{84} & \Tp{93} & \Tp{102} \\
\Tp{67} & \Tp{76} & \Tp{85} & \Tp{94} & \Tp{103} \\
\Tp{68} & \Tp{77} & \Tp{86} & \Tp{95} & \Tp{104} \\
\Tp{69} & \Tp{78} & \Tp{87} & \Tp{96} & \Tp{105} \\
\Tp{70} & \Tp{79} & \Tp{88} & \Tp{97} & \Tp{106} \\
\Tp{71} & \Tp{80} & \Tp{89} & \Tp{98} & \Tp{107} \\
\Tp{72} & \Tp{81} & \Tp{90} & \Tp{99} \\
\Tp{73} & \Tp{82} & \Tp{91} & \Tp{100} \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Geometric Shapes}
\index{polygons}
\index{geometric shapes}
\label{wasy-geometrical}
\begin{tabular}{*8l}
\K\hexagon & \K\octagon & \K\pentagon & \K\varhexagon
\end{tabular}
\end{symtable}


\begin{symtable}[IFS]{\IFS\ Geometric Shapes}
\index{circles}
\index{diamonds}
\index{geometric shapes}
\index{squares}
\index{triangles}
\label{ifs-geometrical}
\begin{tabular}{*3{ll}}
\K\BigCircle             & \K\FilledBigTriangleRight   & \K\SmallCircle        \\
\K\BigCross              & \K\FilledBigTriangleUp      & \K\SmallCross         \\
\K\BigDiamondshape       & \K\FilledCircle             & \K\SmallDiamondshape  \\
\K\BigHBar               & \K\FilledDiamondShadowA     & \K\SmallHBar          \\
\K\BigLowerDiamond       & \K\FilledDiamondShadowC     & \K\SmallLowerDiamond  \\
\K\BigRightDiamond       & \K\FilledDiamondshape       & \K\SmallRightDiamond  \\
\K\BigSquare             & \K\FilledSmallCircle        & \K\SmallSquare        \\
\K\BigTriangleDown       & \K\FilledSmallDiamondshape  & \K\SmallTriangleDown  \\
\K\BigTriangleLeft       & \K\FilledSmallSquare        & \K\SmallTriangleLeft  \\
\K\BigTriangleRight      & \K\FilledSmallTriangleDown  & \K\SmallTriangleRight \\
\K\BigTriangleUp         & \K\FilledSmallTriangleLeft  & \K\SmallTriangleUp    \\
\K\BigVBar               & \K\FilledSmallTriangleRight & \K\SmallVBar          \\
\K[\ifsCircle]\Circle    & \K\FilledSmallTriangleUp    & \K\SpinDown           \\
\K[\ifsCross]\Cross      & \K\FilledSquare             & \K\SpinUp             \\
\K\DiamondShadowA        & \K\FilledSquareShadowA      & \K[\ifsSquare]\Square \\
\K\DiamondShadowB        & \K\FilledSquareShadowC      & \K\SquareShadowA      \\
\K\DiamondShadowC        & \K\FilledTriangleDown       & \K\SquareShadowB      \\
\K\Diamondshape          & \K\FilledTriangleLeft       & \K\SquareShadowC      \\
\K\FilledBigCircle       & \K\FilledTriangleRight      & \K[\ifsTriangleDown]\TriangleDown \\
\K\FilledBigDiamondshape & \K\FilledTriangleUp         & \K\TriangleLeft       \\
\K\FilledBigSquare       & \K\HBar                     & \K\TriangleRight      \\
\K\FilledBigTriangleDown & \K\LowerDiamond             & \K[\ifsTriangleUp]\TriangleUp \\
\K\FilledBigTriangleLeft & \K\RightDiamond             & \K\VBar               \\
\end{tabular}

\bigskip
\begin{tablenote}
  \begin{morespacing}{1pt}
    The \IFS\ documentation points out that one can use \cmd{\rlap} to
    combine some of the above into useful, new symbols.  For example,
    \cmdI{\BigCircle} and \cmdI{\FilledSmallCircle} combine to give
    ``\,\rlap\FilledSmallCircle\BigCircle\,''.  Likewise,
    \cmdI[\ifsSquare]{\Square} and
    \cmdI[\ifsCross]{\Cross} combine to give
    ``\rlap\ifsCross\ifsSquare''.  See Section~\ref{combining-symbols}
    for more information about constructing new symbols out of
    existing symbols.
  \end{morespacing}
\end{tablenote}
\end{symtable}


\begin{symtable}[DING]{\DING\ Geometric Shapes}
\index{circles}
\index{diamonds}
\index{ellipses (ovals)}
\index{geometric shapes}
\index{ovals}
\index{rectangles}
\index{squares}
\index{triangles}
\label{ding-geometrical}
\begin{tabular}{*3{ll}}
\K\CircleShadow    & \K\Rectangle                   & \K\SquareShadowTopLeft     \\
\K\CircleSolid     & \K\RectangleBold               & \K\SquareShadowTopRight    \\
\K\DiamondSolid    & \K\RectangleThin               & \K\SquareSolid             \\
\K\Ellipse         & \K[\dingSquare]\Square         & \K\TriangleDown            \\
\K\EllipseShadow   & \K\SquareCastShadowBottomRight & \K\TriangleUp              \\
\K\EllipseSolid    & \K\SquareCastShadowTopLeft     \\
\K\HalfCircleLeft  & \K\SquareCastShadowTopRight    \\
\K\HalfCircleRight & \K\SquareShadowBottomRight     \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{\PI\ Geometric Shapes}
\index{circles}
\index{diamonds}
\index{geometric shapes}
\index{rectangles}
\index{squares}
\index{triangles}
\label{pi-geometrical}
\begin{tabular}{*5{ll}}
\Tp{108} & \Tp{111} & \Tp{114} & \Tp{117} & \Tp{121} \\
\Tp{109} & \Tp{112} & \Tp{115} & \Tp{119} & \Tp{122} \\
\Tp{110} & \Tp{113} & \Tp{116} & \Tp{120} \\
\end{tabular}
\end{symtable}


\begin{symtable}[MAN]{\MAN\ Dangerous Bend Symbols}
\idxboth{dangerous bend}{symbols}
\index{symbols>Knuth's}
\index{Knuth, Donald E.>symbols by}
\idxTBsyms
\label{dangerous-bend}
\begin{tabular}{*3{ll}}
\K\dbend              & \K\lhdbend            & \K\reversedvideodbend \\
\end{tabular}

\bigskip
\begin{tablenote}
   Note that these symbols descend far beneath the baseline.  \MAN\
   also defines non-descending versions, which it calls,
   correspondingly, \cmdI[\string\textdbend]{\textdbend},
   \cmdI[\string\textlhdbend]{\textlhdbend}, and
   \cmdI[\string\textreversedvideodbend]{\textreversedvideodbend}.
\end{tablenote}
\end{symtable}


\begin{symtable}[SKULL]{\SKULL\ Symbols}
\label{skull}
\begin{tabular}{ll}
\K\skull
\end{tabular}
\end{symtable}


\begin{symtable}[ABX]{Non-Mathematical \ABX\ Symbols}
\label{abx-nonmath}
\begin{tabular}{ll}
\X[\ABXrip]\rip
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Information Symbols}
\idxboth{information}{symbols}
\index{check marks}
\index{Xs}
\label{marv-info}
\begin{tabular}{*3{ll}ll}
\K\Bicycle      & \K\Football     & \K\Pointinghand \\
\K\Checkedbox   & \K\Gentsroom    & \K\Wheelchair   \\
\K\Clocklogo    & \K\Industry     & \K\Writinghand  \\
\K\Coffeecup    & \K\Info         \\
\K\Crossedbox   & \K\Ladiesroom   \\
\end{tabular}
\end{symtable}


\begin{symtable}[ARK]{Miscellaneous \ARK\ Dingbats}
\idxboth{miscellaneous}{symbols}
\index{check marks}
\label{ark-misc}
\begin{tabular}{*3{ll}}
\K\anchor         & \K\eye                     & \K\Sborder        \\
\K\carriagereturn & \K\filledsquarewithdots    & \K\squarewithdots \\
\K[\ARKcheckmark]\checkmark & \K\satellitedish & \K\Zborder        \\
\end{tabular}
\end{symtable}


\begin{symtable}[DING]{Miscellaneous \DING\ Dingbats}
\idxboth{miscellaneous}{symbols}
\label{bbding-misc}
\begin{tabular}{*4{ll}}
\K\Envelope             & \K\Peace & \K\PhoneHandset & \K\SunshineOpenCircled \\
\K\OrnamentDiamondSolid & \K\Phone & \K\Plane        & \K\Tape                \\
\end{tabular}
\end{symtable}


\begin{symtable}[PI]{Miscellaneous \PI\ Dingbats}
\idxboth{miscellaneous}{symbols}
\index{card suits}
\index{diamonds (suit)}
\index{hearts (suit)}
\index{clubs (suit)}
\index{spades (suit)}
\label{pi-misc}
\begin{tabular}{*5{ll}}
\Tp{37} & \Tp{40}  & \Tp{164} & \Tp{167} & \Tp{171} \\
\Tp{38} & \Tp{41}  & \Tp{165} & \Tp{168} & \Tp{169} \\
\Tp{39} & \Tp{118} & \Tp{166} & \Tp{170} \\
\end{tabular}
\end{symtable}

\idxbothend{dingbat}{symbols}


\section{Other symbols}
\idxbothbegin{miscellaneous}{symbols}

The following are all the symbols that didn't fit neatly or
unambiguously into any of the previous sections.
\ifcomplete
(Do weather symbols belong under ``Science and technology''?  Should
dice be considered ``mathematics''?)  While some of the tables contain
clearly related groups of symbols (e.g., musical notes), others
represent motley assortments of whatever the font designer felt like
drawing.
\fi

\bigskip


\begin{symtable}{\TC\ Genealogical Symbols}
\idxboth{genealogical}{symbols}
\label{genealogical}
\begin{tabular}{*3{ll}}
\K\textborn     & \K\textdivorced & \K\textmarried  \\
\K\textdied     & \K\textleaf     \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ General Symbols}
\index{symbols>general}
\label{wasy-general}
\begin{tabular}{*4{ll}}
\K\ataribox    & \K\clock       & \K\LEFTarrow  & \K\smiley      \\
\K\bell        & \K\diameter    & \K\lightning  & \K\sun         \\
\K\blacksmiley & \K\DOWNarrow   & \K\phone      & \K\UParrow     \\
\K\Bowtie      & \K\frownie     & \K\pointer    & \K\wasylozenge \\
\K\brokenvert  & \K\invdiameter & \K\recorder                    \\
\K\checked     & \K\kreuz       & \K\RIGHTarrow                  \\
\end{tabular}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Musical Notes}
\index{musical notes}
\label{wasy-music}
\begin{tabular}{*{10}l}
\K\eighthnote     & \K\halfnote       & \K\twonotes       &
\K\fullnote       & \K\quarternote    \\
\end{tabular}

\bigskip
\begin{tablenote}
  See also \cmdX{\flat}, \cmdX{\sharp}, and \cmdX{\natural}
  (Table~\vref{ord}).
\end{tablenote}
\end{symtable}


\begin{symtable}[WASY]{\WASY\ Circles}
\index{circles}
\label{wasy-circles}
\begin{tabular}{*8l}
\K\CIRCLE         & \K\LEFTcircle     & \K\RIGHTcircle    & \K\rightturn      \\
\K\Circle         & \K\Leftcircle     & \K\Rightcircle    \\
\K\LEFTCIRCLE     & \K\RIGHTCIRCLE    & \K\leftturn       \\
\end{tabular}
\end{symtable}


\begin{symtable}[MAN]{Miscellaneous \MAN\ Symbols}
\index{symbols>Knuth's}
\index{Knuth, Donald E.>symbols by}
\index{symbols>Metafontbook=\MF{}book}\index{Metafontbook symbols=\MF{}book symbols}
\idxTBsyms
\label{knuth}
\begin{tabular}{*2{ll}}
\K\manboldkidney           & \K\manpenkidney            \\
\K\manconcentriccircles    & \K\manquadrifolium         \\
\K\manconcentricdiamond    & \K\manquartercircle        \\
\K\mancone                 & \K\manrotatedquadrifolium  \\
\K\mancube                 & \K\manrotatedquartercircle \\
\K\manerrarrow             & \K\manstar                 \\
\K\manfilledquartercircle  & \K\mantiltpennib           \\
\K\manhpennib              & \K\mantriangledown         \\
\K\manimpossiblecube       & \K\mantriangleright        \\
\K\mankidney               & \K\mantriangleup           \\
\K\manlhpenkidney          & \K\manvpennib              \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Navigation Symbols}
\idxboth{navigation}{symbols}
\label{marv-navigation}
\begin{tabular}{*3{ll}ll}
\K\Forward        & \K\MoveDown  & \K\RewindToIndex  & \K\ToTop \\
\K\ForwardToEnd   & \K\MoveUp    & \K\RewindToStart  \\
\K\ForwardToIndex & \K\Rewind    & \K\ToBottom       \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{\MARV\ Laundry Symbols}
\idxboth{laundry}{symbols}
\label{marv-laundry}
\begin{tabular}{*3{ll}}
\K\AtForty            & \K\Handwash           & \K\ShortNinetyFive    \\
\K\AtNinetyFive       & \K\IroningI           & \K\ShortSixty         \\
\K\AtSixty            & \K\IroningII          & \K\ShortThirty        \\
\K\Bleech             & \K\IroningIII         & \K\SpecialForty       \\
\K\CleaningA          & \K\NoBleech           & \K\Tumbler            \\
\K\CleaningF          & \K\NoChemicalCleaning & \K\WashCotton         \\
\K\CleaningFF         & \K\NoIroning          & \K\WashSynthetics     \\
\K\CleaningP          & \K\NoTumbler          & \K\WashWool           \\
\K\CleaningPP         & \K\ShortFifty         \\
\K\Dontwash           & \K\ShortForty         \\
\end{tabular}
\end{symtable}


\begin{symtable}[MARV]{Other \MARV\ Symbols}
\idxboth{miscellaneous}{symbols}
\index{crosses}\index{crucifixes}
\label{marv-misc}
\begin{tabular}{*4{ll}}
\K\Ankh        & \K\Cross        & \K\Heart       & \K\Smiley      \\
\K\Bat         & \K\FHBOlogo     & \K\MartinVogel & \K\Womanface   \\
\K\Bouquet     & \K\FHBOLOGO     & \K\Mundus      & \K\Yinyang     \\
\K\Celtcross   & \K\Frowny       & \K\MVAt        \\
\K\CircledA    & \K\FullFHBO     & \K[\marvRightarrow]\Rightarrow$^*$ \\
\end{tabular}

\bigskip
\begin{tablenote}[*]
  Standard \latexE{} defines \cmd{\Rightarrow} to display
  ``$\Rightarrow$'', while \MARV\ redefines it to display
  ``\marvRightarrow'' (or ``$\marvRightarrow$'' in math mode).  This
  conflict can be problematic for math symbols defined in terms of
  \cmd{\Rightarrow}, such as \cmd{\Longleftrightarrow}, which ends up
  looking like ``$\Leftarrow\joinrel\marvRightarrow$''.
\end{tablenote}
\end{symtable}


\begin{symtable}[IFS]{\IFS\ Weather Symbols}
\idxboth{weather}{symbols}
\label{weather}
\begin{tabular}{*4{ll}}
\K\Cloud               & \K\Hail                     & \K\Sleet        & \K\WeakRain        \\
\K\FilledCloud         & \K\HalfSun                  & \K\Snow         & \K\WeakRainCloud   \\
\K\FilledRainCloud     & \K[\ifsLightning]\Lightning & \K\SnowCloud    & \K\FilledSnowCloud \\
\K\FilledSunCloud      & \K\NoSun                    & \K[\ifsSun]\Sun &                    \\
\K\FilledWeakRainCloud & \K\Rain                     & \K\SunCloud     &                    \\
\K\Fog                 & \K\RainCloud                & \K\ThinFog      &                    \\
\end{tabular}

\bigskip
\begin{tablenote}
  \begin{morespacing}{\jot}
    In addition,
    \verb|\Thermo{0}|$\ldots$\verb|\Thermo{6}|\indexcommand{\Thermo}
    produce thermometers that are between 0/6 and 6/6~full of
    mercury:\quad \mbox{\Thermo{0}~~\Thermo{1}~~\Thermo{2}~~\Thermo{3}~~%
    \Thermo{4}~~\Thermo{5}~~\Thermo{6}}
  \end{morespacing}

  % \wind needs rotatation; fake it if necessary.
  \ifhaverotating
  \else
    \newcommand{\rotatebox}[2]{#2}
  \fi

  \begin{morespacing}{1pt}

    Similarly,
    \cmd{\wind}\verb|{|\meta{sun}\verb|}{|\meta{angle}\verb|}{|\meta{strength}\verb|}|
    will draw wind symbols with a given amount of sun~(0--4), a given
    angle (in degrees), and a given strength in km/h~(0--100).  For
    example, \verb|\wind{0}{0}{0}| produces ``\,\wind{0}{0}{0}\unskip'',
    \verb|\wind{2}{0}{0}| produces ``\,\wind{2}{0}{0}\unskip'', and
    \verb|\wind{4}{0}{100}| produces ``\,\wind{4}{0}{100}\unskip''.

  \end{morespacing}
\end{tablenote}
\end{symtable}


\begin{symtable}[IFS]{\IFS\ Alpine Symbols}
\idxboth{alpine}{symbols}
\label{alpine}
\begin{tabular}{*4{ll}}
\K\SummitSign & \K\Summit         & \K\SurveySign & \K\HalfFilledHut \\
\K\StoneMan   & \K\Mountain       & \K\Joch       & \K\VarSummit     \\
\K\Hut        & \K\IceMountain    & \K\Flag       &                  \\
\K\FilledHut  & \K\VarMountain    & \K\VarFlag    &                  \\
\K\Village    & \K\VarIceMountain & \K\Tent       &                  \\
\end{tabular}
\end{symtable}


\begin{symtable}[IFS]{\IFS\ Clocks}
\idxboth{clock}{symbols}
\index{time of day}
\label{clocks}
\begin{tabular}{*4{ll}}
\K\Interval     & \K\StopWatchStart & \K\VarClock       & \K\Wecker \\
\K\StopWatchEnd & \K\Taschenuhr     & \K\VarTaschenuhr  \\
\end{tabular}

\bigskip
\begin{tablenote}
  \IFS\ also exports a \cmd{\showclock} macro.
  \verb|\showclock{|\meta{hours}\verb|}{|\meta{minutes}\verb|}| outputs
  a clock displaying the corresponding time.  For instance,
  ``\verb|\showclock{5}{40}|'' produces ``\showclock{5}{40}''.
  \meta{hours} must be an integer from 0 to~11, and \meta{minutes} must
  be an integer multiple of~5 from 0 to~55.
\end{tablenote}
\end{symtable}


\begin{symtable}[IFS]{Other \IFS\ Symbols}
\idxboth{miscellaneous}{symbols}
\index{tally markers}
\index{dice}
\label{ifs-misc}
\begin{tabular}{*3{ll}}
\K\FilledSectioningDiamond & \K[\ifsLetter]\Letter
                                               & \K\Radiation         \\
\K\Fire                    & \K\PaperLandscape & \K\SectioningDiamond \\
\K\Irritant                & \K\PaperPortrait  & \K\Telephone         \\[2ex]

\K\StrokeOne               & \K\StrokeThree    & \K\StrokeFive        \\
\K\StrokeTwo               & \K\StrokeFour  \\
\end{tabular}

\bigskip
\begin{tablenote}
  \begin{morespacing}{\jot}
    In addition,
    \verb|\Cube{1}|$\ldots$\verb|\Cube{6}|\indexcommand{\Cube} produce
    dice with the corresponding number of spots:\quad
    \mbox{\Cube{1}~~\Cube{2}~~\Cube{3}~~\Cube{4}~~\Cube{5}~~\Cube{6}}
  \end{morespacing}
\end{tablenote}
\end{symtable}

\idxbothend{miscellaneous}{symbols}


\section{Additional Information}
\label{addl-info}

Unlike the previous sections of this document, Section~\ref{addl-info}
does not contain new symbol tables.  Rather, it provides additional
help in using the \doctitle.  First, it draws attention to symbol
names used by multiple packages.  Next, it provides some guidelines
for finding symbols and gives some examples regarding how to construct
missing symbols out of existing ones.  Then, it comments on the
spacing surrounding symbols in math mode.  After that, it presents an
ASCII and Latin~1 quick-reference guide, showing how to enter all of
the standard ASCII/Latin~1 symbols in \latex{}.  And finally, it lists
some statistics about this document itself.

\subsection{Symbol Name Clashes}

% Rather than create a rat's nest of \if statements, we keep the table
% whole and have each symbol conditionally appear.
\makeatletter
\newcommand{\trysym}[1]{\@ifundefined{#1}{\mbox{\tiny N/A}}{\csname#1\endcsname}}
\makeatother

Unfortunately, a number of symbol names are not unique; they appear in
more than one package.  Depending on how the symbols are defined in
each package, \latex{} will either output an error message or replace
an earlier-defined symbol with a later-defined symbol.
Table~\ref{name-clashes} presents a selection of name clashes that
appear in this document.
\ifcomplete
\else
  The symbol ``\trysym{NONEXISTENT}'' is used to indicate that the
  corresponding package was not available when \selftex was compiled.
\fi

\begin{nonsymtableL}{Symbol Name Clashes}
\label{name-clashes}
\begin{tabular}{@{}lp{0.3em}cccccccccc@{}} \toprule
  Symbol && \latexE & \AmS & \ST & \WASY & \ABX & \MARV & \DING & \IFS & \ARK & \WIPA \\
  \cmidrule(r){1-1}\cmidrule(l){3-12}
  %
  \cmdI[$\trysym{baro}$ vs.\ \trysym{WSUbaro}]{\baro} &&
    & & $\trysym{baro}$ & & & & & & & \trysym{WSUbaro} \\
  \cmdI[$\string\bigtriangledown$ vs.\ $\trysym{STbigtriangledown}$]{\bigtriangledown} &&
    $\bigtriangledown$ & & $\trysym{STbigtriangledown}$ \\
  \cmdI[$\string\bigtriangleup$ vs.\ $\trysym{STbigtriangleup}$]{\bigtriangleup} &&
    $\bigtriangleup$ & & $\trysym{STbigtriangleup}$ \\
  \cmdI[\trysym{checkmark} vs.\ \trysym{ARKcheckmark}]{\checkmark} &&
    & \trysym{checkmark} & & & & & & & \trysym{ARKcheckmark} \\
  \cmdI[\trysym{Circle} vs.\ \trysym{ifsCircle}]{\Circle} &&
    & & & \trysym{Circle} & & & & \trysym{ifsCircle} \\
  \cmdI[\trysym{Cross} vs.\ \trysym{dingCross} vs.\ \trysym{ifsCross}]{\Cross} &&
    & & & & & \trysym{Cross} & \trysym{dingCross} & \trysym{ifsCross} \\
  \cmdI[$\trysym{ggg}$ vs.\ $\trysym{ABXggg}$]{\ggg} &&
    & $\trysym{ggg}$ & & & $\trysym{ABXggg}$ \\
  \cmdI[\trysym{Letter} vs.\ \trysym{ifsLetter}]{\Letter} &&
    & & & & & \trysym{Letter} & & \trysym{ifsLetter} \\
  \cmdI[$\trysym{STlightning}$ vs.\ \trysym{WASYlightning}]{\lightning} &&
    & & $\trysym{STlightning}$ & \trysym{WASYlightning} \\
  \cmdI[\trysym{Lightning} vs.\ \trysym{ifsLightning}]{\Lightning} &&
    & & & & & \trysym{Lightning} & & \trysym{ifsLightning} \\
  \cmdI[$\trysym{lll}$ vs.\ $\trysym{ABXlll}$]{\lll} &&
    & $\trysym{lll}$ & & & $\trysym{ABXlll}$ \\
  \cmdI[$\string\Rightarrow$ vs.\ \trysym{marvRightarrow} vs.\ $\trysym{ABXRightarrow}$]{\Rightarrow} &&
    $\Rightarrow$ & & & & $\trysym{ABXRightarrow}$ & \trysym{marvRightarrow} \\
  \cmdI[\trysym{Square} vs.\ \trysym{dingSquare} vs.\ \trysym{ifsSquare}]{\Square} &&
    & & & \trysym{Square} & & & \trysym{dingSquare} & \trysym{ifsSquare} \\
  \cmdI[\trysym{Sun} vs.\ \trysym{ifsSun} vs.\ $\trysym{ABXSun}$]{\Sun} &&
    & & & & $\trysym{ABXSun}$ & \trysym{Sun} & & \trysym{ifsSun} \\
  \cmdI[\trysym{TriangleDown} vs.\ \trysym{ifsTriangleDown}]{\TriangleDown} &&
    & & & & & & \trysym{TriangleDown} & \trysym{ifsTriangleDown} \\
  \cmdI[\trysym{TriangleUp} vs.\ \trysym{ifsTriangleUp}]{\TriangleUp} &&
    & & & & & & \trysym{TriangleUp} & \trysym{ifsTriangleUp} \\
  \bottomrule
\end{tabular}
\end{nonsymtableL}


Using multiple symbols with the same name in the same document---or
even merely loading conflicting symbol packages---can be tricky, but,
as evidenced by the existence of Table~\ref{name-clashes}, not
impossible.  The general procedure is to load the first package,
rename the conflicting symbols, and then load the second package.
Examine the \latex{} source for this document
(\selftex)---especially the \cmd{\savesymbol} and
\cmd{\restoresymbol} macros and their subsequent usage---to see one
possible way to handle symbol conflicts.

\ifTX

\TX\ and \PX\ redefine a huge number of symbols---essentially, all of
the symbols defined by \pkgname{latexsym}, \TC, the various \AMS\
symbol sets, and \latexE\ itself.
\ifABX
  Similarly, \ABX\ redefines a vast number of math symbols in an
  attempt to improve their look.  The \TX, \PX, and \ABX\ conflicts
\else
  The \TX\ and \PX\ conflicts
\fi
are not listed in Table~\ref{name-clashes} because they are designed
to be compatible with the symbols they replace.
Table~\vref{benign-clash} illustrates what ``compatible'' means in
this context.

\begin{nonsymtable}{Example of a Benign Name Clash}
\label{benign-clash}
\begin{tabular}{@{}lcc@{}} \toprule
& Default & \TX \\
\multicolumn{1}{c}{\raisebox{1ex}[0pt][0pt]{Symbol}} & (Computer Modern) &
(Times Roman) \\ \cmidrule(r){1-1}\cmidrule(l){2-3}
\texttt{R} & \Huge R & {\fontfamily{txr}\selectfont \Huge R} \\
\cmdI{\textrecipe} & \Huge\textrecipe &
  {\fontfamily{txr}\selectfont \Huge\textrecipe} \\
\bottomrule
\end{tabular}
\end{nonsymtable}

To use the new \TXPX\ symbols without altering the document's main font,
merely reset the default font families back to their original values
after loading one of those packages:

\begin{verbatim}
    \renewcommand\rmdefault{cmr}
    \renewcommand\sfdefault{cmss}
    \renewcommand\ttdefault{cmtt}
\end{verbatim}

\fi   % TX test


\subsection{Where can I find the symbol for~$\ldots$~?}
\label{combining-symbols}

If you can't find some symbol you're looking for in this document, there
are a few possible explanations:

\begin{itemize}
  \item The symbol isn't intuitively named.  As a few examples, the
  command to draw dice\index{dice} is ``\cmd{\Cube}''; a plus sign
  with a circle around it (``exclusive or''\index{exclusive or} to
  computer engineers) is ``\cmdX{\oplus}''; and lightning bolts in
  fonts designed by German speakers may have ``blitz'' in their names.
  The moral of the story is to be creative with synonyms when
  searching the index.

  \item The symbol is defined by some package that I overlooked (or
  deemed unimportant).  If there's some symbol package that you think
  should be included in the \doctitle, please send me e-mail at the
  address listed on the title page.

  \item The symbol isn't defined in any package whatsoever.
\end{itemize}

\ifPI
  Even in the last case, all is not lost.  Sometimes, a symbol exists
  in a font, but there is no \latex{} binding for it.  For example,
  the PostScript \PSfont{Symbol} font contains a
  ``\Pisymbol{psy}{191}''\index{arrows} symbol, which may be useful
  for representing a carriage\index{carriage return} return, but there
  is no package for accessing that symbol (as far as I know).  To
  produce an unnamed symbol, you need to switch to the font explicitly
  with \latexE's low-level font commands~\cite{fntguide} and use
  \tex's primitive \cmd{\char} command~\cite{Knuth:ct-a} to request a
  specific character number in the font.\footnote{\pkgname{pifont}
  defines a convenient \cmd{\Pisymbol} command for accessing symbols
  in PostScript\index{PostScript fonts} fonts by number.
  For example,
  ``\cmd{\Pisymbol}\texttt{\string{psy\string}\string{191\string}}''
  produces ``\Pisymbol{psy}{191}''.}

  \bigskip

  Symbols that do not exist in any font can sometimes be fabricated
  out of existing symbols.  The \latexE{} source file \fontdefdtx
  contains a number of such definitions.  For example, \cmdX{\models}
  (see Table~\vref{rel}) is defined in that file with:
\else
  Even in the last case, all is not lost.  Sometimes, a symbol exists
  in a font, but there is no \latex{} binding for it.  Or, if a symbol
  does not exist in any font, it may be possible to fabricate it out
  of existing symbols.  The \latexE{} source file \fontdefdtx contains
  a number of such definitions.  For example,
  \cmd[$\string\models$]{\models} (see Table~\vref{rel}) is defined in
  that file with:
\fi    % PI test

\begin{verbatim}
    \def\models{\mathrel|\joinrel=}
\end{verbatim}

\noindent
where \cmd{\mathrel} and \cmd{\joinrel} are used to control the horizontal
spacing.  (See \TeXbook for more information on those commands.)

\newcommand{\ismodeledby}{\ensuremath{=\joinrel\mathrel|}}
With some simple pattern-matching, one can easily define a backward
\cmdX{\models} sign (``\ismodeledby''):

\begin{verbatim}
    \def\ismodeledby{=\joinrel\mathrel|}
\end{verbatim}
\indexcommand[\string\ismodeledby]{\ismodeledby}

In general, arrows/harpoons, horizontal lines (``='', ``-'',
``\cmdX{\relbar}'', and ``\cmdX{\Relbar}''), and the various
math-extension characters can be combined creatively with
miscellaneous other characters to produce a variety of new symbols.
Of course, new symbols can be composed from \emph{any} set of existing
characters.  For instance, \latex defines \cmdX{\hbar} (``$\hbar$'')
as a bar character (\verb|\mathchar'26|) followed by a backspace of
9~math units (\verb|\mkern-9mu|), followed by the letter ``h'':

\begin{verbatim}
    \def\hbar{{\mathchar'26\mkern-9muh}}
\end{verbatim}

\noindent
We can just as easily define other barred\idxboth{barred}{letters}
letters:

\def\bbar{{\mathchar'26\mkern-9mu b}}
\def\dbar{{\mathchar'26\mkern-12mu d}}

\begin{verbatim}
    \def\bbar{{\mathchar'26\mkern-9mu b}}
    \def\dbar{{\mathchar'26\mkern-12mu d}}
\end{verbatim}

\noindent
(The space after the ``mu'' is optional but is added for clarity.)
\cmdX{\bbar} and \cmdX{\dbar} define ``$\bbar$'' and ``$\dbar$'',
respectively.  Note that \cmdX{\dbar} requires a greater backward
math~kern than \cmdX{\bbar}; a -9\,mu~kern would have produced
the less-attractive ``$\mathchar'26\mkern-9mu d$'' glyph.

\index{subscripts>new symbols used in|(}
\index{superscripts>new symbols used in|(}
\def\topbotatom#1{\hbox{\hbox to 0pt{$#1\bot$\hss}$#1\top$}}
\newcommand*{\topbot}{\mathrel{\mathchoice{\topbotatom\displaystyle}
                                 {\topbotatom\textstyle}
                                 {\topbotatom\scriptstyle}
                                 {\topbotatom\scriptscriptstyle}}}

To make composite symbols work properly within subscripts and
superscripts, you may need to use \tex's \cmd{\mathchoice} primitive.
\cmd{\mathchoice} evaluates one of four expressions, based on whether
the current math style is display, text, script, or scriptscript.
(See \TeXbook for a more complete description.)  For example, the
following \latex code---posted to \ctt by Torsten\index{Bronger,
Torsten} Bronger---composes a sub/superscriptable ``$\topbot$'' symbol
out of \cmdX{\top} and \cmdX{\bot} (``$\top$'' and ``$\bot$''):

\indexcommand[$\string\topbot$]{\topbot}%
\begin{verbatim}
    \def\topbotatom#1{\hbox{\hbox to 0pt{$#1\bot$\hss}$#1\top$}}
    \newcommand*{\topbot}{\mathrel{\mathchoice{\topbotatom\displaystyle}
                                     {\topbotatom\textstyle}
                                     {\topbotatom\scriptstyle}
                                     {\topbotatom\scriptscriptstyle}}}
\end{verbatim}
\index{superscripts>new symbols used in|)}
\index{subscripts>new symbols used in|)}

\index{integrals|(}

The following\label{dashint} is another example that uses
\cmd{\mathchoice} to construct symbols in different math modes.  The
code defines a principal value integral symbol, which is an integral
sign with a line through it.

\begin{verbatim}
    \def\Xint#1{\mathchoice
       {\XXint\displaystyle\textstyle{#1}}%
       {\XXint\textstyle\scriptstyle{#1}}%
       {\XXint\scriptstyle\scriptscriptstyle{#1}}%
       {\XXint\scriptscriptstyle\scriptscriptstyle{#1}}%
       \!\int}
    \def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$}
         \vcenter{\hbox{$#2#3$}}\kern-.5\wd0}}
    \def\ddashint{\Xint=}
    \def\dashint{\Xint-}
\end{verbatim}

\noindent
\cmdI[$\string\dashint$]{\dashint} produces a single-dashed integral
sign (``$\dashint$''), while \cmdX{\ddashint} produces a double-dashed
one (``$\ddashint$'').  The same technique can be used to produce, for
example, clockwise and counterclockwise contour integrals.  (Search
the \ctt archives for a post by \person{Donald}{Arseneau} that says
exactly how.)  The preceding code was taken verbatim from the UK
\TeX{} Users' Group FAQ (\url{http://www.tex.ac.uk/faq}).
\index{integrals|)}

\index{arrows>double-headed, diagonal|(}
\newcommand{\neswarrow}{\mathrel{\text{$\nearrow$\llap{$\swarrow$}}}}
\newcommand{\nwsearrow}{\mathrel{\text{$\nwarrow$\llap{$\searrow$}}}}

Sometimes, however, \pkgname{amstext}'s \cmd{\text} macro is all that
is necessary to make composite symbols appear correctly in subscripts
and superscripts, as in the following definitions of \cmdX{\neswarrow}
(``$\neswarrow$'') and \cmdX{\nwsearrow}
(``$\nwsearrow$''):\footnote{Note that if your goal is to typeset
commutative diagrams, then you probably want to use \xypic.}

\begin{verbatim}
    \newcommand{\neswarrow}{\mathrel{\text{$\nearrow$\llap{$\swarrow$}}}}
    \newcommand{\nwsearrow}{\mathrel{\text{$\nwarrow$\llap{$\searrow$}}}}
\end{verbatim}

\noindent
\cmd{\text} resembles \latex's \cmd{\mbox} command but shrinks its
argument appropriately when used within a subscript or superscript.
\cmd{\llap} (``left overlap'') and its counterpart, \cmd{\rlap}
(``right overlap''), appear frequently when creating composite
characters.  \cmd{\llap} outputs its argument to the left of the
current position, overlapping whatever text is already there.
Similarly, \cmd{\rlap} overlaps whatever text would normally appear to
the right of its argument.  For example,
``\verb|A|\cmd{\llap}\verb|{B}|'' and ``\cmd{\rlap}\verb|{A}B|'' each
produce ``A\llap{B}''.  However, the result of the former is the width
of ``A'', and the result of the latter is the width of
``B''---\cmd{\llap}\verb|{|\dots\verb|}| and
\cmd{\rlap}\verb|{|\dots\verb|}| take up zero space.
\index{arrows>double-headed, diagonal|)}

\index{dots (ellipses)|(}
\index{ellipses (dots)|(}
As another example, \fontdefdtx composes the \cmdX{\ddots} symbol (see
Table~\vref{dots}) out of three periods, raised~7\,pt., 4\,pt., and
1\,pt., respectively:

\begin{verbatim}
    \def\ddots{\mathinner{\mkern1mu\raise7\p@
        \vbox{\kern7\p@\hbox{.}}\mkern2mu
        \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
\end{verbatim}

\noindent
\cmd{\p@} is a \latexE{} shortcut for ``\texttt{pt}'' or
``\texttt{1.0pt}''.  The remaining commands are defined in \TeXbook.
To\label{revddots} draw a version of \cmdX{\ddots} with the dots going
along the opposite diagonal, we merely have to reorder the
\verb|\raise7\p@|, \verb|\raise4\p@|, and \verb|\raise\p@|:

\begin{verbatim}
    \makeatletter
    \def\revddots{\mathinner{\mkern1mu\raise\p@
        \vbox{\kern7\p@\hbox{.}}\mkern2mu
        \raise4\p@\hbox{.}\mkern2mu\raise7\p@\hbox{.}\mkern1mu}}
    \makeatother
\end{verbatim}
    \makeatletter
    \def\revddots{\mathinner{\mkern1mu\raise\p@
        \vbox{\kern7\p@\hbox{.}}\mkern2mu
        \raise4\p@\hbox{.}\mkern2mu\raise7\p@\hbox{.}\mkern1mu}}
    \makeatother
\indexcommand[$\string\revddots$]{\revddots}

\noindent
(The \cmd{\makeatletter} and \cmd{\makeatother} commands are needed to
coerce \latex{} into accepting ``\texttt{@}'' as part of a macro
name.)  \cmdX{\revddots} is essentially identical to the \YH\
package's
\ifYH
  \cmdX{\adots}
\else
  \cmd{\adots}
\fi
command.
\index{ellipses (dots)|)}
\index{dots (ellipses)|)}

\index{accents|(}
\index{extensible accents|(}
\index{accents>extensible|(}
A more complex example of composing new symbols from existing symbols
is the following definition of extensible \cmd{\overbracket},
\cmd{\underbracket}, \cmd{\overparenthesis}, and
\cmd{\underparenthesis} symbols, taken from a \ctt post by
\person{Donald}{Arseneau}:

\makeatletter
\def\overbracket#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
      \downbracketfill\crcr\noalign{\kern3\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
\def\underbracket#1{\mathop{\vtop{\ialign{##\crcr
      $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
      \upbracketfill\crcr\noalign{\kern3\p@}}}}\limits}
\def\overparenthesis#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
      \downparenthfill\crcr\noalign{\kern3\p@\nointerlineskip}
      $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
\def\underparenthesis#1{\mathop{\vtop{\ialign{##\crcr
      $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
      \upparenthfill\crcr\noalign{\kern3\p@}}}}\limits}
\def\downparenthfill{$\m@th\braceld\leaders\vrule\hfill\bracerd$}
\def\upparenthfill{$\m@th\bracelu\leaders\vrule\hfill\braceru$}
\def\upbracketfill{$\m@th\makesm@sh{\llap{\vrule\@height3\p@\@width.7\p@}}%
  \leaders\vrule\@height.7\p@\hfill
  \makesm@sh{\rlap{\vrule\@height3\p@\@width.7\p@}}$}
\def\downbracketfill{$\m@th
  \makesm@sh{\llap{\vrule\@height.7\p@\@depth2.3\p@\@width.7\p@}}%
  \leaders\vrule\@height.7\p@\hfill
  \makesm@sh{\rlap{\vrule\@height.7\p@\@depth2.3\p@\@width.7\p@}}$}
\makeatother

\begin{verbatim}
    \makeatletter
    \def\overbracket#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
          \downbracketfill\crcr\noalign{\kern3\p@\nointerlineskip}
          $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
    \def\underbracket#1{\mathop{\vtop{\ialign{##\crcr
          $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
          \upbracketfill\crcr\noalign{\kern3\p@}}}}\limits}
    \def\overparenthesis#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
          \downparenthfill\crcr\noalign{\kern3\p@\nointerlineskip}
          $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
    \def\underparenthesis#1{\mathop{\vtop{\ialign{##\crcr
          $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
          \upparenthfill\crcr\noalign{\kern3\p@}}}}\limits}
    \def\downparenthfill{$\m@th\braceld\leaders\vrule\hfill\bracerd$}
    \def\upparenthfill{$\m@th\bracelu\leaders\vrule\hfill\braceru$}
    \def\upbracketfill{$\m@th\makesm@sh{\llap{\vrule\@height3\p@\@width.7\p@}}%
      \leaders\vrule\@height.7\p@\hfill
      \makesm@sh{\rlap{\vrule\@height3\p@\@width.7\p@}}$}
    \def\downbracketfill{$\m@th
      \makesm@sh{\llap{\vrule\@height.7\p@\@depth2.3\p@\@width.7\p@}}%
      \leaders\vrule\@height.7\p@\hfill
      \makesm@sh{\rlap{\vrule\@height.7\p@\@depth2.3\p@\@width.7\p@}}$}
    \makeatother
\end{verbatim}

\noindent
Table~\ref{manual-extensible-accents} showcases these accents.
\TeXbook or another book on \tex primitives is indispensible for
understanding how the preceding code works.  The basic idea is that
\cmd{\downparenthfill}, \cmd{\upparenthfill}, \cmd{\downbracketfill},
and \cmd{\upbracketfill} do all of the work; they output a left symbol
(e.g.,~\cmdX{\braceld} [``$\braceld$''] for \cmd{\downparenthfill}), a
horizontal rule that stretches as wide as possible, and a right symbol
(e.g.,~\cmdX{\bracerd} [``$\bracerd$''] for \cmd{\downparenthfill}).
\cmd{\overbracket}, \cmd{\underbracket}, \cmd{\overparenthesis}, and
\cmd{\underparenthesis} merely create a table whose width is
determined by the given text, thereby constraining the width of the
horizontal rules.
\index{accents>extensible|)}
\index{extensible accents|)}
\index{accents|)}

\begin{nonsymtable}{Manually Composed Extensible Accents}
\index{accents}
\idxboth{extensible}{accents}
\label{manual-extensible-accents}
\renewcommand{\arraystretch}{1.75}
\begin{tabular}{*2{ll}}
\W\overbracket{abc}  & \W\overparenthesis{abc}  \\
\W\underbracket{abc} & \W\underparenthesis{abc} \\
\end{tabular}
\end{nonsymtable}

\bigskip

\ifx\diatop\undefined
% The following was copied verbatim from ipa.sty, from the wsuipa package.
\def\diatop[#1|#2]{%
    {\setbox1=\hbox{#1{}}% diacritic mark
     \setbox2=\hbox{#2{}}%  letter (the group {} in case it is a diacritic)
     \dimen0=\ifdim\wd1>\wd2\wd1\else\wd2\fi% compute the max width
        % the `natural height' of diacritics is 1ex;
        % \dimen1 is the shift upwards
     \dimen1=\ht2\advance\dimen1by-1ex%
        % center the diacritic mark on the width of the letter:
     \setbox1=\hbox to\dimen0{\hss#1{}\hss}%
     \leavevmode % force horizontal mode
     \rlap{\raise\dimen1\box1}% the raised diacritic mark
     \hbox to\dimen0{\hss#2\hss}% the letter
    }%
  }%
\fi

\index{accents|(}
\index{accents>multiple per character}
\index{multiple accents per character}
Accents\label{multiple-accents} are a special case of combining
existing symbols to make new symbols.  While various tables in this
document show how to add an accent to an existing symbol, some
applications, such as transliterations from non-Latin alphabets,
require \emph{multiple} accents per character.  For instance, the
creator of pdf\TeX\ writes his name as ``H\`an
Th\diatop[\'|\^e]\index{Thanh, Han The=\thanhhanthe} Th\`anh''.  The
\pkgname{wsuipa} package defines \cmd{\diatop} and \cmd{\diaunder}
macros for putting one or more diacritics or accents above or below a
given character.
\ifTIPA\ifWIPA
  For example,
  \verb+\diaunder[{\diatop[\'|\=]}|+\linebreak[0]\verb+\textsubdot{r}]+
  produces ``\diaunder[{\diatop[\'|\=]}|\textsubdot{r}]''.
\fi\fi
See the \pkgname{wsuipa} documentation for more information.

\index{accents>any character as}
The \pkgname{accents} package facilitates the fabrication of accents
in math mode.  Its \cmd{\accentset} command enables \emph{any}
character to be used as an accent.
\ifACCENTS
  For instance, \cmd{\accentset}\verb+{+\cmdX{\star}\verb+}{f}+
  produces ``$\accentset{\star}{f}\,$'' and
  \cmd{\accentset}\verb+{e}{X}+ produces ``$\accentset{e}{X}$''.
\fi
\cmd{\underaccent} does the same thing, but places the accent beneath
the character.
\ifACCENTS
  This enables constructs like
  \cmd{\underaccent}\verb+{+\cmdI[$\string\blackacc{\string\tilde}$]{\tilde}\verb+}{V}+,
  which produces ``$\underaccent{\tilde}{V}$''.
\fi
\pkgname{accents} provides other accent-related features as well; see
the documentation for more information.
\index{accents|)}


\subsection{Math-mode spacing}
\label{math-spacing}

Terms such as ``binary operators'', ``relations'', and ``punctuation''
in Section~\ref{math-symbols} primarily regard the surrounding
spacing.  (See the Short Math Guide for \latex~\cite{Downes:smg} for a
nice exposition on the subject.)  To use an symbol for a different
purpose, you can use the \tex commands \cmd{\mathord}, \cmd{\mathop},
\cmd{\mathbin}, \cmd{\mathrel}, \cmd{\mathopen}, \cmd{\mathclose}, and
\cmd{\mathpunct}.  For example, if you want to use \cmd{\downarrow} as
a variable (an ``ordinary'' symbol) instead of a delimiter, you can
write ``\verb|$3 x + \mathord{\downarrow}$|'' to get the properly
spaced ``$3 x + \mathord{\downarrow}$'' rather than the
awkward-looking ``$3 x + \downarrow$''.  See \TeXbook for more
information.

The purpose of the ``log-like symbols'' in
\ifAMS
  Tables~\ref{log} and~\ref{ams-log}
\else
  Table~\ref{log}
\fi
is to provide the correct amount of spacing around and within
multiletter function names.  Table~\vref{log-spacing} contrasts the
output of the log-like symbols with various, na\"{\i}ve alternatives.
In addition to spacing, the log-like symbols also handle subscripts
properly.  For example, ``\verb|\max_{p \in P}|'' produces ``$\max_{p
\in P}$'' in text, but ``$\displaystyle\max_{p \in P}$'' as part of a
displayed formula.

\begin{nonsymtable}{Spacing Around/Within Log-like Symbols}
\label{log-spacing}
\setlength{\tabcolsep}{1em}
\begin{tabular}{@{}ll@{}} \toprule
\latex{} expression & Output \\ \midrule
\verb|$r \sin \theta$|       & $r \sin \theta$ (best) \\
\verb|$r sin \theta$|        & $r sin \theta$         \\
\verb|$r \mbox{sin} \theta$| & $r \mbox{sin} \theta$  \\
\bottomrule
\end{tabular}
\end{nonsymtable}

The \pkgname{amsmath} package makes it straightforward to define new
log-like symbols:

\begin{verbatim}
    \DeclareMathOperator{\atan}{atan}
    \DeclareMathOperator*{\lcm}{lcm}
\end{verbatim}
\indexcommand[$\string\atan$]{\atan}%
\indexcommand[$\string\lcm$]{\lcm}

\noindent
The difference between \cmd{\DeclareMathOperator} and
\cmd{\DeclareMathOperator*} involves the handling of subscripts.  With
\cmd{\DeclareMathOperator*}, subscripts are written beneath log-like
symbols in display style and to the right in text style.  This is
useful for limit operators (e.g.,~\cmdX{\lim}) and functions that tend
to map over a set (e.g.,~\cmdX{\min}).  In contrast,
\cmd{\DeclareMathOperator} tells \tex that subscripts should always be
displayed to the right of the operator, as is common for functions
that take a single parameter (e.g.,~\cmdX{\log} and~\cmdX{\cos}).
Table~\ref{new-log-likes} contrasts symbols declared with
\cmd{\DeclareMathOperator} and \cmd{\DeclareMathOperator*} in both
text style (\texttt{\$}$\ldots$\texttt{\$}) and display~style
(\texttt{\string\[}$\ldots$\texttt{\string\]}).

\begin{nonsymtable}{Defining new log-like symbols}
\label{new-log-likes}
\renewcommand{\tabcolsep}{1em}
\begin{tabular}{@{}lll@{}}
  \toprule
  Declaration function &
  \texttt{\$\string\newlogsym\_\string{p \string\in~P\string}\$} &
  \texttt{\string\[~\string\newlogsym\_\string{p \string\in~P\string}~\string\]} \\
  \midrule

  \texttt{\string\DeclareMathOperator} &
  $\newlogsym_{p \in P}$ &
  $\displaystyle\newlogsym_{p \in P}$ \\[1ex]

  \texttt{\string\DeclareMathOperator*} &
  $\newlogsymSTAR_{p \in P}$ &
  $\displaystyle\newlogsymSTAR_{p \in P}$ \\
  \bottomrule
\end{tabular}
\end{nonsymtable}


\subsection{ASCII and Latin~1 quick reference}
\label{ascii-quickref}

\index{ASCII|(}

Table~\vref{ascii-table} amalgamates data from various other tables in
this document into a convenient reference for \latexE typesetting of
ASCII characters, i.e., the characters available on a
typical\footnote{typical for the United States, at least} computer
keyboard.  The first two columns list the character's ASCII code in
decimal and hexadecimal.  The third column shows what the character
looks like.  The fourth column lists the \latexE command to typeset the
character as a text character.  And the fourth column lists the \latexE
command to typeset the character within a
\verb|\texttt{|$\ldots$\verb|}| command (or, more generally, when
\verb|\ttfamily| is in effect).

\index{ASCII|)}

\begin{nonsymtable}{\latexE ASCII Table}
  \index{ASCII>table}
  \label{ascii-table}
  % Define an equivalent of \vdots that's the height of a "9".
  \newlength{\digitheight}
  \settoheight{\digitheight}{9}
  \newcommand{\digitvdots}{\raisebox{-1.5pt}[\digitheight]{$\vdots$}}

  % Replace all glyphs in a row with vertical dots.
  \makeatletter
  \newcommand{\skipped}{%
    \settowidth{\@tempdima}{99} \makebox[\@tempdima]{\digitvdots} &
    \settowidth{\@tempdima}{99} \makebox[\@tempdima]{\digitvdots} &
    \digitvdots &
    \digitvdots &
    \digitvdots \\
  }
  \makeatother

  % Typesetting a symbol by prefixing it with a "\".
  \newcommand{\bscommand}[1]{#1 & \cmdI{#1} & \cmdI{#1}}

  \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c*2{>{\ttfamily}l}l@{}} \\ \toprule
    \multicolumn{1}{@{}c}{Dec} &
    \multicolumn{1}{c}{Hex} &
    \multicolumn{1}{c}{Char} &
    \multicolumn{1}{c}{Body text} &
    \multicolumn{1}{c@{}}{\ttfamily\string\texttt} \\ \midrule

    33 & 21 & ! & ! & ! \\
    34 & 22 & {\fontencoding{T1}\selectfont\textquotedbl} &
      \string\textquotedbl & " \\      % Not available in OT1
    35 & 23 & \bscommand{\#} \\
    36 & 24 & \bscommand{\$} \\
    37 & 25 & \bscommand{\%} \\
    38 & 26 & \bscommand{\&} \\
    39 & 27 & ' & ' & ' \\
    40 & 28 & ( & ( & ( \\
    41 & 29 & ) & ) & ) \\
    42 & 2A & * & * & * \\
    43 & 2B & + & + & + \\
    44 & 2C & , & , & , \\
    45 & 2D & - & - & - \\
    46 & 2E & . & . & . \\
    47 & 2F & / & / & / \\
    48 & 30 & 0 & 0 & 0 \\
    49 & 31 & 1 & 1 & 1 \\
    50 & 32 & 2 & 2 & 2 \\
    \skipped
    57 & 39 & 9 & 9 & 9 \\
    58 & 3A & : & : & : \\
    59 & 3B & ; & ; & ; \\
    60 & 3C & \textless & \cmdI{\textless} & < \\         % Or $<$
    61 & 3D & = & = & = \\ \bottomrule
  \end{tabular}
  \hfil
  \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c*2{>{\ttfamily}l}l@{}} \\ \toprule
    \multicolumn{1}{@{}c}{Dec} &
    \multicolumn{1}{c}{Hex} &
    \multicolumn{1}{c}{Char} &
    \multicolumn{1}{c}{Body text} &
    \multicolumn{1}{c@{}}{\ttfamily\string\texttt} \\ \midrule

    62 & 3E & \textgreater & \cmdI{\textgreater} & > \\   % Or $>$
    63 & 3F & ? & ? & ? \\
    64 & 40 & @ & @ & @ \\
    65 & 41 & A & A & A \\
    66 & 42 & B & B & B \\
    67 & 43 & C & C & C \\
    \skipped
    90 & 5A & Z & Z & Z \\
    91 & 5B & [ & [ & [ \\
    92 & 5C & \textbackslash & \cmdI{\textbackslash} &
      \verb|\char`\\| \\   % \textbackslash works in non-OT1
    93 & 5D & ] & ] & ] \\
    94 & 5E & \^{} & \verb|\^{}| & \verb|\^{}| \\   % Or \textasciicircum
    95 & 5F & \_ & \verb|\_| & \verb|\char`\_| \\   % \_ works in non-OT1
    96 & 60 & ` & ` & ` \\
    97 & 61 & a & a & a \\
    98 & 62 & b & b & b \\
    99 & 63 & c & c & c \\
    \skipped
   122 & 7A & z & z & z \\
   123 & 7B & \{ & \verb|\{| & \verb|\char`\{| \\   % \{ works in non-OT1
   124 & 7C & \textbar & \cmdI{\textbar} & | \\     % Or $|$
   125 & 7D & \} & \verb|\}| & \verb|\char`\}| \\   % \} works in non-OT1
   126 & 7E & \~{} & \verb|\~{}| & \verb|\~{}| \\   % Or \textasciitilde ($\sim$?)
   \\
   \bottomrule
  \end{tabular}
\end{nonsymtable}

The following are some additional notes about the contents of
Table~\ref{ascii-table}:

\begin{itemize}
  \item
  \indexcommand[\string\encone{\string\textquotedbl}]{\textquotedbl}{\encone{\textquotedbl}}
  is not available in the OT1 \fntenc[OT1].

  \item The\label{upside-down} characters ``\texttt{<}'',
  ``\texttt{>}'', and ``\texttt{|}'' do work as expected in math mode,
  although they produce, respectively, ``<'', ``>'', and ``|'' in text
  mode.\footnote{Donald\index{Knuth, Donald E.} Knuth didn't think
  such symbols were important outside of mathematics, so he omitted
  them from the OT1 \fntenc[OT1].}  Hence, \verb+$<$+, \verb+$>$+, and
  \verb+$|$+ serve as a terser alternative to \cmdI{\textless},
  \cmdI{\textgreater}, and \cmdI{\textbar}.  Note that for typesetting
  metavariables many people prefer \cmdI{\textlangle} and
  \cmdI{\textrangle} to \cmdI{\textless} and \cmdI{\textgreater},
  i.e., ``\meta{filename}'' instead of ``$<$\textit{filename}$>$''.

  \item The various \verb|\char| commands within \verb|\texttt| are
  necessary only in the OT1 \fntenc[OT1].  In other encodings
  (e.g.,~T1)\index{font encodings>T1}, commands such as \cmdI{\{},
  \cmdI{\}}, \cmdI{\_}, and \cmdI{\textbackslash} all work properly.

  \item \label{tildes} \cmdI{\textasciicircum} can be used instead of
  \cmdI[\string\^{}]{\^{}}\verb|{}|, and \cmdI{\textasciitilde} can be
  used instead of \cmdI[\string\~{}]{\~{}}\verb|{}|.  For typesetting
  tildes in URLs and Unix filenames, some people prefer \cmdX{\sim}
  (see Table~\vref{rel}), which produces a larger symbol.  However, a
  superior approach for typesetting URLs is to use the \pkgname{url}
  package, which has a number of additional nice features.

  \item The IBM\index{IBM} version of ASCII\index{ASCII} characters~1
  to~31 can be typeset using the \pkgname{ascii} package.
\ifASCII
  See Table~\vref{ibm-ascii}.
\fi

  \item To replace~\verb|`| and~\verb|'| with the more computer-like
  (and more visibly distinct)~\texttt{\char18} and~\texttt{\char13}
  within a \texttt{verbatim} environment, use the \pkgname{upquote}
  package.  Outside of \texttt{verbatim}, you can use \verb|\char18|
  and \verb|\char13| to get the modified quote characters.  (The
  former is actually a grave accent.)
\end{itemize}

\index{Latin 1|(}

Similar to Table~\ref{ascii-table}, Table~\vref{latin1-table} is an
amalgamation of data from other tables in this document.  While
Table~\ref{ascii-table} shows how to typeset the 7-bit ASCII character
set, Table~\ref{latin1-table} shows the Latin~1 (Western European)
character set, also known as ISO-8859-1.

\index{Latin 1|)}

\begin{nonsymtable}{\latexE Latin~1 Table}
  \index{Latin 1>table}
  \label{latin1-table}

  \newcommand{\accented}[2]{#1#2 & \texttt{\string#1\string{#2\string}}}
  \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c>{\ttfamily}lc@{}} \\ \toprule
    \multicolumn{1}{@{}c}{Dec} &
    \multicolumn{1}{c}{Hex} &
    \multicolumn{1}{c}{Char} &
    \multicolumn{2}{c@{}}{\latexE} \\ \midrule

    161 & A1 & !`                 & !{}` \\
    162 & A2 & \textcent          & \cmdI{\textcent} & (\textsf{tc}) \\
    163 & A3 & \pounds            & \cmdI{\pounds} \\
    164 & A4 & \textcurrency      & \cmdI{\textcurrency} & (\textsf{tc}) \\
    165 & A5 & \textyen           & \cmdI{\textyen} & (\textsf{tc}) \\
    166 & A6 & \textbrokenbar     & \cmdI{\textbrokenbar} & (\textsf{tc}) \\
    167 & A7 & \S                 & \cmdI{\S} \\
    168 & A8 & \textasciidieresis & \cmdI{\textasciidieresis} & (\textsf{tc}) \\
    169 & A9 & \textcopyright     & \cmdI{\textcopyright} \\
    170 & AA & \textordfeminine   & \cmdI{\textordfeminine}   \\
    171 & AB & \encone{\guillemotleft} &
                                    \cmdI[\string\encone{\string\guillemotleft}]{\guillemotleft} & (T1) \\
    172 & AC & \textlnot          & \cmdI{\textlnot} & (\textsf{tc}) \\
    174 & AE & \textregistered    & \cmdI{\textregistered} \\
    175 & AF & \textasciimacron   & \cmdI{\textasciimacron} & (\textsf{tc}) \\
    176 & B0 & \textdegree        & \cmdI{\textdegree} & (\textsf{tc}) \\
    177 & B1 & \textpm            & \cmdI{\textpm} & (\textsf{tc}) \\
    178 & B2 & \texttwosuperior   & \cmdI{\texttwosuperior} & (\textsf{tc}) \\
    179 & B3 & \textthreesuperior & \cmdI{\textthreesuperior} & (\textsf{tc}) \\
    180 & B4 & \textasciiacute    & \cmdI{\textasciiacute} & (\textsf{tc}) \\
    181 & B5 & \textmu            & \cmdI{\textmu} & (\textsf{tc}) \\
    182 & B6 & \P                 & \cmdI{\P} \\
    183 & B7 & \textperiodcentered & \cmdI{\textperiodcentered} \\
    184 & B8 & \c{}               & \cmdI[\string\blackacchack{\string\c}]{\c}\verb|{}| \\
    185 & B9 & \textonesuperior   & \cmdI{\textonesuperior} & (\textsf{tc}) \\
    186 & BA & \textordmasculine  & \cmdI{\textordmasculine} \\
    187 & BB & \encone{\guillemotright} &
                                    \cmdI[\string\encone{\string\guillemotright}]{\guillemotright} \\
    188 & BC & \textonequarter    & \cmdI{\textonequarter} & (\textsf{tc}) \\
    189 & BD & \textonehalf       & \cmdI{\textonehalf} & (\textsf{tc}) \\
    190 & BE & \textthreequarters & \cmdI{\textthreequarters} & (\textsf{tc}) \\
    191 & BF & ?`                 & ?{}` \\
    192 & C0 & \accented{\`}{A} \\
    193 & C1 & \accented{\'}{A} \\
    194 & C2 & \accented{\^}{A} \\
    195 & C3 & \accented{\~}{A} \\
    196 & C4 & \accented{\"}{A} \\
    197 & C5 & \AA                & \string\AA \\
    198 & C6 & \AE                & \string\AE \\
    199 & C7 & \accented{\c}{C} \\
    200 & C8 & \accented{\`}{E} \\
    201 & C9 & \accented{\'}{E} \\
    202 & CA & \accented{\^}{E} \\
    203 & CB & \accented{\"}{E} \\
    204 & CC & \accented{\`}{I} \\
    205 & CD & \accented{\'}{I} \\
    206 & CE & \accented{\^}{I} \\
    207 & CF & \accented{\"}{I} \\
    208 & D0 & \encone{\DH}       & \string\DH & (T1) \\ \bottomrule
  \end{tabular}
  \hfil
  \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c>{\ttfamily}lc@{}} \\ \toprule
    \multicolumn{1}{@{}c}{Dec} &
    \multicolumn{1}{c}{Hex} &
    \multicolumn{1}{c}{Char} &
    \multicolumn{2}{c@{}}{\latexE} \\ \midrule

    209 & D1 & \accented{\~}{N} \\
    210 & D2 & \accented{\`}{O} \\
    211 & D3 & \accented{\'}{O} \\
    212 & D4 & \accented{\^}{O} \\
    213 & D5 & \accented{\~}{O} \\
    214 & D6 & \accented{\"}{O} \\
    215 & D7 & \texttimes         & \string\texttimes & (\textsf{tc}) \\
    216 & D8 & \O                 & \string\O \\
    217 & D9 & \accented{\`}{U} \\
    218 & DA & \accented{\'}{U} \\
    219 & DB & \accented{\^}{U} \\
    220 & DC & \accented{\"}{U} \\
    221 & DD & \accented{\'}{Y} \\
    222 & DE & \encone{\TH}       & \string\TH & (T1) \\
    223 & DF & \ss                & \string\ss \\
    224 & E0 & \accented{\`}{a} \\
    225 & E1 & \accented{\'}{a} \\
    226 & E2 & \accented{\^}{a} \\
    227 & E3 & \accented{\~}{a} \\
    228 & E4 & \accented{\"}{a} \\
    229 & E5 & \aa                & \string\aa \\
    230 & E6 & \ae                & \string\ae \\
    231 & E7 & \accented{\c}{c} \\
    232 & E8 & \accented{\`}{e} \\
    233 & E9 & \accented{\'}{e} \\
    234 & EA & \accented{\^}{e} \\
    235 & EB & \accented{\"}{e} \\
    236 & EC & \accented{\`}{\i} \\
    237 & ED & \accented{\'}{\i} \\
    238 & EE & \accented{\^}{\i} \\
    239 & EF & \accented{\"}{\i} \\
    240 & F0 & \encone{\dh}       & \string\dh & (T1) \\
    241 & F1 & \accented{\~}{n} \\
    242 & F2 & \accented{\`}{o} \\
    243 & F3 & \accented{\'}{o} \\
    244 & F4 & \accented{\^}{o} \\
    245 & F5 & \accented{\~}{o} \\
    246 & F6 & \accented{\"}{o} \\
    247 & F7 & \textdiv           & \string\textdiv & (\textsf{tc}) \\
    248 & F8 & \o                 & \string\o \\
    249 & F9 & \accented{\`}{u} \\
    250 & FA & \accented{\'}{u} \\
    251 & FB & \accented{\^}{u} \\
    252 & FC & \accented{\"}{u} \\
    253 & FD & \accented{\'}{y} \\
    254 & FE & \encone{\th}       & \string\th & (T1) \\
    255 & FF & \accented{\"}{y} \\ \bottomrule
  \end{tabular}
\end{nonsymtable}

The following are some additional notes about the contents of
Table~\ref{latin1-table}:

\begin{itemize}
  \item A ``(\textsf{tc})'' after a symbol name means that the \TC\
  package must be loaded to access that symbol.  A ``(T1)'' means that
  the symbol requires the T1 \fntenc[T1].  The \pkgname{fontenc}
  package can change the \fntenc[document] document-wide.

  \item Many of the \verb|\text|\dots\ accents can also be produced
  using the accent commands shown in Table~\vref{text-accents} plus an
  empty argument.  For instance, \cmd{\=}\verb|{}| is essentially the
  same as \cmd{\textasciimacron}.

  \item The commands in the ``\latexE'' columns work both in body text
  and within a \verb|\texttt{|$\ldots$\verb|}| command (or, more
  generally, when \verb|\ttfamily| is in effect).

  \item \index{CP1252|(} Microsoft\textregistered{}\index{Microsoft
  Windows} Windows\textregistered{}\index{Windows} normally uses a
  superset of Latin~1 called ``CP1252'' (Code Page 1252).  CP1252 adds
  codes in the range~128--159 (hexadecimal~80--9F), including
  characters such as dashes, daggers, and quotation marks.  If there's
  sufficient interest, a future version of the \doctitle{} may include
  a CP1252 table.\index{CP1252|)}
\end{itemize}

\index{ISO character entities|(}
While too large to incorporate into this document, a listing of
ISO~8879:1986 SGML\index{SGML}/XML\index{XML} character entities and
their \latex{} equivalents is available from
\url{http://www.bitjungle.com/~isoent/}.  Some of the characters
presented there make use of \pkgname{isoent}, a \latexE{} package
(available from the same URL) that fakes some of the missing ISO
glyphs using the \latex{} \texttt{picture}
environment.\footnote{\pkgname{isoent} is not featured in this
document, because it is not available from CTAN\idxCTAN{} and because
the faked symbols are not ``true'' characters; they exist in only one
size, regardless of the body text's font size.}
\index{ISO character entities|)}


\subsection{About this document}
\label{about-doc}

\paragraph{History}
\person{David}{Carlisle} wrote the first version of this document in
October, 1994.  It originally contained all of the native \latex{}
symbols (Tables~\ref{bin}, \ref{op}, \ref{rel}, \ref{arrow},
\ref{log}, \ref{greek}, \ref{dels}, \ref{ldels}, \ref{math-accents},
\ref{extensible-accents}, \ref{ord}, and a few tables that have since
been reorganized) and was designed to be nearly identical to the
tables in Chapter~3 of Leslie\index{Lamport, Leslie} Lamport's
book~\cite{Lamport:latex}.  Even the table captions and the order of
the symbols within each table matched!  The \AMS\ symbols
(Tables~\ref{ams-bin}, \ref{ams-rel}, \ref{ams-nrel},
\ref{ams-arrows}, \ref{ams-narrows}, \ref{ams-greek},
\ref{ams-hebrew}, \ref{ams-del}, and \ref{ams-misc}) and an initial
Math Alphabets table (Table~\ref{alphabets}) were added thereafter.
Later, \person{Alexander}{Holt} provided the \ST\ tables
(Tables~\ref{st-bin}, \ref{st-large}, \ref{st-rel}, \ref{st-arrows},
\ref{st-ext}, and \ref{st-del}).

In January, 2001, \person{Scott}{Pakin} took responsibility for
maintaining the symbol list and has since implemented a complete
overhaul of the document.  The result, now called, ``The \doctitle'',
includes the following new features:

\begin{itemize}
  \item the addition of a handful of new math alphabets, dozens of new
  font tables, and thousands of new symbols

  \item the categorization of the symbol tables into body-text
  symbols, mathematical symbols, science and technology symbols,
  dingbats, and other symbols, to provide a more user-friendly
  document structure

  \item an index, table of contents, and a frequently-requested symbol
  list, to help users quickly locate symbols

  \item symbol tables rewritten to list the symbols in alphabetical
  order

  \item appendices to provide additional information relevant to using
  symbols in \latex{}

  \item tables showing how to typeset all of the characters in the
  ASCII\index{ASCII} and Latin~1\index{Latin 1}
  \fntenc[ASCII]s\index{font encodings>Latin 1}
\end{itemize}

\noindent
Furthermore, the internal structure of the document has been
completely altered from David's original version.  Most of the changes
are geared towards making the document easier to extend, modify, and
reformat.


\paragraph{Build characteristics}
Table~\vref{doc-characteristics} lists some of this document's build
characteristics.  Most important is the list of packages that \latex{}
couldn't find, but that \selftex otherwise would have been able to
take advantage of.  Complete, prebuilt versions of this document are
available from CTAN\idxCTAN{} (\url{http://www.ctan.org/} or one of
its many mirror sites) in the directory
\texttt{tex-archive/info/symbols/comprehensive}.
Table~\ref{package-dates} shows the package date (specified in the
\verb|.sty|~file with \cmd{\ProvidesPackage}) for each package that
was used to build this document and that specifies a package date.
Packages are not listed in any particular order in either
Table~\ref{doc-characteristics} or~\ref{package-dates}.

\begin{nonsymtable}{Document Characteristics}
\label{doc-characteristics}
\begin{tabular}{@{}lp{0.5\textwidth}@{}} \toprule
Characteristic      & Value \\ \midrule
Source file:        & \selftex \\
Build date:         & \today \\
Symbols documented: & \approxcount\prevtotalsymbols \\
Packages included:  & \makeatletter
                        \def\@elt#1{\pkgname{#1}\xspace}
                        \foundpkgs
                      \makeatother \\
Packages omitted:   & \makeatletter
                        \ifcomplete
                          \emph{none}
                        \else
                          \def\@elt#1{\pkgname{#1}\xspace}
                          \missingpkgs
                        \fi
                      \makeatother \\
\bottomrule
\end{tabular}
\end{nonsymtable}


% Automatically generate a table of package version numbers.
\makeatletter
\begingroup
  % Given a package name, output the package's date.
  \def\show@package@date#1/#2/#3#4#5!!!{#1/#2/#3#4}
  \newcommand{\showpackagedate}[1]{%
    \edef\package@date@string{\csname ver@#1.sty\endcsname}%
    \expandafter\show@package@date\package@date@string!!!
  }

  % Format a metavariable.
  \def\meta#1{\textlangle{\textit{#1}}\textrangle}

  % Produce the entire table body as a token list.
  \newtoks\pkg@date@toks
  \def\@elt#1{%
    \expandafter\ifx\csname ver@#1.sty\endcsname\relax
    \else
      \expandafter\ifx\csname ver@#1.sty\endcsname\@empty
      \else
        \pkgname{#1} & \showpackagedate{#1} \\
      \fi
    \fi
  }
  \expandafter\pkg@date@toks\expandafter=\expandafter{\foundpkgs}

  % Output a formatted table which contains the previously defined token list.
  \begin{nonsymtable}{Package versions used in the preparation of this document}
  \label{package-dates}
  \begin{tabular}{@{}ll@{}}
    \toprule
    Name & Date \\
    \midrule
    \the\pkg@date@toks
    \bottomrule
  \end{tabular}
  \end{nonsymtable}
\endgroup
\makeatother


% It seems like such a waste to put such a brief bibliography on its own
% page.  So we temporarily restore \section back to its original
% definition, just for the list of references.

\vfill
\begingroup
\samepage
\let\section=\origsection

\addcontentsline{toc}{section}{References}
\begin{thebibliography}{Dow00}
\bibitem[Dow00]{Downes:smg}
  Michael Downes.\index{Downes, Michael J.}
  Short math guide for {\latex},
  July~19, 2000.
  Version~1.07.
  Available from \url{http://www.ams.org/tex/short-math-guide.html}.

\bibitem[Knu86]{Knuth:ct-a}
  Donald~E. Knuth.\index{Knuth, Donald E.}
  \emph{The {\TeX}book},
  volume~A of \emph{Computers and Typesetting}.
  Ad{\-d}i{\-s}on-Wes{\-l}ey,
  Reading, MA, USA,
  1986.

\bibitem[Lam86]{Lamport:latex}
  Leslie Lamport.\index{Lamport, Leslie}
  \emph{\latex: A document preparation system}.
  Ad{\-d}i{\-s}on-Wes{\-l}ey,
  Reading, MA, USA,
  1986.

\bibitem[\LaT{}98]{ltnews09}
  \latex{}3~Project Team.
  A new math accent.
  \emph{\latex News}. Issue~9, June~1998.
  Available from
  \url{http://www.ctan.org/tex-archive/macros/latex/doc/ltnews09.pdf}
  (also included in many \tex{} distributions).

\bibitem[\LaT{}00]{fntguide}
  \latex{}3~Project Team.
  \latexE font selection,
  January~30, 2000.
  Available from
  \url{http://www.ctan.org/tex-archive/macros/latex/doc/fntguide.ps}
  (also included in many \tex{} distributions).
\end{thebibliography}
\endgroup

\clearpage
\addcontentsline{toc}{section}{Index}
{\small\printindex}

\end{document}
