%%% ====================================================================
%%%  @LaTeX-file{
%%%     author          = "Scott Pakin",
%%%     version         = "8.0",
%%%     date            = "29 September 2003",
%%%     time            = "19:58:49 MDT",
%%%     filename        = "symbols.tex",
%%%     checksum        = "37516 7913 25403 299389",
%%%     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}
\usepackage{graphicx}
\usepackage{tabularx}

\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{29 September 2003}

\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 (PostScript font)}%
  \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}}

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

% Various punctuation marks confuse makeindex when used directly.
\let\magicrbrack=]
\let\magicequal=\=
\newcommand{\magicequalname}{\texttt{\string\=}}
\newcommand{\magicvertname}{\texttt{|}}
\newcommand{\magicVertname}{\texttt{\string\|}}

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

\newif\ifAMS
\newcommand\AMS{\AmS\index{AMS=\AmS}}
\makeatletter
\IfStyFileExists{amssymb}
  {\AMStrue
   \savesymbol{angle} \savesymbol{rightleftharpoons}
   \savesymbol{lefthapoondown} \savesymbol{rightharpoonup}
   \let\orig@ifstar=\@ifstar
   \usepackage{amsmath}
   \usepackage{amssymb}
   \let\@ifstar=\orig@ifstar
   \let\Rightarrowfill@=\relax
   \restoresymbol{AMS}{angle} \restoresymbol{AMS}{rightleftharpoons}
   \restoresymbol{AMS}{lefthapoondown} \restoresymbol{AMS}{rightharpoonup}
  }
  {
    % The following was modified from amsmath.sty.
    \newcommand{\AmSfont}{%
      \usefont{OMS}{cmsy}{m}{n}}
    \providecommand{\AmS}{{\protect\AmSfont
      A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
  }
\makeatother

\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}
   \savesymbol{Box}
   \savesymbol{Diamond}
   \usepackage{wasysym}
   \restoresymbol{WASY}{lightning}
   \restoresymbol{WASY}{Box}
   \restoresymbol{WASY}{Diamond}
  }
  {}

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

% marvosym underwent a major rewrite for the 2000/05/01 version, adding
% a large number of new symbols.  If it looks like we have only the
% older version, pretend we don't have it at all.
\newif\ifMARV
\newcommand\MARV{\pkgname{marvosym}}
\makeatletter
\IfStyFileExists*{marvosym}
  {\savesymbol{Rightarrow}
   \usepackage{marvosym}[2000/05/01]  % Major rewrite at this version.
   \restoresymbol{marv}{Rightarrow}
   \@ifundefined{Denarius}            % \Denarius is a newer symbol.
     {\global\MARVfalse}
     {\global\MARVtrue}
  }
  {}
\makeatother

\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\ifUTILD
\newcommand\UTILD{\pkgname{undertilde}}
\IfStyFileExists{undertilde}
  {\UTILDtrue\usepackage{undertilde}}
  {}

\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}
   \expandafter\xdef\csname ver@wsuipa.sty\endcsname{%
     \csname ver@ipa.sty\endcsname}
   \restoresymbol{WSU}{baro}  \restoresymbol{WSU}{eth}
   \restoresymbol{WSU}{openo} \restoresymbol{WSU}{thorn}
  }
  {\completefalse\@cons\missingpkgs{{wsuipa}}}
\makeatother

\newif\ifPHON
\newcommand\PHON{\pkgname{phonetic}}
\IfStyFileExists{phonetic}
  {\PHONtrue
   \savesymbol{esh} \savesymbol{eth} \savesymbol{hookb}
   \savesymbol{hookd} \savesymbol{hookh} \savesymbol{openo}
   \savesymbol{schwa} \savesymbol{taild} \savesymbol{thorn}
   \savesymbol{varg} \savesymbol{yogh}
   \usepackage{phonetic}
   \restoresymbol{PHON}{esh} \restoresymbol{PHON}{eth}
   \restoresymbol{PHON}{hookb} \restoresymbol{PHON}{hookd}
   \restoresymbol{PHON}{hookh} \restoresymbol{PHON}{openo}
   \restoresymbol{PHON}{schwa} \restoresymbol{PHON}{taild}
   \restoresymbol{PHON}{thorn} \restoresymbol{PHON}{varg}
   \restoresymbol{PHON}{yogh}

   % A few phonetic macros are fragile but need to be made robust.
   \DeclareRobustCommand{\PHONibar}{\ibar}
   \DeclareRobustCommand{\PHONrbar}{\rbar}
   \DeclareRobustCommand{\PHONvod}{\vod}
  }
  {}

\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
  }
  {}

% skak should be loaded before ascii because their \FF macros conflict.
% (skak's \FF is not a symbol so it can simply be set to \relax.)
\newif\ifSKAK
\newcommand\SKAK{\pkgname{skak}}
\IfStyFileExists{skak}
  {\SKAKtrue
   \savesymbol{etc}
   \savesymbol{see}
   \usepackage{skak}
   \restoresymbol{SKAK}{etc}
   \restoresymbol{SKAK}{see}
   \let\FF=\relax
  }
  {}

\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}}
  }
  {}

\newif\ifMDOTS
\newcommand\MDOTS{\pkgname{mathdots}}
\IfStyFileExists{mathdots}
  {\MDOTStrue\usepackage{mathdots}}
  {}

