%%% ====================================================================
%%% @LaTeX-file{
%%% author = "Scott Pakin",
%%% version = "15.0",
%%% date = "03 January 2024",
%%% time = "00:37:09 MST",
%%% filename = "symbols.tex",
%%% checksum = "28793 31586 100238 1448831",
%%% email = "
[email protected] (Internet)",
%%% codetable = "ISO/ASCII",
%%% keywords = "symbols, LaTeX2e, typesetting, accents,
%%% mathematics, scientific, dingbats, fonts",
%%% supported = "yes",
%%% abstract = "This document lists tens of 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
%%% (
https://www.ctan.org).",
%%% docstring = "This LaTeX document showcases tens of
%%% thousands of symbols that are available to
%%% authors. The original version of this
%%% document was written by David Carlisle on
%%% 1994/10/02. It subsequently was 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
%%% (
https://www.ctan.org)."
%%% }
%%% ====================================================================
\NeedsTeXFormat{LaTeX2e}
\IfFileExists{cmap.sty}{\RequirePackage[resetfonts]{cmap}}{}
\documentclass{report}
\usepackage{etex} % Increase available TeX resources.
\usepackage[
margin=1in,
includehead,
headheight=15pt,
ignorefoot,
ignoremp]{geometry}
\usepackage{array}
\usepackage{longtable}
\usepackage{textcomp}
\usepackage{fakelatexsym}
\usepackage{varioref}
\usepackage{xspace}
\usepackage{makeidx}
\usepackage{verbatim}
\usepackage{graphicx}
\usepackage{iftex}
\usepackage{tabularx}
\usepackage{keyval}
\usepackage{accsupp}
\usepackage{xstring}
\usepackage{mflogo}
\usepackage{url}
\usepackage{multicol}
\usepackage{rotating}
\usepackage{slashed}
\usepackage{centernot}
\usepackage{changepage}
\usepackage[svgnames]{xcolor}
\usepackage{cutwin}
\usepackage{tocloft}
\usepackage{fancyhdr}
\newcommand{\doctitle}{Comprehensive \latex Symbol List} % Reusable
\title{The \doctitle}
\author{\person{Scott}{Pakin} \texttt{<
[email protected]>}%
\thanks{The original version of this document was written by
\person{David}{Carlisle}, with several additional tables provided
by \person{Alexander}{Holt}. See \vref{about-doc} for more
information about who did what.}}
\date{3 January 2024}
\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.
%%% * 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).
%%% * Reduce the amount of duplication, in particular with regard to
%%% large math fonts that all define \subset, \supset, \prec, \succ,
%%% etc. Perhaps include a canonical table then have other fonts
%%% refer back to that, showing samples only of more unique characters.
%%%
% Specify the document header and (empty) footer.
\pagestyle{fancy}
\fancyhead[L]{\scshape\nouppercase{\leftmark}}
\fancyhead[R]{\thepage\rule[-6pt]{0pt}{0pt}}
\fancyfoot[C]{}
\renewcommand{\headrulewidth}{1pt}
% Make index entries invoke \markboth for use in the header.
\newcommand*{\recordentry}[1]{#1\markboth{#1}{#1}}
% Limit the insertion of line breaks within URLs.
\def\UrlBreaks{}
\def\UrlBigBreaks{\do/}
% 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 "X" and "X>Y".
\newcommand{\subindex}[2]{\index{#1}\index{#1>#2}}
\newcommand{\ltsubindex}[2]{\ltindex{#1}\ltindex{#1>#2}}
% Index package names and hyperlink them to the CTAN package information.
% An optional argument of "index=false" suppresses indexing the package name.
% An optional argument of "pkg=<name>" uses package <name> for the CTAN
% hyperlink target.
% An optional argument of "link=<URL>" replaces the whole hyperlink with <URL>.
% An optional argument of "nolink" suppresses the hyperlink entirely.
% An optional argument of "fmt=<code>" typesets the package name using <code>.
% The package name must be pure text. Use "fmt=<code>" for special formatting.
% Define \pkgnameopts as the default options for all subsequent calls.
% Use \setpkgnameopts to set the default options for a specific package.
\def\equalsign{=}
\newcommand*{\catalogueURL}[1]{%
https://www.ctan.org/pkg/#1%
}
\makeatletter
\define@key{pkgname}{pkg}{\def\pkglinktarget{#1}}
\define@key{pkgname}{link}{\def\catalogueURL##1{#1}}
\define@key{pkgname}{nolink}[true]{\def\pkglink##1{\pkgnamefmt{##1}}}
\define@key{pkgname}{index}[true]{\csname pkgidx#1\endcsname}
\define@key{pkgname}{fmt}{\def\pkgnamefmt##1{#1}}
\def\pkgnameopts{}
\newcommand{\setpkgnameopts}[2]{%
\expandafter\gdef\csname pkgnameopts@#1\endcsname{#2}%
}
\makeatother
\newif\ifpkgidx
\newcommand{\pkgname}[2][]{%
\bgroup
\def\pkglinktarget{#2}%
\def\pkgnamefmt##1{\textsf{##1}}%
\def\pkglink##1{\href{\catalogueURL{\pkglinktarget}}{\pkgnamefmt{##1}}}%
\pkgidxtrue
\edef\next{\noexpand\setkeys{pkgname}{\pkgnameopts}}\next
\expandafter\ifx\csname pkgnameopts@#2\endcsname\relax
\else
\edef\next{\noexpand\setkeys{pkgname}{\csname pkgnameopts@#2\endcsname}}%
\next
\fi
\setkeys{pkgname}{#1}%
\pkglink{#2}%
\ifpkgidx
\def\equalsign{!=}% % Escape the equals sign for makeindex's sake.
\index{#2=\pkglink{#2} (package)}%
\index{packages>#2=\pkglink{#2}}%
\fi
\egroup
}
% Index some other logical styles.
\newcommand{\optname}[2]{%
\textsf{#2}%
\index{#2=\textsf{#2} (\pkgname[index!=false]{#1} package option)}%
\index{package options>#2=\textsf{#2} (\pkgname[index!=false]{#1})}}
\newcommand{\filename}[1]{%
\texttt{#1}%
\index{#1=\texttt{#1} (file)}}
\newcommand{\hfilename}[2]{%
\href{#1}{\texttt{#2}}%
\index{#2=\noexpand\href{#1}{\noexpand\texttt{#2}} (file)}}
\newcommand{\fileext}[1]{%
\texttt{.#1}%
\index{#1 files=\texttt{.#1} files}%
\index{file extensions>#1=\texttt{.#1}}%
}
\newcommand{\PSfont}[1]{%
#1%
\index{#1 (font)}%
\index{fonts>#1}%
}
\DeclareRobustCommand{\person}[2]{#1\index{#2, #1} #2}
% Support searching of "#1" as if it were written in plain text as "#2".
\newcommand{\searchAs}[2]{%
\texorpdfstring{%
\BeginAccSupp{ActualText={#2}}%
#1%
\EndAccSupp{}%
}{%
#2%
}%
}
% Index common words and phrases.
\DeclareRobustCommand{\latex}{%
\searchAs{\LaTeX}{LaTeX}%
\index{LaTeX=\string\searchAs{\string\LaTeX}{LaTeX}}\xspace
}
\DeclareRobustCommand{\latexEinternal}{%
% Split the two space-separated terms for Acrobat's benefit. (Okular
% seems okay with ActualText containing spaces.) Rather than an epsilon
% we use an "e" in "LaTeX 2e" because epsilon seems harder to search
% consistently across platforms with different native character
% encodings.
\searchAs{\LaTeX}{LaTeX}%
\texorpdfstring{\kern.15em}{ }%
\searchAs{2$_{\textstyle\varepsilon}$}{2e}%
}
\newcommand{\latexE}{%
\latexEinternal
\index{LaTeX2e=\noexpand\latexEinternal}\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%
\index{font encodings}%
\ifx\firstarg\empty
\else
\index{font encodings>\firstarg}%
\fi
}
\newcommand{\fntfam}[1][]{%
\def\firstarg{#1}%
font family%
\index{font families}%
\ifx\firstarg\empty
\else
\index{font families>\firstarg=\string\texttt{\firstarg}}%
\fi
}
\newcommand{\selftex}{\hfilename{
http://mirror.ctan.org/info/symbols/comprehensive/source/symbols.tex}{symbols.tex}\xspace}
\newcommand{\fontdefdtx}{\hfilename{
http://mirror.ctan.org/macros/latex/base/fontdef.dtx}{fontdef.dtx}\xspace}
\newcommand{\testfonttex}{\hfilename{
http://mirror.ctan.org/macros/plain/base/testfont.tex}{testfont.tex}\xspace}
\newcommand{\TUGboat}{%
\href{
http://www.tug.org/TUGboat/}{TUGboat}%
\index{TUGboat=\href{
http://www.tug.org/TUGboat/}{TUGboat}}\xspace
}
\newcommand{\thanhhanthe}{Th\`anh, H\`an Th\diatop[\'|\^e]} % "|" confuses MakeIndex.
\newcommand{\postscript}{PostScript\index{PostScript}\xspace}
\newcommand{\ascii}{ASCII\index{ASCII}\xspace}
\newcommand{\utfviii}{\mbox{UTF-8}\index{UTF-8}\xspace}
\DeclareRobustCommand{\xetexInternal}{%
\mbox{X\lower0.5ex\hbox{\kern-0.15em\reflectbox{E}}\kern-0.1em\TeX}}
\newcommand{\xetex}{%
\searchAs{\xetexInternal}{XeTeX}%
\index{XeTeX=\string\searchAs{\string\xetexInternal}{XeTeX}}\xspace
}
\DeclareRobustCommand{\xelatexInternal}{%
\mbox{X\lower0.5ex\hbox{\kern-0.15em\reflectbox{E}}\kern-0.1em\LaTeX}}
\newcommand{\xelatex}{%
\searchAs{\xelatexInternal}{XeLaTeX}%
\index{XeLaTeX=\string\searchAs{\string\xelatexInternal}{XeLaTeX}}\xspace
}
\newcommand{\lualatex}{%
\searchAs{Lua\LaTeX}{LuaLaTeX}%
\index{LuaLaTeX=\string\searchAs{Lua\string\LaTeX}{LuaLaTeX}}\xspace
}
\newcommand{\pdflatex}{%
\searchAs{pdf\LaTeX}{pdfLaTeX}%
\index{pdfLaTeX=\string\searchAs{pdf\string\LaTeX}{pdfLaTeX}}\xspace
}
\newcommand{\italic}[1][italic]{#1\index{italic}}
\newcommand{\TikZ}{\pkgname{TikZ}}
\DeclareRobustCommand{\TikZinternal}{\searchAs{Ti\textit{k}Z}{TikZ}}
\setpkgnameopts{TikZ}{pkg=pgf,fmt={\noexpand\TikZinternal}}
\newcommand{\PSTricks}{\pkgname{PSTricks}}
\setpkgnameopts{PSTricks}{pkg=pstricks-base}
\newcommand{\rawtables}{Raw\index{Raw Font Tables} Font Tables}
% 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=\href{
https://www.ctan.org/}{Comprehensive \string\TeX{} Archive Network}}%
}
\newcommand{\CTAN}{\href{
https://www.ctan.org/}{CTAN}\idxCTAN\xspace}
\newcommand{\CTANfull}{Comprehensive\idxCTAN\ \TeX\ Archive Network\xspace}
\newcommand{\TeXFAQ}[1]{\url{
http://www.texfaq.org/FAQ-#1.html}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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 %
% \restoresymbol{yyy}{XXX}, which renames \origXXX back to \XXX and %
% defines a new command, \yyyXXX, which corresponds to the most recently %
% loaded version of \XXX. %
% %
% This implementation of \savesymbol and \restoresymbol was copied from %
% the savesym package, which started with symbol.tex's old definitions %
% of those macros and improved upon them. However, \renamerobustsymbol %
% and \ifnotsavedsym are new to this set. %
% %
% Save a symbol that we know is going to get redefined.
\newcommand*{\savesymbol}[1]{%
\expandafter\let\csname orig#1\expandafter\endcsname\csname#1\endcsname
\expandafter\let\csname #1\endcsname\relax
}
% Restore a previously saved symbol, and rename the current one.
\newcommand*{\restoresymbol}[2]{%
\expandafter\global\expandafter\let\csname#1#2\expandafter\endcsname%
\csname#2\endcsname
\expandafter\global\expandafter\let\csname#2\expandafter\endcsname%
\csname orig#2\endcsname
}
% Rename a robust command.
\newcommand*{\renamerobustsymbol}[2]{%
\expandafter\let\expandafter\origrealcommand
\csname #2\space\endcsname
\expandafter\global\expandafter\let\csname#1#2\endcsname=\origrealcommand
}
% Test if a symbol is not saved.
\makeatletter
\def\ifnotsavedsym@helper#1#2!{\expandafter\ifx\csname orig#2\endcsname\relax}
\newcommand*{\ifnotsavedsym}[1]{%
\expandafter\ifnotsavedsym@helper\string#1!%
}
\makeatother
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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
% For debugging purposes we define a switch that enables us to toggle
% on and off the loading of packages.
\newif\ifloadpackages
\loadpackagestrue
% \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. \IfPackageFileExists
% is the same as \IfStyFileExists except that it separates the package
% name from a file within the package (not necessarily a .sty file) for
% which to search.
\makeatletter
\newcommand{\missingpkgs}{}
\newcommand{\foundpkgs}{}
\newcommand{\if@sty@file@exists@star}[3]{%
\ifloadpackages
\IfFileExists{#1.sty}{#2}{#3}%
\else
#3%
\fi
}
\newcommand{\if@sty@file@exists}[3]{%
\ifloadpackages
\IfFileExists{#1.sty}%
{#2\@cons\foundpkgs{{#1}}}%
{#3\completefalse\@cons\missingpkgs{{#1}}}%
\else
#3\completefalse\@cons\missingpkgs{{#1}}%
\fi
}
\newcommand{\IfStyFileExists}{%
\@ifstar{\if@sty@file@exists@star}{\if@sty@file@exists}%
}
\newcommand{\IfPackageFileExists}[4]{%
\ifloadpackages
\IfFileExists{#2}%
{#3\@cons\foundpkgs{{#1}}}%
{#4\completefalse\@cons\missingpkgs{{#1}}}%
\else
#4\completefalse\@cons\missingpkgs{{#1}}%
\fi
}
\makeatother
% We get a few packages for free.
\makeatletter
\@cons\foundpkgs{{textcomp}}
\@cons\foundpkgs{{latexsym}}
\makeatother
\newcommand{\TC}{\pkgname{textcomp}}
\setpkgnameopts{latexsym}{link=
https://www.ctan.org/pkg/latex-base}
% Typeset a string in various encodings.
\DeclareRobustCommand*{\encone}[1]{{\fontencoding{T1}\selectfont#1}}
\DeclareRobustCommand*{\enctwoA}[1]{{\fontencoding{T2A}\selectfont#1}}
\DeclareRobustCommand*{\encfour}[1]{{\fontencoding{T4}\selectfont#1}}
\DeclareRobustCommand*{\encfive}[1]{{\fontencoding{T5}\selectfont#1}}
\DeclareRobustCommand*{\encgreek}[1]{{\fontencoding{LGR}\selectfont#1}}
% Various punctuation marks confuse makeindex when used directly.
\let\magicrbrack=]
\let\magicequal=\=
\DeclareRobustCommand{\magicequalname}{\texttt{\string\=}}
\DeclareRobustCommand{\magicvertname}{\texttt{|}}
\DeclareRobustCommand{\magicVertname}{\texttt{\string\|}}
\DeclareRobustCommand{\showmacron}{\blackacchack\=} % Can't index "=".
% Vertically center a text-mode symbol.
\newsavebox{\tvcbox}
\newcommand*{\textvcenter}[1]{%
\savebox{\tvcbox}{#1}%
\raisebox{0.5\dp\tvcbox}{\raisebox{-0.5\ht\tvcbox}{\usebox{\tvcbox}}}%
}
% Do the same work as \DeclareTextSymbol but only if the symbol is not
% already declared.
\let\origDeclareTextSymbol=\DeclareTextSymbol
\DeclareRobustCommand{\DeclareNewTextSymbol}[3]{%
\ifnotsavedsym{#1}%
\origDeclareTextSymbol{#1}{#2}{#3}%
\fi
}
% Do the same work as \DeclareTextCommand but only if the symbol is not
% already declared.
\let\origDeclareTextCommand=\DeclareTextCommand
\DeclareRobustCommand{\DeclareNewTextCommand}[3]{%
\ifnotsavedsym{#1}%
\origDeclareTextCommand{#1}{#2}{#3}%
\fi
}
% Define a helper function for \CLSL@fake@tdelim and \CLSL@fake@ddelim below.
\makeatletter
\def\CLSL@char@in@box#1{%
\setbox0=\hbox{\char#1}%
\hbox{%
\vrule width \wd0 height 0pt depth 0pt%
\vrule width 0pt height \ht0 depth \dp0%
\smash{\box0}%
}%
\vspace*{-1pt}% Why is this necessary?
}
\makeatother
% Construct a text-sized delimiter from its constituent characters.
\makeatletter
\DeclareRobustCommand{\CLSLfaketdelim}[3]{%
\begingroup
\offinterlineskip
\vbox{%
\halign{##\cr
\CLSL@char@in@box{#1}\cr % top
\CLSL@char@in@box{#2}\cr % mid
\CLSL@char@in@box{#3}\cr % bot
}%
}%
\endgroup
}
\makeatother
% Construct a display-sized delimiter from its constituent characters.
\makeatletter
\newcounter{CLSL@reps@left}
\DeclareRobustCommand{\CLSLfakeddelim}[5][2]{%
\begingroup
\offinterlineskip
\vbox to 4ex{%
\halign{##\cr
\CLSL@char@in@box{#2}\cr % top
\setcounter{CLSL@reps@left}{#1}%
\gdef\CLSL@reps{}
\loop
\g@addto@macro\CLSL@reps{\CLSL@char@in@box{#5}\cr}%
\addtocounter{CLSL@reps@left}{-1}%
\ifnum\c@CLSL@reps@left>0%
\repeat
\CLSL@reps % rep
\CLSL@char@in@box{#3}\cr % mid
\gdef\CLSL@reps{}
\loop
\g@addto@macro\CLSL@reps{\CLSL@char@in@box{#5}\cr}%
\addtocounter{CLSL@reps@left}{-1}%
\ifnum\c@CLSL@reps@left>0%
\repeat
\CLSL@reps % rep
\CLSL@char@in@box{#4}\cr % bot
}%
\vss
}%
\endgroup
}
\makeatother
% Given a math expression, a small accent character, and a large
% accent character, typeset the expression with the appropriate-sized
% accent above it.
\DeclareRobustCommand{\CLSLfakewidetopaccent}[6]{%
\setbox0=\hbox{\ensuremath{#1}}%
\setbox1=\hbox{\ensuremath{abc}}%
\mbox{\itshape#1}%
\ifdim\wd0<\wd1
\llap{\raisebox{#2}{\makebox[\wd0]{\usefont#6\char#3}}}%
\else
\llap{\raisebox{#4}{\makebox[\wd0]{\usefont#6\char#5}}}%
\fi
}
% Load a faked version of a package.
\newcommand{\fakeusepackage}[1]{%
\let\origProvidesPackage=\ProvidesPackage
\def\ProvidesPackage##1[##2]{\origProvidesPackage{##1}[##2]\endinput}
\usepackage{#1}
\let\ProvidesPackage=\origProvidesPackage
\usepackage{fake#1}
}
% Given "\command{argument}", mark underscores in <argument> as ordinary
% characters before invoking \command.
\makeatletter
\bgroup
\gdef\CLSLcleanarg#1{%
\begingroup
\catcode`_=12
\CLSLclean@helper#1
}
\gdef\CLSLclean@helper#1#2{\endgroup#1{#2}}
\egroup
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Redefine a few robust LaTeX commands as non-robust so they don't become
% dangling pointers when saved and restored as we load packages that redefine
% them.
\makeatletter
\renewcommand*{\rightleftharpoons}{\mathrel{\mathpalette\rlh@{}}}
\renewcommand*{\angle}{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
\not\mathrel{\mkern14mu}\crcr
\noalign{\nointerlineskip}
\mkern2.5mu\leaders\hrule \@height.34pt\hfill\mkern2.5mu\crcr}}}}
\makeatother
\newif\ifAMS
\newcommand\AMS{\pkgname{AMS}}
\setpkgnameopts{AMS}{pkg=amsfonts,fmt={\noexpand\AmS}}
\makeatletter
\IfStyFileExists{amssymb}
{\AMStrue
\savesymbol{angle} \savesymbol{rightleftharpoons}
\savesymbol{lefthapoondown} \savesymbol{rightharpoonup}
\savesymbol{iint} \savesymbol{iiint}
\savesymbol{iiiint} \savesymbol{idotsint}
\let\orig@ifstar=\@ifstar
\usepackage{amsmath}
\usepackage{amssymb}
\let\@ifstar=\orig@ifstar
\restoresymbol{AMS}{angle} \restoresymbol{AMS}{rightleftharpoons}
\restoresymbol{AMS}{lefthapoondown} \restoresymbol{AMS}{rightharpoonup}
\restoresymbol{AMS}{iint} \restoresymbol{AMS}{iiint}
\restoresymbol{AMS}{iiiint} \restoresymbol{AMS}{idotsint}
}
{
% 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}
\setpkgnameopts{euscript}{pkg=amsfonts}
\newif\ifWASY
\newcommand\WASY{\pkgname{wasysym}}
\IfStyFileExists{wasysym}
{\WASYtrue
\savesymbol{lightning}
\savesymbol{Box}
\savesymbol{Diamond}
\savesymbol{clock}
\savesymbol{euro}
\usepackage{wasysym}
\restoresymbol{WASY}{lightning}
\restoresymbol{WASY}{Box}
\restoresymbol{WASY}{Diamond}
\restoresymbol{WASY}{clock}
\restoresymbol{WASY}{euro}
\newcommand{\wasytextint}[1]{%
\textwasy{\setbox0=\hbox{\char##1}\raisebox{0.5ex}{\raisebox{0.5\dp0}{\copy0}}}}
\DeclareRobustCommand{\WASYint}{%
\mathchoice{\wasytextint{"77}}{\wasytextint{"72}}{}{}}
\DeclareRobustCommand{\WASYiint}{%
\mathchoice{\wasytextint{"78}}{\wasytextint{"73}}{}{}}
\DeclareRobustCommand{\WASYiiint}{%
\mathchoice{\wasytextint{"79}}{\wasytextint{"74}}{}{}}
\DeclareRobustCommand{\WASYoint}{%
\mathchoice{\wasytextint{"7A}}{\wasytextint{"75}}{}{}}
\DeclareRobustCommand{\WASYoiint}{%
\mathchoice{\wasytextint{"7B}}{\wasytextint{"76}}{}{}}
}
{}
\newif\ifPI
\newcommand\PI{\pkgname{pifont}}
\setpkgnameopts{pifont}{pkg=psnfss}
\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}
{\usepackage{marvosym}[2011/07/20] % New symbols added with this version
\global\MARVtrue
\@ifundefined{Denarius} % \Denarius is a newer symbol.
{\global\MARVfalse}
{}
\@ifundefined{MVRightarrow} % \MVRightarrow is an even newer symbol.
{\global\MARVfalse}
{}
\@ifundefined{MVLeftBracket} % \MVLeftBracket is a still newer symbol.
{\global\MARVfalse}
{}
}
{}
\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}
\DeclareRobustCommand{\allCubes}{%
\Cube{1}~%
\Cube{2}~%
\Cube{3}~%
\Cube{4}~%
\Cube{5}~%
\Cube{6}%
}
}
{}
\newif\ifTIPA
\newcommand\TIPA{\pkgname{tipa}}
\IfStyFileExists{tipa}
{\TIPAtrue\usepackage[safe]{tipa}}
{}
\newif\ifTIPX
\newcommand\TIPX{\pkgname{tipx}}
\setpkgnameopts{tipx}{pkg=tipa}
\IfStyFileExists{tipx}
{\TIPXtrue\usepackage{tipx}}
{}
\newif\ifXIPA
\newcommand\XIPA{\pkgname{extraipa}}
\setpkgnameopts{extraipa}{pkg=tipa}
\IfStyFileExists{extraipa}
{\XIPAtrue\usepackage{extraipa}}
{}
% 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
[email protected]\endcsname{%
\csname
[email protected]\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}}
{}
\newif\ifMETRE
\newcommand\METRE{\pkgname{metre}}
\IfStyFileExists{metre}
{\METREtrue
\savesymbol{breve}
\newcommand{\breve}{PLACEHOLDER FOR RENEWCOMMAND}
\usepackage{metre}
\restoresymbol{METRE}{breve}
%
\DeclareRobustCommand{\METREantidiplestar}{\antidiple*}
\DeclareRobustCommand{\METREantidiple}{\antidiple}
\DeclareRobustCommand{\METREdiplestar}{\diple*}
\DeclareRobustCommand{\METREdiple}{\diple}
\DeclareRobustCommand{\METREobelusstar}{\obelus*}
\DeclareRobustCommand{\METREobelus}{\obelus}
\DeclareRobustCommand{\METRErespondens}{\respondens}
\DeclareRobustCommand{\METREterminusstar}{\terminus*}
\DeclareRobustCommand{\METREterminus}{\terminus}
%
\DeclareRobustCommand{\METREAntidiplestar}{\Antidiple*}
\DeclareRobustCommand{\METREAntidiple}{\Antidiple}
\DeclareRobustCommand{\METREDiplestar}{\Diple*}
\DeclareRobustCommand{\METREDiple}{\Diple}
\DeclareRobustCommand{\METREObelusstar}{\Obelus*}
\DeclareRobustCommand{\METREObelus}{\Obelus}
\DeclareRobustCommand{\METRERespondens}{\Respondens}
\DeclareRobustCommand{\METRETerminusstar}{\Terminus*}
\DeclareRobustCommand{\METRETerminus}{\Terminus}
}
{}
% 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]{}
% Prevent txfonts from defining any existing symbols.
\let\origDeclareTextSymbol=\DeclareTextSymbol
\let\DeclareTextSymbol=\DeclareNewTextSymbol
% Load txfonts.
\savesymbol{angle} \savesymbol{rightleftharpoons}
\savesymbol{textcent} \savesymbol{textsterling}
\savesymbol{L} \savesymbol{l} \savesymbol{r}
\savesymbol{succapprox} \savesymbol{precapprox} \savesymbol{Perp}
\usepackage{txfonts}
\restoresymbol{TX}{angle} \restoresymbol{TX}{rightleftharpoons}
\restoresymbol{TX}{succapprox} \restoresymbol{TX}{precapprox}
\restoresymbol{TX}{Perp}
% Restore the old font commands.
\global\let\DeclareTextSymbol=\origDeclareTextSymbol
\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, \mathcent, \mathsterling, and \r the
% only symbols that get screwed up?
\DeclareTextSymbol{\textcent}{TS1}{162}
\renewcommand{\mathcent}{\mbox{\usefont{OT1}{txr}{m}{n}\char"A2}}
\renewcommand{\mathsterling}{\mbox{\textsterling}}
\newcommand{\TXmathsterling}{\mbox{\usefont{OT1}{txr}{m}{n}\char"A3}}
\DeclareTextAccent{\r}{OT1}{23}
}
{}
\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]{%
\let\mathabx@undefine=\@gobble % Undefining symbols causes all sorts of problems for us.
\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}
\savesymbol{dddot} \savesymbol{ddddot}
\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}
\restoresymbol{ABX}{dddot} \restoresymbol{ABX}{ddddot}
}
{}
\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
% Ensure that \ABXwidering invokes \ABXwideparen, not \wideparen.
\def\ABXwidering#1{\ring{\ABXwideparen{#1}}}
% 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}}
\setpkgnameopts{fclfont}{pkg=fc}
\IfStyFileExists{fclfont}
{\FCtrue
\let\origlbrace=\{
\let\origrbrace=\}
\let\origbar=\|
\let\origdollar=\$
\let\origspace=\_
\let\origS=\S
\let\origpounds=\pounds
\input{t4enc.def}
\DeclareTextAccent{\FCbar}{T4}{'277}% single universal accent
\global\let\{=\origlbrace
\global\let\}=\origrbrace
\global\let\|=\origbar
\global\let\$=\origdollar
\global\let\_=\origspace
\global\let\S=\origS
\global\let\pounds=\origpounds
\let\origtextsterling=\textsterling
\gdef\textsterling{{\fontencoding{TS1}\selectfont\origtextsterling}}
}
{}
% 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{comment}
\usepackage{skak}[2008/10/09]
\renamerobustsymbol{SKAK}{etc}
\restoresymbol{SKAK}{comment}
\let\FF=\relax
}
{}
\newif\ifASCII
\newcommand\ASCII{\pkgname{ascii}}
\IfStyFileExists{ascii}
{\ASCIItrue
\savesymbol{HT}
\usepackage{ascii}
\restoresymbol{ascii}{HT}
}
{}
\newif\ifARK % ark10 and dingbat fonts
\newcommand\ARK{\pkgname{dingbat}}
\IfStyFileExists{dingbat}
{\ARKtrue
\savesymbol{checkmark}
\usepackage{dingbat}
\restoresymbol{ARK}{checkmark}
\DeclareRobustCommand{\ARKlargepencil}{\largepencil\rule{0pt}{7ex}}
}
{}
\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{\SKULLskull}{{\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}}}
{}
% To avoid wasting a math alphabet and preventing the bigints package
% from scaling integral sizes, we reimplement the entire yhmath
% package in terms of text fonts.
\newif\ifYH
\newcommand\YH{\pkgname{yhmath}}
\makeatletter
\IfStyFileExists{yhmath}
{\YHtrue
\def\adots{\mathinner{\mkern2mu\raise\p@\hbox{.}
\mkern2mu\raise4\p@\hbox{.}\mkern1mu
\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern1mu}}
\newcommand{\YHwideparen}[1]{%
\rlap{\raisebox{3pt}{\kern1pt\usefont{U}{yhex}{m}{n}\char"F6}}{##1}}
\newcommand{\YHwidering}[1]{\overset{\smash{\lower1.333ex\hbox{$%
\displaystyle\ring{}$}}}{\YHwideparen{##1}}}
\newcommand{\YHwidetriangle}[1]{%
\rlap{\raisebox{3pt}{\kern1pt\usefont{U}{yhex}{m}{n}\char"E9}}{##1}}
\newcommand{\YHwidetilde}[1]{%
\rlap{\raisebox{3pt}{\kern1pt\usefont{U}{yhex}{m}{n}\char"DD}}{##1}}
\newcommand{\YHwidehat}[1]{%
\rlap{\raisebox{3pt}{\kern1pt\usefont{U}{yhex}{m}{n}\char"D3}}{##1}}
}
{}
\ifYH
\DeclareFontFamily{U}{yhex}{}{}
\DeclareFontShape{U}{yhex}{m}{n}{<-> sfixed * yhcmex10}{}
\fi
\makeatother
% 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
\savesymbol{ddots}
\savesymbol{vdots}
\savesymbol{iddots}
\savesymbol{dddot}
\savesymbol{ddddot}
\usepackage{mathdots}
\restoresymbol{MDOTS}{ddots}
\restoresymbol{MDOTS}{vdots}
\restoresymbol{MDOTS}{iddots}
\restoresymbol{MDOTS}{dddot}
\restoresymbol{MDOTS}{ddddot}
}
{}
\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
[email protected]\endcsname{%
\csname
[email protected]\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}{eur}{m}{n}\char##4}}%
}
\renewcommand{\SetSymbolFont}[6]{}
\usepackage[Euler]{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}}
\makeatletter
\ifAMS
\IfStyFileExists{overrightarrow}
{\ORAtrue
\savesymbol{Rightarrowfill@}
\usepackage{overrightarrow}
\restoresymbol{ORA}{Rightarrowfill@}
\renewcommand{\Overrightarrow}{\mathpalette{\overarrow@\ORARightarrowfill@}}
}
{}
\fi % AMS test
\makeatother
\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}}
{}
\newif\ifABRACES
\newcommand\ABRACES{\pkgname{abraces}}
\IfStyFileExists{abraces}
{\ABRACEStrue\usepackage{abraces}}
{}
\newif\ifMTOOLS
\newcommand\MTOOLS{\pkgname{mathtools}}
\IfStyFileExists{mathtools}
{\MTOOLStrue
\savesymbol{xleftrightarrow} \savesymbol{xLeftarrow}
\savesymbol{xRightarrow} \savesymbol{xLeftrightarrow}
\savesymbol{xrightharpoondown} \savesymbol{xrightharpoonup}
\savesymbol{xleftharpoondown} \savesymbol{xleftharpoonup}
\savesymbol{xleftrightharpoons} \savesymbol{xrightleftharpoons}
\savesymbol{xhookleftarrow} \savesymbol{xhookrightarrow}
\savesymbol{xmapsto} \savesymbol{underbracket}
\savesymbol{overbracket} \savesymbol{lparen} \savesymbol{rparen}
\savesymbol{dblcolon} \savesymbol{coloneqq} \savesymbol{Coloneqq}
\savesymbol{coloneq} \savesymbol{Coloneq} \savesymbol{eqqcolon}
\savesymbol{Eqqcolon} \savesymbol{eqcolon} \savesymbol{Eqcolon}
\savesymbol{colonapprox} \savesymbol{Colonapprox}
\savesymbol{colonsim} \savesymbol{Colonsim} \savesymbol{overbrace}
\savesymbol{underbrace}
% The mathtools package delays the definitions of some of its symbols
% to the \begin{document}. Here we paste in the problematically
% delayed definitions so \savesymbol and \restoresymbol behave as
% expected.
\usepackage[donotfixamsmathbugs]{mathtools}
\providecommand*\dblcolon{\vcentcolon\mathrel{\mkern-.9mu}\vcentcolon}
\providecommand*\coloneqq{\vcentcolon\mathrel{\mkern-1.2mu}=}
\providecommand*\Coloneqq{\dblcolon\mathrel{\mkern-1.2mu}=}
\providecommand*\coloneq{\vcentcolon\mathrel{\mkern-1.2mu}\mathrel{-}}
\providecommand*\Coloneq{\dblcolon\mathrel{\mkern-1.2mu}\mathrel{-}}
\providecommand*\eqqcolon{=\mathrel{\mkern-1.2mu}\vcentcolon}
\providecommand*\Eqqcolon{=\mathrel{\mkern-1.2mu}\dblcolon}
\providecommand*\eqcolon{\mathrel{-}\mathrel{\mkern-1.2mu}\vcentcolon}
\providecommand*\Eqcolon{\mathrel{-}\mathrel{\mkern-1.2mu}\dblcolon}
\providecommand*\colonapprox{\vcentcolon\mathrel{\mkern-1.2mu}\approx}
\providecommand*\Colonapprox{\dblcolon\mathrel{\mkern-1.2mu}\approx}
\providecommand*\colonsim{\vcentcolon\mathrel{\mkern-1.2mu}\sim}
\providecommand*\Colonsim{\dblcolon\mathrel{\mkern-1.2mu}\sim}
\restoresymbol{MTOOLS}{xleftrightarrow}
\restoresymbol{MTOOLS}{xLeftarrow}
\restoresymbol{MTOOLS}{xRightarrow}
\restoresymbol{MTOOLS}{xLeftrightarrow}
\restoresymbol{MTOOLS}{xrightharpoondown}
\restoresymbol{MTOOLS}{xrightharpoonup}
\restoresymbol{MTOOLS}{xleftharpoondown}
\restoresymbol{MTOOLS}{xleftharpoonup}
\restoresymbol{MTOOLS}{xleftrightharpoons}
\restoresymbol{MTOOLS}{xrightleftharpoons}
\restoresymbol{MTOOLS}{xhookleftarrow}
\restoresymbol{MTOOLS}{xhookrightarrow}
\restoresymbol{MTOOLS}{xmapsto}
\restoresymbol{MTOOLS}{underbracket}
\restoresymbol{MTOOLS}{overbracket} \restoresymbol{MTOOLS}{lparen}
\restoresymbol{MTOOLS}{rparen} \restoresymbol{MTOOLS}{dblcolon}
\restoresymbol{MTOOLS}{coloneqq} \restoresymbol{MTOOLS}{Coloneqq}
\restoresymbol{MTOOLS}{coloneq} \restoresymbol{MTOOLS}{Coloneq}
\restoresymbol{MTOOLS}{eqqcolon} \restoresymbol{MTOOLS}{Eqqcolon}
\restoresymbol{MTOOLS}{eqcolon} \restoresymbol{MTOOLS}{Eqcolon}
\restoresymbol{MTOOLS}{colonapprox}
\restoresymbol{MTOOLS}{Colonapprox}
\restoresymbol{MTOOLS}{colonsim} \restoresymbol{MTOOLS}{Colonsim}
\restoresymbol{MTOOLS}{overbrace} \restoresymbol{MTOOLS}{underbrace}
% Some of the above are defined in terms of \dblcolon. At the time
% of this writing it doesn't seem like any other package uses the
% name \dblcolon so it should be safe to retain its mathtools
% definition.
\let\dblcolon=\MTOOLSdblcolon
}
{}
% 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}}
\newif\ifPHAI
\newcommand\PHAI{\pkgname{phaistos}}
\IfStyFileExists{phaistos}
{\PHAItrue\usepackage{phaistos}}
{}
% The latest version of arcs, dated 2004/05/09, doesn't work with the
% latest version of relsize, dated 2013/03/29. We therefore load a
% version that was patched according to Michael Sharpe's suggestion
% (cf.
http://tug.org/pipermail/xetex/2013-August/024674.html).
\newif\ifARCS
\newcommand\ARCS{\pkgname{arcs}}
\IfStyFileExists{arcs}
{\ARCStrue
\fakeusepackage{arcs}
\def\RSpercentTolerance{5} % Prevent \overarc and \underarc from hanging.
}
{}
% If we have t5enc.def, use it and its prerequisite definitions directly
% instead of loading vietnam.sty or dblaccnt.sty, as these affect other
% things in the document.
\newif\ifVIET
\newcommand\VIET{\pkgname{vntex}}
\setpkgnameopts{vietnam}{pkg=vntex}
\makeatletter
\IfStyFileExists{vietnam}
{\VIETtrue\input{t5enc.def}}
{}
\makeatother
\newif\ifPHONFC
\newcommand\PHONFC{\pkgname{t4phonet}}
\setpkgnameopts{t4phonet}{pkg=fc}
\makeatletter
\IfStyFileExists{t4phonet}
{\PHONFCtrue
\let\origDeclareTextSymbol=\DeclareTextSymbol
\let\origDeclareTextAccent=\DeclareTextAccent
\renewcommand{\DeclareTextSymbol}[3]{%
\edef\PHONFCsym{\expandafter\@gobble\string##1}%
\expandafter\origDeclareTextSymbol\expandafter{%
\csname PHONFC\PHONFCsym\endcsname}{##2}{##3}%
}
\renewcommand{\DeclareTextAccent}[3]{%
\edef\PHONFCsym{\expandafter\@gobble\string##1}%
\expandafter\origDeclareTextAccent\expandafter{%
\csname PHONFC\PHONFCsym\endcsname}{##2}{##3}%
}
\usepackage{t4phonet}
\let\DeclareTextSymbol=\origDeclareTextSymbol
\let\DeclareTextAccent=\origDeclareTextAccent
}
{}
\makeatother
\newif\ifHOPO
\newcommand\HOPO{\pkgname{holtpolt}}
\IfStyFileExists{holtpolt}
{\HOPOtrue\usepackage{holtpolt}}
{}
\newif\ifSMTR
\newcommand\SMTR{\pkgname{semtrans}}
\IfStyFileExists{semtrans}
{\SMTRtrue
% semtrans's use of DeclareMathSymbol screws up \lhook and \rhook.
\let\origDeclareMathSymbol=\DeclareMathSymbol
\renewcommand{\DeclareMathSymbol}[4]{}
\savesymbol{U}
\savesymbol{D}
\savesymbol{T}
\usepackage{semtrans}
\restoresymbol{smtr}{U}
\restoresymbol{smtr}{D}
\restoresymbol{smtr}{T}
\let\DeclareMathSymbol=\origDeclareMathSymbol
}
{}
\newif\ifDICT
\newcommand\DICT{\pkgname{dictsym}}
\IfStyFileExists{dictsym}
{\DICTtrue
\ifpdf
% Bug workaround. See
%
https://tex.stackexchange.com/questions/615300/pdflatex-builtin-glyph-names-is-empty/634975#634975
\pdfmapline{=dictsym DictSym <dictsym.pfb}
\fi
\usepackage{dictsym}
}
{}
\newif\ifEXTAR
\newcommand\EXTAR{\pkgname{extarrows}}
\IfStyFileExists{extarrows}
{\EXTARtrue
\savesymbol{xLeftrightarrow}
\savesymbol{xleftrightarrow}
\usepackage{extarrows}
\restoresymbol{EXTAR}{xLeftrightarrow}
\restoresymbol{EXTAR}{xleftrightarrow}
}
{}
\newif\ifPROTO
\newcommand\PROTO{\pkgname{protosem}}
\IfStyFileExists{protosem}
{\PROTOtrue\usepackage{protosem}}
{}
\newif\ifHARM
\newcommand\HARM{\pkgname{harmony}}
\IfStyFileExists{harmony}
{\HARMtrue
\let\orignewcommand=\newcommand
\let\newcommand=\DeclareRobustCommand
\savesymbol{HH}
\usepackage{harmony}
\restoresymbol{harm}{HH}
\let\newcommand=\orignewcommand
}
{}
\newif\ifHIER
\newcommand\HIER{\pkgname{hieroglf}}
\IfStyFileExists{hieroglf}
{\HIERtrue
\savesymbol{HF}
\usepackage{hieroglf}
\restoresymbol{HIER}{HF}
}
{}
\newif\ifCCLIC
\newcommand\CCLIC{\pkgname{cclicenses}}
\IfStyFileExists{cclicenses}
{\CCLICtrue
\usepackage{cclicenses}
% cclicenses doesn't get along with textcomp's remapping of
% \textcircled to the TS1 font encoding. Mapping it back doesn't
% _seem_ to cause any problems.
\DeclareTextAccentDefault{\textcircled}{OMS}
}
{}
% The mathdesign package primarily redefines all of the existing
% mathematical symbols and is therefore a pain to load. Hence, we just
% check if it exists and then manually define all of the symbols we care
% about (i.e., those offered only by mathdesign).
\newif\ifMDES
\newcommand\MDES{\pkgname{mathdesign}}
\IfStyFileExists{mathdesign}
{\MDEStrue
% Symbols from mdputrma
\DeclareFontEncoding{MDA}{}{}
\DeclareFontFamily{MDA}{mdput}{}
\DeclareFontShape{MDA}{mdput}{m}{n}{<-> mdputrma}{}
\newcommand*{\textMDESa}[1]{{\usefont{MDA}{mdput}{m}{n}##1}}
\DeclareRobustCommand{\MDESudtimes}{\textMDESa{\char"5D}}
\DeclareRobustCommand{\MDESutimes}{\textMDESa{\char"5E}}
\DeclareRobustCommand{\MDESdtimes}{\textMDESa{\char"5F}}
\DeclareRobustCommand{\MDESsmallin}{\textMDESa{\char"0}}
\DeclareRobustCommand{\MDESsmallowns}{\textMDESa{\char"1}}
\DeclareRobustCommand{\MDESnotsmallin}{\textMDESa{\char"2}}
\DeclareRobustCommand{\MDESnotsmallowns}{\textMDESa{\char"3}}
\DeclareRobustCommand{\MDESrightangle}{\textMDESa{\char"4}}
% Symbols from mdputrmb
\DeclareFontEncoding{MDB}{}{}
\DeclareFontFamily{MDB}{mdput}{}
\DeclareFontShape{MDB}{mdput}{m}{n}{<-> mdputrmb}{}
\newcommand*{\textMDESb}[1]{{\usefont{MDB}{mdput}{m}{n}##1}}
\newcommand*{\MDESintsm}[1]{\raisebox{2ex}{\textMDESb{\char##1}}}
\newcommand*{\MDESint}[1]{\raisebox{3ex}{\textMDESb{\char##1}}}
\DeclareRobustCommand{\MDESintclockwisesm}{\MDESintsm{"80}}
\DeclareRobustCommand{\MDESintclockwise}{\MDESint{"81}}
\DeclareRobustCommand{\MDESointctrclockwisesm}{\MDESintsm{"82}}
\DeclareRobustCommand{\MDESointctrclockwise}{\MDESint{"83}}
\DeclareRobustCommand{\MDESointclockwisesm}{\MDESintsm{"84}}
\DeclareRobustCommand{\MDESointclockwise}{\MDESint{"85}}
\DeclareRobustCommand{\MDESoiintsm}{\MDESintsm{"86}}
\DeclareRobustCommand{\MDESoiint}{\MDESint{"87}}
\DeclareRobustCommand{\MDESoiiintsm}{\MDESintsm{"88}}
\DeclareRobustCommand{\MDESoiiint}{\MDESint{"89}}
% Symbols from mdputr7y
\DeclareFontFamily{OMS}{mdput}{}
\DeclareFontShape{OMS}{mdput}{m}{n}{<-> mdputr7y}{}
\newcommand*{\textMDESy}[1]{{\usefont{OMS}{mdput}{m}{n}##1}}
\DeclareRobustCommand{\MDESin}{\textMDESy{\char"32}}
\DeclareRobustCommand{\MDESowns}{\textMDESy{\char"33}}
\DeclareRobustCommand{\MDESnotin}{\textMDESy{\char"36}\textMDESy{\char"32}}
% Symbols from mdputr7v
\DeclareFontFamily{OMX}{mdput}{}
\DeclareFontShape{OMX}{mdput}{m}{n}{<-> mdputr7v}{}
\DeclareFontFamily{OMX}{mdbch}{}
\DeclareFontShape{OMX}{mdbch}{m}{n}{<-> mdbchr7v}{}
\DeclareFontFamily{OMX}{mdugm}{}
\DeclareFontShape{OMX}{mdugm}{m}{n}{<-> mdugmr7v}{}
\newcommand*{\textMDESv}[1]{{\usefont{OMX}{mdput}{m}{n}##1}}
\newbox\MDESwavebox
\DeclareRobustCommand{\MDESleftwavelet}{\textMDESv{\char"D0}}
\DeclareRobustCommand{\MDESleftwave}{%
\setbox\MDESwavebox=\hbox{\textMDESv{\char"D0}}
\raisebox{-1.5\dp\MDESwavebox}{\vbox to 4\dp\MDESwavebox{\cleaders\copy\MDESwavebox\vfill}}}
\DeclareRobustCommand{\MDESleftevawlet}{\textMDESv{\char"D1}}
\DeclareRobustCommand{\MDESleftevaw}{%
\setbox\MDESwavebox=\hbox{\textMDESv{\char"D1}}
\raisebox{-1.5\dp\MDESwavebox}{\vbox to 4\dp\MDESwavebox{\cleaders\copy\MDESwavebox\vfill}}}
% Symbols from mdputr8c
\DeclareRobustCommand{\MDEStexteuro}{{\usefont{TS1}{mdput}{m}{n}\char"BF}}
}
{}
% We care only about the "extra" symbols in arevmath. Hence, to save on
% math alphabets we load a faked version of the package that defines all
% the symbols as text characters.
\newif\ifAREV
\newcommand\AREV{\pkgname{arev}}
\IfStyFileExists{arev}
{\AREVtrue\fakeusepackage{arevmath}}
{}
% Aaarrrggghhh! MnSymbol conflicts with pretty much every mathematical
% symbol and, furthermore, defines most math alphabets than we can
% handle. The situation has gotten so bad that we replace MnSymbol.sty
% with a generated, "faked" version that uses exclusively text fonts
% and renames all symbols to avoid conflicts.
\newif\ifMNS
\newcommand\MNS{\pkgname{MnSymbol}}
\setpkgnameopts{MnSymbol}{pkg=mnsymbol}
\IfStyFileExists{MnSymbol}
{\MNStrue\fakeusepackage{MnSymbol}}
{}
% fdsymbol defines pretty much the same set of symbols as MnSymbol --
% and uses just as many math alphabets. Hence, we apply the same
% trick as above.
\newif\ifFDSYM
\newcommand\FDSYM{\pkgname{fdsymbol}}
\IfStyFileExists{fdsymbol}
{\FDSYMtrue\fakeusepackage{fdsymbol}}
{}
% boisik defines pretty much the same set of symbols as MnSymbol --
% and uses just as many math alphabets. Hence, we apply the same
% trick as above.
\newif\ifBSK
\newcommand\BSK{\pkgname{boisik}}
\IfStyFileExists{boisik}
{\BSKtrue\fakeusepackage{boisik}}
{}
% Manually define every symbol in cmll so we don't have to use any more
% math alphabets.
\newif\ifCMLL
\newcommand\CMLL{\pkgname{cmll}}
\IfStyFileExists{cmll}
{\CMLLtrue
\newcommand*{\textCMLL}[1]{{\usefont{U}{cmllr}{m}{n}##1}}
\DeclareRobustCommand{\CMLLparr}{\textCMLL{\char0}}
\DeclareRobustCommand{\CMLLshpos}{\textCMLL{\char1}}
\DeclareRobustCommand{\CMLLshneg}{\textCMLL{\char2}}
\DeclareRobustCommand{\CMLLshift}{\textCMLL{\char3}}
\DeclareRobustCommand{\CMLLcoh}{\textCMLL{\char4}}
\DeclareRobustCommand{\CMLLscoh}{\textCMLL{\char5}}
\DeclareRobustCommand{\CMLLincoh}{\textCMLL{\char6}}
\DeclareRobustCommand{\CMLLsincoh}{\textCMLL{\char7}}
\DeclareRobustCommand{\CMLLbigwith}{\raisebox{2ex}{\textCMLL{\char8}}}
\DeclareRobustCommand{\CMLLbigparr}{\raisebox{2ex}{\textCMLL{\char10}}}
\DeclareRobustCommand{\CMLLmultimapboth}{\textCMLL{\char12}}
\DeclareRobustCommand{\CMLLBot}{\textCMLL{\char13}}
\let\CMLLPerp=\CMLLBot
\DeclareRobustCommand{\CMLLsimbot}{\textCMLL{\char14}}
\let\CMLLsimperp=\CMLLsimbot
}
{}
\newif\ifXPFEIL
\newcommand\XPFEIL{\pkgname{extpfeil}}
\IfStyFileExists{extpfeil}
{\XPFEILtrue
% extpfeil tries to do a \RequirePackage of stmaryrd with
% conflicting options from what we used to load stmaryd. We
% therefore temporarily make \RequirePackage a no-op to prevent LaTeX
% from complaining.
\let\origRequirePackage=\RequirePackage
\renewcommand*{\RequirePackage}[2][]{}
\savesymbol{xlongequal}
\savesymbol{xmapsto}
\usepackage{extpfeil}
\restoresymbol{XPFEIL}{xlongequal}
\restoresymbol{XPFEIL}{xmapsto}
\let\RequirePackage=\origRequirePackage
}
{}
\newif\ifKEYS
\newcommand\KEYS{\pkgname{keystroke}}
\IfStyFileExists{keystroke}
{\KEYStrue
\savesymbol{Alt}
\savesymbol{End}
\usepackage{keystroke}
\restoresymbol{KEYS}{Alt}
\restoresymbol{KEYS}{End}
% \Tab and \BSpace's use of \reflectbox confuses our indexing code.
\DeclareRobustCommand{\keysTab}{\Tab}
\DeclareRobustCommand{\keysBSpace}{\BSpace}
}
{}
% We have no math alphabets left so we trick fge.sty into defining all of
% its characters in text mode.
\newif\ifFGE
\newcommand\FGE{\pkgname{fge}}
\makeatletter
\IfStyFileExists{fge}
{\FGEtrue
\let\origDeclareSymbolFont=\DeclareSymbolFont
\let\origDeclareMathSymbol=\DeclareMathSymbol
\renewcommand{\DeclareSymbolFont}[5]{}
\renewcommand{\DeclareMathSymbol}[4]{%
\newcommand{##1}{{\usefont{U}{##3}{m}{n}\char##4}}%
}
\usepackage{fge}
\newcommand*{\spiritusaccent}[2]{%
\leavevmode
\setbox0=\hbox{##2}%
\@tempdima=\ht0
\@tempdimb=\wd0
\box0\llap{%
\raisebox{\@tempdima}{%
\makebox[\@tempdimb]{\usefont{U}{fgerm}{m}{n}\char##1}%
}%
}%
}
\DeclareRobustCommand{\spiritusasperA}[1]{\spiritusaccent{"13}{##1}}
\DeclareRobustCommand{\spiritusasperB}[1]{\spiritusaccent{"14}{##1}}
\DeclareRobustCommand{\spirituslenisA}[1]{\spiritusaccent{"15}{##1}}
\DeclareRobustCommand{\spirituslenisB}[1]{\spiritusaccent{"16}{##1}}
\let\spirituslenis=\spirituslenisA
\let\spiritusasper=\spiritusasperA
\let\DeclareSymbolFont=\origDeclareSymbolFont
\let\DeclareMathSymbol=\origDeclareMathSymbol
}
{}
\makeatother
\newif\ifTURN
\newcommand\TURN{\pkgname{turnstile}}
\IfStyFileExists{turnstile}
{\TURNtrue\usepackage{turnstile}}
{}
\newif\ifSIMP
\newcommand\SIMP{\pkgname{simpsons}}
\IfStyFileExists{simpsons}
{\SIMPtrue
\usepackage{simpsons}
\let\origSimpson=\Simpson
\DeclareRobustCommand{\Simpson}{\origSimpson}
}
{}
\newif\ifEDICE
\newcommand\EDICE{\pkgname{epsdice}}
\IfStyFileExists{epsdice}
{\EDICEtrue
\usepackage{epsdice}
\let\origepsdice=\epsdice
\DeclareRobustCommand{\epsdice}[1]{\origepsdice{##1}}
\DeclareRobustCommand{\allepsdice}{%
\epsdice{1}%
\epsdice{2}%
\epsdice{3}%
\epsdice{4}%
\epsdice{5}%
\epsdice{6}%
}
}
{}
% feyn provides yet another math font for which we have no room.
% Fortunately, it's relatively easy to define all of its symbols in
% terms of a text font.
\newif\ifFEYN
\newcommand\FEYN{\pkgname{feyn}}
\IfStyFileExists{feyn}
{\FEYNtrue
\let\origProvidesPackage=\ProvidesPackage
\def\ProvidesPackage##1[##2]{\origProvidesPackage{##1}[##2]\endinput}
\savesymbol{filename}
\usepackage{feyn}
\restoresymbol{FEYN}{filename}
\let\ProvidesPackage=\origProvidesPackage
\DeclareFontFamily{OMS}{textfeyn}{\skewchar\font'000}
\DeclareFontShape{OMS}{textfeyn}{m}{n}{%
<-10.5>feyntext10%
<10.5-11.5>feyntext11%
<11.5->feyntext12%
}{}
\DeclareRobustCommand{\feyn}[1]{{\usefont{OMS}{textfeyn}{m}{n}##1}}
\DeclareRobustCommand{\wfermion}{\feyn{\char"64}}
\DeclareRobustCommand{\hfermion}{\feyn{\char"6B}}
\DeclareRobustCommand{\shfermion}{\feyn{\char"6C}}
\DeclareRobustCommand{\whfermion}{\feyn{\char"6D}}
\DeclareRobustCommand{\gvcropped}{\feyn{\char"07}}
\DeclareRobustCommand{\bigbosonloop}{\feyn{\char"7B}}
\DeclareRobustCommand{\smallbosonloop}{\feyn{\char"7C}}
\DeclareRobustCommand{\bigbosonloopA}{\feyn{\char"5B}}
\DeclareRobustCommand{\smallbosonloopA}{\feyn{\char"5C}}
\DeclareRobustCommand{\bigbosonloopV}{\feyn{\char"1B}}
\DeclareRobustCommand{\smallbosonloopV}{\feyn{\char"1C}}
}
{}
\newif\ifSTAVE
\newcommand\STAVE{\pkgname{staves}}
\IfStyFileExists{staves}
{\STAVEtrue\usepackage{staves}}
{}
\newif\ifIGO
\newcommand\IGO{\pkgname{igo}}
\IfStyFileExists{igo}
{\savesymbol{black}
\savesymbol{white}
\savesymbol{repeat}
% Don't let igo redefine all of the font-size commands.
\savesymbol{scriptsize}\newcommand{\scriptsize}{}
\savesymbol{tiny}\newcommand{\tiny}{}
\savesymbol{large}\newcommand{\large}{}
\savesymbol{Large}\newcommand{\Large}{}
\savesymbol{LARGE}\newcommand{\LARGE}{}
\savesymbol{huge}\newcommand{\huge}{}
\savesymbol{Huge}\newcommand{\Huge}{}
\IGOtrue\usepackage{igo}
\restoresymbol{IGO}{black}
\restoresymbol{IGO}{white}
\restoresymbol{IGO}{repeat}
\restoresymbol{IGO}{tiny}
\restoresymbol{IGO}{large}
\restoresymbol{IGO}{Large}
\restoresymbol{IGO}{LARGE}
\restoresymbol{IGO}{huge}
\restoresymbol{IGO}{Huge}
% Define a version of \whitestone and \blackstone that avoid
% bracketed arguments.
\DeclareRobustCommand{\igowhitestone}[1]{\whitestone[##1]}
\DeclareRobustCommand{\igoblackstone}[1]{\blackstone[##1]}
}
{}
\newif\ifCEQ
\newcommand\CEQ{\pkgname{colonequals}}
\IfStyFileExists{colonequals}
{\savesymbol{colonapprox}
\savesymbol{colonsim}
\CEQtrue
\usepackage{colonequals}
\restoresymbol{CEQ}{colonapprox}
\restoresymbol{CEQ}{colonsim}
}
{}
% No point wasting a math alphabet on shuffle.
\newif\ifSHUF
\newcommand\SHUF{\pkgname{shuffle}}
\IfStyFileExists{shuffle}
{\let\origDeclareSymbolFont=\DeclareSymbolFont
\let\origDeclareMathSymbol=\DeclareMathSymbol
\renewcommand{\DeclareSymbolFont}[5]{}
\renewcommand{\DeclareMathSymbol}[4]{%
\DeclareRobustCommand{##1}{{\usefont{U}{shuffle}{m}{n}\char##4\relax}}
}
\SHUFtrue
\usepackage{shuffle}
\let\DeclareSymbolFont=\origDeclareSymbolFont
\let\DeclareMathSymbol=\origDeclareMathSymbol
}
{}
% Fourier defines a lot of math symbols, but we care about only a few of
% them. Hence, we load only the fourier-orns package and manually
% define everything else as text-mode symbols.
\newif\ifFOUR
\newcommand\FOUR{\pkgname{fourier}}
\IfStyFileExists{fourier}
{\FOURtrue
\usepackage{fourier-orns}
% Define single-glyph symbols.
\DeclareFontEncoding{FMS}{}{}
\DeclareFontSubstitution{FMS}{futm}{m}{n}
\DeclareFontEncoding{FML}{}{}
\DeclareFontSubstitution{FML}{futmi}{m}{it}
\newcommand{\fourierdef}[6]{%
\DeclareRobustCommand{##1}{{\usefont{##2}{##3}{##4}{##5}\char##6}}}
\fourierdef{\parallelslant}{FMS}{futm}{m}{n}{134}
\fourierdef{\nparallelslant}{FMS}{futm}{m}{n}{143}
\fourierdef{\FOURrho}{FML}{futmi}{m}{it}{26}
\fourierdef{\FOURvarrho}{FML}{futmi}{m}{it}{37}
\fourierdef{\varvarrho}{FML}{futmi}{m}{it}{129}
\fourierdef{\FOURpi}{FML}{futmi}{m}{it}{25}
\fourierdef{\FOURvarpi}{FML}{futmi}{m}{it}{36}
\fourierdef{\varvarpi}{FML}{futmi}{m}{it}{131}
\fourierdef{\FOURpartial}{FML}{futmi}{m}{it}{64}
\fourierdef{\varpartialdiff}{FML}{futmi}{m}{it}{130}
\fourierdef{\FOURtexteuro}{TS1}{futx}{m}{n}{191}
% Fake a math accent with text-mode commands.
\DeclareRobustCommand{\FOURfakewidetopaccent}[5]{%
\setbox0=\hbox{\ensuremath{##1}}%
\setbox1=\hbox{\ensuremath{abc}}%
\leavevmode
\ifdim\wd0<\wd1
\kern1pt
\rlap{\raisebox{##2}{\makebox[\wd0]{\usefont{FMX}{futm}{m}{n}\char##3}}}%
\kern-0.1em
\box0
\else
\rlap{\raisebox{##4}{\makebox[\wd0]{\usefont{FMX}{futm}{m}{n}\char##5}}}%
\box0
\fi
}
% Manually define Fourier's extensible accents. Note that we don't
% bother trying to use Fourier's \mathring to construct the
% \FOURwidering symbol.
\DeclareFontEncoding{FMX}{}{}
\DeclareFontSubstitution{FMX}{futm}{m}{n}
\DeclareRobustCommand{\FOURwidearc}[1]{%
\FOURfakewidetopaccent{##1}{0ex}{216}{0.5ex}{217}}
\DeclareRobustCommand{\FOURwideOarc}[1]{%
\FOURfakewidetopaccent{##1}{0ex}{228}{0.5ex}{229}}
\DeclareRobustCommand{\FOURwideparen}[1]{%
\FOURfakewidetopaccent{##1}{0ex}{148}{0.5ex}{150}}
\DeclareRobustCommand{\FOURwidering}[1]{\overset{\smash{\vbox to .2ex{%
\hbox{$\mathring{}$}}}}{\FOURwideparen{##1}}}
% Manually define Fourier's variable-sized delimiters.
\newcommand{\fouriercdef}[6]{%
\DeclareRobustCommand{##1}{%
\textvcenter{\usefont{##2}{##3}{##4}{##5}\char##6}}}
\fouriercdef{\FOURtllbracket}{FMX}{futm}{m}{n}{133}
\fouriercdef{\FOURdllbracket}{FMX}{futm}{m}{n}{139}
\fouriercdef{\FOURtrrbracket}{FMX}{futm}{m}{n}{134}
\fouriercdef{\FOURdrrbracket}{FMX}{futm}{m}{n}{140}
\newcommand*{\FOURverticals}[1]{%
\vbox{%
\baselineskip=-\maxdimen
\lineskiplimit=\maxdimen
\lineskip=0pt%
\usefont{FMX}{futm}{m}{n}%
\ialign{####\cr##1}%
}%
}
\DeclareRobustCommand{\FOURtVERT}{%
\raisebox{0.5ex}{\textvcenter{\FOURverticals{\char147\cr\char147\cr}}}}
\DeclareRobustCommand{\FOURdVERT}{%
\raisebox{0.5ex}{\textvcenter{\FOURverticals{\char147\cr\char147\cr\char147\cr\char147\cr}}}}
}
{}
\newif\ifDOZ
\newcommand\DOZ{\pkgname{dozenal}}
\makeatletter
\IfStyFileExists{dozenal}
{\DOZtrue
\fakeusepackage{dozenal}
\DeclareRobustCommand{\DOZx}{\doz{X}}
\DeclareRobustCommand{\DOZe}{\doz{E}}
\DeclareRobustCommand{\alldoztallies}{%
\doz{1}~%
\doz{2}~%
\doz{3}~%
\doz{4}~%
\doz{5}~%
\doz{6}%
}
}
{}
\makeatother
\newif\ifPMBOX
\newcommand\PMBOX{\pkgname{pmboxdraw}}
\IfStyFileExists{pmboxdraw}
{\PMBOXtrue\usepackage{pmboxdraw}}
{}
\newif\ifPIG
\newcommand\PIG{\pkgname{pigpen}}
\IfStyFileExists{pigpen}
{\PIGtrue
\ifpdf
% Bug workaround. See
%
https://tex.stackexchange.com/questions/615300/pdflatex-builtin-glyph-names-is-empty/634975#634975
\pdfmapline{=pigpen <pigpen.pfa}
\fi
\usepackage{pigpen}
\DeclareRobustCommand{\CLSLpig}[1]{{\pigpenfont##1}}
}
{}
\newif\ifCLOCK
\newcommand\CLOCK{\pkgname{clock}}
\IfStyFileExists{clock}
{\CLOCKtrue\usepackage{clock}}
{}
\DeclareRobustCommand*{\renderCLOCK}[2]{{%
\ClockStyle=#1
\ifx#2t
\ClockFrametrue
\else
\ClockFramefalse
\fi
\clock{15}{41}%
}}
\newcommand*{\showCLOCK}[2]{%
\renderCLOCK{#1}{#2}%
\index{clock=\string\verb+\string\clock+ (\string\renderCLOCK{#1}{#2})}%
}
% We define our own teubner package to try to minimize symbol conflicts.
\newif\ifTEUB
\newcommand\TEUB{\pkgname{teubner}}
\makeatletter
\IfStyFileExists{teubner}
{\TEUBtrue
\let\origamp=\&
\usepackage{teubner-subset}
\let\&=\origamp
}
{}
\makeatother
\newif\ifLINA
\newcommand\LINA{\pkgname{linearA}}
\setpkgnameopts{linearA}{pkg=lineara}
\IfStyFileExists{linearA}
{\LINAtrue\usepackage{linearA}}
{}
\newif\ifLINB
\newcommand\LINB{\pkgname{linearb}}
\IfStyFileExists{linearb}
{\LINBtrue\usepackage{linearb}}
{}
\newif\ifCYPR
\newcommand\CYPR{\pkgname{cypriot}}
\IfStyFileExists{cypriot}
{\CYPRtrue\usepackage{cypriot}}
{}
\newif\ifSARAB
\newcommand\SARAB{\pkgname{sarabian}}
\IfStyFileExists{sarabian}
{\SARABtrue\usepackage{sarabian}}
{}
% Cuneiform -- not sure if this is appropriate for the list so it's
% commented out for now.
\newif\ifPRSN
\newcommand\PRSN{\pkgname{oldprsn}}
%\IfStyFileExists{oldprsn}
% {\PRSNtrue\usepackage{oldprsn}}
% {}
% Cuneiform -- not sure if this is appropriate for the list so it's
% commented out for now.
\newif\ifUGAR
\newcommand\UGAR{\pkgname{ugarite}}
%\IfStyFileExists{ugarite}
% {\UGARtrue\usepackage{ugarite}}
% {}
\newif\ifCHINA
\newcommand{\CHINA}{\pkgname{china2e}}
\IfStyFileExists{china2e}
{\CHINAtrue
\savesymbol{Info}
\savesymbol{Earth}
\savesymbol{Telephone}
\savesymbol{Fire}
\savesymbol{vdots}
\let\origDeclareSymbolFont=\DeclareSymbolFont
\let\origDeclareMathSymbol=\DeclareMathSymbol
\renewcommand{\DeclareSymbolFont}[5]{}
\renewcommand{\DeclareMathSymbol}[4]{%
\DeclareRobustCommand{##1}{{\uchr##4}}}
\usepackage{china2e}
\let\DeclareSymbolFont=\origDeclareSymbolFont
\let\DeclareMathSymbol=\origDeclareMathSymbol
\restoresymbol{china}{Info}
\restoresymbol{china}{Earth}
\restoresymbol{china}{Telephone}
\restoresymbol{china}{Fire}
\restoresymbol{CHINA}{vdots}
\DeclareRobustCommand{\chinainternal}{\searchAs{\Chinasym}{CHiNA2e}}
\setpkgnameopts{china2e}{fmt={\noexpand\chinainternal}}
}
{}
\newif\ifHARP
\newcommand\HARP{\pkgname{harpoon}}
\IfStyFileExists{harpoon}
{\HARPtrue\usepackage{harpoon}}
{}
\newif\ifSTEIN
\newcommand\STEIN{\pkgname{steinmetz}}
\IfStyFileExists{steinmetz}
{\STEINtrue\usepackage{steinmetz}}
{}
% Note that the CTAN catalogue entry is "logic", but all the files
% within the package are named "milstd.*".
\newif\ifLOGIC
\newcommand\LOGIC{\pkgname{logic}}
\IfStyFileExists{milstd}
{\LOGICtrue\usepackage{milstd}}
{}
\newif\ifRECYC
\newcommand\RECYC{\pkgname{recycle}}
\IfStyFileExists{recycle}
{\RECYCtrue
\usepackage{recycle}
\DeclareRobustCommand{\RECYCrecycle}{{\recycle}}
}
{}
\newif\ifDOTARR
\newcommand\DOTARR{\pkgname{DotArrow}}
\setpkgnameopts{DotArrow}{pkg=dotarrow}
\IfStyFileExists{DotArrow}
{\DOTARRtrue\usepackage{DotArrow}}
{}
\newif\ifUSHORT
\newcommand\USHORT{\pkgname{ushort}}
\IfStyFileExists{ushort}
{\USHORTtrue\usepackage{ushort}}
{}
\newif\ifHHCNT
\newcommand\HHCNT{\pkgname{hhcount}}
\setpkgnameopts{hhcount}{link=
http://mirror.ctan.org/usergrps/uktug/baskervi/5_5/hhcount.sty}
\IfStyFileExists{hhcount}
{\HHCNTtrue
\usepackage{hhcount}
\DeclareRobustCommand{\allfcdice}{%
\fcbigdice{1}~%
\fcbigdice{2}~%
\fcbigdice{3}~%
\fcbigdice{4}~%
\fcbigdice{5}~%
\fcbigdice{6}%
}
\DeclareRobustCommand{\allfcscores}{%
\fcbigscore{1}~%
\fcbigscore{2}~%
\fcbigscore{3}~%
\fcbigscore{4}~%
\fcbigscore{5}%
}
}
{}
\newif\ifOGON
\newcommand\OGON{\pkgname{ogonek}}
\makeatletter
\IfStyFileExists{ogonek}
{\OGONtrue
\let\origAtBeginDocument=\AtBeginDocument
\long\def\AtBeginDocument##1{}
\usepackage{ogonek}
\let\AtBeginDocument=\origAtBeginDocument
\DeclareTextCommand\OGONk{OT1}[1]{%
\@testogonekletter{##1}\@oldfontsogonek{##1}}
}
{}
\makeatother
\newif\ifCBEL
\newcommand\CBEL{\pkgname{combelow}}
\IfStyFileExists{combelow}
{\CBELtrue\usepackage{combelow}}
{}
% MusiXTeX's symbols aren't really designed to be used outside of
% typesetting music. We therefore use our own faked version of MusiXTeX
% that's a bit easier to work with.
\newif\ifMSX
\newcommand\MSX{MusiX\TeX\index{MusiXTeX=MusiX\TeX}}
\makeatletter
\IfStyFileExists{musixtex}
{\MSXtrue
\usepackage{fakemusixtex}
\expandafter\xdef\csname
[email protected]\endcsname{%
\csname
[email protected]\endcsname}
}
{}
\makeatother
\newif\ifCCICO
\newcommand\CCICO{\pkgname{ccicons}}
\IfStyFileExists{ccicons}
{\CCICOtrue
\savesymbol{ccby}
\usepackage{ccicons}
\restoresymbol{CCICO}{ccby}
}
{}
% We use the *-form of \IfStyFileExists, because the package is named
% "adfsymbols", while the .sty files are named "adfarrows.sty" and
% "adfbullets.sty".
\makeatletter
\newif\ifADFSYM
\newcommand\ADFSYM{\pkgname{adfsymbols}}
\IfStyFileExists*{adfarrows}
{\@cons\foundpkgs{{adfsymbols}}
\ADFSYMtrue
\savesymbol{temp}
\usepackage{adfarrows}
\usepackage{adfbullets}
\restoresymbol{ADF}{temp}
}
{}
\makeatother
\newif\ifADFORN
\newcommand\ADFORN{\pkgname{adforn}}
\IfStyFileExists{adforn}
{\ADFORNtrue
\savesymbol{adfbullet}
\usepackage{adforn}
\restoresymbol{ADF}{adfbullet}
}
{}
\newif\ifBIGINTS
\newcommand\BIGINTS{\pkgname{bigints}}
\IfStyFileExists{bigints}
{\BIGINTStrue\usepackage{bigints}}
{}
\newif\ifSOYO
\newcommand\SOYO{\pkgname{soyombo}}
\IfStyFileExists{soyombo}
{\SOYOtrue
\usepackage{soyombo}
\DeclareRobustCommand{\SOYOsA}{{\soyombo\sA}}
\DeclareRobustCommand{\SOYOsO}{{\soyombo\sO}}
}
{}
\newif\ifTFRUP
\newcommand\TFRUP{\pkgname{tfrupee}}
\IfStyFileExists{tfrupee}
{\TFRUPtrue\usepackage{tfrupee}}
{}
% The knitting package conflicts with mylatex.ltx. Hence, we use
% a faked version instead.
\newif\ifKNIT
\newcommand\KNIT{\pkgname{knitting}}
\IfStyFileExists{knitting}
{\KNITtrue
\fakeusepackage{knitting}
\knitnogrid
}
{}
\newif\ifTGRK
\newcommand\TGRK{\pkgname{textgreek}}
\IfStyFileExists{textgreek}
{\TGRKtrue
\savesymbol{textmu}
\usepackage{textgreek}
\restoresymbol{TGRK}{textmu}
}
{}
\newif\ifBEGRIFF
\newcommand\BEGRIFF{\pkgname{begriff}}
\IfStyFileExists{begriff}
{\BEGRIFFtrue\usepackage{begriff}}
{}
\hyphenation{Be-griffs-schrift}
\newif\ifFREGE
\newcommand\FREGE{\pkgname{frege}}
\IfStyFileExists{frege}
{\let\temp=\relax\FREGEtrue\usepackage{frege}}
{}
\newif\ifCOE
\newcommand\COE{\pkgname{countriesofeurope}}
\IfStyFileExists{countriesofeurope}
{\COEtrue
\usepackage{countriesofeurope}
}
{}
\newif\ifCOOK
\newcommand\COOK{\pkgname{cookingsymbols}}
\IfStyFileExists{cookingsymbols}
{\COOKtrue\usepackage{cookingsymbols}}
{}
\newif\ifPRODINT
\newcommand\PRODINT{\pkgname{prodint}}
\IfStyFileExists{prodint}
{\PRODINTtrue
% Define all three symbols manually to avoid consuming a math alphabet.
\DeclareFontFamily{U}{ProdInt}{}
\DeclareFontShape{U}{ProdInt}{m}{n}{<-> prodint}{}
\DeclareRobustCommand{\prodi}{\text{\usefont{U}{ProdInt}{m}{n}\char80}}
\DeclareRobustCommand{\Prodi}{\text{\usefont{U}{ProdInt}{m}{n}\char82}}
\DeclareRobustCommand{\PRODI}{\text{\usefont{U}{ProdInt}{m}{n}\char84}}
}
{}
\newif\ifEPI
\newcommand\EPI{\pkgname{epiolmec}}
\IfStyFileExists{epiolmec}
{\EPItrue\usepackage{epiolmec}}
{}
\newif\ifMDW
\newcommand\MDW{\pkgname{mdwmath}}
\IfStyFileExists{mdwmath}
{\MDWtrue
\usepackage{mdwmath}
\DeclareRobustCommand{\MDWsqrt}[2][]{\sqrt*[##1]{##2}}
}
{}
% Don't waste a precious math alphabet on the rsfso package.
\newif\ifRSFSO
\newcommand\RSFSO{\pkgname{rsfso}}
\IfStyFileExists{rsfso}
{\RSFSOtrue
\DeclareRobustCommand{\RSFSmathcal}[1]{\text{\usefont{U}{rsfso}{m}{n}##1}}
}
{}
\newif\ifFNTAWE
\newcommand\FNTAWE{\pkgname{fontawesome5}}
\IfStyFileExists{fontawesome5}
{\FNTAWEtrue
\usepackage{fontawesome5}
}
{}
% stix defines a very large set of symbols and consumes a lot of math
% alphabets. Hence, we once again use a faked version of the font to
% avoid using up all of our math alphabets.
\newif\ifSTIX
\newcommand\STIX{\pkgname{stix}}
\IfStyFileExists{stix}
{\STIXtrue\fakeusepackage{stix}}
{}
% hands has no LaTeX support so we fabricate it ourselves.
\newif\ifHANDS
\newcommand\HANDS{\pkgname{hands}}
\IfPackageFileExists{hands}{hands.mf}
{\HANDStrue
\DeclareFontFamily{U}{hands}{}
\DeclareFontShape{U}{hands}{m}{n}{<-> hands}{}
}
{}
% greenpoint has no LaTeX support so we fabricate it ourselves.
\newif\ifGRPNT
\newcommand\GRPNT{\pkgname{greenpoint}}
\IfPackageFileExists{greenpoint}{greenpoint.mf}
{\GRPNTtrue
\DeclareFontFamily{U}{greenpoint}{}
\DeclareFontShape{U}{greenpoint}{m}{n}{<-> greenpoint}{}
}
{}
% nkarta has no LaTeX support so we fabricate it ourselves.
\newif\ifNKARTA
\newcommand\NKARTA{\pkgname{nkarta}}
\IfPackageFileExists{nkarta}{nkarta.mf}
{\NKARTAtrue
\DeclareFontFamily{U}{nkarta}{}
\DeclareFontShape{U}{nkarta}{m}{n}{<-> nkarta}{}
}
{}
% astrosym has no LaTeX support so we fabricate it ourselves.
\newif\ifASTRO
\newcommand\ASTRO{\pkgname{astrosym}}
\IfPackageFileExists{astrosym}{astrosym.mf}
{\ASTROtrue
\DeclareFontFamily{U}{astrosym}{}
\DeclareFontShape{U}{astrosym}{m}{n}{<-> astrosym}{}
}
{}
% Web-O-Mints has no LaTeX support so we fabricate it ourselves.
\newif\ifWEBO
\newcommand\WEBO{\pkgname{webomints}}
\IfPackageFileExists{webomints}{WebOMintsGD.pfb}
{\WEBOtrue
\DeclareFontFamily{U}{WebOMintsGD}{}
\DeclareFontShape{U}{WebOMintsGD}{m}{n}{<-> WebOMintsGD}{}
}
{}
% moonphase has no LaTeX support so we fabricate it ourselves.
\newif\ifMOON
\newcommand\MOON{\pkgname{moonphase}}
\IfPackageFileExists{moonphase}{moonphase.mf}
{\MOONtrue
\DeclareFontFamily{U}{moonphase}{}
\DeclareFontShape{U}{moonphase}{m}{n}{<-> moonphase}{}
}
{}
% dancers has no LaTeX support so we fabricate it ourselves.
\newif\ifDANCE
\newcommand\DANCE{\pkgname{dancers}}
\IfPackageFileExists{dancers}{dancers.mf}
{\DANCEtrue
\DeclareFontFamily{U}{dancers}{}
\DeclareFontShape{U}{dancers}{m}{n}{<-> dancers}{}
}
{}
% semaphor has no LaTeX support so we fabricate it ourselves.
\newif\ifSEMA
\newcommand\SEMA{\pkgname{semaphor}}
\IfPackageFileExists{semaphor}{smfpr10.mf}
{\SEMAtrue
\input{semaf.fd}
\DeclareFontFamily{U}{smfpr10}{}
\DeclareFontShape{U}{smfpr10}{m}{n}{<-> smfpr10}{}
}
{}
% umranda has no LaTeX support so we fabricate it ourselves.
\newif\ifUMRANDA
\newcommand\UMRANDA{\pkgname{umranda}}
\IfPackageFileExists{umranda}{umranda.mf}
{\UMRANDAtrue
\DeclareFontFamily{U}{umranda}{}
\DeclareFontShape{U}{umranda}{m}{n}{<-> umranda}{}
}
{}
% umrandb has no LaTeX support so we fabricate it ourselves.
\newif\ifUMRANDB
\newcommand\UMRANDB{\pkgname{umrandb}}
\IfPackageFileExists{umrandb}{umrandb.mf}
{\UMRANDBtrue
\DeclareFontFamily{U}{umrandb}{}
\DeclareFontShape{U}{umrandb}{m}{n}{<-> umrandb}{}
}
{}
% cryst has no LaTeX support so we fabricate it ourselves.
\newif\ifCRYST
\newcommand\CRYST{\pkgname{cryst}}
\IfPackageFileExists{cryst}{cryst.mf}
{\CRYSTtrue
\DeclareFontFamily{U}{cryst}{}
\DeclareFontShape{U}{cryst}{m}{n}{<-> cryst}{}
}
{}
% starfont has symbol conflicts with pretty much every other package
% providing astronomical symbols. We therefore use a faked version of
% the package that prefixes all starfont symbols with "STAR".
\newif\ifSTAR
\newcommand\STAR{\pkgname{starfont}}
\IfStyFileExists{starfont}
{\STARtrue\fakeusepackage{starfont}}
{}
\newif\ifTIKZSYM
\newcommand\TIKZSYM{\pkgname{tikzsymbols}}
\IfStyFileExists{tikzsymbols}
{\TIKZSYMtrue
\savesymbol{Smiley}
\savesymbol{Coffeecup}
\usepackage{tikzsymbols}
\restoresymbol{TIKZSYM}{Smiley}
\restoresymbol{TIKZSYM}{Coffeecup}
}
{}
% dice has no LaTeX support so we fabricate it ourselves.
\newif\ifDICE
\newcommand\DICE{\pkgname{dice}}
\IfPackageFileExists{dice}{dice3d.mf}{\DICEtrue}{}
\ifDICE
\DeclareFontFamily{U}{dice3d}{}
\DeclareFontShape{U}{dice3d}{m}{n}{<-> s*[4] dice3d}{}
\fi
\newif\ifAPL
\newcommand\APL{\pkgname{apl}}
\IfStyFileExists{apl}
{\APLtrue
\savesymbol{NG}
\savesymbol{SS}
\usepackage{apl}
\restoresymbol{APL}{NG}
\restoresymbol{APL}{SS}
}
{}
% The go package only defines a few symbols, but these have worrisome
% names from a conflict standpoint (e.g., \square, \triangle, and
% \empty). Rather than protect each command individually, we use a
% faked version of the package that prefixes all of the go symbols with
% "GO". Note that we call \usepackage{fakego} instead of
% \fakeusepackage{go} because the go package doesn't begin with a
% \ProvidesPackage command and therefore gets loaded in its entirely,
% which is problematic.
\newif\ifGOPKG
\newcommand\GOPKG{\pkgname{go}}
\IfStyFileExists{go}
{\GOPKGtrue\usepackage{fakego}}
{}
% magic has no LaTeX support so we fabricate it ourselves.
\newif\ifMAGIC
\newcommand\MAGIC{\pkgname{magic}}
\IfPackageFileExists{magic}{magic.mf}
{\MAGICtrue
\DeclareFontFamily{U}{magic}{}
\DeclareFontShape{U}{magic}{m}{n}{<-> magic}{}
}
{}
% bartel-chess-fonts has no LaTeX support so we fabricate it ourselves.
\newif\ifBARTEL
\newcommand\BARTEL{\pkgname{bartel-chess-fonts}}
\IfPackageFileExists{bartel-chess-fonts}{fselch10.mf}{\BARTELtrue}{}
\ifBARTEL
\DeclareFontFamily{U}{fselch}{}
\DeclareFontShape{U}{fselch}{m}{n}{<-> s * [13] fselch10}{}
\DeclareFontFamily{U}{pkelch}{}
\DeclareFontShape{U}{pkelch}{m}{n}{<-> s * [13] pkelch10}{}
\fi
\newif\ifACTANG
\newcommand\ACTANG{\pkgname{actuarialangle}}
\IfStyFileExists{actuarialangle}
{\ACTANGtrue
\savesymbol{lift}
\usepackage{actuarialangle}
\restoresymbol{ACTANG}{lift}
}
{}
% lilyglyphs currently works only with LuaLaTeX and XeLaTeX, not
% pdfLaTeX. We therefore modify lilyglyphs's internals to use graphics
% instead of fonts. Unfortunately, some lilyglyphs glyphs are provided
% by the package only as PDF files so we disable lilyglyphs entirely
% when not producing PDF output.
\newif\ifLILY
\DeclareRobustCommand{\lilylogo}{\textsf{lilyglyphs}}
\newcommand\LILY{\pkgname{lilyglyphs}}
\setpkgnameopts{lilyglyphs}{pkg=lilyglyphs,fmt={\noexpand\lilylogo}}
\IfStyFileExists{lilyglyphs}
{\LILYtrue
\savesymbol{flat}
\savesymbol{natural}
\savesymbol{sharp}
% lilyglyphs does a \renewcommand on the following predefined LaTeX symbols.
\def\flat{}
\def\natural{}
\def\sharp{}
\usepackage{lilyglyphs}
\restoresymbol{LILY}{flat}
\restoresymbol{LILY}{natural}
\restoresymbol{LILY}{sharp}
}
{}
\ifLILY
\ifpdf
\DeclareRobustCommand{\lilylogo}{%
% I'm not sure why \searchAs can't be given an \includegraphics, but
% the following hack seems to work.
\hspace*{40.252bp}% % Width of lilyglyphs_logo
\llap{\searchAs{\textcolor{white}{lilyglyphs}}{lilyglyphs}}%
\llap{\raisebox{-0.78ex}{\includegraphics{lilyglyphs/lilyglyphs_logo}}}%
}%
\renewcommand*{\lilyPrint}[2][]{%
\interpretLilyOptions{#1}%
#2%
}
\def\lilyGetGlyph#1{\includegraphics[scale=0.013151]{lilyglyphs/#1.pdf}}
\DeclareRobustCommand{\LILYdyn}[2]{\raisebox{#1}{\lilyGetGlyph{#2}}}
\renewcommand*{\lilyRF}{\LILYdyn{0pt}{r}\kern-2pt\LILYdyn{-2pt}{f}}
\renewcommand*{\lilyRFZ}{\lilyRF\kern-1.5pt\LILYdyn{0pt}{z}}
\DeclareGraphicsRule{*}{pdf}{*}{} % Needed to support files containing multiple extensions (e.g., "clefs.C.pdf")
\fi
\fi
% knot has no LaTeX support so we fabricate it ourselves.
\newif\ifKNOT
\newcommand\KNOT{\pkgname{knot}}
\IfPackageFileExists{knot}{knot7.mf}{\KNOTtrue}{}
\ifKNOT
\DeclareFontFamily{U}{knot1}{}
\DeclareFontShape{U}{knot1}{m}{n}{<-> sfixed * knot1}{}
\DeclareFontFamily{U}{knot2}{}
\DeclareFontShape{U}{knot2}{m}{n}{<-> sfixed * knot2}{}
\DeclareFontFamily{U}{knot3}{}
\DeclareFontShape{U}{knot3}{m}{n}{<-> sfixed * knot3}{}
\DeclareFontFamily{U}{knot4}{}
\DeclareFontShape{U}{knot4}{m}{n}{<-> sfixed * knot4}{}
\DeclareFontFamily{U}{knot5}{}
\DeclareFontShape{U}{knot5}{m}{n}{<-> sfixed * knot5}{}
\DeclareFontFamily{U}{knot6}{}
\DeclareFontShape{U}{knot6}{m}{n}{<-> sfixed * knot6}{}
\DeclareFontFamily{U}{knot7}{}
\DeclareFontShape{U}{knot7}{m}{n}{<-> sfixed * knot7}{}
\fi
\newif\ifBCLOGO
\newcommand\BCLOGO{\pkgname{bclogo}}
\IfStyFileExists{bclogo}
{\BCLOGOtrue\usepackage[tikz]{bclogo}}
{}
\newif\ifBULL
\newcommand\BULL{\pkgname{bullcntr}}
\IfStyFileExists{bullcntr}
{\BULLtrue
\usepackage{bullcntr}
\newcounter{CLSLbull}
\newcommand{\showbullcntr}[1]{%
\setcounter{CLSLbull}{##1}%
\bullcntr{CLSLbull}%
}
}
{}
\newif\ifRUBIK
\newcommand\RUBIK{\pkgname{rubikcube}}
\IfStyFileExists{rubikcube}
{\RUBIKtrue
\let\orignewcommand=\newcommand
\let\newcommand=\DeclareRobustCommand
\usepackage{rubikcube}
\let\newcommand=\orignewcommand
}
{}
% We have no math alphabets left so we trick svrsymbols.sty into defining
% all of its characters in text mode.
\newif\ifSVR
\newcommand\SVR{\pkgname{svrsymbols}}
\makeatletter
\IfStyFileExists{svrsymbols}
{\SVRtrue
\let\origDeclareSymbolFont=\DeclareSymbolFont
\let\origDeclareMathSymbol=\DeclareMathSymbol
\let\origSetSymbolFont=\SetSymbolFont
\renewcommand{\DeclareSymbolFont}[5]{}
\renewcommand{\SetSymbolFont}[6]{}
\renewcommand{\DeclareMathSymbol}[4]{%
\let##1=\relax% \photon and \antiproton are defined repeatedly.
\newcommand{##1}{{\usefont{OML}{svr}{m}{it}\char##4}}%
}
\usepackage{svrsymbols}
\let\DeclareSymbolFont=\origDeclareSymbolFont
\let\DeclareMathSymbol=\origDeclareMathSymbol
\let\SetSymbolFont=\origSetSymbolFont
}
{}
\newif\ifHWMATH
\newcommand\HWMATH{\pkgname{halloweenmath}}
\IfStyFileExists{halloweenmath}
{\HWMATHtrue\usepackage{halloweenmath}}
{}
% Use a faked version of old-arrows.sty so as not to waste a math alphabet.
\newif\ifOLDARR
\newcommand\OLDARR{\pkgname{old-arrows}}
\IfStyFileExists{old-arrows}
{\OLDARRtrue\usepackage{fakeold-arrows}}
{}
% Use a faked version of allrunes.sty so as not to redefine existing symbols.
\newif\ifARUNE
\newcommand\ARUNE{\pkgname{allrunes}}
\IfStyFileExists{allrunes}
{\ARUNEtrue\usepackage{fakeallrunes}}
{}
% If emf.sty exists, don't load it normally because that would
% consume any of a number of math alphabets. Instead, we simply
% check that all of its dependent packages exist.
\newif\ifEMF
\newcommand\EMF{\pkgname{emf}}
\IfStyFileExists*{emf}
{\IfStyFileExists*{BOONDOX-cal}
{\IfStyFileExists*{calligra}
{\IfStyFileExists*{frcursive}
{\IfStyFileExists*{fourier}
{\IfStyFileExists*{miama}
{\IfStyFileExists*{tgchorus}
{\IfStyFileExists*{rsfso}
{\EMFtrue}
{}
}
{}
}
{}
}
{}
}
{}
}
{}
}
{}
}
{}
% Only if all of emf's dependencies are met do we mark the package as included.
\makeatletter
\ifEMF
\@cons\foundpkgs{{emf}}
\let\origRequirePackage=\RequirePackage
\usepackage{emf}
\let\RequirePackage=\origRequirePackage
\DeclareRobustCommand{\emfboondox}{{\usefont{U}{BOONDOX-cal}{m}{n}E}}
\DeclareRobustCommand{\emfcal}{\ensuremath{\mathcal{E}}}
\DeclareRobustCommand{\emfcalligra}{{%
$\mkern-7mu$%
\usefont{T1}{calligra}{m}{n}\fontsize{7.43}{10}\selectfont E}%
}
\DeclareRobustCommand{\emfchorus}{{\usefont{OT1}{qzc}{m}{it}\fontsize{12.2}{10}\selectfont E}}
\DeclareRobustCommand{\emfcmr}{{\usefont{OMS}{cmr}{m}{n}E}}
\DeclareRobustCommand{\emffourier}{{\usefont{FMS}{futm}{m}{n}E}}
\DeclareRobustCommand{\emffrcursive}{{\usefont{T1}{frc}{m}{sl}E}}
\DeclareRobustCommand{\emfmiama}{{\usefont{OT1}{fmm}{m}{n}\fontsize{8.5}{10}\selectfont E}}
\DeclareRobustCommand{\emfrsfs}{{\usefont{OMS}{rsfs}{m}{n}E}}
\else
\completefalse\@cons\missingpkgs{{emf}}
\fi
\makeatother
% Define all of esrelation's symbols as text symbols to avoid consuming
% a math alphabet.
\newif\ifESR
\newcommand\ESR{\pkgname{esrelation}}
\makeatletter
\IfStyFileExists{esrelation}
{\ESRtrue
% Load the package with text-mode symbol replacements.
\let\origDeclareSymbolFont=\DeclareSymbolFont
\let\origDeclareMathSymbol=\DeclareMathSymbol
\renewcommand{\DeclareSymbolFont}[5]{}
\renewcommand{\DeclareMathSymbol}[4]{%
\DeclareRobustCommand{##1}{\text{\usefont{U}{esrelation}{m}{n}\char##4}}%
}
\usepackage{esrelation}
\let\DeclareSymbolFont=\origDeclareSymbolFont
\let\DeclareMathSymbol=\origDeclareMathSymbol
% esrelation extensible symbols get messed up when used with a center
% environment. Work around that limitation by typesetting them within
% a box.
\DeclareRobustCommand{\ESRrelationlifting}[1]{%
\settowidth{\@tempdima}{##1}%
\advance\@tempdima by 4pt%
\begin{minipage}[b]{\@tempdima}%
\ifdim\@tempdima<13pt
$\relationlifting{\mkern2mu##1\mkern2mu}$%
\else
$\relationlifting{##1}$%
\fi
\end{minipage}%
}
\DeclareRobustCommand{\ESRrelationleftproject}[1]{%
\settowidth{\@tempdima}{##1}%
\advance\@tempdima by 4pt%
\begin{minipage}[b]{\@tempdima}%
\ifdim\@tempdima<13pt
$\relationleftproject{\mkern2mu##1\mkern2mu}$%
\else
$\relationleftproject{##1}$%
\fi
\end{minipage}%
}
\DeclareRobustCommand{\ESRrelationrightproject}[1]{%
\settowidth{\@tempdima}{##1}%
\advance\@tempdima by 4pt%
\begin{minipage}[b]{\@tempdima}%
\ifdim\@tempdima<13pt
$\relationrightproject{\mkern2mu##1\mkern2mu}$%
\else
$\relationrightproject{##1}$%
\fi
\end{minipage}%
}
}
{}
\makeatother
\newif\ifOPLOT
\newcommand\OPLOT{\pkgname{oplotsymbl}}
\IfStyFileExists{oplotsymbl}
{\OPLOTtrue\usepackage{oplotsymbl}}
{}
% cmupint consumes a math alphabet and conflicts with a number of symbols
% appearing in other packages. We use a faked version of the package that
% addresses both of these challenges.
\newif\ifCMUPINT
\newcommand\CMUPINT{\pkgname{cmupint}}
\IfStyFileExists{cmupint}
{\CMUPINTtrue\fakeusepackage{cmupint}}
{}
% For convenience typesetting and indexing, we define a wrapper command for
% each optional argument to \hat.
\newif\ifRHATS
\newcommand\RHATS{\pkgname{realhats}}
\IfStyFileExists{realhats}
{\RHATStrue
\savesymbol{hat}
\let\hat=\orighat % realhats does a \renewcommand{\hat} so \hat must exist.
\usepackage{realhats}
\restoresymbol{RHAT}{hat}
% Define a wrapper for each realhats command that takes a single,
% mandatory argument.
\DeclareRobustCommand{\RHATash}[1]{\RHAThat[ash]{##1}}
\DeclareRobustCommand{\RHATberet}[1]{\RHAThat[beret]{##1}}
\DeclareRobustCommand{\RHATbirthday}[1]{\RHAThat[birthday]{##1}}
\DeclareRobustCommand{\RHATcowboy}[1]{\RHAThat[cowboy]{##1}}
\DeclareRobustCommand{\RHATcrown}[1]{\RHAThat[crown]{##1}}
\DeclareRobustCommand{\RHATdunce}[1]{\RHAThat[dunce]{##1}}
\DeclareRobustCommand{\RHATfez}[1]{\RHAThat[fez]{##1}}
\DeclareRobustCommand{\RHATmortarboard}[1]{\RHAThat[mortarboard]{##1}}
\DeclareRobustCommand{\RHATpoliceman}[1]{\RHAThat[policeman]{##1}}
\DeclareRobustCommand{\RHATsanta}[1]{\RHAThat[santa]{##1}}
\DeclareRobustCommand{\RHATscottish}[1]{\RHAThat[scottish]{##1}}
\DeclareRobustCommand{\RHATsombrero}[1]{\RHAThat[sombrero]{##1}}
\DeclareRobustCommand{\RHATtileblue}[1]{\RHAThat[tile-blue]{##1}}
\DeclareRobustCommand{\RHATtilegray}[1]{\RHAThat[tile-gray]{##1}}
\DeclareRobustCommand{\RHATtilelightblue}[1]{\RHAThat[tile-light-blue]{##1}}
\DeclareRobustCommand{\RHATtilewhite}[1]{\RHAThat[tile-white]{##1}}
\DeclareRobustCommand{\RHATtophat}[1]{\RHAThat[tophat]{##1}}
\DeclareRobustCommand{\RHATwitch}[1]{\RHAThat[witch]{##1}}
}
{}
\newif\ifEUFLAG
\newcommand\EUFLAG{\pkgname{euflag}}
\IfStyFileExists{euflag}
{\EUFLAGtrue\usepackage{euflag}}
{}
\newif\ifSCSNOW
\newcommand\SCSNOW{\pkgname{scsnowman}}
\IfStyFileExists{scsnowman}
{\SCSNOWtrue
\usepackage{scsnowman}
% We use the following as an example.
\newcommand*{\snowargs}{%
eyes, mouth, nose, arms, hat, muffler, buttons, snow, broom%
}
\DeclareRobustCommand{\scsnowmanFANCY}[1][scale=1]{%
\expandafter\scsnowman\expandafter[\snowargs, ##1]%
}%
}
{}
% endofproofwd generally makes a mess of the document. If the package
% exists we redefine its one command manually.
\newif\ifEOPROOF
\newcommand\EOPROOF{\pkgname{endofproofwd}}
\IfStyFileExists{endofproofwd}
{\IfFileExists{endofproofwd.pdf}
{\EOPROOFtrue
\DeclareRobustCommand*{\wasserdicht}{%
\includegraphics[width=10pt]{endofproofwd.pdf}%
}
}
{}
}
{}
% mismath redefines a bunch of other commands. All we really care
% about here are the textual operators so we redefine those manually.
\newif\ifMISMATH
\newcommand\MISMATH{\pkgname{mismath}}
\IfStyFileExists{mismath}
{\ifESV\ifAMS
\MISMATHtrue
\DeclareMathOperator{\MISMadj}{adj}
\DeclareMathOperator{\MISMAut}{Aut}
\DeclareMathOperator{\MISMConv}{Conv}
\DeclareMathOperator{\MISMcov}{cov}
\DeclareMathOperator{\MISMCov}{Cov}
\DeclareMathOperator{\MISMcurl}{\vv{\text{curl}}}
\DeclareMathOperator{\MISMdivg}{div}
\DeclareMathOperator{\MISMEnd}{End}
\DeclareMathOperator{\MISMerf}{erf}
\DeclareMathOperator{\MISMgrad}{\vv{\text{grad}}}
\DeclareMathOperator{\MISMid}{id}
\DeclareMathOperator{\MISMId}{Id}
\DeclareMathOperator{\MISMim}{im}
\DeclareMathOperator{\MISMIm}{Im}
\DeclareMathOperator{\MISMlb}{lb}
\DeclareMathOperator{\MISMlcm}{lcm}
\DeclareMathOperator{\MISMrank}{rank}
\DeclareMathOperator{\MISMRe}{Re}
\DeclareMathOperator{\MISMrot}{\vv{\text{rot}}}
\DeclareMathOperator{\MISMsgn}{sgn}
\DeclareMathOperator{\MISMspa}{span}
\DeclareMathOperator{\MISMtr}{tr}
\DeclareMathOperator{\MISMVar}{Var}
\DeclareMathOperator{\MISMZu}{Z}
\DeclareMathOperator{\MISMarccot}{arccot}
\DeclareMathOperator{\MISMsech}{sech}
\DeclareMathOperator{\MISMcsch}{csch}
\DeclareMathOperator{\MISMarsinh}{arsinh}
\DeclareMathOperator{\MISMarcosh}{arcosh}
\DeclareMathOperator{\MISMartanh}{artanh}
\DeclareMathOperator{\MISMarcoth}{arcoth}
\DeclareMathOperator{\MISMarsech}{arsech}
\DeclareMathOperator{\MISMarcsch}{arcsch}
\DeclareMathOperator{\MISMbigO}{\mathcal{O}}
\DeclareMathOperator{\MISMbigo}{O}
\DeclareMathOperator{\MISMlito}{o}
\fi\fi
}
{}
\newif\ifMUSICOG
\newcommand\MUSICOG{\pkgname{musicography}}
\IfStyFileExists{musicography}
{\MUSICOGtrue\usepackage{musicography}}
{}
\newif\ifROJUD
\newcommand\ROJUD{\pkgname{rojud}}
\IfStyFileExists{rojud}
{\ROJUDtrue
\usepackage{rojud}
}
{}
% utfsym renders symbols slowly. In an attempt to speed it up we use
% a faked version of the package that uses a pre-rendered image for
% each symbol.
\newif\ifUTFSYM
\newcommand\UTFSYM{\pkgname{utfsym}}
\IfStyFileExists{utfsym}
{\UTFSYMtrue
\fakeusepackage{utfsym}
}
{}
% worldflags defines a number of global names that interfere with
% other packages and the symbol list itself. We use a faked version
% of the package that's more careful about namespaces and, as a side
% effect, renders symbols substantially faster.
\newif\ifWFLAGS
\newcommand\WFLAGS{\pkgname{worldflags}}
\IfStyFileExists{worldflags}
{\WFLAGStrue
\usepackage{fakeworldflags}
}
{}
% We have no math alphabets left so we trick the package into declaring a
% text symbol.
\newif\ifPLIM
\newcommand\PLIM{\pkgname{plimsoll}}
\IfStyFileExists{plimsoll}
{\PLIMtrue
\let\origDeclareSymbolFont=\DeclareSymbolFont
\renewcommand*{\DeclareSymbolFont}[5]{\endinput}
\usepackage{plimsoll}
\let\DeclareSymbolFont=\origDeclareSymbolFont
\DeclareRobustCommand*{\plimsoll}{{\usefont{U}{plimsoll}{m}{n}\char"001}}
}
{}
\newif\ifTWEM
\newcommand\TWEM{\pkgname{twemojis}}
\IfStyFileExists{twemojis}
{\TWEMtrue
\usepackage{twemojis}
\newlength{\twemwidth}
\settowidth{\twemwidth}{\texttt{.twemoji.1f574-1f3fb-200d-2640-fe0f.}}
}
{}
\newif\ifSACSYMB
\newcommand\SACSYMB{\pkgname{sacsymb}}
\IfStyFileExists{sacsymb}
{\SACSYMBtrue
% Conservatively save all symbols because sacsymb's two-letter symbol
% names are bound to cause trouble.
\savesymbol{ca} \savesymbol{cb} \savesymbol{cc} \savesymbol{cd}
\savesymbol{ce} \savesymbol{cf} \savesymbol{cg} \savesymbol{ch}
\savesymbol{ci} \savesymbol{cj} \savesymbol{ck} \savesymbol{cl}
\savesymbol{cm} \savesymbol{cn} \savesymbol{co} \savesymbol{cq}
\savesymbol{cs} \savesymbol{ct} \savesymbol{cu} \savesymbol{cv}
\savesymbol{cw}
\usepackage{sacsymb}
\restoresymbol{SACSYMB}{ca} \restoresymbol{SACSYMB}{cb}
\restoresymbol{SACSYMB}{cc} \restoresymbol{SACSYMB}{cd}
\restoresymbol{SACSYMB}{ce} \restoresymbol{SACSYMB}{cf}
\restoresymbol{SACSYMB}{cg} \restoresymbol{SACSYMB}{ch}
\restoresymbol{SACSYMB}{ci} \restoresymbol{SACSYMB}{cj}
\restoresymbol{SACSYMB}{ck} \restoresymbol{SACSYMB}{cl}
\restoresymbol{SACSYMB}{cm} \restoresymbol{SACSYMB}{cn}
\restoresymbol{SACSYMB}{co} \restoresymbol{SACSYMB}{cq}
\restoresymbol{SACSYMB}{cs} \restoresymbol{SACSYMB}{ct}
\restoresymbol{SACSYMB}{cu} \restoresymbol{SACSYMB}{cv}
\restoresymbol{SACSYMB}{cw}
}
{}
\newif\ifOVARS
\newcommand\OVARS{\pkgname{overarrows}}
\IfStyFileExists{overarrows}
{\OVARStrue
\usepackage{renamed-overarrows}
}
{}
\newif\ifRESMES
\newcommand\RESMES{\pkgname{resmes}}
\IfStyFileExists{resmes}
{\RESMEStrue
\usepackage{resmes}
}
{}
\newif\ifPDFMSYM
\newcommand\PDFMSYM{\pkgname{pdfMsym}}
\IfPackageFileExists{pdfmsym}{pdfmsym.tex}
{\PDFMSYMtrue
\makeatletter
\savesymbol{lightning}
\input{pdfmsym}
\pdfmsymsetscalefactor{10}
\restoresymbol{PDFMSYM}{lightning}
\makeatother
}
{}
\newif\ifSILLY
\newcommand\SILLY{\pkgname{sillypage}}
\IfStyFileExists{sillypage}
{\SILLYtrue
\usepackage{sillypage}
}
{}
% academicons requires XeLaTeX or LuaLaTeX. Use a faked version if
% we're running from pdfLaTeX.
\newif\ifACICOS
\newcommand\ACICOS{\pkgname{academicons}}
\IfStyFileExists{academicons}
{\ACICOStrue
\ifpdftex
\fakeusepackage{academicons}
\else
\usepackage{academicons}
\fi
}
{}
% typicons requires XeLaTeX or LuaLaTeX. Use a faked version if we're
% running from pdfLaTeX.
\newif\ifTYPICOS
\newcommand\TYPICOS{\pkgname{typicons}}
\IfStyFileExists{typicons}
{\TYPICOStrue
\ifpdftex
\fakeusepackage{typicons}
\else
\usepackage{typicons}
\fi
}
{}
% figbas has no LaTeX support so we fabricate it ourselves.
\newif\ifFIGBAS
\newcommand\FIGBAS{\pkgname{figbas}}
\IfPackageFileExists{figbas}{cmrj.tfm}
{\FIGBAStrue
\DeclareFontFamily{U}{figbas}{}
\DeclareFontShape{U}{figbas}{m}{n}{<-> cmrj}{}
}
{}
% asapsym requires XeLaTeX or LuaLaTeX. Use a faked version if we're
% running from pdfLaTeX.
\newif\ifASAP
\newcommand\ASAP{\pkgname{asapsym}}
\IfStyFileExists{asapsym}
{\ASAPtrue
\ifpdftex
\fakeusepackage{asapsym}
\else
\usepackage{asapsym}
\fi
}
{}
% fontmfizz requires XeLaTeX or LuaLaTeX. Use a faked version if
% we're running from pdfLaTeX.
\newif\ifMFIZZ
\newcommand\MFIZZ{\pkgname{fontmfizz}}
\IfStyFileExists{fontmfizz}
{\MFIZZtrue
\ifpdftex
\fakeusepackage{fontmfizz}
\else
\usepackage{fontmfizz}
\fi
}
{}
% hamnosys requires XeLaTeX or LuaLaTeX. Use a faked version if
% we're running from pdfLaTeX.
\newif\ifHNS
\newcommand\HNS{\pkgname{hamnosys}}
\IfStyFileExists{hamnosys}
{\HNStrue
\ifpdftex
\fakeusepackage{hamnosys}
\else
\usepackage{hamnosys}
\fi
}
{}
% Use a faked figchild in which each symbol appears in a pre-rendered
% graphics file.
\newif\ifCHILD
\newcommand\CHILD{\pkgname{figchild}}
\IfStyFileExists{figchild}
{\CHILDtrue\fakeusepackage{figchild}}
{}
% logix requires XeLaTeX or LuaLaTeX. Use a faked version if we're
% running from pdfLaTeX.
\newif\ifLOGIX
\newcommand\LOGIX{\pkgname{logix}}
\IfStyFileExists{logix}
{\LOGIXtrue
\ifpdftex
\fakeusepackage{logix}
\else
\usepackage{logix}
\fi
}
{}
\newif\ifPGFORN
\newcommand\PGFORN{\pkgname{pgfornament}}
\IfStyFileExists{pgfornament}
{\PGFORNtrue
\usepackage{pgfornament}
\DeclareRobustCommand*{\pgfornVec}[1]{{%
\newpgfornamentfamily{vectorian}%
\pgfornament[height=15pt,ydelta=-5pt]{##1}%
}}%
\DeclareRobustCommand*{\pgfornHan}[1]{{%
\newpgfornamentfamily{han}%
\resizebox{!}{15pt}{\pgfornament[height=25pt,ydelta=-5pt]{##1}}%
}}%
}
{}
% lcircuit has no LaTeX support so we fabricate it ourselves.
\newif\ifLCIRC
\newcommand\LCIRC{\pkgname{lcircuit}}
\IfPackageFileExists{lcircuit}{nexorw.mac}
{\LCIRCtrue
\input{ande.mac}
\input{andn.mac}
\input{ands.mac}
\input{andw.mac}
\input{capew.mac}
\input{capns.mac}
\input{exore.mac}
\input{exorn.mac}
\input{exors.mac}
\input{exorw.mac}
\input{nande.mac}
\input{nandn.mac}
\input{nands.mac}
\input{nandw.mac}
\input{nexore.mac}
\input{nexorn.mac}
\input{nexors.mac}
\input{nexorw.mac}
\input{nfete.mac}
\input{nfetn.mac}
\input{nfets.mac}
\input{nfetw.mac}
\input{nore.mac}
\input{norn.mac}
\input{nors.mac}
\input{norw.mac}
\input{note.mac}
\input{notn.mac}
\input{nots.mac}
\input{notw.mac}
\input{ore.mac}
\input{orn.mac}
\input{ors.mac}
\input{orw.mac}
\input{ote.mac}
\input{otn.mac}
\input{ots.mac}
\input{otw.mac}
\input{pfete.mac}
\input{pfetn.mac}
\input{pfets.mac}
\input{pfetw.mac}
\input{resew.mac}
\input{resns.mac}
\input{tgateew.mac}
\input{tgatens.mac}
\input{tje.mac}
\input{tjn.mac}
\input{tjs.mac}
\input{tjw.mac}
\input{vddpin.mac}
\input{vsspin.mac}
\newcommand{\uselcircuit}[1]{\usebox{\csname##1\endcsname}}
}
{}
% We don't actually load all of quantikz just for its few symbols.
% Instead, we load only enough to retrieve the package's version string
% then reproduce quantikz's symbol code almost verbatim.
\newif\ifQTIKZ
\newcommand\QTIKZ{\pkgname{quantikz}}
\IfStyFileExists{quantikz}
{\QTIKZtrue
\let\origRequirePackage=\RequirePackage
\def\RequirePackage##1[##2]{\endinput}
\usepackage{quantikz}
\let\RequirePackage=\origRequirePackage
\newcommand*{\QTIKZket}[1]{\ensuremath{\left|##1\right\rangle}}
\newcommand*{\QTIKZbra}[1]{\ensuremath{\left\langle##1\right |}}
\newcommand*{\QTIKZproj}[1]{\ensuremath{\QTIKZket{##1}\!\QTIKZbra{##1}}}
\newcommand*{\QTIKZbraket}[2]{\ensuremath{\left\langle##1\middle|##2\right\rangle}}
}
{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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 cancel.sty, use it.
\newif\ifhavecancel
\IfStyFileExists*{cancel}
{\havecanceltrue\usepackage{cancel}}
{}
% 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}
\savesymbol{dddot}
\savesymbol{ddddot}
\usepackage{accents}
\restoresymbol{ACCENTS}{undertilde}
\restoresymbol{ACCENTS}{dddot}
\restoresymbol{ACCENTS}{ddddot}
}
{}
% If we have the nicefrac package, use it (to show how to typeset fractions).
\newif\ifFRAC
\IfStyFileExists{nicefrac}
{\FRACtrue
\usepackage[nice]{nicefrac}
}
{}
% Load the bm package to show how to typeset bold math. This needs to
% be loaded after some other math package (I'm not sure which) or it
% will consume a precious math alphabet.
\usepackage{bm}
% If we have the xfakebold package, use it (to show how to typeset bold math).
\newif\ifXFB
\IfStyFileExists{xfakebold}
{\XFBtrue
\usepackage{xfakebold}
}
{}
% If we have ot2enc.def, use it (to show how to produce a Cyrillic "sha").
\newif\ifOTII
\IfFileExists{ot2enc.def}
{\OTIItrue\input{ot2enc.def}}
{}
% If we have the Latin Modern fonts we can use those to show how to
% produce a long "s"
\newif\ifLATMOD
\IfFileExists{lmodern.sty}
{\LATMODtrue
\newcommand{\LMlongs}{{\usefont{TS1}{lmr}{m}{n}\char115}}}
{}
% If we have t2aenc.def, use it (to show how to produce various Cyrillic
% accents.
\newif\ifTIIA
\IfFileExists{t2aenc.def}
{\TIIAtrue\input{t2aenc.def}}
{}
% If we have needspace.sty, use it. Otherwise, replicate the \Needspace*
% macro's code verbatim.
\makeatletter
\IfStyFileExists*{needspace}
{\usepackage{needspace}}
{\newcommand{\Needspace}[2]{\par \penalty-100\begingroup
\setlength{\dimen@}{##2}%
\dimen@ii\pagegoal \advance\dimen@ii-\pagetotal
\ifdim \dimen@>\dimen@ii
\break
\fi\endgroup}
}
\makeatother
% If we have type1cm.sty, use it.
\IfStyFileExists*{type1cm}
{\usepackage{type1cm}}
{}
% If we have multirow.sty, use it.
\newif\ifhavemultirow
\IfStyFileExists*{multirow}
{\havemultirowtrue\usepackage{multirow}}
{}
% If we have simplewick.sty, use it.
\newif\ifhavesimplewick
\IfStyFileExists*{simplewick}
{\havesimplewicktrue\usepackage{simplewick}}
{}
% If we have placeins.sty, use it.
\newif\ifhaveplaceins
\IfStyFileExists*{placeins}
{\haveplaceinstrue\usepackage{placeins}}
{}
% If we have tocbibind.sty, use it.
\IfStyFileExists*{tocbibind}
{\usepackage{tocbibind}}
{}
% If we have spverbatim.sty, use it.
\newif\ifhavespverbatim
\IfStyFileExists*{spverbatim}
{\havespverbatimtrue\usepackage{spverbatim}}
{}
% If we have circledsteps.sty, use it.
\newif\ifhavecircledsteps
\IfStyFileExists*{circledsteps}
{\havecircledstepstrue\usepackage{circledsteps}}
{}
% If we have the Junicode font, use a few characters we extracted from
% it as graphics.
\newif\ifJUNI
\newcommand\JUNI{\pkgname{junicode}}
\IfPackageFileExists{junicode}{junicode/u2123.pdf}
{\JUNItrue
\DeclareRobustCommand{\versicle}{%
\raisebox{-1.7pt}{\includegraphics[scale=0.005]{junicode/u2123}}%
}
\DeclareRobustCommand{\response}{%
\raisebox{-1.1pt}{\includegraphics[scale=0.005]{junicode/u211F}}%
}
}
{}
% Define our own \lesssim and \gtrsim with slanted \sim. See
%
https://tex.stackexchange.com/questions/429758/ams-inequalities-a-variant-of-gtrsim-and-lesssim
\let\TSElesssimslant=\relax
\let\TSEgtrsimslant=\relax
\IfStyFileExists*{stackengine}{%
\IfStyFileExists*{scalerel}{%
\usepackage{stackengine}
\usepackage{scalerel}
\DeclareRobustCommand{\TSElesssimslant}{%
\mathrel{\ensurestackMath{\ThisStyle{%
\stackengine{-.4\LMex}{\SavedStyle<}{%
\rotatebox{-25}{$\SavedStyle\sim$}}{U}{r}{F}{T}{S}}}}}
\DeclareRobustCommand{\TSEgtrsimslant}{%
\mathrel{\ensurestackMath{\ThisStyle{%
\stackengine{-.4\LMex}{\SavedStyle>}{%
\rotatebox{25}{$\SavedStyle\sim$}}{U}{l}{F}{T}{S}}}}}
}
{}
}
{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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{chancery}
{\newcommand{\mathpzc}[1]{\mbox{\usefont{OT1}{pzc}{m}{it}##1}}}
{}
\setpkgnameopts{chancery}{pkg=psnfss}
\newif\ifCHAN
\newcommand\CHAN{\pkgname{urwchancal}}
\IfStyFileExists{urwchancal}
{\CHANtrue
\newcommand{\CHANmathcal}[1]{\mbox{\usefont{U}{urwchancal}{m}{n}##1}}
}
{}
\IfStyFileExists{calligra}
{\savesymbol{filename}
\usepackage{calligra}
\restoresymbol{CAL}{filename}
}
{}
\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}}}
{}
\setpkgnameopts{dsfont}{pkg=doublestroke}
\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.tfm}} % Not really a package
}
\makeatother
\IfStyFileExists{dsserif}
{\newcommand{\dsserifbb}[1]{\mbox{\usefont{U}{DSSerif}{m}{n}##1}}
\newcommand{\dsserifbbb}[1]{\mbox{\usefont{U}{DSSerif}{b}{n}##1}}
}
{}
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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}%
\ifhavespverbatim
% Preferred approach: use \spverb.
\ifx\first@arg\@empty
\expandafter\index\expandafter{\sanitized=\string\spverb+\string#2+}%
\else
\expandafter\index\expandafter{\sanitized=\string\spverb+\string#2+ (#1)}%
\fi
\else
% Backup approach: use \verb.
\ifx\first@arg\@empty
\expandafter\index\expandafter{\sanitized=\string\verb+\string#2+}%
\else
\expandafter\index\expandafter{\sanitized=\string\verb+\string#2+ (#1)}%
\fi
\fi
}
\let\indexaccent=\indexcommand
\def\CLSLpipe{|}%
\newcommand{\indexpunct}[2][]{%
\def\first@arg{#1}%
\def\second@arg{#2}%
\ifx\first@arg\@empty
\ifx\second@arg\CLSLpipe
\index{_magicvertname=\magicvertname}%
\else
\index{_=\string\verb+\string#2+}%
\fi
\else
\ifx\second@arg\CLSLpipe
\index{_magicvertname=\magicvertname{} (#1)}%
\else
\index{_=\string\verb+\string#2+ (#1)}%
\fi
\fi
}
\makeatother
% Locally disable indexing. This is intended for tables of symbols
% containing exclusively non-descriptive names.
\newenvironment{indexingoff}{\def\index##1{}}{}
% Typeset the index in three columns instead of the usual two.
\makeatletter
\renewenvironment{theindex}{%
\clearpage
\chapter*{\indexname}
Similar-looking glyphs are compressed into a single index entry with
a superscript ``\textcolor{Green}{$^+$}'' indicating that glyph
variations exist.
\ifcomplete
For example, the entry ``integral, contour
($\oint$)\textcolor{Green}{$^+$}\,'' presents only ``$\oint$'' but
indicates that variations also are available. In this case, those
variations are ``$\WASYoint$'', ``$\ABXointop$'', ``\MNStoint'',
``\FDSYMtoint'', ``\STIXtointslop\,'', and ``\CMUPointT\,''---essentially
font differences along the lines of ``A''
vs.~``{\usefont{T1}{phv}{m}{n}A}'' vs.~``{\usefont{T1}{pzc}{m}{n}A}''\@.
\fi % complete test
Substantially different glyphs with the same name are not merged.
\ifcomplete
For example, both ``$\varprod$'' and ``\FDSYMtvarprod'' are presented for
``product''.
\fi % complete test
Accents are shown over/under a gray box (e.g.,~``\,\blackacchack{\'}\,''
for ``accents, acute''). Symbols appearing in a table that spans pages
sometimes are associated with all of the pages that table covers. The
author hopes to correct this issue in a future version of the \doctitle.
\setlength{\columnsep}{1em}%
\begin{multicols}{3}%
\let\item\@idxitem
}{%
\end{multicols}%
}
\makeatother
% 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 (externally to this file) count
% the number of lines in the .ind file that contain "\item \verb" and
% write an empty definition of \approxcount and the correct definition
% of \prevtotalsymbols to the .aux file.
\makeatletter
\@ifundefined{prevtotalsymbols}{%
\def\prevtotalsymbols{\textbf{??}}%
}{}
\@ifundefined{approxcount}{%
\def\approxcount{\ensuremath{\sim}}%
}{}
\makeatother
% If we have color.sty, use it to display accents atop gray boxes in the
% index. (See below.) If we don't have color.sty, use black boxes.
\IfStyFileExists*{color}
{\usepackage{color}
\DeclareRobustCommand*{\graybox}{\textcolor[gray]{0.7}{\rule[-\letteradp]{\letterawd}{\letteraht}}}}
{\DeclareRobustCommand*{\graybox}{\rule[-\letteradp]{\letterawd}{\letteraht}}}
% Define \blackacc to display an accented box, given an accent command.
% Define \blackacchack to display an accented "a" and then black out
% the "a".
\usefont{OT1}{cmr}{m}{n} % Some package might change the default font.
\newlength\letterawd
\newlength\letteraht
\newlength\letteradp
\settowidth{\letterawd}{a}
\settoheight{\letteraht}{a}
\settodepth{\letteradp}{a}
\advance\letteradp by 0.06pt % In Computer Modern, "a" extends slightly below its bounding box.
\advance\letteraht by \letteradp
\DeclareRobustCommand*{\blackacchack}[1]{#1a\llap{\graybox}}
\DeclareRobustCommand*{\blackacc}[1]{#1{\graybox}}
\DeclareRobustCommand*{\blackacctwo}[1]{#1{\graybox}{\graybox}}
% Symbol+verbatim for various types of symbols
\def\E#1{%
\begingroup
\lccode`|=`\\
\def\EStruename{ES#1T}%
\ifhavespverbatim
\lowercase{\incsyms\index{#1=\string\spverb+\string|#1+ (\string|\EStruename)}}%
\else
\lowercase{\incsyms\index{#1=\string\verb+\string|#1+ (\string|\EStruename)}}%
\fi
\endgroup
\csname ES#1T\endcsname & \csname ES#1D\endcsname &
\ttfamily\expandafter\string\csname#1\endcsname
}
\def\IGOb#1{\incsyms\indexcommand\blackstone
\indexcommand[\string\igoblackstone{#1}]{#1}\igoblackstone{#1} &
\ttfamily\string\blackstone[\string#1]}
\def\IGOw#1{\incsyms\indexcommand\whitestone
\indexcommand[\string\igowhitestone{#1}]{#1}\igowhitestone{#1} &
\ttfamily\string\whitestone[\string#1]}
\def\Jiv#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[\noexpand\noexpand\noexpand#1]{#2}%
#1 &\ttfamily\string#2%
}
\def\K@no@opt@arg#1{%
\incsyms\indexcommand[\detokenize{#1}]{#1}%
#1 &\ttfamily\string#1%
}
\def\K{\@ifnextchar[{\K@opt@arg}{\K@no@opt@arg}}
\makeatother
\def\KED[#1][#2][#3]#4{\incsyms\indexcommand[#1]{#2}#3 &\ttfamily\string#4}
\def\Kbull#1{%
\incsyms
\bgroup
\lccode`\<=`\{%
\lccode`\>=`\}%
\lowercase{\index{bullcntr#1=\string\verb+\string\bullcntr<+\string\meta<#1>\string\verb+>+ (\string\showbullcntr<#1>)}}%
\egroup
\showbullcntr{#1} & \ttfamily\string\bullcntr\string{{\normalfont\meta{#1}}\string}%
}
\def\Kfeyn#1{\incsyms\indexcommand[\string\feyn{#1}]{\feyn{#1}}\feyn{#1} &\ttfamily\string\feyn\string{\string#1\string}}
\def\Kp#1{\incsyms\indexpunct[$#1$]{#1}#1 &\ttfamily\string#1}
\def\Kpig#1{%
\incsyms
\index{pigpenfont #1=\string\verb+{\string\pigpenfont\space#1}+\space(\string\CLSLpig{#1})}%
\CLSLpig{#1} & \ttfamily\string{\string\pigpenfont\space\string#1\string}%
}
\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}
\def\Kv#1{\incsyms\indexcommand[\string\encfive{\string#1}]{#1}{\encfive{#1}} &\ttfamily\string#1}
\makeatletter
\def\Kgr@opt@arg[#1]#2{\incsyms\indexcommand[\string\encgreek{\string#1}]{#2}{\encgreek{#1}} &\ttfamily\string#2}
\def\Kgr@no@opt@arg#1{\incsyms\indexcommand[\string\encgreek{\string#1}]{#1}{\encgreek{#1}} &\ttfamily\string#1}
\def\Kgr{\@ifnextchar[{\Kgr@opt@arg}{\Kgr@no@opt@arg}}
\makeatother
\def\KN[#1][#2]#3{\incsyms\indexcommand[\string#1]{#3} #1 & #2 & \ttfamily\string#3}
\def\KNbig[#1][#2]#3{\incsyms\indexcommand[\string#2]{#3} #1 & #2 & \ttfamily\string#3}
\def\Knoidx#1{\incsyms#1 &\ttfamily\string#1}
\def\Kcoe#1{%
\incsyms\indexcommand[\string{\string\countriesofeuropefamily\string#1\string}]{#1}%
\fontsize{72}{72}\countriesofeuropefamily#1 & \ttfamily\string#1
}
\def\Krojud#1{%
\incsyms\indexcommand[\string{\string\usefont{OT1}{rojud}{m}{n}\string#1\string}]{#1}%
\fontsize{36}{36}\usefont{OT1}{rojud}{m}{n}#1 & \ttfamily\string#1
}
\def\KfaReg#1{%
\incsyms
\indexcommand[{\string#1[regular]}]{#1[regular]}#1[regular] & \ttfamily\string#1[regular]%
}
\def\Klcirc#1{%
\incsyms
\indexcommand[\protect\uselcircuit\string{#1\string}]{\usebox{\csname#1\endcsname}}%
\uselcircuit{#1}
& \ttfamily\string\usebox\string{\expandafter\string\csname#1\endcsname\string}
}
\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}}
\def\Nbig[#1]#2{\incsyms\indexcommand[$\string\Big\string#1$]{#2}$#1$ & $\Big#1$ &\ttfamily\string#2}
\makeatother
\def\Nlogix#1{%
\incsyms
\bgroup
\expandafter\let\csname#1\endcsname=\relax
\edef\next{\noexpand\indexcommand[\csname#1\endcsname]{\csname#1\endcsname}}%
\next
\egroup
\csname#1\endcsname
& \csname#1Big\endcsname
& \ttfamily\expandafter\string\csname#1\endcsname
}
\def\Nlogixii#1{\Nlogix{Opn#1} & \Nlogix{Cls#1}}
\def\Mt#1{\incsyms\indexcommand[\string\metra\string#1]{#1}\metra#1 &\ttfamily\string#1}
\makeatletter
\def\Q@opt@arg[#1]#2{\incsyms\indexaccent[\string\blackacchack{\string#1}]{#2}#1{A}#1{a} &
\ttfamily\string#2\string{A\string}\string#2\string{a\string}}
\def\Q@no@opt@arg#1{\incsyms\indexaccent[\string\blackacchack{\string#1}]{#1}#1{A}#1{a} &
\ttfamily\string#1\string{A\string}\string#1\string{a\string}}
\def\Q{\@ifnextchar[{\Q@opt@arg}{\Q@no@opt@arg}}
\makeatother
\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#2{\incsyms\indexaccent[\string#1{\string\blackacchack{\string#2}}]{#2}{#1{#2{A}#2{a}}} &
\ttfamily\string#2\string{A\string}\string#2\string{a\string}}
\def\Qpc#1#2{\incsyms\indexcommand{#2}{\raisebox{1pt}{\tiny[#1]}} &
\ttfamily\string#2\string{A\string}\string#2\string{a\string}}
\def\Qpfc[#1]#2{\incsyms\indexaccent[\string\encfour{\string\blackacchack{\string#1}}]{#2}\encfour{#1{A}#1{a}} &
\ttfamily\string#2\string{A\string}\string#2\string{a\string}}
\ifFC
\def\Qiv#1#2{\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}$^#2$}
\def\QivBAR#1{\incsyms\index{_magicVertname=\string\magicVertname{}
(\string\encfour{\string\blackacchack{\string\FCbar}})}
\encfour{\FCbar{A}\FCbar{a}} &
\ttfamily\string\|\string{A\string}\string\|\string{a\string}$^#1$}
\else
\def\Qiv#1#2{\Qpc{T4}{#1}$^#2$}
\def\QivBAR#1{\Qpc{T4}{\|}$^#1$}
\fi
\ifVIET
\def\Qv#1#2{\incsyms\indexaccent[\string\encfive{\string\blackacchack{\string#1}}]{#1}{\encfive{#1{A}#1{a}}} &
\ttfamily\string#1\string{A\string}\string#1\string{a\string}$^#2$}
\else
\def\Qv#1#2{\Qpc{T5}{#1}$^#2$}
\fi
\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\Tm#1{\incsyms\indexcommand{\maya}$\mayadigit{#1}$ &\ttfamily\string\maya\string{#1\string}}
\def\Tmoon#1{%
\incsyms\indexcommand[\noexpand\noexpand\noexpand\MoonPha{#1}]{\MoonPha{#1}}\MoonPha{#1} &
\ttfamily\string\MoonPha\string{#1\string}}
\def\Tarr#1#2{%
\incsyms\indexcommand[\csname adfarrow#1\endcsname#2]{\adfarrow#1#2}\csname adfarrow#1\endcsname{#2} &
\ttfamily\string\adfarrow#1#2%
}
\def\Tast#1{%
\incsyms\indexcommand[\noexpand\noexpand\noexpand\adfast{#1}]{\adfast{#1}}\adfast{#1} &
\ttfamily\string\adfast\string{#1\string}%
}
\def\Tbul#1{%
\incsyms\indexcommand[\noexpand\noexpand\noexpand\adfbullet{#1}]{\adfbullet{#1}}%
\adfbullet{#1} &
\ttfamily\string\adfbullet\string{#1\string}%
}
\def\Tding#1{%
\incsyms
\indexcommand[\protect\ding{#1}]{\ding{#1}}%
\indexcommand{\ding}%
\ding{#1}
& \ttfamily\string\ding\string{#1\string}%
}
\def\Tknit#1{%
\incsyms\indexcommand[\protect\textknit{#1}]{\textknit{#1}}\textknit{#1}\indexcommand{\textknit} &
\ttfamily\string\textknit\string{#1\string}%
}
\def\Tpi#1#2{%
\incsyms\indexcommand[\protect\Pisymbol{#1}{#2}]{\Pisymbol{#1}{#2}}\Pisymbol{#1}{#2}%
\indexcommand{\Pisymbol} &
\ttfamily\string\Pisymbol\string{#1\string}\string{#2\string}%
}
\def\Tutf#1{%
\incsyms\indexcommand[\usym{#1}]{\usym{#1}}\usym{#1}\indexcommand{\usym} &
\ttfamily\string\usym\string{#1\string}%
}
\def\Tutfw#1{%
\incsyms\indexcommand[\usymW{#1}{0.75em}]{\usym{#1}}\usymW{#1}{0.75em}\indexcommand{\usym} &
\ttfamily\string\usym\string{#1\string}%
}
\def\Tld#1#2{%
\incsyms
\indexcommand[\protect\LILYdyn{#1}{#2}]{\lilyDynamics{#2}}
\LILYdyn{#1}{#2}%
& \ttfamily\string\lilyDynamics\string{#2\string}%
}
\def\Twflag#1{%
\incsyms\indexcommand[\protect\worldflag{#1}]{\worldflag{#1}}%
\worldflag{#1}\indexcommand{\worldflag} &
\ttfamily\string\worldflag\string{#1\string}%
}
\def\Ttwem#1#2{%
\incsyms
\xdef\twemname{\detokenize{#1}}%
\index{\twemname=\twemname\space (\twemoji{#2})}%
\indexcommand[\twemoji{#2}]{\twemoji{\twemname}}%
\indexcommand{\twemoji}%
\twemoji{#2} &
\frenchspacing\ttfamily\string\twemoji\string{#1\string}%
}
\def\Tsilly#1{%
\incsyms
\ifnum#1<10
\index{sillystep{0#1}=\string\verb+\string\sillystep{#1}+\space(\string\sillystep{#1})}%
\else
\index{sillystep{#1}=\string\verb+\string\sillystep{#1}+\space(\string\sillystep{#1})}%
\fi
\sillystep{#1} & \ttfamily\string\sillystep\string{#1\string}%
}
\def\TpgfornV#1{%
\incsyms
\indexcommand[\protect\pgfornVec{#1}]{\pgfornament{#1}}%
\pgfornVec{#1}%
\indexcommand{\pgfornament} &
\ttfamily\string\pgfornament\string{#1\string}%
}
\def\TpgfornVwide#1{%
\newpgfornamentfamily{vectorian}%
\pgfornament[height=10pt,ydelta=-3pt]{#1}%
\indexcommand{\pgfornament} &
\ttfamily\string\pgfornament\string{#1\string}%
}
\def\TpgfornH#1{%
\incsyms
\indexcommand[\protect\pgfornHan{#1}]{\pgfornament{#1}}%
\pgfornHan{#1}%
\indexcommand{\pgfornament} &
\ttfamily\string\pgfornament\string{#1\string}%
}
\makeatletter
% Allow underscores in the argument to \lilyGlyph.
\def\Tlg{\CLSLcleanarg\Tlg@helper}
\def\Tlg@helper#1{%
\incsyms
\indexcommand[\protect\lilyGlyph{#1}]{\lilyGlyph{#1}}%
\lilyGlyph{#1}%
& \ttfamily\string\lilyGlyph\string{#1\string}%
}
\newcommand{\V}[2][]{%
\incsyms
\def\first@arg{#1}%
\ifx\first@arg\@empty
\else
\indexcommand[#1]{#2}#1%
\fi
& \indexcommand[#2]{#2}#2%
& \ttfamily\string#2%
}
\makeatother
\newcommand{\Vl}[1]{\incsyms\indexcommand[#1]{#1}#1 & & \ttfamily\string#1}
\newcommand{\Vpl}[1]{\incsyms\indexpunct[$#1$]{#1}#1 & & \ttfamily\string#1}
\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\Wstar#1#2{%
\incsyms\indexaccent[$\string\blackacc{\string#1*}$]{#1*}%
$#1*{#2}$ &\ttfamily\string#1*\string{#2\string}
}
\def\Wf#1#2{\incsyms\indexcommand{#1}$#1{#2}$ &\ttfamily\string#1\string{#2\string}}
\def\Ww#1#2#3{\incsyms\indexcommand{#2}$#1{#3}$ &\ttfamily\string#2\string{#3\string}}
\makeatletter
\def\Wul@no@opt@arg#1#2#3{%
\incsyms\indexaccent[$\string\blackacctwo{\string#1}$]{#1}%
$#1{#2}{#3}$ &\ttfamily\string#1\string{#2\string}\string{#3\string}}
\def\Wul@opt@arg[#1]#2#3#4{%
\incsyms\indexaccent[$\string\blackacctwo{\string#1}$]{#2}%
$#1{#3}{#4}$ &\ttfamily\string#2\string{#3\string}\string{#4\string}}
\def\Wul{\@ifnextchar[{\Wul@opt@arg}{\Wul@no@opt@arg}}
\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\Xstar#1{\incsyms\indexcommand[$\string#1*$]{#1*}$#1*$ &\ttfamily\string#1*}
\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. \cmdW indexes an accent. \cmdIp is
% also similar to \cmdI but 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{\cmdW}[1]{\cmdI[$\string\blackacc{\string#1}$]{#1}}
\newcommand{\cmdIp}[2][]{%
\def\first@arg{#1}%
\ifx\first@arg\@empty
\texttt{\string#2}\indexpunct[#2]{#2}%
\else
\texttt{\string#2}\indexpunct[#1]{#2}%
\fi
}
\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{\ltextordfeminine}{\textsuperscript{a}}
\DeclareTextCommandDefault{\ltextordmasculine}{\textsuperscript{o}}
\DeclareTextCommandDefault{\ltextregistered}{\textcircled{\scshape r}}
\DeclareTextCommandDefault{\ltexttrademark}{\textsuperscript{TM}}
\DeclareTextCommand{\ltextdollar}{OT1}{\char`\$}
\DeclareTextCommandDefault{\ltextpertenthousand}{{%
\fontencoding{T1}\selectfont\%\char 24\char 24 }}
\DeclareTextCommandDefault{\ltextperthousand}{{%
\fontencoding{T1}\selectfont\%\char 24 }}
\DeclareTextCommand{\ltextsterling}{OT1}{\textit{\char`\$}}
\DeclareTextSymbolDefault{\ltextasteriskcentered}{OMS}
\DeclareTextSymbolDefault{\ltextbardbl}{OMS}
\DeclareTextSymbolDefault{\ltextbigcircle}{OMS}
\DeclareTextSymbolDefault{\ltextbullet}{OMS}
\DeclareTextSymbolDefault{\ltextdaggerdbl}{OMS}
\DeclareTextSymbolDefault{\ltextdagger}{OMS}
\DeclareTextSymbolDefault{\ltextdollar}{OT1}
\DeclareTextSymbolDefault{\ltextparagraph}{OMS}
\DeclareTextSymbolDefault{\ltextperiodcentered}{OMS}
\DeclareTextSymbolDefault{\ltextsection}{OMS}
\DeclareTextSymbolDefault{\ltextsterling}{OT1}
\DeclareTextSymbol{\ltextasteriskcentered}{OMS}{3}
\DeclareTextSymbol{\ltextbardbl}{OMS}{107}
\DeclareTextSymbol{\ltextbigcircle}{OMS}{13}
\DeclareTextSymbol{\ltextbullet}{OMS}{15}
\DeclareTextSymbol{\ltextdaggerdbl}{OMS}{122}
\DeclareTextSymbol{\ltextdagger}{OMS}{121}
\DeclareTextSymbol{\ltextparagraph}{OMS}{123}
\DeclareTextSymbol{\ltextperiodcentered}{OMS}{1}
\DeclareTextSymbol{\ltextsection}{OMS}{120}
% 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 various messages we reuse repeatedly.
\newcommand{\twosymbolmessage}[2][ (if \TC\ redefines it)]{%
\begin{tablenote}
The first symbol column represents the---sometimes
``faked''---symbol that \latexE provides by default. The second
symbol column represents the symbol as redefined by \TC#1. The
\TC\ package is generally required to typeset Table~\thetable's
symbols in \italic#2.\strut
\end{tablenote}
}
\newcommand{\notpredefinedmessage}{%
\begin{tablenote}[*]
Not predefined by the \latexE\ core. Use the \pkgname{latexsym}
package to expose this symbol.
\end{tablenote}
}
\newcommand{\usetextmathmessage}[1][]{%
\begin{tablenote}[#1]
It's generally preferable to use the corresponding symbol from
\vref{math-text} because the symbols in that table work
properly in both text mode and math mode.
\end{tablenote}
}
\newcommand{\utfexamplearg}[1]{\texttt{\char`\{#1\char`\}}}
\newcommand{\utfsymmessage}[1][]{%
\def\utfexample{#1}%
\begin{tablenote}
All \UTFSYM\ symbols are implemented with \TikZ\ graphics, not
with a font. In addition to \cmd{\usym}, the \UTFSYM\ package
defines \cmd{\usymH}, which renders a symbol at a given height,
and \cmd{\usymW}, which renders a symbol at a given width.
\ifx\utfexample\empty
\else
For example, ``\cmd{\usymH}\utfexamplearg{#1}\utfexamplearg{36pt}''
produces
\begin{center}
\usymH{\utfexample}{36pt}
\end{center}
\fi
\seedocs{\UTFSYM}.
\end{tablenote}
}
\newcommand{\seedocs}[1]{%
See the #1 documentation for more information%
}
\newcommand{\usefontcmdmessage}[2]{%
These symbols must appear either within the argument to \cmd{#1} or
following the \cmd{#2} font-selection command within a scope%
}
\newcommand{\greekfontmessage}{%
Greek body text can be typeset using the
\pkgname{babel} package's \optname{babel}{greek} (or
\optname{babel}{polutonikogreek}\idxboth{polytonic}{Greek})
option---and, of course, a font that provides the glyphs for the
Greek alphabet%
}
\newcommand{\niceframemessage}[1]{%
The \pkgname{niceframe} package can be used to typeset decorative
frames using fonts such as #1%
}
\newcommand{\tikzsymbolsaregraphics}{%
All \TIKZSYM\ symbols are implemented with \TikZ\ graphics, not with
a font%
}
\newcommand{\twemojismessage}{%
Most \TWEM\ symbols have multiple names. Only the most descriptive
name for each symbol is shown in this table.
All \TWEM\ symbols are implemented as PDF\index{PDF} graphics, not
with a font. See also the \pkgname{hwemoji} package, which enables
direct Unicode entry of emoji characters in \pdflatex; the
\pkgname{emoji} package, which provides a \lualatex interface to
different underlying emoji fonts; and the \pkgname{emo} package,
which uses a font if possible, otherwise PDF\index{PDF} graphics
}
\newcommand{\pdfmsymmessage}{%
\PDFMSYM\ symbols are implemented with PDF\index{PDF} literals
instead of (or sometimes in conjunction) with a font. All symbols
can be rendered by \pdflatex and \lualatex, some by \xelatex, and
none by most other \tex backends%
}
\newcommand{\luaxemessage}[1]{%
#1 requires either \lualatex or \xelatex%
}
\newcommand{\childmessage}{%
All \CHILD\ symbols are implemented with \TikZ\ graphics, not with a
font. Not shown above, each symbol takes three arguments: a scale
factor, a line color, and a line thickness. \seedocs{\CHILD}%
}
\newcommand{\worldflagsmessage}{%
All \WFLAGS\ symbols are implemented with \TikZ\ graphics, not with
a font. The package provides a number of options for controlling
flag size and style. \seedocs{\WFLAGS}%
}
% 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 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}
\newlength{\normalparindent} % minipage zeroes out \parindent.
\AtBeginDocument{\setlength{\normalparindent}{\parindent}}
\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}
\refstepcounter{table}%
\phantomsection
\addcontentsline{toc}{section}{%
\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{}%
\Needspace*{13\baselineskip}%
\mbox{}%
\begin{center}%
\phantomsection
\refstepcounter{table}%
%
% Inhibit longtable's implicit increment of the table counter.
\let\refstepcounter=\@gobble
\let\LT@array=\origLT@array
\let\LT@start=\origLT@start
%
\addcontentsline{toc}{section}{%
\protect\numberline{\tablename~\thetable:}{#2}}%
\@makecaption{\fnum@table}{#2}%
\gdef\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
\end{center}
\let\@elt=\index\lt@indexed % Close our index ranges.
\gdef\lt@indexed{}%
\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}{{\detokenize{#1|)}}}%
}
\newcommand{\ltidxboth}[2]{\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.
\newenvironment{nonsymtableL}[1]{%
\begin{sidewaystable}[htbp]
\centering
\caption{#1}\medskip
}{%
\end{sidewaystable}
}
% Define a table environment that's just like nonsymtable except that
% it allows page breaks.
\makeatletter
\newenvironment{longnonsymtable}[1]{%
\centering
\refstepcounter{table}%
\@makecaption{\fnum@table}{#1}%
}{%
}
\makeatother
% Do not reset table numbers across chapters boundaries.
\counterwithout{table}{chapter}
% Format sections numbers and table numbers differently in the table of
% contents (because table numbers are prefixed with "Table").
\newcommand{\tablesections}{%
\addtocontents{toc}{%
\settowidth{\cftsecnumwidth}{Table 999:~}%
}%
}
\newcommand{\realsections}{%
\addtocontents{toc}{%
\settowidth{\cftsecnumwidth}{99.9~}%
}%
}
% 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.
\ifAMS
\DeclareMathOperator{\newlogsym}{newlogsym}
\DeclareMathOperator*{\newlogsymSTAR}{newlogsym}
\DeclareMathOperator{\atan}{atan}
\DeclareMathOperator*{\lcm}{lcm}
\DeclareMathOperator*{\plim}{plim}
\fi
\DeclareFontFamily{U}{lightbulb}{}
\DeclareFontShape{U}{lightbulb}{m}{n}{<-> lightbulb10}{}
\newcommand{\lightbulb}{{\usefont{U}{lightbulb}{m}{n}A}}
\newcommand{\closure}[2][3]{{}\mkern#1mu\overline{\mkern-#1mu#2}}
% 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.
\ifpdf
\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}}%
}
% Store copies of some of longtable's internal macros before hyperref
% redefines them.
\makeatletter
\let\origLT@array=\LT@array
\let\origLT@start=\LT@start
\makeatother
% The hyperref package should be loaded last because it redefines various
% internal LaTeX macros.
\IfStyFileExists*{hyperref}
{\usepackage{hyperref}
\pdfstringdefDisableCommands{%
\def\AmS{AMS}%
\def\Chinasym{china2e}%
\def\lilylogo{lilyglyphs}%
\def\pkgname{}% % hyperref can't handle fragile commands here; .out file must be postprocessed.
}
\AtBeginDocument{%
\hypersetup{%
pdftitle={The Comprehensive LaTeX Symbol List},
pdfauthor={Scott Pakin},
pdfsubject={List of \prevtotalsymbols\ symbols that can be typeset using LaTeX},
pdfkeywords={LaTeX, symbols, glyphs, characters, fonts, typesetting, macros,
commands, accents, phonetics, mathematics, operators, arrows, harpoons,
astronomy, dingbats, geometry},
baseurl={
http://mirror.ctan.org/info/symbols/comprehensive/}
}
}
}
{\let\phantomsection=\relax
\newcommand{\href}[2]{##2}
}
% If we have the hyperxmp package, use it to include additional metadata.
\IfStyFileExists*{hyperxmp}
{\usepackage{hyperxmp}
\hypersetup{%
pdfcaptionwriter={Scott Pakin},
pdfcontactemail={
[email protected]},
pdfcontacturl={
http://www.pakin.org/\xmptilde scott/},
pdfcopyright={Copyright (C) 2007-\the\year, Scott Pakin},
pdflicenseurl={
http://www.latex-project.org/lppl/},
pdfversionid={15.0},
pdflang={en-US},
pdfmetalang={en-US}
}
}
{}
% Enable the use of our symbols.ist index style.
% Some of the following definitions are swiped from doc.dtx (for gind.ist).
\makeatletter
\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}%
\@ifundefined{pdfbookmark}{\def\pdfbookmark[#1]#2#3{}}{}
\newcommand{\indexheading}[1]{%
\pdfbookmark[1]{#1}{indexheading.#1}%
{\centering\bfseries#1\nopagebreak\par}%
}
\makeatother
% Don't number subsubsections or include them in the Table of Contents.
\setcounter{secnumdepth}{2}
\setcounter{tocdepth}{2}
% Include "Figure", "Table", and "Section" within hyperlinks.
\labelformat{figure}{Figure~#1}
\labelformat{table}{Table~#1}
\labelformat{chapter}{Chapter~#1}
\labelformat{section}{Section~#1}
\labelformat{subsection}{Section~#1}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\sloppy
\usefont{OT1}{cmr}{m}{n}\selectfont
% Import the title-page contents from either title-letter or title-a4,
% as specified by \titlefile. If \titlefile is undefined, include a
% placeholder title.
\begin{titlepage}
\makeatletter
\@ifundefined{titlefile}{%
\maketitle
}{%
\input{\titlefile}%
}%
\end{titlepage}
\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 \CTANfull
(\url{
https://www.ctan.org/}).
\end{abstract}
% Typeset a table of contents, temporarily disabling nested hyperlinks
% caused by hyperlinked package names appearing within hyperlinked table
% names.
\begingroup
\def\pkgnameopts{nolink,index=false}
\tableofcontents
\endgroup
% 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?
% * action (script A)
% * Bernoulli (script B)
% * path integral measure (script D)
% * domain (script D)
% * expected value (script E)
% * energy per symbol [communications theory] (script E)
% * imaginary line (script I)
% * identity matrix (blackboard bold I)
% * likelihood (script L)
% * M matrix (script M)
% * null space (script N)
% * order of (script o)
% * radius (script r)
% * real line (script R)
% * Schwartz class (script S)
% * volume (script V)
% * everything listed at
http://en.wikipedia.org/wiki/Blackboard_bold
%
\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
\DeclareRobustCommand{\AMSmcal}[1]{\ensuremath{\CMcal{#1}}}
\indexMA[\mathbbm{1}]{unity}
\indexMA[\mathbbm{A}]{adeles}
\indexMA[\mathbbm{B}]{Boolean domain}
\indexMA[\mathbbm{C}]{complex numbers}
\indexMA[\mathbbm{D}]{open unit disk}
\indexMA[\mathbbm{D}]{unit disk}
\ifEMF
\else
\indexMA[\mathscr{E}]{electromotive force}
\fi
\indexMA[\mathbbm{F}]{field}
\indexMA[\mathbbm{F}]{finite field}
\indexMA[\mathscr{F}]{Fourier transform}
\indexMA[\mathscr{H}]{Hamiltonian}
\indexMA[\mathscr{H}]{Hilbert space}
\indexMA[\mathbbm{H}]{quaternions}
\indexMA[\mathbbm{J}]{irrational numbers}
\indexMA[\mathscr{L}]{Lagrangian}
\indexMA[\mathscr{L}]{Laplace transform}
\indexMA[\mathscr{L}]{Lefschetz motive}
\indexMA[\AMSmcal{L}]{Lie derivative}
\indexMA[\AMSmcal{M}]{Mellin transform}
\indexMA[\mathbbm{M}]{Minkowski space}
\indexMA[\mathbbm{N}]{natural numbers}
\indexMA[\AMSmcal{O}]{local ring}
\indexMA[\mathbbm{O}]{octonions}
\indexMA[\mathbbm{P}]{projective space}
\indexMA[\mathbbm{Q}]{rational numbers}
\indexMA[\mathbbm{R}]{real numbers}
\indexMA[\mathbbm{S}]{sedenions}
\indexMA[\mathbbm{T}]{torus}
\indexMA[\mathbbm{Z}]{integers}
%\indexMA{imaginary numbers}
%\indexMA{prime numbers}
\indexMA{blackboard bold}
\indexMA{fraktur}
\indexMA{moduli space}
\indexMA{null infinity}
\indexMA{number sets}
\indexMA{power set}
\indexMA{Schwartz distribution spaces}
\indexMA{script letters}
% Provide "see ..."s for various logical and set 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{logical operators>xor|see{\texttt{\string\oplus}}}
\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{xor|see{\texttt{\string\oplus}}}
\index{conjunction, logical|see{\texttt{\string\wedge} \emph{and} \texttt{\string\&}}}
\index{disjunction|see{\texttt{\string\vee}}}
\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{set operators>membership|see{\texttt{\string\in}}}
\index{operators>set|see{set operators}}
\index{union|see{\texttt{\string\cup}}}
\index{intersection|see{\texttt{\string\cap}}}
\index{membership|see{\texttt{\string\in}}}
\index{element of|see{\texttt{\string\in}}}
\index{tautology|see{\texttt{\string\top}}}
\index{alternative denial|see{\texttt{\string\uparrow} \emph{and} \magicvertname}}
\index{joint denial|see{\texttt{\string\downarrow}}}
\index{material implication|see{\texttt{\string\rightarrow} \emph{and} \texttt{\string\supset}}}
\index{material equivalence|see{\texttt{\string\leftrightarrow} \emph{and} \texttt{\string\equiv}}}
\index{material conditional|see{\texttt{\string\rightarrow} \emph{and} \texttt{\string\supset}}}
\index{material biconditional|see{\texttt{\string\leftrightarrow} \emph{and} \texttt{\string\equiv}}}
\index{converse implication|see{\texttt{\string\leftarrow} \emph{and} \texttt{\string\subset}}}
\index{biconditional|see{\texttt{\string\leftrightarrow} \emph{and} \texttt{\string\equiv}}}
\index{interior|see{\texttt{\string\mathring}}}
\index{set interior|see{\texttt{\string\mathring}}}
\ifcomplete
\index{material nonimplication|see{\texttt{\string\nrightarrow} \emph{and} \texttt{\string\nsupset}}}
\index{converse nonimplication|see{\texttt{\string\nleftarrow} \emph{and} \texttt{\string\nsubset}}}
\index{exclusive disjunction|see{\texttt{\string\nleftrightarrow} \texttt{\string\nequiv}, \emph{and} \texttt{\string\oplus}}}
\index{par|see{\texttt{\string\bindnasrepma}, \texttt{\string\invamp}, and \texttt{\string\parr}}}
\index{multiplicative disjunction|see{\texttt{\string\bindnasrepma}, \texttt{\string\invamp}, and \texttt{\string\parr}}}
\fi % complete test
% Provide "see ..."s for various delimiters.
\index{angle brackets|see{delimiters}}
\index{brackets|see{delimiters}}
\index{braces|see{delimiters}}
\index{parentheses|see{delimiters}}
\index{square brackets|see{delimiters}}
% 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\#} \textit{and} \texttt{\string\hash}}}
\index{ampersand=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{underline}}
\index{less-than signs|see{inequalities}}
\index{greater-than signs|see{inequalities}}
\index{plus-or-minus sign|see{\texttt{\string\pm}}}
\index{space>visible|see{\texttt{\string\textvisiblespace}}}
\index{twiddle|see{tilde}}
\index{falsum|see{\texttt{\string\bot}}}
% Provide "see ..."s for various musical terms.
\index{accidentals|see{musical symbols}}
\index{sharp=sharp ($\sharp$)|see{musical symbols}}
\index{flat=flat ($\flat$)|see{musical symbols}}
\index{natural=natural ($\natural$)|see{musical symbols}}
\index{rests|see{musical symbols}}
\index{articulations|see{musical symbols}}
\ifLILY
\index{whole note=whole note (\wholeNote)|see{musical symbols}}
\index{half note=half note (\halfNote)|see{musical symbols}}
\index{quarter note=quarter note (\quarterNote)|see{musical symbols}}
\index{eighth note=eighth note (\eighthNote)|see{musical symbols}}
\index{sixteenth note=sixteenth note (\sixteenthNote)|see{musical symbols}}
\index{thirty-second note=thirty-second note (\thirtysecondNote)|see{musical symbols}}
\index{quaver=quaver (\quaver)|see{musical symbols}}
\index{semiquaver=semiquaver (\semiquaver)|see{musical symbols}}
\index{demisemiquaver=demisemiquaver (\demisemiquaver)|see{musical symbols}}
\index{semibreve=semibreve (\semibreve)|see{musical symbols}}
\index{minim=minim (\minim)|see{musical symbols}}
\index{crotchet=crotchet (\crotchet)|see{musical symbols}}
\index{breve=breve (\lilyGlyph{noteheads.sM1double})|see{musical symbols}}
\index{fermata=fermata (\fermata)|see{musical symbols}}
\else % LILY test
\index{whole note|see{musical symbols}}
\index{half note|see{musical symbols}}
\index{quarter note|see{musical symbols}}
\index{eighth note|see{musical symbols}}
\index{sixteenth note|see{musical symbols}}
\index{thirty-second note|see{musical symbols}}
\index{quaver|see{musical symbols}}
\index{semiquaver|see{musical symbols}}
\index{demisemiquaver|see{musical symbols}}
\index{semibreve|see{musical symbols}}
\index{minim|see{musical symbols}}
\index{crotchet|see{musical symbols}}
\index{breve|see{musical symbols}}
\index{fermata|see{musical symbols}}
\fi % LILY test
\ifMSX
\index{shake=shake (\MSXshake)|see{musical symbols}}
\index{alla breve=alla breve (\MSXallabreve)|see{musical symbols}}
\index{cut time=cut time (\MSXallabreve)|see{alla breve}}
\else
\index{shake|see{musical symbols}}
\index{alla breve|see{musical symbols}}
\index{cut time|see{alla breve}}
\fi % MSX test
\ifMUSICOG
\index{segno=segno (\musSegno)|see{musical symbols}}
\fi % MUSICOG test
% Provide a number of other useful "see ..."s.
\index{diamonds|see{rhombuses}}
\index{lozenges|see{rhombuses}}
\index{CTAN|see{Comprehensive \TeX{} Archive Network}}
\index{letters|see{alphabets}}
\index{digits|see{numerals}}
\index{numbers|see{numerals}}
\index{degrees|see{\texttt{\string\textdegree}}}
\index{pomega|see{\texttt{\string\varpi}}}
\index{curly pi|see{\texttt{\string\varpi}}}
\index{Cedi|see{\texttt{\string\textcolonmonetary}}}
\index{iff=\texttt{\string\iff}|see{\texttt{\string\Longleftrightarrow}}}
\index{derivative, partial|see{\texttt{\string\partial}}}
\index{to=\texttt{\string\to}|see{\texttt{\string\rightarrow}}}
\index{adjoint=adjoint (\dag)|see{\texttt{\string\dag}}}
\index{Cartesian product|see{\texttt{\string\times}}}
\index{tick marks|see{check marks}}
\index{supremum|see{\texttt{\string\sup}}}
\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{transversal intersection|see{\texttt{\string\pitchfork}}}
\index{absolute value|see{\texttt{\string\lvert} \emph{and} \texttt{\string\rvert}}}
\index{norm|see{\texttt{\string\lVert} \emph{and} \texttt{\string\rVert}}}
\index{proper subset/superset|see{\texttt{\string\subsetneq}\slash\texttt{\string\supsetneq}}}
\index{probability limit=probability limit ($\displaystyle\plim_{n \to \infty}$)|see{\texttt{\string\DeclareMathOperator}}}
\fi % AMS test
\index{abzuglich=abz\"uglich|see{\texttt{\string\textdiscount}}}
\index{diacritics|seealso{accents}}
\index{parts per thousand|see{\texttt{\string\textperthousand}}}
\index{thousandths|see{\texttt{\string\textperthousand}}}
\index{millesimal sign|see{\texttt{\string\textperthousand}}}
\index{prescription|see{\texttt{\string\textrecipe}}}
\index{pharmaceutical prescription|see{\texttt{\string\textrecipe}}}
\index{cross ratio|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}}}
\index{monus|see{\texttt{\string\dotdiv}}}
\index{lsemantic=\texttt{\string\lsemantic}|see{\texttt{\string\ldbrack}}}
\index{rsemantic=\texttt{\string\rsemantic}|see{\texttt{\string\rdbrack}}}
\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{square root}}
\index{roots|see{square root}}
\index{cube root=cube root ($\blackacc{\sqrt[3]}$)|see{square root}}
\ifcomplete
\index{return|see{carriage return}}
\fi
\ifTX
\index{fish hook|see{\texttt{\string\strictif}}}
\index{gaffing hook|see{\texttt{\string\strictif}}}
\index{strict implication|see{\texttt{\string\strictif}}}
\index{parallel lines, slanted|see{\texttt{\string\varparallel}}}
\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{satisfies|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 sign|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}}}
\index{reduced quadrupole moment|see{\texttt{\string\rqm}}}
\ifST
\index{banana brackets|see{delimiters}}
\index{catamorphism|see{delimiters}}
\fi % ST test
\ifOTII
\index{impulse train|see{sha}}
\index{Tate-Shafarevich group|see{sha}}
\fi
\index{differential, inexact|see{\texttt{\string\dbar}}}
\ifcomplete
\index{equivalence|see{\texttt{\string\equiv}, \texttt{\string\leftrightarrow}, \emph{and} \texttt{\string\threesim}}}
\else
\index{equivalence|see{\texttt{\string\equiv} \emph{and} \texttt{\string\leftrightarrow}}}
\fi
\index{vinculum|see{\texttt{\string\overline}}}
\index{eszett|see{\texttt{\string\ss}}}
\index{Maxwell-Stefan diffusion coefficient|see{\texttt{\string\DH}}}
\index{Laplacian=Laplacian ($\nabla^2$)|see{\texttt{\string\nabla}}}
\index{Laplacian=Laplacian ($\Delta$)|see{\texttt{\string\Delta}}}
%\index{infinity=infinity ($\infty$)|see{\texttt{\string\infty}}}
%\ifx\BBmathbb\undefined\else
% \index{double summation=double summation ({\usefont{U}{bbold}{m}{n}\char"06})|see{alphabets, math}}
% \index{summation, double=summation, double ({\usefont{U}{bbold}{m}{n}\char"06})|see{alphabets, math}}
%\fi
\index{evaluated at|see{\texttt{\string\vert}}}
\index{CP1252|see{code page 1252}}
\index{CP437|see{code page 437}}
\ifSIMP
\index{nuclear power plant|see{\texttt{\string\SNPP}}}
\fi % SIMP test
\ifcomplete % Really only needs to be ARK or DING or PI.
\index{hands|see{fists}}
\index{printer's fist|see{fists}}
\index{pointing finger|see{fists}}
\index{finger, pointing|see{fists}}
\fi % complete test
\index{tensor product|see{\texttt{\string\otimes}}}
\index{Kronecker product|see{\texttt{\string\otimes}}}
\index{Kronecker sum|see{\texttt{\string\oplus}}}
\index{ring sum|see{\texttt{\string\oplus}}}
\index{congruent|see{\texttt{\string\equiv}}}
\index{centigrade|see{\texttt{\string\textcelsius}}}
\index{greatest lower bound|see{\texttt{\string\sqcap}}}
\index{infimum|see{\texttt{\string\inf} \emph{and} \texttt{\string\sqcap}}}
\index{printer's flowers|see{fleurons \emph{and} flowers}}
\ifcomplete % Really only needs to be CHINA or MARV.
\index{Green Dot|see{\texttt{\string\Greenpoint} \emph{and} \texttt{\string\PackingWaste}}}
\index{Grune Punkt=Gr\"une Punkt|see{\texttt{\string\Greenpoint} \emph{and} \texttt{\string\PackingWaste}}}
\fi
\index{minus, double-dotted=minus, double-dotted ($\div$)|see{\texttt{\string\div}}}
\ifcomplete % Really only needs to be AMS or ABX or MNS or FDSYM
\index{Quine corners=Quine corners ($\ulcorner$\graybox$\urcorner$)|see{\texttt{\string\ulcorner} \emph{and} \texttt{\string\urcorner}}}
\index{quasi-quotation marks=quasi-quotation marks ($\ulcorner$\graybox$\urcorner$)|see{\texttt{\string\ulcorner} \emph{and} \texttt{\string\urcorner}}}
\fi
\ifMNS
\ifFDSYM
\index{Descartes's equal sign=Descartes's equal sign (\FDSYMbackpropto)|see{\texttt{\string\rightpropto} \emph{and} \texttt{\string\backpropto}}}
\fi % FDSYM test
\fi % MNS test
\ifSTIX
\index{d'Alembert operator|see{\texttt{\string\laplac}}}
\fi
\ifcomplete % Really, any of a number of math packages
% The following are derived from the multiobjective package's definitions.
\index{dominance|see{\texttt{\string\prec}}}
\index{dominance>negative|see{\texttt{\string\nprec}}}
\index{dominance>weak|see{\texttt{\string\preccurlyeq}}}
\index{dominance>negative weak|see{\texttt{\string\npreccurlyeq}}}
\index{dominance>strict|see{\texttt{\string\Prec}}}
% \index{dominance>negative strict|see{\texttt{\string\Prec}}} % Doesn't exist?
\index{better|see{\texttt{\string\triangleleft}}}
\fi % complete test
\ifARUNE
\index{long-branch runes|see{normal runes}}
\index{Danish runes|see{normal runes}}
\index{Swedo-Norwegian runes|see{short-twig runes}}
\index{H\"alsinge runes|see{staveless runes}}
%
\subindex{runes}{long-branch|see{normal runes}}
\subindex{runes}{Danish|see{normal runes}}
\subindex{runes}{Swedo-Norwegian|see{short-twig runes}}
\subindex{runes}{H\"alsinge|see{staveless runes}}
\fi % ARUNE test
\index{guillemotleft=\texttt{\string\guillemotleft}|see{\texttt{\string\guillemetleft}}}
\index{guillemotright=\texttt{\string\guillemotright}|see{\texttt{\string\guillemetright}}}
\ifWASY
\index{tailed z|see{\texttt{\string\roundz}}}
\index{ezh|see{\texttt{\string\roundz}}}
\fi
\ifcomplete % Many packages define globes.
\index{world|see{globe}}
\fi % complete test
\ifFNTAWE
\index{Dungeons and Dragons|see{D\&D}}
\fi % FNTAWE test
\index{bullets|see{circles, squares, rhombuses, etc.}}
\ifcomplete % Many packages define \sqint or \smallsqint
\index{integrals>quaternion|see{integrals, square}}
\fi % complete test
\ifcomplete % Really just TWEM and WFLAGS
\index{flags>Democratic Republic of the Congo|see{flags, Congo--Kinshasa}}
\index{flags>Republic of the Congo|see{flags, Congo--Brazzaville}}
\index{flags>Maldives|see{flags, Falkland Islands}}
\index{flags>Ivory Coast|see{flags, C\^ote d'Ivoire}}
\index{flags>pirate|see{flags, Jolly Roger}}
\index{flags>skull and crossbones|see{flags, Jolly Roger}}
\fi % complete test
\ifcomplete % Really just typicons, twemojis, and a few others
\index{mobile phone|see{cell phone}}
\index{wheel of dharma|see{dharmachakra}}
\fi % complete test
\index{vector notation|see{accents}}
% Multiple packages define \multimap.
\makeatletter
\@ifundefined{multimap}{}{%
\index{linear implication|see{\texttt{\string\string\string\multimap}}}
\index{lollipop (mathematics)|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
% 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{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{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}}}
\index{ohm|see{omega}}
\chapter{Introduction}
\label{introduction}
\realsections
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
tens of 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 \CTANfull
(\url{
https://www.ctan.org/}).
\item All of their symbols have \latexE{} bindings. That is, a user
should be able to access a symbol by name
(e.g.,~\cmdX{\bigtriangleup})
\end{enumerate}
\noindent
As of version~12 of the \doctitle, that second restriction has been
relaxed with the inclusion of \ref{min-latex-support}, which showcases
fonts that provide, at a minimum, either \tex\ font-metric files
(\fileext{tfm}) or the \metafont\ sources (\fileext{mf}) that produce
those font-metric files. Some of the \ref{min-latex-support} fonts do
include \latex\ font-definition files (\fileext{fd}). However, what
sets the fonts in \ref{min-latex-support} apart from the fonts in the
rest of the document is that they lack a \latex\ style file
(\fileext{sty}) that individually names each of the glyphs.
The restrictions listed above 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 \TeXFAQ{installthings} for help
with installing new fonts and packages.
\section{Document Usage}
Each chapter 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 \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\label{altenc} note that appears a few times in this document,
particularly in \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]\subindex{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}\subindex{font encodings}{T1} or \texttt{LY1}\subindex{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}''.
\ref{addl-info} contains some additional information about the symbols
in this document. It discusses how certain mathematical symbols can
vary in height, 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, compares
various schemes for boldfacing symbols, presents \latex{} \ascii and
Latin~1\index{Latin 1} tables, shows how to input and output
Unicode\index{Unicode} characters, 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.
A companion document, \rawtables, also presents a large number of symbols but
with a very different structure from this document. \rawtables\ includes only
symbols produced via a font file, while this document also includes composite
symbols (combinations of two or more glyphs) and symbols drawn as pictures
(using, e.g., \TikZ)\@. This document sorts symbols by category while
\rawtables\ sorts symbols by underlying font file. The two documents are
intended to complement each other. It is usually easier to find a desired
symbol in The Comprehensive \latex\ Symbol List, but \rawtables\ is helpful for
identifying related symbols, for finding symbols that exist in some font but
are not exposed to the user via a \latex\ package (or that this document
inadvertently overlooked), and for the font name and character position needed
to typeset a single symbol in isolation. The last of those is especially
important for math symbols. \tex\ imposes a limitation of at most 16 math
alphabets per document, but symbols typeset with \cmd{\font} and \cmd{\char}
are text symbols and do not consume a math alphabet. (They are less convenient
to use within a mathematical expression, however.)
\ifcomplete
\section{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}{%
\setlength{\columnsep}{3em}%
\begin{multicols}{2}%
\setlength{\parskip}{1ex}%
\newcommand{\faq}[2]{%
\noindent##1\quad\dotfill\quad\makebox[1em][r]{##2}\par}%
}{%
\end{multicols}%
}
\begin{symbolfaq}
\faq{\textvisiblespace, as in
``Spaces\textvisiblespace are\textvisiblespace significant.''}
{\pageref{text-predef}}
\faq{\={\i}, \~{\i}, \H{\i}, \u{\i}, \v{\i}, etc.\ (versus \=i, \~i, \H{i}, \u{i}, and \v{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{$\MDOTSiddots$}
{\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{{\Large\textcalligra{r}}}
{\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{page:tildes}}
\end{symbolfaq}
\fi % ifcomplete
\chapter{Body-text symbols}
\label{body-text-symbols}
\idxbothbegin{body-text}{symbols}
\tablesections
This chapter 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}
\index{underline}
\index{ampersand}
\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}{Predefined \latexE{} Text-mode Commands}
\index{inequalities}
\index{tilde}
\index{underline}
\index{copyright}
\idxboth{registered}{trademark}
\index{trademark}
\index{braces}
\index{circles}
\index{asterisks}
\index{quotation marks}
\idxboth{dot}{symbols}
\index{dots (ellipses)} \index{ellipses (dots)}
\idxboth{legal}{symbols}
\label{text-predef}
\begin{tabular}{lll@{\qqquad}lll}
\Vl\textasciicircum$^*$ & \Vl\textless \\
\Vl\textasciitilde$^*$ & \V[\ltextordfeminine]\textordfeminine \\
\V[\ltextasteriskcentered]\textasteriskcentered & \V[\ltextordmasculine]\textordmasculine \\
\Vl\textbackslash & \V[\ltextparagraph]\textparagraph$^\dag$ \\
\Vl\textbar & \V[\ltextperiodcentered]\textperiodcentered \\
\V[\ltextbardbl]\textbardbl & \V[\ltextpertenthousand]{\textpertenthousand} \\
\V[\ltextbigcircle]{\textbigcircle} & \V[\ltextperthousand]{\textperthousand} \\
\Vl\textbraceleft$^\dag$ & \Vl\textquestiondown \\
\Vl\textbraceright$^\dag$ & \Vl\textquotedblleft \\
\V[\ltextbullet]\textbullet & \Vl\textquotedblright \\
\V[\ltextcopyright]\textcopyright$^\dag$ & \Vl\textquoteleft \\
\V[\ltextdagger]\textdagger$^\dag$ & \Vl\textquoteright \\
\V[\ltextdaggerdbl]\textdaggerdbl$^\dag$ & \V[\ltextregistered]\textregistered \\
\V[\ltextdollar]\textdollar$^\dag$ & \V[\ltextsection]\textsection$^\dag$ \\
\Vl\textellipsis$^\dag$ & \V[\ltextsterling]\textsterling$^\dag$ \\
\Vl\textemdash & \V[\ltexttrademark]\texttrademark \\
\Vl\textendash & \Vl\textunderscore$^\dag$ \\
\Vl\textexclamdown & \Vl\textvisiblespace \\
\Vl\textgreater & \\
\end{tabular}
\bigskip
\twosymbolmessage{, and some symbols additionally require the T1
\fntenc[T1] for \italic}
\bigskip
\begin{tablenote}[*]
\cmdI[\string\^{}]{\^{}}\verb|{}| and
\cmdI[\string\~{}]{\~{}}\verb|{}| can be used instead of
\cmdI{\textasciicircum} and \cmdI{\textasciitilde}. See the
discussion of ``\textasciitilde'' \vpageref[below]{page:tildes}.
\end{tablenote}
\bigskip
\usetextmathmessage[\dag]
\end{symtable}
\begin{symtable}{\latexE{} Commands Defined to Work in Both Math and Text Mode}
\index{dots (ellipses)} \index{ellipses (dots)}
\index{copyright}
\idxboth{legal}{symbols}
\label{math-text}
\begin{tabular}{*3{lll@{\qqquad}}lll}
\Vpl\{ & \Vl\_ & \V[\ltextdaggerdbl]\ddag & \Vl\pounds \\
\Vpl\} & \V[\ltextcopyright]\copyright & \Vl\dots & \V[\ltextsection]\S \\
\V[\ltextdollar]\$ & \V[\ltextdagger]\dag & \V[\ltextparagraph]\P & \\
\end{tabular}
\bigskip
\twosymbolmessage{, and some symbols additionally require the T1
\fntenc[T1] for \italic}
\end{symtable}
\begin{symtable}[AMS]{\AMS\ Commands Defined to Work in Both Math and Text Mode}
\index{check marks}
\label{ams-math-text}
\begin{tabular}{*2{ll@{\qquad}}ll}
\X\checkmark & \X\circledR & \X\maltese
\end{tabular}
\end{symtable}
\begin{symtable}{Non-ASCII Letters (Excluding Accented Letters)}
\subindex{letters}{non-ASCII}
\index{ASCII}
\label{non-ascii}
\begin{tabular}{*4{ll@{\qqquad}}ll}
\K\aa & \Ks\DH & \K\L & \K\o & \Ks\th \\
\K\AA & \Ks\DJ & \K\l & \K\oe & \Ks\TH \\
\K\AE & \Ks\dj & \Ks\NG & \K\OE & \\
\K\ae & \K\IJ & \Ks\ng & \K\ss & \\
\Ks\dh & \K\ij & \K\O & \K\SS & \\
\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}[TGRK]{\TGRK\ Upright Greek Letters}
\subindex{alphabets}{Greek}
\index{Greek>letters}
\index{Greek>upright}
\index{upright Greek letters}
\label{textgreek-greek}
\begin{tabular}{*4{ll}}
\K\textalpha & \K\texteta & \K\textnu & \K\texttau \\
\K\textbeta & \K\texttheta & \K\textxi & \K\textupsilon \\
\K\textgamma & \K\textiota & \K\textomikron & \K\textphi \\
\K\textdelta & \K\textkappa & \K\textpi & \K\textchi \\
\K\textepsilon & \K\textlambda & \K\textrho & \K\textpsi \\
\K\textzeta & \K[\textmugreek]\textmu$^*$
& \K\textsigma & \K\textomega \\
\\
\K\textAlpha & \K\textEta & \K\textNu & \K\textTau \\
\K\textBeta & \K\textTheta & \K\textXi & \K\textUpsilon \\
\K\textGamma & \K\textIota & \K\textOmikron & \K\textPhi \\
\K\textDelta & \K\textKappa & \K\textPi & \K\textChi \\
\K\textEpsilon & \K\textLambda & \K\textRho & \K\textPsi \\
\K\textZeta & \K\textMu & \K\textSigma & \K\textOmega \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
Synonyms for \cmdI[\textmugreek]\textmu\ include
\cmdI[\textmugreek]\textmicro\ and \cmdI\textmugreek.
\end{tablenote}
\bigskip
\begin{tablenote}
\TGRK\ tries to use a Greek font that matches the body text. As a
result, the glyphs may appear slightly different from the above.
\ifUPGR
Unlike \UPGR\ (\vref*{upgreek-greek}), \TGRK\ works in text mode.
\else
Unlike \UPGR, \TGRK\ works in text mode.
\fi
The symbols in this table are intended to be used sporadically
throughout a document (e.g.,~in phrases such as
``\textbeta-decay''). In contrast, \greekfontmessage.
\end{tablenote}
\end{symtable}
\begin{symtable}[FC]{Letters Used to Typeset African Languages}
\subindex{alphabets}{African}
\label{fc}
\begin{tabular}{*6{ll@{\qquad}}ll}
\Jiv\B{D} & \Jiv\m{c} & \Jiv\m{f} & \Jiv\m{k} & \Jiv\M{t} & \Jiv\m{Z} \\
\Jiv\B{d} & \Jiv\m{D} & \Jiv\m{F} & \Jiv\m{N} & \Jiv\M{T} & \Jiv\T{E} \\
\Jiv\B{H} & \Jiv\M{d} & \Jiv\m{G} & \Jiv\m{n} & \Jiv\m{t} & \Jiv\T{e} \\
\Jiv\B{h} & \Jiv\M{D} & \Jiv\m{g} & \Jiv\m{o} & \Jiv\m{T} & \Jiv\T{O} \\
\Jiv\B{t} & \Jiv\m{d} & \Jiv\m{I} & \Jiv\m{O} & \Jiv\m{u}$^*$ & \Jiv\T{o} \\
\Jiv\B{T} & \Jiv\m{E} & \Jiv\m{i} & \Jiv\m{P} & \Jiv\m{U}$^*$ \\
\Jiv\m{b} & \Jiv\m{e} & \Jiv\m{J} & \Jiv\m{p} & \Jiv\m{Y} \\
\Jiv\m{B} & \Jiv\M{E} & \Jiv\m{j} & \Jiv\m{s} & \Jiv\m{y} \\
\Jiv\m{C} & \Jiv\M{e} & \Jiv\m{K} & \Jiv\m{S} & \Jiv\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}[VIET]{Letters Used to Typeset Vietnamese}
\subindex{alphabets}{Vietnamese}
\begin{tabular}{*3{ll@{\qquad}}ll}
\Kv\OHORN & \Kv\ohorn & \Kv\UHORN & \Kv\uhorn \\
\end{tabular}
\bigskip
\begin{tablenote}
These characters all need the T5 \fntenc[T5], which is provided by
the \VIET\ package.
\end{tablenote}
\end{symtable}
\begin{symtable}{Punctuation Marks Not Found in OT1}
\index{punctuation}
\index{quotation marks}
\label{punc-no-OT1}
\begin{tabular}{*8l}
\Kt\guillemetleft$^*$ & \Kt\guilsinglleft & \Kt\quotedblbase & \Kt\textquotedbl \\
\Kt\guillemetright$^*$ & \Kt\guilsinglright & \Kt\quotesinglbase & \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
Older versions of \latex\ misspelled these as \texttt{\string\guillemotleft}
and \texttt{\string\guillemotright}. The older names are still retained for
backward compatibility.
\end{tablenote}
\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}}
\Tding{123} & \Tding{125} & \Tding{161} & \Tding{163} \\
\Tding{124} & \Tding{126} & \Tding{162} \\
\end{tabular}
\end{symtable}
\begin{symtable}[FNTAWE]{\FNTAWE\ Decorative Punctuation Marks and Typographic Symbols}
\index{punctuation}
\index{quotation marks}
\index{asterisks}
\index{asterisk=asterisk (\faAsterisk)}
\index{at sign=at sign (\faAt)}
\index{dots (ellipses)} \index{ellipses (dots)}
\index{ellipsis=ellipsis (\faEllipsisH)}
\index{ellipsis=ellipsis (\faEllipsisV)}
\index{exclamation point=exclamation point (\faExclamation)}
\index{paragraph=paragraph (\faParagraph)}
\index{question mark=question mark (\faQuestion)}
\index{left quotation marks=left quotation marks (\faQuoteLeft)}
\index{right quotation marks=right quotation marks (\faQuoteRight)}
\index{slash=slash (\faSlash)}
\label{fontawesome5-punctuation}
\begin{tabular}{*3{ll}}
\K\faAsterisk & \K\faExclamation & \K\faQuoteRight \\
\K\faAt & \K\faParagraph & \K\faSlash \\
\K\faEllipsisH & \K\faQuestion & \\
\K\faEllipsisV & \K\faQuoteLeft & \\
\end{tabular}
\end{symtable}
\begin{longsymtable}[TIPA]{\TIPA\ Phonetic Symbols}
\ltidxboth{phonetic}{symbols}
\ltidxboth{linguistic}{symbols}
\ltidxboth{dictionary}{symbols}
\ltidxboth{rotated}{letters}
\ltindex{upside-down letters}
\ltindex{inverted letters}
\ltsubindex{alphabets}{phonetic}
\ltindex{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).
\seedocs{\TIPA}.
\end{tablenote}
\end{longsymtable}
\begin{longsymtable}[TIPX]{\TIPX\ Phonetic Symbols}
\ltidxboth{phonetic}{symbols}
\ltidxboth{linguistic}{symbols}
\ltidxboth{dictionary}{symbols}
\ltidxboth{rotated}{letters}
\ltindex{upside-down letters}
\ltindex{inverted letters}
\ltindex{female sign}
\ltsubindex{alphabets}{phonetic}
\ltindex{arrows}
\label{tipx-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\textaolig & \K\texthtbardotlessjvar & \K\textrthooklong \\
\K\textbenttailyogh & \K\textinvomega & \K\textscaolig \\
\K\textbktailgamma & \K\textinvsca & \K\textscdelta \\
\K\textctinvglotstop & \K\textinvscripta & \K\textscf \\
\K\textctjvar & \K\textlfishhookrlig & \K\textsck \\
\K\textctstretchc & \K\textlhookfour & \K\textscm \\
\K\textctstretchcvar & \K\textlhookp & \K\textscp \\
\K\textctturnt & \K\textlhti & \K\textscq \\
\K\textdblig & \K\textlooptoprevesh & \K\textspleftarrow \\
\K\textdoublebarpipevar & \K\textnrleg & \K\textstretchcvar \\
\K\textdoublepipevar & \K\textObullseye & \K\textsubdoublearrow \\
\K\textdownfullarrow & \K\textpalhooklong & \K\textsubrightarrow \\
\K\textfemale & \K\textpalhookvar & \K\textthornvari \\
\K\textfrbarn & \K\textpipevar & \K\textthornvarii \\
\K\textfrhookd & \K\textqplig & \K\textthornvariii \\
\K\textfrhookdvar & \K\textrectangle & \K\textthornvariv \\
\K\textfrhookt & \K\textretractingvar & \K\textturnglotstop \\
\K\textfrtailgamma & \K\textrevscl & \K\textturnsck \\
\K\textglotstopvari & \K\textrevscr & \K\textturnscu \\
\K\textglotstopvarii & \K\textrhooka & \K\textturnthree \\
\K\textglotstopvariii & \K\textrhooke & \K\textturntwo \\
\K\textgrgamma & \K\textrhookepsilon & \K\textuncrfemale \\
\K\textheng & \K\textrhookopeno & \K\textupfullarrow \\
\K\texthmlig & \K\textrtailhth \\
\end{longtable}
\end{longsymtable}
\begin{longsymtable}[WIPA]{\WIPA\ Phonetic Symbols}
\ltidxboth{phonetic}{symbols}
\ltidxboth{linguistic}{symbols}
\ltidxboth{dictionary}{symbols}
\ltidxboth{rotated}{letters}
\ltindex{upside-down letters}
\ltindex{inverted letters}
\ltindex{barred letters}
\ltsubindex{alphabets}{phonetic}
\ltindex{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}[WASY]{\WASY\ Phonetic Symbols}
\idxboth{phonetic}{symbols}
\idxboth{linguistic}{symbols}
\idxboth{dictionary}{symbols}
\idxboth{rotated}{letters}
\index{upside-down letters}
\index{inverted letters}
\subindex{alphabets}{phonetic}
\label{wasy-phonetics}
\begin{tabular}{*3{ll@{\qquad}}ll}
\K\dh & \K\inve & \K\roundz & \K\thorn \\
\K\DH & \K\openo & \K\Thorn & \\
\end{tabular}
\end{symtable}
\begin{symtable}[PHON]{\PHON\ Phonetic Symbols}
\idxboth{phonetic}{symbols}
\idxboth{linguistic}{symbols}
\idxboth{dictionary}{symbols}
\idxboth{rotated}{letters}
\index{upside-down letters}
\index{inverted letters}
\subindex{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}[PHONFC]{\PHONFC\ Phonetic Symbols}
\idxboth{phonetic}{symbols}
\idxboth{linguistic}{symbols}
\idxboth{dictionary}{symbols}
\subindex{alphabets}{phonetic}
\label{phonfc-phonetic}
\begin{tabular}{*3{ll}}
\K[\encfour\PHONFCtextcrd]\textcrd & \K[\encfour\PHONFCtexthtd]\texthtd & \K[\encfour\PHONFCtextpipe]\textpipe \\
\K[\encfour\PHONFCtextcrh]\textcrh & \K[\encfour\PHONFCtexthtk]\texthtk & \K[\encfour\PHONFCtextrtaild]\textrtaild \\
\K[\encfour\PHONFCtextepsilon]\textepsilon & \K[\encfour\PHONFCtexthtp]\texthtp & \K[\encfour\PHONFCtextrtailt]\textrtailt \\
\K[\encfour\PHONFCtextesh]\textesh & \K[\encfour\PHONFCtexthtt]\texthtt & \K[\encfour\PHONFCtextschwa]\textschwa \\
\K[\encfour\PHONFCtextfjlig]\textfjlig & \K[\encfour\PHONFCtextiota]\textiota & \K[\encfour\PHONFCtextscriptv]\textscriptv \\
\K[\encfour\PHONFCtexthtb]\texthtb & \K[\encfour\PHONFCtextltailn]\textltailn & \K[\encfour\PHONFCtextteshlig]\textteshlig \\
\K[\encfour\PHONFCtexthtc]\texthtc & \K[\encfour\PHONFCtextopeno]\textopeno & \K[\encfour\PHONFCtextyogh]\textyogh \\
\end{tabular}
\bigskip
\begin{tablenote}
The idea behind the \PHONFC\ package's phonetic symbols is to
provide an interface to some of the characters in the T4 \fntenc[T4]
\ifFC
(\vref*{fc})
\fi % FC
but using the same names as
\ifTIPA
the \TIPA\ characters presented in \vref{tipa-phonetic}.
\else
the \TIPA\ package.
\fi % TIPA
\end{tablenote}
\end{symtable}
\begin{symtable}[SMTR]{\SMTR\ Transliteration Symbols}
\idxboth{phonetic}{symbols}
\idxboth{linguistic}{symbols}
\idxboth{transliteration}{symbols}
\index{semitic transliteration}
\subindex{alphabets}{phonetic}
\label{semtrans-phonetic}
\begin{tabular}{ll@{\qqquad}ll}
\K\Alif & \K\Ayn \\
\end{tabular}
\end{symtable}
\begin{symtable}{Text-mode Accents}
\index{accents}
\index{accents>acute=acute (\blackacchack\')} % "Generic"
\index{accents>arc=arc (\blackacchack\newtie)} % "Generic"
\index{accents>breve=breve (\blackacchack\u)} % "Generic"
\index{accents>caron=caron (\blackacchack\v)} % "Generic"
\index{accents>cedilla=cedilla (\blackacc\c)} % "Generic"
\index{accents>circumflex=circumflex (\blackacchack\^)} % "Generic"
\index{accents>Cyrillic breve=Cyrillic breve (\enctwoA{\blackacchack\U})} % "Generic"
\index{accents>Cyrillic umlaut=Cyrillic umlaut (\enctwoA{\blackacchack\C})} % "Generic"
\index{accents>diaeresis=di\ae{}resis (\blackacchack\")} % "Generic"
\index{accents>dot=dot (\blackacchack\. or \blackacc\d)} % "Generic"
\index{accents>double acute=double acute (\blackacchack\H)} % "Generic"
\index{accents>double grave=double grave (\enctwoA{\blackacchack\C})} % "Generic"
\index{accents>Cyrillic flex=Cyrillic flex (\enctwoA{\blackacchack\f})} % "Generic"
\index{accents>grave=grave (\blackacchack\`)} % "Generic"
\ifVIET
\index{accents>hook=hook (\encfive{\blackacchack\h})} % "Generic"
\fi % VIET test
\index{accents>inverted breve=inverted breve (\enctwoA{\blackacchack\f})} % "Generic"
\index{accents>macron=macron (\showmacron)} % "Generic"
\index{accents>ogonek=ogonek (\encone{\blackacc\k})} % "Generic"
\index{accents>ring=ring (\blackacchack\r)} % "Generic"
\index{accents>hat}
\subindex{font encodings}{T2A}
\subindex{font encodings}{T2B}
\subindex{font encodings}{T2C}
\subindex{font encodings}{X2}
\label{text-accents}
\begin{tabular}{*3{ll@{\qqquad}}ll}
\Q\" & \QivBAR\ddag & \Qt{\enctwoA}\f$^\P$ & \Q\t \\
\Q\' & \Q\~ & \Qiv\G\ddag & \Q\u \\
\Q\. & \Q\b & \Qv\h\S & \Qiv\U\ddag \\
\Qe[\magicequal][\magicequalname]\= & \Q\c & \Q\H & \Qt{\enctwoA}\U$^\P$ \\
\Q\^ & \Qt{\enctwoA}\C$^\P$ & \Qt\encone\k$^\dag$ & \Q\v \\
\Q\` & \Q\d & \Q\r & \\
\end{tabular}
\par\medskip
\begin{tabular}{ll@{\qqquad}ll}
\Q\newtie$^*$ & \Qc\textcircled$^\parallel$
\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}
\medskip
\begin{tablenote}[\ddag]
Requires the T4 \fntenc[T4], provided by the \FC\ package.
\end{tablenote}
\medskip
\begin{tablenote}[\S]
Requires the T5 \fntenc[T5], provided by the \VIET\ package.
\end{tablenote}
\medskip
\begin{tablenote}[\P]
Requires one of the Cyrillic \fntenc[Cyrillic]s (T2A, T2B, T2C, or
X2). Use the \pkgname{fontenc} package to select an encoding.
\end{tablenote}
\medskip
\begin{tablenote}[\parallel]
See also the \pkgname{circledsteps} package, which uses \TikZ\ to
encircle symbols of any size.
\end{tablenote}
\bigskip
\begin{tablenote}
\subindex{dotless i=dotless $i~(\imath)$}{text mode}
\subindex{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 in encodings that need to
composite\index{composited accents} (i.e.,~combine) letters and
accents. For example, ``\verb|na\"{\i}ve|'' always produces a
correct ``na\"{\i}ve'', while ``\verb|na\"{i}ve|'' yields the rather
odd-looking
\makeatletter
``na\add@accent{127}{i}ve''\index{i=\add@accent{127}{i}}
\makeatother
when using the OT1 \fntenc[OT1] and older versions of \latex. Font
encodings other than OT1 and newer versions of \latex properly
typeset ``\verb|na\"{i}ve|'' as ``na\"{\i}ve''.
\end{tablenote}
\end{symtable}
\begin{longsymtable}[TIPA]{\TIPA\ Text-mode Accents}
\ltindex{accents}
\ltindex{accents>multiple per character}
\ltindex{tilde}
\ltindex{accents>acute=acute (\blackacchack\')} % "Generic"
\ltindex{accents>arc=arc (\blackacchack\newtie)} % "Generic"
\ltindex{accents>breve=breve (\blackacchack\u)} % "Generic"
\ltindex{accents>circumflex=circumflex (\blackacchack\^)} % "Generic"
\ltindex{accents>dot=dot (\blackacchack\. or \blackacc\d)} % "Generic"
\ltindex{accents>grave=grave (\blackacchack\`)} % "Generic"
\ltindex{accents>macron=macron (\showmacron)} % "Generic"
\ltindex{accents>ogonek=ogonek (\encone{\blackacc\k})} % "Generic"
\ltindex{accents>ring=ring (\blackacchack\r)} % "Generic"
\ltindex{accents>hat}
\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\textdoublegrave \\
\Q\textdoublevbaraccent \\
\Q\textfallrise \\
\Q\textgravecircum \\
\Q\textgravedot \\
\Q\textgravemacron \\
\Q\textgravemid \\
\Q\texthighrise \\
\Q\textinvsubbridge \\
\Q\textlowering \\
\Q\textlowrise \\
\Q\textmidacute \\
\Q\textovercross \\
\Q\textoverw \\
\Q\textpolhook \\
\Q\textraising \\
\Q\textretracting \\
\Q\textringmacron \\
\Q\textrisefall \\
\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.
\seedocs{\TIPA}.
\end{tablenote}
\end{longsymtable}
\begin{symtable}[XIPA]{\XIPA\ Text-mode Accents}
\index{accents}
\label{xipa-accents}
\renewcommand{\arraystretch}{1.25} % Keep high and low accents from touching.
\begin{tabular}{ll@{\qqquad}ll}
\Q\bibridge & \Q\partvoiceless \\
\Q\crtilde & \Q\sliding \\
\Q\dottedtilde & \Q\spreadlips \\
\Q\doubletilde & \Q\subcorner \\
\Q\finpartvoice & \Q\subdoublebar \\
\Q\finpartvoiceless & \Q\subdoublevert \\
\Q\inipartvoice & \Q\sublptr \\
\Q\inipartvoiceless & \Q\subrptr \\
\Q\overbridge & \Q\whistle \\
\Q\partvoice \\
\end{tabular}
\end{symtable}
\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}
\index{accents>arc=arc (\blackacchack\newtie)} % "Generic"
\index{accents>ogonek=ogonek (\encone{\blackacc\k})} % "Generic"
\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
``\acarc{\"}{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}[METRE]{\METRE\ Text-mode Accents}
\index{accents}
\index{accents>acute=acute (\blackacchack\')} % "Generic"
\index{accents>breve=breve (\blackacchack\u)} % "Generic"
\index{accents>diaeresis=di\ae{}resis (\blackacchack\")} % "Generic"
\index{accents>grave=grave (\blackacchack\`)} % "Generic"
\index{accents>macron=macron (\showmacron)} % "Generic"
\label{metre-accents}
\begin{tabular}{ll}
\Q\acutus \\
\Q[\METREbreve]\breve \\
\Q\circumflexus \\
\Q\diaeresis \\
\Q\gravis \\
\Q\macron \\
\end{tabular}
\end{symtable}
\begin{symtable}[PHONFC]{\PHONFC\ Text-mode Accents}
\index{accents}
\label{phonfc-accents}
\renewcommand{\arraystretch}{1.25} % Keep high and low accents from touching.
\begin{tabular}{ll}
\Qpfc[\PHONFCtextdoublegrave]\textdoublegrave \\
\Qpfc[\PHONFCtextvbaraccent]\textvbaraccent \\
\Qpfc[\PHONFCtextdoublevbaraccent]\textdoublevbaraccent \\
\end{tabular}
\bigskip
\begin{tablenote}
The idea behind the \PHONFC\ package's text-mode accents is to
provide an interface to some of the accents in the T4 \fntenc[T4]
(accents marked with ``\ddag'' in \vref{text-accents}) but
using the same names as
\ifTIPA
the \TIPA\ accents presented in \vref{tipa-accents}.
\else
the \TIPA\ package.
\fi % TIPA
\end{tablenote}
\end{symtable}
\begin{symtable}[ARCS]{\ARCS\ Text-mode Accents}
\index{accents}
\index{accents>arc=arc (\blackacchack\newtie)} % "Generic"
\label{arcs-accents}
\begin{tabular}{*2{ll}}
\Q\overarc & \Q\underarc \\
\end{tabular}
\bigskip
\begin{tablenote}
The accents shown above scale only to a few characters wide. An
optional macro argument alters the effective width of the accented
characters. \seedocs{\ARCS}.
At the time of this writing (2015/11/12), there exists an
incompatibility between the \ARCS\ package and the \pkgname{relsize}
package, upon which \ARCS\ depends. As a workaround, one should
apply the patch proposed by \person{Michael}{Sharpe} on the
\xetex\ mailing list (Subject:
``\href{
http://tug.org/pipermail/xetex/2013-August/024674.html}{The
arcs package}'', dated 2013/08/25) to prevent spurious text from
being added to the document (as in, ``5.0pt\overarc{A}'' when
``\overarc{A}'' is expected).
\end{tablenote}
\end{symtable}
\begin{symtable}[SMTR]{\SMTR\ Accents}
\index{accents}
\idxboth{phonetic}{symbols}
\idxboth{linguistic}{symbols}
\idxboth{transliteration}{symbols}
\index{semitic transliteration}
\label{semtrans-accents}
\begin{tabular}{ll@{\qqquad}ll}
\Q[\smtrD]\D & \Q[\smtrU]\U \\
\end{tabular}
\bigskip
\begin{tabular}{ll}
\Q[\smtrT]\T$^*$ \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
\verb|\T| is not actually an accent but a command that rotates its
argument 180\textdegree{} using the \pkgname{graphicx} package's
\cmd{\rotatebox} command.
\end{tablenote}
\end{symtable}
\begin{symtable}[OGON]{\OGON\ Accents}
\index{accents}
\index{accents>ogonek=ogonek (\encone{\blackacc\k})} % "Generic"
\label{ogonek}
\begin{tabular}{ll}
\Q[\OGONk]\k \\
\end{tabular}
\end{symtable}
\begin{symtable}[CBEL]{\CBEL\ Accents}
\index{accents}
\index{accents>comma below=comma below (\blackacchack\cb)} % "Generic"
\label{combelow}
\begin{tabular}{ll}
\Q\cb \\
\end{tabular}
\bigskip
\begin{tablenote}
\verb|\cb| places a comma \emph{above} letters with descenders.
Hence, while ``\verb|\cb{s}|'' produces ``\cb{s}'',
``\verb|\cb{g}|'' produces ``\cb{g}''.
\end{tablenote}
\end{symtable}
\begin{symtable}[WIPA]{\WIPA\ Diacritics}
\index{accents}
\index{accents>ring=ring (\blackacchack\r)} % "Generic"
\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]''. \seedocs{\WIPA}.
\end{tablenote}
\end{symtable}
\begin{symtable}{\TC\ Diacritics}
\index{accents}
\index{accents>acute=acute (\blackacchack\')} % "Generic"
\index{accents>breve=breve (\blackacchack\u)} % "Generic"
\index{accents>caron=caron (\blackacchack\v)} % "Generic"
\index{accents>diaeresis=di\ae{}resis (\blackacchack\")} % "Generic"
\index{accents>double acute=double acute (\blackacchack\H)} % "Generic"
\index{accents>grave=grave (\blackacchack\`)} % "Generic"
\index{accents>macron=macron (\showmacron)} % "Generic"
\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. You can use \cmd{\llap} or \cmd{\rlap} to combine
them with other characters.
\ifcomplete
See the discussion of \cmd{\llap} and \cmd{\rlap} on
page~\pageref{desc:rlap} for more information.
\fi
\end{tablenote}
\end{symtable}
\begin{symtable}[MARV]{\MARV\ Diacritics}
\index{accents}
\index{accents>macron=macron (\showmacron)} % "Generic"
\index{arrows}
\label{marv-accent-chars}
\begin{tabular}{*2{ll@{\qquad}}ll}
\K\arrowOver & \K\barOver & \K\StrikingThrough \\
\K\ArrowOver & \K\BarOver & \\
\end{tabular}
\bigskip
\begin{tablenote}
The \MARV\ package defines all of the above as ordinary characters,
not as accents. You can use \cmd{\llap} or \cmd{\rlap} to combine
them with other characters.
\ifcomplete
See the discussion of \cmd{\llap} and \cmd{\rlap} on
page~\pageref{desc:rlap} for more information.
\fi
\end{tablenote}
\end{symtable}
\begin{symtable}{\TC\ Currency Symbols}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\index{euro}
\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}
\bigskip
\usetextmathmessage[*]
\end{symtable}
\begin{symtable}[MARV]{\MARV\ Currency Symbols}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\index{euro}
\label{marv-currency}
\begin{tabular}{*4{ll}ll}
\K\Denarius & \K\EURcr & \K\EURtm & \K\Pfund \\
\K\Ecommerce & \K\EURdig & \K\EyesDollar & \K\Shilling \\
\K\EUR & \K\EURhv & \K\Florin & \\
\end{tabular}
\bigskip
\begin{tablenote}
The different euro signs are meant to be visually compatible with
different fonts---\PSfont{Courier} (\texttt{\string\EURcr}),
\PSfont{Helvetica} (\texttt{\string\EURhv}), \PSfont{Times Roman}
(\texttt{\string\EURtm}), and the \MARV\ digits listed in
\ref{marv-digits} (\texttt{\string\EURdig}).
\ifMDES
The \MDES\ package redefines \cmdI[\MDEStexteuro]{\texteuro} to be
visually compatible with one of three additional fonts:
\PSfont{Utopia}~({\usefont{TS1}{mdput}{m}{n}\char"BF}),
\PSfont{Charter}~({\usefont{TS1}{mdbch}{m}{n}\char"BF}), or
\PSfont{Garamond}~({\usefont{TS1}{mdugm}{m}{n}\char"BF}).
\fi
\end{tablenote}
\end{symtable}
\begin{symtable}[FNTAWE]{\FNTAWE\ Currency Symbols}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\index{euro}
\index{Bitcoin=bitcoin (\faBtc)}
\index{dollar=dollar (\faDollarSign)}
\index{euro=euro (\faEuroSign)}
\index{hryvnia=hryvnia (\faHryvnia)}
\index{lira=lira (\faLiraSign)}
\index{pound=pound (\faPoundSign)}
\index{ruble=ruble (\faRubleSign)}
\index{rupee=rupee (\faRupeeSign)}
\index{shekel=shekel (\faShekelSign)}
\index{tenge=tenge (\faTenge)}
\index{Viacoin=Viacoin (\faViacoin)}
\index{won=won (\faWonSign)}
\index{yen=yen (\faYenSign)}
\label{fontawesome5-currency}
\begin{tabular}{*3{ll}ll}
\K\faBtc & \K\faLiraSign & \K\faShekelSign & \K\faYenSign \\
\K\faDollarSign & \K\faPoundSign & \K\faTenge & \\
\K\faEuroSign & \K\faRubleSign & \K\faViacoin & \\
\K\faHryvnia & \K\faRupeeSign & \K\faWonSign & \\
\end{tabular}
\end{symtable}
\begin{symtable}[WASY]{\WASY\ Currency Symbols}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\index{euro}
\label{wasy-currency}
\begin{tabular}{*2{ll@{\qquad}}ll}
\K\cent & \K\currency & \K\wasyeuro$^*$ \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
\cmdI[\string\wasyeuro]{\wasyeuro} is also available as
\cmdI[\string\WASYeuro]{\euro} unless you specify the
\optname{wasysym}{noeuro} package option.
\end{tablenote}
\end{symtable}
\begin{symtable}[CHINA]{\CHINA\ Currency Symbols}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\index{euro}
\label{china-euro}
\begin{tabular}{ll@{\qquad}ll}
\K\Euro & \K\Pound \\
\end{tabular}
\end{symtable}
\begin{symtable}[TEUB]{\TEUB\ Currency Symbols}
\idxboth{monetary}{symbols}
\idxboth{currency}{symbols}
\index{currency symbols>ancient}
\index{Greek>coins}
\index{Roman coins}
\label{teub-currency}
\begin{tabular}{*2{ll@{\qquad}}ll}
\K\denarius & \K\hemiobelion & \K\tetartemorion \\
\K\dracma & \K\stater & \\
\end{tabular}
\end{symtable}
\begin{symtable}[TFRUP]{\TFRUP\ Currency Symbols}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\label{tfrupee}
\begin{tabular}{ll}
\K\rupee \\
\end{tabular}
\end{symtable}
\begin{symtable}[EUSYM]{\EUSYM\ Euro Signs}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\index{euro}
\label{eurosym-euros}
\begin{tabular}{*4{ll}}
\K\geneuro & \K\geneuronarrow & \K\geneurowide & \K\officialeuro \\
\end{tabular}
\bigskip
\begin{tablenote}
\cmdI[\officialeuro]{\euro} is automatically mapped to one of
the above---by default, \cmdI{\officialeuro}---based on a
\EUSYM\ package option. \seedocs{\EUSYM}. 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}[FOUR]{\FOUR\ Euro Signs}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\index{euro}
\label{fourier-euros}
\begin{tabular}{*2{ll}}
\K\eurologo & \K[\FOURtexteuro]\texteuro \\
\end{tabular}
\end{symtable}
\begin{symtable}{\TC\ Legal Symbols}
\index{copyright}
\index{trademark}
\idxboth{registered}{trademark}
\idxboth{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[]{}
\begin{tablenote}
\hspace*{15pt}%
See \TeXFAQ{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}[FNTAWE]{\FNTAWE\ Legal Symbols}
\index{Creative Commons licenses}
\index{copyright}
\index{trademark}
\idxboth{registered}{trademark}
\idxboth{legal}{symbols}
\label{fontawesome5-legal}
\begin{tabular}{*2{ll}}
\K\faCopyright & \K\faCreativeCommonsRemix \\
\KfaReg\faCopyright & \K\faCreativeCommonsSa \\
\K\faCreativeCommons & \K\faCreativeCommonsSampling \\
\K\faCreativeCommonsBy & \K\faCreativeCommonsSamplingPlus \\
\K\faCreativeCommonsNc & \K\faCreativeCommonsShare \\
\K\faCreativeCommonsNcEu & \K\faCreativeCommonsZero \\
\K\faCreativeCommonsNcJp & \K\faRegistered \\
\K\faCreativeCommonsNd & \KfaReg\faRegistered \\
\K{\faCreativeCommonsPd*} & \K\faTrademark \\
\K\faCreativeCommonsPd & \\
\end{tabular}
\end{symtable}
\begin{symtable}[CCLIC]{\CCLIC\ Creative Commons License Icons}
\idxboth{Creative Commons}{licenses}
\index{copyright}
\idxboth{legal}{symbols}
\label{cclic-creativecommons}
\begin{tabular}{*2{ll@{\qqquad}}ll}
\K\cc & \K\ccnc$^*$ & \K\ccsa$^*$ \\
\K\ccby & \K\ccnd & \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
These symbols utilize the \pkgname{rotating} package and therefore
display improperly in some DVI\index{DVI} viewers.
\end{tablenote}
\end{symtable}
\begin{symtable}[CCICO]{\CCICO\ Creative Commons License Icons}
\idxboth{Creative Commons}{licenses}
\index{copyright}
\idxboth{legal}{symbols}
\label{ccico-creativecommons}
\begin{tabular}{*2{ll@{\qqquad}}ll}
\K\ccAttribution & \K\ccNonCommercialEU & \K\ccShare \\
\K\ccCopy & \K\ccNonCommercialJP & \K\ccShareAlike \\
\K\ccLogo & \K\ccPublicDomain & \K\ccZero \\
\K\ccNoDerivatives & \K\ccRemix & \\
\K\ccNonCommercial & \K\ccSampling & \\
\end{tabular}
\bigskip
\begin{tablenote}
\CCICO\ additionally defines a set of commands for typesetting many
complete Creative Commons licenses (i.e.,~juxtapositions of two or
more of the preceding icons). For example, the \cmdI{\ccbyncnd}
command typesets the ``Attribution--Noncommercial--No Derivative
Works'' license~(``\ccbyncnd''). \seedocs{\CCICO}.
\end{tablenote}
\end{symtable}
\begin{symtable}{\TC\ Old-style Numerals}
\idxboth{old-style}{numerals}
\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{tilde}
\index{quotation marks}
\index{circles}
\label{tc-misc}
\begin{tabular}{ll@{\qquad}ll}
\K\textblank & \K\textpilcrow \\
\K\textbrokenbar & \K\textquotesingle \\
\K\textdblhyphen & \K\textquotestraightbase \\
\K\textdblhyphenchar & \K\textquotestraightdblbase \\
\K\textdiscount & \K\textrecipe \\
\K\textestimated & \K\textreferencemark \\
\K\textinterrobang & \K\textthreequartersemdash \\
\K\textinterrobangdown & \K\texttildelow \\
\K\textnumero & \K\texttwelveudash \\
\K\textopenbullet & \\
\end{tabular}
\end{symtable}
\begin{symtable}[WASY]{Miscellaneous \WASY\ Text-mode Symbols}
\index{long s=long s (\longs)}
\label{wasy-text}
\begin{tabular}{*2{ll@{\qquad}}ll}
\K\longs & \K\permil & \K\wasyparagraph$^*$ \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
\WASY\ defines \cmdI[\protect\Paragraph]{\Paragraph} as a synonym for
\cmdI[\protect\wasyparagraph]{\wasyparagraph}.
\end{tablenote}
\end{symtable}
\idxbothend{body-text}{symbols}
\chapter{Mathematical symbols}
\label{math-symbols}
\idxbothbegin{mathematical}{symbols}
\tablesections
Most, but not all, of the symbols in this chapter 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.
% The following definition is used both in the discussion of disjoint
% union and in the "Joining and overlapping existing symbols" section.
\newcommand{\dotcup}{\ensuremath{\mathaccent\cdot\cup}}
\ifcomplete
Alphanumeric symbols (e.g., ``$\!\mathscr{L}\,$'' and
``$\varmathbb{Z}$'') are usually produced using one of the math
alphabets in \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.
Although there have been many requests on \ctt for a
contradiction\idxboth{contradiction}{symbols} symbol, the ensuing
discussion invariably reveals innumerable ways to represent contradiction
in a proof, including ``\blitza''~(\cmdI{\blitza}),
``$\Rightarrow\Leftarrow$''~(\cmdX{\Rightarrow}\cmdX{\Leftarrow}),\index{arrows}
``$\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$''~(\emph{various}\footnote{In \TX, \PX, and \MTOOLS\ the
symbol is called \cmdX{\coloneqq}. In \ABX\ and \MNS\ it's called
\cmdI[$\string\ABXcoloneq$]{\coloneq}. In \CEQ\ it's called
\cmdX{\colonequals}.}), 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}. Depending upon the context, disjoint
union
%
\index{disjoint union=disjoint union ($\coprod$)}
\index{disjoint union=disjoint union ($\sqcup$)}
\index{disjoint union=disjoint union ($\dotcup$)}
\index{disjoint union=disjoint union ($\oplus$)}
\index{disjoint union=disjoint union ($\amalg$)}
%
may be represented as ``$\coprod$''~(\cmdX{\coprod}),
``$\sqcup$''~(\cmdX{\sqcup}), ``$\dotcup$''~(\cmdX{\dotcup}),
``$\oplus$''~(\cmdX{\oplus}), ``$\amalg$''~(\cmdX{\amalg}), or any of a
number of other symbols.\footnote{\person{Bob}{Tennent} listed these and
other disjoint-union symbol possibilities in a November~2007 post to \ctt.}
Finally, the average\index{average} value of a variable~$x$ is written by
some people as
``$\overline{x}$''~(\verb|\overline{x}|)\incsyms\indexaccent[$\string\blackacc{\string\overline}$]{\overline},
by some people as ``$\langle x \rangle$''~(\cmdX{\langle} \texttt{x}
\cmdX{\rangle}), and by some people as ``$\diameter x$'' or ``$\varnothing
x$''~(\cmdX{\diameter} \texttt{x} or \cmdX{\varnothing} \texttt{x}). The
moral of the story is that you should be careful always to explain your
notation to avoid confusing your readers.
\fi % Matches \ifcomplete
\bigskip
\begin{symtable}{Math-mode Versions of Text Symbols}
\index{underline}
\index{dots (ellipses)>math mode}
\index{ellipses (dots)>math mode}
\label{math-text-vers}
\begin{tabular}{*3{ll}}
\X\mathdollar & \X\mathparagraph & \X\mathsterling \\
\X\mathellipsis & \X\mathsection & \X\mathunderscore \\
\end{tabular}
\bigskip
\usetextmathmessage
\end{symtable}
\begin{symtable}[LOGIX]{\LOGIX\ Math-mode Versions of Text Symbols}
\index{tilde}
\index{underline}
\index{copyright}
\index{quotation marks}
\index{question mark=question mark (\Queston)}
\idxboth{currency}{symbols}
\idxboth{monetary}{symbols}
\label{logix-math-text-vers}
\begin{tabular}{*4{ll}}
\K\AAnd & \K\Dagger & \K\LeftSlash & \K\SingleQuote \\
\K\Ampersand & \K\Daggerr & \K\LngVrtBar & \K\Tild \\
\K\BackQuote & \K\Ddagger & \K\Numbr & \K\TripleQuote \\
\K\BndBar & \K\Ddaggerr & \K\Percnt & \K\Underscore \\
\K\Circumflex & \K\Dollar & \K\Queston & \\
\K\Coma & \K\DoubleQuote & \K\RightSlash & \\
\K\Cpyrght & \K\Exclaim & \K\Semicln & \\
\end{tabular}
\bigskip
\begin{tablenote}
\luaxemessage{\LOGIX}.
\end{tablenote}
\end{symtable}
\begin{symtable}[LOGIX]{\LOGIX\ Basic Operators}
\idxboth{binary}{operators}
\index{asterisks}
\index{asterisks>circled}
\index{asterisks>dotted}
\index{plusses}
\label{logix-basic}
\begin{tabular}{*4{ll}}
\K\Asterick & \K\CircMinusPlus & \K\Divd & \K\Minus \\
\K\CircAsterick & \K\CircPls & \K\Divide & \K\MinusPlus \\
\K\CircDivd & \K\CircPlusMinus & \K\DMinus & \K\Pls \\
\K\CircDivide & \K\CircTimes & \K\DPlus & \K\PlusMinus \\
\K\CircMinus & \K\DAsterisk & \K\DTimes & \K\Times \\
\end{tabular}
\bigskip
\begin{tablenote}
\luaxemessage{\LOGIX}.
\end{tablenote}
\end{symtable}
\begin{symtable}[CMLL]{\CMLL\ Unary Operators}
\idxboth{unary}{operators}
\idxboth{linear logic}{symbols}
\label{cmll-unary}
\begin{tabular}{*2{ll@{\qquad}}ll}
\K[!]\oc$^*$ & \K[\CMLLshneg]\shneg & \K[?]\wn$^*$ \\
\K[\CMLLshift]\shift & \K[\CMLLshpos]\shpos & \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
\cmdI[!]{\oc} and \cmdI[?]{\wn} differ from~``!'' and~``?'' in
terms of their math-mode spacing: \verb|$A=!B$| produces ``$A=!B$'',
for example, while \verb|$A=\oc B$| produces ``$A=\mathord{!}B$''.
\end{tablenote}
\end{symtable}
\begin{symtable}{Binary Operators}
\idxboth{binary}{operators}
\index{division}
\idxboth{logic}{symbols}
\index{rhombuses}
\index{circles}
\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}
\idxboth{boxed}{symbols}
\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}
\bigskip
\begin{tablenote}[*]
\newcommand{\trpose}{{\mathpalette\raiseT{\intercal}}}
\newcommand{\raiseT}[2]{\raisebox{0.25ex}{$#1#2$}}
%
Some people use a superscripted \cmdX{\intercal} for matrix
transpose\index{transpose}: ``\verb|A^\intercal|''~$\mapsto$
``$A^\intercal$''. (See the May~2009 \ctt thread, ``raising math
symbols'', for suggestions about altering the height of the
superscript.) \cmdX{\top} (\vref*{letter-like}), \verb|T|, and
\verb|\mathsf{T}| are other popular choices: ``$A^\top$'',
``$A^T$'', ``$A^{\text{\textsf{T}}}$''.
\end{tablenote}
\end{symtable}
\begin{symtable}[ST]{\ST\ Binary Operators}
\idxboth{binary}{operators}
\idxboth{logic}{symbols}
\idxboth{boxed}{symbols}
\index{arrows}
\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}
\idxboth{logic}{symbols}
\index{circles}
\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}
\index{rhombuses}
\index{plusses}
\index{squares}
\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 preceding 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{longsymtable}[MNS]{\MNS\ Binary Operators}
\ltidxboth{binary}{operators}
\ltindex{plusses}
\ltindex{circles}
\ltindex{rhombuses}
\ltidxboth{database}{symbols}
\label{mns-bin}
\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[\MNSamalg]\amalg & \K[\MNSdoublesqcup]\doublesqcup & \K[\MNSrighttherefore]\righttherefore \\
\K[\MNSast]\ast & \K[\MNSdoublevee]\doublevee & \K[\MNSrightthreetimes]\rightthreetimes \\
\K[\MNSbackslashdiv]\backslashdiv & \K[\MNSdoublewedge]\doublewedge & \K[\MNSrightY]\rightY \\
\K[\MNSbowtie]\bowtie & \K[\MNSdowntherefore]\downtherefore & \K[\MNSrtimes]\rtimes \\
\K[\MNSbullet]\bullet & \K[\MNSdownY]\downY & \K[\MNSslashdiv]\slashdiv \\
\K[\MNScap]\cap & \K[\MNSdtimes]\dtimes & \K[\MNSsmallprod]\smallprod \\
\K[\MNScapdot]\capdot & \K[\MNSfivedots]\fivedots & \K[\MNSsqcap]\sqcap \\
\K[\MNScapplus]\capplus & \K[\MNShbipropto]\hbipropto & \K[\MNSsqcapdot]\sqcapdot \\
\K[\MNScdot]\cdot & \K[\MNShdotdot]\hdotdot & \K[\MNSsqcapplus]\sqcapplus \\
\K[\MNScirc]\circ & \K[\MNSlefthalfcap]\lefthalfcap & \K[\MNSsqcup]\sqcup \\
\K[\MNSclosedcurlyvee]\closedcurlyvee & \K[\MNSlefthalfcup]\lefthalfcup & \K[\MNSsqcupdot]\sqcupdot \\
\K[\MNSclosedcurlywedge]\closedcurlywedge & \K[\MNSlefttherefore]\lefttherefore & \K[\MNSsqcupplus]\sqcupplus \\
\K[\MNScup]\cup & \K[\MNSleftthreetimes]\leftthreetimes & \K[\MNSsquaredots]\squaredots \\
\K[\MNScupdot]\cupdot & \K[\MNSleftY]\leftY & \K[\MNStimes]\times \\
\K[\MNScupplus]\cupplus & \K[\MNSltimes]\ltimes & \K[\MNSudotdot]\udotdot \\
\K[\MNScurlyvee]\curlyvee & \K[\MNSmedbackslash]\medbackslash & \K[\MNSuptherefore]\uptherefore \\
\K[\MNScurlyveedot]\curlyveedot & \K[\MNSmedcircle]\medcircle & \K[\MNSupY]\upY \\
\K[\MNScurlywedge]\curlywedge & \K[\MNSmedslash]\medslash & \K[\MNSutimes]\utimes \\
\K[\MNScurlywedgedot]\curlywedgedot & \K[\MNSmedvert]\medvert & \K[\MNSvbipropto]\vbipropto \\
\K[\MNSddotdot]\ddotdot & \K[\MNSmedvertdot]\medvertdot & \K[\MNSvdotdot]\vdotdot \\
\K[\MNSdiamonddots]\diamonddots & \K[\MNSminus]\minus & \K[\MNSvee]\vee \\
\K[\MNSdiv]\div & \K[\MNSminusdot]\minusdot & \K[\MNSveedot]\veedot \\
\K[\MNSdotmedvert]\dotmedvert & \K[\MNSmp]\mp & \K[\MNSvertbowtie]\vertbowtie \\
\K[\MNSdotminus]\dotminus & \K[\MNSneswbipropto]\neswbipropto & \K[\MNSvertdiv]\vertdiv \\
\K[\MNSdoublecap]\doublecap & \K[\MNSnwsebipropto]\nwsebipropto & \K[\MNSwedge]\wedge \\
\K[\MNSdoublecup]\doublecup & \K[\MNSplus]\plus & \K[\MNSwedgedot]\wedgedot \\
\K[\MNSdoublecurlyvee]\doublecurlyvee & \K[\MNSpm]\pm & \K[\MNSwreath]\wreath \\
\K[\MNSdoublecurlywedge]\doublecurlywedge & \K[\MNSrighthalfcap]\righthalfcap & \\
\K[\MNSdoublesqcap]\doublesqcap & \K[\MNSrighthalfcup]\righthalfcup & \\
\end{longtable}
\bigskip
\begin{tablenote}
\MNS\ defines \cmdI[\MNSmedbackslash]{\setminus} and
\cmdI[\MNSmedbackslash]{\smallsetminus} as synonyms for
\cmdI[\MNSmedbackslash]{\medbackslash}; \cmdI[\MNSbowtie]{\Join} as
a synonym for \cmdI[\MNSbowtie]{\bowtie}; \cmdI[\MNSwreath]{\wr} as
a synonym for \cmdI[\MNSwreath]{\wreath};
\cmdI[\MNSmedvert]{\shortmid} as a synonym for
\cmdI[\MNSmedvert]{\medvert}; \cmdI[\MNSdoublecap]{\Cap} as a
synonym for \cmdI[\MNSdoublecap]{\doublecap};
\cmdI[\MNSdoublecup]{\Cup} as a synonym for
\cmdI[\MNSdoublecup]{\doublecup}; and, \cmdI[\MNScupplus]{\uplus} as
a synonym for \cmdI[\MNScupplus]{\cupplus}.
\end{tablenote}
\end{longsymtable}
\begin{longsymtable}[FDSYM]{\FDSYM\ Binary Operators}
\ltidxboth{binary}{operators}
\ltindex{plusses}
\ltidxboth{database}{symbols}
\label{fdsym-bin}
\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[\FDSYMamalg]\amalg & \K[\FDSYMdoublesqcup]\doublesqcup & \K[\FDSYMrightY]\rightY \\
\K[\FDSYMast]\ast & \K[\FDSYMdoublevee]\doublevee & \K[\FDSYMrtimes]\rtimes \\
\K[\FDSYMbarwedge]\barwedge & \K[\FDSYMdoublewedge]\doublewedge & \K[\FDSYMsetminus]\setminus \\
\K[\FDSYMbowtie]\bowtie & \K[\FDSYMdownY]\downY & \K[\FDSYMsqcap]\sqcap \\
\K[\FDSYMcap]\cap & \K[\FDSYMdtimes]\dtimes & \K[\FDSYMsqcapdot]\sqcapdot \\
\K[\FDSYMcapdot]\capdot & \K[\FDSYMhdotdot]\hdotdot & \K[\FDSYMsqcapplus]\sqcapplus \\
\K[\FDSYMcapplus]\capplus & \K[\FDSYMintercal]\intercal & \K[\FDSYMsqcup]\sqcup \\
\K[\FDSYMcdot]\cdot & \K[\FDSYMintprod]\intprod & \K[\FDSYMsqcupdot]\sqcupdot \\
\X[\FDSYMcenterdot]\centerdot & \K[\FDSYMintprodr]\intprodr & \K[\FDSYMsqcupplus]\sqcupplus \\
\K[\FDSYMcup]\cup & \K[\FDSYMleftthreetimes]\leftthreetimes & \K[\FDSYMtimes]\times \\
\K[\FDSYMcupdot]\cupdot & \K[\FDSYMleftY]\leftY & \K[\FDSYMtimesbar]\timesbar \\
\K[\FDSYMcupplus]\cupplus & \K[\FDSYMltimes]\ltimes & \K[\FDSYMudotdot]\udotdot \\
\K[\FDSYMcurlyvee]\curlyvee & \K[\FDSYMmedbackslash]\medbackslash & \K[\FDSYMupbowtie]\upbowtie \\
\K[\FDSYMcurlywedge]\curlywedge & \K[\FDSYMmedslash]\medslash & \K[\FDSYMupY]\upY \\
\K[\FDSYMddotdot]\ddotdot & \K[\FDSYMminus]\minus & \K[\FDSYMutimes]\utimes \\
\K[\FDSYMdiv]\div & \K[\FDSYMminusdot]\minusdot & \K[\FDSYMvaramalg]\varamalg \\
\K[\FDSYMdivideontimes]\divideontimes & \K[\FDSYMminusfdots]\minusfdots & \K[\FDSYMvdotdot]\vdotdot \\
\K[\FDSYMdivslash]\divslash & \K[\FDSYMminusrdots]\minusrdots & \K[\FDSYMvdots]\vdots \\
\K[\FDSYMdotminus]\dotminus & \K[\FDSYMmp]\mp & \K[\FDSYMvee]\vee \\
\K[\FDSYMdotplus]\dotplus & \K[\FDSYMplus]\plus & \K[\FDSYMveebar]\veebar \\
\K[\FDSYMdottimes]\dottimes & \K[\FDSYMplusdot]\plusdot & \K[\FDSYMveedot]\veedot \\
\K[\FDSYMdoublebarwedge]\doublebarwedge & \K[\FDSYMpm]\pm & \K[\FDSYMveedoublebar]\veedoublebar \\
\K[\FDSYMdoublecap]\doublecap & \K[\FDSYMpullback]\pullback & \K[\FDSYMwedge]\wedge \\
\K[\FDSYMdoublecup]\doublecup & \K[\FDSYMpushout]\pushout & \K[\FDSYMwedgedot]\wedgedot \\
\K[\FDSYMdoublesqcap]\doublesqcap & \K[\FDSYMrightthreetimes]\rightthreetimes & \K[\FDSYMwreath]\wreath \\
\end{longtable}
\bigskip
\begin{tablenote}
\FDSYM\ defines \cmdI[\string\FDSYMbtimes]{\btimes} as a synonym for
\cmdI[\string\FDSYMdtimes]{\dtimes}; \cmdI[\string\FDSYMCap]{\Cap}
as a synonym for \cmdI[\string\FDSYMdoublecap]{\doublecap};
\cmdI[\string\FDSYMCup]{\Cup} as a synonym for
\cmdI[\string\FDSYMdoublecup]{\doublecup};
\cmdI[\string\FDSYMhookupminus]{\hookupminus} as a synonym for
\cmdI[\string\FDSYMintprodr]{\intprodr};
\cmdI[\string\FDSYMhourglass]{\hourglass} as a synonym for
\cmdI[\string\FDSYMupbowtie]{\upbowtie};
\cmdI[\string\FDSYMland]{\land} as a synonym for
\cmdI[\string\FDSYMwedge]{\wedge}; \cmdI[\string\FDSYMlor]{\lor} as
a synonym for \cmdI[\string\FDSYMvee]{\vee};
\cmdI[\string\FDSYMminushookup]{\minushookup} as a synonym for
\cmdI[\string\FDSYMintprod]{\intprod};
\cmdI[\string\FDSYMsmalldivslash]{\smalldivslash} as a synonym for
\cmdI[\string\FDSYMmedslash]{\medslash};
\cmdI[\string\FDSYMsmallsetminus]{\smallsetminus} as a synonym for
\cmdI[\string\FDSYMmedbackslash]{\medbackslash};
\cmdI[\string\FDSYMSqcap]{\Sqcap} as a synonym for
\cmdI[\string\FDSYMdoublesqcap]{\doublesqcap};
\cmdI[\string\FDSYMSqcup]{\Sqcup} as a synonym for
\cmdI[\string\FDSYMdoublesqcup]{\doublesqcup};
\cmdI[\string\FDSYMttimes]{\ttimes} as a synonym for
\cmdI[\string\FDSYMutimes]{\utimes};
\cmdI[\string\FDSYMlJoin]{\lJoin} as a synonym for
\cmdI[\string\FDSYMltimes]{\ltimes};
\cmdI[\string\FDSYMrJoin]{\rJoin} as a synonym for
\cmdI[\string\FDSYMrtimes]{\rtimes}; \cmdI[\string\FDSYMJoin]{\Join}
and \cmdI[\string\FDSYMlrtimes]{\lrtimes} as synonyms for
\cmdI[\string\FDSYMbowtie]{\bowtie};
\cmdI[\string\FDSYMuplus]{\uplus} as a synonym for
\cmdI[\string\FDSYMcupplus]{\cupplus};
\cmdI[\string\FDSYMveeonvee]{\veeonvee} as a synonym for
\cmdI[\string\FDSYMdoublevee]{\doublevee};
\cmdI[\string\FDSYMwedgeonwedge]{\wedgeonwedge} as a synonym for
\cmdI[\string\FDSYMdoublewedge]{\doublewedge}; and
\cmdI[\string\FDSYMwr]{\wr} as a synonym for
\cmdI[\string\FDSYMwreath]{\wreath}).
\end{tablenote}
\end{longsymtable}
\begin{longsymtable}[BSK]{\BSK\ Binary Operators}
\ltidxboth{binary}{operators}
\ltindex{plusses}
\ltindex{asterisks}
\label{bsk-bin}
\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[\BSKast]\ast & \K[\BSKdottimes]\dottimes & \K[\BSKrtimesblack]\rtimesblack \\
\K[\BSKbaro]\baro & \K[\BSKdoublebarwedge]\doublebarwedge & \K[\BSKsmallsetminus]\smallsetminus \\
\K[\BSKbarwedge]\barwedge & \K[\BSKfatsemi]\fatsemi & \K[\BSKsmashtimes]\smashtimes \\
\K[\BSKbbslash]\bbslash & \K[\BSKgtrdot]\gtrdot & \K[\BSKsquplus]\squplus \\
\K[\BSKbinampersand]\binampersand & \K[\BSKintercal]\intercal & \K[\BSKsslash]\sslash \\
\K[\BSKbindnasrepma]\bindnasrepma & \K[\BSKlbag]\lbag & \K[\BSKtimes]\times \\
\K[\BSKblackbowtie]\blackbowtie & \K[\BSKlblackbowtie]\lblackbowtie & \K[\BSKuplus]\uplus \\
\K[\BSKbowtie]\bowtie & \K[\BSKleftslice]\leftslice & \K[\BSKvarcap]\varcap \\
\K[\BSKcap]\cap & \K[\BSKleftthreetimes]\leftthreetimes & \K[\BSKvarcup]\varcup \\
\K[\BSKCap]\Cap & \K[\BSKlessdot]\lessdot & \K[\BSKvarintercal]\varintercal \\
\K[\BSKcdot]\cdot & \K[\BSKltimes]\ltimes & \K[\BSKvarsqcap]\varsqcap \\
\K[\BSKcenterdot]\centerdot & \K[\BSKltimesblack]\ltimesblack & \K[\BSKvarsqcup]\varsqcup \\
\K[\BSKcircplus]\circplus & \K[\BSKmerge]\merge & \K[\BSKvartimes]\vartimes \\
\K[\BSKcoAsterisk]\coAsterisk & \K[\BSKminuso]\minuso & \K[\BSKvee]\vee \\
\K[\BSKconvolution]\convolution & \K[\BSKmoo]\moo & \K[\BSKVee]\Vee \\
\K[\BSKcup]\cup & \K[\BSKmp]\mp & \K[\BSKveebar]\veebar \\
\K[\BSKCup]\Cup & \K[\BSKnplus]\nplus & \K[\BSKveeonvee]\veeonvee \\
\K[\BSKcupleftarrow]\cupleftarrow & \K[\BSKpluscirc]\pluscirc & \K[\BSKwedge]\wedge \\
\K[\BSKcurlyvee]\curlyvee & \K[\BSKplustrif]\plustrif & \K[\BSKWedge]\Wedge \\
\K[\BSKcurlywedge]\curlywedge & \K[\BSKpm]\pm & \K[\BSKYdown]\Ydown \\
\K[\BSKdagger]\dagger & \K[\BSKrbag]\rbag & \K[\BSKYleft]\Yleft \\
\K[\BSKddagger]\ddagger & \K[\BSKrblackbowtie]\rblackbowtie & \K[\BSKYright]\Yright \\
\K[\BSKdiv]\div & \K[\BSKrightslice]\rightslice & \K[\BSKYup]\Yup \\
\K[\BSKdivideontimes]\divideontimes & \K[\BSKrightthreetimes]\rightthreetimes & \\
\K[\BSKdotplus]\dotplus & \K[\BSKrtimes]\rtimes & \\
\end{longtable}
\end{longsymtable}
\begin{longsymtable}[STIX]{\STIX\ Binary Operators}
\ltidxboth{binary}{operators}
\ltindex{plusses}
\label{stix-bin}
\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[\STIXamalg]\amalg & \K[\STIXfcmp]\fcmp & \K[\STIXsqcup]\sqcup \\
\K[\STIXast]\ast & \K[\STIXfracslash]\fracslash & \K[\STIXSqcup]\Sqcup \\
\K[\STIXbarcap]\barcap & \K[\STIXintercal]\intercal & \K[\STIXsslash]\sslash \\
\K[\STIXbarcup]\barcup & \K[\STIXinterleave]\interleave & \K[\STIXthreedotcolon]\threedotcolon \\
\K[\STIXbarvee]\barvee & \K[\STIXintprod]\intprod & \K[\STIXtimes]\times \\
\K[\STIXbarwedge]\barwedge & \K[\STIXintprodr]\intprodr & \K[\STIXtimesbar]\timesbar \\
\K[\STIXbigslopedvee]\bigslopedvee & \K[\STIXinvlazys]\invlazys & \K[\STIXtminus]\tminus \\
\K[\STIXbigslopedwedge]\bigslopedwedge & \K[\STIXleftthreetimes]\leftthreetimes & \K[\STIXtplus]\tplus \\
\K[\STIXbtimes]\btimes & \K[\STIXlhd]\lhd & \K[\STIXtripleplus]\tripleplus \\
\K[\STIXcap]\cap & \K[\STIXltimes]\ltimes & \K[\STIXtrslash]\trslash \\
\K[\STIXCap]\Cap & \K[\STIXmidbarvee]\midbarvee & \K[\STIXtwocaps]\twocaps \\
\K[\STIXcapbarcup]\capbarcup & \K[\STIXmidbarwedge]\midbarwedge & \K[\STIXtwocups]\twocups \\
\K[\STIXcapdot]\capdot & \K[\STIXminusdot]\minusdot & \K[\STIXtypecolon]\typecolon \\
\K[\STIXcapovercup]\capovercup & \K[\STIXminusfdots]\minusfdots & \K[\STIXuminus]\uminus \\
\K[\STIXcapwedge]\capwedge & \K[\STIXminusrdots]\minusrdots & \K[\STIXunlhd]\unlhd \\
\K[\STIXclosedvarcap]\closedvarcap & \K[\STIXmp]\mp & \K[\STIXunrhd]\unrhd \\
\K[\STIXclosedvarcup]\closedvarcup & \K[\STIXnhVvert]\nhVvert & \K[\STIXupand]\upand \\
\K[\STIXclosedvarcupsmashprod]\closedvarcupsmashprod & \K[\STIXopluslhrim]\opluslhrim & \K[\STIXuplus]\uplus \\
\K[\STIXcommaminus]\commaminus & \K[\STIXoplusrhrim]\oplusrhrim & \K[\STIXvarbarwedge]\varbarwedge \\
\K[\STIXcup]\cup & \K[\STIXotimeslhrim]\otimeslhrim & \K[\STIXvardoublebarwedge]\vardoublebarwedge \\
\K[\STIXCup]\Cup & \K[\STIXotimesrhrim]\otimesrhrim & \K[\STIXvarveebar]\varveebar \\
\K[\STIXcupbarcap]\cupbarcap & \K[\STIXplusdot]\plusdot & \K[\STIXvectimes]\vectimes \\
\K[\STIXcupdot]\cupdot & \K[\STIXpluseqq]\pluseqq & \K[\STIXVee]\Vee \\
\K[\STIXcupleftarrow]\cupleftarrow & \K[\STIXplushat]\plushat & \K[\STIXvee]\vee \\
\K[\STIXcupovercap]\cupovercap & \K[\STIXplussim]\plussim & \K[\STIXveebar]\veebar \\
\K[\STIXcupvee]\cupvee & \K[\STIXplussubtwo]\plussubtwo & \K[\STIXveedot]\veedot \\
\K[\STIXcurlyvee]\curlyvee & \K[\STIXplustrif]\plustrif & \K[\STIXveedoublebar]\veedoublebar \\
\K[\STIXcurlywedge]\curlywedge & \K[\STIXpm]\pm & \K[\STIXveemidvert]\veemidvert \\
\K[\STIXdagger]\dagger & \K[\STIXrhd]\rhd & \K[\STIXveeodot]\veeodot \\
\K[\STIXddagger]\ddagger & \K[\STIXrightthreetimes]\rightthreetimes & \K[\STIXveeonvee]\veeonvee \\
\K[\STIXdiv]\div & \K[\STIXringplus]\ringplus & \K[\STIXWedge]\Wedge \\
\K[\STIXdivideontimes]\divideontimes & \K[\STIXrsolbar]\rsolbar & \K[\STIXwedge]\wedge \\
\K[\STIXdotminus]\dotminus & \K[\STIXrtimes]\rtimes & \K[\STIXwedgebar]\wedgebar \\
\K[\STIXdotplus]\dotplus & \K[\STIXsetminus]\setminus & \K[\STIXwedgedot]\wedgedot \\
\K[\STIXdottimes]\dottimes & \K[\STIXshuffle]\shuffle & \K[\STIXwedgedoublebar]\wedgedoublebar \\
\K[\STIXdoublebarvee]\doublebarvee & \K[\STIXsimplus]\simplus & \K[\STIXwedgemidvert]\wedgemidvert \\
\K[\STIXdoublebarwedge]\doublebarwedge & \K[\STIXsmallsetminus]\smallsetminus & \K[\STIXwedgeodot]\wedgeodot \\
\K[\STIXdoubleplus]\doubleplus & \K[\STIXsmashtimes]\smashtimes & \K[\STIXwedgeonwedge]\wedgeonwedge \\
\K[\STIXdsol]\dsol & \K[\STIXsqcap]\sqcap & \K[\STIXwr]\wr \\
\K[\STIXeqqplus]\eqqplus & \K[\STIXSqcap]\Sqcap & \\
\end{longtable}
\begin{tablenote}
\STIX\ defines \cmdI[\string\STIXland]{\land} as a synonym
for \cmdI[\string\STIXwedge]{\wedge}, \cmdI[\string\STIXlor]{\lor}
as a synonym for \cmdI[\string\STIXvee]{\vee},
\cmdI[\string\STIXdoublecap]{\doublecap} as a synonym for
\cmdI[\string\STIXCap]{\Cap}, and
\cmdI[\string\STIXdoublecup]{\doublecup} as a synonym for
\cmdI[\string\STIXCup]{\Cup}.
\end{tablenote}
\end{longsymtable}
\begin{symtable}[MDES]{\MDES\ Binary Operators}
\idxboth{binary}{operators}
\label{mdes-bin}
\begin{tabular}{*3{ll}}
\K[\MDESdtimes]\dtimes & \K[\MDESudtimes]\udtimes & \K[\MDESutimes]\utimes \\
\end{tabular}
\bigskip
\begin{tablenote}
\ifAMS
The \MDES\ package additionally provides versions of each of the
binary operators shown in \vref{ams-bin}.
\else
The \MDES\ package additionally provides versions of each of the
\AMS\ binary operators.
\fi
\end{tablenote}
\end{symtable}
\begin{symtable}[PDFMSYM]{\PDFMSYM\ Binary Operators}
\idxboth{binary}{operators}
\label{pdfmsym-bin}
\begin{tabular}{*3{ll}}
\X\circwedge & \X\divs & \X\ndivs \\
\X\dcup & \X\dwedge & \\
\end{tabular}
\bigskip
\begin{tablenote}
\pdfmsymmessage.
\end{tablenote}
\end{symtable}
\begin{symtable}[CMLL]{\CMLL\ Binary Operators}
\idxboth{binary}{operators}
\label{cmll-bin}
\begin{tabular}{ll@{\qquad}ll}
\K[\CMLLparr]\parr$^*$ & \K[\&]\with$^\dag$ \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
\CMLL\ defines \cmdI[\CMLLparr]{\invamp} as a synonym for
\cmdI[\CMLLparr]{\parr}.
\end{tablenote}
\medskip
\begin{tablenote}[\dag]
\cmdI[\&]{\with} differs from~\cmdI{\&} in terms of its math-mode
spacing: \verb|$A \& B$| produces ``$A \& B$'', for example, while
\verb|$A \with B$| produces ``$A\mathbin{\&}B$''.
\end{tablenote}
\end{symtable}
\begin{symtable}[SHUF]{\SHUF\ Binary Operators}
\idxboth{binary}{operators}
\index{shuffle product=shuffle product (\shuffle)}
\index{complete shuffle product=complete shuffle product (\cshuffle)}
\label{shuf-bin}
\begin{tabular}{ll@{\qquad}ll}
\K\cshuffle & \K\shuffle \\
\end{tabular}
\end{symtable}
\begin{symtable}[RESMES]{\RESMES\ Binary Operators}
\idxboth{binary}{operators}
\index{restriction of a measure}
\label{resmes-bin}
\begin{tabular}{ll}
\X\resmes \\
\end{tabular}
\bigskip
\begin{tablenote}
This symbol notates the restriction of a measure to a set, as in
$\phi \resmes Y$.
\end{tablenote}
\end{symtable}
\begin{symtable}[LOGIX]{\LOGIX\ Logical Operators}
\idxboth{binary}{operators}
\idxboth{logic}{symbols}
\label{logix-bin}
\begin{tabular}{*4{ll}}
\K\CircInvNt & \K\CircXor & \K\Nand & \K\SbNd \\
\K\CircNand & \K\Dnd & \K\Nd & \K\SbNor \\
\K\CircNd & \K\Dnt & \K\Ngt & \K\SbOr \\
\K\CircNgt & \K\Dor & \K\Nor & \K\SbXor \\
\K\CircNor & \K\InvNt & \K\Nt & \K\Shfr \\
\K\CircNt & \K\Lnand & \K\Or & \K\Xor \\
\K\CircOr & \K\Lnor & \K\SbNand & \\
\end{tabular}
\bigskip
\begin{tablenote}
\luaxemessage{\LOGIX}.
\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}
\idxboth{logic}{symbols}
\idxboth{boxed}{symbols}
\index{asterisks}
\index{asterisks>boxed}
\index{asterisks>circled}
\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}[MNS]{\MNS\ Geometric Binary Operators}
\idxboth{binary}{operators}
\idxboth{logic}{symbols}
\index{rhombuses}
\label{mns-geometric-bin}
\begin{tabular}{*3{ll}}
\K[\MNSboxbackslash]\boxbackslash & \K[\MNSfilledmedtriangledown]\filledmedtriangledown & \K[\MNSocirc]\ocirc \\
\K[\MNSboxbox]\boxbox & \K[\MNSfilledmedtriangleleft]\filledmedtriangleleft & \K[\MNSodot]\odot \\
\K[\MNSboxdot]\boxdot & \K[\MNSfilledmedtriangleright]\filledmedtriangleright & \K[\MNSominus]\ominus \\
\K[\MNSboxminus]\boxminus & \K[\MNSfilledmedtriangleup]\filledmedtriangleup & \K[\MNSoplus]\oplus \\
\K[\MNSboxplus]\boxplus & \K[\MNSfilledsquare]\filledsquare & \K[\MNSoslash]\oslash \\
\K[\MNSboxslash]\boxslash & \K[\MNSfilledstar]\filledstar & \K[\MNSostar]\ostar \\
\K[\MNSboxtimes]\boxtimes & \K[\MNSfilledtriangledown]\filledtriangledown & \K[\MNSotimes]\otimes \\
\K[\MNSboxvert]\boxvert & \K[\MNSfilledtriangleleft]\filledtriangleleft & \K[\MNSotriangle]\otriangle \\
\K[\MNSdiamondbackslash]\diamondbackslash & \K[\MNSfilledtriangleright]\filledtriangleright & \K[\MNSovert]\overt \\
\K[\MNSdiamonddiamond]\diamonddiamond & \K[\MNSfilledtriangleup]\filledtriangleup & \K[\MNSpentagram]\pentagram \\
\K[\MNSdiamonddot]\diamonddot & \K[\MNSmeddiamond]\meddiamond & \K[\MNSsmalldiamond]\smalldiamond \\
\K[\MNSdiamondminus]\diamondminus & \K[\MNSmedsquare]\medsquare & \K[\MNSsmallsquare]\smallsquare \\
\K[\MNSdiamondplus]\diamondplus & \K[\MNSmedstar]\medstar & \K[\MNSsmallstar]\smallstar \\
\K[\MNSdiamondslash]\diamondslash & \K[\MNSmedtriangledown]\medtriangledown & \K[\MNSsmalltriangledown]\smalltriangledown \\
\K[\MNSdiamondtimes]\diamondtimes & \K[\MNSmedtriangleleft]\medtriangleleft & \K[\MNSsmalltriangleleft]\smalltriangleleft \\
\K[\MNSdiamondvert]\diamondvert & \K[\MNSmedtriangleright]\medtriangleright & \K[\MNSsmalltriangleright]\smalltriangleright \\
\K[\MNSdownslice]\downslice & \K[\MNSmedtriangleup]\medtriangleup & \K[\MNSsmalltriangleup]\smalltriangleup \\
\K[\MNSfilleddiamond]\filleddiamond & \K[\MNSoast]\oast & \K[\MNSthinstar]\thinstar \\
\K[\MNSfilledmedsquare]\filledmedsquare & \K[\MNSobackslash]\obackslash & \K[\MNSupslice]\upslice \\
\end{tabular}
\bigskip
\begin{tablenote}
\MNS\ defines \cmdI[\MNSfilledmedsquare]{\blacksquare} as a synonym
for \cmdI[\MNSfilledmedsquare]{\filledmedsquare};
\cmdI[\MNSmedsquare]{\square} and \cmdI[\MNSmedsquare]{\Box} as
synonyms for \cmdI[\MNSmedsquare]{\medsquare};
\cmdI[\MNSsmalldiamond]{\diamond} as a synonym for
\cmdI[\MNSsmalldiamond]{\smalldiamond};
\cmdI[\MNSmeddiamond]{\Diamond} as a synonym for
\cmdI[\MNSmeddiamond]{\meddiamond}; \cmdI[\MNSthinstar]{\star} as a
synonym for \cmdI[\MNSthinstar]{\thinstar};
\cmdI[\MNSoast]{\circledast} as a synonym for
\cmdI[\MNSoast]{\oast}; \cmdI[\MNSocirc]{\circledcirc} as a synonym
for \cmdI[\MNSocirc]{\ocirc}; and, \cmdI[\MNSominus]{\circleddash}
as a synonym for \cmdI[\MNSominus]{\ominus}.
\end{tablenote}
\end{symtable}
\begin{longsymtable}[FDSYM]{\FDSYM\ Geometric Binary Operators}
\ltidxboth{binary}{operators}
\ltidxboth{boxed}{symbols}
\ltindex{circles}
\ltindex{squares}
\ltindex{triangles}
\ltindex{rhombuses}
\ltindex{stars}
\ltindex{asterisks}
\ltindex{asterisks>circled}
\label{fdsym-geometric-bin}
\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[\FDSYMboxbackslash]\boxbackslash & \K[\FDSYMmedblacktriangledown]\medblacktriangledown & \K[\FDSYMoplus]\oplus \\
\K[\FDSYMboxbox]\boxbox & \K[\FDSYMmedblacktriangleleft]\medblacktriangleleft & \K[\FDSYMoslash]\oslash \\
\K[\FDSYMboxdot]\boxdot & \K[\FDSYMmedblacktriangleright]\medblacktriangleright & \K[\FDSYMotimes]\otimes \\
\K[\FDSYMboxminus]\boxminus & \K[\FDSYMmedblacktriangleup]\medblacktriangleup & \K[\FDSYMovert]\overt \\
\K[\FDSYMboxplus]\boxplus & \K[\FDSYMmedcircle]\medcircle & \K[\FDSYMsmallblackcircle]\smallblackcircle \\
\K[\FDSYMboxslash]\boxslash & \K[\FDSYMmeddiamond]\meddiamond & \K[\FDSYMsmallblackdiamond]\smallblackdiamond \\
\K[\FDSYMboxtimes]\boxtimes & \K[\FDSYMmedslash]\medslash & \K[\FDSYMsmallblacksquare]\smallblacksquare \\
\K[\FDSYMboxvert]\boxvert & \K[\FDSYMmedsquare]\medsquare & \K[\FDSYMsmallblackstar]\smallblackstar \\
\K[\FDSYMdiamondbackslash]\diamondbackslash & \K[\FDSYMmedtriangledown]\medtriangledown & \K[\FDSYMsmallblacktriangledown]\smallblacktriangledown \\
\K[\FDSYMdiamonddiamond]\diamonddiamond & \K[\FDSYMmedtriangleleft]\medtriangleleft & \K[\FDSYMsmallblacktriangleleft]\smallblacktriangleleft \\
\K[\FDSYMdiamonddot]\diamonddot & \K[\FDSYMmedtriangleright]\medtriangleright & \K[\FDSYMsmallblacktriangleright]\smallblacktriangleright \\
\K[\FDSYMdiamondminus]\diamondminus & \K[\FDSYMmedtriangleup]\medtriangleup & \K[\FDSYMsmallblacktriangleup]\smallblacktriangleup \\
\K[\FDSYMdiamondplus]\diamondplus & \K[\FDSYMmedwhitestar]\medwhitestar & \K[\FDSYMsmallcircle]\smallcircle \\
\K[\FDSYMdiamondslash]\diamondslash & \K[\FDSYMoast]\oast & \K[\FDSYMsmalldiamond]\smalldiamond \\
\K[\FDSYMdiamondtimes]\diamondtimes & \K[\FDSYMobackslash]\obackslash & \K[\FDSYMsmallsquare]\smallsquare \\
\K[\FDSYMdiamondvert]\diamondvert & \K[\FDSYMocirc]\ocirc & \K[\FDSYMsmalltriangledown]\smalltriangledown \\
\K[\FDSYMmedblackcircle]\medblackcircle & \K[\FDSYModash]\odash & \K[\FDSYMsmalltriangleleft]\smalltriangleleft \\
\K[\FDSYMmedblackdiamond]\medblackdiamond & \K[\FDSYModot]\odot & \K[\FDSYMsmalltriangleright]\smalltriangleright \\
\K[\FDSYMmedblacksquare]\medblacksquare & \K[\FDSYMoequal]\oequal & \K[\FDSYMsmalltriangleup]\smalltriangleup \\
\K[\FDSYMmedblackstar]\medblackstar & \K[\FDSYMominus]\ominus & \K[\FDSYMsmallwhitestar]\smallwhitestar \\
\end{longtable}
\FDSYM\ defines synonyms for most of the preceding symbols:
\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[\FDSYMblackdiamond]{\blackdiamond} & \K[\FDSYMdiamond]{\diamond} & \K[\FDSYMsmblkcircle]{\smblkcircle} \\
\K[\FDSYMblacktriangle]{\blacktriangle} & \K[\FDSYMDiamond]{\Diamond} & \K[\FDSYMsmblkdiamond]{\smblkdiamond} \\
\K[\FDSYMblacktriangledown]{\blacktriangledown} & \K[\FDSYMdiamondbslash]{\diamondbslash} & \K[\FDSYMsmblksquare]{\smblksquare} \\
\K[\FDSYMblacktriangleleft]{\blacktriangleleft} & \K[\FDSYMdiamondcdot]{\diamondcdot} & \K[\FDSYMsmwhitestar]{\smwhitestar} \\
\K[\FDSYMblacktriangleright]{\blacktriangleright} & \K[\FDSYMmdblkdiamond]{\mdblkdiamond} & \K[\FDSYMsmwhtcircle]{\smwhtcircle} \\
\K[\FDSYMBox]{\Box} & \K[\FDSYMmdblksquare]{\mdblksquare} & \K[\FDSYMsmwhtdiamond]{\smwhtdiamond} \\
\K[\FDSYMboxbar]{\boxbar} & \K[\FDSYMmdlgblkcircle]{\mdlgblkcircle} & \K[\FDSYMsmwhtsquare]{\smwhtsquare} \\
\K[\FDSYMboxbslash]{\boxbslash} & \K[\FDSYMmdlgblkdiamond]{\mdlgblkdiamond} & \K[\FDSYMsquare]{\square} \\
\K[\FDSYMboxdiag]{\boxdiag} & \K[\FDSYMmdlgblksquare]{\mdlgblksquare} & \K[\FDSYMstar]{\star} \\
\K[\FDSYMbullet]{\bullet} & \K[\FDSYMmdlgwhtcircle]{\mdlgwhtcircle} & \K[\FDSYMtriangle]{\triangle} \\
\K[\FDSYMcirc]{\circ} & \K[\FDSYMmdlgwhtdiamond]{\mdlgwhtdiamond} & \K[\FDSYMtriangledown]{\triangledown} \\
\K[\FDSYMcircledast]{\circledast} & \K[\FDSYMmdlgwhtsquare]{\mdlgwhtsquare} & \K[\FDSYMtriangleleft]{\triangleleft} \\
\K[\FDSYMcircledcirc]{\circledcirc} & \K[\FDSYMmdwhtdiamond]{\mdwhtdiamond} & \K[\FDSYMtriangleright]{\triangleright} \\
\K[\FDSYMcircleddash]{\circleddash} & \K[\FDSYMmdwhtsquare]{\mdwhtsquare} & \K[\FDSYMvartriangle]{\vartriangle} \\
\K[\FDSYMcircledequal]{\circledequal} & \K[\FDSYMmedstar]{\medstar} & \\
\K[\FDSYMcircledvert]{\circledvert} & \K[\FDSYMobslash]{\obslash} & \\
\end{longtable}
\end{longsymtable}
\begin{longsymtable}[BSK]{\BSK\ Geometric Binary Operators}
\ltidxboth{binary}{operators}
\ltidxboth{boxed}{symbols}
\ltindex{rhombuses}
\ltindex{squares}
\ltindex{circles}
\ltindex{triangles}
\ltindex{stars}
\label{bsk-geometric-bin}
\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[\BSKblacklozenge]\blacklozenge & \K[\BSKboxright]\boxright & \K[\BSKoblong]\oblong \\
\K[\BSKblacksquare]\blacksquare & \K[\BSKboxslash]\boxslash & \K[\BSKobot]\obot \\
\K[\BSKblacktriangle]\blacktriangle & \K[\BSKboxtimes]\boxtimes & \K[\BSKobslash]\obslash \\
\K[\BSKblacktriangledown]\blacktriangledown & \K[\BSKboxtop]\boxtop & \K[\BSKogreaterthan]\ogreaterthan \\
\K[\BSKblacktriangleleft]\blacktriangleleft & \K[\BSKboxtriangle]\boxtriangle & \K[\BSKoleft]\oleft \\
\K[\BSKblacktriangleright]\blacktriangleright & \K[\BSKcircledast]\circledast & \K[\BSKolessthan]\olessthan \\
\K[\BSKboxast]\boxast & \K[\BSKcircledcirc]\circledcirc & \K[\BSKominus]\ominus \\
\K[\BSKboxbar]\boxbar & \K[\BSKcircleddash]\circleddash & \K[\BSKoplus]\oplus \\
\K[\BSKboxbot]\boxbot & \K[\BSKdiamond]\diamond & \K[\BSKoright]\oright \\
\K[\BSKboxbox]\boxbox & \K[\BSKdiamondbar]\diamondbar & \K[\BSKoslash]\oslash \\
\K[\BSKboxbslash]\boxbslash & \K[\BSKdiamondcircle]\diamondcircle & \K[\BSKotimes]\otimes \\
\K[\BSKboxcircle]\boxcircle & \K[\BSKdiamondminus]\diamondminus & \K[\BSKotop]\otop \\
\K[\BSKboxdivision]\boxdivision & \K[\BSKdiamondop]\diamondop & \K[\BSKotriangle]\otriangle \\
\K[\BSKboxdot]\boxdot & \K[\BSKdiamondplus]\diamondplus & \K[\BSKovee]\ovee \\
\K[\BSKboxleft]\boxleft & \K[\BSKdiamondtimes]\diamondtimes & \K[\BSKowedge]\owedge \\
\K[\BSKboxminus]\boxminus & \K[\BSKdiamondtriangle]\diamondtriangle & \K[\BSKstar]\star \\
\K[\BSKboxplus]\boxplus & \K[\BSKobar]\obar & \K[\BSKtalloblong]\talloblong \\
\end{longtable}
\end{longsymtable}
\begin{longsymtable}[STIX]{\STIX\ Geometric Binary Operators}
\ltidxboth{binary}{operators}
\ltindex{rhombuses}
\ltindex{squares}
\ltindex{circles}
\ltindex{triangles}
\ltindex{stars}
\ltindex{crosses}
\label{stix-geometric-bin}
\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[\STIXblackhourglass]\blackhourglass & \K[\STIXconcavediamondtickleft]\concavediamondtickleft & \K[\STIXoplus]\oplus \\
\K[\STIXboxast]\boxast & \K[\STIXconcavediamondtickright]\concavediamondtickright & \K[\STIXoslash]\oslash \\
\K[\STIXboxbar]\boxbar & \K[\STIXdiamond]\diamond & \K[\STIXotimes]\otimes \\
\K[\STIXboxbox]\boxbox & \K[\STIXdsub]\dsub & \K[\STIXOtimes]\Otimes \\
\K[\STIXboxbslash]\boxbslash & \K[\STIXhourglass]\hourglass & \K[\STIXotimeshat]\otimeshat \\
\K[\STIXboxcircle]\boxcircle & \K[\STIXlozengeminus]\lozengeminus & \K[\STIXrsub]\rsub \\
\K[\STIXboxdiag]\boxdiag & \K[\STIXmdlgblklozenge]\mdlgblklozenge & \K[\STIXsmblkcircle]\smblkcircle \\
\K[\STIXboxdot]\boxdot & \K[\STIXmdlgwhtcircle]\mdlgwhtcircle & \K[\STIXstar]\star \\
\K[\STIXboxminus]\boxminus & \K[\STIXobar]\obar & \K[\STIXtalloblong]\talloblong \\
\K[\STIXboxplus]\boxplus & \K[\STIXobot]\obot$^*$ & \K[\STIXtriangle]\triangle \\
\K[\STIXboxtimes]\boxtimes & \K[\STIXobslash]\obslash & \K[\STIXtriangleminus]\triangleminus \\
\K[\STIXcircledast]\circledast & \K[\STIXodiv]\odiv & \K[\STIXtriangleplus]\triangleplus \\
\K[\STIXcircledcirc]\circledcirc & \K[\STIXodot]\odot & \K[\STIXtriangleserifs]\triangleserifs \\
\K[\STIXcircleddash]\circleddash & \K[\STIXodotslashdot]\odotslashdot$^*$ & \K[\STIXtriangletimes]\triangletimes \\
\K[\STIXcircledequal]\circledequal & \K[\STIXogreaterthan]\ogreaterthan & \K[\STIXvysmblkcircle]\vysmblkcircle$^\dag$ \\
\K[\STIXcircledparallel]\circledparallel & \K[\STIXolcross]\olcross$^*$ & \K[\STIXvysmwhtcircle]\vysmwhtcircle \\
\K[\STIXcircledvert]\circledvert & \K[\STIXolessthan]\olessthan & \K[\STIXwhitesquaretickleft]\whitesquaretickleft \\
\K[\STIXcirclehbar]\circlehbar & \K[\STIXominus]\ominus & \K[\STIXwhitesquaretickright]\whitesquaretickright \\
\K[\STIXconcavediamond]\concavediamond & \K[\STIXoperp]\operp & \\
\end{longtable}
\begin{tablenote}[*]
Defined as an ordinary character, not as a binary relation.
However, these symbols more closely resemble the other symbols in
this table than they do the geometric shapes presented in
\ref{stix-geometrical}, which is why they are included here.
\end{tablenote}
\bigskip
\begin{tablenote}[\dag]
\STIX\ defines \cmdI[\string\STIXbullet]{\bullet} as a synonym
for \cmdI[\string\STIXvysmblkcircle]{\vysmblkcircle}.
\end{tablenote}
\end{longsymtable}
\begin{longsymtable}[LOGIX]{\LOGIX\ Geometric Binary Operators}
\ltidxboth{binary}{operators}
\ltindex{rhombuses}
\ltindex{circles}
\ltindex{triangles}
\ltindex{squares}
\ltindex{polygons}
\ltindex{arrowheads}
\ltindex{geometric shapes}
\label{logix-geometric-bin}
\begin{longtable}{*2{ll}}
\multicolumn{4}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{4}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\K\BlackCircle & \K\LogPast \\
\K\BlackCircleA & \K\LogPos \\
\K\BlackCircleB & \K\LWhiteCircle \\
\K\BlackCircleC & \K\LWhiteCurvedDiamond \\
\K\BlackCircleD & \K\LWhiteDiamond \\
\K\BlackCircleE & \K\LWhiteDownTriangle \\
\K\BlackCircleF & \K\LWhiteLeftArrowHead \\
\K\BlackCircleG & \K\LWhiteLeftTriangle \\
\K\BlackCircleH & \K\LWhiteLozenge \\
\K\BlackCircleI & \K\LWhiteRightArrowHead \\
\K\BlackCurvedDiamond & \K\LWhiteRightCurvedArrowHead \\
\K\BlackDiamond & \K\LWhiteRightTriangle \\
\K\BlackDiamondA & \K\LWhiteSmallCircle \\
\K\BlackDiamondB & \K\LWhiteSquare \\
\K\BlackDiamondC & \K\LWhiteSquareRoundCorners \\
\K\BlackDiamondD & \K\LWhiteUpTriangle \\
\K\BlackDiamondE & \K\LWhiteVerySmallCircle \\
\K\BlackDiamondF & \K\LWhiteVerySmallSquare \\
\K\BlackDiamondG & \K\Nec \\
\K\BlackDiamondH & \K\Next \\
\K\BlackDiamondI & \K\NonCont \\
\K\BlackDownTriangle & \K\OutlineCircle \\
\K\BlackDownTriangleA & \K\OutlineCurvedDiamond \\
\K\BlackDownTriangleB & \K\OutlineDiamond \\
\K\BlackDownTriangleC & \K\OutlineDownTriangle \\
\K\BlackDownTriangleD & \K\OutlineLeftArrowHead \\
\K\BlackDownTriangleE & \K\OutlineLeftTriangle \\
\K\BlackDownTriangleF & \K\OutlineLozenge \\
\K\BlackDownTriangleG & \K\OutlineRightArrowHead \\
\K\BlackDownTriangleH & \K\OutlineRightCurvedArrowHead \\
\K\BlackDownTriangleI & \K\OutlineRightTriangle \\
\K\BlackLeftArrowHead & \K\OutlineSmallCircle \\
\K\BlackLeftTriangle & \K\OutlineSquare \\
\K\BlackLeftTriangleA & \K\OutlineSquareRoundCorners \\
\K\BlackLeftTriangleB & \K\OutlineUpTriangle \\
\K\BlackLeftTriangleC & \K\OutlineVerySmallCircle \\
\K\BlackLeftTriangleD & \K\OutlineVerySmallSquare \\
\K\BlackLeftTriangleE & \K\Past \\
\K\BlackLeftTriangleF & \K\Pos \\
\K\BlackLeftTriangleG & \K\QuartedLozenge \\
\K\BlackLeftTriangleH & \K\QuarteredCircle \\
\K\BlackLeftTriangleI & \K\QuarteredCurvedDiamond \\
\K\BlackLozenge & \K\QuarteredDiamond \\
\K\BlackReallySmallCircle & \K\QuarteredDownTriangle \\
\K\BlackReallySmallDiamond & \K\QuarteredLeftTriangle \\
\K\BlackReallySmallSquare & \K\QuarteredRightTriangle \\
\K\BlackRightArrowHead & \K\QuarteredSmallCircle \\
\K\BlackRightCurvedArrowHead & \K\QuarteredSquare \\
\K\BlackRightTriangle & \K\QuarteredSquareRoundCorners \\
\K\BlackRightTriangleA & \K\QuarteredUpTriangle \\
\K\BlackRightTriangleB & \K\QuarteredVerySmallCircle \\
\K\BlackRightTriangleC & \K\QuarteredVerySmallSquare \\
\K\BlackRightTriangleD & \K\TmpCont \\
\K\BlackRightTriangleE & \K\TmpFutr \\
\K\BlackRightTriangleF & \K\TmpNec \\
\K\BlackRightTriangleG & \K\TmpNext \\
\K\BlackRightTriangleH & \K\TmpNonCont \\
\K\BlackRightTriangleI & \K\TmpPast \\
\K\BlackSmallCircle & \K\TmpPos \\
\K\BlackSquare & \K\UpSlahsedSquareRoundCorners \\
\K\BlackSquareA & \K\UpSlashedCircle \\
\K\BlackSquareB & \K\UpSlashedCurvedDiamond \\
\K\BlackSquareC & \K\UpSlashedDiamond \\
\K\BlackSquareD & \K\UpSlashedDownTriangle \\
\K\BlackSquareE & \K\UpSlashedLeftTriangle \\
\K\BlackSquareF & \K\UpSlashedLozenge \\
\K\BlackSquareG & \K\UpSlashedRightTriangle \\
\K\BlackSquareH & \K\UpSlashedSmallCircle \\
\K\BlackSquareI & \K\UpSlashedSquare \\
\K\BlackSquareRoundCorners & \K\UpSlashedUpTriangle \\
\K\BlackUpTriangle & \K\UpSlashedVerySmallCircle \\
\K\BlackUpTriangleA & \K\UpSlashedVerySmallSquare \\
\K\BlackUpTriangleB & \K\VerticallyDividedCircle \\
\K\BlackUpTriangleC & \K\VerticallyDividedCurvedDiamond \\
\K\BlackUpTriangleD & \K\VerticallyDividedDiamond \\
\K\BlackUpTriangleE & \K\VerticallyDividedDownTriangle \\
\K\BlackUpTriangleF & \K\VerticallyDividedLeftTriangle \\
\K\BlackUpTriangleG & \K\VerticallyDividedLozenge \\
\K\BlackUpTriangleH & \K\VerticallyDividedRightTriangle \\
\K\BlackUpTriangleI & \K\VerticallyDividedSmallCircle \\
\K\BlackVerySmallCircle & \K\VerticallyDividedSquare \\
\K\BlackVerySmallSquare & \K\VerticallyDividedSquareRoundCorners \\
\K\Cont & \K\VerticallyDividedUpTriangle \\
\K\CrossedCircle & \K\VerticallyDividedVerySmallCircle \\
\K\CrossedCurvedDiamond & \K\VerticallyDividedVerySmallSquare \\
\K\CrossedDiamond & \K\WhiteCircle \\
\K\CrossedDownTriangle & \K\WhiteCircleA \\
\K\CrossedLeftTriangle & \K\WhiteCircleB \\
\K\CrossedLozenge & \K\WhiteCircleC \\
\K\CrossedRightTriangle & \K\WhiteCircleContainingBlackCircle \\
\K\CrossedSmallCircle & \K\WhiteCircleD \\
\K\CrossedSquare & \K\WhiteCircleE \\
\K\CrossedSquareRoundCorners & \K\WhiteCircleF \\
\K\CrossedUpTriangle & \K\WhiteCircleG \\
\K\CrossedVerySmallCircle & \K\WhiteCircleH \\
\K\CrossedVerySmallSquare & \K\WhiteCircleI \\
\K\DeoCont & \K\WhiteCurvedDiamond \\
\K\DeoFutr & \K\WhiteCurvedDiamondContainingBlackDiamond \\
\K\DeoNec & \K\WhiteDiamond \\
\K\DeoNext & \K\WhiteDiamondA \\
\K\DeoNonCont & \K\WhiteDiamondB \\
\K\DeoPast & \K\WhiteDiamondC \\
\K\DeoPos & \K\WhiteDiamondContainingBlackDiamond \\
\K\DottedCircl & \K\WhiteDiamondD \\
\K\DottedCurvedDiamond & \K\WhiteDiamondE \\
\K\DottedDiamond & \K\WhiteDiamondF \\
\K\DottedDownTriangle & \K\WhiteDiamondG \\
\K\DottedLeftArrowHead & \K\WhiteDiamondH \\
\K\DottedLeftTriangle & \K\WhiteDiamondI \\
\K\DottedLozenge & \K\WhiteDownTriangle \\
\K\DottedRightArrowHead & \K\WhiteDownTriangleA \\
\K\DottedRightCurvedArrowHead & \K\WhiteDownTriangleB \\
\K\DottedRightTriangle & \K\WhiteDownTriangleC \\
\K\DottedSmallCircle & \K\WhiteDownTriangleContainingBlackDownTriangle \\
\K\DottedSquare & \K\WhiteDownTriangleD \\
\K\DottedSquareRoundCorners & \K\WhiteDownTriangleE \\
\K\DottedUpTriangle & \K\WhiteDownTriangleF \\
\K\DottedVerySmallCircle & \K\WhiteDownTriangleG \\
\K\DottedVerySmallSquare & \K\WhiteDownTriangleH \\
\K\DownSlashedCircle & \K\WhiteDownTriangleI \\
\K\DownSlashedCurvedDiamond & \K\WhiteLeftArrowHead \\
\K\DownSlashedDiamond & \K\WhiteLeftTriangle \\
\K\DownSlashedDownTriangle & \K\WhiteLeftTriangleA \\
\K\DownSlashedLeftTriangle & \K\WhiteLeftTriangleB \\
\K\DownSlashedLozenge & \K\WhiteLeftTriangleC \\
\K\DownSlashedRightTriangle & \K\WhiteLeftTriangleContainingBlackLeftTriangle \\
\K\DownSlashedSmallCircle & \K\WhiteLeftTriangleD \\
\K\DownSlashedSquare & \K\WhiteLeftTriangleE \\
\K\DownSlashedSquareRoundCorners & \K\WhiteLeftTriangleF \\
\K\DownSlashedUpTriangle & \K\WhiteLeftTriangleG \\
\K\DownSlashedVerySmallCircle & \K\WhiteLeftTriangleH \\
\K\DownSlashedVerySmallSquare & \K\WhiteLeftTriangleI \\
\K\DoxCont & \K\WhiteLozenge \\
\K\DoxFutr & \K\WhiteLozengeContainingBlackLozenge \\
\K\DoxNec & \K\WhiteReallySmallCircle \\
\K\DoxNext & \K\WhiteReallySmallDiamond \\
\K\DoxNonCont & \K\WhiteReallySmallSquare \\
\K\DoxPast & \K\WhiteRightArrowHead \\
\K\DoxPos & \K\WhiteRightCurvedArrowHead \\
\K\FacCont & \K\WhiteRightTriangle \\
\K\FacFutr & \K\WhiteRightTriangleA \\
\K\FacNec & \K\WhiteRightTriangleB \\
\K\FacNext & \K\WhiteRightTriangleC \\
\K\FacNonCont & \K\WhiteRightTriangleContainingBlackRightTriangle \\
\K\FacPast & \K\WhiteRightTriangleD \\
\K\FacPos & \K\WhiteRightTriangleE \\
\K\Futr & \K\WhiteRightTriangleF \\
\K\HorizontallyDividedCircle & \K\WhiteRightTriangleG \\
\K\HorizontallyDividedCurvedDiamond & \K\WhiteRightTriangleH \\
\K\HorizontallyDividedDiamond & \K\WhiteRightTriangleI \\
\K\HorizontallyDividedDownTriangle & \K\WhiteSmallCircle \\
\K\HorizontallyDividedLeftTriangle & \K\WhiteSmallCircleContainingBlackCircle \\
\K\HorizontallyDividedLozenge & \K\WhiteSquare \\
\K\HorizontallyDividedRightTriangle & \K\WhiteSquareA \\
\K\HorizontallyDividedSmallCircle & \K\WhiteSquareB \\
\K\HorizontallyDividedSquare & \K\WhiteSquareC \\
\K\HorizontallyDividedSquareRoundCorners & \K\WhiteSquareContainingBlackSquare \\
\K\HorizontallyDividedUpTriangle & \K\WhiteSquareD \\
\K\HorizontallyDividedVerySmallCircle & \K\WhiteSquareE \\
\K\HorizontallyDividedVerySmallSquare & \K\WhiteSquareF \\
\K\LBlackCircle & \K\WhiteSquareG \\
\K\LBlackCurvedDiamond & \K\WhiteSquareH \\
\K\LBlackDiamond & \K\WhiteSquareI \\
\K\LBlackDownTriangle & \K\WhiteSquareRoundCorners \\
\K\LBlackLeftArrowHead & \K\WhiteSquareRoundCornersContainingBlackSquare \\
\K\LBlackLeftTriangle & \K\WhiteUpTriangle \\
\K\LBlackLozenge & \K\WhiteUpTriangleA \\
\K\LBlackRightArrowHead & \K\WhiteUpTriangleB \\
\K\LBlackRightCurvedArrowHead & \K\WhiteUpTriangleC \\
\K\LBlackRightTriangle & \K\WhiteUpTriangleContainingBlackUpTriangle \\
\K\LBlackSmallCircle & \K\WhiteUpTriangleD \\
\K\LBlackSquare & \K\WhiteUpTriangleE \\
\K\LBlackSquareRoundCorners & \K\WhiteUpTriangleF \\
\K\LBlackUpTriangle & \K\WhiteUpTriangleG \\
\K\LBlackVerySmallCircle & \K\WhiteUpTriangleH \\
\K\LBlackVerySmallSquare & \K\WhiteUpTriangleI \\
\K\LogCont & \K\WhiteVerySmallCircle \\
\K\LogFutr & \K\WhiteVerySmallCircleContainingBlackCircle \\
\K\LogNec & \K\WhiteVerySmallSquare \\
\K\LogNext & \K\WhiteVerySmallSquareContainingBlackSquare \\
\K\LogNonCont & \\
\end{longtable}
\begin{tablenote}
\luaxemessage{\LOGIX}.
\end{tablenote}
\end{longsymtable}
\begin{symtable}[HWMATH]{\HWMATH\ Halloween-Themed Math Operators}
\index{pumpkins}
\index{witches}
\index{ghosts}
\index{clouds}
\index{skulls}
\index{bats}
\idxboth{Halloween}{symbols}
\label{hwmath-binops}
\renewcommand{\arraystretch}{1.25} % Keep high and low accents from touching.
\begin{tabular}{ll*2{@{\qquad}ll}}
\X\bigpumpkin$^\ddag$ & \X\mathleftghost & \X\reversemathcloud \\
\X\bigskull & \X\mathrightbat & \X\reversemathwitch$^\dag$ \\
\X\mathbat & \X\mathrightghost & \Xstar\reversemathwitch$^\dag$ \\
\X\mathcloud & \Xstar\mathwitch$^\dag$ & \X\skull \\
\X\mathghost & \X\mathwitch$^\dag$ & \\
\X\mathleftbat & \X\pumpkin & \\
\end{tabular}
\bigskip
\begin{tablenote}[\dag]
These symbols accept limits. For example,
\verb|\mathwitch*_{i=0}^{\infty} f(x)| produces
``$\mathwitch*_{i=0}^{\infty} f(x)$'' in text mode and
\[ \mathwitch*_{i=0}^{\infty} f(x) \]
in display mode.
\end{tablenote}
\bigskip
\begin{tablenote}[\ddag]
\cmdX{\greatpumpkin} is a synonym for \cmdX{\bigpumpkin}.
\end{tablenote}
\end{symtable}
\begin{symtable}[STIX]{\STIX\ Small Integrals}
\index{integrals}
\label{stix-smint}
\begin{tabular}{*3{ll}}
\K[\STIXsmallawint]\smallawint & \K[\STIXsmallintcap]\smallintcap & \K[\STIXsmalloint]\smalloint \\
\K[\STIXsmallcirfnint]\smallcirfnint & \K[\STIXsmallintclockwise]\smallintclockwise & \K[\STIXsmallointctrclockwise]\smallointctrclockwise \\
\K[\STIXsmallfint]\smallfint & \K[\STIXsmallintcup]\smallintcup & \K[\STIXsmallpointint]\smallpointint \\
\K[\STIXsmalliiiint]\smalliiiint & \K[\STIXsmallintlarhk]\smallintlarhk & \K[\STIXsmallrppolint]\smallrppolint \\
\K[\STIXsmalliiint]\smalliiint & \K[\STIXsmallintx]\smallintx & \K[\STIXsmallscpolint]\smallscpolint \\
\K[\STIXsmalliint]\smalliint & \K[\STIXsmalllowint]\smalllowint & \K[\STIXsmallsqint]\smallsqint \\
\K[\STIXsmallint]\smallint & \K[\STIXsmallnpolint]\smallnpolint & \K[\STIXsmallsumint]\smallsumint \\
\K[\STIXsmallintbar]\smallintbar & \K[\STIXsmalloiiint]\smalloiiint & \K[\STIXsmallupint]\smallupint \\
\K[\STIXsmallintBar]\smallintBar & \K[\STIXsmalloiint]\smalloiint & \K[\STIXsmallvarointclockwise]\smallvarointclockwise \\
\end{tabular}
\bigskip
\begin{tablenote}
By default, each of the preceding commands points to a slanted
version of the glyph, as shown. The \optname{stix}{upint} package
option typesets each integral instead as an upright version.
Slanted and upright integrals can be mixed, however, by explicitly
using the commands shown in \ref{stix-smint-all}.
\end{tablenote}
\end{symtable}
\begin{longsymtable}[STIX]{\STIX\ Small Integrals with Explicit Slant}
\ltindex{integrals}
\label{stix-smint-all}
\begin{longtable}{ll@{\qquad}ll}
\multicolumn{4}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{4}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\K[\STIXsmallawintsl]\smallawintsl & \K[\STIXsmallawintup]\smallawintup \\
\K[\STIXsmallcirfnintsl]\smallcirfnintsl & \K[\STIXsmallcirfnintup]\smallcirfnintup \\
\K[\STIXsmallfintsl]\smallfintsl & \K[\STIXsmallfintup]\smallfintup \\
\K[\STIXsmalliiiintsl]\smalliiiintsl & \K[\STIXsmalliiiintup]\smalliiiintup \\
\K[\STIXsmalliiintsl]\smalliiintsl & \K[\STIXsmalliiintup]\smalliiintup \\
\K[\STIXsmalliintsl]\smalliintsl & \K[\STIXsmalliintup]\smalliintup \\
\K[\STIXsmallintbarsl]\smallintbarsl & \K[\STIXsmallintBarup]\smallintBarup \\
\K[\STIXsmallintBarsl]\smallintBarsl & \K[\STIXsmallintbarup]\smallintbarup \\
\K[\STIXsmallintcapsl]\smallintcapsl & \K[\STIXsmallintcapup]\smallintcapup \\
\K[\STIXsmallintclockwisesl]\smallintclockwisesl & \K[\STIXsmallintclockwiseup]\smallintclockwiseup \\
\K[\STIXsmallintcupsl]\smallintcupsl & \K[\STIXsmallintcupup]\smallintcupup \\
\K[\STIXsmallintlarhksl]\smallintlarhksl & \K[\STIXsmallintlarhkup]\smallintlarhkup \\
\K[\STIXsmallintsl]\smallintsl & \K[\STIXsmallintup]\smallintup \\
\K[\STIXsmallintxsl]\smallintxsl & \K[\STIXsmallintxup]\smallintxup \\
\K[\STIXsmalllowintsl]\smalllowintsl & \K[\STIXsmalllowintup]\smalllowintup \\
\K[\STIXsmallnpolintsl]\smallnpolintsl & \K[\STIXsmallnpolintup]\smallnpolintup \\
\K[\STIXsmalloiiintsl]\smalloiiintsl & \K[\STIXsmalloiiintup]\smalloiiintup \\
\K[\STIXsmalloiintsl]\smalloiintsl & \K[\STIXsmalloiintup]\smalloiintup \\
\K[\STIXsmallointctrclockwisesl]\smallointctrclockwisesl & \K[\STIXsmallointctrclockwiseup]\smallointctrclockwiseup \\
\K[\STIXsmallointsl]\smallointsl & \K[\STIXsmallointup]\smallointup \\
\K[\STIXsmallpointintsl]\smallpointintsl & \K[\STIXsmallpointintup]\smallpointintup \\
\K[\STIXsmallrppolintsl]\smallrppolintsl & \K[\STIXsmallrppolintup]\smallrppolintup \\
\K[\STIXsmallscpolintsl]\smallscpolintsl & \K[\STIXsmallscpolintup]\smallscpolintup \\
\K[\STIXsmallsqintsl]\smallsqintsl & \K[\STIXsmallsqintup]\smallsqintup \\
\K[\STIXsmallsumintsl]\smallsumintsl & \K[\STIXsmallsumintup]\smallsumintup \\
\K[\STIXsmallupintsl]\smallupintsl & \K[\STIXsmallupintup]\smallupintup \\
\K[\STIXsmallvarointclockwisesl]\smallvarointclockwisesl & \K[\STIXsmallvarointclockwiseup]\smallvarointclockwiseup \\
\end{longtable}
\begin{tablenote}
Instead of using the preceding symbols directly, it is generally
preferable to use the symbols listed in \ref{stix-smint} either with
or without the \optname{stix}{upint} package option. Specifying
\optname{stix}{upint} selects each integral's upright (\texttt{up})
variant, while omitting \optname{stix}{upint} selects each
integral's slanted (\texttt{sl}) variant. Use the symbols shown in
\ref{stix-smint-all} only when you need to include both upright and
slanted variations of a symbol in the same document.
\end{tablenote}
\end{longsymtable}
\begin{symtable}{Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\idxboth{logic}{symbols}
\index{integrals>circular ($\oint$)}
\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}
\subindex{integrals}{contour}
\index{integrals>dotted}
\label{ams-large}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{tabular}{l@{$\:$}ll@{\qquad}l@{$\:$}ll}
\R[\AMSiint]\iint & \R[\AMSiiint]\iiint \\
\R[\AMSiiiint]\iiiint & \R[\AMSidotsint]\idotsint \\
\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}
\subindex{integrals}{contour}
\label{wasy-large}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{tabular}{*2{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
\R[\WASYint]\int & \R[\WASYiint]\iint & \R[\WASYiiint]\iiint \\
\R[\WASYoint]\oint & \R[\WASYoiint]\oiint & \\
\end{tabular}
\bigskip
\begin{tablenote}
If \WASY\ is loaded without package options then none of the
preceding symbols are defined. However, \cmdI[$\WASYint$]{\varint}
produces \WASY's \cmdI[$\WASYint$]{\int} glyph, and
\cmdI[$\WASYoint$]{\varoint} produces \WASY's
\cmdI[$\WASYoint$]{\oint} glyph.
If \WASY\ is loaded with the \optname{wasysym}{integrals} option
then all of the preceding symbols are defined, but
\cmdI[$\WASYint$]{\varint} and \cmdI[$\WASYoint$]{\varoint} are left
undefined.
If \WASY\ is loaded with the \optname{wasysym}{nointegrals} option
then none of the preceding symbols, \cmdI[$\WASYint$]{\varint}, or
\cmdI[$\WASYoint$]{\varoint} are defined.
\end{tablenote}
\end{symtable}
\begin{longsymtable}[ABX]{\ABX\ Variable-sized Math Operators}
\ltidxboth{variable-sized}{symbols}
\ltidxboth{boxed}{symbols}
\ltindex{integrals}
\ltsubindex{integrals}{contour}
\ltindex{asterisks}
\ltindex{asterisks>boxed}
\ltindex{asterisks>circled}
\label{abx-large}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{longtable}{*2{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
\multicolumn{9}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{9}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\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{longtable}
\end{longsymtable}
\begin{longsymtable}[TX]{\TXPX\ Variable-sized Math Operators}
\ltidxboth{variable-sized}{symbols}
\ltsubindex{integrals}{contour}
\label{txpx-large}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{longtable}{l@{$\:$}ll@{\hspace{4em}}l@{$\:$}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
\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{longtable}
\end{longsymtable}
\begin{symtable}[ES]{\ES\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\label{es-large}
\renewcommand{\arraystretch}{2.5} % 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}[BIGINTS]{\BIGINTS\ Variable-sized Math Operators}
\label{bigints}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{tabular}{lll@{\qquad}lll}
\R\bigint & \R\bigoint \\
\R\bigints & \R\bigoints \\
\R\bigintss & \R\bigointss \\
\R\bigintsss & \R\bigointsss \\
\R\bigintssss & \R\bigointssss \\
\end{tabular}
\end{symtable}
\begin{longsymtable}[MNS]{\MNS\ Variable-sized Math Operators}
\ltidxboth{variable-sized}{symbols}
\ltidxboth{logic}{symbols}
\ltindex{integrals}
\ltsubindex{integrals}{contour}
\label{mns-large}
\renewcommand{\arraystretch}{1.75} % Keep tall symbols from touching.
\begin{longtable}{*2{c@{\quad}cl@{\qquad}}c@{\quad}cl}
\multicolumn{9}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{9}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\KN[\MNStbigcap][\MNSdbigcap]\bigcap & \KN[\MNStbigominus][\MNSdbigominus]\bigominus & \KN[\MNStcomplement][\MNSdcomplement]\complement \\
\KN[\MNStbigcapdot][\MNSdbigcapdot]\bigcapdot & \KN[\MNStbigoplus][\MNSdbigoplus]\bigoplus & \KN[\MNStcoprod][\MNSdcoprod]\coprod \\
\KN[\MNStbigcapplus][\MNSdbigcapplus]\bigcapplus & \KN[\MNStbigoslash][\MNSdbigoslash]\bigoslash & \KN[\MNStidotsint][\MNSdidotsint]\idotsint \\
\KN[\MNStbigcircle][\MNSdbigcircle]\bigcircle & \KN[\MNStbigostar][\MNSdbigostar]\bigostar & \KN[\MNStiiiint][\MNSdiiiint]\iiiint \\
\KN[\MNStbigcup][\MNSdbigcup]\bigcup & \KN[\MNStbigotimes][\MNSdbigotimes]\bigotimes & \KN[\MNStiiint][\MNSdiiint]\iiint \\
\KN[\MNStbigcupdot][\MNSdbigcupdot]\bigcupdot & \KN[\MNStbigotriangle][\MNSdbigotriangle]\bigotriangle & \KN[\MNStiint][\MNSdiint]\iint \\
\KN[\MNStbigcupplus][\MNSdbigcupplus]\bigcupplus$^*$ & \KN[\MNStbigovert][\MNSdbigovert]\bigovert & \KN[\MNStint][\MNSdint]\int \\
\KN[\MNStbigcurlyvee][\MNSdbigcurlyvee]\bigcurlyvee & \KN[\MNStbigplus][\MNSdbigplus]\bigplus & \KN[\MNStlanddownint][\MNSdlanddownint]\landdownint \\
\KN[\MNStbigcurlyveedot][\MNSdbigcurlyveedot]\bigcurlyveedot & \KN[\MNStbigsqcap][\MNSdbigsqcap]\bigsqcap & \KN[\MNStlandupint][\MNSdlandupint]\landupint \\
\KN[\MNStbigcurlywedge][\MNSdbigcurlywedge]\bigcurlywedge & \KN[\MNStbigsqcapdot][\MNSdbigsqcapdot]\bigsqcapdot & \KN[\MNStlcircleleftint][\MNSdlcircleleftint]\lcircleleftint \\
\KN[\MNStbigcurlywedgedot][\MNSdbigcurlywedgedot]\bigcurlywedgedot & \KN[\MNStbigsqcapplus][\MNSdbigsqcapplus]\bigsqcapplus & \KN[\MNStlcirclerightint][\MNSdlcirclerightint]\lcirclerightint \\
\KN[\MNStbigdoublecurlyvee][\MNSdbigdoublecurlyvee]\bigdoublecurlyvee & \KN[\MNStbigsqcup][\MNSdbigsqcup]\bigsqcup & \KN[\MNStoiint][\MNSdoiint]\oiint \\
\KN[\MNStbigdoublecurlywedge][\MNSdbigdoublecurlywedge]\bigdoublecurlywedge & \KN[\MNStbigsqcupdot][\MNSdbigsqcupdot]\bigsqcupdot & \KN[\MNStoint][\MNSdoint]\oint \\
\KN[\MNStbigdoublevee][\MNSdbigdoublevee]\bigdoublevee & \KN[\MNStbigsqcupplus][\MNSdbigsqcupplus]\bigsqcupplus & \KN[\MNStprod][\MNSdprod]\prod \\
\KN[\MNStbigdoublewedge][\MNSdbigdoublewedge]\bigdoublewedge & \KN[\MNStbigtimes][\MNSdbigtimes]\bigtimes & \KN[\MNStrcircleleftint][\MNSdrcircleleftint]\rcircleleftint \\
\KN[\MNStbigoast][\MNSdbigoast]\bigoast & \KN[\MNStbigvee][\MNSdbigvee]\bigvee & \KN[\MNStrcirclerightint][\MNSdrcirclerightint]\rcirclerightint \\
\KN[\MNStbigobackslash][\MNSdbigobackslash]\bigobackslash & \KN[\MNStbigveedot][\MNSdbigveedot]\bigveedot & \KN[\MNStstrokedint][\MNSdstrokedint]\strokedint \\
\KN[\MNStbigocirc][\MNSdbigocirc]\bigocirc & \KN[\MNStbigwedge][\MNSdbigwedge]\bigwedge & \KN[\MNStsum][\MNSdsum]\sum \\
\KN[\MNStbigodot][\MNSdbigodot]\bigodot & \KN[\MNStbigwedgedot][\MNSdbigwedgedot]\bigwedgedot & \KN[\MNStsumint][\MNSdsumint]\sumint \\
\end{longtable}
\bigskip
\begin{tablenote}[*]
\MNS\ defines \cmdI[\MNStbigcupplus]{\biguplus} as a synonym for
\cmdI[\MNStbigcupplus]{\bigcupplus}.
\end{tablenote}
\end{longsymtable}
\begin{longsymtable}[FDSYM]{\FDSYM\ Variable-sized Math Operators}
\ltidxboth{variable-sized}{symbols}
\ltidxboth{logic}{symbols}
\ltindex{integrals}
\ltsubindex{integrals}{contour}
\label{fdsym-large}
\renewcommand{\arraystretch}{1.75} % Keep tall symbols from touching.
\begin{longtable}{*2{c@{\quad}cl@{\qquad}}c@{\quad}cl}
\multicolumn{9}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{9}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\KN[\FDSYMtbigcap][\FDSYMdbigcap]\bigcap & \KN[\FDSYMtbigsqcup][\FDSYMdbigsqcup]\bigsqcup & \KN[\FDSYMtlandupint][\FDSYMdlandupint]\landupint \\
\KN[\FDSYMtbigcapdot][\FDSYMdbigcapdot]\bigcapdot & \KN[\FDSYMtbigsqcupdot][\FDSYMdbigsqcupdot]\bigsqcupdot & \KN[\FDSYMtlcircleleftint][\FDSYMdlcircleleftint]\lcircleleftint \\
\KN[\FDSYMtbigcapplus][\FDSYMdbigcapplus]\bigcapplus & \KN[\FDSYMtbigsqcupplus][\FDSYMdbigsqcupplus]\bigsqcupplus & \KN[\FDSYMtlcirclerightint][\FDSYMdlcirclerightint]\lcirclerightint \\
\KN[\FDSYMtbigcup][\FDSYMdbigcup]\bigcup & \KN[\FDSYMtbigtimes][\FDSYMdbigtimes]\bigtimes & \KN[\FDSYMtoiiint][\FDSYMdoiiint]\oiiint \\
\KN[\FDSYMtbigcupdot][\FDSYMdbigcupdot]\bigcupdot & \KN[\FDSYMtbigvee][\FDSYMdbigvee]\bigvee & \KN[\FDSYMtoiint][\FDSYMdoiint]\oiint \\
\KN[\FDSYMtbigcupplus][\FDSYMdbigcupplus]\bigcupplus & \KN[\FDSYMtbigveedot][\FDSYMdbigveedot]\bigveedot & \KN[\FDSYMtoint][\FDSYMdoint]\oint \\
\KN[\FDSYMtbigcurlyvee][\FDSYMdbigcurlyvee]\bigcurlyvee & \KN[\FDSYMtbigwedge][\FDSYMdbigwedge]\bigwedge & \KN[\FDSYMtosum][\FDSYMdosum]\osum \\
\KN[\FDSYMtbigcurlywedge][\FDSYMdbigcurlywedge]\bigcurlywedge & \KN[\FDSYMtbigwedgedot][\FDSYMdbigwedgedot]\bigwedgedot & \KN[\FDSYMtprod][\FDSYMdprod]\prod \\
\KN[\FDSYMtbigdoublevee][\FDSYMdbigdoublevee]\bigdoublevee & \KN[\FDSYMtcoprod][\FDSYMdcoprod]\coprod & \KN[\FDSYMtrcircleleftint][\FDSYMdrcircleleftint]\rcircleleftint \\
\KN[\FDSYMtbigdoublewedge][\FDSYMdbigdoublewedge]\bigdoublewedge & \KN[\FDSYMtfint][\FDSYMdfint]\fint & \KN[\FDSYMtrcirclerightint][\FDSYMdrcirclerightint]\rcirclerightint \\
\KN[\FDSYMtbigoast][\FDSYMdbigoast]\bigoast & \KN[\FDSYMtidotsint][\FDSYMdidotsint]\idotsint & \KN[\FDSYMtsum][\FDSYMdsum]\sum \\
\KN[\FDSYMtbigodot][\FDSYMdbigodot]\bigodot & \KN[\FDSYMtiiiint][\FDSYMdiiiint]\iiiint & \KN[\FDSYMtsumint][\FDSYMdsumint]\sumint \\
\KN[\FDSYMtbigoplus][\FDSYMdbigoplus]\bigoplus & \KN[\FDSYMtiiint][\FDSYMdiiint]\iiint & \KN[\FDSYMtvarcoprod][\FDSYMdvarcoprod]\varcoprod \\
\KN[\FDSYMtbigotimes][\FDSYMdbigotimes]\bigotimes & \KN[\FDSYMtiint][\FDSYMdiint]\iint & \KN[\FDSYMtvarosum][\FDSYMdvarosum]\varosum \\
\KN[\FDSYMtbigplus][\FDSYMdbigplus]\bigplus & \KN[\FDSYMtint][\FDSYMdint]\int & \KN[\FDSYMtvarprod][\FDSYMdvarprod]\varprod \\
\KN[\FDSYMtbigsqcap][\FDSYMdbigsqcap]\bigsqcap & \KN[\FDSYMtintbar][\FDSYMdintbar]\intbar & \KN[\FDSYMtvarsum][\FDSYMdvarsum]\varsum \\
\KN[\FDSYMtbigsqcapdot][\FDSYMdbigsqcapdot]\bigsqcapdot & \KN[\FDSYMtintBar][\FDSYMdintBar]\intBar & \KN[\FDSYMtvarsumint][\FDSYMdvarsumint]\varsumint \\
\KN[\FDSYMtbigsqcapplus][\FDSYMdbigsqcapplus]\bigsqcapplus & \KN[\FDSYMtlanddownint][\FDSYMdlanddownint]\landdownint & \\
\end{longtable}
\bigskip
\begin{tablenote}[*]
\FDSYM\ defines \cmdI[\string\FDSYMtawint]{\awint} as a synonym for
\cmdI[\string\FDSYMtlanddownint]{\landdownint},
\cmdI[\string\FDSYMtbiguplus]{\biguplus} as a synonym for
\cmdI[\string\FDSYMtbigcupplus]{\bigcupplus},
\cmdI[\string\FDSYMtconjquant]{\conjquant} as a synonym for
\cmdI[\string\FDSYMtbigdoublewedge]{\bigdoublewedge},
\cmdI[\string\FDSYMtdisjquant]{\disjquant} as a synonym for
\cmdI[\string\FDSYMtbigdoublevee]{\bigdoublevee},
\cmdI[\string\FDSYMtdotsint]{\dotsint} as a synonym for
\cmdI[\string\FDSYMtidotsint]{\idotsint},
\cmdI[\string\FDSYMtintclockwise]{\intclockwise} as a synonym for
\cmdI[\string\FDSYMtlandupint]{\landupint},
\cmdI[\string\FDSYMtintctrclockwise]{\intctrclockwise} as a synonym
for \cmdI[\string\FDSYMtlanddownint]{\landdownint},
\cmdI[\string\FDSYMtmodtwosum]{\modtwosum} as a synonym for
\cmdI[\string\FDSYMtosum]{\osum},
\cmdI[\string\FDSYMtointclockwise]{\ointclockwise} as a synonym for
\cmdI[\string\FDSYMtlcircleleftint]{\lcircleleftint},
\cmdI[\string\FDSYMtointctrclockwise]{\ointctrclockwise} as a
synonym for \cmdI[\string\FDSYMtrcirclerightint]{\rcirclerightint},
\cmdI[\string\FDSYMtvarmodtwosum]{\varmodtwosum} as a synonym for
\cmdI[\string\FDSYMtvarosum]{\varosum},
\cmdI[\string\FDSYMtvarointclockwise]{\varointclockwise} as a
synonym for \cmdI[\string\FDSYMtlcirclerightint]{\lcirclerightint},
and \cmdI[\string\FDSYMtvarointctrclockwise]{\varointctrclockwise}
as a synonym for
\cmdI[\string\FDSYMtrcircleleftint]{\rcircleleftint}.
\end{tablenote}
\end{longsymtable}
\begin{symtable}[BSK]{\BSK\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\label{bsk-large}
\begin{tabular}{ccl}
\KN[\BSKtintup][\BSKdintup]\intup \\
\end{tabular}
\bigskip
\begin{tablenote}
\BSK\ additionally provides all of the symbols in \ref{op}.
\end{tablenote}
\end{symtable}
\begin{longsymtable}[STIX]{\STIX\ Variable-sized Math Operators}
\ltidxboth{variable-sized}{symbols}
\ltindex{integrals}
\ltsubindex{integrals}{contour}
\label{stix-large}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{longtable}{*2{c@{\quad}cl@{\qquad}}c@{\quad}cl}
\multicolumn{9}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{9}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\KN[\STIXtawintslop][\STIXdawintslop]\awint & \KN[\STIXtcoprodop][\STIXdcoprodop]\coprod & \KN[\STIXtoiiintslop][\STIXdoiiintslop]\oiiint \\
\KN[\STIXtBbbsumop][\STIXdBbbsumop]\Bbbsum & \KN[\STIXtdisjquantop][\STIXddisjquantop]\disjquant & \KN[\STIXtoiintslop][\STIXdoiintslop]\oiint \\
\KN[\STIXtbigcapop][\STIXdbigcapop]\bigcap & \KN[\STIXtfintslop][\STIXdfintslop]\fint & \KN[\STIXtointslop][\STIXdointslop]\oint \\
\KN[\STIXtbigcupop][\STIXdbigcupop]\bigcup & \KN[\STIXtiiiintslop][\STIXdiiiintslop]\iiiint & \KN[\STIXtointctrclockwiseslop][\STIXdointctrclockwiseslop]\ointctrclockwise \\
\KN[\STIXtbigcupdotop][\STIXdbigcupdotop]\bigcupdot & \KN[\STIXtiiintslop][\STIXdiiintslop]\iiint & \KN[\STIXtpointintslop][\STIXdpointintslop]\pointint \\
\KN[\STIXtbigodotop][\STIXdbigodotop]\bigodot & \KN[\STIXtiintslop][\STIXdiintslop]\iint & \KN[\STIXtprodop][\STIXdprodop]\prod \\
\KN[\STIXtbigoplusop][\STIXdbigoplusop]\bigoplus & \KN[\STIXtintslop][\STIXdintslop]\int & \KN[\STIXtrppolintslop][\STIXdrppolintslop]\rppolint \\
\KN[\STIXtbigotimesop][\STIXdbigotimesop]\bigotimes & \KN[\STIXtintbarslop][\STIXdintbarslop]\intbar & \KN[\STIXtscpolintslop][\STIXdscpolintslop]\scpolint \\
\KN[\STIXtbigsqcapop][\STIXdbigsqcapop]\bigsqcap & \KN[\STIXtintBarslop][\STIXdintBarslop]\intBar & \KN[\STIXtsqintslop][\STIXdsqintslop]\sqint \\
\KN[\STIXtbigsqcupop][\STIXdbigsqcupop]\bigsqcup & \KN[\STIXtintcapslop][\STIXdintcapslop]\intcap & \KN[\STIXtsumop][\STIXdsumop]\sum \\
\KN[\STIXtbigtalloblongop][\STIXdbigtalloblongop]\bigtalloblong & \KN[\STIXtintclockwiseslop][\STIXdintclockwiseslop]\intclockwise & \KN[\STIXtsumintslop][\STIXdsumintslop]\sumint \\
\KN[\STIXtbigtimesop][\STIXdbigtimesop]\bigtimes & \KN[\STIXtintcupslop][\STIXdintcupslop]\intcup & \KN[\STIXtupintslop][\STIXdupintslop]\upint \\
\KN[\STIXtbiguplusop][\STIXdbiguplusop]\biguplus & \KN[\STIXtintlarhkslop][\STIXdintlarhkslop]\intlarhk & \KN[\STIXtvarointclockwiseslop][\STIXdvarointclockwiseslop]\varointclockwise \\
\KN[\STIXtbigveeop][\STIXdbigveeop]\bigvee & \KN[\STIXtintxslop][\STIXdintxslop]\intx & \KN[\STIXtxbsolop][\STIXdxbsolop]\xbsol \\
\KN[\STIXtbigwedgeop][\STIXdbigwedgeop]\bigwedge & \KN[\STIXtlowintslop][\STIXdlowintslop]\lowint & \KN[\STIXtxsolop][\STIXdxsolop]\xsol \\
\KN[\STIXtcirfnintslop][\STIXdcirfnintslop]\cirfnint & \KN[\STIXtmodtwosumop][\STIXdmodtwosumop]\modtwosum & \\
\KN[\STIXtconjquantop][\STIXdconjquantop]\conjquant & \KN[\STIXtnpolintslop][\STIXdnpolintslop]\npolint & \\
\end{longtable}
\begin{tablenote}
By default, each of the integral-producing commands in
\ref{stix-large} points to a slanted version of the glyph, as shown.
The \optname{stix}{upint} package option typesets each integral
instead as an upright version. Slanted and upright integrals can be
mixed, however, by explicitly using the commands shown in
\ref{stix-large-all}.
\end{tablenote}
\end{longsymtable}
\begin{longsymtable}[STIX]{\STIX\ Integrals with Explicit Slant}
\ltidxboth{variable-sized}{symbols}
\ltindex{integrals}
\ltsubindex{integrals}{contour}
\label{stix-large-all}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{longtable}{c@{\quad}cl @{\qquad} c@{\quad}cl}
\multicolumn{6}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{6}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\KN[\STIXtintslop][\STIXdintslop]\intsl & \KN[\STIXtintupop][\STIXdintupop]\intup \\
\KN[\STIXtiintslop][\STIXdiintslop]\iintsl & \KN[\STIXtiintupop][\STIXdiintupop]\iintup \\
\KN[\STIXtiiintslop][\STIXdiiintslop]\iiintsl & \KN[\STIXtiiintupop][\STIXdiiintupop]\iiintup \\
\KN[\STIXtointslop][\STIXdointslop]\ointsl & \KN[\STIXtointupop][\STIXdointupop]\ointup \\
\KN[\STIXtoiintslop][\STIXdoiintslop]\oiintsl & \KN[\STIXtoiintupop][\STIXdoiintupop]\oiintup \\
\KN[\STIXtoiiintslop][\STIXdoiiintslop]\oiiintsl & \KN[\STIXtoiiintupop][\STIXdoiiintupop]\oiiintup \\
\KN[\STIXtintclockwiseslop][\STIXdintclockwiseslop]\intclockwisesl & \KN[\STIXtintclockwiseupop][\STIXdintclockwiseupop]\intclockwiseup \\
\KN[\STIXtvarointclockwiseslop][\STIXdvarointclockwiseslop]\varointclockwisesl & \KN[\STIXtvarointclockwiseupop][\STIXdvarointclockwiseupop]\varointclockwiseup \\
\KN[\STIXtointctrclockwiseslop][\STIXdointctrclockwiseslop]\ointctrclockwisesl & \KN[\STIXtointctrclockwiseupop][\STIXdointctrclockwiseupop]\ointctrclockwiseup \\
\KN[\STIXtsumintslop][\STIXdsumintslop]\sumintsl & \KN[\STIXtsumintupop][\STIXdsumintupop]\sumintup \\
\KN[\STIXtiiiintslop][\STIXdiiiintslop]\iiiintsl & \KN[\STIXtiiiintupop][\STIXdiiiintupop]\iiiintup \\
\KN[\STIXtintbarslop][\STIXdintbarslop]\intbarsl & \KN[\STIXtintbarupop][\STIXdintbarupop]\intbarup \\
\KN[\STIXtintBarslop][\STIXdintBarslop]\intBarsl & \KN[\STIXtintBarupop][\STIXdintBarupop]\intBarup \\
\KN[\STIXtfintslop][\STIXdfintslop]\fintsl & \KN[\STIXtfintupop][\STIXdfintupop]\fintup \\
\KN[\STIXtcirfnintslop][\STIXdcirfnintslop]\cirfnintsl & \KN[\STIXtcirfnintupop][\STIXdcirfnintupop]\cirfnintup \\
\KN[\STIXtawintslop][\STIXdawintslop]\awintsl & \KN[\STIXtawintupop][\STIXdawintupop]\awintup \\
\KN[\STIXtrppolintslop][\STIXdrppolintslop]\rppolintsl & \KN[\STIXtrppolintupop][\STIXdrppolintupop]\rppolintup \\
\KN[\STIXtscpolintslop][\STIXdscpolintslop]\scpolintsl & \KN[\STIXtscpolintupop][\STIXdscpolintupop]\scpolintup \\
\KN[\STIXtnpolintslop][\STIXdnpolintslop]\npolintsl & \KN[\STIXtnpolintupop][\STIXdnpolintupop]\npolintup \\
\KN[\STIXtpointintslop][\STIXdpointintslop]\pointintsl & \KN[\STIXtpointintupop][\STIXdpointintupop]\pointintup \\
\KN[\STIXtsqintslop][\STIXdsqintslop]\sqintsl & \KN[\STIXtsqintupop][\STIXdsqintupop]\sqintup \\
\KN[\STIXtintlarhkslop][\STIXdintlarhkslop]\intlarhksl & \KN[\STIXtintlarhkupop][\STIXdintlarhkupop]\intlarhkup \\
\KN[\STIXtintxslop][\STIXdintxslop]\intxsl & \KN[\STIXtintxupop][\STIXdintxupop]\intxup \\
\KN[\STIXtintcapslop][\STIXdintcapslop]\intcapsl & \KN[\STIXtintcapupop][\STIXdintcapupop]\intcapup \\
\KN[\STIXtintcupslop][\STIXdintcupslop]\intcupsl & \KN[\STIXtintcupupop][\STIXdintcupupop]\intcupup \\
\KN[\STIXtupintslop][\STIXdupintslop]\upintsl & \KN[\STIXtupintupop][\STIXdupintupop]\upintup \\
\KN[\STIXtlowintslop][\STIXdlowintslop]\lowintsl & \KN[\STIXtlowintupop][\STIXdlowintupop]\lowintup \\
\end{longtable}
\begin{tablenote}
Instead of using the preceding symbols directly, it is generally
preferable to use the symbols listed in \ref{stix-large} either with
or without the \optname{stix}{upint} package option. Specifying
\optname{stix}{upint} selects each integral's upright (\texttt{up})
variant, while omitting \optname{stix}{upint} selects each
integral's slanted (\texttt{sl}) variant. Use the symbols shown in
\ref{stix-large-all} only when you need to include both upright and
slanted variations of a symbol in the same document.
\end{tablenote}
\end{longsymtable}
\begin{longsymtable}[CMUPINT]{\CMUPINT\ Variable-sized Upright Integrals}
\ltidxboth{variable-sized}{symbols}
\ltindex{integrals}
\ltsubindex{integrals}{contour}
\label{cmupint}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{longtable}{*2{c@{\quad}cl@{\hspace{4em}}}c@{\quad}cl}
\multicolumn{6}{l}{\small\textit{(continued from previous page)}} \\[3ex]
\endhead
\endfirsthead
\\[3ex]
\multicolumn{6}{r}{\small\textit{(continued on next page)}}
\endfoot
\endlastfoot
\KN[\CMUPawintT][\CMUPawintD]\awint & \KN[\CMUPnpolintT][\CMUPnpolintD]\npolint \\
\KN[\CMUPbarintT][\CMUPbarintD]\barint & \KN[\CMUPoiiintT][\CMUPoiiintD]\oiiint \\
\KN[\CMUPcirfnintT][\CMUPcirfnintD]\cirfnint & \KN[\CMUPoiintT][\CMUPoiintD]\oiint \\
\KN[\CMUPdoublebarintT][\CMUPdoublebarintD]\doublebarint & \KN[\CMUPointT][\CMUPointD]\oint \\
\KN[\CMUPdownintT][\CMUPdownintD]\downint & \KN[\CMUPointclockwiseT][\CMUPointclockwiseD]\ointclockwise \\
\KN[\CMUPfintT][\CMUPfintD]\fint & \KN[\CMUPointctrclockwiseT][\CMUPointctrclockwiseD]\ointctrclockwise \\
\KN[\CMUPidotsintT][\CMUPidotsintD]\idotsint$^*$ & \KN[\CMUPpointintT][\CMUPpointintD]\pointint \\
\KN[\CMUPiiiintT][\CMUPiiiintD]\iiiint & \KN[\CMUPrppolintT][\CMUPrppolintD]\rppolint \\
\KN[\CMUPiiintT][\CMUPiiintD]\iiint & \KN[\CMUPscpolintT][\CMUPscpolintD]\scpolint \\
\KN[\CMUPiintT][\CMUPiintD]\iint & \KN[\CMUPsqiintT][\CMUPsqiintD]\sqiint \\
\KN[\CMUPintT][\CMUPintD]\int & \KN[\CMUPsqintT][\CMUPsqintD]\sqint \\
\KN[\CMUPintcapT][\CMUPintcapD]\intcap & \KN[\CMUPsumintT][\CMUPsumintD]\sumint \\
\KN[\CMUPintclockwiseT][\CMUPintclockwiseD]\intclockwise & \KN[\CMUPupintT][\CMUPupintD]\upint \\
\KN[\CMUPintcupT][\CMUPintcupD]\intcup & \KN[\CMUPvaridotsintT][\CMUPvaridotsintD]\varidotsint$^*$ \\
\KN[\CMUPintlarhkT][\CMUPintlarhkD]\intlarhk & \KN[\CMUPvarointclockwiseT][\CMUPvarointclockwiseD]\varointclockwise \\
\KN[\CMUPlanddownintT][\CMUPlanddownintD]\landdownint & \KN[\CMUPvarointctrclockwiseT][\CMUPvarointctrclockwiseD]\varointctrclockwise \\
\KN[\CMUPlandupintT][\CMUPlandupintD]\landupint & \KN[\CMUPxintT][\CMUPxintD]\xint \\
\end{longtable}
\begin{tablenote}
\CMUPINT\ additionally provides \cmdI[\CMUPintT]{\longint},
\cmdI[\CMUPiintT]{\longiint}, \cmdI[\CMUPointT]{\longoint}, and
\cmdI[\CMUPoiintT]{\longoiint} commands that stretch arbitrarily
tall. \seedocs{\CMUPINT}.
\end{tablenote}
\bigskip
\begin{tablenote}[*]
\cmdI[\CMUPvaridotsintT]{\varidotsint} is always drawn as is.
\cmdI[\CMUPvaridotsintT]{\idotsint} is drawn identically to
\cmdI[\CMUPvaridotsintT]{\varidotsint} when \pkgname{amsmath} is not
loaded or with more space surrounding each dot when
\pkgname{amsmath} is loaded.
\end{tablenote}
\end{longsymtable}
\begin{symtable}[MDES]{\MDES\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{integrals}
\subindex{integrals}{contour}
\label{mdes-large}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{tabular}{*2{c@{\quad}cl@{\hspace{4em}}}c@{\quad}cl}
\KN[\MDESintclockwisesm][\MDESintclockwise]\intclockwise & \KN[\MDESointclockwisesm][\MDESointclockwise]\ointclockwise \\
\KN[\MDESoiiintsm][\MDESoiiint]\oiiint & \KN[\MDESointctrclockwisesm][\MDESointctrclockwise]\ointctrclockwise \\
\KN[\MDESoiintsm][\MDESoiint]\oiint & \\
\end{tabular}
\bigskip
\begin{tablenote}
The \MDES\ package provides three versions of each integral---in
fact, of every symbol---to accompany different text fonts:
\PSfont{Utopia}~(\raisebox{2ex}{\usefont{OMX}{mdput}{m}{n}\char"52}),
\PSfont{Garamond}~(\raisebox{2ex}{\usefont{OMX}{mdugm}{m}{n}\char"52}), and
\PSfont{Charter}~(\raisebox{2ex}{\usefont{OMX}{mdbch}{m}{n}\char"52}).
\end{tablenote}
\end{symtable}
\begin{symtable}[PDFMSYM]{\PDFMSYM\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\label{pdfmsym-large}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{tabular}{lll@{\qquad}lll}
\R\aint & \R\bigforall \\
\R\bigcircwedge & \R[\biNint{5}]\biNint\verb|{5}|$^*$ \\
\R\bigdcup & \R[\iNint{5}]\iNint\verb|{5}|$^*$ \\
\R\bigdwedge & \R[\oiNint{5}]\oiNint\verb|{5}|$^*$ \\
\R\bigexists & \\
\end{tabular}
\bigskip
\begin{tablenote}
\pdfmsymmessage.
\end{tablenote}
\bigskip
\begin{tablenote}[*]
These commands have a required argument, which specifies the number
of integrals. For example, \verb|\oiNint{7}| produces the symbol
\[ \oiNint{7} \quad. \]
\end{tablenote}
\end{symtable}
\begin{symtable}[PRODINT]{\PRODINT\ Variable-sized Math Operators}
\idxboth{variable-sized}{symbols}
\index{product integrals}
\subindex{integrals}{product}
\label{prodint}
\begin{tabular}{*3{ll}}
\K\prodi & \K\Prodi & \K\PRODI \\
\end{tabular}
\bigskip
\begin{tablenote}
\PRODINT\ currently requires the author to manually specify
\cmdI{\prodi} for inlined expressions (\verb|$|\dots\verb|$|),
\cmdI{\Prodi} for displayed math (\verb|\[|\dots\verb|\]|), and
\cmdI{\PRODI} for displayed math involving tall integrands. The
package does not define a product integral command that scales
automatically akin to the symbols in \ref{op}.
\end{tablenote}
\end{symtable}
\begin{symtable}[PDFMSYM]{\PDFMSYM\ Extensible Math Operators}
\label{pdfmsym-ext-ops}
\begin{tabular}{ll@{\qquad}ll}
\X\prood & \X\suum \\
\end{tabular}
\bigskip
\begin{tablenote}
These symbols extend horizontally to fit their lower and upper limits.
Hence,
\begin{verbatim}
\suum_{i=\lfloor\sqrt{a^2 + b^2 + c^2}\rfloor}^{\max(5N-3, 11N-8)}
\end{verbatim}
produces
\[ \suum_{i=\lfloor\sqrt{a^2 + b^2 + c^2}\rfloor}^{\max(5N-3, 11N-8)} \quad. \]
\pdfmsymmessage.
\end{tablenote}
\end{symtable}
\begin{symtable}[CMLL]{\CMLL\ Large Math Operators}
\idxboth{logic}{symbols}
\label{cmll-large}
\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
\begin{tabular}{ll@{\qquad}ll}
\K[\CMLLbigparr]\bigparr$^*$ & \K[\CMLLbigwith]\bigwith \\
\end{tabular}
\bigskip
\begin{tablenote}[*]
\CMLL\ defines \cmdI[\CMLLbigparr]{\biginvamp} as a synonym for
\cmdI[\CMLLbigparr]{\bigparr}.
\end{tablenote}
\end{symtable}
\begin{symtable}{Binary Relations}
\idxboth{relational}{symbols}
\idxboth{frown}{symbols}
\idxboth{smile}{symbols}
\idxboth{database}{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$^\dag$ & \X\propto & \X\vdash \\
\X\dashv & \X\models & \X\sim \\
\X\doteq & \X\parallel & \X\simeq \\
\end{tabular}
\bigskip
\notpredefinedmessage
\bigskip
\begin{tablenote}[\dag]
The difference between \cmdX{\mid} and
\verb+|+\index{_magicvertname=\magicvertname{} ($\vert$)} is that
the former is a binary relation while the latter is a math ordinal.
Consequently, \latex\ typesets the two with different surrounding
spacing. Contrast ``\verb+P(A | B)+''~$\mapsto$ \mbox{``$P(A |
B)$''} with ``\verb+P(A \mid B)+''~$\mapsto$ \mbox{``$P(A \mid
B)$''}.
\end{tablenote}
\end{symtable}
\begin{symtable}[AMS]{\AMS\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{pitchforks}
\idxboth{frown}{symbols}
\idxboth{smile}{symbols}
\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}
\idxboth{database}{symbols}
\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}
\idxboth{database}{symbols}
\label{txpx-rel}
\begin{tabular}{*3{ll}}
\X\circledgtr & \X\lJoin & \X\opentimes \\
\X\circledless & \X\lrtimes & \X[\TXPerp]\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}
\bigskip
\begin{tablenote}[*]
As an alternative to using \TXPX, a ``$\mathrel{\mathop:}=$'' symbol
can be constructed with ``\verb|\mathrel{\mathop:}=|''.
\end{tablenote}
\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{longsymtable}[MNS]{\MNS\ Binary Relations}
\ltindex{binary relations}
\ltindex{relational symbols>binary}
\label{mns-rel}
\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[\MNSapprox]\approx & \K[\MNShateq]\hateq & \K[\MNSrightpropto]\rightpropto \\
\K[\MNSapproxeq]\approxeq & \K[\MNShcrossing]\hcrossing & \K[\MNSrightslice]\rightslice \\
\K[\MNSbackapprox]\backapprox & \K[\MNSleftfootline]\leftfootline & \K[\MNSrightVdash]\rightVdash \\
\K[\MNSbackapproxeq]\backapproxeq & \K[\MNSleftfree]\leftfree & \K[\MNSrightvdash]\rightvdash \\
\K[\MNSbackcong]\backcong & \K[\MNSleftmodels]\leftmodels & \K[\MNSrisingdotseq]\risingdotseq \\
\K[\MNSbackeqsim]\backeqsim & \K[\MNSleftModels]\leftModels & \K[\MNSsefootline]\sefootline \\
\K[\MNSbacksim]\backsim & \K[\MNSleftpropto]\leftpropto & \K[\MNSsefree]\sefree \\
\K[\MNSbacksimeq]\backsimeq & \K[\MNSleftrightline]\leftrightline & \K[\MNSseModels]\seModels \\
\K[\MNSbacktriplesim]\backtriplesim & \K[\MNSLeftrightline]\Leftrightline & \K[\MNSsemodels]\semodels \\
\K[\MNSbetween]\between & \K[\MNSleftslice]\leftslice & \K[\MNSseparated]\separated \\
\K[\MNSbumpeq]\bumpeq & \K[\MNSleftVdash]\leftVdash & \K[\MNSseVdash]\seVdash \\
\K[\MNSBumpeq]\Bumpeq & \K[\MNSleftvdash]\leftvdash & \K[\MNSsevdash]\sevdash \\
\K[\MNScirceq]\circeq & \K[\MNSnefootline]\nefootline & \K[\MNSshortparallel]\shortparallel \\
\K[\MNSclosedequal]\closedequal & \K[\MNSnefree]\nefree & \K[\MNSsim]\sim \\
\K[\MNSclosedprec]\closedprec & \K[\MNSneModels]\neModels & \K[\MNSsimeq]\simeq \\
\K[\MNSclosedsucc]\closedsucc & \K[\MNSnemodels]\nemodels & \K[\MNSsucc]\succ \\
\K[\MNScoloneq]\coloneq & \K[\MNSneswline]\neswline & \K[\MNSsuccapprox]\succapprox \\
\K[\MNScong]\cong & \K[\MNSNeswline]\Neswline & \K[\MNSsucccurlyeq]\succcurlyeq \\
\K[\MNScurlyeqprec]\curlyeqprec & \K[\MNSneVdash]\neVdash & \K[\MNSsucceq]\succeq \\
\K[\MNScurlyeqsucc]\curlyeqsucc & \K[\MNSnevdash]\nevdash & \K[\MNSsuccsim]\succsim \\
\K[\MNSDoteq]\Doteq & \K[\MNSnwfootline]\nwfootline & \K[\MNSswfootline]\swfootline \\
\K[\MNSdoteq]\doteq & \K[\MNSnwfree]\nwfree & \K[\MNSswfree]\swfree \\
\K[\MNSdownfootline]\downfootline & \K[\MNSnwmodels]\nwmodels & \K[\MNSswModels]\swModels \\
\K[\MNSdownfree]\downfree & \K[\MNSnwModels]\nwModels & \K[\MNSswmodels]\swmodels \\
\K[\MNSdownmodels]\downmodels & \K[\MNSnwsecrossing]\nwsecrossing & \K[\MNSswVdash]\swVdash \\
\K[\MNSdownModels]\downModels & \K[\MNSNwseline]\Nwseline & \K[\MNSswvdash]\swvdash \\
\K[\MNSdownpropto]\downpropto & \K[\MNSnwseline]\nwseline & \K[\MNStriplesim]\triplesim \\
\K[\MNSdownvdash]\downvdash & \K[\MNSnwvdash]\nwvdash & \K[\MNSupdownline]\updownline \\
\K[\MNSdownVdash]\downVdash & \K[\MNSnwVdash]\nwVdash & \K[\MNSUpdownline]\Updownline \\
\K[\MNSeqbump]\eqbump & \K[\MNSprec]\prec & \K[\MNSupfootline]\upfootline \\
\K[\MNSeqcirc]\eqcirc & \K[\MNSprecapprox]\precapprox & \K[\MNSupfree]\upfree \\
\K[\MNSeqdot]\eqdot & \K[\MNSpreccurlyeq]\preccurlyeq & \K[\MNSupModels]\upModels \\
\K[\MNSeqsim]\eqsim & \K[\MNSpreceq]\preceq & \K[\MNSupmodels]\upmodels \\
\K[\MNSequal]\equal & \K[\MNSprecsim]\precsim & \K[\MNSuppropto]\uppropto \\
\K[\MNSequalclosed]\equalclosed & \K[\MNSrightfootline]\rightfootline & \K[\MNSupvdash]\upvdash \\
\K[\MNSequiv]\equiv & \K[\MNSrightfree]\rightfree & \K[\MNSupVdash]\upVdash \\
\K[\MNSequivclosed]\equivclosed & \K[\MNSrightmodels]\rightmodels & \K[\MNSvcrossing]\vcrossing \\
\K[\MNSfallingdotseq]\fallingdotseq & \K[\MNSrightModels]\rightModels & \K[\MNSVvdash]\Vvdash \\
\end{longtable}
\MNS\ additionally defines synonyms for some of the preceding symbols:
\bigskip
\newcommand*{\mnssyn}[1]{(same as \texttt{\string#1})}
\begin{tabular}{ll@{\quad}l}
\K[\MNSleftvdash]\dashv & \mnssyn\leftvdash \\
\K[\MNSnwseline]\diagdown & \mnssyn\nwseline \\
\K[\MNSneswline]\diagup & \mnssyn\neswline \\
\K[\MNSupdownline]\divides & \mnssyn\updownline \\
\K[\MNSDoteq]\doteqdot & \mnssyn\Doteq \\
\K[\MNSrightmodels]\models & \mnssyn\rightmodels \\
\K[\MNSUpdownline]\parallel & \mnssyn\Updownline \\
\K[\MNSupvdash]\perp & \mnssyn\upvdash \\
\K[\MNSleftpropto]\propto & \mnssyn\leftpropto \\
\K[\MNSleftrightline]\relbar & \mnssyn\leftrightline \\
\K[\MNSLeftrightline]\Relbar & \mnssyn\Leftrightline \\
\K[\MNSleftpropto]\varpropto & \mnssyn\leftpropto \\
\K[\MNSrightmodels]\vDash & \mnssyn\rightmodels \\
\K[\MNSrightModels]\VDash & \mnssyn\rightModels \\
\K[\MNSrightvdash]\vdash & \mnssyn\rightvdash \\
\K[\MNSrightVdash]\Vdash & \mnssyn\rightVdash \\
\end{tabular}
\end{longsymtable}
\begin{longsymtable}[MNS]{\MNS\ Negated Binary Relations}
\ltindex{binary relations>negated}
\ltindex{relational symbols>negated binary}
\label{mns-nrel}
\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[\MNSnapprox]\napprox & \K[\MNSnleftfootline]\nleftfootline & \K[\MNSnrisingdotseq]\nrisingdotseq \\
\K[\MNSnapproxeq]\napproxeq & \K[\MNSnleftfree]\nleftfree & \K[\MNSnsefootline]\nsefootline \\
\K[\MNSnbackapprox]\nbackapprox & \K[\MNSnleftmodels]\nleftmodels & \K[\MNSnsefree]\nsefree \\
\K[\MNSnbackapproxeq]\nbackapproxeq & \K[\MNSnleftModels]\nleftModels & \K[\MNSnseModels]\nseModels \\
\K[\MNSnbackcong]\nbackcong & \K[\MNSnleftrightline]\nleftrightline & \K[\MNSnsemodels]\nsemodels \\
\K[\MNSnbackeqsim]\nbackeqsim & \K[\MNSnLeftrightline]\nLeftrightline & \K[\MNSnsevdash]\nsevdash \\
\K[\MNSnbacksim]\nbacksim & \K[\MNSnleftvdash]\nleftvdash & \K[\MNSnseVdash]\nseVdash \\
\K[\MNSnbacksimeq]\nbacksimeq & \K[\MNSnleftVdash]\nleftVdash & \K[\MNSnshortmid]\nshortmid \\
\K[\MNSnbacktriplesim]\nbacktriplesim & \K[\MNSnnefootline]\nnefootline & \K[\MNSnshortparallel]\nshortparallel \\
\K[\MNSnbumpeq]\nbumpeq & \K[\MNSnnefree]\nnefree & \K[\MNSnsim]\nsim \\
\K[\MNSnBumpeq]\nBumpeq & \K[\MNSnnemodels]\nnemodels & \K[\MNSnsimeq]\nsimeq \\
\K[\MNSncirceq]\ncirceq & \K[\MNSnneModels]\nneModels & \K[\MNSnsucc]\nsucc \\
\K[\MNSnclosedequal]\nclosedequal & \K[\MNSnneswline]\nneswline & \K[\MNSnsuccapprox]\nsuccapprox \\
\K[\MNSncong]\ncong & \K[\MNSnNeswline]\nNeswline & \K[\MNSnsucccurlyeq]\nsucccurlyeq \\
\K[\MNSncurlyeqprec]\ncurlyeqprec & \K[\MNSnneVdash]\nneVdash & \K[\MNSnsucceq]\nsucceq \\
\K[\MNSncurlyeqsucc]\ncurlyeqsucc & \K[\MNSnnevdash]\nnevdash & \K[\MNSnsuccsim]\nsuccsim \\
\K[\MNSndoteq]\ndoteq & \K[\MNSnnwfootline]\nnwfootline & \K[\MNSnswfootline]\nswfootline \\
\K[\MNSnDoteq]\nDoteq & \K[\MNSnnwfree]\nnwfree & \K[\MNSnswfree]\nswfree \\
\K[\MNSndownfootline]\ndownfootline & \K[\MNSnnwmodels]\nnwmodels & \K[\MNSnswModels]\nswModels \\
\K[\MNSndownfree]\ndownfree & \K[\MNSnnwModels]\nnwModels & \K[\MNSnswmodels]\nswmodels \\
\K[\MNSndownModels]\ndownModels & \K[\MNSnNwseline]\nNwseline & \K[\MNSnswvdash]\nswvdash \\
\K[\MNSndownmodels]\ndownmodels & \K[\MNSnnwseline]\nnwseline & \K[\MNSnswVdash]\nswVdash \\
\K[\MNSndownVdash]\ndownVdash & \K[\MNSnnwvdash]\nnwvdash & \K[\MNSntriplesim]\ntriplesim \\
\K[\MNSndownvdash]\ndownvdash & \K[\MNSnnwVdash]\nnwVdash & \K[\MNSnUpdownline]\nUpdownline \\
\K[\MNSneqbump]\neqbump & \K[\MNSnprec]\nprec & \K[\MNSnupdownline]\nupdownline \\
\K[\MNSneqcirc]\neqcirc & \K[\MNSnprecapprox]\nprecapprox & \K[\MNSnupfootline]\nupfootline \\
\K[\MNSneqdot]\neqdot & \K[\MNSnpreccurlyeq]\npreccurlyeq & \K[\MNSnupfree]\nupfree \\
\K[\MNSneqsim]\neqsim & \K[\MNSnpreceq]\npreceq & \K[\MNSnupModels]\nupModels \\
\K[\MNSnequal]\nequal & \K[\MNSnprecsim]\nprecsim & \K[\MNSnupmodels]\nupmodels \\
\K[\MNSnequalclosed]\nequalclosed & \K[\MNSnrightfootline]\nrightfootline & \K[\MNSnupVdash]\nupVdash \\
\K[\MNSnequiv]\nequiv & \K[\MNSnrightfree]\nrightfree & \K[\MNSnupvdash]\nupvdash \\
\K[\MNSnequivclosed]\nequivclosed & \K[\MNSnrightModels]\nrightModels & \K[\MNSprecnapprox]\precnapprox \\
\K[\MNSneswcrossing]\neswcrossing & \K[\MNSnrightmodels]\nrightmodels & \K[\MNSprecnsim]\precnsim \\
\K[\MNSnfallingdotseq]\nfallingdotseq & \K[\MNSnrightvdash]\nrightvdash & \K[\MNSsuccnapprox]\succnapprox \\
\K[\MNSnhateq]\nhateq & \K[\MNSnrightVdash]\nrightVdash & \K[\MNSsuccnsim]\succnsim \\
\end{longtable}
\MNS\ additionally defines synonyms for some of the preceding symbols:
\bigskip
\newcommand*{\mnssyn}[1]{(same as \texttt{\string#1})}
\begin{tabular}{ll@{\quad}l}
\K[\MNSnleftvdash]\ndashv & \mnssyn\nleftvdash \\
\K[\MNSnnwseline]\ndiagdown & \mnssyn\nnwseline \\
\K[\MNSnneswline]\ndiagup & \mnssyn\nneswline \\
\K[\MNSnupdownline]\ndivides & \mnssyn\nupdownline \\
\K[\MNSnequal]\ne & \mnssyn\nequal \\
\K[\MNSnequal]\neq & \mnssyn\nequal \\
\K[\MNSnupdownline]\nmid & \mnssyn\nupdownline \\
\K[\MNSnrightmodels]\nmodels & \mnssyn\nrightmodels \\
\K[\MNSnUpdownline]\nparallel & \mnssyn\nUpdownline \\
\K[\MNSnupvdash]\nperp & \mnssyn\nupvdash \\
\K[\MNSnleftrightline]\nrelbar & \mnssyn\nleftrightline \\
\K[\MNSnLeftrightline]\nRelbar & \mnssyn\nLeftrightline \\
\K[\MNSnrightmodels]\nvDash & \mnssyn\nrightmodels \\
\K[\MNSnrightvdash]\nvdash & \mnssyn\nrightvdash \\
\K[\MNSnrightVdash]\nVdash & \mnssyn\nrightVdash \\
\K[\MNSnrightModels]\nVDash & \mnssyn\nrightModels \\
\end{tabular}
\end{longsymtable}
\begin{longsymtable}[FDSYM]{\FDSYM\ Binary Relations}
\ltindex{binary relations}
\ltindex{relational symbols>binary}
\ltidxboth{frown}{symbols}
\ltidxboth{smile}{symbols}
\ltidxboth{database}{symbols}
\label{fdsym-rel}
\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[\FDSYMapprox]\approx & \K[\FDSYMequiv]\equiv & \K[\FDSYMrightmodels]\rightmodels \\
\K[\FDSYMapproxeq]\approxeq & \K[\FDSYMfallingdotseq]\fallingdotseq & \K[\FDSYMrightVdash]\rightVdash \\
\K[\FDSYMbackcong]\backcong & \K[\FDSYMfrown]\frown & \K[\FDSYMrightVDash]\rightVDash \\
\K[\FDSYMbackpropto]\backpropto & \K[\FDSYMfrowneq]\frowneq & \K[\FDSYMrightvdash]\rightvdash \\
\K[\FDSYMbacksim]\backsim & \K[\FDSYMfrownsmile]\frownsmile & \K[\FDSYMrightvDash]\rightvDash \\
\K[\FDSYMbacksimeq]\backsimeq & \K[\FDSYMin]\in & \K[\FDSYMrisingdotseq]\risingdotseq \\
\K[\FDSYMbetween]\between & \K[\FDSYMleftassert]\leftassert & \K[\FDSYMshortmid]\shortmid \\
\K[\FDSYMbowtie]\bowtie & \K[\FDSYMleftAssert]\leftAssert & \K[\FDSYMshortparallel]\shortparallel \\
\K[\FDSYMbumpeq]\bumpeq & \K[\FDSYMleftfootline]\leftfootline & \K[\FDSYMsim]\sim \\
\K[\FDSYMBumpeq]\Bumpeq & \K[\FDSYMleftmodels]\leftmodels & \K[\FDSYMsimeq]\simeq \\
\K[\FDSYMbumpeqq]\bumpeqq & \K[\FDSYMleftvdash]\leftvdash & \K[\FDSYMsmile]\smile \\
\K[\FDSYMcirceq]\circeq & \K[\FDSYMleftvDash]\leftvDash & \K[\FDSYMsmileeq]\smileeq \\
\K[\FDSYMcoloneq]\coloneq & \K[\FDSYMleftVdash]\leftVdash & \K[\FDSYMsmilefrown]\smilefrown \\
\K[\FDSYMcong]\cong & \K[\FDSYMleftVDash]\leftVDash & \K[\FDSYMstareq]\stareq \\
\K[\FDSYMcrossing]\crossing & \K[\FDSYMlongleftfootline]\longleftfootline & \K[\FDSYMsucc]\succ \\
\K[\FDSYMcurlyeqprec]\curlyeqprec & \K[\FDSYMLongmapsfrom]\Longmapsfrom & \K[\FDSYMsuccapprox]\succapprox \\
\K[\FDSYMcurlyeqsucc]\curlyeqsucc & \K[\FDSYMlongmapsfrom]\longmapsfrom & \K[\FDSYMsucccurlyeq]\succcurlyeq \\
\K[\FDSYMdashVv]\dashVv & \K[\FDSYMlongrightfootline]\longrightfootline & \K[\FDSYMsucceq]\succeq \\
\K[\FDSYMDdashv]\Ddashv & \K[\FDSYMmid]\mid & \K[\FDSYMsucceqq]\succeqq \\
\X[\FDSYMdotcong]\dotcong & \K[\FDSYMowns]\owns & \K[\FDSYMsuccsim]\succsim \\
\K[\FDSYMdoteq]\doteq & \K[\FDSYMparallel]\parallel & \K[\FDSYMthickapprox]\thickapprox \\
\K[\FDSYMDoteq]\Doteq & \K[\FDSYMprec]\prec & \K[\FDSYMthicksim]\thicksim \\
\K[\FDSYMdotsminusdots]\dotsminusdots & \K[\FDSYMprecapprox]\precapprox & \K[\FDSYMtriplesim]\triplesim \\
\K[\FDSYMdownAssert]\downAssert & \K[\FDSYMpreccurlyeq]\preccurlyeq & \K[\FDSYMupassert]\upassert \\
\K[\FDSYMdownassert]\downassert & \K[\FDSYMpreceq]\preceq & \K[\FDSYMupAssert]\upAssert \\
\K[\FDSYMdownmodels]\downmodels & \K[\FDSYMpreceqq]\preceqq & \K[\FDSYMupmodels]\upmodels \\
\K[\FDSYMdownvDash]\downvDash & \K[\FDSYMprecnapprox]\precnapprox & \K[\FDSYMupvdash]\upvdash \\
\K[\FDSYMdownVdash]\downVdash & \K[\FDSYMprecneq]\precneq & \K[\FDSYMupvDash]\upvDash \\
\K[\FDSYMdownvdash]\downvdash & \K[\FDSYMprecneqq]\precneqq & \K[\FDSYMupVdash]\upVdash \\
\K[\FDSYMdownVDash]\downVDash & \K[\FDSYMprecnsim]\precnsim & \K[\FDSYMupVDash]\upVDash \\
\K[\FDSYMeqcirc]\eqcirc & \K[\FDSYMprecsim]\precsim & \K[\FDSYMvDdash]\vDdash \\
\K[\FDSYMeqcolon]\eqcolon & \K[\FDSYMpropto]\propto & \K[\FDSYMveeeq]\veeeq \\
\K[\FDSYMeqdot]\eqdot & \K[\FDSYMrightassert]\rightassert & \K[\FDSYMVvdash]\Vvdash \\
\K[\FDSYMeqsim]\eqsim & \K[\FDSYMrightAssert]\rightAssert & \K[\FDSYMwedgeq]\wedgeq \\
\K[\FDSYMequal]\equal & \K[\FDSYMrightfootline]\rightfootline & \\
\end{longtable}
\FDSYM\ defines synonyms for many of the preceding symbols:
\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[\FDSYMapproxident]{\approxident} & \K[\FDSYMdashV]{\dashV} & \K[\FDSYMshortrighttack]{\shortrighttack} \\
\K[\FDSYMarceq]{\arceq} & \K[\FDSYMdoteqdot]{\doteqdot} & \K[\FDSYMshortuptack]{\shortuptack} \\
\K[\FDSYMAssert]{\Assert} & \K[\FDSYMeqqcolon]{\eqqcolon} & \K[\FDSYMsmallfrown]{\smallfrown} \\
\K[\FDSYMassert]{\assert} & \K[\FDSYMhateq]\hateq & \K[\FDSYMsmallsmile]{\smallsmile} \\
\K[\FDSYMasymp]{\asymp} & \K[\FDSYMJoin]{\Join} & \K[\FDSYMvarpropto]{\varpropto} \\
\K[\FDSYMBarv]{\Barv} & \K[\FDSYMlongdashv]{\longdashv} & \K[\FDSYMvBar]{\vBar} \\
\K[\FDSYMbarV]{\barV} & \K[\FDSYMmodels]{\models} & \K[\FDSYMVbar]{\Vbar} \\
\K[\FDSYMclosure]{\closure} & \K[\FDSYMni]{\ni} & \K[\FDSYMvDash]{\vDash} \\
\K[\FDSYMcoloneqq]{\coloneqq} & \K[\FDSYMperp]{\perp} & \K[\FDSYMVDash]{\VDash} \\
\K[\FDSYMdashv]{\dashv} & \K[\FDSYMpropfrom]{\propfrom} & \K[\FDSYMVdash]{\Vdash} \\
\K[\FDSYMDashV]{\DashV} & \K[\FDSYMshortdowntack]{\shortdowntack} & \K[\FDSYMvdash]{\vdash} \\
\K[\FDSYMDashv]{\Dashv} & \K[\FDSYMshortlefttack]{\shortlefttack} & \K[\FDSYMvlongdash]{\vlongdash} \\
\end{longtable}
\end{longsymtable}
\begin{longsymtable}[FDSYM]{\FDSYM\ Negated Binary Relations}
\ltindex{binary relations>negated}
\ltindex{relational symbols>negated binary}
\ltidxboth{frown}{symbols}
\ltidxboth{smile}{symbols}
\label{fdsym-nrel}
\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[\FDSYMbacksimneqq]\backsimneqq & \K[\FDSYMnin]\nin & \K[\FDSYMnsim]\nsim \\
\K[\FDSYMnapprox]\napprox & \K[\FDSYMnleftAssert]\nleftAssert & \K[\FDSYMnsimeq]\nsimeq \\
\K[\FDSYMnapproxeq]\napproxeq & \K[\FDSYMnleftassert]\nleftassert & \K[\FDSYMnsmile]\nsmile \\
\K[\FDSYMnbackcong]\nbackcong & \K[\FDSYMnleftfootline]\nleftfootline & \K[\FDSYMnsmileeq]\nsmileeq \\
\K[\FDSYMnbacksim]\nbacksim & \K[\FDSYMnleftmodels]\nleftmodels & \K[\FDSYMnsmilefrown]\nsmilefrown \\
\K[\FDSYMnbacksimeq]\nbacksimeq & \K[\FDSYMnleftvDash]\nleftvDash & \K[\FDSYMnstareq]\nstareq \\
\K[\FDSYMnbumpeq]\nbumpeq & \K[\FDSYMnleftvdash]\nleftvdash & \K[\FDSYMnsucc]\nsucc \\
\K[\FDSYMnBumpeq]\nBumpeq & \K[\FDSYMnleftVdash]\nleftVdash & \K[\FDSYMnsuccapprox]\nsuccapprox \\
\K[\FDSYMnbumpeqq]\nbumpeqq & \K[\FDSYMnleftVDash]\nleftVDash & \K[\FDSYMnsucccurlyeq]\nsucccurlyeq \\
\K[\FDSYMncirceq]\ncirceq & \K[\FDSYMnlongleftfootline]\nlongleftfootline & \K[\FDSYMnsucceq]\nsucceq \\
\K[\FDSYMncong]\ncong & \K[\FDSYMnLongmapsfrom]\nLongmapsfrom & \K[\FDSYMnsucceqq]\nsucceqq \\
\K[\FDSYMncurlyeqprec]\ncurlyeqprec & \K[\FDSYMnlongmapsfrom]\nlongmapsfrom & \K[\FDSYMnsuccsim]\nsuccsim \\
\K[\FDSYMncurlyeqsucc]\ncurlyeqsucc & \K[\FDSYMnlongrightfootline]\nlongrightfootline & \K[\FDSYMntriplesim]\ntriplesim \\
\K[\FDSYMndashVv]\ndashVv & \K[\FDSYMnmid]\nmid & \K[\FDSYMnupassert]\nupassert \\
\K[\FDSYMnDdashv]\nDdashv & \K[\FDSYMnowns]\nowns & \K[\FDSYMnupAssert]\nupAssert \\
\K[\FDSYMndoteq]\ndoteq & \K[\FDSYMnparallel]\nparallel & \K[\FDSYMnupmodels]\nupmodels \\
\K[\FDSYMnDoteq]\nDoteq & \K[\FDSYMnprec]\nprec & \K[\FDSYMnupVDash]\nupVDash \\
\K[\FDSYMndownassert]\ndownassert & \K[\FDSYMnprecapprox]\nprecapprox & \K[\FDSYMnupvDash]\nupvDash \\
\K[\FDSYMndownAssert]\ndownAssert & \K[\FDSYMnpreccurlyeq]\npreccurlyeq & \K[\FDSYMnupVdash]\nupVdash \\
\K[\FDSYMndownmodels]\ndownmodels & \K[\FDSYMnpreceq]\npreceq & \K[\FDSYMnupvdash]\nupvdash \\
\K[\FDSYMndownvdash]\ndownvdash & \K[\FDSYMnpreceqq]\npreceqq & \K[\FDSYMnvDdash]\nvDdash \\
\K[\FDSYMndownVdash]\ndownVdash & \K[\FDSYMnprecsim]\nprecsim & \K[\FDSYMnveeeq]\nveeeq \\
\K[\FDSYMndownVDash]\ndownVDash & \K[\FDSYMnrightassert]\nrightassert & \K[\FDSYMnVvdash]\nVvdash \\
\K[\FDSYMndownvDash]\ndownvDash & \K[\FDSYMnrightAssert]\nrightAssert & \K[\FDSYMnwedgeq]\nwedgeq \\
\K[\FDSYMneqcirc]\neqcirc & \K[\FDSYMnrightfootline]\nrightfootline & \K[\FDSYMprecneq]\precneq \\
\K[\FDSYMneqdot]\neqdot & \K[\FDSYMnrightmodels]\nrightmodels & \K[\FDSYMprecneqq]\precneqq \\
\K[\FDSYMneqsim]\neqsim & \K[\FDSYMnrightvdash]\nrightvdash & \K[\FDSYMsimneqq]\simneqq \\
\K[\FDSYMnequal]\nequal & \K[\FDSYMnrightVdash]\nrightVdash & \K[\FDSYMsuccnapprox]\succnapprox \\
\K[\FDSYMnequiv]\nequiv & \K[\FDSYMnrightvDash]\nrightvDash & \K[\FDSYMsuccneq]\succneq \\
\K[\FDSYMnfallingdotseq]\nfallingdotseq & \K[\FDSYMnrightVDash]\nrightVDash & \K[\FDSYMsuccneqq]\succneqq \\
\K[\FDSYMnfrown]\nfrown & \K[\FDSYMnrisingdotseq]\nrisingdotseq & \K[\FDSYMsuccnsim]\succnsim \\
\K[\FDSYMnfrowneq]\nfrowneq & \K[\FDSYMnshortmid]\nshortmid & \\
\K[\FDSYMnfrownsmile]\nfrownsmile & \K[\FDSYMnshortparallel]\nshortparallel & \\
\end{longtable}
\FDSYM\ defines synonyms for many of the preceding symbols:
\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[\FDSYMnapproxident]{\napproxident} & \K[\FDSYMndashV]{\ndashV} & \K[\FDSYMnshortrighttack]{\nshortrighttack} \\
\K[\FDSYMnarceq]{\narceq} & \K[\FDSYMne]{\ne} & \K[\FDSYMnshortuptack]{\nshortuptack} \\
\K[\FDSYMnAssert]{\nAssert} & \K[\FDSYMneq]{\neq} & \K[\FDSYMnsime]{\nsime} \\
\K[\FDSYMnassert]{\nassert} & \K[\FDSYMnhateq]{\nhateq} & \K[\FDSYMnvBar]{\nvBar} \\
\K[\FDSYMnasymp]{\nasymp} & \K[\FDSYMnlongdashv]{\nlongdashv} & \K[\FDSYMnVbar]{\nVbar} \\
\K[\FDSYMnBarv]{\nBarv} & \K[\FDSYMnmodels]{\nmodels} & \K[\FDSYMnVdash]{\nVdash} \\
\K[\FDSYMnbarV]{\nbarV} & \K[\FDSYMnni]{\nni} & \K[\FDSYMnvDash]{\nvDash} \\
\K[\FDSYMnclosure]{\nclosure} & \K[\FDSYMnotin]{\notin} & \K[\FDSYMnVDash]{\nVDash} \\
\K[\FDSYMnDashV]{\nDashV} & \K[\FDSYMnperp]{\nperp} & \K[\FDSYMnvdash]{\nvdash} \\
\K[\FDSYMnDashv]{\nDashv} & \K[\FDSYMnshortdowntack]{\nshortdowntack} & \K[\FDSYMnvlongdash]{\nvlongdash} \\
\K[\FDSYMndashv]{\ndashv} & \K[\FDSYMnshortlefttack]{\nshortlefttack} & \\
\end{longtable}
\end{longsymtable}
\begin{longsymtable}[BSK]{\BSK\ Binary Relations}
\ltindex{binary relations}
\ltindex{relational symbols>binary}
\ltidxboth{frown}{symbols}
\ltidxboth{smile}{symbols}
\label{bsk-rel}
\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[\BSKac]\ac & \K[\BSKfatslash]\fatslash & \K[\BSKscurel]\scurel \\
\K[\BSKapproxeq]\approxeq & \K[\BSKforkv]\forkv & \K[\BSKshortmid]\shortmid \\
\K[\BSKarceq]\arceq & \K[\BSKfrown]\frown & \K[\BSKshortparallel]\shortparallel \\
\K[\BSKbacksim]\backsim & \K[\BSKggcurly]\ggcurly & \K[\BSKsimrdots]\simrdots \\
\K[\BSKbacksimeq]\backsimeq & \K[\BSKhash]\hash & \K[\BSKsmallfrown]\smallfrown \\
\K[\BSKbagmember]\bagmember & \K[\BSKinplus]\inplus & \K[\BSKsmallsmile]\smallsmile \\
\K[\BSKbecause]\because & \K[\BSKkernelcontraction]\kernelcontraction & \K[\BSKsmile]\smile \\
\K[\BSKbetween]\between & \K[\BSKllcurly]\llcurly & \K[\BSKstrictfi]\strictfi \\
\K[\BSKbumpeq]\bumpeq & \K[\BSKmultimap]\multimap & \K[\BSKstrictif]\strictif \\
\K[\BSKBumpeq]\Bumpeq & \K[\BSKmultimapboth]\multimapboth & \K[\BSKsuccapprox]\succapprox \\
\K[\BSKcirceq]\circeq & \K[\BSKmultimapbothvert]\multimapbothvert & \K[\BSKsucccurlyeq]\succcurlyeq \\
\K[\BSKCircledEq]\CircledEq & \K[\BSKmultimapdot]\multimapdot & \K[\BSKsuccnapprox]\succnapprox \\
\K[\BSKcong]\cong & \K[\BSKmultimapdotboth]\multimapdotboth & \K[\BSKsuccneqq]\succneqq \\
\K[\BSKcorresponds]\corresponds & \K[\BSKmultimapdotbothA]\multimapdotbothA & \K[\BSKsuccnsim]\succnsim \\
\K[\BSKcurlyeqprec]\curlyeqprec & \K[\BSKmultimapdotbothAvert]\multimapdotbothAvert & \K[\BSKsuccsim]\succsim \\
\K[\BSKcurlyeqsucc]\curlyeqsucc & \K[\BSKmultimapdotbothB]\multimapdotbothB & \K[\BSKtherefore]\therefore \\
\K[\BSKdashV]\dashV & \K[\BSKmultimapdotbothBvert]\multimapdotbothBvert & \K[\BSKthickapprox]\thickapprox \\
\K[\BSKDashV]\DashV & \K[\BSKmultimapdotbothvert]\multimapdotbothvert & \K[\BSKthicksim]\thicksim \\
\K[\BSKdashVv]\dashVv & \K[\BSKmultimapdotinv]\multimapdotinv & \K[\BSKtopfork]\topfork \\
\K[\BSKdfourier]\dfourier & \K[\BSKmultimapinv]\multimapinv & \K[\BSKtriangleq]\triangleq \\
\K[\BSKDfourier]\Dfourier & \K[\BSKniplus]\niplus & \K[\BSKvarhash]\varhash \\
\K[\BSKdisin]\disin & \K[\BSKnisd]\nisd & \K[\BSKvarisins]\varisins \\
\K[\BSKdoteq]\doteq & \K[\BSKPerp]\Perp & \K[\BSKvarnis]\varnis \\
\K[\BSKdoteqdot]\doteqdot & \K[\BSKpitchfork]\pitchfork & \K[\BSKvarpropto]\varpropto \\
\K[\BSKdotminus]\dotminus & \K[\BSKprecapprox]\precapprox & \K[\BSKVdash]\Vdash \\
\K[\BSKdotsim]\dotsim & \K[\BSKpreccurlyeq]\preccurlyeq & \K[\BSKvDash]\vDash \\
\K[\BSKeqbumped]\eqbumped & \K[\BSKprecnapprox]\precnapprox & \K[\BSKVDash]\VDash \\
\K[\BSKeqcirc]\eqcirc & \K[\BSKprecneqq]\precneqq & \K[\BSKveeeq]\veeeq \\
\K[\BSKeqsim]\eqsim & \K[\BSKprecnsim]\precnsim & \K[\BSKVvdash]\Vvdash \\
\K[\BSKequalparallel]\equalparallel & \K[\BSKprecsim]\precsim & \K[\BSKztransf]\ztransf \\
\K[\BSKfallingdotseq]\fallingdotseq & \K[\BSKprurel]\prurel & \K[\BSKZtransf]\Ztransf \\
\K[\BSKfatbslash]\fatbslash & \K[\BSKrisingdotseq]\risingdotseq & \\
\end{longtable}
\end{longsymtable}
\begin{symtable}[BSK]{\BSK\ Negated Binary Relations}
\index{binary relations>negated}
\index{relational symbols>negated binary}
\label{bsk-nrel}
\begin{tabular}{*3{ll}}
\K[\BSKncong]\ncong & \K[\BSKnpreceq]\npreceq & \K[\BSKnVDash]\nVDash \\
\K[\BSKneq]\neq & \K[\BSKnshortmid]\nshortmid & \K[\BSKnVdash]\nVdash \\
\K[\BSKnequiv]\nequiv & \K[\BSKnshortparallel]\nshortparallel & \K[\BSKnvdash]\nvdash \\
\K[\BSKnmid]\nmid & \K[\BSKnsim]\nsim & \K[\BSKnvDash]\nvDash \\
\K[\BSKnparallel]\nparallel & \K[\BSKnsucc]\nsucc & \\
\K[\BSKnprec]\nprec & \K[\BSKnsucceq]\nsucceq & \\
\end{tabular}
\end{symtable}
\begin{longsymtable}[STIX]{\STIX\ Binary Relations}
\ltindex{binary relations}
\ltindex{relational symbols>binary}
\ltidxboth{APL}{symbols}
\ltidxboth{frown}{symbols}
\label{stix-rel}
\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[\STIXapprox]\approx & \K[\STIXeqvparsl]\eqvparsl & \K[\STIXrightfishtail]\rightfishtail \\
\K[\STIXapproxeq]\approxeq & \K[\STIXfallingdotseq]\fallingdotseq & \K[\STIXrightimply]\rightimply \\
\K[\STIXapproxeqq]\approxeqq & \K[\STIXfbowtie]\fbowtie & \K[\STIXrighttail]\righttail \\
\K[\STIXapproxident]\approxident & \K[\STIXforksnot]\forksnot & \K[\STIXrisingdotseq]\risingdotseq \\
\K[\STIXarceq]\arceq & \K[\STIXforkv]\forkv & \K[\STIXrsqhook]\rsqhook \\
\K[\STIXassert]\assert & \K[\STIXfrown]\frown & \K[\STIXruledelayed]\ruledelayed \\
\K[\STIXasteq]\asteq & \K[\STIXgleichstark]\gleichstark & \K[\STIXscurel]\scurel \\
\K[\STIXasymp]\asymp & \K[\STIXhatapprox]\hatapprox & \K[\STIXshortdowntack]\shortdowntack \\
\K[\STIXbackcong]\backcong & \K[\STIXimageof]\imageof & \K[\STIXshortlefttack]\shortlefttack \\
\K[\STIXbacksim]\backsim & \K[\STIXin]\in & \K[\STIXshortmid]\shortmid \\
\K[\STIXbacksimeq]\backsimeq & \K[\STIXisindot]\isindot & \K[\STIXshortparallel]\shortparallel \\
\K[\STIXbagmember]\bagmember & \K[\STIXisinE]\isinE & \K[\STIXshortuptack]\shortuptack \\
\K[\STIXBarv]\Barv & \K[\STIXisinobar]\isinobar & \K[\STIXsim]\sim \\
\K[\STIXbarV]\barV & \K[\STIXisins]\isins & \K[\STIXsimeq]\simeq \\
\K[\STIXbetween]\between & \K[\STIXisinvb]\isinvb & \K[\STIXsimminussim]\simminussim \\
\K[\STIXbNot]\bNot & \K[\STIXkernelcontraction]\kernelcontraction & \K[\STIXsimneqq]\simneqq \\
\K[\STIXbowtie]\bowtie & \K[\STIXleftdbltail]\leftdbltail & \K[\STIXsimrdots]\simrdots \\
\K[\STIXBumpeq]\Bumpeq & \K[\STIXleftfishtail]\leftfishtail & \K[\STIXsmallfrown]\smallfrown \\
\K[\STIXbumpeq]\bumpeq & \K[\STIXlefttail]\lefttail & \K[\STIXsmallin]\smallin \\
\K[\STIXbumpeqq]\bumpeqq & \K[\STIXlfbowtie]\lfbowtie & \K[\STIXsmallni]\smallni \\
\K[\STIXcirbot]\cirbot & \K[\STIXlftimes]\lftimes & \K[\STIXsmallsmile]\smallsmile \\
\K[\STIXcirceq]\circeq & \K[\STIXlongdashv]\longdashv & \K[\STIXsmeparsl]\smeparsl \\
\K[\STIXcirmid]\cirmid & \K[\STIXlsqhook]\lsqhook & \K[\STIXsmile]\smile \\
\K[\STIXclosure]\closure & \K[\STIXmeaseq]\measeq & \K[\STIXstareq]\stareq \\
\K[\STIXColoneq]\Coloneq & \K[\STIXmid]\mid & \K[\STIXsucc]\succ \\
\K[\STIXcoloneq]\coloneq & \K[\STIXmidcir]\midcir & \K[\STIXSucc]\Succ \\
\K[\STIXcong]\cong & \K[\STIXmlcp]\mlcp & \K[\STIXsuccapprox]\succapprox \\
\K[\STIXcongdot]\congdot & \K[\STIXmodels]\models & \K[\STIXsucccurlyeq]\succcurlyeq \\
\K[\STIXcurlyeqprec]\curlyeqprec & \K[\STIXmultimap]\multimap & \K[\STIXsucceq]\succeq \\
\K[\STIXcurlyeqsucc]\curlyeqsucc & \K[\STIXmultimapinv]\multimapinv & \K[\STIXsucceqq]\succeqq \\
\K[\STIXdashcolon]\dashcolon & \K[\STIXni]\ni & \K[\STIXsuccnapprox]\succnapprox \\
\K[\STIXdashv]\dashv & \K[\STIXniobar]\niobar & \K[\STIXsuccneq]\succneq \\
\K[\STIXdashV]\dashV & \K[\STIXnis]\nis & \K[\STIXsuccneqq]\succneqq \\
\K[\STIXDashv]\Dashv & \K[\STIXnisd]\nisd & \K[\STIXsuccnsim]\succnsim \\
\K[\STIXDashV]\DashV & \K[\STIXNot]\Not & \K[\STIXsuccsim]\succsim \\
\K[\STIXDashVDash]\DashVDash & \K[\STIXnotchar]\notchar & \K[\STIXthickapprox]\thickapprox \\
\K[\STIXdashVdash]\dashVdash & \K[\STIXorigof]\origof & \K[\STIXthicksim]\thicksim \\
\K[\STIXddotseq]\ddotseq & \K[\STIXparallel]\parallel & \K[\STIXtopfork]\topfork \\
\K[\STIXdisin]\disin & \K[\STIXparsim]\parsim & \K[\STIXupfishtail]\upfishtail \\
\K[\STIXDoteq]\Doteq & \K[\STIXperp]\perp & \K[\STIXupin]\upin \\
\K[\STIXdoteq]\doteq & \K[\STIXpitchfork]\pitchfork & \K[\STIXvarisinobar]\varisinobar \\
\K[\STIXdotequiv]\dotequiv & \K[\STIXprec]\prec & \K[\STIXvarisins]\varisins \\
\K[\STIXdotsim]\dotsim & \K[\STIXPrec]\Prec & \K[\STIXvarniobar]\varniobar \\
\K[\STIXdotsminusdots]\dotsminusdots & \K[\STIXprecapprox]\precapprox & \K[\STIXvarnis]\varnis \\
\K[\STIXdownfishtail]\downfishtail & \K[\STIXpreccurlyeq]\preccurlyeq & \K[\STIXvarpropto]\varpropto \\
\K[\STIXdualmap]\dualmap & \K[\STIXpreceq]\preceq & \K[\STIXvarVdash]\varVdash \\
\K[\STIXeparsl]\eparsl & \K[\STIXpreceqq]\preceqq & \K[\STIXvBar]\vBar \\
\K[\STIXeqcirc]\eqcirc & \K[\STIXprecnapprox]\precnapprox & \K[\STIXVbar]\Vbar \\
\K[\STIXeqcolon]\eqcolon & \K[\STIXprecneq]\precneq & \K[\STIXvBarv]\vBarv \\
\K[\STIXeqdef]\eqdef & \K[\STIXprecneqq]\precneqq & \K[\STIXVdash]\Vdash \\
\K[\STIXeqdot]\eqdot & \K[\STIXprecnsim]\precnsim & \K[\STIXvdash]\vdash \\
\K[\STIXeqeq]\eqeq & \K[\STIXprecsim]\precsim & \K[\STIXvDash]\vDash \\
\K[\STIXeqeqeq]\eqeqeq & \K[\STIXpropto]\propto & \K[\STIXVDash]\VDash \\
\K[\STIXeqqsim]\eqqsim & \K[\STIXprurel]\prurel & \K[\STIXvDdash]\vDdash \\
\K[\STIXeqsim]\eqsim & \K[\STIXpullback]\pullback & \K[\STIXvdots]\vdots \\
\K[\STIXequalparallel]\equalparallel & \K[\STIXpushout]\pushout & \K[\STIXveeeq]\veeeq \\
\K[\STIXequiv]\equiv & \K[\STIXquesteq]\questeq & \K[\STIXveeonwedge]\veeonwedge \\
\K[\STIXEquiv]\Equiv & \K[\STIXrevnmid]\revnmid & \K[\STIXvertoverlay]\vertoverlay \\
\K[\STIXequivDD]\equivDD & \K[\STIXrfbowtie]\rfbowtie & \K[\STIXvlongdash]\vlongdash \\
\K[\STIXequivVert]\equivVert & \K[\STIXrftimes]\rftimes & \K[\STIXVvdash]\Vvdash \\
\K[\STIXequivVvert]\equivVvert & \K[\STIXrightdbltail]\rightdbltail & \K[\STIXwedgeq]\wedgeq \\
\end{longtable}
\begin{tablenote}
\STIX\ defines \cmdI[\string\STIXowns]{\owns} as a synonym for
\cmdI[\string\STIXni]{\ni} and
\cmdI[\string\STIXdoteqdot]{\doteqdot} as a synonym for
\cmdI[\string\STIXDoteq]{\Doteq}.
\end{tablenote}
\end{longsymtable}
\begin{symtable}[STIX]{\STIX\ Negated Binary Relations}
\index{binary relations>negated}
\index{relational symbols>negated binary}
\label{stix-nrel}
\begin{tabular}{*3{ll}}
\K[\STIXforks]\forks & \K[\STIXnhpar]\nhpar & \K[\STIXnsime]\nsime \\
\K[\STIXnapprox]\napprox & \K[\STIXnmid]\nmid & \K[\STIXnsucc]\nsucc \\
\K[\STIXnapproxeqq]\napproxeqq & \K[\STIXnni]\nni & \K[\STIXnsucccurlyeq]\nsucccurlyeq \\
\K[\STIXnasymp]\nasymp & \K[\STIXnotin]\notin & \K[\STIXnsucceq]\nsucceq \\
\K[\STIXnBumpeq]\nBumpeq & \K[\STIXnparallel]\nparallel & \K[\STIXnvarisinobar]\nvarisinobar \\
\K[\STIXnbumpeq]\nbumpeq & \K[\STIXnprec]\nprec & \K[\STIXnvarniobar]\nvarniobar \\
\K[\STIXncong]\ncong & \K[\STIXnpreccurlyeq]\npreccurlyeq & \K[\STIXnvDash]\nvDash \\
\K[\STIXncongdot]\ncongdot & \K[\STIXnpreceq]\npreceq & \K[\STIXnvdash]\nvdash \\
\K[\STIXne]\ne & \K[\STIXnshortmid]\nshortmid & \K[\STIXnVDash]\nVDash \\
\K[\STIXneqsim]\neqsim & \K[\STIXnshortparallel]\nshortparallel & \K[\STIXnVdash]\nVdash \\
\K[\STIXnequiv]\nequiv & \K[\STIXnsim]\nsim & \\
\end{tabular}
\bigskip
\begin{tablenote}
\STIX\ defines \cmdI[\string\STIXneq]{\neq} as a synonym for
\cmdI[\string\STIXne]{\ne}, \cmdI[\string\STIXnsimeq]{\nsimeq} as a
synonym for \cmdI[\string\STIXnsime]{\nsime}, and
\cmdI[\string\STIXnforksnot]{\nforksnot} as a synonym for
\cmdI[\string\STIXforks]{\forks}.
\end{tablenote}
\end{symtable}
\begin{symtable}[MTOOLS]{\MTOOLS\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{mtools-rel}
\begin{tabular}{ll@{\qquad}ll@{\qquad}ll}
\X[\MTOOLSColonapprox]\Colonapprox & \X[\MTOOLScoloneq]\coloneq & \X[\MTOOLSEqcolon]\Eqcolon \\
\X[\MTOOLScolonapprox]\colonapprox & \X[\MTOOLScolonsim]\colonsim & \X[\MTOOLSeqqcolon]\eqqcolon \\
\X[\MTOOLScoloneqq]\coloneqq & \X[\MTOOLSColonsim]\Colonsim & \X[\MTOOLSEqqcolon]\Eqqcolon \\
\X[\MTOOLSColoneqq]\Coloneqq & \X[\MTOOLSdblcolon]\dblcolon & \\
\X[\MTOOLSColoneq]\Coloneq & \X[\MTOOLSeqcolon]\eqcolon & \\
\end{tabular}
\bigskip
\begin{tablenote}
Similar symbols can be defined using \MTOOLS's \cmdX{\vcentcolon},
which produces a colon centered on the font's math axis:
\begin{center}
\begin{tabular}{ccc}
\Huge $=:=$ & vs. & \Huge $=\vcentcolon=$ \\
``\verb|=:=|'' & & ``\verb|=\vcentcolon=|'' \\
\end{tabular}
\end{center}
\end{tablenote}
\end{symtable}
\begin{longsymtable}[TURN]{\TURN\ Binary Relations}
\ltindex{binary relations}
\ltindex{relational symbols>binary}
\ltindex{consequence relations}
\label{turn-rel}
\renewcommand{\arraystretch}{2} % Keep tall symbols from touching.
\begin{longtable}{ll@{\hspace*{2em}}ll@{\hspace*{2em}}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
\Wul\dddtstile{abc}{def} & \Wul\nntstile{abc}{def} & \Wul\stdtstile{abc}{def} \\
\Wul\ddststile{abc}{def} & \Wul\nnttstile{abc}{def} & \Wul\stststile{abc}{def} \\
\Wul\ddtstile{abc}{def} & \Wul\nsdtstile{abc}{def} & \Wul\sttstile{abc}{def} \\
\Wul\ddttstile{abc}{def} & \Wul\nsststile{abc}{def} & \Wul\stttstile{abc}{def} \\
\Wul\dndtstile{abc}{def} & \Wul\nststile{abc}{def} & \Wul\tddtstile{abc}{def} \\
\Wul\dnststile{abc}{def} & \Wul\nsttstile{abc}{def} & \Wul\tdststile{abc}{def} \\
\Wul\dntstile{abc}{def} & \Wul\ntdtstile{abc}{def} & \Wul\tdtstile{abc}{def} \\
\Wul\dnttstile{abc}{def} & \Wul\ntststile{abc}{def} & \Wul\tdttstile{abc}{def} \\
\Wul\dsdtstile{abc}{def} & \Wul\nttstile{abc}{def} & \Wul\tndtstile{abc}{def} \\
\Wul\dsststile{abc}{def} & \Wul\ntttstile{abc}{def} & \Wul\tnststile{abc}{def} \\
\Wul\dststile{abc}{def} & \Wul\sddtstile{abc}{def} & \Wul\tntstile{abc}{def} \\
\Wul\dsttstile{abc}{def} & \Wul\sdststile{abc}{def} & \Wul\tnttstile{abc}{def} \\
\Wul\dtdtstile{abc}{def} & \Wul\sdtstile{abc}{def} & \Wul\tsdtstile{abc}{def} \\
\Wul\dtststile{abc}{def} & \Wul\sdttstile{abc}{def} & \Wul\tsststile{abc}{def} \\
\Wul\dttstile{abc}{def} & \Wul\sndtstile{abc}{def} & \Wul\tststile{abc}{def} \\
\Wul\dtttstile{abc}{def} & \Wul\snststile{abc}{def} & \Wul\tsttstile{abc}{def} \\
\Wul\nddtstile{abc}{def} & \Wul\sntstile{abc}{def} & \Wul\ttdtstile{abc}{def} \\
\Wul\ndststile{abc}{def} & \Wul\snttstile{abc}{def} & \Wul\ttststile{abc}{def} \\
\Wul\ndtstile{abc}{def} & \Wul\ssdtstile{abc}{def} & \Wul\tttstile{abc}{def} \\
\Wul\ndttstile{abc}{def} & \Wul\ssststile{abc}{def} & \Wul\ttttstile{abc}{def} \\
\Wul\nndtstile{abc}{def} & \Wul\sststile{abc}{def} & \\
\Wul\nnststile{abc}{def} & \Wul\ssttstile{abc}{def} & \\
\end{longtable}
\bigskip
\begin{tablenote}
Each of the above takes an optional argument that controls the size
of the upper and lower expressions. See the \TURN\ documentation
for more information.
\end{tablenote}
\end{longsymtable}
\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}[PDFMSYM]{\PDFMSYM\ Binary Relations}
\idxboth{relational}{symbols}
\label{pdfmsym-rel}
\begin{tabular}{*3{ll}}
\X\leftPP & \X\longroundedarrow & \X\roundedarrow \\
\X\longleftPP & \X\longsquaredarrow & \X\squaredarrow \\
\X\longrightPP & \X\rightPP & \\
\end{tabular}
\bigskip
\begin{tablenote}
\pdfmsymmessage.
\end{tablenote}
\end{symtable}
\begin{symtable}[CMLL]{\CMLL\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\idxboth{logic}{symbols}
\label{cmll-rel}
\begin{tabular}{ll@{\hspace*{2em}}ll}
\K[\CMLLcoh]\coh & \K[\CMLLscoh]\scoh \\
\K[\CMLLincoh]\incoh & \K[\CMLLsincoh]\sincoh \\
\K[\CMLLPerp]\Perp & \K[\CMLLsimperp]\simperp \\
\K[\CMLLmultimapboth]\multimapboth \\
\end{tabular}
\end{symtable}
\begin{symtable}[CEQ]{\CEQ\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{ceq-rel}
\begin{tabular}{*3{ll}}
\X\approxcolon & \X\coloncolonminus & \X\equalscoloncolon \\
\X\approxcoloncolon & \X\coloncolonsim & \X\minuscolon \\
\X[\CEQcolonapprox]\colonapprox & \X\colonequals & \X\minuscoloncolon \\
\X\coloncolon & \X\colonminus & \X\ratio \\
\X\coloncolonapprox & \X[\CEQcolonsim]\colonsim & \X\simcolon \\
\X\coloncolonequals & \X\equalscolon & \X\simcoloncolon \\
\end{tabular}
\end{symtable}
\begin{symtable}[FOUR]{\FOUR\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{fourier-rel}
\begin{tabular}{ll@{\quad}ll}
\K\nparallelslant & \K\parallelslant \\
\end{tabular}
\end{symtable}
\begin{symtable}[LOGIX]{\LOGIX\ Binary Relations}
\index{binary relations}
\index{relational symbols>binary}
\label{logix-rel}
\begin{tabular}{*4{ll}}
\K\ClsEquv & \K\NotClsEquv & \K\NotPre & \K\Pre \\
\K\ClsImpl & \K\NotClsImpl & \K\NotPreq & \K\Preq \\
\K\Conseq & \K\NotConseq & \K\NotRule & \K\Rule \\
\K\DTrpTurn & \K\NotDTrpTurn & \K\NotSeq & \K\Seq \\
\K\DTurnDWavy & \K\NotDTurnDWavy & \K\NotSuc & \K\Suc \\
\K\DTurnWavy & \K\NotDTurnWavy & \K\NotSucq & \K\Sucq \\
\K\Model & \K\NotModel & \K\NotTrpTurn & \K\TrpTurn \\
\K\MulMap & \K\NotMulMap & \K\NotTurn & \K\Turn \\
\K\MulMapDual & \K\NotMulMapDual & \K\NotTurnDWavy & \K\TurnDWavy \\
\K\MulMapInv & \K\NotMulMapInv & \K\NotTurnWavy & \K\TurnWavy \\
\end{tabular}
\bigskip
\begin{tablenote}
\luaxemessage{\LOGIX}.
\end{tablenote}
\end{symtable}
\begin{symtable}[LOGIX]{\LOGIX\ Set Symbols}
\label{logix-set}
\begin{tabular}{*4{ll}}
\K\In & \K\NotOwns & \K\Of & \K\VoidBunch \\
\K\NotIn & \K\NullSet & \K\Owns & \\
\end{tabular}
\bigskip
\begin{tablenote}
\luaxemessage{\LOGIX}.
\end{tablenote}
\end{symtable}
\begin{symtable}{Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{subsets}
\begin{tabular}{*3{ll}}
\X\sqsubset$^*$ & \X\sqsupseteq & \X\supset \\
\X\sqsubseteq & \X\subset & \X\supseteq \\
\X\sqsupset$^*$ & \X\subseteq \\
\end{tabular}
\bigskip
\notpredefinedmessage
\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}[MNS]{\MNS\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{mns-subsets}
\begin{tabular}{*4{ll}}
\K[\MNSnSqsubset]\nSqsubset & \K[\MNSnsubseteq]\nsubseteq & \K[\MNSsqsubsetneq]\sqsubsetneq & \K[\MNSsubseteq]\subseteq \\
\K[\MNSnsqsubset]\nsqsubset & \K[\MNSnsubseteqq]\nsubseteqq & \K[\MNSsqsubsetneqq]\sqsubsetneqq & \K[\MNSsubseteqq]\subseteqq \\
\K[\MNSnsqsubseteq]\nsqsubseteq & \K[\MNSnSupset]\nSupset & \K[\MNSSqsupset]\Sqsupset & \K[\MNSsubsetneq]\subsetneq \\
\K[\MNSnsqsubseteqq]\nsqsubseteqq & \K[\MNSnsupset]\nsupset & \K[\MNSsqsupset]\sqsupset & \K[\MNSsubsetneqq]\subsetneqq \\
\K[\MNSnSqsupset]\nSqsupset & \K[\MNSnsupseteq]\nsupseteq & \K[\MNSsqsupseteq]\sqsupseteq & \K[\MNSSupset]\Supset \\
\K[\MNSnsqsupset]\nsqsupset & \K[\MNSnsupseteqq]\nsupseteqq & \K[\MNSsqsupseteqq]\sqsupseteqq & \K[\MNSsupset]\supset \\
\K[\MNSnsqsupseteq]\nsqsupseteq & \K[\MNSSqsubset]\Sqsubset & \K[\MNSsqsupsetneq]\sqsupsetneq & \K[\MNSsupseteq]\supseteq \\
\K[\MNSnsqsupseteqq]\nsqsupseteqq & \K[\MNSsqsubset]\sqsubset & \K[\MNSsqsupsetneqq]\sqsupsetneqq & \K[\MNSsupseteqq]\supseteqq \\
\K[\MNSnSubset]\nSubset & \K[\MNSsqsubseteq]\sqsubseteq & \K[\MNSSubset]\Subset & \K[\MNSsupsetneq]\supsetneq \\
\K[\MNSnsubset]\nsubset & \K[\MNSsqsubseteqq]\sqsubseteqq & \K[\MNSsubset]\subset & \K[\MNSsupsetneqq]\supsetneqq \\
\end{tabular}
\bigskip
\begin{tablenote}
\MNS\ additionally defines \cmdI[\MNSsubsetneq]{\varsubsetneq} as a
synonym for \cmdI[\MNSsubsetneq]{\subsetneq},
\cmdI[\MNSsubsetneqq]{\varsubsetneqq} as a synonym for
\cmdI[\MNSsubsetneqq]{\subsetneqq},
\cmdI[\MNSsupsetneq]{\varsupsetneq} as a synonym for
\cmdI[\MNSsupsetneq]{\supsetneq}, and
\cmdI[\MNSsupsetneqq]{\varsupsetneqq} as a synonym for
\cmdI[\MNSsupsetneqq]{\supsetneqq}.
\end{tablenote}
\end{symtable}
\begin{symtable}[FDSYM]{\FDSYM\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{fdsym-subsets}
\begin{tabular}{*4{ll}}
\K[\FDSYMnsqsubset]\nsqsubset & \K[\FDSYMnsubseteq]\nsubseteq & \K[\FDSYMsqsubsetneq]\sqsubsetneq & \K[\FDSYMsubseteq]\subseteq \\
\K[\FDSYMnSqsubset]\nSqsubset & \K[\FDSYMnsubseteqq]\nsubseteqq & \K[\FDSYMsqsubsetneqq]\sqsubsetneqq & \K[\FDSYMsubseteqq]\subseteqq \\
\K[\FDSYMnsqsubseteq]\nsqsubseteq & \K[\FDSYMnsupset]\nsupset & \K[\FDSYMsqsupset]\sqsupset & \K[\FDSYMsubsetneq]\subsetneq \\
\K[\FDSYMnsqsubseteqq]\nsqsubseteqq & \K[\FDSYMnSupset]\nSupset & \K[\FDSYMSqsupset]\Sqsupset & \K[\FDSYMsubsetneqq]\subsetneqq \\
\K[\FDSYMnsqsupset]\nsqsupset & \K[\FDSYMnsupseteq]\nsupseteq & \K[\FDSYMsqsupseteq]\sqsupseteq & \K[\FDSYMsupset]\supset \\
\K[\FDSYMnSqsupset]\nSqsupset & \K[\FDSYMnsupseteqq]\nsupseteqq & \K[\FDSYMsqsupseteqq]\sqsupseteqq & \K[\FDSYMSupset]\Supset \\
\K[\FDSYMnsqsupseteq]\nsqsupseteq & \K[\FDSYMsqsubset]\sqsubset & \K[\FDSYMsqsupsetneq]\sqsupsetneq & \K[\FDSYMsupseteq]\supseteq \\
\K[\FDSYMnsqsupseteqq]\nsqsupseteqq & \K[\FDSYMSqsubset]\Sqsubset & \K[\FDSYMsqsupsetneqq]\sqsupsetneqq & \K[\FDSYMsupseteqq]\supseteqq \\
\K[\FDSYMnsubset]\nsubset & \K[\FDSYMsqsubseteq]\sqsubseteq & \K[\FDSYMsubset]\subset & \K[\FDSYMsupsetneq]\supsetneq \\
\K[\FDSYMnSubset]\nSubset & \K[\FDSYMsqsubseteqq]\sqsubseteqq & \K[\FDSYMSubset]\Subset & \K[\FDSYMsupsetneqq]\supsetneqq \\
\end{tabular}
\bigskip
\begin{tablenote}
\FDSYM\ additionally defines
\cmdI[\string\FDSYMvarsubsetneqq]{\varsubsetneqq} as a synonym for
\cmdI[\string\FDSYMsubsetneqq]{\subsetneqq},
\cmdI[\string\FDSYMvarsubsetneq]{\varsubsetneq} as a synonym for
\cmdI[\string\FDSYMsubsetneq]{\subsetneq},
\cmdI[\string\FDSYMvarsupsetneqq]{\varsupsetneqq} as a synonym for
\cmdI[\string\FDSYMsupsetneqq]{\supsetneqq}, and
\cmdI[\string\FDSYMvarsupsetneq]{\varsupsetneq} as a synonym for
\cmdI[\string\FDSYMsupsetneq]{\supsetneq}.
\end{tablenote}
\end{symtable}
\begin{symtable}[BSK]{\BSK\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{bsk-subsets}
\begin{tabular}{*4{ll}}
\K[\BSKnsubset]\nsubset & \K[\BSKsqSubset]\sqSubset & \K[\BSKsubsetplus]\subsetplus & \K[\BSKsupsetpluseq]\supsetpluseq \\
\K[\BSKnsubseteq]\nsubseteq & \K[\BSKsqSupset]\sqSupset & \K[\BSKsubsetpluseq]\subsetpluseq & \K[\BSKvarsubsetneq]\varsubsetneq \\
\K[\BSKnsubseteqq]\nsubseteqq & \K[\BSKsqsupset]\sqsupset & \K[\BSKSupset]\Supset & \K[\BSKvarsubsetneqq]\varsubsetneqq \\
\K[\BSKnsupset]\nsupset & \K[\BSKSubset]\Subset & \K[\BSKsupseteqq]\supseteqq & \K[\BSKvarsupsetneq]\varsupsetneq \\
\K[\BSKnsupseteq]\nsupseteq & \K[\BSKsubseteqq]\subseteqq & \K[\BSKsupsetneq]\supsetneq & \K[\BSKvarsupsetneqq]\varsupsetneqq \\
\K[\BSKnsupseteqq]\nsupseteqq & \K[\BSKsubsetneq]\subsetneq & \K[\BSKsupsetneqq]\supsetneqq & \\
\K[\BSKsqsubset]\sqsubset & \K[\BSKsubsetneqq]\subsetneqq & \K[\BSKsupsetplus]\supsetplus & \\
\end{tabular}
\end{symtable}
\begin{longsymtable}[STIX]{\STIX\ Subset and Superset Relations}
\ltindex{binary relations}
\ltindex{relational symbols>binary}
\ltindex{subsets}
\ltindex{supersets}
\ltindex{symbols>subset and superset}
\label{stix-subsets}
\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[\STIXbsolhsub]\bsolhsub & \K[\STIXsqsupseteq]\sqsupseteq & \K[\STIXsuphsub]\suphsub \\
\K[\STIXcsub]\csub & \K[\STIXsqsupsetneq]\sqsupsetneq & \K[\STIXsuplarr]\suplarr \\
\K[\STIXcsube]\csube & \K[\STIXsubedot]\subedot & \K[\STIXsupmult]\supmult \\
\K[\STIXcsup]\csup & \K[\STIXsubmult]\submult & \K[\STIXSupset]\Supset \\
\K[\STIXcsupe]\csupe & \K[\STIXsubrarr]\subrarr & \K[\STIXsupset]\supset \\
\K[\STIXleftarrowsubset]\leftarrowsubset & \K[\STIXSubset]\Subset & \K[\STIXsupsetapprox]\supsetapprox \\
\K[\STIXnsqsubset]\nsqsubset & \K[\STIXsubset]\subset & \K[\STIXsupsetcirc]\supsetcirc$^*$ \\
\K[\STIXnsqsubseteq]\nsqsubseteq & \K[\STIXsubsetapprox]\subsetapprox & \K[\STIXsupsetdot]\supsetdot \\
\K[\STIXnsqsupset]\nsqsupset & \K[\STIXsubsetcirc]\subsetcirc$^*$ & \K[\STIXsupseteq]\supseteq \\
\K[\STIXnsqsupseteq]\nsqsupseteq & \K[\STIXsubsetdot]\subsetdot & \K[\STIXsupseteqq]\supseteqq \\
\K[\STIXnsubset]\nsubset & \K[\STIXsubseteq]\subseteq & \K[\STIXsupsetneq]\supsetneq \\
\K[\STIXnsubseteq]\nsubseteq & \K[\STIXsubseteqq]\subseteqq & \K[\STIXsupsetneqq]\supsetneqq \\
\K[\STIXnsubseteqq]\nsubseteqq & \K[\STIXsubsetneq]\subsetneq & \K[\STIXsupsetplus]\supsetplus \\
\K[\STIXnsupset]\nsupset & \K[\STIXsubsetneqq]\subsetneqq & \K[\STIXsupsim]\supsim \\
\K[\STIXnsupseteq]\nsupseteq & \K[\STIXsubsetplus]\subsetplus & \K[\STIXsupsub]\supsub \\
\K[\STIXnsupseteqq]\nsupseteqq & \K[\STIXsubsim]\subsim & \K[\STIXsupsup]\supsup \\
\K[\STIXrightarrowsupset]\rightarrowsupset & \K[\STIXsubsub]\subsub & \K[\STIXvarsubsetneq]\varsubsetneq \\
\K[\STIXsqsubset]\sqsubset & \K[\STIXsubsup]\subsup & \K[\STIXvarsubsetneqq]\varsubsetneqq \\
\K[\STIXsqsubseteq]\sqsubseteq & \K[\STIXsupdsub]\supdsub & \K[\STIXvarsupsetneq]\varsupsetneq \\
\K[\STIXsqsubsetneq]\sqsubsetneq & \K[\STIXsupedot]\supedot & \K[\STIXvarsupsetneqq]\varsupsetneqq \\
\K[\STIXsqsupset]\sqsupset & \K[\STIXsuphsol]\suphsol & \\
\end{longtable}
\begin{tablenote}[*]
Defined as an ordinary character, not as a binary relation.
\end{tablenote}
\end{longsymtable}
\begin{symtable}[LOGIX]{\LOGIX\ Subset and Superset Relations}
\index{binary relations}
\index{relational symbols>binary}
\index{subsets}
\index{supersets}
\index{symbols>subset and superset}
\label{logix-subsets}
\begin{tabular}{*4{ll}}
\K\FntSbset & \K\NotStrctFntSbset & \K\NotWkSbnch & \K\StrctSbmap \\
\K\NotFntSbset & \K\NotStrctSbmap & \K\Sbmap & \K\StrctSbnch \\
\K\NotSbmap & \K\NotStrctSbnch & \K\Sbnch & \K\StrctSbset \\
\K\NotSbnch & \K\NotStrctSbset & \K\Sbset & \K\StrctWkSbnch \\
\K\NotSbset & \K\NotStrctWkSbnch & \K\StrctFntSbset & \K\WkSbnch \\
\end{tabular}
\bigskip
\begin{tablenote}
\luaxemessage{\LOGIX}.
\end{tablenote}
\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}
\renewcommand{\arraystretch}{1.5} % Keep visually similar symbols from touching.
\begin{tabular}{*4{ll}}
\X\eqslantgtr & \X\gtrdot & \X\lesseqgtr & \X\ngeq \\
\X\eqslantless & \X\gtreqless & \X\lesseqqgtr & \X\ngeqq \\
\X\geqq & \X\gtreqqless & \X\lessgtr & \X\ngeqslant \\
\X\geqslant & \X\gtrless & \X\lesssim & \X\ngtr \\
\X\ggg & \X\gtrsim & \X\lll & \X\nleq \\
\X\gnapprox & \X\gvertneqq & \X\lnapprox & \X\nleqq \\
\X\gneq & \X\leqq & \X\lneq & \X\nleqslant \\
\X\gneqq & \X\leqslant & \X\lneqq & \X\nless \\
\X\gnsim & \X\lessapprox & \X\lnsim & \\
\X\gtrapprox & \X\lessdot & \X\lvertneqq & \\
\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}
\renewcommand{\arraystretch}{1.5} % Keep visually similar symbols from touching.
\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}[MNS]{\MNS\ Inequalities}
\index{binary relations}\index{relational symbols>binary}
\index{inequalities}
\label{mns-inequal-rel}
\renewcommand{\arraystretch}{1.25} % Keep visually similar symbols from touching.
\begin{tabular}{*4{ll}}
\K[\MNSeqslantgtr]\eqslantgtr & \K[\MNSgtreqqless]\gtreqqless & \K[\MNSlesssim]\lesssim & \K[\MNSngtreqless]\ngtreqless \\
\K[\MNSeqslantless]\eqslantless & \K[\MNSgtrless]\gtrless & \K[\MNSll]\ll & \K[\MNSngtreqlessslant]\ngtreqlessslant \\
\K[\MNSgeq]\geq & \K[\MNSgtrneqqless]\gtrneqqless & \K[\MNSlll]\lll & \K[\MNSngtreqqless]\ngtreqqless \\
\K[\MNSgeqclosed]\geqclosed & \K[\MNSgtrsim]\gtrsim & \K[\MNSlnapprox]\lnapprox & \K[\MNSngtrless]\ngtrless \\
\K[\MNSgeqdot]\geqdot & \K[\MNSleq]\leq & \K[\MNSlneqq]\lneqq & \K[\MNSnleq]\nleq \\
\K[\MNSgeqq]\geqq & \K[\MNSleqclosed]\leqclosed & \K[\MNSlnsim]\lnsim & \K[\MNSnleqclosed]\nleqclosed \\
\K[\MNSgeqslant]\geqslant & \K[\MNSleqdot]\leqdot & \K[\MNSneqslantgtr]\neqslantgtr & \K[\MNSnleqdot]\nleqdot \\
\K[\MNSgeqslantdot]\geqslantdot & \K[\MNSleqq]\leqq & \K[\MNSneqslantless]\neqslantless & \K[\MNSnleqq]\nleqq \\
\K[\MNSgg]\gg & \K[\MNSleqslant]\leqslant & \K[\MNSngeq]\ngeq & \K[\MNSnleqslant]\nleqslant \\
\K[\MNSggg]\ggg & \K[\MNSleqslantdot]\leqslantdot & \K[\MNSngeqclosed]\ngeqclosed & \K[\MNSnleqslantdot]\nleqslantdot \\
\K[\MNSgnapprox]\gnapprox & \K[\MNSless]\less & \K[\MNSngeqdot]\ngeqdot & \K[\MNSnless]\nless \\
\K[\MNSgneqq]\gneqq & \K[\MNSlessapprox]\lessapprox & \K[\MNSngeqq]\ngeqq & \K[\MNSnlessclosed]\nlessclosed \\
\K[\MNSgnsim]\gnsim & \K[\MNSlessclosed]\lessclosed & \K[\MNSngeqslant]\ngeqslant & \K[\MNSnlessdot]\nlessdot \\
\K[\MNSgtr]\gtr & \K[\MNSlessdot]\lessdot & \K[\MNSngeqslantdot]\ngeqslantdot & \K[\MNSnlesseqgtr]\nlesseqgtr \\
\K[\MNSgtrapprox]\gtrapprox & \K[\MNSlesseqgtr]\lesseqgtr & \K[\MNSngg]\ngg & \K[\MNSnlesseqgtrslant]\nlesseqgtrslant \\
\K[\MNSgtrclosed]\gtrclosed & \K[\MNSlesseqgtrslant]\lesseqgtrslant & \K[\MNSnggg]\nggg & \K[\MNSnlesseqqgtr]\nlesseqqgtr \\
\K[\MNSgtrdot]\gtrdot & \K[\MNSlesseqqgtr]\lesseqqgtr & \K[\MNSngtr]\ngtr & \K[\MNSnlessgtr]\nlessgtr \\
\K[\MNSgtreqless]\gtreqless & \K[\MNSlessgtr]\lessgtr & \K[\MNSngtrclosed]\ngtrclosed & \K[\MNSnll]\nll \\
\K[\MNSgtreqlessslant]\gtreqlessslant & \K[\MNSlessneqqgtr]\lessneqqgtr & \K[\MNSngtrdot]\ngtrdot & \K[\MNSnlll]\nlll \\
\end{tabular}
\bigskip
\begin{tablenote}
\MNS\ additionally defines synonyms for some of the preceding symbols:
\newcommand*{\mnssyn}[1]{(same as \texttt{\string#1})}
\renewcommand{\arraystretch}{1}
\begin{tabular}{ll@{\quad}l}
\K[\MNSggg]\gggtr & \mnssyn\ggg \\
\K[\MNSgneqq]\gvertneqq & \mnssyn\gneqq \\
\K[\MNSlessclosed]\lhd & \mnssyn\lessclosed \\
\K[\MNSlll]\llless & \mnssyn\lll \\
\K[\MNSlneqq]\lvertneqq & \mnssyn\lneqq \\
\K[\MNSnleqclosed]\ntrianglelefteq & \mnssyn\nleqclosed \\
\K[\MNSnlessclosed]\ntriangleleft & \mnssyn\nlessclosed \\
\K[\MNSngeqclosed]\ntrianglerighteq & \mnssyn\ngeqclosed \\
\K[\MNSngtrclosed]\ntriangleright & \mnssyn\ngtrclosed \\
\K[\MNSgtrclosed]\rhd & \mnssyn\gtrclosed \\
\K[\MNSleqclosed]\trianglelefteq & \mnssyn\leqclosed \\
\K[\MNSgeqclosed]\trianglerighteq & \mnssyn\geqclosed \\
\K[\MNSleqclosed]\unlhd & \mnssyn\leqclosed \\
\K[\MNSgeqclosed]\unrhd & \mnssyn\geqclosed \\
\K[\MNSlessclosed]\vartriangleleft & \mnssyn\lessclosed \\
\K[\MNSgtrclosed]\vartriangleright & \mnssyn\gtrclosed \\
\end{tabular}
\end{tablenote}
\end{symtable}
\begin{longsymtable}[FDSYM]{\FDSYM\ Inequalities}
\ltindex{binary relations}\index{relational symbols>binary}
\ltindex{inequalities}
\label{fdsym-inequal-rel}
\renewcommand{\arraystretch}{1.25} % Keep visually similar symbols from touching.
\begin{longtable}{ll*2{@{\hspace*{2em}}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[\FDSYMeqslantgtr]\eqslantgtr & \K[\FDSYMleqslantdot]\leqslantdot & \K[\FDSYMngtrapprox]\ngtrapprox \\
\K[\FDSYMeqslantless]\eqslantless & \K[\FDSYMleqslcc]\leqslcc & \K[\FDSYMngtrcc]\ngtrcc \\
\K[\FDSYMgeq]\geq & \K[\FDSYMless]\less & \K[\FDSYMngtrclosed]\ngtrclosed \\
\K[\FDSYMgeqclosed]\geqclosed & \K[\FDSYMlessapprox]\lessapprox & \K[\FDSYMngtrdot]\ngtrdot \\
\K[\FDSYMgeqdot]\geqdot & \K[\FDSYMlesscc]\lesscc & \K[\FDSYMngtreqless]\ngtreqless \\
\K[\FDSYMgeqq]\geqq & \K[\FDSYMlessclosed]\lessclosed & \K[\FDSYMngtreqqless]\ngtreqqless \\
\K[\FDSYMgeqslant]\geqslant & \K[\FDSYMlessdot]\lessdot & \K[\FDSYMngtreqslantless]\ngtreqslantless \\
\K[\FDSYMgeqslantdot]\geqslantdot & \K[\FDSYMlesseqgtr]\lesseqgtr & \K[\FDSYMngtrless]\ngtrless \\
\K[\FDSYMgeqslcc]\geqslcc & \K[\FDSYMlesseqqgtr]\lesseqqgtr & \K[\FDSYMngtrsim]\ngtrsim \\
\K[\FDSYMgg]\gg & \K[\FDSYMlesseqslantgtr]\lesseqslantgtr & \K[\FDSYMnleq]\nleq \\
\K[\FDSYMggg]\ggg & \K[\FDSYMlessgtr]\lessgtr & \K[\FDSYMnleqclosed]\nleqclosed \\
\K[\FDSYMgnapprox]\gnapprox & \K[\FDSYMlesssim]\lesssim & \K[\FDSYMnleqdot]\nleqdot \\
\K[\FDSYMgneq]\gneq & \K[\FDSYMll]\ll & \K[\FDSYMnleqq]\nleqq \\
\K[\FDSYMgneqq]\gneqq & \K[\FDSYMlll]\lll & \K[\FDSYMnleqslant]\nleqslant \\
\K[\FDSYMgnsim]\gnsim & \K[\FDSYMlnapprox]\lnapprox & \K[\FDSYMnleqslantdot]\nleqslantdot \\
\K[\FDSYMgtr]\gtr & \K[\FDSYMlneq]\lneq & \K[\FDSYMnleqslcc]\nleqslcc \\
\K[\FDSYMgtrapprox]\gtrapprox & \K[\FDSYMlneqq]\lneqq & \K[\FDSYMnless]\nless \\
\K[\FDSYMgtrcc]\gtrcc & \K[\FDSYMlnsim]\lnsim & \K[\FDSYMnlessapprox]\nlessapprox \\
\K[\FDSYMgtrclosed]\gtrclosed & \K[\FDSYMneqslantgtr]\neqslantgtr & \K[\FDSYMnlesscc]\nlesscc \\
\K[\FDSYMgtrdot]\gtrdot & \K[\FDSYMneqslantless]\neqslantless & \K[\FDSYMnlessclosed]\nlessclosed \\
\K[\FDSYMgtreqless]\gtreqless & \K[\FDSYMngeq]\ngeq & \K[\FDSYMnlessdot]\nlessdot \\
\K[\FDSYMgtreqqless]\gtreqqless & \K[\FDSYMngeqclosed]\ngeqclosed & \K[\FDSYMnlesseqgtr]\nlesseqgtr \\
\K[\FDSYMgtreqslantless]\gtreqslantless & \K[\FDSYMngeqdot]\ngeqdot & \K[\FDSYMnlesseqqgtr]\nlesseqqgtr \\
\K[\FDSYMgtrless]\gtrless & \K[\FDSYMngeqq]\ngeqq & \K[\FDSYMnlesseqslantgtr]\nlesseqslantgtr \\
\K[\FDSYMgtrsim]\gtrsim & \K[\FDSYMngeqslant]\ngeqslant & \K[\FDSYMnlessgtr]\nlessgtr \\
\K[\FDSYMleq]\leq & \K[\FDSYMngeqslantdot]\ngeqslantdot & \K[\FDSYMnlesssim]\nlesssim \\
\K[\FDSYMleqclosed]\leqclosed & \K[\FDSYMngeqslcc]\ngeqslcc & \K[\FDSYMnll]\nll \\
\K[\FDSYMleqdot]\leqdot & \K[\FDSYMngg]\ngg & \K[\FDSYMnlll]\nlll \\
\K[\FDSYMleqq]\leqq & \K[\FDSYMnggg]\nggg & \\
\K[\FDSYMleqslant]\leqslant & \K[\FDSYMngtr]\ngtr & \\
\end{longtable}
\FDSYM\ defines synonyms for some of the preceding symbols:
\begin{longtable}{ll*2{@{\hspace*{2em}}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[\FDSYMge]{\ge} & \K[\FDSYMlesdot]{\lesdot} & \K[\FDSYMngtcc]{\ngtcc} \\
\K[\FDSYMgescc]{\gescc} & \K[\FDSYMlesg]{\lesg} & \K[\FDSYMngtreqlessslant]{\ngtreqlessslant} \\
\K[\FDSYMgesdot]{\gesdot} & \K[\FDSYMlesseqgtrslant]{\lesseqgtrslant} & \K[\FDSYMnlescc]{\nlescc} \\
\K[\FDSYMgesl]{\gesl} & \K[\FDSYMlhd]{\lhd} & \K[\FDSYMnlesdot]{\nlesdot} \\
\K[\FDSYMgggtr]{\gggtr} & \K[\FDSYMllless]{\llless} & \K[\FDSYMnlesg]{\nlesg} \\
\K[\FDSYMgtcc]{\gtcc} & \K[\FDSYMltcc]{\ltcc} & \K[\FDSYMnlesseqgtrslant]{\nlesseqgtrslant} \\
\K[\FDSYMgtreqlessslant]{\gtreqlessslant} & \K[\FDSYMlvertneqq]{\lvertneqq} & \K[\FDSYMnltcc]{\nltcc} \\
\K[\FDSYMgvertneqq]{\gvertneqq} & \K[\FDSYMngescc]{\ngescc} & \K[\FDSYMrhd]{\rhd} \\
\K[\FDSYMle]{\le} & \K[\FDSYMngesdot]{\ngesdot} & \K[\FDSYMunlhd]{\unlhd} \\
\K[\FDSYMlescc]{\lescc} & \K[\FDSYMngesl]{\ngesl} & \K[\FDSYMunrhd]{\unrhd} \\
\end{longtable}
\end{longsymtable}
\begin{symtable}[BSK]{\BSK\ Inequalities}
\index{binary relations}
\index{relational symbols>binary}
\index{inequalities}
\label{bsk-inequal-rel}
\renewcommand{\arraystretch}{1.25} % Keep visually similar symbols from touching.
\begin{tabular}{ll*3{@{\hspace*{2em}}ll}}
\K[\BSKeqslantgtr]\eqslantgtr & \K[\BSKgtcir]\gtcir & \K[\BSKlesseqqgtr]\lesseqqgtr & \K[\BSKngeq]\ngeq \\
\K[\BSKeqslantless]\eqslantless & \K[\BSKgtrapprox]\gtrapprox & \K[\BSKlessgtr]\lessgtr & \K[\BSKngeqq]\ngeqq \\
\K[\BSKgeqq]\geqq & \K[\BSKgtreqless]\gtreqless & \K[\BSKlesssim]\lesssim & \K[\BSKngeqslant]\ngeqslant \\
\K[\BSKgeqslant]\geqslant & \K[\BSKgtreqqless]\gtreqqless & \K[\BSKlll]\lll & \K[\BSKngtr]\ngtr \\
\K[\BSKggg]\ggg & \K[\BSKgtrless]\gtrless & \K[\BSKlnapprox]\lnapprox & \K[\BSKnleq]\nleq \\
\K[\BSKglj]\glj & \K[\BSKgtrsim]\gtrsim & \K[\BSKlneq]\lneq & \K[\BSKnleqq]\nleqq \\
\K[\BSKgnapprox]\gnapprox & \K[\BSKgvertneqq]\gvertneqq & \K[\BSKlneqq]\lneqq & \K[\BSKnleqslant]\nleqslant \\
\K[\BSKgneq]\gneq & \K[\BSKleqq]\leqq & \K[\BSKlnsim]\lnsim & \K[\BSKnless]\nless \\
\K[\BSKgneqq]\gneqq & \K[\BSKleqslant]\leqslant & \K[\BSKLt]\Lt & \\
\K[\BSKgnsim]\gnsim & \K[\BSKlessapprox]\lessapprox & \K[\BSKltcir]\ltcir & \\
\K[\BSKGt]\Gt & \K[\BSKlesseqgtr]\lesseqgtr & \K[\BSKlvertneqq]\lvertneqq & \\
\end{tabular}
\end{symtable}
\begin{longsymtable}[STIX]{\STIX\ Inequalities}
\ltindex{binary relations}
\ltindex{relational symbols>binary}
\ltindex{inequalities}
\label{stix-inequal-rel}
\renewcommand{\arraystretch}{1.25} % Keep visually similar symbols from touching.
\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[\STIXegsdot]\egsdot & \K[\STIXgtquest]\gtquest & \K[\STIXlnsim]\lnsim \\
\K[\STIXelsdot]\elsdot & \K[\STIXgtrapprox]\gtrapprox & \K[\STIXlsime]\lsime \\
\K[\STIXeqgtr]\eqgtr & \K[\STIXgtrarr]\gtrarr & \K[\STIXlsimg]\lsimg \\
\K[\STIXeqless]\eqless & \K[\STIXgtrdot]\gtrdot & \K[\STIXLt]\Lt \\
\K[\STIXeqqgtr]\eqqgtr & \K[\STIXgtreqless]\gtreqless & \K[\STIXltcc]\ltcc \\
\K[\STIXeqqless]\eqqless & \K[\STIXgtreqqless]\gtreqqless & \K[\STIXltcir]\ltcir \\
\K[\STIXeqqslantgtr]\eqqslantgtr & \K[\STIXgtrless]\gtrless & \K[\STIXltlarr]\ltlarr \\
\K[\STIXeqqslantless]\eqqslantless & \K[\STIXgtrsim]\gtrsim & \K[\STIXltquest]\ltquest \\
\K[\STIXeqslantgtr]\eqslantgtr & \K[\STIXgvertneqq]\gvertneqq & \K[\STIXlvertneqq]\lvertneqq \\
\K[\STIXeqslantless]\eqslantless & \K[\STIXlat]\lat & \K[\STIXneqslantgtr]\neqslantgtr \\
\K[\STIXgeq]\geq & \K[\STIXlate]\late & \K[\STIXneqslantless]\neqslantless \\
\K[\STIXgeqq]\geqq & \K[\STIXleftarrowless]\leftarrowless & \K[\STIXngeq]\ngeq \\
\K[\STIXgeqqslant]\geqqslant & \K[\STIXleq]\leq & \K[\STIXngeqq]\ngeqq \\
\K[\STIXgeqslant]\geqslant & \K[\STIXleqq]\leqq & \K[\STIXngeqslant]\ngeqslant \\
\K[\STIXgescc]\gescc & \K[\STIXleqqslant]\leqqslant & \K[\STIXngg]\ngg \\
\K[\STIXgesdot]\gesdot & \K[\STIXleqslant]\leqslant & \K[\STIXngtr]\ngtr \\
\K[\STIXgesdoto]\gesdoto & \K[\STIXlescc]\lescc & \K[\STIXngtrless]\ngtrless \\
\K[\STIXgesdotol]\gesdotol & \K[\STIXlesdot]\lesdot & \K[\STIXngtrsim]\ngtrsim \\
\K[\STIXgesles]\gesles & \K[\STIXlesdoto]\lesdoto & \K[\STIXnleq]\nleq \\
\K[\STIXgg]\gg & \K[\STIXlesdotor]\lesdotor & \K[\STIXnleqq]\nleqq \\
\K[\STIXggg]\ggg & \K[\STIXlesges]\lesges & \K[\STIXnleqslant]\nleqslant \\
\K[\STIXgggnest]\gggnest & \K[\STIXlessapprox]\lessapprox & \K[\STIXnless]\nless \\
\K[\STIXgla]\gla & \K[\STIXlessdot]\lessdot & \K[\STIXnlessgtr]\nlessgtr \\
\K[\STIXglE]\glE & \K[\STIXlesseqgtr]\lesseqgtr & \K[\STIXnlesssim]\nlesssim \\
\K[\STIXglj]\glj & \K[\STIXlesseqqgtr]\lesseqqgtr & \K[\STIXnll]\nll \\
\K[\STIXgnapprox]\gnapprox & \K[\STIXlessgtr]\lessgtr & \K[\STIXpartialmeetcontraction]\partialmeetcontraction \\
\K[\STIXgneq]\gneq & \K[\STIXlesssim]\lesssim & \K[\STIXrightarrowgtr]\rightarrowgtr \\
\K[\STIXgneqq]\gneqq & \K[\STIXlgE]\lgE & \K[\STIXsimgE]\simgE \\
\K[\STIXgnsim]\gnsim & \K[\STIXll]\ll & \K[\STIXsimgtr]\simgtr \\
\K[\STIXgsime]\gsime & \K[\STIXlll]\lll & \K[\STIXsimlE]\simlE \\
\K[\STIXgsiml]\gsiml & \K[\STIXlllnest]\lllnest & \K[\STIXsimless]\simless \\
\K[\STIXGt]\Gt & \K[\STIXlnapprox]\lnapprox & \K[\STIXsmt]\smt \\
\K[\STIXgtcc]\gtcc & \K[\STIXlneq]\lneq & \K[\STIXsmte]\smte \\
\K[\STIXgtcir]\gtcir & \K[\STIXlneqq]\lneqq & \\
\end{longtable}
\begin{tablenote}
\STIX\ defines \cmdI[\string\STIXle]{\le} as a synonym for
\cmdI[\string\STIXleq]{\leq}, \cmdI[\string\STIXge]{\ge} as a
synonym for \cmdI[\string\STIXgeq]{\geq},
\cmdI[\string\STIXllless]{\llless} as a synonym for
\cmdI[\string\STIXlll]{\lll}, \cmdI[\string\STIXgggtr]{\gggtr} as a
synonym for \cmdI[\string\STIXggg]{\ggg},
\cmdI[\string\STIXnle]{\nle} as a synonym for
\cmdI[\string\STIXnleq]{\nleq}, and \cmdI[\string\STIXnge]{\nge} as
a synonym for \cmdI[\string\STIXngeq]{\ngeq}.
\end{tablenote}
\end{longsymtable}
\begin{symtable}[LOGIX]{\LOGIX\ Inequalities and Equalities}
\index{binary relations}
\index{relational symbols>binary}
\index{inequalities}
\label{logix-inequal-rel}
\begin{tabular}{*4{ll}}
\K\CircEq & \K\Gr & \K\NotLs & \K\SbGr \\
\K\CircGr & \K\Gre & \K\NotLse & \K\SbGre \\
\K\CircGre & \K\Ls & \K\NotSbGr & \K\SbLs \\
\K\CircLs & \K\Lse & \K\NotSbGre & \K\SbLse \\
\K\CircLse & \K\NotEq & \K\NotSbLs & \K\Sm \\
\K\CircSm & \K\NotGr & \K\NotSbLse & \\
\K\Eq & \K\NotGre & \K\NotSm & \\
\end{tabular}
\bigskip
\begin{tablenote}
\luaxemessage{\LOGIX}.
\end{tablenote}
\end{symtable}
\begin{symtable}[AMS]{\AMS\ Triangle Relations}
\index{triangle relations}
\index{relational symbols>triangle}
\label{ams-triangle-rel}
\begin{tabular}{*3{ll}}
\X\blacktriangleleft & \X\ntriangleright & \X\trianglerighteq \\
\X\blacktriangleright & \X\ntrianglerighteq & \X\vartriangleleft \\
\X\ntriangleleft & \X\trianglelefteq & \X\vartriangleright \\
\X\ntrianglelefteq & \X\triangleq & \\
\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}{*3{ll}}
\X[\ABXntriangleleft]\ntriangleleft & \X[\ABXtriangleleft]\triangleleft & \X[\ABXvartriangleleft]\vartriangleleft \\
\X[\ABXntrianglelefteq]\ntrianglelefteq & \X[\ABXtrianglelefteq]\trianglelefteq & \X[\ABXvartriangleright]\vartriangleright \\
\X[\ABXntriangleright]\ntriangleright & \X[\ABXtriangleright]\triangleright & \\
\X[\ABXntrianglerighteq]\ntrianglerighteq & \X[\ABXtrianglerighteq]\trianglerighteq & \\
\end{tabular}
\end{symtable}
\begin{symtable}[MNS]{\MNS\ Triangle Relations}
\index{triangle relations}\index{relational symbols>triangle}
\label{mns-triangle-rel}
\begin{tabular}{*3{ll}}
\K[\MNSfilledmedtriangledown]\filledmedtriangledown & \K[\MNSlargetriangleup]\largetriangleup & \K[\MNSsmalltriangledown]\smalltriangledown \\
\K[\MNSfilledmedtriangleleft]\filledmedtriangleleft & \K[\MNSmedtriangledown]\medtriangledown & \K[\MNSsmalltriangleleft]\smalltriangleleft \\
\K[\MNSfilledmedtriangleright]\filledmedtriangleright & \K[\MNSmedtriangleleft]\medtriangleleft & \K[\MNSsmalltriangleright]\smalltriangleright \\
\K[\MNSfilledmedtriangleup]\filledmedtriangleup & \K[\MNSmedtriangleright]\medtriangleright & \K[\MNSsmalltriangleup]\smalltriangleup \\
\K[\MNSfilledtriangledown]\filledtriangledown & \K[\MNSmedtriangleup]\medtriangleup & \K[\MNStriangleeq]\triangleeq \\
\K[\MNSfilledtriangleleft]\filledtriangleleft & \K[\MNSntriangleeq]\ntriangleeq & \K[\MNSleqclosed]\trianglelefteq \\
\K[\MNSfilledtriangleright]\filledtriangleright & \K[\MNSnlessclosed]\ntriangleleft & \K[\MNSgeqclosed]\trianglerighteq \\
\K[\MNSfilledtriangleup]\filledtriangleup & \K[\MNSnleqclosed]\ntrianglelefteq & \K[\MNSlessclosed]\vartriangleleft \\
\K[\MNSlargetriangledown]\largetriangledown & \K[\MNSngtrclosed]\ntriangleright & \K[\MNSgtrclosed]\vartriangleright \\
\K[\MNSlargetriangleleft]\largetriangleleft & \K[\MNSngeqclosed]\ntrianglerighteq & \\
\K[\MNSlargetriangleright]\largetriangleright & \K[\MNSotriangle]\otriangle & \\
\end{tabular}
\bigskip
\begin{tablenote}
\MNS\ additionally defines synonyms for many of the preceding
symbols: \cmdI[\MNStriangleeq]{\triangleq} is a synonym for
\cmdI[\MNStriangleeq]{\triangleeq}; \cmdI[\MNSlessclosed]{\lhd} and
\cmdI[\MNSlessclosed]{\lessclosed} are synonyms for
\cmdI[\MNSlessclosed]{\vartriangleleft}; \cmdI[\MNSgtrclosed]{\rhd}
and \cmdI[\MNSgtrclosed]{\gtrclosed} are synonyms for
\cmdI[\MNSgtrclosed]{\vartriangleright};
\cmdI[\MNSleqclosed]{\unlhd} and \cmdI[\MNSleqclosed]{\leqclosed}
are synonyms for \cmdI[\MNSleqclosed]{\trianglelefteq};
\cmdI[\MNSgeqclosed]{\unrhd} and \cmdI[\MNSgeqclosed]{\geqclosed}
are synonyms for \cmdI[\MNSgeqclosed]{\trianglerighteq};
\cmdI[\MNSfilledmedtriangledown]{\blacktriangledown},
\cmdI[\MNSfilledmedtriangleleft]{\blacktriangleleft},
\cmdI[\MNSfilledmedtriangleright]{\blacktriangleright}, and
\cmdI[\MNSfilledmedtriangleup]{\blacktriangle} [\textit{sic}] are
synonyms for, respectively,
\cmdI[\MNSfilledmedtriangledown]{\filledmedtriangledown},
\cmdI[\MNSfilledmedtriangleleft]{\filledmedtriangleleft},
\cmdI[\MNSfilledmedtriangleright]{\filledmedtriangleright}, and
\cmdI[\MNSfilledmedtriangleup]{\filledmedtriangleup};
\cmdI[\MNSmedtriangleright]{\triangleright} is a synonym for
\cmdI[\MNSmedtriangleright]{\medtriangleright};
\cmdI[\MNSmedtriangleup]{\triangle},
\cmdI[\MNSmedtriangleup]{\vartriangle}, and
\cmdI[\MNSmedtriangleup]{\bigtriangleup} are synonyms for
\cmdI[\MNSmedtriangleup]{\medtriangleup};
\cmdI[\MNSmedtriangleleft]{\triangleleft} is a synonym for
\cmdI[\MNSmedtriangleleft]{\medtriangleleft};
\cmdI[\MNSmedtriangledown]{\triangledown} and
\cmdI[\MNSmedtriangledown]{\bigtriangledown} are synonyms for
\cmdI[\MNSmedtriangledown]{\medtriangledown};
\cmdI[\MNSnlessclosed]{\nlessclosed} is a synonym for
\cmdI[\MNSnlessclosed]{\ntriangleleft};
\cmdI[\MNSngtrclosed]{\ngtrclosed} is a synonym for
\cmdI[\MNSngtrclosed]{\ntriangleright};
\cmdI[\MNSnleqclosed]{\nleqclosed} is a synonym for
\cmdI[\MNSnleqclosed]{\ntrianglelefteq}; and
\cmdI[\MNSngeqclosed]{\ngeqclosed} is a synonym for
\cmdI[\MNSngeqclosed]{\ntrianglerighteq}.
\end{tablenote}
\bigskip
\begin{tablenote}
The title ``Triangle Relations'' is a bit of a misnomer here as only
\cmdI[\MNStriangleeq]{\triangleeq} and
\cmdI[\MNSntriangleeq]{\ntriangleeq} are defined as \tex\ relations
(class~3 symbols). The \verb|\largetriangle|\dots\ symbols are
defined as \tex\ ``ordinary'' characters (class~0) and all of the
remaining characters are defined as \tex\ binary operators
(class~2).
\end{tablenote}
\end{symtable}
\begin{symtable}[FDSYM]{\FDSYM\ Triangle Relations}
\index{triangle relations}\index{relational symbols>triangle}
\label{fdsym-triangle-rel}
\begin{tabular}{*3{ll}}
\K[\FDSYMgeqclosed]\geqclosed & \K[\FDSYMmedtriangledown]\medtriangledown & \K[\FDSYMsmallblacktriangleleft]\smallblacktriangleleft \\
\K[\FDSYMgtrclosed]\gtrclosed & \K[\FDSYMmedtriangleleft]\medtriangleleft & \K[\FDSYMsmallblacktriangleright]\smallblacktriangleright \\
\K[\FDSYMlargetriangledown]\largetriangledown & \K[\FDSYMmedtriangleright]\medtriangleright & \K[\FDSYMsmallblacktriangleup]\smallblacktriangleup \\
\K[\FDSYMlargetriangleup]\largetriangleup & \K[\FDSYMmedtriangleup]\medtriangleup & \K[\FDSYMsmalltriangledown]\smalltriangledown \\
\K[\FDSYMleqclosed]\leqclosed & \K[\FDSYMngeqclosed]\ngeqclosed & \K[\FDSYMsmalltriangleleft]\smalltriangleleft \\
\K[\FDSYMlessclosed]\lessclosed & \K[\FDSYMngtrclosed]\ngtrclosed & \K[\FDSYMsmalltriangleright]\smalltriangleright \\
\K[\FDSYMmedblacktriangledown]\medblacktriangledown & \K[\FDSYMnleqclosed]\nleqclosed & \K[\FDSYMsmalltriangleup]\smalltriangleup \\
\K[\FDSYMmedblacktriangleleft]\medblacktriangleleft & \K[\FDSYMnlessclosed]\nlessclosed & \K[\FDSYMtriangleeq]\triangleeq \\
\K[\FDSYMmedblacktriangleright]\medblacktriangleright & \K[\FDSYMntriangleeq]\ntriangleeq & \\
\K[\FDSYMmedblacktriangleup]\medblacktriangleup & \K[\FDSYMsmallblacktriangledown]\smallblacktriangledown & \\
\end{tabular}
\bigskip
\begin{tablenote}
\FDSYM\ defines synonyms for almost all of the preceding symbols:
\begin{tabular}{*3{ll}}
\K[\FDSYMbigtriangledown]{\bigtriangledown} & \K[\FDSYMntrianglelefteq]{\ntrianglelefteq} & \K[\FDSYMtriangleq]{\triangleq} \\
\K[\FDSYMbigtriangleup]{\bigtriangleup} & \K[\FDSYMntriangleright]{\ntriangleright} & \K[\FDSYMtriangleright]{\triangleright} \\
\K[\FDSYMblacktriangle]{\blacktriangle} & \K[\FDSYMntrianglerighteq]{\ntrianglerighteq} & \K[\FDSYMtrianglerighteq]{\trianglerighteq} \\
\K[\FDSYMblacktriangledown]{\blacktriangledown} & \K[\FDSYMtriangle]{\triangle} & \K[\FDSYMvartriangle]{\vartriangle} \\
\K[\FDSYMblacktriangleleft]{\blacktriangleleft} & \K[\FDSYMtriangledown]{\triangledown} & \K[\FDSYMvartriangleleft]{\vartriangleleft} \\
\K[\FDSYMblacktriangleright]{\blacktriangleright} & \K[\FDSYMtriangleleft]{\triangleleft} & \K[\FDSYMvartriangleright]{\vartriangleright} \\
\K[\FDSYMntriangleleft]{\ntriangleleft} & \K[\FDSYMtrianglelefteq]{\trianglelefteq} & \\
\end{tabular}
\end{tablenote}
\bigskip
\begin{tablenote}
The title ``Triangle Relations'' is a bit of a misnomer here as only
\cmdI[\FDSYMtriangleeq]{\triangleeq} and
\cmdI[\FDSYMntriangleeq]{\ntriangleeq} are defined as \tex\ relations
(class~3 symbols). The \verb|\largetriangle|\dots\ symbols are
defined as \tex\ ``ordinary'' characters (class~0) and all of the
remaining characters are defined as \tex\ binary operators
(class~2).
\end{tablenote}
\end{symtable}
\begin{symtable}[BSK]{\BSK\ Triangle Relations}
\index{triangle relations}
\index{relational symbols>triangle}
\label{bsk-triangle-rel}
\begin{tabular}{*3{ll}}
\K[\BSKntriangleleft]\ntriangleleft & \K[\BSKtrianglelefteq]\trianglelefteq & \K[\BSKvarlrttriangle]\varlrttriangle \\
\K[\BSKntrianglelefteq]\ntrianglelefteq & \K[\BSKtrianglelefteqslant]\trianglelefteqslant & \K[\BSKvartriangle]\vartriangle \\
\K[\BSKntriangleright]\ntriangleright & \K[\BSKtriangleright]\triangleright & \K[\BSKvartriangleleft]\vartriangleleft \\
\K[\BSKntrianglerighteq]\ntrianglerighteq & \K[\BSKtrianglerighteq]\trianglerighteq & \K[\BSKvartriangleright]\vartriangleright \\
\K[\BSKtriangleleft]\triangleleft & \K[\BSKtrianglerighteqslant]\trianglerighteqslant & \\
\end{tabular}
\end{symtable}
\begin{symtable}[STIX]{\STIX\ Triangle Relations}
\index{triangle relations}
\index{relational symbols>triangle}
\label{stix-triangle-rel}
\begin{tabular}{*3{ll}}
\K[\STIXlrtriangleeq]\lrtriangleeq & \K[\STIXnvartriangleright]\nvartriangleright & \K[\STIXvartriangle]\vartriangle \\
\K[\STIXltrivb]\ltrivb & \K[\STIXrtriltri]\rtriltri & \K[\STIXvartriangleleft]\vartriangleleft \\
\K[\STIXntrianglelefteq]\ntrianglelefteq & \K[\STIXtrianglelefteq]\trianglelefteq & \K[\STIXvartriangleright]\vartriangleright \\
\K[\STIXntrianglerighteq]\ntrianglerighteq & \K[\STIXtriangleq]\triangleq & \K[\STIXvbrtri]\vbrtri \\
\K[\STIXnvartriangleleft]\nvartriangleleft & \K[\STIXtrianglerighteq]\trianglerighteq & \\
\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 \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