\newif\ifTRSYM
\newcommand\TRSYM{\pkgname{trsym}}
\IfStyFileExists{trsym}
  {% We're painfully low on math alphabets so we define trsym's symbols in
   % text mode.
   \TRSYMtrue
   \newcommand{\transfsymbol}[1]{{\usefont{U}{trsy}{m}{n}##1}}
   \let\origDeclareSymbolFont=\DeclareSymbolFont
   \let\origDeclareMathSymbol=\DeclareMathSymbol
   \renewcommand{\DeclareSymbolFont}[5]{}
   \renewcommand{\DeclareMathSymbol}[4]{\gdef##1{\transfsymbol{\char##4}}}
   \usepackage{trsym}
   \let\DeclareSymbolFont=\origDeclareSymbolFont
   \let\DeclareMathSymbol=\origDeclareMathSymbol
  }
  {}

% We use the *-form of \IfStyFileExists, because the package is named
% "universa", while the .sty file is named "uni.sty".
\makeatletter
\newif\ifUNI
\newcommand\UNI{\pkgname{universa}}
\IfStyFileExists*{uni}
  {\@cons\foundpkgs{{universa}}
   \UNItrue
   \usepackage{uni}
   \expandafter\xdef\csname ver@universa.sty\endcsname{%
     \csname ver@uni.sty\endcsname}
   % Redefine all of uni's non-textual symbols to use the Universal font.
   \renewcommand{\bausquare}{{\usefont{OT1}{uni}{m}{n}\char"00}}
   \renewcommand{\baucircle}{{\usefont{OT1}{uni}{m}{n}\char"01}}
   \renewcommand{\bautriangle}{{\usefont{OT1}{uni}{m}{n}\char"02}}
   \renewcommand{\bauhead}{{\usefont{OT1}{uni}{m}{n}\char"03}}
   \renewcommand{\bauforms}{{\usefont{OT1}{uni}{m}{n}\char"04}}
  }
  {\completefalse\@cons\missingpkgs{{universa}}}
\makeatother


\newif\ifUPGR
\newcommand\UPGR{\pkgname{upgreek}}
\IfStyFileExists{upgreek}
  {% We're painfully low on math alphabets so we define upgreek's symbols
   % in text mode.
   \UPGRtrue
   \let\origDeclareSymbolFont=\DeclareSymbolFont
   \let\origDeclareMathSymbol=\DeclareMathSymbol
   \let\origSetSymbolFont=\SetSymbolFont
   \renewcommand{\DeclareSymbolFont}[5]{}
   \renewcommand{\DeclareMathSymbol}[4]{%
     \newcommand{##1}{{\usefont{U}{psy}{m}{n}\char##4}}%
   }
   \renewcommand{\SetSymbolFont}[6]{}
   \usepackage[Symbol]{upgreek}
   \DeclareFontFamily{U}{eur}{\skewchar\font'177}
   \DeclareFontShape{U}{eur}{m}{n}{%
     <-6> eurm5 <6-8> eurm7 <8-> eurm10}{}
   \let\DeclareSymbolFont=\origDeclareSymbolFont
   \let\DeclareMathSymbol=\origDeclareMathSymbol
   \let\SetSymbolFont=\origSetSymbolFont
  }
  {}

% overrightarrow depends upon various macros that are defined by AMS.
\newif\ifORA
\newcommand\ORA{\pkgname{overrightarrow}}
\ifAMS
  \IfStyFileExists{overrightarrow}
    {\ORAtrue\usepackage{overrightarrow}}
    {}
\fi    % AMS test

\newif\ifCHEMA
\newcommand\CHEMA{\pkgname{chemarr}}
\IfStyFileExists{chemarr}
  {\CHEMAtrue
   \let\origRequirePackage=\RequirePackage
   \renewcommand{\RequirePackage}[1]{}
   \usepackage{chemarr}
   \let\RequirePackage=\origRequirePackage
  }
  {}

\newif\ifCHEMB
\newcommand\CHEMB{\pkgname{chemarrow}}
\IfStyFileExists{chemarrow}
  {\CHEMBtrue\usepackage{chemarrow}}
  {}

% nath is another of those "problem packages" that redefine just about
% everything.  To make nath work in this document we need to explicitly
% define only those symbols that we actually need.
\newif\ifNATH
\newcommand\NATH{\pkgname{nath}}
\makeatletter
\IfStyFileExists{nath}
  {\NATHtrue
   \def\vin{\mathrel{\hbox{\hglue .1ex
     \vrule \@height .06ex \@width 1ex
     \vrule \@height 1.33ex \@width .06ex
     \hglue .4ex}}}

   \def\niv{\mathrel{\hbox{\hglue .2ex
     \vrule \@height 1.33ex \@width .06ex
     \vrule \@height .06ex \@width 1ex
     \hglue .5ex}}}

   % The following was derived from nath's \extend@delim macro.
   \newcommand*{\nathrep}[2]{%
     \setbox0\hbox{$\displaystyle##2$}%
     \count@=0
     \loop\ifnum\count@<##1
      ##2%
      \hskip -.75\wd0 \hskip .25ex%
      \advance\count@ by 1%
     \repeat
   }
   \newcommand*{\nathdouble}[1]{\nathrep{2}{##1}}
   \newcommand*{\nathtriple}[1]{\nathrep{3}{##1}}
  }
  {}
\makeatother

\newif\ifTRF
\newcommand\TRF{\pkgname{trfsigns}}
\IfStyFileExists{trfsigns}
  {\TRFtrue\usepackage{trfsigns}}
  {}

% We don't actually load the following as their symbols are all
% implemented in terms of existing symbols and we need to save math
% alphabets.
\newcommand\MC{\pkgname{mathcomp}}
\newcommand\GSYMB{\pkgname{gensymb}}

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

% 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.
\makeatletter
\IfStyFileExists*{geometry}
  {\usepackage{geometry}
   \@ifpackagelater{geometry}{2000/01/01}{\geometry{compat2}}
  }
  {}
\makeatother

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

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

% If we have cancel.sty, use it.
\newif\ifhavecancel
\IfStyFileExists*{cancel}
  {\havecanceltrue\usepackage{cancel}}
  {}

% If we have slashed.sty, use it.
\newif\ifhaveslashed
\IfStyFileExists*{slashed}
  {\haveslashedtrue\usepackage{slashed}}
  {}

% 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}
  }
  {}

% If we have the nicefrac package, use it (to show how to typeset fractions).
\newif\ifFRAC
\IfStyFileExists{nicefrac}
  {\FRACtrue
   \usepackage[nice]{nicefrac}
  }
  {}

% If we have the bm package, use it (to show how to typeset bold math).
\newif\ifBM
\IfStyFileExists{bm}
  {\BMtrue
   \usepackage{bm}
  }
  {}

% If we have ot2def.enc, use it (to show how to produce a Cyrillic "sha").
\newif\ifOTII
\IfFileExists{ot2enc.def}
  {\OTIItrue\input{ot2enc.def}}
  {}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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{mbboard}
  {\newcommand{\MBBmathbb}[1]{\mbox{\usefont{OT1}{mbb}{m}{n} ##1}}}
  {}
\ifx\MBBmathbb\undefined
\else
  % Define only the symbols we actually use.
  \newcommand{\bbnabla}{\MBBmathbb{\char"9A}}
  \newcommand{\bbdollar}{\MBBmathbb{\char"24}}
  \newcommand{\bbeuro}{\MBBmathbb{\char"FB}}
  \newcommand{\bbpe}{\MBBmathbb{\char"D4}}
  \newcommand{\bbqof}{\MBBmathbb{\char"D7}}
  \newcommand{\bbyod}{\MBBmathbb{\char"C9}}
  \newcommand{\bbfinalnun}{\MBBmathbb{\char"CF}}

  % The following was copied from mbboard.sty.
  \DeclareFontFamily{OT1}{mbb}{\hyphenchar\font45}
  \DeclareFontShape{OT1}{mbb}{m}{n}{
        <5> <6> <7> <8> <9> <10> gen * mbb
        <10.95> mbb10 <12> <14.4> mbb12 <17.28> <20.74> <24.88> mbb17
        }{}
\fi

\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

% msym10 doesn't have a corresponding LaTeX package.  We establish its
% existence via the msym10.tfm file.  However, this file is not normally
% in LaTeX's input path, so be sure to point LaTeX to it (e.g., by
% copying it into the current directory).
\makeatletter
\IfFileExists{msym10.tfm}
  {\DeclareFontFamily{OT1}{msym}{}
   \DeclareFontShape{OT1}{msym}{m}{n}{ <-> msym10 }{}
   \newcommand{\MSYMmathbb}[1]{\mbox{\fontfamily{msym}\selectfont##1}}
  }
  {\completefalse
   \@cons\missingpkgs{{msym10}}     % Not really a package
  }
\makeatother

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

% 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.  Because punctuation marks can
% be problematic for makeindex, we define an \indexpunct macro that
% sorts its argument under the comparatively innocuous "_".
\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
  \newcommand{\indexpunct}[2][]{%
    \def\first@arg{#1}%
    \ifx\first@arg\@empty
      \expandafter\index\expandafter{_=\string\verb+\string#2+}%
    \else
      \expandafter\index\expandafter{_=\string\verb+\string#2+ (#1)}%
    \fi
  }
\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 between \pkgname{amssymb} and
    \pkgname{mathabx}, for example.}
\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}}}
\gdef\blackacctwo#1{#1{\rule[-\adp]{\awd}{\aht}}{\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\Kp#1{\incsyms\indexpunct[$#1$]{#1}#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}}
  \def\Nn[#1]#2{%
    \incsyms\indexcommand[$\string\nathdouble\string#1$]{#2}%
    $\nathdouble#1$ & $\nathdouble{\Big#1}$ & \ttfamily\string#2}
  \def\Nnt#1[#2]#3{%
    \incsyms\indexcommand{\triple}%
    $\nathtriple#2$ & $\nathtriple{\Big#2}$ &
    \ttfamily\expandafter\string\csname#1triple\endcsname\string#3}
  \def\Np@opt@args[#1]{\@ifnextchar[{\Np@two@opt@args[#1]}{\Np@one@opt@arg[#1]}}
  \def\Np@two@opt@args[#1][#2]#3{\incsyms\index{_=\string#2{} ($\string#1$)}$#1$ & $\Big#1$ &\ttfamily\string#3}
  \def\Np@one@opt@arg[#1]#2{\incsyms\indexpunct[$\string#1$]{#2}$#1$ & $\Big#1$ &\ttfamily\string#2}
  \def\Np@no@opt@args#1{\incsyms\indexpunct[$\string#1$]{#1}$#1$ & $\Big#1$ &\ttfamily\string#1}
  \def\Np{\@ifnextchar[{\Np@opt@args}{\Np@no@opt@args}}
\makeatother
\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\Qe[#1][#2]#3{%
  \incsyms\incsyms\index{_=\string#2{} (\string\blackacchack{\string#1})}%
  #3{A}#3{a} &
  \ttfamily\string#3\string{A\string}\string#3\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}
\newcommand{\Vp}[2][]{\incsyms#1 & \indexpunct[$#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}}
\def\Wul#1#2#3{%
  \incsyms\indexaccent[$\string\blackacctwo{\string#1}$]{#1}%
  $#1{#2}{#3}$ &\ttfamily\string#1\string{#2\string}\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.  \cmdIp is also similar to \cmdI but
% takes no optional argument and formats its argument with \indexpunct
% instead of \indexcommand.
\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}}
\newcommand{\cmdIp}[1]{\texttt{\string#1}\indexpunct[$#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}
  \DeclareMathOperator{\atan}{atan}
  \DeclareMathOperator*{\lcm}{lcm}
\fi
\DeclareFontFamily{U}{lightbulb}{}
\DeclareFontShape{U}{lightbulb}{m}{n}{<-> lightbulb10}{}
\newcommand{\lightbulb}{{\usefont{U}{lightbulb}{m}{n}A}}

% I prefer \vpageref to say "on the previous page" than its default message.
\def\reftextbefore{on the previous page}

% 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}

% Tell pdfLaTeX that all .eps files were produced by MetaPost.
\ifx\pdfoutput\undefined
\else
  \DeclareGraphicsExtensions{.png,.pdf,.jpg,.mps,.tif,.eps}
  \DeclareGraphicsRule{.eps}{mps}{*}{}
\fi

% Define a metavariable for "operating-system prompt".
\newcommand{\osprompt}{\textrm{\textit{prompt}}{\small$>$}\xspace}

% Typeset small, superscripted registered trademarks.
\newcommand{\regtm}{\textsuperscript{\textregistered}\xspace}

% Define an environment for typesetting code samples.
\newsavebox{\codebox}
\newenvironment{codesample}{%
  \begin{lrbox}{\codebox}%
  \begin{minipage}{0.9\linewidth}%
}{%
  \end{minipage}%
  \end{lrbox}%
  \fbox{\usebox{\codebox}}%
}

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

\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)
%    * energy per symbol [communications theory] (script E)
%    * imaginary line (script I)
%    * M matrix (script M)
%    * Mellin transform (script M)
%    * null space (script N)
%    * order of (script o)
%    * radius (script r)
%    * real line (script R)
%    * Schwartz class (script S)
%    * volume (script V)
%
\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[\mathscr{E}]{electromotive force}
\indexMA[\mathcal{O}]{local ring}
\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}
\indexMA{script letters}
\indexMA{blackboard bold}
\indexMA{fraktur}
\indexMA{moduli space}

% Provide "see ..."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 ..."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} \emph{and} \texttt{\string\sim}}}
\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{negation|see{\texttt{\string\neg} \emph{and} \texttt{\string\sim}}}
\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 ..."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 signs|see{inequalities}}
\index{greater-than signs|see{inequalities}}
\index{plus-or-minus sign|see{\texttt{\string\pm}}}

% Provide a few other useful "see ..."s.
\index{CTAN|see{Comprehensive \TeX{} Archive Network}}
\index{letters|see{alphabets}}
\index{numbers|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{derivitive, partial|see{\texttt{\string\partial}}}
\index{to=\texttt{\string\to}|see{\texttt{\string\rightarrow}}}
\ifAMS
  \index{implies=\texttt{\string\implies}|see{\texttt{\string\Longrightarrow}
    \emph{and} \texttt{\string\vdash}}}
  \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}}}
  \index{does not divide|see{\texttt{\string\nmid}}}
  \index{transversality|see{\texttt{\string\pitchfork}}}
\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}}}
  \index{cutoff subtraction|see{\texttt{\string\dotdiv}}}
\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{square root>hooked|see{\texttt{\string\hksqrt}}}
\index{cube root|see{\texttt{\string\sqrt}}}
\ifcomplete
  \index{return|see{carriage return}}
  \index{enter|see{carriage return}}
\fi
\ifTX
  \index{fish hook|see{\texttt{\string\strictif}}}
  \index{par|see{\texttt{\string\invamp}}}
\fi    % TX test
\index{stochastic independence|see{\texttt{\string\bot}}}
\index{independence>stochastic|see{\texttt{\string\bot}}}
\index{orthogonal to|see{\texttt{\string\bot}}}
\index{entails|see{\texttt{\string\models}}}
\index{micro|see{\texttt{\string\textmu}}}
\index{Angstrom unit=\AA{}ngstr\"om unit>math mode|see{\texttt{\string\mathring}}}
\index{Angstrom unit=\AA{}ngstr\"om unit>text mode|see{\texttt{\string\AA}}}
\index{yen|see{\texttt{\string\textyen}}}
\index{equilibrium|see{\texttt{\string\rightleftharpoons}}}
\index{number|see{\texttt{\string\textnumero}}}
\index{ditto marks|see{\texttt{\string\textquotedbl}}}
\index{Weierstrass p function=Weierstrass $\wp$ function|see{\texttt{\string\wp}}}
\index{inexact differential|see{\texttt{\string\dbar}}}
\ifhaveslashed
  \index{reduced quadrupole moment|see{\texttt{\string\rqm}}}
\fi    % haveslashed
\ifST
  \index{banana brackets|see{\texttt{\string\llparenthesis} \emph{and} \texttt{\string\rrparenthesis}}}
  \index{catamorphism|see{\texttt{\string\llparenthesis} \emph{and} \texttt{\string\rrparenthesis}}}
\fi    % ST test
\ifOTII
  \index{sha|see{Tate-Shafarevich group}}
\fi
\ifSKAK
  \index{king|see{chess symbols}}
  \index{queen|see{chess symbols}}
  \index{castle|see{chess symbols}}
  \index{rook|see{chess symbols}}
  \index{bishop|see{chess symbols}}
  \index{knight|see{chess symbols}}
  \index{pawn|see{chess symbols}}
\fi    % SKAK test
\index{differential, inexact|see{\texttt{\string\dbar}}}
\index{brackets|see{delimiters}}

% "See also"s should appear after all page references.
\providecommand*\seealso[2]{\emph{\alsoname}#1}
\providecommand*\alsoname{see also}
\AtEndDocument{%
  \index{carriage return|seealso{\string\texttt{\string\string\string\hookleftarrow}}}
  \index{transforms|seealso{alphabets, math}}
  \ifTX
    \index{parallel|seealso{\string\texttt{\string\string\string\varparallel}}}
  \fi
}

% Multiple packages define \multimap.
\makeatletter
  \@ifundefined{multimap}{}{%
    \index{linear implication|see{\texttt{\string\string\string\multimap}}}
    \index{lollipop|see{\texttt{\string\string\string\multimap}}}}
\makeatother

% Minutes/seconds and feet/inches are normally formed with superscripted
% primes.
\index{arcminutes|see{\texttt{\string\prime}}}
\index{angular minutes|see{\texttt{\string\prime}}}
\index{minutes, angular|see{\texttt{\string\prime}}}
\index{feet|see{\texttt{\string\prime} \emph{and}
  \texttt{\string\textquotesingle}}}
\ifABX
  \index{arcseconds|see{\texttt{\string\second}}}
  \index{angular seconds|see{\texttt{\string\second}}}
  \index{seconds, angular|see{\texttt{\string\second}}}
  \index{inches|see{\texttt{\string\second} \emph{and}
    \texttt{\string\textquotedbl}}}
\else
  \index{arcseconds|see{\texttt{\string\prime}}}
  \index{angular seconds|see{\texttt{\string\prime}}}
  \index{seconds, angular|see{\texttt{\string\prime}}}
  \index{inches|see{\texttt{\string\prime} \emph{and}
    \texttt{\string\textquotedbl}}}
\fi

% \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

% Double brackets are defined by both ST and ABX.
\ifABX
  \ifST
    \index{semantic valuation|see{\texttt{\string\llbracket}/\texttt{\string\rrbracket}
      \emph{and} \texttt{\string\lbbbrack}/\texttt{\string\rbbbrack}}}
  \else
    \index{semantic valuation|see{\texttt{\string\lbbbrack}/\texttt{\string\rbbbrack}}}
  \fi
\else
  \ifST
    \index{semantic valuation|see{\texttt{\string\llbracket}/\texttt{\string\rrbracket}}}
  \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

% The following were generated semi-automatically from SYMLIST using:
%   egrep '\text' SYMLIST | sed 's/\\text//' | xargs -i egrep '^{}$' /usr/share/dict/words | xargs -i sh -c 'egrep -q "^\\\\{}$" SYMLIST || echo "\\index{{}|see{\\texttt{\\string\\text{}}}}"' \;
% then editing the result.
\index{blank|see{\texttt{\string\textblank}}}
\index{born|see{\texttt{\string\textborn}}}
\index{died|see{\texttt{\string\textdied}}}
\index{discount|see{\texttt{\string\textdiscount}}}
\index{divorced|see{\texttt{\string\textdivorced}}}
\index{dollar|see{\texttt{\string\textdollar}}}
%\index{ellipsis|see{\texttt{\string\textellipsis}}}
\index{estimated|see{\texttt{\string\textestimated}}}
\index{florin|see{\texttt{\string\textflorin}}}
%\index{greater|see{\texttt{\string\textgreater}}}
\index{leaf|see{\texttt{\string\textleaf}}}
%\index{less|see{\texttt{\string\textless}}}
\index{married|see{\texttt{\string\textmarried}}}
\index{minus|see{\texttt{\string\textminus}}}
\index{ohm|see{\texttt{\string\textohm}}}
%\index{paragraph|see{\texttt{\string\textparagraph}}}
\index{recipe|see{\texttt{\string\textrecipe}}}
%\index{registered|see{\texttt{\string\textregistered}}}
%\index{section|see{\texttt{\string\textsection}}}
\index{sterling|see{\texttt{\string\pounds}}}
%\index{style|see{\texttt{\string\textstyle}}}
%\index{superscript|see{\texttt{\string\textsuperscript}}}
\index{trademark|see{\texttt{\string\texttrademark}}}
%\index{underscore|see{\texttt{\string\textunderscore}}}
\index{won|see{\texttt{\string\textwon}}}
\ifTIPA
  \index{advancing|see{\texttt{\string\textadvancing}}}
  \index{bullseye|see{\texttt{\string\textbullseye}}}
  \index{lowering|see{\texttt{\string\textlowering}}}
  \index{pipe|see{\texttt{\string\textpipe}}}
  \index{raising|see{\texttt{\string\textraising}}}
  \index{retracting|see{\texttt{\string\textretracting}}}
  \index{seagull|see{\texttt{\string\textseagull}}}
\fi    % TIPA test
%\index{swab|see{\texttt{\string\textswab}}}


\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{$\lesssim$ and $\gtrsim$}
      {\pageref{ams-inequal-rel}}
  \faq{$\iddots$}
      {\pageref{mathdots-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{$\dashint$}
      {\pageref{dashint}}
  \faq{\diatop[{\diatop[\'|\=]}|a],
       \diatop[{\diatop[\`|\^]}|e], etc.
       (i.e., several accents per character)}
      {\pageref{multiple-accents}}
  \faq{$<$, $>$, and $|$ (instead of <, >, and |)}
      {\pageref{upside-down}}
  \faq{\textasciicircum\ and \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\_$\,^*$  & \Kp\}   & \K\&   & \K\#   & \Kp\{   \\
\end{tabular}

\bigskip
\begin{tablenote}[*]
  The \pkgname{underscore} package redefines ``\verb+_+'' to produce
  an underscore in text mode (i.e.,~it makes it unnecessary to escape
  the underscore character).
\end{tablenote}
\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    & \Vp\{ \\
\V\P & \V[\ltextcopyright]\copyright
                         & \V\dots    & \Vp\} \\
\V\S & \V\dag            & \V\pounds          \\
\end{tabular}

\bigskip
\twosymbolmessage
\end{symtable}


\begin{symtable}{Predefined \latexE{} Text-mode Commands}
\index{space, visible}
\index{inequalities}
\index{tilde}
\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}
\index{tilde}
\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}
\index{tilde}
\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}[PHON]{\PHON\ Phonetic Symbols}
\idxboth{phonetic}{symbols}
\idxboth{linguistic}{symbols}
\index{alphabets>phonetic}
\label{phon-phonetic}
\begin{tabular}{*5{ll}}
\K\barj              & \K\flap              & \K[\PHONibar]\ibar   & \K\rotvara           & \K\vari            \\
\K\barlambda         & \K\glottal           & \K[\PHONopeno]\openo & \K\rotw              & \K\varomega        \\
\K\emgma             & \K\hausaB            & \K\planck            & \K\roty              & \K\varopeno        \\
\K\engma             & \K\hausab            & \K\pwedge            & \K[\PHONschwa]\schwa & \K[\PHONvod]\vod   \\
\K\enya              & \K\hausad            & \K\revD              & \K[\PHONthorn]\thorn & \K\voicedh         \\
\K\epsi              & \K\hausaD            & \K\riota             & \K\ubar              & \K[\PHONyogh]\yogh \\
\K[\PHONesh]\esh     & \K\hausak            & \K\rotm              & \K\udesc                                  \\
\K[\PHONeth]\eth     & \K\hausaK            & \K\rotOmega          & \K\vara                                   \\
\K\fj                & \K[\PHONhookd]\hookd & \K\rotr              & \K[\PHONvarg]\varg                        \\
\end{tabular}
\end{symtable}


\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\~ \\
  \Qe[\magicequal][\magicequalname]\=
        & \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    \\
  \Qe[\magicequal][\magicequalname]\=
          & \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}
\index{tilde}
\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}[PHON]{\PHON\ Text-mode Accents}
\index{accents}
\label{phon-accents}
\renewcommand{\arraystretch}{1.25}  % Keep high and low accents from touching.
\begin{tabular}{*3{ll}}
\Q\hill  & \Q\rc  & \Q\ut \\
\Q\od    & \Q\syl         \\
\Q\ohill & \Q\td          \\
\end{tabular}

\bigskip
\begin{tablenote}
  \begin{morespacing}{1pt}
    The \PHON\ package provides a few additional macros for linguistic
    accents. \cmd{\acbar} and \cmd{\acarc} compose characters with
    multiple accents; for example, \verb+\acbar{\'}{a}+ produces
    ``\acbar{\'}{a}'' and \verb+\acarc{\"}{e}+ produces
    ``\acbar{\"}{e}''.  \cmd{\labvel} joins two characters with an
    arc: \verb+\labvel{mn}+~$\rightarrow$ ``\labvel{mn}''.
    \cmd{\upbar} is intended to go between characters as in
    ``\verb+x\upbar{}y''+~$\rightarrow$ ``x\upbar{}y''.  Lastly,
    \cmd{\uplett} behaves like \cmd{\textsuperscript} but uses a
    smaller font.  Contrast ``\verb+p\uplett{h}''+~$\rightarrow$
    ``p\uplett{h}'' with ``\verb+p\textsuperscript{h}''+~$\rightarrow$
    ``p\textsuperscript{h}''.
  \end{morespacing}
\end{tablenote}
\end{symtable}


\begin{symtable}[WIPA]{\WIPA\ Diacritics}
\index{accents}
\index{tilde}
\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                         \\
\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}
\idxboth{monetary}{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}
\idxboth{monetary}{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}
\idxboth{monetary}{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}
\idxboth{monetary}{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
\medskip
\begin{tablenote}
  \hspace*{15pt}%
  See \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tradesyms}
  for solutions to common problems that occur when using these symbols
  (e.g.,~getting a~``\textcircled{r}'' when you expected to get
  a~``\textregistered'').
\end{tablenote}
\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}
\index{tilde}
\label{tc-misc}
\begin{tabular}{lll@{\qquad}lll}
\V\textasteriskcentered & \V[\ltextordfeminine]\textordfeminine   \\
\V\textbardbl           & \V[\ltextordmasculine]\textordmasculine \\
\V\textbigcircle        & \V\textparagraph                        \\
\V\textblank            & \V\textperiodcentered                   \\
\V\textbrokenbar        & \V\textpertenthousand                   \\
\V\textbullet           & \V\textperthousand                      \\
\V\textdagger           & \V\textpilcrow                          \\
\V\textdaggerdbl        & \V\textquotesingle                      \\
\V\textdblhyphen        & \V\textquotestraightbase                \\
\V\textdblhyphenchar    & \V\textquotestraightdblbase             \\
\V\textdiscount         & \V\textrecipe                           \\
\V\textestimated        & \V\textreferencemark                    \\
\V\textinterrobang      & \V\textsection                          \\
\V\textinterrobangdown  & \V\textthreequartersemdash              \\
\V\textmusicalnote      & \V\texttildelow                         \\
\V\textnumero           & \V\texttwelveudash                      \\
\V\textopenbullet                                                 \\
\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}}{=}|).  See also the example of \cmd{\equalsfill}
\vpageref[below]{equalsfill-ex}.

\fi

\bigskip

\begin{symtable}{Binary Operators}
\idxboth{binary}{operators}
\index{division}
\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}[TRSYM]{\TRSYM\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{transforms}
\label{trsym-rel}
\begin{tabular}{ll@{\hspace*{2em}}ll}
\K\InversTransformHoriz & \K\TransformHoriz \\
\K\InversTransformVert  & \K\TransformVert  \\
\end{tabular}
\end{symtable}


\begin{symtable}[TRF]{\TRF\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{transforms}
\label{trf-rel}
\begin{tabular}{ll@{\hspace*{2em}}ll}
\X\dfourier & \X\Dfourier \\
\X\fourier  & \X\Fourier  \\
\X\laplace  & \X\Laplace  \\
\X\ztransf  & \X\Ztransf  \\
\end{tabular}
\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$^\dag$     & \X\Updownarrow \\
\end{tabular}

\bigskip
\notpredefinedmessage

\bigskip
\begin{tablenote}[\dag]
  See the note beneath Table~\ref{extensible-accents} for information
  about how to put a diagonal arrow across a mathematical expression%
\ifhavecancel
  ~(as in ``$\cancelto{0}{\nabla \cdot \vec{B}}\quad$'')
\fi
.
\end{tablenote}
\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}[CHEMB]{\CHEMB\ Arrows}
\index{arrows}
\label{chemarrow-arrows}
\begin{tabular}{ll}
\X\chemarrow
\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}
\index{limits}
\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}
\index{limits}
\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$''.  See
  Section~\ref{bold-math} for examples of how to produce bold Greek
  letters.\index{Greek>bold}
\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{Greek>upright}
\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}[UPGR]{\UPGR\ Upright Greek Letters}
\index{Greek}\index{alphabets>Greek}
\index{Greek>upright}
\index{upright Greek letters}
\label{upgreek-greek}
\begin{tabular}{*4{ll}}
\K\upalpha      & \K\uptheta      & \K\uppi         & \K\upphi        \\
\K\upbeta       & \K\upvartheta   & \K\upvarpi      & \K\upvarphi     \\
\K\upgamma      & \K\upiota       & \K\uprho        & \K\upchi        \\
\K\updelta      & \K\upkappa      & \K\upvarrho     & \K\uppsi        \\
\K\upepsilon    & \K\uplambda     & \K\upsigma      & \K\upomega      \\
\K\upvarepsilon & \K\upmu         & \K\upvarsigma                     \\
\K\upzeta       & \K\upnu         & \K\uptau                          \\
\K\upeta        & \K\upxi         & \K\upupsilon                      \\
                                                                      \\
\K\Upgamma      & \K\Uplambda     & \K\Upsigma      & \K\Uppsi        \\
\K\Updelta      & \K\Upxi         & \K\Upupsilon    & \K\Upomega      \\
\K\Uptheta      & \K\Uppi         & \K\Upphi                          \\
\end{tabular}

\bigskip
\begin{tablenote}
  \UPGR\ utilizes upright Greek characters from either the PostScript
  \PSfont{Symbol} font (depicted above) or Euler Roman.\index{Euler
  Roman} As a result, the glyphs may appear slightly different from
  the above.  Contrast, for example,
  ``\Upgamma\Updelta\Uptheta\upalpha\upbeta\upgamma''~(Symbol) with
  ``{\usefont{U}{eur}{m}{n}\char"00\char"01\char"02\char"0B\char"0C\char"0D}''~(Euler).
\end{tablenote}
\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}[TRF]{\TRF\ Letter-like Symbols}
\idxboth{letter-like}{symbols}
\label{trf-letter-like}
\begin{tabular}{ll@{\hspace*{3em}}ll}
\X\e & \X\im \\
\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}{ll@{\hspace*{2em}}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}[NATH]{\NATH\ Delimiters}
\index{delimiters}
\label{nath-del}
\begin{tabular}{ll@{\hspace*{3em}}ll}
\X\niv & \X\vin \\
\end{tabular}
\end{symtable}


\begin{symtable}{Variable-sized Delimiters}
\index{delimiters}
\index{delimiters>variable-sized}
\label{dels}
\renewcommand{\arraystretch}{1.75}  % Keep tall symbols from touching.
\begin{tabular}{lll@{\qquad}lll@{\hspace*{1.5cm}}lll@{\qquad}lll}
\N\downarrow & \N\Downarrow & \N{[}           & \N[\magicrbrack]{]} \\
\N\langle    & \N\rangle    & \Np[\vert][\magicvertname]|$^*$
                                              & \Np[\Vert][\magicVertname]\| \\
\N\lceil     & \N\rceil     & \N\uparrow      & \N\Uparrow          \\
\N\lfloor    & \N\rfloor    & \N\updownarrow  & \N\Updownarrow      \\
\N(          & \N)          & \Np\{           & \Np\}               \\
\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}[*]
  $\varepsilon$-\TeX{}\index{e-tex=$\varepsilon$-\TeX} provides a
  \cmd{\middle} analogue to \cmd{\left} and \cmd{\right} that can be
  used to make an internal ``$|$'' (often used to indicate
  ``evaluated\index{evaluated at=evaluated at ($\vert$)} at'') 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}
\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}
\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}
\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}[NATH]{\NATH\ Variable-sized Delimiters (Double)}
\index{delimiters}
\index{delimiters>variable-sized}
\label{nath-var-dels-double}
\renewcommand{\arraystretch}{2.5}  % Keep tall symbols from touching.
\begin{tabular}{lll@{\qquad}lll}
\Nn[\langle]\lAngle  & \Nn[\rangle]\rAngle      \\
\Nn[{[}]\lBrack      & \Nn[\magicrbrack]\rBrack \\
\Nn[\lceil]\lCeil    & \Nn[\rceil]\rCeil        \\
\Nn[\lfloor]\lFloor  & \Nn[\rfloor]\rFloor      \\
\Nn[\vert]\lVert$^*$ & \Nn[\vert]\rVert$^*$     \\
\end{tabular}

\bigskip
\begin{tablenote}[*]
  \NATH\ redefines all of the above to include implicit \cmd{\left}
  and \cmd{\right} commands.  Hence, separate \verb+\lVert+ and
  \verb+\rVert+ commands are needed to disambiguate whether
  ``\verb+|+'' is a left or right delimiter.
\end{tablenote}

\bigskip
\begin{tablenote}
  All of the symbols in Table~\ref{nath-var-dels-double} can also be
  expressed using the \cmd{\double} macro.  See the \NATH\
  documentation for examples and additional information.
\end{tablenote}
\end{symtable}


\begin{symtable}[NATH]{\NATH\ Variable-sized Delimiters (Triple)}
\index{delimiters}
\index{delimiters>variable-sized}
\label{nath-var-dels-triple}
\renewcommand{\arraystretch}{2.5}  % Keep tall symbols from touching.
\begin{tabular}{lll@{\qquad}lll}
\Nnt{}[\langle]<     & \Nnt{}[\rangle]>         \\
\Nnt{}[{[}]{[}       & \Nnt{}[\magicrbrack]{]}  \\
\Nnt{l}[\vert]|$^*$  & \Nnt{r}[\vert]|$^*$      \\
\end{tabular}

\bigskip
\begin{tablenote}[*]
  Similar to \verb+\lVert+ and \verb+\rVert+ in
  Table~\ref{nath-var-dels-double}, \cmd{\ltriple} and \cmd{\rtriple}
  must be used instead of \cmd{\triple} to disambiguate whether
  ``\verb+|+'' is a left or right delimiter.
\end{tablenote}

\bigskip
\begin{tablenote}
  Note that \cmd{\triple}---and the corresponding \cmd{\double}---is
  actually a macro that takes a delimiter as an argument.
\end{tablenote}
\end{symtable}


\begin{symtable}{\TC\ Text-mode Delimiters}
\index{delimiters}
\index{delimiters>text-mode}
\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}
\index{tilde}
\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]{\AMS\ Math-mode Accents}
\index{accents}
\label{ams-math-accents}
\begin{tabular}{ll@{\hspace*{2em}}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]{\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}[TRF]{\TRF\ Math-mode Accents}
\index{accents}
\index{transforms}
\label{trf-accents}
\begin{tabular}{ll@{\hspace*{2em}}ll}
\W\dft{a} & \W\DFT{a} \\
\end{tabular}

\bigskip
\begin{tablenote}
  The above are a sort of ``reverse accent'' in that the argument text
  serves as a subscript to the transform line.
\end{tablenote}
\end{symtable}


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

\bigskip

\begin{tablenote}
  \def\longdivsign{%
    \ensuremath{\overline{\vphantom{)}%
      \hbox{\smash{\raise3.5\fontdimen8\textfont3\hbox{$)$}}}%
      abc}}}

  \index{long division|(}
  \index{division|(}
  \index{polynomial division|(}

  As demonstrated in a 1997 TUGboat\index{TUGboat} article about
  typesetting long-division problems~\cite{Gibbons:longdiv}, an
  extensible long-division sign (``\,\longdivsign\,'') can be faked by
  putting a ``\verb|\big)|'' in a \texttt{tabular} environment with an
  \verb|\hline| or \verb|\cline| in the preceding row.  The article
  also presents a piece of code that automatically solves and
  typesets---by putting an \cmd{\overline} atop ``\verb|\big)|'' and
  the desired text---long-division problems.  See also the
  \pkgname{polynom} package, which automatically solves and typesets
  polynomial-division problems in a similar manner.

  \index{long division|)}
  \index{division|)}
  \index{polynomial division|)}
\end{tablenote}

\bigskip

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

\bigskip

\begin{tablenote}[\dag]
  If you're looking for an extensible \emph{diagonal} line or arrow to
  be used for canceling or reducing mathematical
  subexpressions\index{arrows>diagonal, for reducing subexpressions}
\ifhavecancel
  (e.g.,~``$\cancel{x + -x}$'' or ``$\cancelto{5}{3+2}\quad$'')
\fi
  then consider using the \pkgname{cancel} package.
\end{tablenote}

\bigskip

\begin{tablenote}[\ddag]
  With an optional argument, \verb|\sqrt| typesets nth roots.  For
  example, ``\verb|\sqrt[3]{abc}|'' produces~``$\!\sqrt[3]{abc}$\,''
  and ``\verb|\sqrt[n]{abc}|'' produces~``$\!\sqrt[n]{abc}$\,''.
\end{tablenote}
\end{symtable}


\begin{symtable}[ORA]{\ORA\ Extensible Accents}
\index{accents}
\idxboth{extensible}{accents}
\idxboth{extensible}{arrows}
\label{ora-extensible-accents}
\begin{tabular}{ll}
\W\Overrightarrow{abc} \\
\end{tabular}
\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}[CHEMA]{\CHEMA\ Extensible Accents}
\idxboth{extensible}{accents}
\idxboth{extensible}{arrows}
\label{chemarr-extensible-arrows}
\begin{tabular}{ll}
\W\xrightleftharpoons{abc} \\
\end{tabular}

\bigskip
\begin{tablenote}
  \verb+\xrightleftharpoons+ is a sort of ``reverse accent'' in that
  the argument text serves as a superscript to the arrows.  In
  addition, the optional first argument (not shown) serves as a
  subscript to the arrows.
\end{tablenote}
\end{symtable}


\begin{symtable}[CHEMB]{\CHEMB\ Extensible Accents}
\idxboth{extensible}{accents}
\idxboth{extensible}{arrows}
\label{chemarrow-extensible-arrows}
\renewcommand{\arraystretch}{4}  % Keep upper and lower strings from touching.
\begin{tabular}{ll@{\qquad}ll}
\Wul\autoleftarrow{abc}{def}         & \Wul\autorightarrow{abc}{def}        \\
\Wul\autoleftrightharpoons{abc}{def} & \Wul\autorightleftharpoons{abc}{def} \\
\end{tabular}

\bigskip
\begin{tablenote}
  These symbols are all ``reverse accents'' in that the two arguments
  serve, respectively, as a superscript and a subscript to the arrows.

  In addition to the symbols shown above, \CHEMB\ also provides
  \cmd{\larrowfill}, \cmd{\rarrowfill}, \cmd{\leftrightharpoonsfill},
  and \cmd{\rightleftharpoonsfill} macros.  Each of these takes a
  length argument and produces an arrow of the specified length.
\end{tablenote}
\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}[UTILD]{\UTILD\ Extensible Accents}
\index{accents}
\idxboth{extensible}{accents}
\index{tilde>extensible}
\index{extensible tildes}
\index{tilde}
\label{utild-extensible-accents}
\begin{tabular}{ll}
\W\utilde{abc} \\
\end{tabular}

\bigskip

\begin{tablenote}
  Because \verb|\utilde| is based on \verb|\widetilde|%
 \index{widetilde=\verb+\widetilde+ ($\blackacc{\widetilde}$)}
 it is also made more extensible by the \YH\ package.
\end{tablenote}
\end{symtable}


\begin{symtable}{Dots}
\idxboth{dot}{symbols}
\index{dots (ellipses)} \index{ellipses (dots)}
\label{dots}
\ifMDOTS
  \def\MDfn{$^\dag$}%
\else
  \def\MDfn{}%
\fi    % MDOTS test
\begin{tabular}{*{3}{ll@{\hspace*{1.5cm}}}ll}
\X\cdotp & \X\colon$^*$  & \X\ldotp & \X\vdots\MDfn \\
\X\cdots & \X\ddots\MDfn & \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}

\ifMDOTS
\bigskip

\begin{tablenote}[\dag]
  The \MDOTS\ package redefines \cmdX{\ddots} and \cmdX{\vdots} to
  make them scale properly with font size.  (They normally scale
  horizontally but not vertically.)  \cmdX{\fixedddots} and
  \cmdX{\fixedvdots} provide the original, fixed-height functionality
  of \latexE's \cmdX{\ddots} and \cmdX{\vdots} macros.
\end{tablenote}

\fi    % MDOTS test
\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}[MDOTS]{\MDOTS\ Dots}
\index{dots (ellipses)} \index{ellipses (dots)}
\idxboth{dot}{symbols}
\label{mathdots-dots}
\begin{tabular}{ll}
\X\iddots
\end{tabular}
\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}
\index{angles}
\label{ord}
\ifAMS
  \def\AMSfn{$^\ddag$}
\else
  \def\AMSfn{}
\fi
\begin{tabular}{*4{ll}}
\X\aleph          & \X\Diamond$^*$    & \X\infty   & \X\prime     \\
\X\angle          & \X\diamondsuit    & \X\mho$^*$ & \X\sharp     \\
\X\backslash      & \X\emptyset\AMSfn & \X\nabla   & \X\spadesuit \\
\X\Box$^{*,\dag}$ & \X\flat           & \X\natural & \X\surd      \\
\X\clubsuit       & \X\heartsuit      & \X\neg     & \X\triangle  \\
\end{tabular}

\bigskip
\notpredefinedmessage

\bigskip
\begin{tablenote}[\dag]
  To use \cmdX{\Box}---or any other symbol---as an end-of-proof
  (Q.E.D\@.)\index{Q.E.D.}\index{end of proof}\index{proof, end of}
  marker, consider using the \pkgname{ntheorem} package, which
  properly juxtaposes a symbol with the end of the proof text.
\end{tablenote}

\ifAMS
  \bigskip
  \begin{tablenote}[\ddag]
    Many people prefer the look of \AMS's \cmdX{\varnothing}
    (Table~\ref{ams-misc}) to that of \latex's \cmdX{\emptyset}.
  \end{tablenote}
\fi    % AMS test

\end{symtable}


\begin{symtable}[AMS]{Miscellaneous \AMS\ Symbols}
\idxboth{miscellaneous}{symbols}
\index{stars}
\index{triangles}
\index{null set}
\index{angles}
\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}
\index{angles}
\label{wasy-math}
\begin{tabular}{*3{ll}}
\X[\WASYBox]\Box         & \X\mho$^*$  & \K\wasytherefore \\
\X[\WASYDiamond]\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}
\index{angles}
\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}
\index{fractions}
\label{tc-math}
\ifFRAC
  \def\FRACfn{$^\dag$}
\else
  \def\FRACfn{}
\fi
\begin{tabular}{*3{ll}}
\K\textdegree$^*$      & \K\textonehalf\FRACfn    & \K\textthreequarters\FRACfn \\
\K\textdiv             & \K\textonequarter\FRACfn & \K\textthreesuperior \\
\K\textfractionsolidus & \K\textonesuperior       & \K\texttimes         \\
\K\textlnot            & \K\textpm                & \K\texttwosuperior   \\
\K\textminus           & \K\textsurd                                     \\
\end{tabular}

\bigskip

\begin{tablenote}[*]
  If you prefer a larger degree symbol you might consider defining one
  as ``\verb|\ensuremath{^\circ}|''~(``$^\circ$'')%
  \indexcommand[$\string\circ$]{\circ}.
\end{tablenote}

\ifFRAC
  \bigskip
  \begin{tablenote}[\dag]
    \pkgname{nicefrac} (part of the \pkgname{units} package) can be
    used to construct vulgar fractions like ``\nicefrac{1}{2}'',
    ``\nicefrac{1}{4}'', ``\nicefrac{3}{4}'', and even
    ``\nicefrac{c}{o}''\index{care of=care of (\nicefrac{c}{o})}.
  \end{tablenote}
\fi    % FRAC test
\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}{\GSYMB\ Symbols Defined to Work in Both Math and Text Mode}
\label{gsymb-math}
\begin{tabular}{*2{ll@{\qquad}}ll}
\K[\textcelsius]\celsius & \K[\textmu]\micro & \K[\textperthousand]\perthousand \\
\K[\textdegree]\degree   & \K[\textohm]\ohm  &                                  \\
\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}
\index{angles}
\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} \\
\multicolumn{1}{r@{}}{\emph{or}}
        &\verb|\mathcal{ABC}|
                         & \pkgname{calrsfs} \\
\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},%
                           \ifx\MSYMmathbb\undefined\else$^\S$~\fi
                           \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\MBBmathbb\undefined\else
\Ww\MBBmathbb\mathbb{ABCdef123}
                         & \pkgname{mbboard}$^\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}$^\ddag$              \\
\Wf\textswab{ABCdef123}  & \pkgname{yfonts}$^\ddag$              \\
\Wf\textgoth{ABCdef123}  & \pkgname{yfonts}$^\ddag$              \\
\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>blackboard bold} 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|}|''.

  \ifx\MBBmathbb\undefined
    \pkgname{mbboard} extends the blackboard bold symbol set
    significantly further.  It supports not only the
    Greek\index{Greek>blackboard bold}\index{alphabets>Greek}
    alphabet---including ``Greek-like'' symbols such as
    \cmd{\bbnabla}---but also \emph{all} punctuation marks, various
    currency\idxboth{currency}{symbols}\idxboth{monetary}{symbols}
    symbols such as \cmd{\bbdollar} and \cmd{\bbeuro},\index{euro
    signs>blackboard bold} and the
    Hebrew\index{Hebrew}\index{alphabets>Hebrew} alphabet.
  \else
    \pkgname{mbboard} extends the blackboard bold symbol set
    significantly further.  It supports not only the
    Greek\index{Greek>blackboard bold}\index{alphabets>Greek}
    alphabet---including ``Greek-like'' symbols such as
    \cmdI{\bbnabla}~(``\bbnabla'')---but also \emph{all} punctuation
    marks, various
    currency\idxboth{currency}{symbols}\idxboth{monetary}{symbols}
    symbols such as \cmdI{\bbdollar}~(``\bbdollar'') and
    \cmdI{\bbeuro}~(``\bbeuro''),\index{euro signs>blackboard bold}
    and the Hebrew\index{Hebrew}\index{alphabets>Hebrew}
    alphabet~(e.g.,~``\cmdI{\bbfinalnun}\linebreak[1]\cmdI{\bbyod}%
    \linebreak[1]\cmdI{\bbqof}\linebreak[1]\cmdI{\bbpe}''~$\rightarrow$
    ``\bbfinalnun\bbyod\bbqof\bbpe'').
  \fi    % MBBmathbb test
\end{tablenote}
\fi

\ifx\textfrak\undefined\else
\bigskip
\begin{tablenote}[\ddag]
  As their \verb|\text|\dots{} names imply, the fonts provided by the
  \pkgname{yfonts} package are actually text fonts.  They are
  included in Table~\ref{alphabets} because they are frequently used
  in a mathematical context.
\end{tablenote}
\fi

\ifx\MSYMmathbb\undefined\else
\bigskip
\begin{tablenote}[\S]
  An older (i.e.,~prior to~1991) version of the \AMS's fonts rendered
  $\mathbb{C}$, $\mathbb{N}$, $\mathbb{R}$, $\mathbb{S}$,
  and~$\mathbb{Z}$ as $\MSYMmathbb{C}$, $\MSYMmathbb{N}$,
  $\MSYMmathbb{R}$, $\MSYMmathbb{S}$, and~$\MSYMmathbb{Z}$.  As some
  people prefer the older glyphs---much to the \AMS's surprise---and
  because those glyphs fail to build under modern versions of
  \metafont, \person{Berthold}{Horn} uploaded PostScript fonts for the
  older blackboard-bold glyphs to CTAN\idxCTAN{}, to the
  \texttt{fonts/msym10} directory.  As of this writing, however, there
  are no \latexE packages for utilizing the now-obsolete glyphs.
\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}''.  See also the \pkgname{timing} package,
  which provides a wide variety of pulse-diagram symbols within an
  environment designed specifically for typesetting pulse diagrams.

  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}
\index{planets}
\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}
\index{planets}
\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}
\index{planets}
\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}
\index{smiley faces}
\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}[UNI]{\UNI\ Geometric Shapes}
\index{circles}
\index{squares}
\index{triangles}
\index{geometric shapes}
\label{uni-geometrical}
\begin{tabular}{*3{ll}}
\K\baucircle & \K\bausquare & \K\bautriangle \\
\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}
\index{carriage return}
\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}
\index{smiley faces}
\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}
\index{smiley faces}
\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}[UNI]{Miscellaneous \UNI\ Symbols}
\label{uni-misc}
\begin{tabular}{*2{ll}}
\K\bauforms & \K\bauhead \\
\end{tabular}
\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}


\begin{symtable}[SKAK]{\SKAK\ Chess Informator Symbols}
\idxboth{chess}{symbols}
\idxboth{informator}{symbols}
\begin{tabular}{*4{ll}}
\K\bbetter      & \K\doublepawns   & \K\novelty       & \K\various      \\
\K\bdecisive    & \K\ending        & \K\onlymove      & \K\wbetter      \\
\K\betteris     & \K\equal         & \K\opposbishops  & \K\wdecisive    \\
\K\bishoppair   & \K[\SKAKetc]\etc & \K\passedpawn    & \K\weakpt       \\
\K\bupperhand   & \K\file          & \K\qside         & \K\with         \\
\K\centre       & \K\kside         & \K\samebishops   & \K\withattack   \\
\K\comment      & \K\markera       & \K[\SKAKsee]\see & \K\withidea     \\
\K\compensation & \K\markerb       & \K\seppawns      & \K\withinit     \\
\K\counterplay  & \K\mate          & \K\timelimit     & \K\without      \\
\K\devadvantage & \K\morepawns     & \K\unclear       & \K\wupperhand   \\
\K\diagonal     & \K\moreroom      & \K\unitedpawns   & \K\zugzwang     \\
\end{tabular}

\bigskip
\begin{tablenote}
  \font\chessfont=skak10
  \def\chs#1{{\chessfont#1}}

  The above symbols are merely the named informator symbol.  \SKAK\
  can typeset many more chess-related symbols, including those for all
  of the pieces (\chs{KQRBNP}\slash\chs{kqrbnp}), but only in the
  context of moves and boards, not as individual, named \latex
  symbols.
\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}

\ifcomplete
  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}''.}
\ifOTII    % Not covered by \ifcomplete
  In fact, \cmd{\char} is not strictly necesssary; the character can
  often be entered symbolically.  For example, the symbol for a
  Tate-Shafarevich\index{Tate-Shafarevich group=Tate-Shafarevich group
  ({\fontencoding{OT2}\selectfont SH})} group
  (``{\fontencoding{OT2}\selectfont SH}'') is actually an uppercase
  \textit{sha} in the Cyrillic\index{alphabets>Cyrillic} alphabet.
  (Cyrillic is supported by the OT2 \fntenc[OT2], for instance).
  While a \textit{sha} can be defined numerically as
  ``\verb|{\fontencoding{OT2}|\linebreak[0]\verb|\selectfont\char88}|''
  it may be more intuitive to use the OT2 \fntenc[OT2]'s ``SH''
  ligature:
  ``\verb|{\fontencoding{OT2}|\linebreak[0]\verb|\selectfont SH}|''.
\fi    % OTII test


  \subsubsection*{Reflecting and rotating existing symbols}

  \mbox{}    % Force the \index commands into the paragraph proper.
  \index{symbols>reversed|(}
  \index{symbols>rotated|(}
  \index{symbols>upside-down|(}
  \index{reversed symbols|(}
  \index{rotated symbols|(}
  \index{upside-down symbols|(}
  A common request on \ctt is for a reversed or rotated version of an
  existing symbol.  As a last resort, these effects can be achieved
  with the \pkgname{graphicx} (or \pkgname{graphics}) package's
  \cmd{\reflectbox} and \cmd{\rotatebox} macros.
\ifhaverotating
  \newcommand{\definitedescription}{\rotatebox[origin=c]{180}{$\iota$}}
  For example, \verb|\rotatebox[origin=c]{180}{$\iota$}| produces the
  definite-description\index{definite-description operator
  (\definitedescription)}
  operator~(``\rotatebox[origin=c]{180}{$\iota$}'').
\fi
  The disadvantage of the \pkgname{graphicx}/\pkgname{graphics}
  approach is that not every \tex backend handles graphical
  transformations.\footnote{As an example, Xdvi\index{Xdvi} ignores
  both \cmd{\reflectbox} and \cmd{\rotatebox}.}  Far better is to
  find a suitable font that contains the desired symbol in the correct
  orientation.  For instance, if the \PHON\ package is available, then
  \verb|\textit{\riota}| will yield a
  backend-independent~``\textit{\riota}''.  Similarly, \TIPA's
  \cmdI{\textrevepsilon}~(``\textrevepsilon'') or \WIPA's
  \cmdI{\revepsilon}~(``\revepsilon'') may be used to express the
  mathematical notion of ``such\index{such that=such that (\textrevepsilon)}
  that'' in a cleaner manner than with \cmd{\reflectbox}
  or \cmd{\rotatebox}.
  \index{symbols>reversed|)}
  \index{symbols>rotated|)}
  \index{symbols>upside-down|)}
  \index{reversed symbols|)}
  \index{rotated symbols|)}
  \index{upside-down symbols|)}

  \subsubsection*{Joining and overlapping existing symbols}

  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.

  \subsubsection*{Reflecting and rotating existing symbols}

  Rotated/reflected versions of an existing symbol can be produced
  using the \pkgname{graphicx} (or \pkgname{graphics}) package's
  \cmd{\reflectbox} and \cmd{\rotatebox} macros.\footnote{This should
  be used as a last resort.  Not every \tex backend supports graphical
  transformations.}

  \subsubsection*{Joining and overlapping existing symbols}

  If a symbol does not exist in any orientation 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, \cmdX{\models} (see Table~\vref{rel}) is defined in that
  file with:
\fi    % Matches \ifcomplete ...

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

\noindent
where \cmd{\mathrel} and \cmd{\joinrel} are used to control the
horizontal spacing.  \verb|\def| is the \tex primitive upon which
\latex's \verb|\newcommand| is based.  See \TeXbook for more
information on all three of 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 ``$\mathchar'26$'' 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.

\bigskip

\newcommand{\dotcup}{\ensuremath{\mathaccent\cdot\cup}}

There is a \tex primitive called \cmd{\mathaccent} which centers one
mathematical symbol atop another.  For example, one can define
\cmdX{\dotcup} (``\dotcup'')---the composition of a \cmdX{\cup} and a
\cmdX{\cdot}---as follows:

\begin{verbatim}
    \newcommand{\dotcup}{\ensuremath{\mathaccent\cdot\cup}}
\end{verbatim}

\noindent
The catch is that \cmd{\mathaccent} requires the accent to be a ``math
character''.  That is, it must be a character in a math font as
opposed to a symbol defined in terms of other symbols.  See \TeXbook
for more information.

The \pkgname{slashed} package, although originally designed for
producing Feynman\index{Feynman slashed character notation}
slashed-character\idxboth{slashed}{letters} notation, in fact
facilitates the production of \emph{arbitrary} overlapped symbols.
\ifhaveslashed
  \newcommand{\rqm}{{\declareslashed{}{\text{-}}{0.04}{0}{I}\slashed{I}}}
  The default behavior is to overwrite a given character with ``$/$''.
  For example, \cmd{\slashed}\verb|{D}| produces ``$\slashed{D}$''.
  However, the \cmd{\declareslashed} command provides the flexibility
  to specify the mathematical context of the composite character
  (operator, relation, punctuation, etc., as will be discussed in
  Section~\ref{math-spacing}), the overlapping symbol, horizontal and
  vertical adjustments in symbol-relative units, and the character to
  be overlapped.  Consider, for example, the symbol for reduced
  quadrupole moment~(``$\rqm$'').  This can be declared as follows:

\begin{verbatim}
    \newcommand{\rqm}{{%
      \declareslashed{}{\text{-}}{0.04}{0}{I}\slashed{I}}}
\end{verbatim}

  \noindent
  \newcommand{\curlyarg}{\texttt{\char`\{}$\cdot$\texttt{\char`\}}}%
  \cmd{\declareslashed}\curlyarg\curlyarg\curlyarg\curlyarg\verb|{I}|
  affects the meaning of all subsequent \cmd{\slashed}\verb|{I}|
  commands in the same scope.  The preceding definition of \cmdX{\rqm}
  therefore uses an extra set of curly braces to limit that scope to a
  single \cmd{\slashed}\verb|{I}|.  In addition, \cmdX{\rqm} uses
  \pkgname{amstext}'s \cmd{\text} macro
  (described~\vpageref[below]{text-macro}) to make
  \cmd{\declareslashed} use a text-mode hyphen~(``-'') instead of a
  math-mode minus sign~(``$-$'') and to ensure that the hyphen scales
  properly in size in subscripts and superscripts.
\fi   % haveslashed
See \pkgname{slashed}'s documentation (located in
\filename{slashed.sty} itself) for a detailed usage description of the
\cmd{\slashed} and \cmd{\declareslashed} commands.


\subsubsection*{Making new symbols work in superscripts and subscripts}

\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}%
\indexcommand{\displaystyle}%
\indexcommand{\textstyle}%
\indexcommand{\scriptstyle}%
\indexcommand{\scriptscriptstyle}%
\label{code: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.

\indexcommand{\displaystyle}%
\indexcommand{\textstyle}%
\indexcommand{\scriptstyle}%
\indexcommand{\scriptscriptstyle}%
\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
(The preceding code was taken verbatim from the UK \TeX{} Users' Group
FAQ at \url{http://www.tex.ac.uk/faq}.)
\cmdI[$\string\dashint$]{\dashint} produces a single-dashed integral
sign~(``$\dashint$''), while \cmdX{\ddashint} produces a double-dashed
one~(``$\ddashint$'').  The \verb|\Xint| macro defined above can also
be used to generate a wealth of new integrals:
\ifAMS
  ``$\Xint\circlearrowright$'' (\verb|\Xint\circlearrowright|),
  ``$\Xint\circlearrowleft$'' (\verb|\Xint\circlearrowleft|),
  ``$\Xint\subset$'' (\verb|\Xint\subset|), ``$\Xint\infty$''
  (\verb|\Xint\infty|), and so forth.
\else
  \verb|\Xint\circlearrowright|, \verb|\Xint\circlearrowleft|,
  \verb|\Xint\subset|, \verb|\Xint\infty|, and so forth.
\fi    % AMS test

\index{integrals|)}

\newcommand\independent{\protect\mathpalette{\protect\independenT}{\perp}}
\def\independenT#1#2{\mathrel{\rlap{$#1#2$}\mkern2mu{#1#2}}}

\latexE provides a simple wrapper for \cmd{\mathchoice} that sometimes
helps produce terser symbol definitions.  The macro is called
\cmd{\mathpalette} and it takes two arguments.  \cmd{\mathpalette}
invokes the first argument, passing it one of ``\cmd{\displaystyle}'',
``\cmd{\textstyle}'', ``\cmd{\scriptstyle}'', or
``\cmd{\scriptscriptstyle}'', followed by the second argument.
\cmd{\mathpalette} is useful when a symbol macro must know which math
style is currently in use (e.g.,~to set it explicitly within an
\cmd{\mbox}).  \person{Donald}{Arseneau} posted the following
\cmd{\mathpalette}-based definition of a
probabilistic-independence\index{probabilistic
independence}\index{independence>probabilistic}\index{statistical
independence}\index{independence>statistical}
symbol~(``$\independent$'') to \ctt:

\begin{verbatim}
   \newcommand\independent{\protect\mathpalette{\protect\independenT}{\perp}}
   \def\independenT#1#2{\mathrel{\rlap{$#1#2$}\mkern2mu{#1#2}}}
\end{verbatim}

\noindent
The \cmdX{\independent} macro uses \cmd{\mathpalette} to pass the
\verb|\independenT| helper macro both the current math style and the
\cmdX{\perp} symbol.  \verb|\independenT| typesets \cmdX{\perp} in the
current math style, moves two math units to the right, and finally
typesets a second---overlapping---copy of \cmdX{\perp}, again in the
current math style.  \cmd{\rlap}, which enables text overlap, is
described~\vpageref[later on this page]{desc:rlap}.

\def\hksqrt{\mathpalette\DHLhksqrt}
\def\DHLhksqrt#1#2{\setbox0=\hbox{$#1\sqrt{#2\,}$}\dimen0=\ht0
  \advance\dimen0-0.2\ht0
  \setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
  {\box0\lower0.4pt\box2}}

\index{sqrt=\verb+\sqrt+ ($\blackacc{\sqrt}$)|(}

\begin{morespacing}{1pt}
Some people like their square-root signs with a trailing ``hook''
(i.e.,~``$\!\hksqrt{~}$\,'') as this helps visually distinguish
expressions like~``$\!\sqrt{3x}$\,'' from those
like~``$\!\sqrt{3}x$''.  \person{Dan}{Luecking} posted a
\cmd{\mathpalette}-based definition of a hooked square-root symbol to
\ctt:
\end{morespacing}

\index{hksqrt=\verb+\hksqrt+ ($\blackacc{\hksqrt}$)}%
\begin{verbatim}
   \def\hksqrt{\mathpalette\DHLhksqrt}
   \def\DHLhksqrt#1#2{\setbox0=\hbox{$#1\sqrt{#2\,}$}\dimen0=\ht0
     \advance\dimen0-0.2\ht0
     \setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
     {\box0\lower0.4pt\box2}}
\end{verbatim}

\noindent
Notice how \verb|\DHLhksqrt| uses \cmd{\mathpalette} to recover the
outer math style (argument~\verb|#1|) from within an \verb|\hbox|.
The rest of the code is simply using \tex primitives to position a
hook of height 0.2~times the \verb|\sqrt| height at the right of the
\verb|\sqrt|.  See \TeXbook for more understanding of \tex ``boxes''
and ``dimens''.

\index{sqrt=\verb+\sqrt+ ($\blackacc{\sqrt}$)|)}


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

Sometimes, however, \pkgname{amstext}'s \cmd{\text}\label{text-macro}
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 should probably be using
\xypic.}

\indexcommand[$\string\nearrow$]{\nearrow}
\indexcommand[$\string\swarrow$]{\swarrow}
\indexcommand[$\string\nwarrow$]{\nwarrow}
\indexcommand[$\string\searrow$]{\searrow}
\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}\label{desc: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|)}

In a June~2002 post to \ctt, \person{Donald}{Arseneau} presented a
general macro for aligning an arbitrary number of symbols on their
horizontal centers and vertical baselines:

\begin{verbatim}
   \makeatletter
     \def\moverlay{\mathpalette\mov@rlay}
     \def\mov@rlay#1#2{\leavevmode\vtop{%
        \baselineskip\z@skip \lineskiplimit-\maxdimen
        \ialign{\hfil$#1##$\hfil\cr#2\crcr}}}
   \makeatother
\end{verbatim}

\noindent
\cmd{\moverlay} takes a list of symbols separated by \verb|\cr|
(\tex's equivalent of \latex's \verb|\\|).  For example, the
\cmdX{\topbot} command defined \vpageref[above]{code:topbot} could
have been expressed as ``\verb|\moverlay{\top\cr\bot}|'' and the
\cmdX{\neswarrow} command defined \vpageref[above]{code:neswarrow}
could have been expressed as
``\verb|\moverlay{\nearrow\cr\swarrow}|''.%
\indexcommand[$\string\nearrow$]{\nearrow}%
\indexcommand[$\string\swarrow$]{\swarrow}

The basic concept behind \cmd{\moverlay}'s implementation is that
\cmd{\moverlay} typesets the given symbols in a table that utilizes a
zero \verb|\baselineskip|.  This causes every row to be typeset at the
same vertical position.  See \TeXbook for explanations of the \tex
primitives used by \cmd{\moverlay}.

\subsubsection*{Modifying \latex-generated symbols}

\index{dots (ellipses)|(}
\index{ellipses (dots)|(}

Oftentimes, symbols composed in the \latexE source code can be
modified with minimal effort to produce useful variations.  For
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 \MDOTS\
package's
\ifMDOTS
  \cmdX{\iddots}
\else
  \cmd{\iddots}
\fi
command or the \YH\ package's
\ifYH
  \cmdX{\adots}
\else
  \cmd{\adots}
\fi
command.
\index{ellipses (dots)|)}
\index{dots (ellipses)|)}

\subsubsection*{Producing complex accents}

\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}$''.\index{tilde}
\fi
\pkgname{accents} provides other accent-related features as well; see
the documentation for more information.
\index{accents|)}

\bigskip

\index{accents|(}
\index{extensible accents|(}
\index{accents>extensible|(}
A more complex example of composing accents 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

\indexcommand{\displaystyle}%
\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}


A similar, but simpler example, stems from another \ctt post by
\person{Donald}{Arseneau}.  The following code defines an equals sign
that extends as far to the right as possible (just like \latex's
\verb|\hrulefill| command):

\makeatletter
   \def\equalsfill{$\m@th\mathord=\mkern-7mu
   \cleaders\hbox{$\!\mathord=\!$}\hfill
   \mkern-7mu\mathord=$}
\makeatother

\begin{verbatim}
   \makeatletter
   \def\equalsfill{$\m@th\mathord=\mkern-7mu
     \cleaders\hbox{$\!\mathord=\!$}\hfill
     \mkern-7mu\mathord=$}
   \makeatother
\end{verbatim}

\tex's \verb|\cleaders| and \verb|\hfill| primitives are the key to
understanding \cmd{\equalsfill}'s extensibility.  Essentially,
\cmd{\equalsfill} repeats a box containing ``$=$'' plus some negative
space until it fills the maximum available horizontal space.
\cmd{\equalsfill} is intended to be used with \latex's \cmd{\stackrel}
command, which stacks one mathematical expression (slightly reduced in
size) atop another.  Hence, ``\cmd{\stackrel}\verb|{a}{\rightarrow}|''
produces ``$\stackrel{a}{\rightarrow}$'' and ``X
\cmd{\stackrel}\verb|{\text{definition}}{\hbox{|\cmd{\equalsfill}\verb|}}|
Y'' produces ``$X \stackrel{\text{definition}}{\hbox{\equalsfill}}
Y$''.\idxboth{definition}{symbols}\label{equalsfill-ex}

If all that needs to extend are horizontal and vertical lines---as
opposed to repeated symbols such as the ``$=$'' in the previous
example---\latex's \verb|array| or \verb|tabular| environments may
suffice.  Consider the following code (also presented in a \ctt post
by \person{Donald}{Arseneau}) for typesetting
annuities\index{annuities}:

   \DeclareRobustCommand{\annu}[1]{_{%
    \def\arraystretch{0}%
    \setlength\arraycolsep{1pt}%        adjust these
    \setlength\arrayrulewidth{.2pt}%  two settings
    \begin{array}[b]{@{}c|}\hline
    \\[\arraycolsep]%
    \scriptstyle #1%
    \end{array}%
   }}

\begin{verbatim}
   \DeclareRobustCommand{\annu}[1]{_{%
    \def\arraystretch{0}%
    \setlength\arraycolsep{1pt}%        adjust these
    \setlength\arrayrulewidth{.2pt}%  two settings
    \begin{array}[b]{@{}c|}\hline
    \\[\arraycolsep]%
    \scriptstyle #1%
    \end{array}%
   }}
\end{verbatim}

\noindent
One can then use, e.g.,~``\verb|$A\annu{x:n}$|'' to produce
``$A\annu{x:n}$''.\indexaccent[$\string\blackacc\string\annu$]{\annu}


\subsubsection*{Creating new symbols from scratch}

Sometimes is it simply not possible to define a new symbol in terms of
existing symbols.  Fortunately, most, if not all, \tex distributions
are shipped with a tool called \metafont which is designed
specifically for creating fonts to be used with \tex.  The
\MF{}book~\cite{Knuth:ct-c} is the authoritative text on \metafont.
If you plan to design your own symbols with \metafont, The \MF{}book
is essential reading.  Nevertheless, the following is an extremely
brief tutorial on how to create a new \latex symbol using \metafont.
Its primary purpose is to cover the \latex-specific operations not
mentioned in The \MF{}book and to demonstrate that symbol-font
creation is not necessarily a difficult task.

Suppose we need a symbol to represent a light
bulb~(``\lightbulb'').\footnote{I'm not a very good artist; you'll
have to pretend that~``\lightbulb'' looks like a light bulb.}  The
first step is to draw this in \metafont.  It is common to separate the
font into two files: a size-dependent file, which specifies the design
size and various font-specific parameters that are a function of the
design size; and a size-independent file, which draws characters in
the given size.  Figure~\ref{mftoplevel} shows the \metafont code for
\filename{lightbulb10.mf}.  \filename{lightbulb10.mf} specifies
various parameters that produce a 10\,pt.\ light bulb then loads
\filename{lightbulb.mf}.  Ideally, one should produce
\texttt{lightbulb}\meta{size}\texttt{.mf} files for a variety of
\meta{size}s.  This is called ``optical\idxboth{optical}{scaling}
scaling''.  It enables, for example, the lines that make up the light
bulb to retain the same thickness at different font sizes, which looks
much nicer than the alternative---and
default---``mechanical\idxboth{mechanical}{scaling} scaling''.  When a
\texttt{lightbulb}\meta{size}\texttt{.mf} file does not exist for a
given size \meta{size}, the computer mechanically produces a wider,
taller, thicker symbol:

\begin{center}
\begin{tabular}{*{13}c}
{\fontsize{10}{10}\lightbulb} & vs.\ &
{\fontsize{20}{20}\lightbulb} & vs.\ &
{\fontsize{30}{30}\lightbulb} & vs.\ &
{\fontsize{40}{40}\lightbulb} & vs.\ &
{\fontsize{50}{50}\lightbulb} & vs.\ &
{\fontsize{60}{60}\lightbulb} & vs.\ &
{\fontsize{70}{70}\lightbulb} \\[-1.5ex]
{\tiny 10\,pt.} & &
{\tiny 20\,pt.} & &
{\tiny 30\,pt.} & &
{\tiny 40\,pt.} & &
{\tiny 50\,pt.} & &
{\tiny 60\,pt.} & &
{\tiny 70\,pt.} \\
\end{tabular}
\end{center}

\begin{figure}[htbp]
\centering
\begin{codesample}
% The following are derived from mftmac.tex.
\def\\#1{\textit{#1}} % italic type for identifiers
\def\2#1{\mathop{\textbf{#1}\/\kern.05em}} % operator, in bold type
\def\9{\hfill$\%} % comment separator
% Matching `$' for Emacs font-lock mode
\def\SH{\raise.7ex\hbox{$\scriptstyle\#$}} % sharp sign for sharped units
\let\BL=\medskip % space for empty line
\def\frac#1/#2{\leavevmode\kern.1em
  \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
  /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}

% The following are modified from mft's output.
$\2{font\_identifier}:=\verb+"LightBulb10"+;\ \9 Name the font.\par
$\2{font\_size}10\\{pt}\SH ;\ \9 Specify the design size.\par
\BL
$\\{em}\SH :=10\\{pt}\SH ;\ \9 ``M'' width is 10 points.\par
$\\{cap}\SH :=7\\{pt}\SH ;\ \9 Capital letter height is 7 points above the
baseline.\par
$\\{sb}\SH :=\frac1/{4}\\{pt}\SH ;\ \9 Leave this much space on the side of
each character.\par
$o\SH :=\frac1/{16}\\{pt}\SH ;\ \9 Amount that curves overshoot borders.\par
\BL
$\2{input}\hbox{\tt lightbulb}\9 Load the file that draws the actual glyph.\par
% Matching `$' for Emacs font-lock mode
\end{codesample}
\caption{Sample \metafont size-specific file (\filename{lightbulb10.mf})}
\label{mftoplevel}
\end{figure}

\filename{lightbulb.mf}, shown in Figure~\ref{mfmain}, draws a light
bulb using the parameters defined in \filename{lightbulb10.mf}.  Note
that the the filenames ``\filename{lightbulb10.mf}'' and
``\filename{lightbulb.mf}'' do not follow the Berry font-naming
scheme~\cite{Berry:fontname}; the Berry font-naming scheme is largely
irrelevant for symbol fonts, which generally lack bold, italic,
small-caps, slanted, and other such variants.

\begin{figure}[htbp]
\centering
\begin{codesample}
% The following are derived from mftmac.tex.
\def\\#1{\textit{#1}} % italic type for identifiers
\def\1#1{\mathop{\textrm{#1}}} % operator, in roman type
\def\2#1{\mathop{\textbf{#1}\/\kern.05em}} % operator, in bold type
\def\3#1{\,\mathclose{\textbf{#1}}} % `fi' and `endgroup'
\def\5#1{\textbf{#1}} % `true' and `nullpicture'
\def\6#1{\mathbin{\rm#1}} % `++' and `scaled'
\def\8#1{\mathrel{\mathcode`\.="8000 \mathcode`\-="8000
  #1\unkern}} % `..' and `--'
\def\9{\hfill$\%} % comment separator
% Matching `$' for Emacs font-lock mode
\def\SH{\raise.7ex\hbox{$\scriptstyle\#$}} % sharp sign for sharped units
\let\BL=\medskip % space for empty line
\def\frac#1/#2{\leavevmode\kern.1em
  \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
  /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
\mathchardef\period=`\.
\newbox\shorthyf \setbox\shorthyf=\hbox{-\kern-.05em}
{\catcode`\-=\active \global\def-{\copy\shorthyf\mkern3.9mu}
 \catcode`\.=\active \global\def.{\period\mkern3mu}}

% The following are modified from mft's output.
$\5{mode\_setup};\ \9 Target a given printer.\par
\BL
$\2{define\_pixels}(\\{em},\\{cap},\\{sb});\ \9 Convert to device-specific
units.\par
$\2{define\_corrected\_pixels}(o);\ \9 Same, but add a device-specific fudge
factor.\par
\BL
\%\% Define a light bulb at the character position for ``A''\par
\%\% with width $\frac1/{2}\\{em}\SH$, height $\\{cap}\SH$, and depth $1\\{pt}\SH$.\par
$\2{beginchar}(\verb+"A"+,\frac1/{2}\\{em}\SH ,\\{cap}\SH ,1\\{pt}\SH );\ \verb+"A light bulb"+;$\par
\quad\quad$\2{pickup}\5{pencircle}\6{scaled}\frac1/{2}\\{pt};\ \9 Use a pen
with a small, circular tip.\par
\BL
\quad\quad\%\% Define the points we need.\par
\quad\quad$\\{top}\,z_{1}=(w/2,h+o);\ \9 $z_1$ is at the top of a circle.\par
\quad\quad$\\{rt}\,z_{2}=(w+\\{sb}+o-x_{4},y_{4});\ \9 $z_2$ is at the same
height as $z_4$ but the opposite side.\par
\quad\quad$\\{bot}\,z_{3}=(z_{1}-(0,w-\\{sb}-o));\ \9 $z_3$ is at the bottom of
the circle.\par
\quad\quad$\\{lft}\,z_{4}=(\\{sb}-o,\frac1/{2}[y_{1},y_{3}]);\ \9 $z_4$ is on the
left of the circle.\par
\quad\quad$\2{path}\\{bulb};\ \9 Define a path for the bulb itself.\par
\quad\quad$\\{bulb}=z_{1}\8{..}z_{2}\8{..}z_{3}\8{..}z_{4}\8{..}\1{cycle};\ \9
The bulb is a closed path.\par
\BL
\quad\quad$z_{5}=\2{point}2-\frac1/{3}\2{of}\\{bulb};\ \9 $z_5$ lies on the
bulb, a little to the right of $z_3$.\par
\quad\quad$z_{6}=(x_{5},0);\ \9 $z_6$ is at the bottom, directly under $z_5$.\par
\quad\quad$z_{7}=(x_{8},0);\ \9 $z_7$ is at the bottom, directly under $z_8$.\par
\quad\quad$z_{8}=\2{point}2+\frac1/{3}\2{of}\\{bulb};\ \9 $z_8$ lies on the
bulb, a little to the left of $z_3$.\par
\quad\quad$\\{bot}\,z_{67}=(\frac1/{2}[x_{6},x_{7}],\\{pen\_bot}-o-\frac1/{8}%
\\{pt});\ \9 $z_{67}$ lies halfway between $z_6$ and $z_7$ but a jot lower.\par
\BL
\quad\quad\%\% Draw the bulb and the base.\par
\quad\quad$\2{draw}\\{bulb};\ \9 Draw the bulb proper.\par
\quad\quad$\2{draw}z_{5}\8{--}z_{6}\8{..}z_{67}\8{..}z_{7}\8{--}z_{8};\ \9
Draw the base of the bulb.\par
\BL
\quad\quad\%\% Display key positions and points to help us debug.\par
\quad\quad$\\{makegrid}(0,\\{sb},w/2,w-\\{sb})(0,-1\\{pt},y_{2},h);\ \9 Label
``interesting'' $x$ and $y$ coordinates.\par
\quad\quad$\\{penlabels}(1,2,3,4,5,6,67,7,8);\ \9 Label control points for
debugging.\par
$\!\3{endchar};$\par
$\!\3{end}$\par
% Matching `$' for Emacs font-lock mode
\end{codesample}
\caption{Sample \metafont size-independent file (\filename{lightbulb.mf})}
\label{mfmain}
\end{figure}

The code in Figures~\ref{mftoplevel} and~\ref{mfmain} is heavily
commented and should demonstrate some of the basic concepts behind
\metafont usage: declaring variables, defining points, drawing lines
and curves, and preparing to debug or fine-tune the output.  Again,
The \MF{}book~\cite{Knuth:ct-c} is the definitive reference on
\metafont programming.

\metafont can produce ``proofs'' of fonts---large, labeled versions
that showcase the logical structure of each character.  In fact, proof
mode is \metafont's default mode.  To produce a proof of
\filename{lightbulb10.mf}, issue the following commands at the
operating-system prompt:

\bigskip
\noindent
\begingroup
\let\usercmd=\textbf
\newlength{\commentlen}%
\settowidth{\commentlen}{Produces \filename{lightbulb10.2602gf}}%
\leftskip=\parindent \parindent=0pt \obeylines
\osprompt \usercmd{mf lightbulb10.mf} \hfill $\Leftarrow$\quad%
  \makebox[\commentlen][l]{Produces \filename{lightbulb10.2602gf}}
\osprompt \usercmd{gftodvi lightbulb10.2602gf} \hfill $\Leftarrow$\quad%
  \makebox[\commentlen][l]{Produces \filename{lightbulb10.dvi}}
\endgroup
\bigskip

\noindent
You can then view \filename{lightbulb10.dvi} with any DVI viewer.  The
result is shown in Figure~\ref{lightbulb10-proof}.  Observe how the
grid defined with \textit{makegrid} at the bottom of
Figure~\ref{mfmain} draws vertical lines at positions~0, \textit{sb},
$w/2$, and $w - \textit{sb}$ and horizontal lines at positions~0,
$-1$\textit{pt}, $y_2$, and $h$.  Similarly, observe how the
\textit{penlabels} command labels all of the important coordinates:
$z_1, z_2, \ldots, z_8$ and $z_{67}$, which \filename{lightbulb.mf}
defines to lie between $z_6$ and $z_7$.

\begin{figure}[htbp]
  \centering
  \includegraphics[height=6cm]{lightbulb.eps}
  \caption{Proof diagram of \filename{lightbulb10.mf}}
  \label{lightbulb10-proof}
\end{figure}

Most, if not all, \tex distributions include a Plain \tex file called
\filename{testfont.tex} which is useful for testing new fonts in a
variety of ways.  One useful routine produces a table of all of the
characters in the font:

\bigskip
\noindent
\begingroup
\newcommand*{\usercmd}[1]{\textrm{\textbf{#1}}}%
\leftskip=\parindent \parindent=0pt \ttfamily \obeylines \obeyspaces%
\osprompt \usercmd{tex testfont}
This is TeX, Version 3.14159 (Web2C 7.3.1)
(/usr/share/texmf/tex/plain/base/testfont.tex
Name of the font to test = \usercmd{lightbulb10}
Now type a test command (\string\help for help):)
*\usercmd{\textbackslash{}table}
\vspace{\baselineskip}
*\usercmd{\textbackslash{}bye}
[1]
Output written on testfont.dvi (1 page, 1516 bytes).
Transcript written on testfont.log.
\endgroup
\bigskip

\noindent
The resulting table, stored in \filename{testfont.dvi} and illustrated
in Figure~\ref{font-table}, shows every character in the font.  To
understand how to read the table, note that the character code
for~``A''---the only character defined by
\filename{lightbulb10.mf}---is 41 in hexadecimal (base~16) and 101 in
octal (base~8).

\begin{figure}[htbp]
\centering
\fbox{%
\begin{minipage}{0.9\linewidth}
\centering
\vspace*{\baselineskip}
\begin{minipage}{0.95\linewidth}
{\tiny Test of lightbulb10 on March 11, 2003 at 1127}
\vspace{2\baselineskip}

\renewcommand{\tabularxcolumn}[1]{>{\mbox{}\hfill}p{#1}<{\hfill\mbox{}}}%
% The following two lines are modified from testfont.tex
\def\oct#1{\hbox{\normalfont\'{}\kern-.2em\itshape#1\/\kern.05em}} % octal constant
\def\hex#1{\hbox{\normalfont\H{}\ttfamily#1}} % hexadecimal constant

\begin{tabularx}{\linewidth}{@{}*9{X|}X@{}}
      & \oct{0} & \oct{1} & \oct{2} & \oct{3} &
        \oct{4} & \oct{5} & \oct{6} & \oct{7} & \\ \hline
 \oct{10x}
      &    & \lightbulb & & & & & & &
      \raisebox{-0.5\baselineskip}[0pt][0pt]{\hex{4x}} \\ \cline{1-9}
 \oct{11x}
      &    &            & & & & & & & \\ \hline
      & \hex{8} & \hex{9} & \hex{A} & \hex{B} &
        \hex{C} & \hex{D} & \hex{E} & \hex{F} & \\
\end{tabularx}
\end{minipage}
\vspace*{\baselineskip}
\end{minipage}}
\caption{Font table produced by \filename{testfont.tex}}
\label{font-table}
\end{figure}

The LightBulb10 font is now usable by \tex.  \latexE, however, needs
more information before documents can use the font.  First, we create
a font-description file that tells \latexE how to map fonts in a given
font family and encoding to a particular font in a particular font
size.  For symbol fonts, this mapping is fairly simple.  Symbol fonts
almost always use the ``U''~(``Unknown'') font encoding and frequently
occur in only one variant: normal weight and non-italicized.  The
filename for a font-description file important; it must be of the form
``\meta{encoding}\meta{family}\texttt{.fd}'', where \meta{encoding} is
the lowercase version of the encoding name (typically~``u'' for symbol
fonts) and \meta{family} is the name of the font family.  For
LightBulb10, let's call this ``bulb''.  Figure~\ref{bulb-fd-file}
lists the contents of \filename{ubulb.fd}.  The document ``\latexE
Font Selection''~\cite{fntguide} describes \cmd{\DeclareFontFamily}
and \cmd{\DeclareFontShape} in detail, but the gist of
\filename{ubulb.fd} is first to declare a \texttt{U}-encoded version
of the \texttt{bulb} font family and then to specify that a \latexE
request for a \texttt{U}-encoded version of \texttt{bulb} with a
(\texttt{m})edium font series (as opposed to, e.g., bold) and a
(\texttt{n})ormal font shape (as opposed to, e.g., italic) should
translate into a \tex request for \filename{lightbulb10.tfm}
mechanically\idxboth{mechanical}{scaling} scaled to the current font
size.

\begin{figure}[htbp]
\centering
\begin{tabular}{@{}|l|@{}}
  \hline
  \verb+\DeclareFontFamily{U}{bulb}{}+ \\
  \verb+\DeclareFontShape{U}{bulb}{m}{n}{<-> lightbulb10}{}+ \\
  \hline
\end{tabular}
\caption{\latexE font-description file (\filename{ubulb.fd})}
\label{bulb-fd-file}
\end{figure}

The final step is to write a \latexE style file that defines a name
for each symbol in the font.  Because we have only one symbol our
style file, \filename{lightbulb.sty} (Figure~\ref{bulb-sty-file}), is
rather trivial.  Note that instead of typesetting ``\texttt{A}'' we
could have had \cmdI{\lightbulb} typeset ``\verb+\char65+'',
``\verb+\char"41+'', or ``\verb+\char'101+'' (respectively, decimal,
hexadecimal, and octal character offsets into the font).  For a
simple, one-character symbol font such as LightBulb10 it would be
reasonable to merge \filename{ubulb.fd} into \filename{lightbulb.sty}
instead of maintaining two separate files.  In either case, a document
need only include ``\verb+\usepackage{lightbulb}+'' to make the
\verb+\lightbulb+ symbol available.

\begin{figure}[htbp]
\centering
\begin{tabular}{@{}|l|@{}}
  \hline
  \verb+\newcommand{\lightbulb}{{\usefont{U}{bulb}{m}{n}A}}+ \\
  \hline
\end{tabular}
\caption{\latexE style file (\filename{lightbulb.sty})}
\label{bulb-sty-file}
\end{figure}

\bigskip

\metafont normally produces bitmapped fonts.  However, it is also
possible, with the help of some external tools, to produce PostScript
\PSfont{Type~1} fonts.  These have the advantages of rendering better
in Adobe\regtm\index{Adobe Acrobat} Acrobat\regtm (at least in
versions prior to~6.0) and of being more memory-efficient when handled
by a PostScript interpreter.  See
\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=textrace} for
pointers to tools that can produce \PSfont{Type~1} fonts from
\metafont.


\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 a 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$''.  Similarly, to create a
dotted-union\index{dotted union=dotted union ($\dot\cup$)} symbol
(``$\dot\cup$'') that spaces like the ordinary set-union symbol
(\cmdX{\cup}) it must be defined with \cmd{\mathbin}, just as
\cmdX{\cup} is.  Contrast ``\verb|$A \dot{\cup} B$|'' (``$A {\dot\cup}
B$'') with ``\verb|$A \mathbin{\dot{\cup}} B$|'' (``$A
\mathbin{\dot{\cup}} B$'').  See \TeXbook for the definitive
description of math-mode spacing.

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$ \rlap{\quad (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}
\ifAMS
  \indexcommand[$\string\atan$]{\atan}%
  \indexcommand[$\string\lcm$]{\lcm}
\else
  \indexcommand{\atan}%
  \indexcommand{\lcm}
\fi   % AMS test

\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\]}).\footnote{Note
that \cmd{\displaystyle} can be used to force display style
within~\texttt{\$}$\ldots$\texttt{\$} and \cmd{\textstyle} can be used
to force text style
within~\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}

It is common to use a thin\idxboth{thin}{space} space~(\cmd{\,})
between the words of a multiword operators, as in
``\verb|\DeclareMathOperator*|\linebreak[0]\verb|{\argmax}|\linebreak[0]\verb|{arg\,max}|''.
\cmdX{\liminf}, \cmdX{\limsup}, and all of the
log-like\idxboth{log-like}{symbols}\index{atomic math objects} symbols
shown in Table~\ref{ams-log} utilize this spacing convention.


\subsection{Bold mathematical symbols}
\label{bold-math}

\idxbothbegin{bold}{symbols} \latex does not normally use bold symbols
when typeseting mathematics.  However, bold symbols are occasionally
needed, for example when naming vectors.  Any of the approaches
described at
\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=boldgreek} can be
used to produce bold mathematical symbols.  Table~\ref{bold-symbols}
contrasts the output produced by these various techniques.  As the
table illustrates, these techniques exhibit variation in their
formatting of Latin letters (upright vs.\ italic), formatting of
Greek\index{Greek>bold} letters (bold vs.\ normal), formatting of
operators and relations (bold vs.\ normal), and spacing.

% The following was copied verbatim from amsbsy.sty.
\makeatletter
\DeclareRobustCommand{\pmb}{%
  \ifmmode\else \expandafter\pmb@@\fi\mathpalette\pmb@}
\def\pmb@@#1#2#3{\leavevmode\setboxz@h{#3}%
   \dimen@-\wdz@
   \kern-.5\ex@\copy\z@
   \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@
   \kern\dimen@\kern.25\ex@\box\z@
}
\newdimen\pmbraise@
\def\pmb@#1#2{\setbox8\hbox{$\m@th#1{#2}$}%
  \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@
  \binrel@{#2}%
  \dimen@-\wd8 %
  \binrel@@{%
    \mkern-.8mu\copy8 %
    \kern\dimen@\mkern.4mu\raise\pmbraise@\copy8 %
    \kern\dimen@\mkern.4mu\box8 }%
}
\makeatother

\begin{nonsymtable}{Producing bold mathematical symbols}
  \idxboth{bold}{symbols}
  \label{bold-symbols}
  \begin{tabular}{@{}lll@{}}
    \toprule
    Package & Code & Output \\
    \midrule

    \textit{none} &
    \verb!$\alpha + b = \Gamma \div D$! &
    $\alpha + b = \Gamma \div D$ \rlap{\qquad (no bold)} \\

    \textit{none} &
    \verb!$!\cmd{\mathbf}\verb!{\alpha + b = \Gamma \div D}$! &
\ifBM
    $\alpha + \textbf{b} = \bm{\Gamma} \div \textbf{D}$ \\
\else
    $\mathbf{\alpha + b = \Gamma \div D}$ \\
\fi

    \textit{none} &
    \cmd{\boldmath}\verb!$\alpha + b = \Gamma \div D$! &
    \boldmath$\alpha + b = \Gamma \div D$ \\

    \pkgname{amsbsy} &
    \verb!$!\cmd{\pmb}\verb!{\alpha + b = \Gamma \div D}$! &
    $\pmb{\alpha + b = \Gamma \div D}$ \rlap{\qquad (faked bold)} \\

    \pkgname{amsbsy} &
    \verb!$!\cmd{\boldsymbol}\verb!{\alpha + b = \Gamma \div D}$! &
    \boldmath$\alpha + b = \Gamma \div D$ \\

\ifBM
    \pkgname{bm} &
    \verb!$!\cmd{\bm}\verb!{\alpha + b = \Gamma \div D}$! &
    $\bm{\alpha + b = \Gamma \div D}$ \\
\fi

    \pkgname{fixmath} &
    \verb!$!\cmd{\mathbold}\verb!{\alpha + b = \Gamma \div D}$! &
    \def\GammaIt{\mathord{\usefont{OML}{cmm}{b}{it}\mathchar"7100}}%
    \boldmath$\alpha + b = \GammaIt \div D$ \\
    \bottomrule
  \end{tabular}
\end{nonsymtable}

\idxbothend{bold}{symbols}


\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
U.S. 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 Although ``\texttt{/}'' does not require any special
  treatment, \latex additionally defines a \cmdI{\slash} command which
  outputs the same glyph but permits a line~break afterwards.  That
  is, ``\texttt{increase/decrease}'' is always typeset as a single
  entity while ``\verb|increase\slash{}decrease|'' may be typeset with
  ``increase/'' on one line and ``decrease'' on the next.

  \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 \cmdIp{\{},
  \cmdIp{\}}, \cmdI{\_}, and \cmdI{\textbackslash} all work properly.

  \item \label{tildes} \index{tilde|(} \cmdI{\textasciicircum} can be
  used instead of \cmdI[\string\^{}]{\^{}}\verb|{}|, and
  \cmdI{\textasciitilde} can be used instead of
  \cmdI[\string\~{}]{\~{}}\verb|{}|.  Note that \cmdI{\textasciitilde}
  and \cmdI[\string\~{}]{\~{}}\verb|{}| produce raised, diacritic
  tildes.  ``Text'' (i.e.,~vertically\index{tilde>vertically centered}
  centered) tildes can be generated with either the math-mode
  \cmdX{\sim} command (shown in Table~\vref{rel}), which produces a
  somewhat wide ``$\sim$'', or the \TC\ package's \cmdI{\texttildelow}
  (shown in Table~\vref{tc-misc}), which produces a vertically
  centered ``{\fontfamily{ptm}\selectfont\texttildelow}'' in most
  fonts but a baseline-oriented ``\texttildelow'' in Computer Modern,
  \TX, \PX, and various other fonts originating from the \tex\ world.
  If your goal is to typeset tildes in URLs or Unix filenames, your
  best bet is to use the \pkgname{url} package, which has a number of
  nice features such as proper line-breaking of such
  names.\index{tilde|)}

  \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,
  \verb|\={}|\index{_=\magicequalname{}\verb+{}+ (\magicequal{})}
  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\regtm\index{Microsoft Windows}
  Windows\regtm\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.

\vspace{\stretch{1}}
\begingroup
\let\section=\origsection

\addcontentsline{toc}{section}{References}
\begin{thebibliography}{Knu86b}

\bibitem[Ber01]{Berry:fontname}
  Karl Berry.\index{Berry, Karl}
  Fontname: Filenames for \tex fonts,
  June 2001.
  Available from \url{http://www.ctan.org/tex-archive/info/fontname}.

\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[Gib97]{Gibbons:longdiv}
  Jeremy Gibbons.\index{Gibbons, Jeremy}
  Hey---it works!
  \emph{TUGboat}, 18(2):75--78, June 1997.
  Available from \url{http://www.tug.org/TUGboat/Articles/tb18-2/tb55works.pdf}.

\bibitem[Knu86a]{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[Knu86b]{Knuth:ct-c}
  Donald~E. Knuth.\index{Knuth, Donald E.}
  \emph{The {\MF}book},
  volume~C 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}
