summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/comprehensive/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-05-23 00:23:51 +0000
committerKarl Berry <karl@freefriends.org>2009-05-23 00:23:51 +0000
commita683c3d7e9fac38ec713f23fb6b9d2c7143aea82 (patch)
tree424ab223921f85fd3f167a4ccd0e2d37d05c2927 /Master/texmf-dist/doc/latex/comprehensive/source
parent5beb5368a684995153c8566797ba054f21c666af (diff)
move english latex doc out of texmf-doc
git-svn-id: svn://tug.org/texlive/trunk@13412 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/comprehensive/source')
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/Makefile155
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/epsdice.eps216
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.eps101
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.map1
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.mf36
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/lightbulb10.mf13
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/lightbulb10.pfbbin0 -> 3029 bytes
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/makefakeMnSymbol254
-rw-r--r--Master/texmf-dist/doc/latex/comprehensive/source/symbols.tex11464
9 files changed, 12240 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/Makefile b/Master/texmf-dist/doc/latex/comprehensive/source/Makefile
new file mode 100644
index 00000000000..99c13ae44c9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/Makefile
@@ -0,0 +1,155 @@
+#############################################
+# Build the Comprehensive LaTeX Symbol List #
+# By Scott Pakin <scott+clsl@pakin.org> #
+#############################################
+
+# Define TARGETS as a list of all of the files we intend to generate.
+# TARGETS is categorized into TARGETS_SOURCE and TARGETS_DIST.
+# TARGETS_DIST comprise the prebuilt distribution of the Comprehensive
+# LaTeX Symbol List. TARGETS_SOURCE are needed primarily to build
+# TARGETS_DIST, although they are also distributed (in a "source"
+# subdirectory).
+TARGETS = $(TARGETS_SOURCE) $(TARGETS_DIST)
+
+TARGETS_DIST = symbols-letter.pdf symbols-a4.pdf SYMLIST README
+
+TARGETS_SOURCE = lightbulb.eps lightbulb10.pfb lightbulb.map
+
+# There are a few files that we didn't generate but that need to be
+# distributed.
+EXTRADIST = symbols.tex lightbulb10.mf lightbulb.mf makefakeMnSymbol \
+ epsdice.eps Makefile
+
+# Define INTERMEDIATES as a list of all of the intermediate files
+# generated by both latex and pdflatex while producing TARGETS.
+INTERMEDIATES = symbols.aux symbols.idx symbols.ilg \
+ symbols.ind symbols.log symbols.toc \
+ symbols.pts
+
+# We need FontForge (or the older PfaEdit) to generate lightbulb10.pfb.
+FONTFORGE = fontforge
+
+# The following should be overwritten in a recursive call to Make.
+SIZE = letter
+EXT = pdf
+
+###########################################################################
+
+# Build all specified formats in all specified paper sizes.
+all: $(TARGETS)
+
+.PHONY: symbols dist
+
+###########################################################################
+
+# Define generic rules for building pdf/dvi/ps in letter/a4 size.
+symbols $(INTERMEDIATES): symbols.tex lightbulb.eps lightbulb10.pfb lightbulb.map fakeMnSymbol.sty
+ $(LATEX) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols'
+ $(LATEX) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols'
+ makeindex -s gind.ist symbols
+ $(LATEX) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols'
+ totalsymbols=`fgrep -c '\item \verb' symbols.ind` ; \
+ ( fgrep -v prevtotalsymbols symbols.aux > symbols.pts ; \
+ echo "\\gdef\\prevtotalsymbols{$$totalsymbols}" ; \
+ echo "\\gdef\\approxcount{}" ) >> symbols.pts ; \
+ mv symbols.pts symbols.aux
+ $(LATEX) '\PassOptionsToClass{$(SIZE)paper}{article}\input symbols'
+ mv symbols.$(EXT) symbols-$(SIZE).$(EXT)
+ mv symbols.log symbols-$(SIZE)-$(EXT).log
+
+###########################################################################
+
+# Define specific rules for building different formats and sizes.
+symbols-a4.pdf symbols-a4-pdf.log: symbols.tex
+ $(MAKE) $(MAKEFLAGS) SIZE=a4 LATEX=pdflatex EXT=pdf symbols
+
+symbols-letter.pdf symbols-letter-pdf.log: symbols.tex
+ $(MAKE) $(MAKEFLAGS) SIZE=letter LATEX=pdflatex EXT=pdf symbols
+
+symbols-a4.dvi symbols-a4-dvi.log: symbols.tex
+ $(MAKE) $(MAKEFLAGS) SIZE=a4 LATEX=latex EXT=dvi symbols
+
+symbols-letter.dvi symbols-letter-dvi.log: symbols.tex
+ $(MAKE) $(MAKEFLAGS) SIZE=letter LATEX=latex EXT=dvi symbols
+
+symbols-letter.ps: symbols-letter.dvi
+ dvips -t letter -Pamz -Pcmz -j0 -o symbols-letter.ps symbols-letter.dvi
+
+symbols-a4.ps: symbols-a4.dvi
+ dvips -t a4 -Pamz -Pcmz -j0 -o symbols-a4.ps symbols-a4.dvi
+
+###########################################################################
+
+# Define rules to produce a lightbulb proof figure.
+mfplain.mem:
+ mpost -ini '\input mfplain; dump'
+
+lightbulb.eps: lightbulb10.mf lightbulb.mf mfplain.mem
+ mpost -mem mfplain '\mode:=proof; prologues:=2; labelfont cmr17; input lightbulb10'
+ mv lightbulb10.65 lightbulb.eps
+
+# Generate a FontForge script that makes the LightBulb10 PostScript
+# names mixed case.
+lightbulb10.pe:
+ echo 'Open($$1);' > $@
+ echo 'LB = "LightBulb";' >> $@
+ echo 'SetFontNames(LB+"10", LB, LB+"10");' >> $@
+ echo 'Generate("lightbulb10.pfb");' >> $@
+
+# Define a rule to produce a Type 1 version of the LightBulb10 font.
+lightbulb10.pfb: lightbulb10.mf lightbulb10.pe
+ mftrace -V -fpfb --simplify lightbulb10
+ $(FONTFORGE) -script lightbulb10.pe lightbulb10.pfb
+
+# Define a rule to produce a LightBulb font-mapping file.
+lightbulb.map:
+ echo "lightbulb10 LightBulb10 <lightbulb10.pfb" > lightbulb.map
+
+###########################################################################
+
+# If we have MnSymbol.sty, generate a faked version which does not
+# declare any new math alphabets.
+fakeMnSymbol.sty: makefakeMnSymbol
+ if [ "`kpsewhich MnSymbol.sty`" ] ; then \
+ makefakeMnSymbol `kpsewhich MnSymbol.sty` > $@ ; \
+ else \
+ makefakeMnSymbol /dev/null > $@ ; \
+ fi
+
+###########################################################################
+
+# Create a list of all symbols.
+SYMLIST: symbols.ind
+ cat symbols.ind | perl -ne 's/.*\\verb\+([^+]+)\+.*/$$1/g && print' | sort -u > SYMLIST
+
+# Create a README file.
+README: makeREADME symbols-letter-pdf.log symbols.ind
+ makeREADME symbols-letter-pdf.log symbols.ind > README
+
+# Create a .tar.gz file.
+comprehensive.tar.gz: $(TARGETS) $(EXTRADIST)
+ $(RM) -r comprehensive
+ mkdir comprehensive
+ mkdir comprehensive/source
+ install -m 664 $(TARGETS_DIST) comprehensive
+ install -m 664 $(TARGETS_SOURCE) $(EXTRADIST) comprehensive/source
+ cat symbols.tex | checksum > comprehensive/source/symbols.tex
+ chmod 664 comprehensive/source/symbols.tex
+ tar -czf comprehensive.tar.gz comprehensive
+ $(RM) -r comprehensive
+
+dist: comprehensive.tar.gz
+
+# Clean up our mess.
+clean: mostlyclean
+ $(RM) comprehensive.tar.gz
+ $(RM) $(TARGETS)
+ $(RM) fakeMnSymbol.sty
+ $(RM) mfplain.{log,mem}
+ $(RM) lightbulb10*pk lightbulb10.{tfm,log,pe}
+
+mostlyclean:
+ $(RM) -r comprehensive
+ $(RM) $(INTERMEDIATES) $(TARGETS_DIST)
+ $(RM) symbols-letter.dvi symbols-a4.dvi
+ $(RM) symbols-*-*.log
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/epsdice.eps b/Master/texmf-dist/doc/latex/comprehensive/source/epsdice.eps
new file mode 100644
index 00000000000..ccea31e4a7e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/epsdice.eps
@@ -0,0 +1,216 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 258 43
+%%Creator: MetaPost 0.993
+%%CreationDate: 2007.08.10:1307
+%%Pages: 1
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+ 0 setgray 0 2 dtransform truncate idtransform setlinewidth pop
+ [] 0 setdash 0 setlinejoin 10 setmiterlimit
+newpath 32 5 moveto
+32 5 lineto
+34.7578 5 37 7.24219 37 10 curveto
+37 32 lineto
+37 32 lineto
+37 34.7578 34.7578 37 32 37 curveto
+10 37 lineto
+10 37 lineto
+7.24219 37 5 34.7578 5 32 curveto
+5 10 lineto
+5 10 lineto
+5 7.24219 7.24219 5 10 5 curveto
+ closepath stroke
+newpath 75 5 moveto
+75 5 lineto
+77.7578 5 80 7.24219 80 10 curveto
+80 32 lineto
+80 32 lineto
+80 34.7578 77.7578 37 75 37 curveto
+53 37 lineto
+53 37 lineto
+50.2422 37 48 34.7578 48 32 curveto
+48 10 lineto
+48 10 lineto
+48 7.24219 50.2422 5 53 5 curveto
+ closepath stroke
+newpath 118 5 moveto
+118 5 lineto
+120.758 5 123 7.24219 123 10 curveto
+123 32 lineto
+123 32 lineto
+123 34.7578 120.758 37 118 37 curveto
+96 37 lineto
+96 37 lineto
+93.2422 37 91 34.7578 91 32 curveto
+91 10 lineto
+91 10 lineto
+91 7.24219 93.2422 5 96 5 curveto
+ closepath stroke
+newpath 161 5 moveto
+161 5 lineto
+163.758 5 166 7.24219 166 10 curveto
+166 32 lineto
+166 32 lineto
+166 34.7578 163.758 37 161 37 curveto
+139 37 lineto
+139 37 lineto
+136.242 37 134 34.7578 134 32 curveto
+134 10 lineto
+134 10 lineto
+134 7.24219 136.242 5 139 5 curveto
+ closepath stroke
+newpath 204 5 moveto
+204 5 lineto
+206.758 5 209 7.24219 209 10 curveto
+209 32 lineto
+209 32 lineto
+209 34.7578 206.758 37 204 37 curveto
+182 37 lineto
+182 37 lineto
+179.242 37 177 34.7578 177 32 curveto
+177 10 lineto
+177 10 lineto
+177 7.24219 179.242 5 182 5 curveto
+ closepath stroke
+newpath 247 5 moveto
+247 5 lineto
+249.758 5 252 7.24219 252 10 curveto
+252 32 lineto
+252 32 lineto
+252 34.7578 249.758 37 247 37 curveto
+225 37 lineto
+225 37 lineto
+222.242 37 220 34.7578 220 32 curveto
+220 10 lineto
+220 10 lineto
+220 7.24219 222.242 5 225 5 curveto
+ closepath stroke
+newpath 59.5 13 moveto
+59.5 14.9297 57.9297 16.5 56 16.5 curveto
+54.0703 16.5 52.5 14.9297 52.5 13 curveto
+52.5 11.0703 54.0703 9.5 56 9.5 curveto
+57.9297 9.5 59.5 11.0703 59.5 13 curveto
+ closepath fill
+newpath 75.5 29 moveto
+75.5 30.9297 73.9297 32.5 72 32.5 curveto
+70.0703 32.5 68.5 30.9297 68.5 29 curveto
+68.5 27.0703 70.0703 25.5 72 25.5 curveto
+73.9297 25.5 75.5 27.0703 75.5 29 curveto
+ closepath fill
+newpath 102.5 13 moveto
+102.5 14.9297 100.93 16.5 99 16.5 curveto
+97.0703 16.5 95.5 14.9297 95.5 13 curveto
+95.5 11.0703 97.0703 9.5 99 9.5 curveto
+100.93 9.5 102.5 11.0703 102.5 13 curveto
+ closepath fill
+newpath 118.5 29 moveto
+118.5 30.9297 116.93 32.5 115 32.5 curveto
+113.07 32.5 111.5 30.9297 111.5 29 curveto
+111.5 27.0703 113.07 25.5 115 25.5 curveto
+116.93 25.5 118.5 27.0703 118.5 29 curveto
+ closepath fill
+newpath 145.5 13 moveto
+145.5 14.9297 143.93 16.5 142 16.5 curveto
+140.07 16.5 138.5 14.9297 138.5 13 curveto
+138.5 11.0703 140.07 9.5 142 9.5 curveto
+143.93 9.5 145.5 11.0703 145.5 13 curveto
+ closepath fill
+newpath 161.5 29 moveto
+161.5 30.9297 159.93 32.5 158 32.5 curveto
+156.07 32.5 154.5 30.9297 154.5 29 curveto
+154.5 27.0703 156.07 25.5 158 25.5 curveto
+159.93 25.5 161.5 27.0703 161.5 29 curveto
+ closepath fill
+newpath 188.5 13 moveto
+188.5 14.9297 186.93 16.5 185 16.5 curveto
+183.07 16.5 181.5 14.9297 181.5 13 curveto
+181.5 11.0703 183.07 9.5 185 9.5 curveto
+186.93 9.5 188.5 11.0703 188.5 13 curveto
+ closepath fill
+newpath 204.5 29 moveto
+204.5 30.9297 202.93 32.5 201 32.5 curveto
+199.07 32.5 197.5 30.9297 197.5 29 curveto
+197.5 27.0703 199.07 25.5 201 25.5 curveto
+202.93 25.5 204.5 27.0703 204.5 29 curveto
+ closepath fill
+newpath 231.5 13 moveto
+231.5 14.9297 229.93 16.5 228 16.5 curveto
+226.07 16.5 224.5 14.9297 224.5 13 curveto
+224.5 11.0703 226.07 9.5 228 9.5 curveto
+229.93 9.5 231.5 11.0703 231.5 13 curveto
+ closepath fill
+newpath 247.5 29 moveto
+247.5 30.9297 245.93 32.5 244 32.5 curveto
+242.07 32.5 240.5 30.9297 240.5 29 curveto
+240.5 27.0703 242.07 25.5 244 25.5 curveto
+245.93 25.5 247.5 27.0703 247.5 29 curveto
+ closepath fill
+newpath 24.5 21 moveto
+24.5 22.9297 22.9297 24.5 21 24.5 curveto
+19.0703 24.5 17.5 22.9297 17.5 21 curveto
+17.5 19.0703 19.0703 17.5 21 17.5 curveto
+22.9297 17.5 24.5 19.0703 24.5 21 curveto
+ closepath fill
+newpath 110.5 21 moveto
+110.5 22.9297 108.93 24.5 107 24.5 curveto
+105.07 24.5 103.5 22.9297 103.5 21 curveto
+103.5 19.0703 105.07 17.5 107 17.5 curveto
+108.93 17.5 110.5 19.0703 110.5 21 curveto
+ closepath fill
+newpath 196.5 21 moveto
+196.5 22.9297 194.93 24.5 193 24.5 curveto
+191.07 24.5 189.5 22.9297 189.5 21 curveto
+189.5 19.0703 191.07 17.5 193 17.5 curveto
+194.93 17.5 196.5 19.0703 196.5 21 curveto
+ closepath fill
+newpath 145.5 29 moveto
+145.5 30.9297 143.93 32.5 142 32.5 curveto
+140.07 32.5 138.5 30.9297 138.5 29 curveto
+138.5 27.0703 140.07 25.5 142 25.5 curveto
+143.93 25.5 145.5 27.0703 145.5 29 curveto
+ closepath fill
+newpath 161.5 13 moveto
+161.5 14.9297 159.93 16.5 158 16.5 curveto
+156.07 16.5 154.5 14.9297 154.5 13 curveto
+154.5 11.0703 156.07 9.5 158 9.5 curveto
+159.93 9.5 161.5 11.0703 161.5 13 curveto
+ closepath fill
+newpath 188.5 29 moveto
+188.5 30.9297 186.93 32.5 185 32.5 curveto
+183.07 32.5 181.5 30.9297 181.5 29 curveto
+181.5 27.0703 183.07 25.5 185 25.5 curveto
+186.93 25.5 188.5 27.0703 188.5 29 curveto
+ closepath fill
+newpath 204.5 13 moveto
+204.5 14.9297 202.93 16.5 201 16.5 curveto
+199.07 16.5 197.5 14.9297 197.5 13 curveto
+197.5 11.0703 199.07 9.5 201 9.5 curveto
+202.93 9.5 204.5 11.0703 204.5 13 curveto
+ closepath fill
+newpath 231.5 29 moveto
+231.5 30.9297 229.93 32.5 228 32.5 curveto
+226.07 32.5 224.5 30.9297 224.5 29 curveto
+224.5 27.0703 226.07 25.5 228 25.5 curveto
+229.93 25.5 231.5 27.0703 231.5 29 curveto
+ closepath fill
+newpath 247.5 13 moveto
+247.5 14.9297 245.93 16.5 244 16.5 curveto
+242.07 16.5 240.5 14.9297 240.5 13 curveto
+240.5 11.0703 242.07 9.5 244 9.5 curveto
+245.93 9.5 247.5 11.0703 247.5 13 curveto
+ closepath fill
+newpath 231.5 21 moveto
+231.5 22.9297 229.93 24.5 228 24.5 curveto
+226.07 24.5 224.5 22.9297 224.5 21 curveto
+224.5 19.0703 226.07 17.5 228 17.5 curveto
+229.93 17.5 231.5 19.0703 231.5 21 curveto
+ closepath fill
+newpath 247.5 21 moveto
+247.5 22.9297 245.93 24.5 244 24.5 curveto
+242.07 24.5 240.5 22.9297 240.5 21 curveto
+240.5 19.0703 242.07 17.5 244 17.5 curveto
+245.93 17.5 247.5 19.0703 247.5 21 curveto
+ closepath fill
+showpage
+%%EOF
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.eps b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.eps
new file mode 100644
index 00000000000..f44e7791fdd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.eps
@@ -0,0 +1,101 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 -37 180 259
+%%HiResBoundingBox: -0.2 -36.06541 179.5271 258.43044
+%%Creator: MetaPost 0.993
+%%CreationDate: 2007.12.20:1115
+%%Pages: 1
+%%DocumentResources: procset mpost-minimal
+%%+ font CMR17
+%%DocumentSuppliedResources: procset mpost-minimal
+%%DocumentNeededResources: font CMR17
+%%IncludeResource: font CMR17
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset mpost-minimal
+/bd{bind def}bind def/fshow {exch findfont exch scalefont setfont show}bd
+/fcp{findfont dup length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall}bd
+/fmc{FontMatrix dup length array copy dup dup}bd/fmd{/FontMatrix exch def}bd
+/Amul{4 -1 roll exch mul 1000 div}bd/ExtendFont{fmc 0 get Amul 0 exch put fmd}bd
+/SlantFont{fmc 2 get dup 0 eq{pop 1}if Amul FontMatrix 0 get mul 2 exch put fmd}bd
+%%EndResource
+%%EndProlog
+%%BeginSetup
+ /cmr17 /CMR17 def
+%%EndSetup
+%%Page: 1 1
+ 0.7 0.7 0.7 setrgbcolor 0 17.93271
+ dtransform truncate idtransform setlinewidth pop [] 0 setdash 1 setlinejoin
+ 10 setmiterlimit
+newpath 89.66356 244.33316 moveto
+132.3908 244.94174 165.87755 208.3536 165.87755 164.75676 curveto
+165.87755 121.15993 132.3908 84.5718 89.66356 85.18037 curveto
+47.76907 85.7771 15.69113 122.03224 15.69113 164.75676 curveto
+15.69113 207.48131 47.76907 243.73645 89.66356 244.33316 curveto closepath
+ stroke
+ 1 setlinecap
+newpath 128.41212 95.85231 moveto
+128.41212 0 lineto
+116.14232 -4.44911 103.19072 -6.72478 90.13918 -6.72478 curveto
+77.08765 -6.72478 64.13605 -4.44911 51.86626 0 curveto
+51.86626 96.58183 lineto stroke
+ 0 0 0 setrgbcolor 0.4
+ 0 dtransform exch truncate exch idtransform pop setlinewidth 2 setlinecap
+newpath 0 -35.86542 moveto
+0 251.05794 lineto stroke
+newpath 8.96635 -35.86542 moveto
+8.96635 251.05794 lineto stroke
+newpath 89.66356 -35.86542 moveto
+89.66356 251.05794 lineto stroke
+newpath 170.36075 -35.86542 moveto
+170.36075 251.05794 lineto stroke
+ 0 0.4 dtransform truncate idtransform setlinewidth pop
+newpath 0 0 moveto
+170.36075 0 lineto stroke
+newpath 0 -35.86542 moveto
+170.36075 -35.86542 lineto stroke
+newpath 0 164.75676 moveto
+170.36075 164.75676 lineto stroke
+newpath 0 251.05794 moveto
+170.36075 251.05794 lineto stroke
+85.71588 247.33316 moveto
+(1) cmr17 17.21544 fshow
+ 0 3 dtransform truncate idtransform setlinewidth pop 1 setlinecap
+newpath 89.66356 244.33316 moveto 0 0 rlineto stroke
+161.92989 167.75676 moveto
+(2) cmr17 17.21544 fshow
+newpath 165.87755 164.75676 moveto 0 0 rlineto stroke
+85.71588 88.18037 moveto
+(3) cmr17 17.21544 fshow
+newpath 89.66356 85.18037 moveto 0 0 rlineto stroke
+11.74345 167.75676 moveto
+(4) cmr17 17.21544 fshow
+newpath 15.69113 164.75676 moveto 0 0 rlineto stroke
+124.46445 98.85231 moveto
+(5) cmr17 17.21544 fshow
+newpath 128.41212 95.85231 moveto 0 0 rlineto stroke
+124.46445 3 moveto
+(6) cmr17 17.21544 fshow
+newpath 128.41212 0 moveto 0 0 rlineto stroke
+82.24385 -3.72478 moveto
+(67) cmr17 17.21544 fshow
+newpath 90.13918 -6.72478 moveto 0 0 rlineto stroke
+47.91858 3 moveto
+(7) cmr17 17.21544 fshow
+newpath 51.86626 0 moveto 0 0 rlineto stroke
+47.91858 99.58183 moveto
+(8) cmr17 17.21544 fshow
+newpath 51.86626 96.58183 moveto 0 0 rlineto stroke
+ 0 0.4 dtransform truncate idtransform setlinewidth pop 2 setlinecap
+newpath 0 0 moveto
+179.3271 0 lineto stroke
+newpath 0 251.05794 moveto
+179.3271 251.05794 lineto stroke
+newpath 0 -35.86542 moveto
+179.3271 -35.86542 lineto stroke
+ 0.4 0 dtransform exch truncate exch idtransform pop setlinewidth
+newpath 0 -35.86542 moveto
+0 251.05794 lineto stroke
+newpath 179.3271 -35.86542 moveto
+179.3271 251.05794 lineto stroke
+showpage
+%%EOF
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.map b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.map
new file mode 100644
index 00000000000..4687118a70c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.map
@@ -0,0 +1 @@
+lightbulb10 LightBulb10 <lightbulb10.pfb
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.mf b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.mf
new file mode 100644
index 00000000000..1c8dd47f20e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb.mf
@@ -0,0 +1,36 @@
+%% Simple \MF{} symbol example: light bulb
+%% (Demonstrates simplicity, not necesarily good style)
+
+mode_setup; % Target a given printer.
+
+define_pixels(em, cap, sb); % Convert to device-specific units.
+define_corrected_pixels(o); % Same, but add a device-specific fudge factor.
+
+%% Define a light bulb at the character position for ``A'' with width
+%% 1/2 em\#, height cap\#, and depth 1pt\#.
+beginchar("A", 1/2 em#, cap#, 1pt#); "A light bulb";
+ pickup pencircle scaled 1/2pt; % Use a pen with a small, circular tip.
+
+ %% Define the points we need.
+ top z1 = (w/2, h+o); % z1 is at the top of a circle.
+ rt z2 = (w+sb+o-x4, y4); % z2 is at the same height as z4 but opposite side.
+ bot z3 = (z1 - (0, w-sb-o)); % z3 is at the bottom of the circle.
+ lft z4 = (sb-o, 1/2[y1,y3]); % z4 is on the left of the circle.
+ path bulb; % Define a path for the bulb itself.
+ bulb = z1 .. z2 .. z3 .. z4 .. cycle; % The bulb is a closed path.
+
+ z5 = point 2-1/3 of bulb; % z5 lies on the bulb, a little to the right of z3.
+ z6 = (x5, 0); % z6 is at the bottom, directly under z5.
+ z7 = (x8, 0); % z7 is at the bottom, directly under z8.
+ z8 = point 2+1/3 of bulb; % z8 lies on the bulb, a little to the left of z3.
+ bot z67 = (1/2[x6,x7], pen_bot-o-1/8pt); % z67 lies halfway between z6 and z7 but a jot lower.
+
+ %% Draw the bulb and the base.
+ draw bulb; % Draw the bulb proper.
+ draw z5 -- z6 .. z67 .. z7 -- z8; % Draw the base of the bulb.
+
+ %% Display key positions and points to help us debug.
+ makegrid (0, sb, w/2, w-sb) (0, -1pt, y2, h); % Label interesting x and y coordinates.
+ penlabels(1,2,3,4,5,6,67,7,8); % Label control points for debugging.
+endchar;
+end
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb10.mf b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb10.mf
new file mode 100644
index 00000000000..f932d094eab
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb10.mf
@@ -0,0 +1,13 @@
+%% Simple \MF{} symbol example: light bulb
+%% (Demonstrates simplicity, not necesarily good style)
+
+font_identifier := "LightBulb10"; % Name the font.
+font_size 10pt#; % Specify the design size.
+
+em# := 10pt#; % ``M'' width is 10 points.
+cap# := 7pt#; % Capital letter height is 7 points above the baseline.
+sb# := 1/4pt#; % Leave this much space on the side of each character.
+o# := 1/16pt#; % Amount that curves overshoot borders.
+
+input lightbulb % Load the file that draws the actual glyph.
+
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb10.pfb b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb10.pfb
new file mode 100644
index 00000000000..12427eabb40
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/lightbulb10.pfb
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/makefakeMnSymbol b/Master/texmf-dist/doc/latex/comprehensive/source/makefakeMnSymbol
new file mode 100644
index 00000000000..cadebdfe37b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/makefakeMnSymbol
@@ -0,0 +1,254 @@
+#! /usr/bin/env perl
+
+# Convert MnSymbol.sty to a faked version which does not require
+# the definition of any additional math alphabets
+#
+# By Scott Pakin <scott.clsl@pakin.org>
+
+use POSIX;
+use warnings;
+use strict;
+
+# Output some header boilerplate.
+print "\%" x 43, "\n";
+print "\% This is a generated file. DO NOT EDIT. \%\n";
+print "\%" x 43, "\n";
+print "\n";
+print strftime("\\ProvidesPackage{fakeMnSymbol}[\%Y/\%m/\%d v1.0 faked version of MnSymbol.sty]\n", localtime());
+print <<'MACRODEFS';
+
+% Construct a text-sized delimiter from its constituent characters.
+\DeclareRobustCommand{\MNSfaketdelim}[3]{%
+ \begingroup
+ \def\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?
+ }%
+ \offinterlineskip
+ \vbox{%
+ \halign{##\cr
+ \char@in@box{#1}\cr % top
+ \char@in@box{#2}\cr % mid
+ \char@in@box{#3}\cr % bot
+ }%
+ }%
+ \endgroup
+}
+
+% Construct a display-sized delimiter from its constituent characters.
+\DeclareRobustCommand{\MNSfakeddelim}[4]{%
+ \begingroup
+ \def\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?
+ }%
+ \offinterlineskip
+ \vbox to 4ex{%
+ \halign{##\cr
+ \char@in@box{#1}\cr % top
+ \char@in@box{#4}\cr % rep
+ \char@in@box{#4}\cr % rep
+ \char@in@box{#2}\cr % mid
+ \char@in@box{#4}\cr % rep
+ \char@in@box{#4}\cr % rep
+ \char@in@box{#3}\cr % bot
+ }%
+ \vss
+ }%
+ \endgroup
+}
+
+% Given a math expression, a small accent character, and a large
+% accent character, typeset the expression with the appropriate-sized
+% accent above it.
+\DeclareRobustCommand{\MNSfakewidetopaccent}[5]{%
+ \setbox0=\hbox{\ensuremath{#1}}%
+ \setbox1=\hbox{\ensuremath{abc}}%
+ \ifdim\wd0<\wd1
+ \rlap{\raisebox{#2}{\makebox[\wd0]{\usefont{U}{MnSymbolE}{m}{n}\char#3}}}%
+ \else
+ \rlap{\raisebox{#4}{\makebox[\wd0]{\usefont{U}{MnSymbolE}{m}{n}\char#5}}}%
+ \fi
+ \box0\relax
+}
+MACRODEFS
+ ;
+
+# Read the font metrics for the largesymbol font in preparation for
+# faking the variable-sized delimiters.
+my $tfmfile = `kpsewhich MnSymbolE10.tfm`;
+my @nextlarger; # Map from a character number to the next larger character
+my @varchar; # Map from a character number to a varchar hash
+if ($tfmfile ne "") {
+ chomp $tfmfile;
+ open (LARGESYMBOLS, "tftopl $tfmfile|") || die "tftopl $tfmfile: $!\n";
+ my $charnum = -1; # Character number of the current character
+ while (my $oneline = <LARGESYMBOLS>) {
+ chomp $oneline;
+ if ($oneline =~ /^\(CHARACTER ([CO]) (\w+)/) {
+ $charnum = $1 eq "O" ? oct($2) : ord($2);
+ }
+ elsif ($oneline =~ /\(NEXTLARGER ([CO]) (\w+)/) {
+ $nextlarger[$charnum] = $1 eq "O" ? oct($2) : ord($2);
+ }
+ elsif ($oneline =~ /\((TOP|MID|BOT|REP) ([CO]) (\w+)/) {
+ $varchar[$charnum]->{$1} = $2 eq "O" ? oct($3) : ord($3);
+ }
+ }
+ close LARGESYMBOLS;
+}
+
+# Process each symbol declaration in turn.
+my $slot = 0;
+my %families;
+while (<>) {
+ # Process all symbols defined with \Decl@Mn@Char.
+ /\\Set\@Mn\@Sym\{(\d+)\}/ && do {$slot=0+$1; next};
+ /^\\Decl\@Mn\@Char\\@?(\w+)\s*\{(\w+)\}/ && do {
+ my $symname = $1;
+ my $family = $2;
+ if ($family =~ /^MnSy(\w)$/) {
+ $family = "MnSymbol" . $1;
+ }
+ elsif ($family eq "symbols") {
+ $family = "MnSymbolF";
+ }
+ else {
+ die "${0}: unrecognized symbol family \"$family\"\n";
+ }
+ if (!defined $families{$family}) {
+ $families{$family}++;
+ print "\n";
+ print "\\DeclareFontFamily{U}{$family}{}\n";
+ print "\\DeclareFontShape{U}{$family}{m}{n}{<-> ${family}10}{}\n";
+ }
+ print "\\DeclareRobustCommand{\\MNS$symname}";
+ print "{\\mbox{\\usefont{U}{$family}{m}{n}\\char$slot}}\n";
+ $slot++;
+ };
+
+ # Process variable-sized symbols specially.
+ /^\\Decl\@Mn\@(Open|Close|Delim)\s*\{([^\}]+)\}.*\{\'(\d+)\}\s*$/ && do {
+ my $charnum = oct $3;
+ my %sym2name = ("[" => "lbracket",
+ "]" => "rbracket",
+ "|" => "pipe",
+ "<" => "less",
+ ">" => "greater",
+ "/" => "slash",
+ "(" => "lparen",
+ ")" => "rparen");
+ my $symname = substr($2, 0, 1) eq "\\" ? substr($2, 1) : $sym2name{$2};
+ my $family = "MnSymbolE";
+ if (!defined $families{$family}) {
+ $families{$family}++;
+ print "\n";
+ print "\\DeclareFontFamily{U}{$family}{}\n";
+ print "\\DeclareFontShape{U}{$family}{m}{n}{<-> ${family}10}{}\n";
+ }
+ my $tcharnum; # Character number of the \big symbol size
+ my $dcharnum; # Character number of the variable-sized symbol
+ $tcharnum = defined $nextlarger[$charnum] ? $nextlarger[$charnum] : $charnum;
+ for ($dcharnum=$tcharnum; defined $nextlarger[$dcharnum]; $dcharnum=$nextlarger[$dcharnum]) {
+ }
+
+ # Define the text-sized version of the delimiter.
+ print "\\DeclareRobustCommand{\\MNSt$symname}";
+ print "{\\mbox{\\usefont{U}{$family}{m}{n}";
+ if (defined $varchar[$tcharnum]) {
+ # Even the \big size is variable-sized.
+ my $rep = $varchar[$tcharnum]->{REP};
+ my $top = $varchar[$tcharnum]->{TOP} || $rep;
+ my $bot = $varchar[$tcharnum]->{BOT} || $rep;
+ my $mid = $varchar[$tcharnum]->{MID} || $rep;
+ print "\\MNSfaketdelim{$top}{$mid}{$bot}";
+ }
+ else {
+ print "\\char$tcharnum";
+ }
+ print "}}\n";
+
+ # Define the display-sized version of the delimiter.
+ print "\\DeclareRobustCommand{\\MNSd$symname}";
+ print "{\\mbox{\\usefont{U}{$family}{m}{n}";
+ my $rep = $varchar[$dcharnum]->{REP};
+ if (defined $rep) {
+ my $top = $varchar[$dcharnum]->{TOP} || $rep;
+ my $bot = $varchar[$dcharnum]->{BOT} || $rep;
+ my $mid = $varchar[$dcharnum]->{MID} || $rep;
+ print "\\MNSfakeddelim{$top}{$mid}{$bot}{$rep}";
+ }
+ else {
+ print "\\char$dcharnum";
+ }
+ print "}}\n";
+ };
+}
+
+# Output some trailer boilerplate.
+print <<'TRAILER';
+
+% Redefine some problematic symbols.
+\DeclareRobustCommand{\MNSdlparen}{\mbox{\usefont{U}{MnSymbolE}{m}{n}\char140}}
+\DeclareRobustCommand{\MNSdrparen}{\mbox{\usefont{U}{MnSymbolE}{m}{n}\char145}}
+
+% The following symbols were renamed and adapted from MnSymbol.sty.
+\let\MNSrelbar=\MNSleftrightline
+\DeclareRobustCommand\MNSjoinrel{\mathrel{\mkern-12.4mu}}
+\DeclareRobustCommand\MNSlongrightarrow{\DOTSB\MNSleftrightline\MNSjoinrel\MNSrightarrow}
+\DeclareRobustCommand\MNSlongleftarrow{\DOTSB\MNSleftarrow\MNSjoinrel\MNSleftrightline}
+\DeclareRobustCommand\MNSlongleftrightarrow{\DOTSB\MNSleftarrow\MNSjoinrel\MNSrightarrow}
+\DeclareRobustCommand\MNSLongrightarrow{\DOTSB\MNSLeftrightline\MNSjoinrel\MNSRightarrow}
+\DeclareRobustCommand\MNSLongleftarrow{\DOTSB\MNSLeftarrow\MNSjoinrel\MNSLeftrightline}
+\DeclareRobustCommand\MNSLongleftrightarrow{\DOTSB\MNSLeftarrow\MNSjoinrel\MNSRightarrow}
+\DeclareRobustCommand\MNSlongmapsto{\DOTSB\MNSleftfootline\MNSjoinrel\MNSrightarrow}
+\DeclareRobustCommand\MNSemptyfilledspoon{\DOTSB\MNSleftspoon\mkern-13mu\MNSrightfilledspoon}
+\DeclareRobustCommand\MNSfilledemptyspoon{\DOTSB\MNSleftfilledspoon\mkern-13mu\MNSrightspoon}
+\DeclareRobustCommand\MNSlargeemptyfilledspoon{\DOTSB\mathrel{\MNScirc\mkern-3mu\MNSrelbar\mkern-3mu\MNSbullet}}
+\DeclareRobustCommand\MNSlargefilledemptyspoon{\DOTSB\mathrel{\MNSbullet\mkern-3mu\MNSrelbar\mkern-3mu\MNScirc}}
+
+% The following accents were renamed and adapted from MnSymbol.sty.
+\DeclareRobustCommand{\MNSoverbrace}[1]{\MNSfakewidetopaccent{#1}{1.5ex}{'251}{2.1ex}{'253}}
+\DeclareRobustCommand{\MNSunderbrace}[1]{\MNSfakewidetopaccent{#1}{-1.7ex}{'256}{-1.7ex}{'260}}
+\DeclareRobustCommand{\MNSwidehat}[1]{\MNSfakewidetopaccent{#1}{0ex}{'302}{0.6ex}{'303}}
+\DeclareRobustCommand{\MNSwidetilde}[1]{\MNSfakewidetopaccent{#1}{0ex}{'307}{0.6ex}{'310}}
+\DeclareRobustCommand{\MNSwideparen}[1]{\MNSfakewidetopaccent{#1}{0ex}{'314}{0.6ex}{'315}}
+\DeclareRobustCommand{\MNSvec}[1]{\MNSfakewidetopaccent{#1}{0ex}{'321}{0ex}{'321}}
+\def\MNSlinesegmentfill@{\arrowfill@\MNSleftfootline\MNSrelbar\MNSrightfootline}
+\def\MNSleftharpoonfill@{\arrowfill@\MNSleftharpooncw\MNSrelbar\MNSrelbar}
+\def\MNSrightharpoonfill@{\arrowfill@\MNSrelbar\MNSrelbar\MNSrightharpoonccw}
+\DeclareRobustCommand{\MNSoverlinesegment}{\mathpalette{\overarrow@\MNSlinesegmentfill@}}
+\DeclareRobustCommand{\MNSoverleftharpoon}{\mathpalette{\overarrow@\MNSleftharpoonfill@}}
+\DeclareRobustCommand{\MNSoverrightharpoon}{\mathpalette{\overarrow@\MNSrightharpoonfill@}}
+\DeclareRobustCommand{\MNSunderlinesegment}{\mathpalette{\underarrow@\MNSlinesegmentfill@}}
+\def\MNSbracefill@#1#2#3#4#5{$\m@th#5#1\leaders\hbox{$#4$}\hfill#2\leaders\hbox{$#4$}\hfill#3$}
+\def\MNSdowngroupfill@{\MNSbracefill@\MNSbraceld{}\MNSbracerd\MNSbracemid}
+\def\MNSupgroupfill@{\MNSbracefill@\MNSbracelu{}\MNSbraceru\MNSbracemid}
+\def\MNSoverbrace@#1#2#3{\vbox{\m@th\ialign{##\crcr
+ #1#2\crcr\noalign{\kern2\p@\nointerlineskip}%
+ $\m@th\hfil#2#3\hfil$\crcr}}}
+\def\MNSunderbrace@#1#2#3{\vtop{\m@th\ialign{##\crcr
+ $\m@th\hfil#2#3\hfil$\crcr
+ \noalign{\kern2\p@\nointerlineskip}%
+ #1#2\crcr}}}
+\def\MNSbraceld{\mbox{\usefont{U}{MnSymbolE}{m}{n}\char'263}}
+\def\MNSbracelu{\mbox{\usefont{U}{MnSymbolE}{m}{n}\char'264}}
+\def\MNSbracerd{\mbox{\usefont{U}{MnSymbolE}{m}{n}\char'265}}
+\def\MNSbraceru{\mbox{\usefont{U}{MnSymbolE}{m}{n}\char'266}}
+\def\MNSbracemid{\mbox{\usefont{U}{MnSymbolE}{m}{n}\char'271}}
+\DeclareRobustCommand{\MNSovergroup}{\mathpalette{\MNSoverbrace@\MNSdowngroupfill@}}
+\DeclareRobustCommand{\MNSundergroup}{\mathpalette{\MNSunderbrace@\MNSupgroupfill@}}
+
+\endinput
+TRAILER
+;
diff --git a/Master/texmf-dist/doc/latex/comprehensive/source/symbols.tex b/Master/texmf-dist/doc/latex/comprehensive/source/symbols.tex
new file mode 100644
index 00000000000..98f8cf64c58
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/comprehensive/source/symbols.tex
@@ -0,0 +1,11464 @@
+%%% ====================================================================
+%%% @LaTeX-file{
+%%% author = "Scott Pakin",
+%%% version = "10.1",
+%%% date = "03 January 2008",
+%%% time = "11:05:50 MST",
+%%% filename = "symbols.tex",
+%%% checksum = "11065 11464 36072 469668",
+%%% email = "scott+clsl@pakin.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "symbols, LaTeX2e, typesetting, accents,
+%%% mathematics, scientific, dingbats, fonts",
+%%% supported = "yes",
+%%% abstract = "This document lists thousands of symbols and
+%%% the corresponding LaTeX commands that
+%%% produce them. Some of these symbols are
+%%% guaranteed to be available in every LaTeX2e
+%%% system; others require fonts and packages
+%%% that may not accompany a given distribution
+%%% and that therefore need to be installed.
+%%% All of the fonts and packages used to
+%%% prepare this document -- as well as this
+%%% document itself -- are freely available
+%%% from the Comprehensive TeX Archive Network
+%%% (http://www.ctan.org).",
+%%% docstring = "This LaTeX document showcases thousands of
+%%% symbols that are available to authors. The
+%%% original version of this document was
+%%% written by David Carlisle on 1994/10/02.
+%%% It was subsequently changed and expanded by
+%%% Scott Pakin.
+%%%
+%%% To build this document, run ``latex
+%%% symbols'', then ``makeindex -s gind.ist
+%%% symbols'', then two more ``latex symbols''
+%%% commands. This ensures the stability of
+%%% all generated content (tables, references,
+%%% etc.)
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by
+%%% the equivalent of the standard UNIX wc
+%%% (word count) utility output of lines,
+%%% words, and characters. This is produced by
+%%% Robert Solovay's checksum utility. This file
+%%% header was produced with the help of Nelson
+%%% Beebe's filehdr utility. Both checksum and
+%%% filehdr are available from CTAN
+%%% (http://www.ctan.org)."
+%%% }
+%%% ====================================================================
+
+\NeedsTeXFormat{LaTeX2e}
+
+\documentclass{article}
+\usepackage{array}
+\usepackage{longtable}
+\usepackage{textcomp}
+\usepackage{latexsym}
+\usepackage{varioref}
+\usepackage{xspace}
+\usepackage{makeidx}
+\usepackage{verbatim}
+\usepackage{graphicx}
+\usepackage{tabularx}
+
+\newcommand{\doctitle}{Comprehensive \LaTeX\ Symbol List} % Reusable
+\title{The \doctitle}
+
+\author{\person{Scott}{Pakin} \texttt{<scott+clsl@pakin.org>}%
+ \thanks{The original version of this document was written by
+ \person{David}{Carlisle}, with several additional tables provided by
+ \person{Alexander}{Holt}. See Section~\vref{about-doc} for more
+ information about who did what.}}
+\date{3 January 2008}
+
+\makeindex
+
+%%%
+%%% TO-DO LIST
+%%% * Proofread, especially looking for symbols defined by more
+%%% than one symbol set or symbols that should be in a table
+%%% but aren't.
+%%% * Figure out how to make this file play nice with hyperref.
+%%% * Add more symbol tables. (Did we miss any common, standard, or
+%%% useful ones?)
+%%% * Further index symbols by _description_ (e.g., "perpendicular"
+%%% for "\perp"). This would be really useful, but extremely
+%%% time-consuming to do. Note that Adobe's Web site has a list
+%%% of the names of all the Zapf Dingbats characters. Unfortunately,
+%%% these names can be rather long, like "notched upper right-shadowed
+%%% white rightwards arrow" for \ding{241}.
+%%% * Find some way to associate each package with a flag indicating
+%%% whether the corresponding fonts are in bitmapped or vector
+%%% format.
+%%% * Verify that there aren't any missing symbols in the current
+%%% packages (especially after font upgrades).
+%%%
+
+
+% Index "X Y" and "Y, X". The "begin" and "end" variants are for page ranges.
+\newcommand{\idxboth}[2]{\mbox{}\index{#1 #2}\index{#2>#1}}
+\newcommand{\idxbothbegin}[2]{\mbox{}\index{#1 #2|(}\index{#2>#1|(}}
+\newcommand{\idxbothend}[2]{\mbox{}\index{#1 #2|)}\index{#2>#1|)}}
+
+% Index logical styles.
+\newcommand{\pkgname}[1]{%
+ \textsf{#1}%
+ \index{#1=\textsf{#1} (package)}%
+ \index{packages>#1=\textsf{#1}}}
+\newcommand{\optname}[2]{%
+ \textsf{#2}%
+ \index{#2=\textsf{#2} (\textsf{#1} package option)}%
+ \index{package options>#2=\textsf{#2} (\textsf{#1})}}
+\newcommand{\filename}[1]{%
+ \texttt{#1}%
+ \index{#1=\texttt{#1} (file)}}
+\newcommand{\PSfont}[1]{%
+ #1%
+ \index{#1 (font)}%
+ \index{fonts>#1}%
+}
+\DeclareRobustCommand{\person}[2]{#1\index{#2, #1} #2}
+
+% Index common words and phrases.
+\newcommand{\latex}{\LaTeX\index{LaTeX=\string\LaTeX}\xspace}
+\newcommand{\latexE}{\LaTeXe\index{LaTeX2e=\string\LaTeXe}\xspace}
+\newcommand{\metafont}{\MF\index{Metafont=\string\MF}\xspace}
+\newcommand{\tex}{\TeX\index{TeX=\string\TeX}\xspace}
+\newcommand{\xypic}{%
+ \mbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}-pic}%
+ \index{Xy-pic=\mbox{\kern-.1em X\kern-.3em\lower.4ex\hbox{Y\kern-.15em}-pic}}}
+\newcommand{\TeXbook}{%
+ The \TeX{}book\index{TeXbook, The=\TeX{}book, The}~\cite{Knuth:ct-a}\xspace}
+\newcommand{\ctt}{%
+ \texttt{comp.text.tex}%
+ \index{comp.text.tex=\texttt{comp.text.tex} (newsgroup)}\xspace}
+\newcommand{\fntenc}[1][]{%
+ \def\firstarg{#1}%
+ font encoding%
+ \ifx\firstarg\empty%
+ \index{font encodings}%
+ \else
+ \index{font encodings>\firstarg}%
+ \fi
+}
+\newcommand{\selftex}{\expandafter\filename\expandafter{\jobname.tex}\xspace}
+\newcommand{\fontdefdtx}{\filename{fontdef.dtx}\xspace}
+\newcommand{\thanhhanthe}{Th\`anh, H\`an Th\diatop[\'|\^e]} % "|" confuses MakeIndex.
+\newcommand{\postscript}{PostScript\index{PostScript}\xspace}
+
+% Index TeXbook symbols and the CTAN repository.
+\newcommand{\idxTBsyms}{%
+ \index{symbols>TeXbook=\TeX{}book}%
+ \index{TeXbook, The=\TeX{}book, The>symbols from}%
+}
+\newcommand{\idxCTAN}{%
+ \index{Comprehensive TeX Archive Network=Comprehensive \string\TeX{} Archive Network}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% There are a number of symbols (e.g., \Square) that are defined by %
+% multiple packages. In order to typeset all the variants in this %
+% document, we have to give glyph a unique name. To do that, we define %
+% \savesymbol{XXX}, which renames a symbol from \XXX to \origXXX, and %
+% \restoresymbols{yyy}{XXX}, which renames \origXXX back to \XXX and %
+% defines a new command, \yyyXXX, which corresponds to the most recently %
+% loaded version of \XXX. %
+% %
+
+% Save a symbol that we know is going to get redefined.
+\def\savesymbol#1{%
+ \expandafter\let\expandafter\origsym\expandafter=\csname#1\endcsname
+ \expandafter\let\csname orig#1\endcsname=\origsym
+ \expandafter\let\csname#1\endcsname=\relax
+}
+
+% Restore a previously saved symbol, and rename the current one.
+\def\restoresymbol#1#2{%
+ \expandafter\let\expandafter\newsym\expandafter=\csname#2\endcsname
+ \expandafter\global\expandafter\let\csname#1#2\endcsname=\newsym
+ \expandafter\let\expandafter\origsym\expandafter=\csname orig#2\endcsname
+ \expandafter\global\expandafter\let\csname#2\endcsname=\origsym
+}
+
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% Each of the packages used by this document is loaded conditionally.
+% However, it might be nice to know if we have a complete set. So we
+% define \ifcomplete which starts true, but gets set to false if any
+% package is missing.
+\newif\ifcomplete
+\completetrue
+
+% 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.
+\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}%
+}
+\makeatother
+
+% We get a few packages for free.
+\makeatletter
+\@cons\foundpkgs{{textcomp}}
+\@cons\foundpkgs{{latexsym}}
+\makeatother
+\newcommand{\TC}{\pkgname{textcomp}}
+
+% Typeset a string in various encodings.
+\newcommand{\encone}[1]{{\fontencoding{T1}\selectfont#1}}
+\newcommand{\encfour}[1]{{\fontencoding{T4}\selectfont#1}}
+\newcommand{\encfive}[1]{{\fontencoding{T5}\selectfont#1}}
+
+% Various punctuation marks confuse makeindex when used directly.
+\let\magicrbrack=]
+\let\magicequal=\=
+\newcommand{\magicequalname}{\texttt{\string\=}}
+\newcommand{\magicvertname}{\texttt{|}}
+\newcommand{\magicVertname}{\texttt{\string\|}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newif\ifAMS
+\newcommand\AMS{\AmS\index{AMS=\AmS}}
+\makeatletter
+\IfStyFileExists{amssymb}
+ {\AMStrue
+ \savesymbol{angle} \savesymbol{rightleftharpoons}
+ \savesymbol{lefthapoondown} \savesymbol{rightharpoonup}
+ \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}
+
+\newif\ifWASY
+\newcommand\WASY{\pkgname{wasysym}}
+\IfStyFileExists{wasysym}
+ {\WASYtrue
+ \savesymbol{lightning}
+ \savesymbol{Box}
+ \savesymbol{Diamond}
+ \usepackage{wasysym}
+ \restoresymbol{WASY}{lightning}
+ \restoresymbol{WASY}{Box}
+ \restoresymbol{WASY}{Diamond}
+ }
+ {}
+
+\newif\ifPI
+\newcommand\PI{\pkgname{pifont}}
+\IfStyFileExists{pifont}
+ {\PItrue\usepackage{pifont}}
+ {}
+
+% marvosym underwent a major rewrite for the 2000/05/01 version, adding
+% a large number of new symbols. If it looks like we have only the
+% older version, pretend we don't have it at all.
+\newif\ifMARV
+\newcommand\MARV{\pkgname{marvosym}}
+\makeatletter
+\IfStyFileExists*{marvosym}
+ {\usepackage{marvosym}[2000/05/01] % Major rewrite at this version.
+ \global\MARVtrue
+ \@ifundefined{Denarius} % \Denarius is a newer symbol.
+ {\global\MARVfalse}
+ {}
+ \@ifundefined{MVRightarrow} % \Mvrightarrow is an even 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}
+ }
+ {}
+
+\newif\ifTIPA
+\newcommand\TIPA{\pkgname{tipa}}
+\IfStyFileExists{tipa}
+ {\TIPAtrue\usepackage[safe]{tipa}}
+ {}
+
+\newif\ifTIPX
+\newcommand\TIPX{\pkgname{tipx}}
+\IfStyFileExists{tipx}
+ {\TIPXtrue\usepackage{tipx}}
+ {}
+
+\newif\ifXIPA
+\newcommand\XIPA{\pkgname{extraipa}}
+\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 ver@wsuipa.sty\endcsname{%
+ \csname ver@ipa.sty\endcsname}
+ \restoresymbol{WSU}{baro} \restoresymbol{WSU}{eth}
+ \restoresymbol{WSU}{openo} \restoresymbol{WSU}{thorn}
+ }
+ {\completefalse\@cons\missingpkgs{{wsuipa}}}
+\makeatother
+
+\newif\ifPHON
+\newcommand\PHON{\pkgname{phonetic}}
+\IfStyFileExists{phonetic}
+ {\PHONtrue
+ \savesymbol{esh} \savesymbol{eth} \savesymbol{hookb}
+ \savesymbol{hookd} \savesymbol{hookh} \savesymbol{openo}
+ \savesymbol{schwa} \savesymbol{taild} \savesymbol{thorn}
+ \savesymbol{varg} \savesymbol{yogh}
+ \usepackage{phonetic}
+ \restoresymbol{PHON}{esh} \restoresymbol{PHON}{eth}
+ \restoresymbol{PHON}{hookb} \restoresymbol{PHON}{hookd}
+ \restoresymbol{PHON}{hookh} \restoresymbol{PHON}{openo}
+ \restoresymbol{PHON}{schwa} \restoresymbol{PHON}{taild}
+ \restoresymbol{PHON}{thorn} \restoresymbol{PHON}{varg}
+ \restoresymbol{PHON}{yogh}
+
+ % A few phonetic macros are fragile but need to be made robust.
+ \DeclareRobustCommand{\PHONibar}{\ibar}
+ \DeclareRobustCommand{\PHONrbar}{\rbar}
+ \DeclareRobustCommand{\PHONvod}{\vod}
+ }
+ {}
+
+\newif\ifULSY
+\newcommand\ULSY{\pkgname{ulsy}}
+\IfStyFileExists{ulsy}
+ {\ULSYtrue\usepackage{ulsy}}
+ {}
+
+\newif\ifASP
+\newcommand\ASP{\pkgname{ar}}
+\IfStyFileExists{ar}
+ {\ASPtrue\usepackage{ar}}
+ {}
+
+\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]{}
+ % Load txfonts.
+ \savesymbol{angle} \savesymbol{rightleftharpoons}
+ \usepackage{txfonts}
+ \restoresymbol{TX}{angle} \restoresymbol{TX}{rightleftharpoons}
+ % Restore the old font commands.
+ \global\let\DeclareSymbolFont=\origDeclareSymbolFont
+ \global\let\SetSymbolFont=\origSetSymbolFont
+ \global\let\DeclareFontSubstitution=\origDeclareFontSubstitution
+ \global\let\DeclareMathAlphabet=\origDeclareMathAlphabet
+ % Restore the default fonts.
+ \renewcommand\rmdefault{cmr}
+ \renewcommand\sfdefault{cmss}
+ \renewcommand\ttdefault{cmtt}
+ \ifAMS
+ \DeclareMathAlphabet\mathfrak{U}{euf}{m}{n}
+ \fi
+ % Are \textcent, \textsterling, \mathcent, \mathsterling, \L, \l,
+ % and \r the only symbols that get screwed up?
+ \let\origtextcent=\textcent
+ \gdef\textcent{{\fontencoding{TS1}\selectfont\origtextcent}}
+ \let\origtextsterling=\textsterling
+ \gdef\textsterling{{\fontencoding{TS1}\selectfont\origtextsterling}}
+ \DeclareTextCommand{\L}{OT1}
+ {\leavevmode\setbox\z@\hbox{L}\hb@xt@\wd\z@{\hss\@xxxii L}}
+ \DeclareTextCommand{\l}{OT1}
+ {{\@xxxii l}}
+ \DeclareTextAccent{\r}{OT1}{23}
+ \renewcommand{\mathcent}{\mbox{\usefont{OT1}{txr}{m}{n}\char"A2}}
+ \renewcommand{\mathsterling}{\mbox{\usefont{OT1}{txr}{m}{n}\char"A3}}
+ }
+ {}
+\makeatother
+
+% Here's a real problem child: mathabx, which also redefines virtually
+% every symbol provided by LaTeX2e and AMS. We have to resort to our
+% most devious trickery to get mathabx to load properly.
+\newif\ifABX
+\newcommand\ABX{\pkgname{mathabx}}
+\let\origDeclareMathSymbol=\DeclareMathSymbol
+\let\origDeclareMathDelimiter=\DeclareMathDelimiter
+\let\origDeclareMathRadical=\DeclareMathRadical
+\let\origDeclareMathAccent=\DeclareMathAccent
+\makeatletter
+ % Redefine \DeclareMathSymbol to stick "ABX" in front of each symbol name.
+ \renewcommand{\DeclareMathSymbol}[4]{%
+ \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
+ % Redefine commands that are used by other commands.
+ \DeclareMathSymbol{\ABXnotsign} {3}{matha}{"7F}
+ \DeclareMathSymbol{\ABXvarnotsign} {3}{mathb}{"7F}
+ \DeclareMathSymbol{\ABXnotowner} {3}{matha}{"53}
+ \makeatletter
+ \def\ABXoverbrace{\overbrace@{\bracefill\ABXbraceld\ABXbracemd\ABXbracerd\ABXbracexd}}
+ \def\ABXunderbrace{\underbrace@{\bracefill\ABXbracelu\ABXbracemu\ABXbraceru\ABXbracexu}}
+ \def\ABXovergroup{\overbrace@{\bracefill\ABXbraceld{}\ABXbracerd\ABXbracexd}}
+ \def\ABXundergroup{\underbrace@{\bracefill\ABXbracelu{}\ABXbraceru\ABXbracexu}}
+ \makeatother
+ % Define a command to select the mathb font.
+ \newcommand{\mathbfont}{\usefont{U}{mathb}{m}{n}}
+\fi % ABX test
+
+\newif\ifFC
+\newcommand\FC{\pkgname{fc}}
+\IfStyFileExists{fclfont}
+ {\FCtrue
+ \let\origlbrace=\{
+ \let\origrbrace=\}
+ \let\origbar=\|
+ \let\origdollar=\$
+ \let\origspace=\_
+ \let\origS=\S
+ \let\origpounds=\pounds
+ \input{t4enc.def}
+ \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{etc}
+ \savesymbol{see}
+ \usepackage{skak}
+ \restoresymbol{SKAK}{etc}
+ \restoresymbol{SKAK}{see}
+ \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{\skull}{{\usefont{U}{skulls}{m}{n}\char'101}}
+ }
+ {}
+
+\newif\ifEUSYM
+\newcommand\EUSYM{\pkgname{eurosym}}
+\IfStyFileExists{eurosym}
+ {\EUSYMtrue\usepackage{eurosym}}
+ {}
+
+\newif\ifESV
+\newcommand\ESV{\pkgname{esvect}}
+\IfStyFileExists{esvect}
+ {\ESVtrue
+ \usepackage{esvect}
+ \DeclareMathSymbol{\fldra}{\mathrel}{esvector}{'021}
+ \DeclareMathSymbol{\fldrb}{\mathrel}{esvector}{'022}
+ \DeclareMathSymbol{\fldrc}{\mathrel}{esvector}{'023}
+ \DeclareMathSymbol{\fldrd}{\mathrel}{esvector}{'024}
+ \DeclareMathSymbol{\fldre}{\mathrel}{esvector}{'025}
+ \DeclareMathSymbol{\fldrf}{\mathrel}{esvector}{'026}
+ \DeclareMathSymbol{\fldrg}{\mathrel}{esvector}{'027}
+ \DeclareMathSymbol{\fldrh}{\mathrel}{esvector}{'030}
+ }
+ {}
+
+% yfonts re-encodes \aa and \AA as LY, so we have to re-re-encode them
+% as OT1.
+\IfStyFileExists{yfonts}
+ {\usepackage{yfonts}
+ \DeclareTextCommand{\aa}{OT1}{{\accent23a}}
+ \DeclareTextCommand{\AA}{OT1}{{\accent23A}}}
+ {}
+
+\newif\ifYH
+\newcommand\YH{\pkgname{yhmath}}
+\IfStyFileExists{yhmath}
+ {\YHtrue
+ \let\origRequirePackage=\RequirePackage % We don't want amsmath loaded.
+ \def\RequirePackage##1{}
+ \usepackage{yhmath}
+ \let\RequirePackage=\origRequirePackage
+ }
+ {}
+
+% At the time of this writing we're completely out of math alphabets.
+% (Knuth shortsightedly assumed that 16 would be plenty for anyone.)
+% Hence, instead of loading the esint package we manually define all of
+% its characters as text characters. Yuck.
+\newif\ifES
+\newcommand\ES{\pkgname{esint}}
+\IfStyFileExists{esint}
+ {\EStrue
+ % Center an esint character against an ordinary integral.
+ \newsavebox{\esbox}
+ \newlength{\intcenterdelta}
+ \newcommand{\esintchar}[1]{%
+ \ifodd##1
+ \sbox{\esbox}{$\int$}%
+ \else
+ \sbox{\esbox}{$\displaystyle\int$}%
+ \fi
+ \setlength {\intcenterdelta}{0.5\ht\esbox}%
+ \addtolength{\intcenterdelta}{-0.5\dp\esbox}%
+ \sbox{\esbox}{\usefont{U}{esint}{m}{n}\char##1\relax}%
+ \addtolength{\intcenterdelta}{-0.5\ht\esbox}%
+ \addtolength{\intcenterdelta}{0.5\dp\esbox}%
+ \raisebox{\intcenterdelta}{\usebox{\esbox}}%
+ }
+ % Manually define all of the characters we care about.
+ \newcommand{\ESintT}{\esintchar{'001}}
+ \newcommand{\ESintD}{\esintchar{'002}}
+ \newcommand{\ESiintT}{\esintchar{'003}}
+ \newcommand{\ESiintD}{\esintchar{'004}}
+ \newcommand{\ESiiintT}{\esintchar{'005}}
+ \newcommand{\ESiiintD}{\esintchar{'006}}
+ \newcommand{\ESiiiintT}{\esintchar{'007}}
+ \newcommand{\ESiiiintD}{\esintchar{'010}}
+ \newcommand{\ESdotsintT}{\esintchar{'011}}
+ \newcommand{\ESdotsintD}{\esintchar{'012}}
+ \newcommand{\ESointT}{\esintchar{'013}}
+ \newcommand{\ESointD}{\esintchar{'014}}
+ \newcommand{\ESoiintT}{\esintchar{'015}}
+ \newcommand{\ESoiintD}{\esintchar{'016}}
+ \newcommand{\ESsqintT}{\esintchar{'017}}
+ \newcommand{\ESsqintD}{\esintchar{'020}}
+ \newcommand{\ESsqiintT}{\esintchar{'021}}
+ \newcommand{\ESsqiintD}{\esintchar{'022}}
+ \newcommand{\ESointctrclockwiseT}{\esintchar{'027}}
+ \newcommand{\ESointctrclockwiseD}{\esintchar{'030}}
+ \newcommand{\ESointclockwiseT}{\esintchar{'031}}
+ \newcommand{\ESointclockwiseD}{\esintchar{'032}}
+ \newcommand{\ESvarointclockwiseT}{\esintchar{'033}}
+ \newcommand{\ESvarointclockwiseD}{\esintchar{'034}}
+ \newcommand{\ESvarointctrclockwiseT}{\esintchar{'035}}
+ \newcommand{\ESvarointctrclockwiseD}{\esintchar{'036}}
+ \newcommand{\ESfintT}{\esintchar{'037}}
+ \newcommand{\ESfintD}{\esintchar{'040}}
+ \newcommand{\ESvaroiintT}{\esintchar{'041}}
+ \newcommand{\ESvaroiintD}{\esintchar{'042}}
+ \newcommand{\ESlandupintT}{\esintchar{'043}}
+ \newcommand{\ESlandupintD}{\esintchar{'044}}
+ \newcommand{\ESlanddownintT}{\esintchar{'045}}
+ \newcommand{\ESlanddownintD}{\esintchar{'046}}
+ }
+ {}
+
+\newif\ifMDOTS
+\newcommand\MDOTS{\pkgname{mathdots}}
+\IfStyFileExists{mathdots}
+ {\MDOTStrue
+ \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 ver@universa.sty\endcsname{%
+ \csname ver@uni.sty\endcsname}
+ % Redefine all of uni's non-textual symbols to use the Universal font.
+ \renewcommand{\bausquare}{{\usefont{OT1}{uni}{m}{n}\char"00}}
+ \renewcommand{\baucircle}{{\usefont{OT1}{uni}{m}{n}\char"01}}
+ \renewcommand{\bautriangle}{{\usefont{OT1}{uni}{m}{n}\char"02}}
+ \renewcommand{\bauhead}{{\usefont{OT1}{uni}{m}{n}\char"03}}
+ \renewcommand{\bauforms}{{\usefont{OT1}{uni}{m}{n}\char"04}}
+ }
+ {\completefalse\@cons\missingpkgs{{universa}}}
+\makeatother
+
+\newif\ifUPGR
+\newcommand\UPGR{\pkgname{upgreek}}
+\IfStyFileExists{upgreek}
+ {% We're painfully low on math alphabets so we define upgreek's symbols
+ % in text mode.
+ \UPGRtrue
+ \let\origDeclareSymbolFont=\DeclareSymbolFont
+ \let\origDeclareMathSymbol=\DeclareMathSymbol
+ \let\origSetSymbolFont=\SetSymbolFont
+ \renewcommand{\DeclareSymbolFont}[5]{}
+ \renewcommand{\DeclareMathSymbol}[4]{%
+ \newcommand{##1}{{\usefont{U}{psy}{m}{n}\char##4}}%
+ }
+ \renewcommand{\SetSymbolFont}[6]{}
+ \usepackage[Symbol]{upgreek}
+ \DeclareFontFamily{U}{eur}{\skewchar\font'177}
+ \DeclareFontShape{U}{eur}{m}{n}{%
+ <-6> eurm5 <6-8> eurm7 <8-> eurm10}{}
+ \let\DeclareSymbolFont=\origDeclareSymbolFont
+ \let\DeclareMathSymbol=\origDeclareMathSymbol
+ \let\SetSymbolFont=\origSetSymbolFont
+ }
+ {}
+
+% overrightarrow depends upon various macros that are defined by AMS.
+\newif\ifORA
+\newcommand\ORA{\pkgname{overrightarrow}}
+\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\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}. We redefine \AtBeginDocument to force
+ % mathtools to define everything immediately.
+ \let\origAtBeginDocument=\AtBeginDocument
+ \def\AtBeginDocument##1{##1}
+ \usepackage[donotfixamsmathbugs]{mathtools}
+ \let\AtBeginDocument=\origAtBeginDocument
+
+ \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}}
+ {}
+
+\newif\ifARCS
+\newcommand\ARCS{\pkgname{arcs}}
+\IfStyFileExists{arcs}
+ {\ARCStrue
+ \usepackage{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 dblaccent.sty, as these affect other
+% things in the document.
+\newif\ifVIET
+\newcommand\VIET{\pkgname{vntex}}
+\makeatletter
+\IfStyFileExists{vietnam}
+ {\VIETtrue\input{t5enc.def}}
+ {}
+\makeatother
+
+\newif\ifPHONFC
+\newcommand\PHONFC{\pkgname{t4phonet}}
+\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\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\usepackage{hieroglf}}
+ {}
+
+\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}}
+ % Symbols from mdputrmb
+ \DeclareFontEncoding{MDB}{}{}
+ \DeclareFontFamily{MDB}{mdput}{}
+ \DeclareFontShape{MDB}{mdput}{m}{n}{<-> mdputrmb}{}
+ \newcommand*{\textMDESb}[1]{{\usefont{MDB}{mdput}{m}{n}##1}}
+ \DeclareRobustCommand{\MDESsmallin}{\textMDESb{\char"0}}
+ \DeclareRobustCommand{\MDESsmallowns}{\textMDESb{\char"1}}
+ \DeclareRobustCommand{\MDESnotsmallin}{\textMDESb{\char"2}}
+ \DeclareRobustCommand{\MDESnotsmallowns}{\textMDESb{\char"3}}
+ \DeclareRobustCommand{\MDESrightangle}{\textMDESb{\char"4}}
+ \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}}
+ }
+ {}
+
+\newif\ifAREV
+\newcommand\AREV{\pkgname{arev}}
+\ifMDES % AREV requires MDES to function properly.
+\makeatletter
+\IfStyFileExists{arev}
+ {\AREVtrue
+ % Store the package date but otherwise do nothing.
+ \let\origRequirePackage=\RequirePackage
+ \let\RequirePackage=\@gobble
+ \usepackage{arev}
+ \let\RequirePackage=\origRequirePackage
+ % Define the characters we actually plan to display without actually
+ % changing the font to Arev Sans.
+ \DeclareFontFamily{U}{zavm}{}
+ \DeclareFontShape{U}{zavm}{m}{n}{<-> favmr7y}{}
+ \newcommand*{\textAREV}[1]{{\usefont{U}{zavm}{m}{n}##1}}
+ \DeclareRobustCommand{\varspade}{\textAREV{\char"55}}
+ \DeclareRobustCommand{\varheart}{\textAREV{\char"56}}
+ \DeclareRobustCommand{\vardiamond}{\textAREV{\char"57}}
+ \DeclareRobustCommand{\varclub}{\textAREV{\char"58}}
+ \DeclareRobustCommand{\steaming}{\textAREV{\char"59}}
+ \DeclareRobustCommand{\AREVquarternote}{\textAREV{\char"5A}}
+ \DeclareRobustCommand{\AREVeighthnote}{\textAREV{\char"5B}}
+ \DeclareRobustCommand{\AREVsixteenthnote}{\textAREV{\char"5C}}
+ }
+ {}
+\makeatother
+\fi
+
+% 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}}
+\IfStyFileExists{MnSymbol}
+ {\MNStrue
+ \let\origProvidesPackage=\ProvidesPackage
+ \def\ProvidesPackage##1[##2]{\origProvidesPackage{##1}[##2]\endinput}
+ \usepackage{MnSymbol}[2007/01/21]
+ \let\ProvidesPackage=\origProvidesPackage
+ \usepackage{fakeMnSymbol}
+ }
+ {}
+
+% 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}}}
+ }
+ {}
+
+\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
+ \usepackage{keystroke}
+ % \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*{\spirituslenisAB}[2]{%
+ \leavevmode
+ \setbox0=\hbox{##2}%
+ \@tempdima=\ht0
+ \@tempdimb=\wd0
+ \box0\llap{%
+ \raisebox{\@tempdima}{%
+ \makebox[\@tempdimb]{\usefont{U}{fgerm}{m}{n}\char##1}%
+ }%
+ }%
+ }
+ \DeclareRobustCommand{\spirituslenisA}[1]{\spirituslenisAB{"15}{##1}}
+ \DeclareRobustCommand{\spirituslenisB}[1]{\spirituslenisAB{"16}{##1}}
+ \let\spirituslenis=\spirituslenisA
+ \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{\smallbosonloop}{\feyn{\char"20}}
+ \DeclareRobustCommand{\bigbosonloop}{\feyn{\char"21}}
+ }
+ {}
+
+% The universal package defines characters only locally within
+% \textbayer or in a group containing \bayer. Therefore, we need only
+% to make \chardef temporarily export its symbols globally.
+\newif\ifBAYER
+\newcommand\BAYER{\pkgname{universal}}
+\IfStyFileExists{universal}
+ {\BAYERtrue
+ \let\origlcurly=\{
+ \let\origrcurly=\}
+ \let\origbar=\|
+ \let\origS=\S
+ \savesymbol{baucircle} \savesymbol{bausquare} \savesymbol{bautriangle}
+ \savesymbol{bauforms} \savesymbol{bauhead}
+ \usepackage{universal}
+ \begingroup
+ \def\chardef##1="##2##3{%
+ \gdef##1{{\usefont{OT1}{universal}{m}{n}\char"##2##3}}%
+ }%
+ \bayer
+ \endgroup
+ \let\{=\origlcurly
+ \let\}=\origrcurly
+ \let\|=\origbar
+ \let\S=\origS
+ \restoresymbol{BAYER}{baucircle} \restoresymbol{BAYER}{bausquare}
+ \restoresymbol{BAYER}{bautriangle}
+ \restoresymbol{BAYER}{bauforms} \restoresymbol{BAYER}{bauhead}
+ }
+ {}
+
+\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}
+ \IGOtrue\usepackage{igo}
+ \restoresymbol{IGO}{black}
+ \restoresymbol{IGO}{white}
+ \restoresymbol{IGO}{repeat}
+ % Define a version of \whitestone and \blackstone that avoid
+ % bracketed arguments.
+ \DeclareRobustCommand{\igowhitestone}[1]{\whitestone[##1]}
+ \DeclareRobustCommand{\igoblackstone}[1]{\blackstone[##1]}
+ }
+ {}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% If we have mflogo.sty, use it. Otherwise, define \MF the "boring" way.
+\IfStyFileExists*{mflogo}
+ {\usepackage{mflogo}}
+ {\newcommand{\MF}{Metafont}}
+
+% If we have booktabs.sty, use it. Otherwise, define all its line types
+% in terms of \hline and \cline.
+\IfStyFileExists*{booktabs}
+ {\usepackage{booktabs}}
+ {\newcommand{\toprule}{\hline}
+ \newcommand{\midrule}{\hline}
+ \newcommand{\bottomrule}{\hline}
+ \def\cmidrule(##1)##2{\cline{##2}}
+ }
+
+% If we have url.sty, use it. Otherwise, define \url as \texttt.
+\IfStyFileExists*{url}
+ {\usepackage{url}
+ \def\UrlBreaks{}
+ \def\UrlBigBreaks{\do/}}
+ {\newcommand{\url}[1]{\texttt{##1}}}
+
+% If we have geometry.sty, use it. Otherwise, a lot of tables are going
+% to stick out into the margin.
+\makeatletter
+\IfStyFileExists*{geometry}
+ {\usepackage{geometry}
+ \@ifpackagelater{geometry}{2000/01/01}{\geometry{compat2}}
+ }
+ {}
+\makeatother
+
+% If we have multicol.sty, use it.
+\newif\ifhavemulticol
+\IfStyFileExists*{multicol}
+ {\havemulticoltrue\usepackage{multicol}}
+ {}
+
+% If we have rotating.sty, use it.
+\newif\ifhaverotating
+\IfStyFileExists*{rotating}
+ {\haverotatingtrue\usepackage{rotating}}
+ {}
+
+% If we have cancel.sty, use it.
+\newif\ifhavecancel
+\IfStyFileExists*{cancel}
+ {\havecanceltrue\usepackage{cancel}}
+ {}
+
+% If we have slashed.sty, use it.
+\newif\ifhaveslashed
+\IfStyFileExists*{slashed}
+ {\haveslashedtrue\usepackage{slashed}}
+ {}
+
+% If we have centernot.sty, use it.
+\newif\ifhavecenternot
+\IfStyFileExists*{centernot}
+ {\havecenternottrue\usepackage{centernot}}
+ {}
+
+% 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}
+ }
+ {}
+
+% If we have the bm package, use it (to show how to typeset bold math).
+\newif\ifBM
+\IfStyFileExists{bm}
+ {\BMtrue
+ \usepackage{bm}
+ }
+ {}
+
+% If we have ot2enc.def, use it (to show how to produce a Cyrillic "sha").
+\newif\ifOTII
+\IfFileExists{ot2enc.def}
+ {\OTIItrue\input{ot2enc.def}}
+ {}
+
+% If we have needspace.sty, use it. Otherwise, define \needspace as a no-op.
+\IfStyFileExists*{needspace}
+ {\usepackage{needspace}}
+ {\newcommand{\needspace}[1]{}}
+
+% 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}}
+ {}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 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}}}
+ {}
+
+\IfStyFileExists{calligra}
+ {\savesymbol{filename}
+ \usepackage{calligra}
+ \restoresymbol{CAL}{filename}
+ \newcommand{\mathcalligra}[1]{\mbox{\usefont{T1}{calligra}{m}{n} ##1}}
+ }
+ {}
+
+\IfStyFileExists{bbold}
+ {\newcommand{\BBmathbb}[1]{\mbox{\usefont{U}{bbold}{m}{n} ##1}}
+ % We have to manually define all of the symbols we care about.
+ \newcommand{\BBsym}[1]{\ensuremath{\BBmathbb{\char##1}}}
+ \newcommand{\Langle}{\BBsym{`<}}
+ \newcommand{\Lbrack}{\BBsym{`[}}
+ \newcommand{\Lparen}{\BBsym{`(}}
+ \newcommand{\bbalpha}{\BBsym{"0B}}
+ \newcommand{\bbbeta}{\BBsym{"0C}}
+ \newcommand{\bbgamma}{\BBsym{"0D}}
+ \newcommand{\Rparen}{\BBsym{`)}}
+ \newcommand{\Rbrack}{\BBsym{`]}}
+ \newcommand{\Rangle}{\BBsym{"3E}}
+ }
+ {}
+
+\IfStyFileExists{mbboard}
+ {\newcommand{\MBBmathbb}[1]{\mbox{\usefont{OT1}{mbb}{m}{n} ##1}}}
+ {}
+\ifx\MBBmathbb\undefined
+\else
+ % Define only the symbols we actually use.
+ \newcommand{\bbnabla}{\MBBmathbb{\char"9A}}
+ \newcommand{\bbdollar}{\MBBmathbb{\char"24}}
+ \newcommand{\bbeuro}{\MBBmathbb{\char"FB}}
+ \newcommand{\bbpe}{\MBBmathbb{\char"D4}}
+ \newcommand{\bbqof}{\MBBmathbb{\char"D7}}
+ \newcommand{\bbyod}{\MBBmathbb{\char"C9}}
+ \newcommand{\bbfinalnun}{\MBBmathbb{\char"CF}}
+
+ % The following was copied from mbboard.sty.
+ \DeclareFontFamily{OT1}{mbb}{\hyphenchar\font45}
+ \DeclareFontShape{OT1}{mbb}{m}{n}{
+ <5> <6> <7> <8> <9> <10> gen * mbb
+ <10.95> mbb10 <12> <14.4> mbb12 <17.28> <20.74> <24.88> mbb17
+ }{}
+\fi
+
+\IfStyFileExists{dsfont}
+ {\newcommand{\mathds}[1]{\mbox{\usefont{U}{dsrom}{m}{n}##1}}
+ \newcommand{\mathdsss}[1]{\mbox{\usefont{U}{dsss}{m}{n}##1}}}
+ {}
+
+\IfStyFileExists{bbm}
+ {\newcommand{\mathbbm}[1]{\mbox{\usefont{U}{bbm}{m}{n}##1}}
+ \newcommand{\mathbbmss}[1]{\mbox{\usefont{U}{bbmss}{m}{n}##1}}
+ \newcommand{\mathbbmtt}[1]{\mbox{\usefont{U}{bbmtt}{m}{n}##1}}}
+ {}
+
+% \mathfrak is defined by a number of packages, to check for it by name.
+\ifx\mathfrak\undefined
+\else
+ \renewcommand{\mathfrak}[1]{\mbox{\fontencoding{U}\fontfamily{euf}\selectfont#1}}
+\fi
+
+% msym10 doesn't have a corresponding LaTeX package. We establish its
+% existence via the msym10.tfm file. However, this file is not normally
+% in LaTeX's input path, so be sure to point LaTeX to it (e.g., by
+% copying it into the current directory).
+\makeatletter
+\IfFileExists{msym10.tfm}
+ {\DeclareFontFamily{OT1}{msym}{}
+ \DeclareFontShape{OT1}{msym}{m}{n}{ <-> msym10 }{}
+ \newcommand{\MSYMmathbb}[1]{\mbox{\fontfamily{msym}\selectfont##1}}
+ }
+ {\completefalse
+ \@cons\missingpkgs{{msym10.tfm}} % Not really a package
+ }
+\makeatother
+
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Resolve the stmaryrd/wasysym \lightning conflict by defining \lightning
+% to use stmaryrd in math mode and wasysym in text mode.
+\DeclareRobustCommand{\lightning}{\ifmmode\STlightning\else\WASYlightning\fi}
+
+% Index a symbol, which may or may not begin with a backslash. (Is
+% there a better way to do this?) Also, if symbol is given as an
+% optional argument is given, typeset that symbol in the index, as well.
+% We define a related macro for indexing accents. In a previous version
+% of this file, \indexaccent additionally included "see also accents" in
+% the index. This became distracting so I made \indexaccent a synonym
+% for \indexcommand for the time being. Because punctuation marks can
+% be problematic for makeindex, we define an \indexpunct macro that
+% sorts its argument under the comparatively innocuous "_".
+\begingroup
+ \catcode`\|=0
+ \catcode`\\=12
+ |gdef|sanitize#1#2!!!{%
+ |ifx#1\%
+ #2%
+ |else%
+ #1#2%
+ |fi%
+}
+|endgroup
+\makeatletter
+ \newcommand{\indexcommand}[2][]{%
+ \edef\sanitized{\expandafter\sanitize\string#2!!!}%
+ \def\first@arg{#1}%
+ \ifx\first@arg\@empty
+ \expandafter\index\expandafter{\sanitized=\string\verb+\string#2+}%
+ \else
+ \expandafter\index\expandafter{\sanitized=\string\verb+\string#2+ (#1)}%
+ \fi
+ }
+ \let\indexaccent=\indexcommand
+ \newcommand{\indexpunct}[2][]{%
+ \def\first@arg{#1}%
+ \ifx\first@arg\@empty
+ \expandafter\index\expandafter{_=\string\verb+\string#2+}%
+ \else
+ \expandafter\index\expandafter{_=\string\verb+\string#2+ (#1)}%
+ \fi
+ }
+\makeatother
+
+% Enable the use of makeindex's nicer-looking gind.ist style.
+% I swiped the following from doc.dtx.
+\makeatletter
+\newif\ifscan@allowed
+\def\efill{\hfill\nopagebreak}%
+\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus 1fill}%
+\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}%
+\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
+ \dotfil~\ignorespaces}%
+\makeatother
+
+% If we have the multicol package, typeset the index in three columns instead
+% of the usual two.
+\ifhavemulticol
+ \makeatletter
+ \renewenvironment{theindex}{%
+ \clearpage
+ \section*{\indexname}
+
+ If you're having trouble locating a symbol, try looking under
+ ``T'' for ``\texttt{\string\text}$\ldots$''. Many text-mode
+ commands begin with that prefix. Also, accents are shown
+ over/under a gray box, e.g.,~``\,\blackacchack{\'}\,''
+ for~``\texttt{\string\'}''.
+
+ Some symbol entries appear to be listed repeatedly. This happens
+ when multiple packages define identical (or nearly identical)
+ glyphs with the same symbol name.%
+\ifAMS\ifABX
+ \footnote{This occurs frequently between \pkgname{amssymb} and
+ \pkgname{mathabx}, for example.}
+\fi\fi
+ \setlength{\columnsep}{1em}%
+ \begin{multicols}{3}%
+ \let\item\@idxitem
+ }{%
+ \end{multicols}%
+ }
+ \makeatother
+\fi
+
+% Define a counter to keep track of how many symbols are listed.
+% Output this counter to the log file at the end of each run.
+% Define \prevtotalsymbols to be the total number of symbols from
+% the previous run.
+\newcounter{totalsymbols}
+\newcommand{\incsyms}{\addtocounter{totalsymbols}{1}}
+\makeatletter
+\AtEndDocument{%
+ \typeout{Number of symbols documented: \thetotalsymbols}
+ \immediate\write\@auxout{%
+ \noexpand\gdef\noexpand\prevtotalsymbols{\thetotalsymbols}}
+}
+\makeatother
+
+% Define \prevtotalsymbols as "??" if this is our first run. Define
+% \approxcount as "~" unless explicitly defined otherwise in the .aux
+% file. To get a true count you should count the number of lines in the
+% .ind file that contain "\item \verb". Write an empty definition of
+% \approxcount and the correct definition of \prevtotalsymbols to the
+% .aux file.
+\makeatletter
+ \@ifundefined{prevtotalsymbols}{%
+ \def\prevtotalsymbols{\fbox{\textbf{??}}}%
+ }{}
+ \@ifundefined{approxcount}{%
+ \def\approxcount{\ensuremath{\sim}}%
+ }{}
+\makeatother
+
+% 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}
+ \newcommand*{\graybox}{\textcolor[gray]{0.7}{\rule[-\adp]{\awd}{\aht}}}}
+ {\newcommand*{\graybox}{\rule[-\adp]{\awd}{\aht}}}
+
+% Define \blackacc to display an accented box, given an accent command.
+% Define \blackacchack to display an accented "a" and then black out
+% the "a".
+\newlength\awd
+\newlength\aht
+\newlength\adp
+\settowidth{\awd}{a}
+\settoheight{\aht}{a}
+\settodepth{\adp}{a}
+\advance\aht by \adp
+\gdef\blackacchack#1{#1a\llap{\graybox}}
+\gdef\blackacc#1{#1{\graybox}}
+\gdef\blackacctwo#1{#1{\graybox}{\graybox}}
+
+% Symbol+verbatim for various types of symbols
+\def\E#1{%
+ \begingroup
+ \lccode`|=`\\
+ \def\EStruename{ES#1T}
+ \lowercase{\incsyms\index{#1=\string\verb+\string|#1+ (\string|\EStruename)}}
+ \endgroup
+ \csname ES#1T\endcsname & \csname ES#1D\endcsname &
+ \ttfamily\expandafter\string\csname#1\endcsname
+}
+\def\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[#1]{#2}#1 &\ttfamily\string#2}
+ \def\K@no@opt@arg#1{\incsyms\indexcommand[#1]{#1}#1 &\ttfamily\string#1}
+ \def\K{\@ifnextchar[{\K@opt@arg}{\K@no@opt@arg}}
+\makeatother
+\def\KED[#1][#2][#3]#4{\incsyms\indexcommand[#1]{#2}#3 &\ttfamily\string#4}
+\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\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}
+\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}
+\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\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{\incsyms\indexaccent[\string\encone{\string\blackacc{\string#1}}]{#1}{\encone{#1{A}#1{a}}} &
+ \ttfamily\string#1\string{A\string}\string#1\string{a\string}}
+
+\def\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{_=\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\Tp#1{\incsyms\indexcommand{\ding}\ding{#1} &\ttfamily\string\ding\string{#1\string}}
+\def\Tm#1{\incsyms\indexcommand{\maya}$\mayadigit{#1}$ &\ttfamily\string\maya\string{#1\string}}
+\newcommand{\V}[2][]{\incsyms#1 & \indexcommand[#2]{#2}#2 &\ttfamily\string#2}
+\newcommand{\Vp}[2][]{\incsyms#1 & \indexpunct[$#2$]{#2}#2 &\ttfamily\string#2}
+\makeatletter
+ \newcommand{\VV}[2]{%
+ \incsyms\indexaccent[$\string\blackacc{\string\vv}$]{\vv}%
+ \expandafter\let\expandafter\fldrVV\csname fldr#1\endcsname
+ \def\vectfill@{\traitfill@\relbaredd\relbareda\fldrVV}%
+ $\vv{#2}$ & \texttt{\string\vv\string{#2\string}}
+ with package option \optname{esvect}{#1}
+ }
+ \def\W@opt@arg[#1]#2#3{%
+ \incsyms\indexaccent[$\string\blackacc{\string#1}$]{#2}%
+ $#1{#3}$ &\ttfamily\string#2\string{#3\string}}
+ \def\W@no@opt@arg#1#2{%
+ \incsyms\indexaccent[$\string\blackacc{\string#1}$]{#1}%
+ $#1{#2}$ &\ttfamily\string#1\string{#2\string}}
+ \def\W{\@ifnextchar[{\W@opt@arg}{\W@no@opt@arg}}
+\makeatother
+\def\Wf#1#2{\incsyms\indexcommand{#1}$#1{#2}$ &\ttfamily\string#1\string{#2\string}}
+\def\Ww#1#2#3{\incsyms\indexcommand{#2}$#1{#3}$ &\ttfamily\string#2\string{#3\string}}
+\def\Wul#1#2#3{%
+ \incsyms\indexaccent[$\string\blackacctwo{\string#1}$]{#1}%
+ $#1{#2}{#3}$ &\ttfamily\string#1\string{#2\string}\string{#3\string}}
+\makeatletter
+ \def\X@opt@arg[#1]#2{\incsyms\indexcommand[$\string#1$]{#2}$#1$ &\ttfamily\string#2}
+ \def\X@no@opt@arg#1{\incsyms\indexcommand[$\string#1$]{#1}$#1$ &\ttfamily\string#1}
+ \def\X{\@ifnextchar[{\X@opt@arg}{\X@no@opt@arg}}
+\makeatother
+\def\Y#1{\incsyms\indexcommand[$\string\big\string#1$]{#1}$\big#1$ & $\Bigg#1$ &\ttfamily\string#1}
+\def\Z#1{\incsyms\indexcommand[$\string#1$]{#1}\ttfamily\string#1}
+
+% Display and index a command, but not its symbol (\cmd). \cmdI shows
+% the symbol in the index, with optional explicit formatting. \cmdX is
+% the same as \cmdI, but with the optional argument hardwired to the
+% command displayed in math mode. \cmdIp is also similar to \cmdI but
+% takes no optional argument and formats its argument with \indexpunct
+% instead of \indexcommand.
+\makeatletter
+\def\cmd#1{\texttt{\string#1}\indexcommand{#1}}
+\newcommand{\cmdI}[2][]{%
+ \def\first@arg{#1}%
+ \ifx\first@arg\@empty
+ \texttt{\string#2}\indexcommand[#2]{#2}%
+ \else
+ \texttt{\string#2}\indexcommand[#1]{#2}%
+ \fi
+}
+\newcommand{\cmdX}[1]{\cmdI[$\string#1$]{#1}}
+\newcommand{\cmdW}[1]{\cmdI[$\string\blackacc{\string#1}$]{#1}}
+\newcommand{\cmdIp}[1]{\texttt{\string#1}\indexpunct[$#1$]{#1}}
+\makeatother
+
+
+% Redefine the LaTeX commands that are replaced by textcomp.
+% This was swiped right out of ltoutenc.dtx, but with "\text..."
+% changed to "\ltext...".
+\DeclareTextCommandDefault{\ltextcopyright}{\textcircled{c}}
+\DeclareTextCommandDefault{\ltextregistered}{\textcircled{\scshape r}}
+\DeclareTextCommandDefault{\ltexttrademark}{\textsuperscript{TM}}
+\DeclareTextCommandDefault{\ltextordfeminine}{\textsuperscript{a}}
+\DeclareTextCommandDefault{\ltextordmasculine}{\textsuperscript{o}}
+
+
+% Needed by the References section. This was copy&pasted from ltlogos.dtx.
+\makeatletter
+\DeclareRobustCommand{\LaT}{L\kern-.36em%
+ {\sbox\z@ T%
+ \vbox to\ht\z@{\hbox{\check@mathfonts
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ A}%
+ \vss}%
+ }%
+ \kern-.15em T%
+}
+\makeatother
+
+% Display a metavariable.
+\newcommand{\meta}[1]{$\langle$\textit{#1}$\rangle$}
+
+% Many tables have notes beneath them. Define an environment in which to
+% display such a note, with an optional, superscripted math symbol
+% preceding it.
+\newenvironment{tablenote}[1][]{
+ \makebox[1em]{\ensuremath{^{#1}}}%
+ \begin{minipage}[t]{0.75\textwidth}%
+ \setlength{\parskip}{2ex}
+}{%
+ \end{minipage}%
+}
+
+% Define various messages we reuse repeatedly.
+\newcommand{\twosymbolmessage}{%
+ \begin{tablenote}
+ Where two symbols are present, the left one is the ``faked'' symbol
+ that \latexE{} provides by default, and the right one is the ``true''
+ symbol that \TC\ makes available.
+ \end{tablenote}
+}
+
+\newcommand{\notpredefinedmessage}{%
+ \begin{tablenote}[*]
+ Not predefined in \latexE. Use one of the packages
+ \pkgname{latexsym}, \pkgname{amsfonts}, \pkgname{amssymb},
+ \pkgname{txfonts}, \pkgname{pxfonts}, or \pkgname{wasysym}.
+ \end{tablenote}
+}
+
+\newcommand{\notpredefinedmessageABX}{%
+ \begin{tablenote}[*]
+ Not predefined in \latexE. Use one of the packages
+ \pkgname{latexsym}, \pkgname{amsfonts}, \pkgname{amssymb},
+ \pkgname{mathabx}, \pkgname{txfonts}, \pkgname{pxfonts}, or
+ \pkgname{wasysym}.
+ \end{tablenote}
+}
+
+\newcommand{\usetextmathmessage}[1][]{%
+ \begin{tablenote}[#1]
+ It's generally preferable to use the corresponding symbol from
+ Table~\vref{math-text} because the symbols in that table work
+ properly in both text mode and math mode.
+ \end{tablenote}
+}
+
+\newcommand{\seedocs}[1]{%
+ See the #1 documentation for more information%
+}
+
+
+% Define an environment in which to write a single table of symbols. The
+% environment looks a lot like a table, but it doesn't float, and it gets
+% an entry in the table of contents (as a subsubsection that looks like a
+% subsection), as opposed to the list of tables.
+%
+% The first argument is a conditional. The table will appear only if
+% the value of the conditional is true. The second argument is the
+% table's caption.
+\makeatletter
+\def\fnum@table{\textsc{\tablename}~\thetable}
+\newenvironment{symtable}[2][true]{%
+ \expandafter\global\expandafter\let%
+ \expandafter\ifshowsymtable\csname if#1\endcsname
+ \ifshowsymtable
+ \noindent%
+ \begin{minipage}[t]{\linewidth} % Prevent page breaks
+ \begin{center}
+ \addtocounter{table}{1}%
+ \protected@edef\@currentlabel{\thetable}%
+ \addcontentsline{toc}{subsubsection}{%
+ \protect\numberline{\tablename~\thetable:}{#2}}%
+ \@makecaption{\fnum@table}{#2}\medskip
+ \let\next=\relax
+ \else
+ % The following was taken verbatim from verbatim.sty.
+ \let\do\@makeother\dospecials\catcode`\^^M\active
+ \let\verbatim@startline\relax
+ \let\verbatim@addtoline\@gobble
+ \let\verbatim@processline\relax
+ \let\verbatim@finish\relax
+ \let\next=\verbatim@
+ \fi
+ \next
+}{%
+ \ifshowsymtable
+ \end{center}
+ \end{minipage}
+ \vskip 8ex minus 2ex
+ \fi
+}
+\makeatother
+
+% Same as the above, but allows page breaks.
+\makeatletter
+\newenvironment{longsymtable}[2][true]{%
+ \expandafter\global\expandafter\let
+ \expandafter\ifshowsymtable\csname if#1\endcsname
+ \ifshowsymtable
+ \needspace{7\baselineskip}%
+ \mbox{}%
+ \begin{center}%
+ \addtocounter{table}{1}%
+ \protected@edef\@currentlabel{\thetable}%
+ \addcontentsline{toc}{subsubsection}{%
+ \protect\numberline{\tablename~\thetable:}{#2}}%
+ \@makecaption{\fnum@table}{#2}%
+ \def\lt@indexed{}%
+ \let\next=\relax
+ \else
+ % The following was taken verbatim from verbatim.sty.
+ \let\do\@makeother\dospecials\catcode`\^^M\active
+ \let\verbatim@startline\relax
+ \let\verbatim@addtoline\@gobble
+ \let\verbatim@processline\relax
+ \let\verbatim@finish\relax
+ \let\next=\verbatim@
+ \fi
+ \next
+}{%
+ \ifshowsymtable
+ \end{center}
+ \let\@elt=\index\lt@indexed % Close our index ranges.
+ \addtocounter{table}{-1} % Make up for longtable's counter increment.
+ \vskip 8ex minus 2ex
+ \fi
+}
+\makeatother
+
+% Define \index-like commands for use with longsymtable that
+% automatically apply to the entire table, not just the start of it.
+\makeatletter
+\newcommand{\ltindex}[1]{%
+ \index{#1|(}%
+ \@cons{\lt@indexed}{{#1|)}}%
+}
+\newcommand{\ltidxboth}[2]{\mbox{}\ltindex{#1 #2}\ltindex{#2>#1}}
+\makeatother
+
+
+% Define a table environment that's similar to symtable, except that it
+% floats and it doesn't write an entry into the Table of Contents. This
+% is used for tables that contain something other than symbol lists.
+\newenvironment{nonsymtable}[1]{%
+ \begin{table}[htbp]
+ \centering
+ \caption{#1}\medskip
+}{%
+ \end{table}
+}
+
+% Do the same as the above, but typeset the table in landscape mode (or
+% not, if we haven't loaded the rotating package).
+\ifhaverotating
+ \newenvironment{nonsymtableL}[1]{%
+ \begin{sidewaystable}[htbp]
+ \centering
+ \caption{#1}\medskip
+ }{%
+ \end{sidewaystable}
+ }
+\else
+ \newenvironment{nonsymtableL}{\begin{nonsymtable}}{\end{nonsymtable}}
+\fi
+
+% Make sure we have enough room in the table of contents for
+% the word "Table" at the beginning of each symtable entry.
+\makeatletter
+\settowidth{\@tempdimc}{Table~999:\hspace*{0.5em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{3}{1.5em}{\the\@tempdimc}}
+\makeatother
+
+% Paragraphs with tall symbols should get a little extra interline spacing.
+\newenvironment{morespacing}[1]{\advance\baselineskip by #1\relax}{\par}
+
+% Sometimes, we need a little more horizontal spacing, too.
+\newcommand{\qqquad}{\qquad\quad}
+
+% The following are needed later on for various examples but must be
+% declared here in the preamble.
+\ifAMS
+ \DeclareMathOperator{\newlogsym}{newlogsym}
+ \DeclareMathOperator*{\newlogsymSTAR}{newlogsym}
+ \DeclareMathOperator{\atan}{atan}
+ \DeclareMathOperator*{\lcm}{lcm}
+\fi
+\DeclareFontFamily{U}{lightbulb}{}
+\DeclareFontShape{U}{lightbulb}{m}{n}{<-> lightbulb10}{}
+\newcommand{\lightbulb}{{\usefont{U}{lightbulb}{m}{n}A}}
+
+% I prefer \vpageref to say "on the previous page" than its default message.
+\def\reftextbefore{on the previous page}
+
+% Use Donald Arseneau's improved float parameters.
+\renewcommand{\topfraction}{.85}
+\renewcommand{\bottomfraction}{.7}
+\renewcommand{\textfraction}{.15}
+\renewcommand{\floatpagefraction}{.66}
+\renewcommand{\dbltopfraction}{.66}
+\renewcommand{\dblfloatpagefraction}{.66}
+\setcounter{topnumber}{9}
+\setcounter{bottomnumber}{9}
+\setcounter{totalnumber}{20}
+\setcounter{dbltopnumber}{9}
+
+% Tell pdfLaTeX that all .eps files were produced by MetaPost.
+\ifx\pdfoutput\undefined
+\else
+ \ifx\pdfoutput\relax
+ \else
+ \ifcase\pdfoutput
+ \else
+ \DeclareGraphicsExtensions{.png,.pdf,.jpg,.mps,.tif,.eps}
+ \DeclareGraphicsRule{.eps}{mps}{*}{}
+ \fi
+ \fi
+\fi
+
+% Define a metavariable for "operating-system prompt".
+\newcommand{\osprompt}{\textrm{\textit{prompt}}{\small$>$}\xspace}
+
+% Typeset small, superscripted registered trademarks.
+\newcommand{\regtm}{\textsuperscript{\textregistered}\xspace}
+
+% Define an environment for typesetting code samples.
+\newsavebox{\codebox}
+\newenvironment{codesample}{%
+ \begin{lrbox}{\codebox}%
+ \begin{minipage}{0.9\linewidth}%
+}{%
+ \end{minipage}%
+ \end{lrbox}%
+ \fbox{\usebox{\codebox}}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begin{document}
+\sloppy
+\maketitle
+
+\begin{abstract}
+ This document lists \approxcount\prevtotalsymbols{} symbols and the
+ corresponding \latex{} commands that produce them. Some of these
+ symbols are guaranteed to be available in every \latexE{} system;
+ others require fonts and packages that may not accompany a given
+ distribution and that therefore need to be installed. All of the
+ fonts and packages used to prepare this document---as well as this
+ document itself---are freely available from the
+ Comprehensive\idxCTAN{} \TeX{} Archive Network
+ (\url{http://www.ctan.org/}).
+\end{abstract}
+
+\tableofcontents
+
+% Now that we've output the table of contents, let's make \section start a
+% new page. I toyed with the idea of changing the documentclass from
+% article to report, but I like having the abstract on the same page as
+% the title and the start of the table of contents; I want the tables
+% numbered consecutively throughout the document; and I like the smaller,
+% less gaudy section headings the article class offers. In short, article
+% seems a better fit than report.
+\makeatletter
+\let\origsection=\section
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\clearpage\normalfont\Large\bfseries}}
+\makeatother
+
+
+% Define an integral containing a dash or a double-dash.
+\def\Xint#1{\mathchoice
+ {\XXint\displaystyle\textstyle{#1}}%
+ {\XXint\textstyle\scriptstyle{#1}}%
+ {\XXint\scriptstyle\scriptscriptstyle{#1}}%
+ {\XXint\scriptscriptstyle\scriptscriptstyle{#1}}%
+ \!\int}
+\def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$}
+ \vcenter{\hbox{$#2#3$}}\kern-.5\wd0}}
+\def\ddashint{\Xint=}
+\def\dashint{\Xint-}
+
+
+% Many symbols are merely alphanumerics typeset with a math alphabet.
+% Guide the user from the most common of these to the Math Alphabets
+% table.
+%
+% QUESTION: How standard are the following?
+% * 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)
+% * Mellin transform (script M)
+% * null space (script N)
+% * order of (script o)
+% * radius (script r)
+% * real line (script R)
+% * Schwartz class (script S)
+% * volume (script V)
+%
+\ifcomplete
+ \makeatletter
+ \newcommand{\indexMA}[2][]{%
+ \def\first@arg{#1}%
+ \ifx\first@arg\@empty
+ \index{#2|see{alphabets, math}}%
+ \else
+ \index{#2=#2 (\string#1)|see{alphabets, math}}%
+ \fi
+ }
+ \makeatother
+\else
+ \newcommand{\indexMA}[2][]{%
+ \index{#2|see{alphabets, math}}%
+}
+\fi
+\indexMA[\mathscr{F}]{Fourier transform}
+\indexMA[\mathscr{H}]{Hamiltonian}
+\indexMA[\mathscr{H}]{Hilbert space}
+\indexMA[\mathscr{L}]{Lagrangian}
+\indexMA[\mathscr{L}]{Laplace transform}
+\indexMA[\mathcal{L}]{Lie derivative}
+\indexMA[\mathscr{P}]{power set}
+\indexMA[\mathscr{E}]{electromotive force}
+\indexMA[\mathcal{O}]{local ring}
+\indexMA[$\mathbbm{C}$]{complex numbers}
+%\indexMA{imaginary numbers}
+\indexMA[$\mathbbm{Z}$]{integers}
+\indexMA[$\mathbbm{N}$]{natural numbers}
+\indexMA{number sets}
+%\indexMA{prime numbers}
+\indexMA[$\mathbbm{1}$]{unity}
+\indexMA[$\mathbbm{D}$]{open unit disk}
+\indexMA[$\mathbbm{D}$]{unit disk}
+\indexMA[$\mathbbm{H}$]{quaternions}
+\indexMA[$\mathbbm{Q}$]{rational numbers}
+\indexMA[$\mathbbm{R}$]{real numbers}
+\indexMA[$\mathbbm{T}$]{torus}
+\indexMA{script letters}
+\indexMA{blackboard bold}
+\indexMA{fraktur}
+\indexMA{moduli space}
+\indexMA{Schwartz distribution spaces}
+
+% Provide "see ..."s for every accent whose name I happen to know.
+\index{arc|see{accents}}
+\index{breve|see{accents}}
+\index{caron|see{accents}}
+\index{cedilla|see{accents}}
+\index{circumflex|see{accents}}
+\index{diaeresis=di\ae{}resis|see{accents}}
+\index{hacek=h\'{a}\v{c}ek|see{accents}}
+\index{Hungarian umlaut|see{accents}}
+\index{macron|see{accents}}
+\index{ogonek|see{accents}}
+\index{umlaut|see{accents}}
+
+% Provide "see ..."s for the common logical operators.
+\index{logical operators>and|see{\texttt{\string\wedge}}}
+\index{logical operators>or|see{\texttt{\string\vee}}}
+\index{logical operators>not|see{\texttt{\string\neg} \emph{and} \texttt{\string\sim}}}
+\index{operators>logical|see{logical operators}}
+\index{and|see{\texttt{\string\wedge}}}
+\index{or|see{\texttt{\string\vee}}}
+\index{not|see{\texttt{\string\neg}}}
+\index{conjunction|see{\texttt{\string\wedge}}}
+\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{operators>set|see{set operators}}
+\index{union|see{\texttt{\string\cup}}}
+\index{intersection|see{\texttt{\string\cap}}}
+\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}}}
+
+% Provide "see ..."s for various punctuation marks.
+\index{paragraph mark|see{\texttt{\string\P}}}
+\index{pilcrow|see{\texttt{\string\P}}}
+\index{percent sign|see{\texttt{\string\%}}}
+\index{dollar sign|see{\texttt{\string\$}}}
+\index{cents|see{\texttt{\string\textcent}}}
+\index{hash mark|see{\texttt{\string\#}}}
+\index{ampersand|see{\texttt{\string\&}}}
+\index{section mark|see{\texttt{\string\S}}}
+\index{caret|see{\texttt{\string\^}}}
+\index{swung dash|see{\texttt{\string\sim}}}
+\index{underscore|see{\texttt{\string\_}}}
+\index{less-than signs|see{inequalities}}
+\index{greater-than signs|see{inequalities}}
+\index{plus-or-minus sign|see{\texttt{\string\pm}}}
+
+% Provide "see ..."s for various 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{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}}
+
+% Provide a few other useful "see ..."s.
+\index{CTAN|see{Comprehensive \TeX{} Archive Network}}
+\index{letters|see{alphabets}}
+\index{numbers|see{digits}}
+\index{degrees|see{\texttt{\string\textdegree}}}
+\index{registered trademark|see{\texttt{\string\textregistered}}}
+\index{trademark|see{\texttt{\string\texttrademark}}}
+\index{Cedi|see{\texttt{\string\textcolonmonetary}}}
+\index{iff=\texttt{\string\iff}|see{\texttt{\string\Longleftrightarrow}}}
+\index{derivitive, partial|see{\texttt{\string\partial}}}
+\index{to=\texttt{\string\to}|see{\texttt{\string\rightarrow}}}
+\index{adjoint=adjoint (\dag)|see{\texttt{\string\dag}}}
+\ifAMS
+ \index{implies=\texttt{\string\implies}|see{\texttt{\string\Longrightarrow}
+ \emph{and} \texttt{\string\vdash}}}
+ \index{impliedby=\texttt{\string\impliedby}|see{\texttt{\string\Longleftarrow}}}
+ \index{division times|see{\texttt{\string\divideontimes}}}
+ \index{does not exist|see{\texttt{\string\nexists}}}
+ \index{ring equal to|see{\texttt{\string\circeq}}}
+ \index{ring in equal to|see{\texttt{\string\eqcirc}}}
+ \index{does not divide|see{\texttt{\string\nmid}}}
+ \index{transversality|see{\texttt{\string\pitchfork}}}
+ \index{absolute value|see{\texttt{\string\lvert} \emph{and} \texttt{\string\rvert}}}
+ \index{norm|see{\texttt{\string\lVert} \emph{and} \texttt{\string\rVert}}}
+% \index{average|see{\texttt{\string\varnothing}}}
+\fi % AMS test
+\ifTIPA
+% \index{symbols>dictionary|see{symbols, phonetic}}
+% \index{dictionary symbols|see{phonetic symbols}}
+ \index{pronunciation symbols|see{phonetic symbols}}
+\fi % TIPA test
+\index{abzuglich=abz\"uglich|see{\texttt{\string\textdiscount}}}
+\index{diacritics|see{accents}}
+\index{parts per thousand|see{\texttt{\string\textperthousand}}}
+\index{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}}}
+\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{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{\texttt{\string\sqrt} \emph{and} \texttt{\string\surd}}}
+\index{roots|see{\texttt{\string\sqrt}}}
+\index{square root|see{\texttt{\string\sqrt}}}
+\index{square root>hooked|see{\texttt{\string\hksqrt}}}
+\index{cube root|see{\texttt{\string\sqrt}}}
+\ifcomplete
+ \index{return|see{carriage return}}
+ \index{heads|see{faces}}
+ \index{people|see{faces}}
+\fi
+\ifTX
+ \index{fish hook|see{\texttt{\string\strictif}}}
+ \index{par|see{\texttt{\string\invamp}}}
+\fi % TX test
+\index{stochastic independence|see{\texttt{\string\bot}}}
+\index{independence>stochastic|see{\texttt{\string\bot}}}
+\index{orthogonal to|see{\texttt{\string\bot}}}
+\index{entails|see{\texttt{\string\models}}}
+\index{micro|see{\texttt{\string\textmu}}}
+\index{Angstrom unit=\AA{}ngstr\"om unit>math mode|see{\texttt{\string\mathring}}}
+\index{Angstrom unit=\AA{}ngstr\"om unit>text mode|see{\texttt{\string\AA}}}
+\index{yen|see{\texttt{\string\textyen}}}
+\index{equilibrium|see{\texttt{\string\rightleftharpoons}}}
+\index{number|see{\texttt{\string\textnumero}}}
+\index{ditto marks|see{\texttt{\string\textquotedbl}}}
+\index{Weierstrass p function=Weierstrass $\wp$ function|see{\texttt{\string\wp}}}
+\index{inexact differential|see{\texttt{\string\dbar}}}
+\ifhaveslashed
+ \index{reduced quadrupole moment|see{\texttt{\string\rqm}}}
+\fi % haveslashed
+\ifST
+ \index{banana brackets|see{\texttt{\string\llparenthesis} \emph{and} \texttt{\string\rrparenthesis}}}
+ \index{catamorphism|see{\texttt{\string\llparenthesis} \emph{and} \texttt{\string\rrparenthesis}}}
+\fi % ST test
+\ifOTII
+ \index{impulse train|see{sha}}
+ \index{Tate-Shafarevich group|see{sha}}
+\fi
+\ifSKAK
+ \index{king|see{chess symbols}}
+ \index{queen|see{chess symbols}}
+ \index{castle|see{chess symbols}}
+ \index{rook|see{chess symbols}}
+ \index{bishop|see{chess symbols}}
+ \index{knight|see{chess symbols}}
+ \index{pawn|see{chess symbols}}
+\fi % SKAK test
+\index{differential, inexact|see{\texttt{\string\dbar}}}
+\index{brackets|see{delimiters}}
+\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{es-zet|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
+
+% "See also"s should appear after all page references.
+\providecommand*\seealso[2]{\emph{\alsoname}#1}
+\providecommand*\alsoname{see also}
+\AtEndDocument{%
+ \index{carriage return|seealso{\string\texttt{\string\string\string\hookleftarrow}}}
+ \index{transforms|seealso{alphabets, math}}
+ \ifTX
+ \index{parallel|seealso{\string\texttt{\string\string\string\varparallel}}}
+ \fi
+ \ifST
+ \index{Plimsoll line|seealso{\string\texttt{\string\string\string\minuso}}}
+ \fi
+}
+
+% Multiple packages define \multimap.
+\makeatletter
+ \@ifundefined{multimap}{}{%
+ \index{linear implication|see{\texttt{\string\string\string\multimap}}}
+ \index{lollipop|see{\texttt{\string\string\string\multimap}}}}
+\makeatother
+
+% Minutes/seconds and feet/inches are normally formed with superscripted
+% primes.
+\index{arcminutes|see{\texttt{\string\prime}}}
+\index{angular minutes|see{\texttt{\string\prime}}}
+\index{minutes, angular|see{\texttt{\string\prime}}}
+\index{feet|see{\texttt{\string\prime} \emph{and}
+ \texttt{\string\textquotesingle}}}
+\ifABX
+ \index{arcseconds|see{\texttt{\string\second}}}
+ \index{angular seconds|see{\texttt{\string\second}}}
+ \index{seconds, angular|see{\texttt{\string\second}}}
+ \index{inches|see{\texttt{\string\second} \emph{and}
+ \texttt{\string\textquotedbl}}}
+\else
+ \index{arcseconds|see{\texttt{\string\prime}}}
+ \index{angular seconds|see{\texttt{\string\prime}}}
+ \index{seconds, angular|see{\texttt{\string\prime}}}
+ \index{inches|see{\texttt{\string\prime} \emph{and}
+ \texttt{\string\textquotedbl}}}
+\fi
+
+% \notowns can be mapped to various things depending on package availability.
+\ifABX
+ \ifTX
+ \index{notowns=\texttt{\string\notowns}|see{\texttt{\string\notowner}
+ \emph{and} \texttt{\string\notni}}}
+ \else
+ \index{notowns=\texttt{\string\notowns}|see{\texttt{\string\notowner}}}
+ \fi
+\else
+ \ifTX
+ \index{notowns=\texttt{\string\notowns}|see{\texttt{\string\notni}}}
+ \fi
+\fi
+
+% Double brackets are defined by both ST and ABX.
+\ifABX
+ \ifST
+ \index{semantic valuation|see{\texttt{\string\llbracket}/\texttt{\string\rrbracket}
+ \emph{and} \texttt{\string\ldbrack}/\texttt{\string\rdbrack}}}
+ \else
+ \index{semantic valuation|see{\texttt{\string\ldbrack}/\texttt{\string\rdbrack}}}
+ \fi
+\else
+ \ifST
+ \index{semantic valuation|see{\texttt{\string\llbracket}/\texttt{\string\rrbracket}}}
+ \fi
+\fi
+
+% The following were generated automatically from txfonts.sty.
+\ifTX
+ \index{circledplus=\texttt{\string\circledplus}|see{\texttt{\string\oplus}}}
+ \index{circledminus=\texttt{\string\circledminus}|see{\texttt{\string\ominus}}}
+ \index{circledtimes=\texttt{\string\circledtimes}|see{\texttt{\string\otimes}}}
+ \index{circledslash=\texttt{\string\circledslash}|see{\texttt{\string\oslash}}}
+ \index{circleddot=\texttt{\string\circleddot}|see{\texttt{\string\odot}}}
+ \index{le=\texttt{\string\le}|see{\texttt{\string\leq}}}
+ \index{ge=\texttt{\string\ge}|see{\texttt{\string\geq}}}
+ \index{gets=\texttt{\string\gets}|see{\texttt{\string\leftarrow}}}
+ \index{to=\texttt{\string\to}|see{\texttt{\string\rightarrow}}}
+ \index{owns=\texttt{\string\owns}|see{\texttt{\string\ni}}}
+ \index{lnot=\texttt{\string\lnot}|see{\texttt{\string\neg}}}
+ \index{land=\texttt{\string\land}|see{\texttt{\string\wedge}}}
+ \index{lor=\texttt{\string\lor}|see{\texttt{\string\vee}}}
+ \index{restriction=\texttt{\string\restriction}|see{\texttt{\string\upharpoonright}}}
+ \index{Doteq=\texttt{\string\Doteq}|see{\texttt{\string\doteqdot}}}
+ \index{doublecup=\texttt{\string\doublecup}|see{\texttt{\string\Cup}}}
+ \index{doublecap=\texttt{\string\doublecap}|see{\texttt{\string\Cap}}}
+ \index{llless=\texttt{\string\llless}|see{\texttt{\string\lll}}}
+ \index{gggtr=\texttt{\string\gggtr}|see{\texttt{\string\ggg}}}
+ %\index{Box=\texttt{\string\Box}|see{\texttt{\string\square}}}
+ \index{ne=\texttt{\string\ne}|see{\texttt{\string\neq}}}
+ %\index{notowns=\texttt{\string\notowns}|see{\texttt{\string\notni}}}
+ \index{lrJoin=\texttt{\string\lrJoin}|see{\texttt{\string\Join}}}
+ %\index{bowtie=\texttt{\string\bowtie}|see{\texttt{\string\lrtimes}}}
+ \index{dasharrow=\texttt{\string\dasharrow}|see{\texttt{\string\dashrightarrow}}}
+ \index{circledotright=\texttt{\string\circledotright}|see{\texttt{\string\circleddotright}}}
+ \index{circledotleft=\texttt{\string\circledotleft}|see{\texttt{\string\circleddotleft}}}
+\fi % TX test
+
+% The following were generated semi-automatically from SYMLIST using:
+% egrep '\text' SYMLIST | sed 's/\\text//' | xargs -i egrep '^{}$' /usr/share/dict/words | xargs -i sh -c 'egrep -q "^\\\\{}$" SYMLIST || echo "\\index{{}|see{\\texttt{\\string\\text{}}}}"' \;
+% then editing the result.
+\index{blank|see{\texttt{\string\textblank}}}
+\index{born|see{\texttt{\string\textborn}}}
+\index{died|see{\texttt{\string\textdied}}}
+\index{discount|see{\texttt{\string\textdiscount}}}
+\index{divorced|see{\texttt{\string\textdivorced}}}
+\index{dollar|see{\texttt{\string\textdollar}}}
+%\index{ellipsis|see{\texttt{\string\textellipsis}}}
+\index{estimated|see{\texttt{\string\textestimated}}}
+\index{florin|see{\texttt{\string\textflorin}}}
+%\index{greater|see{\texttt{\string\textgreater}}}
+\index{leaf|see{\texttt{\string\textleaf}}}
+%\index{less|see{\texttt{\string\textless}}}
+\index{married|see{\texttt{\string\textmarried}}}
+\index{minus|see{\texttt{\string\textminus}}}
+\index{ohm|see{\texttt{\string\textohm}}}
+%\index{paragraph|see{\texttt{\string\textparagraph}}}
+\index{recipe|see{\texttt{\string\textrecipe}}}
+%\index{registered|see{\texttt{\string\textregistered}}}
+%\index{section|see{\texttt{\string\textsection}}}
+\index{sterling|see{\texttt{\string\pounds}}}
+%\index{style|see{\texttt{\string\textstyle}}}
+%\index{superscript|see{\texttt{\string\textsuperscript}}}
+\index{trademark|see{\texttt{\string\texttrademark}}}
+%\index{underscore|see{\texttt{\string\textunderscore}}}
+\index{won|see{\texttt{\string\textwon}}}
+\ifTIPA
+ \index{advancing|see{\texttt{\string\textadvancing}}}
+ \index{bullseye|see{\texttt{\string\textbullseye}}}
+ \index{lowering|see{\texttt{\string\textlowering}}}
+ \index{pipe|see{\texttt{\string\textpipe}}}
+ \index{raising|see{\texttt{\string\textraising}}}
+ \index{retracting|see{\texttt{\string\textretracting}}}
+ \index{seagull|see{\texttt{\string\textseagull}}}
+\fi % TIPA test
+%\index{swab|see{\texttt{\string\textswab}}}
+
+
+\section{Introduction}
+
+Welcome to the \doctitle! This document strives to be your primary
+source of \latex{} symbol information: font samples, \latex{}
+commands, packages, usage details, caveats---everything needed to put
+thousands of different symbols at your disposal. All of the fonts
+covered herein meet the following criteria:
+
+\begin{enumerate}
+ \item They are freely available from the Comprehensive\idxCTAN{}
+ \TeX{} Archive Network (\url{http://www.ctan.org}).
+
+ \item All of their symbols have \latexE{} bindings. That is, a user
+ should be able to access a symbol by name, not just by
+ \cmd{\char}\meta{number}.
+\end{enumerate}
+
+\noindent
+These are not particularly limiting criteria; the \doctitle{} contains
+samples of \approxcount\prevtotalsymbols{} symbols---quite a large
+number. Some of these symbols are guaranteed to be available in every
+\latexE{} system; others require fonts and packages that may not
+accompany a given distribution and that therefore need to be
+installed. See
+\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages+wherefiles}
+for help with installing new fonts and packages.
+
+
+\subsection{Document Usage}
+
+Each section of this document contains a number of font tables. Each
+table shows a set of symbols, with the corresponding \latex{} command
+to the right of each symbol. A table's caption indicates what package
+needs to be loaded in order to access that table's symbols. For
+example, the symbols in Table~\ref{old-style-nums}, ``\TC\ Old-Style
+Numerals'', are made available by putting
+``\cmd{\usepackage}\verb|{textcomp}|'' in your document's preamble.
+``\AMS'' means to use the \AMS{} packages, viz.\ \pkgname{amssymb}
+and/or \pkgname{amsmath}. Notes below a table provide additional
+information about some or all the symbols in that table.
+
+One\label{altenc} note that appears a few times in this document,
+particularly in Section~\ref{body-text-symbols}, indicates that
+certain symbols do not exist in the OT1 \fntenc[OT1]
+(Donald\index{Knuth, Donald E.} Knuth's original, 7-bit
+\fntenc[7-bit], which is the default \fntenc{} for \latex) and that
+you should use \pkgname{fontenc} to select a different encoding, such
+as T1 (a common 8-bit \fntenc[8-bit]\index{font encodings>T1}). That
+means that you should put
+``\cmd{\usepackage}\verb|[|\meta{encoding}\verb|]{fontenc}|'' in your
+document's preamble, where \meta{encoding} is, e.g.,
+\texttt{T1}\index{font encodings>T1} or \texttt{LY1}\index{font
+encodings>LY1}. To limit the change in \fntenc[limiting scope of] to
+the current group, use
+``\cmd{\fontencoding}\verb|{|\meta{encoding}\verb|}|\cmd{\selectfont}''.
+
+Section~\ref{addl-info} contains some additional information about the
+symbols in this document. It shows which symbol names are not unique
+across packages, gives examples of how to create new symbols out of
+existing symbols, explains how symbols are spaced in math mode,
+presents a \latex{} ASCII\index{ASCII} and Latin~1\index{Latin 1}
+tables, and provides some information about this document itself. The
+\doctitle{} ends with an index of all the symbols in the document and
+various additional useful terms.
+
+
+\ifcomplete
+
+\subsection{Frequently Requested Symbols}
+
+There are a number of symbols that are requested over and over again
+on \ctt. If you're looking for such a symbol the following list will
+help you find it quickly.
+
+\newenvironment{symbolfaq}{%
+ \ifhavemulticol
+ \setlength{\columnsep}{3em}%
+ \begin{multicols}{2}%
+ \fi
+ \setlength{\parskip}{1ex}%
+ \newcommand{\faq}[2]{%
+ \noindent##1\quad\dotfill\quad\makebox[1em][r]{##2}\par}%
+}{%
+ \ifhavemulticol
+ \end{multicols}%
+ \fi
+}
+
+\begin{symbolfaq}
+ \faq{\textvisiblespace, as in
+ ``Spaces\textvisiblespace are\textvisiblespace significant.''}
+ {\pageref{text-predef}}
+ \faq{\'{\i}, \`{\i}, \={\i}, \^{\i}, etc.\ (versus \'i, \`i, \=i, and \^i)}
+ {\pageref{text-accents}}
+ \faq{\textcent}
+ {\pageref{tc-currency}}
+ \faq{\EUR}
+ {\pageref{marv-currency}}
+ \faq{\textcopyright, \textregistered, and \texttrademark}
+ {\pageref{tc-legal}}
+ \faq{\textperthousand}
+ {\pageref{tc-misc}}
+ \faq{$\oiint$}
+ {\pageref{txpx-large}}
+ \faq{$\therefore$}
+ {\pageref{ams-rel}}
+ \faq{$\coloneqq$ and $\Coloneqq$}
+ {\pageref{txpx-rel}}
+ \faq{$\lesssim$ and $\gtrsim$}
+ {\pageref{ams-inequal-rel}}
+ \faq{$\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{$\dashint$}
+ {\pageref{dashint}}
+ \faq{\diatop[{\diatop[\'|\=]}|a],
+ \diatop[{\diatop[\`|\^]}|e], etc.
+ (i.e., several accents per character)}
+ {\pageref{multiple-accents}}
+ \faq{$<$, $>$, and $|$ (instead of <, >, and |)}
+ {\pageref{upside-down}}
+ \faq{\textasciicircum\ and \textasciitilde\ (or $\sim$)}
+ {\pageref{tildes}}
+\end{symbolfaq}
+
+\fi % ifcomplete
+
+
+\section{Body-text symbols}
+\label{body-text-symbols}
+\idxbothbegin{body-text}{symbols}
+
+This section lists symbols that are intended for use in running text,
+such as punctuation marks, accents, ligatures, and currency symbols.
+
+\bigskip
+
+\begin{symtable}{\latexE{} Escapable ``Special'' Characters}
+\index{special characters=``special'' characters}
+\index{escapable characters}
+\label{special-escapable}
+\begin{tabular}{*6{ll@{\qqquad}}ll}
+\K\$ & \K\% & \K\_$\,^*$ & \Kp\} & \K\& & \K\# & \Kp\{ \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ The \pkgname{underscore} package redefines ``\verb+_+'' to produce
+ an underscore in text mode (i.e.,~it makes it unnecessary to escape
+ the underscore character).
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{Predefined \latexE{} Text-mode Commands}
+\index{space, visible}
+\index{inequalities}
+\index{tilde}
+\index{copyright}
+\idxboth{dot}{symbols}
+\index{dots (ellipses)} \index{ellipses (dots)}
+\idxboth{legal}{symbols}
+\label{text-predef}
+\begin{tabular}{lll@{\qqquad}lll}
+\V\textasciicircum & \V\textless \\
+\V\textasciitilde & \V[\ltextordfeminine]\textordfeminine \\
+\V\textasteriskcentered & \V[\ltextordmasculine]\textordmasculine \\
+\V\textbackslash & \V\textparagraph$^*$ \\
+\V\textbar & \V\textperiodcentered \\
+\V\textbraceleft$^*$ & \V\textquestiondown \\
+\V\textbraceright$^*$ & \V\textquotedblleft \\
+\V\textbullet & \V\textquotedblright \\
+\V[\ltextcopyright]\textcopyright$^*$
+ & \V\textquoteleft \\
+\V\textdagger$^*$ & \V\textquoteright \\
+\V\textdaggerdbl$^*$ & \V[\ltextregistered]\textregistered \\
+\V\textdollar$^*$ & \V\textsection$^*$ \\
+\V\textellipsis$^*$ & \V\textsterling$^*$ \\
+\V\textemdash & \V[\ltexttrademark]\texttrademark \\
+\V\textendash & \V\textunderscore$^*$ \\
+\V\textexclamdown & \V\textvisiblespace \\
+\V\textgreater \\
+\end{tabular}
+
+\bigskip
+\twosymbolmessage
+
+\bigskip
+\usetextmathmessage[*]
+
+\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}
+\V\$ & \V\_ & \V\ddag & \Vp\{ \\
+\V\P & \V[\ltextcopyright]\copyright
+ & \V\dots & \Vp\} \\
+\V\S & \V\dag & \V\pounds \\
+\end{tabular}
+
+\bigskip
+\twosymbolmessage
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Commands Defined to Work in Both Math and Text Mode}
+\label{ams-math-text}
+\begin{tabular}{*2{ll@{\qquad}}ll}
+\X\checkmark & \X\circledR & \X\maltese
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Non-ASCII Letters (Excluding Accented Letters)}
+\index{letters>non-ASCII}\index{ASCII}
+\label{non-ascii}
+\begin{tabular}{*4{ll@{\hspace*{3em}}}ll}
+\K\aa & \Ks\DH & \K\L & \K\o & \K\ss \\
+\K\AA & \Ks\dh & \K\l & \K\O & \K\SS \\
+\K\AE & \Ks\DJ & \Ks\NG & \K\OE & \Ks\TH \\
+\K\ae & \Ks\dj & \Ks\ng & \K\oe & \Ks\th \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ Not available in the OT1 \fntenc[OT1]. Use the \pkgname{fontenc}
+ package to select an alternate \fntenc[T1], such as T1.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[FC]{Letters Used to Typeset African Languages}
+\index{alphabets>African}
+\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}
+\index{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}
+\label{punc-no-OT1}
+\begin{tabular}{*8l}
+\Kt\guillemotleft & \Kt\guilsinglleft & \Kt\quotedblbase & \Kt\textquotedbl \\
+\Kt\guillemotright & \Kt\guilsinglright & \Kt\quotesinglbase \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ To get these symbols, use the \pkgname{fontenc} package to select an
+ alternate \fntenc[T1], such as~T1.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Decorative Punctuation Marks}
+\index{punctuation}
+\label{pi-punctuation}
+\begin{tabular}{*5{ll}}
+\Tp{123} & \Tp{125} & \Tp{161} & \Tp{163} \\
+\Tp{124} & \Tp{126} & \Tp{162} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{longsymtable}[TIPA]{\TIPA\ Phonetic Symbols}
+\ltidxboth{phonetic}{symbols}
+\ltidxboth{linguistic}{symbols}
+\ltidxboth{dictionary}{symbols}
+\ltidxboth{rotated}{symbols}
+\ltidxboth{upside-down}{symbols}
+\ltidxboth{inverted}{symbols}
+\ltindex{alphabets>phonetic}
+\index{tilde}
+\label{tipa-phonetic}
+\begin{longtable}{*3{ll}}
+\multicolumn{6}{l}{\small\textit{(continued from previous page)}} \\[3ex]
+\endhead
+\endfirsthead
+\\[3ex]
+\multicolumn{6}{r}{\small\textit{(continued on next page)}}
+\endfoot
+\endlastfoot
+\K\textbabygamma & \K\textglotstop & \K\textrtailn \\
+\K\textbarb & \K\texthalflength & \K\textrtailr \\
+\K\textbarc & \K\texthardsign & \K\textrtails \\
+\K\textbard & \K\texthooktop & \K\textrtailt \\
+\K\textbardotlessj & \K\texthtb & \K\textrtailz \\
+\K\textbarg & \K\texthtbardotlessj & \K\textrthook \\
+\K\textbarglotstop & \K\texthtc & \K\textsca \\
+\K\textbari & \K\texthtd & \K\textscb \\
+\K\textbarl & \K\texthtg & \K\textsce \\
+\K\textbaro & \K\texthth & \K\textscg \\
+\K\textbarrevglotstop & \K\texththeng & \K\textsch \\
+\K\textbaru & \K\texthtk & \K\textschwa \\
+\K\textbeltl & \K\texthtp & \K\textsci \\
+\K\textbeta & \K\texthtq & \K\textscj \\
+\K\textbullseye & \K\texthtrtaild & \K\textscl \\
+\K\textceltpal & \K\texthtscg & \K\textscn \\
+\K\textchi & \K\texthtt & \K\textscoelig \\
+\K\textcloseepsilon & \K\texthvlig & \K\textscomega \\
+\K\textcloseomega & \K\textinvglotstop & \K\textscr \\
+\K\textcloserevepsilon & \K\textinvscr & \K\textscripta \\
+\K\textcommatailz & \K\textiota & \K\textscriptg \\
+\K\textcorner & \K\textlambda & \K\textscriptv \\
+\K\textcrb & \K\textlengthmark & \K\textscu \\
+\K\textcrd & \K\textlhookt & \K\textscy \\
+\K\textcrg & \K\textlhtlongi & \K\textsecstress \\
+\K\textcrh & \K\textlhtlongy & \K\textsoftsign \\
+\K\textcrinvglotstop & \K\textlonglegr & \K\textstretchc \\
+\K\textcrlambda & \K\textlptr & \K\texttctclig \\
+\K\textcrtwo & \K\textltailm & \K\textteshlig \\
+\K\textctc & \K\textltailn & \K\texttheta \\
+\K\textctd & \K\textltilde & \K\textthorn \\
+\K\textctdctzlig & \K\textlyoghlig & \K\texttoneletterstem \\
+\K\textctesh & \K\textObardotlessj & \K\texttslig \\
+\K\textctj & \K\textOlyoghlig & \K\textturna \\
+\K\textctn & \K\textomega & \K\textturncelig \\
+\K\textctt & \K\textopencorner & \K\textturnh \\
+\K\textcttctclig & \K\textopeno & \K\textturnk \\
+\K\textctyogh & \K\textpalhook & \K\textturnlonglegr \\
+\K\textctz & \K\textphi & \K\textturnm \\
+\K\textdctzlig & \K\textpipe & \K\textturnmrleg \\
+\K\textdoublebaresh & \K\textprimstress & \K\textturnr \\
+\K\textdoublebarpipe & \K\textraiseglotstop & \K\textturnrrtail \\
+\K\textdoublebarslash & \K\textraisevibyi & \K\textturnscripta \\
+\K\textdoublepipe & \K\textramshorns & \K\textturnt \\
+\K\textdoublevertline & \K\textrevapostrophe & \K\textturnv \\
+\K\textdownstep & \K\textreve & \K\textturnw \\
+\K\textdyoghlig & \K\textrevepsilon & \K\textturny \\
+\K\textdzlig & \K\textrevglotstop & \K\textupsilon \\
+\K\textepsilon & \K\textrevyogh & \K\textupstep \\
+\K\textesh & \K\textrhookrevepsilon & \K\textvertline \\
+\K\textfishhookr & \K\textrhookschwa & \K\textvibyi \\
+\K\textg & \K\textrhoticity & \K\textvibyy \\
+\K\textgamma & \K\textrptr & \K\textwynn \\
+\K\textglobfall & \K\textrtaild & \K\textyogh \\
+\K\textglobrise & \K\textrtaill & \\
+\end{longtable}
+
+\begin{tablenote}
+ \TIPA\ defines shortcut characters for many of the above. It also
+ defines a command \cmd{\tone} for denoting tone letters (pitches).
+ \seedocs{\TIPA}.
+\end{tablenote}
+\end{longsymtable}
+
+
+\begin{symtable}[TIPX]{\TIPX\ Phonetic Symbols}
+\idxboth{phonetic}{symbols}
+\idxboth{linguistic}{symbols}
+\idxboth{dictionary}{symbols}
+\idxboth{rotated}{symbols}
+\idxboth{upside-down}{symbols}
+\idxboth{inverted}{symbols}
+\index{alphabets>phonetic}
+\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{symtable}
+
+
+\begin{longsymtable}[WIPA]{\WIPA\ Phonetic Symbols}
+\ltidxboth{phonetic}{symbols}
+\ltidxboth{linguistic}{symbols}
+\ltidxboth{dictionary}{symbols}
+\ltidxboth{rotated}{symbols}
+\ltidxboth{upside-down}{symbols}
+\ltidxboth{inverted}{symbols}
+\ltindex{alphabets>phonetic}
+\index{tilde}
+\label{wipa-phonetic}
+\begin{longtable}{*4{ll}}
+\multicolumn{8}{l}{\small\textit{(continued from previous page)}} \\[3ex]
+\endhead
+\endfirsthead
+\\[3ex]
+\multicolumn{8}{r}{\small\textit{(continued on next page)}}
+\endfoot
+\endlastfoot
+\K\babygamma & \K\eng & \K\labdentalnas & \K\schwa \\
+\K\barb & \K\er & \K\latfric & \K\sci \\
+\K\bard & \K\esh & \K\legm & \K\scn \\
+\K\bari & \K[\WSUeth]\eth & \K\legr & \K\scr \\
+\K\barl & \K\flapr & \K\lz & \K\scripta \\
+\K[\WSUbaro]\baro & \K\glotstop & \K\nialpha & \K\scriptg \\
+\K\barp & \K\hookb & \K\nibeta & \K\scriptv \\
+\K\barsci & \K\hookd & \K\nichi & \K\scu \\
+\K\barscu & \K\hookg & \K\niepsilon & \K\scy \\
+\K\baru & \K\hookh & \K\nigamma & \K\slashb \\
+\K\clickb & \K\hookheng & \K\niiota & \K\slashc \\
+\K\clickc & \K\hookrevepsilon & \K\nilambda & \K\slashd \\
+\K\clickt & \K\hv & \K\niomega & \K\slashu \\
+\K\closedniomega & \K\inva & \K\niphi & \K\taild \\
+\K\closedrevepsilon & \K\invf & \K\nisigma & \K\tailinvr \\
+\K\crossb & \K\invglotstop & \K\nitheta & \K\taill \\
+\K\crossd & \K\invh & \K\niupsilon & \K\tailn \\
+\K\crossh & \K\invlegr & \K\nj & \K\tailr \\
+\K\crossnilambda & \K\invm & \K\oo & \K\tails \\
+\K\curlyc & \K\invr & \K[\WSUopeno]\openo & \K\tailt \\
+\K\curlyesh & \K\invscr & \K\reve & \K\tailz \\
+\K\curlyyogh & \K\invscripta & \K\reveject & \K\tesh \\
+\K\curlyz & \K\invv & \K\revepsilon & \K[\WSUthorn]\thorn \\
+\K\dlbari & \K\invw & \K\revglotstop & \K\tildel \\
+\K\dz & \K\invy & \K\scd & \K\yogh \\
+\K\ejective & \K\ipagamma & \K\scg \\
+\end{longtable}
+\end{longsymtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Phonetic Symbols}
+\idxboth{phonetic}{symbols}
+\idxboth{linguistic}{symbols}
+\idxboth{dictionary}{symbols}
+\idxboth{rotated}{symbols}
+\idxboth{upside-down}{symbols}
+\idxboth{inverted}{symbols}
+\index{alphabets>phonetic}
+\label{wasy-phonetics}
+\begin{tabular}{*8l}
+\K\DH & \K\dh & \K\openo \\
+\K\Thorn & \K\inve & \K\thorn \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PHON]{\PHON\ Phonetic Symbols}
+\idxboth{phonetic}{symbols}
+\idxboth{linguistic}{symbols}
+\idxboth{dictionary}{symbols}
+\idxboth{rotated}{symbols}
+\idxboth{upside-down}{symbols}
+\idxboth{inverted}{symbols}
+\index{alphabets>phonetic}
+\label{phon-phonetic}
+\begin{tabular}{*5{ll}}
+\K\barj & \K\flap & \K[\PHONibar]\ibar & \K\rotvara & \K\vari \\
+\K\barlambda & \K\glottal & \K[\PHONopeno]\openo & \K\rotw & \K\varomega \\
+\K\emgma & \K\hausaB & \K\planck & \K\roty & \K\varopeno \\
+\K\engma & \K\hausab & \K\pwedge & \K[\PHONschwa]\schwa & \K[\PHONvod]\vod \\
+\K\enya & \K\hausad & \K\revD & \K[\PHONthorn]\thorn & \K\voicedh \\
+\K\epsi & \K\hausaD & \K\riota & \K\ubar & \K[\PHONyogh]\yogh \\
+\K[\PHONesh]\esh & \K\hausak & \K\rotm & \K\udesc \\
+\K[\PHONeth]\eth & \K\hausaK & \K\rotOmega & \K\vara \\
+\K\fj & \K[\PHONhookd]\hookd & \K\rotr & \K[\PHONvarg]\varg \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PHONFC]{\PHONFC\ Phonetic Symbols}
+\idxboth{phonetic}{symbols}
+\idxboth{linguistic}{symbols}
+\idxboth{dictionary}{symbols}
+\index{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
+ (Table~\vref{fc})
+ \fi % FC
+ but using the same names as
+ \ifTIPA
+ the \TIPA\ characters presented in Table~\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{dictionary}{symbols}
+\idxboth{transliteration}{symbols}
+\idxboth{semitic}{transliteration}
+\index{alphabets>phonetic}
+\label{semtrans-phonetic}
+\begin{tabular}{ll@{\hspace*{3em}}ll}
+\K\Alif & \K\Ayn \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Text-mode Accents}
+\index{accents}
+\label{text-accents}
+\begin{tabular}{*3{ll@{\hspace*{3em}}}ll}
+\Q\" & \Q\` & \Q\d & \Q\r \\
+\Q\' & \QivBAR\ddag & \Qiv\G\ddag & \Q\t \\
+\Q\. & \Q\~ & \Qv\h\S & \Q\u \\
+\Qe[\magicequal][\magicequalname]\= & \Q\b & \Q\H & \Qiv\U\ddag \\
+\Q\^ & \Q\c & \Qt\k$^\dag$ & \Q\v \\
+\end{tabular}
+\par\medskip
+\begin{tabular}{ll@{\hspace*{3em}}ll}
+\Q\newtie$^*$ & \Qc\textcircled
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ Requires the \TC\ package.
+\end{tablenote}
+
+\medskip
+\begin{tablenote}[\dag]
+ Not available in the OT1 \fntenc[OT1]. Use the \pkgname{fontenc}
+ package to select an alternate \fntenc[T1], such as T1.
+\end{tablenote}
+
+\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}
+
+\bigskip
+\begin{tablenote}
+ \index{dotless i=dotless $i~(\imath)$>text mode}
+ \index{dotless j=dotless $j~(\jmath)$>text mode}
+ Also note the existence of \cmdI{\i} and \cmdI{\j}, which produce
+ dotless versions of ``i'' and ``j'' (viz., ``\i'' and ``\j''). These
+ are useful when the accent is supposed to replace the dot. For
+ example, ``\verb|na\"{\i}ve|'' produces a correct ``na\"{\i}ve'',
+ while ``\verb|na\"{i}ve|'' would yield the rather odd-looking
+ ``na\"{i}ve''. (``\verb|na\"{i}ve|'' \emph{does} work in encodings
+ other than OT1, however.)
+\end{tablenote}
+\end{symtable}
+
+
+\begin{longsymtable}[TIPA]{\TIPA\ Text-mode Accents}
+\ltindex{accents}
+\index{tilde}
+\label{tipa-accents}
+\renewcommand{\arraystretch}{1.25} % Keep high and low accents from touching.
+\begin{longtable}{ll}
+\multicolumn{2}{l}{\small\textit{(continued from previous page)}} \\[3ex]
+\endhead
+\endfirsthead
+\\[3ex]
+\multicolumn{2}{r}{\small\textit{(continued on next page)}}
+\endfoot
+\endlastfoot
+\Q\textacutemacron \\
+\Q\textacutewedge \\
+\Q\textadvancing \\
+\Q\textbottomtiebar \\
+\Q\textbrevemacron \\
+\Q\textcircumacute \\
+\Q\textcircumdot \\
+\Q\textdotacute \\
+\Q\textdotbreve \\
+\Q\textdotbreve \\
+\Q\textdoublegrave \\
+\Q\textdoublevbaraccent \\
+\Q\textgravecircum \\
+\Q\textgravedot \\
+\Q\textgravemacron \\
+\Q\textgravemid \\
+\Q\textinvsubbridge \\
+\Q\textlowering \\
+\Q\textmidacute \\
+\Q\textovercross \\
+\Q\textoverw \\
+\Q\textpolhook \\
+\Q\textraising \\
+\Q\textretracting \\
+\Q\textringmacron \\
+\Q\textroundcap \\
+\Q\textseagull \\
+\Q\textsubacute \\
+\Q\textsubarch \\
+\Q\textsubbar \\
+\Q\textsubbridge \\
+\Q\textsubcircum \\
+\Q\textsubdot \\
+\Q\textsubgrave \\
+\Q\textsublhalfring \\
+\Q\textsubplus \\
+\Q\textsubrhalfring \\
+\Q\textsubring \\
+\Q\textsubsquare \\
+\Q\textsubtilde \\
+\Q\textsubumlaut \\
+\Q\textsubw \\
+\Q\textsubwedge \\
+\Q\textsuperimposetilde \\
+\Q\textsyllabic \\
+\Q\texttildedot \\
+\Q\texttoptiebar \\
+\Q\textvbaraccent \\
+\end{longtable}
+
+\begin{tablenote}
+ \TIPA\ defines shortcut sequences for many of the above.
+ \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@{\hspace*{3em}}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}
+\label{phon-accents}
+\renewcommand{\arraystretch}{1.25} % Keep high and low accents from touching.
+\begin{tabular}{*3{ll}}
+\Q\hill & \Q\rc & \Q\ut \\
+\Q\od & \Q\syl \\
+\Q\ohill & \Q\td \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ \begin{morespacing}{1pt}
+ The \PHON\ package provides a few additional macros for linguistic
+ accents. \cmd{\acbar} and \cmd{\acarc} compose characters with
+ multiple accents; for example, \verb+\acbar{\'}{a}+ produces
+ ``\acbar{\'}{a}'' and \verb+\acarc{\"}{e}+ produces
+ ``\acbar{\"}{e}''. \cmd{\labvel} joins two characters with an
+ arc: \verb+\labvel{mn}+~$\rightarrow$ ``\labvel{mn}''.
+ \cmd{\upbar} is intended to go between characters as in
+ ``\verb+x\upbar{}y''+~$\rightarrow$ ``x\upbar{}y''. Lastly,
+ \cmd{\uplett} behaves like \cmd{\textsuperscript} but uses a
+ smaller font. Contrast ``\verb+p\uplett{h}''+~$\rightarrow$
+ ``p\uplett{h}'' with ``\verb+p\textsuperscript{h}''+~$\rightarrow$
+ ``p\textsuperscript{h}''.
+ \end{morespacing}
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[METRE]{\METRE\ Text-mode Accents}
+\index{accents}
+\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 Table~\vref{text-accents}) but
+ using the same names as
+ \ifTIPA
+ the \TIPA\ accents presented in Table~\vref{tipa-accents}.
+ \else
+ the \TIPA\ package.
+ \fi % TIPA
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ARCS]{\ARCS\ Text-mode Accents}
+\index{accents}
+\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}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[SMTR]{\SMTR\ Accents}
+\index{accents}
+\idxboth{semitic}{transliteration}
+\idxboth{rotated}{symbols}
+\idxboth{upside-down}{symbols}
+\idxboth{inverted}{symbols}
+\label{semtrans-accents}
+\begin{tabular}{ll@{\hspace*{3em}}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}[WIPA]{\WIPA\ Diacritics}
+\index{accents}
+\index{tilde}
+\label{wipa-diacritics}
+\renewcommand{\arraystretch}{1.25} % Keep high and low accents from touching.
+\begin{tabular}{*5{ll}}
+\K\ain & \K\leftp & \K\overring & \K\stress & \K\underwedge \\
+\K\corner & \K\leftt & \K\polishhook & \K\syllabic & \K\upp \\
+\K\downp & \K\length & \K\rightp & \K\underdots & \K\upt \\
+\K\downt & \K\midtilde & \K\rightt & \K\underring \\
+\K\halflength & \K\open & \K\secstress & \K\undertilde \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ The \WIPA\ package defines all of the above as ordinary characters,
+ not as accents. However, it does provide \cmd{\diatop} and
+ \cmd{\diaunder} commands, which are used to compose diacritics with
+ other characters. For example, \verb+\diatop[\overring|a]+ produces
+ ``\diatop[\overring|a]'', and \verb+\diaunder[\underdots|a]+
+ produces ``\diaunder[\underdots|a]''. \seedocs{\WIPA}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{\TC\ Diacritics}
+\index{accents}
+\label{tc-accent-chars}
+\begin{tabular}{*3{ll}}
+\K\textacutedbl & \K\textasciicaron & \K\textasciimacron \\
+\K\textasciiacute & \K\textasciidieresis & \K\textgravedbl \\
+\K\textasciibreve & \K\textasciigrave \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ The \TC\ package defines all of the above as ordinary characters,
+ not as accents.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{\TC\ Currency Symbols}
+\idxboth{currency}{symbols}
+\idxboth{monetary}{symbols}
+\index{euro signs}
+\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 signs}
+\label{marv-currency}
+\begin{tabular}{*4{ll}ll}
+\K\Denarius & \K\EUR & \K\EURdig & \K\EURtm & \K\Pfund \\
+\K\Ecommerce & \K\EURcr & \K\EURhv & \K\EyesDollar & \K\Shilling \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ The different euro signs are meant to be 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
+ Table~\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}[WASY]{\WASY\ Currency Symbols}
+\idxboth{currency}{symbols}
+\idxboth{monetary}{symbols}
+\label{wasy-currency}
+\begin{tabular}{*2{ll}}
+\K\cent & \K\currency \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[EUSYM]{\EUSYM\ Euro Signs}
+\idxboth{currency}{symbols}
+\idxboth{monetary}{symbols}
+\index{euro signs}
+\label{eurosym-euros}
+\begin{tabular}{*4{ll}}
+\K\geneuro & \K\geneuronarrow & \K\geneurowide & \K\officialeuro \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \cmd{\euro} is automatically mapped to one of the above---by
+ default, \cmdI{\officialeuro}---based on a \EUSYM\ package option.
+ \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}{\TC\ Legal Symbols}
+\index{copyright}
+\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
+\medskip
+\begin{tablenote}
+ \hspace*{15pt}%
+ See \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tradesyms}
+ for solutions to common problems that occur when using these symbols
+ (e.g.,~getting a~``\textcircled{r}'' when you expected to get
+ a~``\textregistered'').
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[CCLIC]{\CCLIC\ Creative Commons License Icons}
+\index{Creative Commons licenses}
+\index{copyright}
+\idxboth{legal}{symbols}
+\label{creativecommons}
+\begin{tabular}{*4{ll@{\hspace*{3em}}}ll}
+\K\cc & \K\ccby & \K\ccnc$^*$ & \K\ccnd & \K\ccsa$^*$ \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ These symbols utilize the \pkgname{rotating} package and therefore
+ display improperly in most DVI\index{DVI} viewers.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{\TC\ Old-style Numerals}
+\idxboth{old-style}{digits}
+\label{old-style-nums}
+\begin{tabular}{*3{ll}}
+\K\textzerooldstyle & \K\textfouroldstyle & \K\texteightoldstyle \\
+\K\textoneoldstyle & \K\textfiveoldstyle & \K\textnineoldstyle \\
+\K\texttwooldstyle & \K\textsixoldstyle \\
+\K\textthreeoldstyle & \K\textsevenoldstyle \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ Rather than use the bulky \cmd{\textoneoldstyle},
+ \cmd{\texttwooldstyle}, etc.\ commands shown above, consider using
+ \cmd{\oldstylenums}\verb|{|$\ldots$\verb|}| to typeset an old-style
+ number.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{Miscellaneous \TC\ Symbols}
+\idxboth{musical}{symbols}
+\index{tilde}
+\label{tc-misc}
+\begin{tabular}{lll@{\qquad}lll}
+\V\textasteriskcentered & \V[\ltextordfeminine]\textordfeminine \\
+\V\textbardbl & \V[\ltextordmasculine]\textordmasculine \\
+\V\textbigcircle & \V\textparagraph$^*$ \\
+\V\textblank & \V\textperiodcentered \\
+\V\textbrokenbar & \V\textpertenthousand \\
+\V\textbullet & \V\textperthousand \\
+\V\textdagger$^*$ & \V\textpilcrow \\
+\V\textdaggerdbl$^*$ & \V\textquotesingle \\
+\V\textdblhyphen & \V\textquotestraightbase \\
+\V\textdblhyphenchar & \V\textquotestraightdblbase \\
+\V\textdiscount & \V\textrecipe \\
+\V\textestimated & \V\textreferencemark \\
+\V\textinterrobang & \V\textsection$^*$ \\
+\V\textinterrobangdown & \V\textthreequartersemdash \\
+\V\textmusicalnote & \V\texttildelow \\
+\V\textnumero & \V\texttwelveudash \\
+\V\textopenbullet \\
+\end{tabular}
+
+\bigskip
+\twosymbolmessage
+
+\bigskip
+\usetextmathmessage[*]
+
+\end{symtable}
+
+
+\begin{symtable}[WASY]{Miscellaneous \WASY\ Text-mode Symbols}
+\label{wasy-text}
+\begin{tabular}{ll}
+\K\permil \\
+\end{tabular}
+\end{symtable}
+
+
+\idxbothend{body-text}{symbols}
+
+
+\section{Mathematical symbols}
+\label{math-symbols}
+\idxbothbegin{mathematical}{symbols}
+
+Most, but not all, of the symbols in this section are math-mode only.
+That is, they yield a ``\texttt{Missing~\$ inserted}''\index{Missing
+\$ inserted=``\texttt{Missing~\$ inserted}''} error message if not
+used within \verb|$|$\ldots$\verb|$|, \verb|\[|$\ldots$\verb|\]|, or
+another math-mode environment. Operators marked as ``variable-sized''
+are taller in displayed formulas, shorter in in-text formulas, and
+possibly shorter still when used in various levels of superscripts or
+subscripts.
+
+% 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 Table~\ref{alphabets} rather than with an explicit symbol
+command. Look there first if you need a symbol for a transform,
+number set, or some other alphanumeric.
+
+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}),
+``$\bot$''~(\cmdX{\bot}),
+``$\nleftrightarrow$''~(\cmdX{\nleftrightarrow}), and
+``\textreferencemark''~(\cmdI{\textreferencemark}). Because of the
+lack of notational consensus, it is probably better to spell out
+``Contradiction!''\ than to use a symbol for this purpose. Similarly,
+discussions on \ctt have revealed that there are a variety of ways to
+indicate the mathematical notion of ``is
+defined\idxboth{definition}{symbols} as''. Common candidates include
+``$\triangleq$''~(\cmdX{\triangleq}), ``$\equiv$''~(\cmdX{\equiv}),
+``$\coloneqq$''~(\cmdX{\coloneqq}), and ``$\stackrel{\text{\tiny
+def}}{=}$''~(\cmd{\stackrel}\verb|{|\cmd{\text}\verb|{\tiny|
+\verb|def}}{=}|). See also the example of \cmd{\equalsfill}
+\vpageref[below]{equalsfill-ex}. Depending upon the context,
+disjoint\index{disjoint union} union may be represented as
+``$\coprod$''~(\cmdX{\coprod}), ``$\sqcup$''~(\cmdX{\sqcup}),
+``$\dotcup$''~(\cmdX{\dotcup}), ``$\oplus$''~(\cmdX{\oplus}), 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{math-text}
+\begin{tabular}{*3{ll}}
+\X\mathdollar & \X\mathparagraph & \X\mathsterling \\
+\X\mathellipsis & \X\mathsection & \X\mathunderscore \\
+\end{tabular}
+
+\bigskip
+\usetextmathmessage
+
+\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}
+\label{bin}
+\begin{tabular}{*4{ll}}
+\X\amalg & \X\cup & \X\oplus & \X\times \\
+\X\ast & \X\dagger & \X\oslash & \X\triangleleft \\
+\X\bigcirc & \X\ddagger & \X\otimes & \X\triangleright \\
+\X\bigtriangledown & \X\diamond & \X\pm & \X\unlhd$^*$ \\
+\X\bigtriangleup & \X\div & \X\rhd$^*$ & \X\unrhd$^*$ \\
+\X\bullet & \X\lhd$^*$ & \X\setminus & \X\uplus \\
+\X\cap & \X\mp & \X\sqcap & \X\vee \\
+\X\cdot & \X\odot & \X\sqcup & \X\wedge \\
+\X\circ & \X\ominus & \X\star & \X\wr \\
+\end{tabular}
+
+\bigskip
+\notpredefinedmessage
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Binary Operators}
+\idxboth{binary}{operators}
+\index{semidirect products}
+\label{ams-bin}
+\begin{tabular}{*3{ll}}
+\X\barwedge & \X\circledcirc & \X\intercal \\
+\X\boxdot & \X\circleddash & \X\leftthreetimes \\
+\X\boxminus & \X\Cup & \X\ltimes \\
+\X\boxplus & \X\curlyvee & \X\rightthreetimes \\
+\X\boxtimes & \X\curlywedge & \X\rtimes \\
+\X\Cap & \X\divideontimes & \X\smallsetminus \\
+\X\centerdot & \X\dotplus & \X\veebar \\
+\X\circledast & \X\doublebarwedge \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ST]{\ST\ Binary Operators}
+\idxboth{binary}{operators}
+\label{st-bin}
+\begin{tabular}{*3{ll}}
+\X\baro & \X\interleave & \X\varoast \\
+\X\bbslash & \X\leftslice & \X\varobar \\
+\X\binampersand & \X\merge & \X\varobslash \\
+\X\bindnasrepma & \X\minuso & \X\varocircle \\
+\X\boxast & \X\moo & \X\varodot \\
+\X\boxbar & \X\nplus & \X\varogreaterthan \\
+\X\boxbox & \X\obar & \X\varolessthan \\
+\X\boxbslash & \X\oblong & \X\varominus \\
+\X\boxcircle & \X\obslash & \X\varoplus \\
+\X\boxdot & \X\ogreaterthan & \X\varoslash \\
+\X\boxempty & \X\olessthan & \X\varotimes \\
+\X\boxslash & \X\ovee & \X\varovee \\
+\X\curlyveedownarrow & \X\owedge & \X\varowedge \\
+\X\curlyveeuparrow & \X\rightslice & \X\vartimes \\
+\X\curlywedgedownarrow & \X\sslash & \X\Ydown \\
+\X\curlywedgeuparrow & \X\talloblong & \X\Yleft \\
+\X\fatbslash & \X\varbigcirc & \X\Yright \\
+\X\fatsemi & \X\varcurlyvee & \X\Yup \\
+\X\fatslash & \X\varcurlywedge \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Binary Operators}
+\idxboth{binary}{operators}
+\label{wasy-bin}
+\begin{tabular}{*4{ll}}
+\X\lhd & \X\ocircle & \X\RHD & \X\unrhd \\
+\X\LHD & \X\rhd & \X\unlhd \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Binary Operators}
+\idxboth{binary}{operators}
+\label{txpx-bin}
+\begin{tabular}{*3{ll}}
+\X\circledbar & \X\circledwedge & \X\medcirc \\
+\X\circledbslash & \X\invamp & \X\sqcapplus \\
+\X\circledvee & \X\medbullet & \X\sqcupplus \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Binary Operators}
+\idxboth{binary}{operators}
+\index{asterisks}
+\index{semidirect products}
+\label{abx-bin}
+\begin{tabular}{*3{ll}}
+\X[\ABXast]\ast & \X[\ABXcurlywedge]\curlywedge & \X[\ABXsqcap]\sqcap \\
+\X[\ABXAsterisk]\Asterisk & \X[\ABXdivdot]\divdot & \X[\ABXsqcup]\sqcup \\
+\X[\ABXbarwedge]\barwedge & \X[\ABXdivideontimes]\divideontimes & \X[\ABXsqdoublecap]\sqdoublecap \\
+\X[\ABXbigstar]\bigstar & \X[\ABXdotdiv]\dotdiv & \X[\ABXsqdoublecup]\sqdoublecup \\
+\X[\ABXbigvarstar]\bigvarstar & \X[\ABXdotplus]\dotplus & \X[\ABXsquare]\square \\
+\X[\ABXblackdiamond]\blackdiamond & \X[\ABXdottimes]\dottimes & \X[\ABXsquplus]\squplus \\
+\X[\ABXcap]\cap & \X[\ABXdoublebarwedge]\doublebarwedge & \X[\ABXudot]\udot \\
+\X[\ABXcircplus]\circplus & \X[\ABXdoublecap]\doublecap & \X[\ABXuplus]\uplus \\
+\X[\ABXcoasterisk]\coasterisk & \X[\ABXdoublecup]\doublecup & \X[\ABXvarstar]\varstar \\
+\X[\ABXcoAsterisk]\coAsterisk & \X[\ABXltimes]\ltimes & \X[\ABXvee]\vee \\
+\X[\ABXconvolution]\convolution & \X[\ABXpluscirc]\pluscirc & \X[\ABXveebar]\veebar \\
+\X[\ABXcup]\cup & \X[\ABXrtimes]\rtimes & \X[\ABXveedoublebar]\veedoublebar \\
+\X[\ABXcurlyvee]\curlyvee & \X[\ABXsqbullet]\sqbullet & \X[\ABXwedge]\wedge \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ Many of the above glyphs go by multiple names.
+ \cmdI[$\string\ABXcenterdot$]{\centerdot} is equivalent to
+ \cmdI[$\string\ABXsqbullet$]{\sqbullet}, and
+ \cmdI[$\string\ABXast$]{\ast} is equivalent to \cmdI{*}.
+ \cmdI[$\string\ABXasterisk$]{\asterisk} produces the same glyph as
+ \cmdI[$\string\ABXast$]{\ast}, but as an ordinary symbol, not a
+ binary operator. Similarly, \cmdI[$\string\ABXbigast$]{\bigast}
+ produces a large-operator version of the
+ \cmdI[$\string\ABXAsterisk$]{\Asterisk} binary operator, and
+ \cmdI[$\string\ABXbigcoast$]{\bigcoast} produces a large-operator
+ version of the \cmdI[$\string\ABXcoAsterisk$]{\coAsterisk} binary
+ operator.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Binary Operators}
+\idxboth{binary}{operators}
+\label{mns-bin}
+\begin{tabular}{*3{ll}}
+\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{tabular}
+
+\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{symtable}
+
+
+\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 Table~\vref{ams-bin}.
+\else
+ The \MDES\ package additionally provides versions of each of the
+ \AMS\ binary operators.
+\fi
+\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$^*$ \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ \cmdI[\&]{\with} differs from~``\&'' 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}[ULSY]{\ULSY\ Geometric Binary Operators}
+\idxboth{binary}{operators}
+\label{ulsy-geometric-bin}
+\begin{tabular}{ll}
+\K\odplus \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Geometric Binary Operators}
+\idxboth{binary}{operators}
+\label{abx-geometric-bin}
+\begin{tabular}{*3{ll}}
+\X[\ABXblacktriangledown]\blacktriangledown & \X[\ABXboxright]\boxright & \X[\ABXominus]\ominus \\
+\X[\ABXblacktriangleleft]\blacktriangleleft & \X[\ABXboxslash]\boxslash & \X[\ABXoplus]\oplus \\
+\X[\ABXblacktriangleright]\blacktriangleright & \X[\ABXboxtimes]\boxtimes & \X[\ABXoright]\oright \\
+\X[\ABXblacktriangleup]\blacktriangleup & \X[\ABXboxtop]\boxtop & \X[\ABXoslash]\oslash \\
+\X[\ABXboxasterisk]\boxasterisk & \X[\ABXboxtriangleup]\boxtriangleup & \X[\ABXotimes]\otimes \\
+\X[\ABXboxbackslash]\boxbackslash & \X[\ABXboxvoid]\boxvoid & \X[\ABXotop]\otop \\
+\X[\ABXboxbot]\boxbot & \X[\ABXoasterisk]\oasterisk & \X[\ABXotriangleup]\otriangleup \\
+\X[\ABXboxcirc]\boxcirc & \X[\ABXobackslash]\obackslash & \X[\ABXovoid]\ovoid \\
+\X[\ABXboxcoasterisk]\boxcoasterisk & \X[\ABXobot]\obot & \X[\ABXsmalltriangledown]\smalltriangledown \\
+\X[\ABXboxdiv]\boxdiv & \X[\ABXocirc]\ocirc & \X[\ABXsmalltriangleleft]\smalltriangleleft \\
+\X[\ABXboxdot]\boxdot & \X[\ABXocoasterisk]\ocoasterisk & \X[\ABXsmalltriangleright]\smalltriangleright \\
+\X[\ABXboxleft]\boxleft & \X[\ABXodiv]\odiv & \X[\ABXsmalltriangleup]\smalltriangleup \\
+\X[\ABXboxminus]\boxminus & \X[\ABXodot]\odot \\
+\X[\ABXboxplus]\boxplus & \X[\ABXoleft]\oleft \\
+\end{tabular}
+\end{symtable}
+
+
+
+\begin{symtable}[MNS]{\MNS\ Geometric Binary Operators}
+\idxboth{binary}{operators}
+\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{symtable}{Variable-sized Math Operators}
+\idxboth{variable-sized}{symbols}
+\index{integrals}
+\label{op}
+\renewcommand{\arraystretch}{1.75} % Keep tall symbols from touching.
+\begin{tabular}{*3{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
+\R\bigcap & \R\bigotimes & \R\bigwedge & \R\prod \\
+\R\bigcup & \R\bigsqcup & \R\coprod & \R\sum \\
+\R\bigodot & \R\biguplus & \R\int \\
+\R\bigoplus & \R\bigvee & \R\oint \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Variable-sized Math Operators}
+\idxboth{variable-sized}{symbols}
+\index{integrals}
+\label{ams-large}
+\renewcommand{\arraystretch}{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}
+\index{integrals}
+\label{wasy-large}
+\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
+\begin{tabular}{*2{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
+\R[\varint]\int$^\dag$ & \R\iint & \R\iiint \\
+\R\varint$^*$ & \R\varoint$^*$ & \R\oiint \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ None of the preceding symbols are defined when \WASY\ is passed the
+ \optname{wasysym}{nointegrals} option.
+\end{tablenote}
+
+\medskip
+\begin{tablenote}[*]
+ Not defined when \WASY\ is passed the \optname{wasysym}{integrals} option.
+\end{tablenote}
+
+\medskip
+\begin{tablenote}[\dag]
+ Defined only when \WASY\ is passed the \optname{wasysym}{integrals}
+ option. Otherwise, the default \latex \cmdX{\int} glyph (as shown
+ in Table~\ref{op}) is used.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Variable-sized Math Operators}
+\idxboth{variable-sized}{symbols}
+\index{integrals}
+\label{abx-large}
+\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
+\begin{tabular}{*2{l@{$\:$}ll@{\qquad}}l@{$\:$}ll}
+\R[\ABXbigcurlyvee]\bigcurlyvee & \R[\ABXbigboxslash]\bigboxslash & \R[\ABXbigoright]\bigoright \\
+\R[\ABXbigsqcap]\bigsqcap & \R[\ABXbigboxtimes]\bigboxtimes & \R[\ABXbigoslash]\bigoslash \\
+\R[\ABXbigcurlywedge]\bigcurlywedge & \R[\ABXbigboxtop]\bigboxtop & \R[\ABXbigotop]\bigotop \\
+\R[\ABXbigboxasterisk]\bigboxasterisk & \R[\ABXbigboxtriangleup]\bigboxtriangleup & \R[\ABXbigotriangleup]\bigotriangleup \\
+\R[\ABXbigboxbackslash]\bigboxbackslash & \R[\ABXbigboxvoid]\bigboxvoid & \R[\ABXbigovoid]\bigovoid \\
+\R[\ABXbigboxbot]\bigboxbot & \R[\ABXbigcomplementop]\bigcomplementop & \R[\ABXbigplus]\bigplus \\
+\R[\ABXbigboxcirc]\bigboxcirc & \R[\ABXbigoasterisk]\bigoasterisk & \R[\ABXbigsquplus]\bigsquplus \\
+\R[\ABXbigboxcoasterisk]\bigboxcoasterisk & \R[\ABXbigobackslash]\bigobackslash & \R[\ABXbigtimes]\bigtimes \\
+\R[\ABXbigboxdiv]\bigboxdiv & \R[\ABXbigobot]\bigobot & \R[\ABXiiintop]\iiint \\
+\R[\ABXbigboxdot]\bigboxdot & \R[\ABXbigocirc]\bigocirc & \R[\ABXiintop]\iint \\
+\R[\ABXbigboxleft]\bigboxleft & \R[\ABXbigocoasterisk]\bigocoasterisk & \R[\ABXintop]\int \\
+\R[\ABXbigboxminus]\bigboxminus & \R[\ABXbigodiv]\bigodiv & \R[\ABXoiintop]\oiint \\
+\R[\ABXbigboxplus]\bigboxplus & \R[\ABXbigoleft]\bigoleft & \R[\ABXointop]\oint \\
+\R[\ABXbigboxright]\bigboxright & \R[\ABXbigominus]\bigominus \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Variable-sized Math Operators}
+\idxboth{variable-sized}{symbols}
+\index{integrals}
+\label{txpx-large}
+\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
+\begin{tabular}{l@{$\:$}ll@{\hspace{4em}}l@{$\:$}ll}
+\R\bigsqcapplus & \R\ointclockwise \\
+\R\bigsqcupplus & \R\ointctrclockwise \\
+\R\fint & \R\sqiiint \\
+\R\idotsint & \R\sqiint \\
+\R\iiiint & \R\sqint \\
+\R\iiint & \R\varoiiintclockwise \\
+\R\iint & \R\varoiiintctrclockwise \\
+\R\oiiintclockwise & \R\varoiintclockwise \\
+\R\oiiintctrclockwise & \R\varoiintctrclockwise \\
+\R\oiiint & \R\varointclockwise \\
+\R\oiintclockwise & \R\varointctrclockwise \\
+\R\oiintctrclockwise & \R\varprod \\
+\R\oiint \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ES]{\ES\ Variable-sized Math Operators}
+\idxboth{variable-sized}{symbols}
+\index{integrals}
+\label{es-large}
+\renewcommand{\arraystretch}{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}[MNS]{\MNS\ Variable-sized Math Operators}
+\idxboth{variable-sized}{symbols}
+\index{integrals}
+\label{mns-large}
+\renewcommand{\arraystretch}{1.75} % Keep tall symbols from touching.
+\begin{tabular}{*2{c@{\quad}cl@{\qquad}}c@{\quad}cl}
+\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{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ \MNS\ defines \cmdI[\MNSdbigcupplus]{\biguplus} as a synonym for
+ \cmdI[\MNSdbigcupplus]{\bigcupplus}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MDES]{\MDES\ Variable-sized Math Operators}
+\idxboth{variable-sized}{symbols}
+\index{integrals}
+\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}[CMLL]{\CMLL\ Large Math Operators}
+\idxboth{linear 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}
+\end{symtable}
+
+
+\begin{symtable}{Binary Relations}
+\idxboth{relational}{symbols}
+\index{tacks}
+\label{rel}
+\begin{tabular}{*4{ll}}
+\X\approx & \X\equiv & \X\perp & \X\smile \\
+\X\asymp & \X\frown & \X\prec & \X\succ \\
+\X\bowtie & \X\Join$^*$ & \X\preceq & \X\succeq \\
+\X\cong & \X\mid & \X\propto & \X\vdash \\
+\X\dashv & \X\models & \X\sim \\
+\X\doteq & \X\parallel & \X\simeq \\
+\end{tabular}
+
+\bigskip
+\notpredefinedmessageABX
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Binary Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\label{ams-rel}
+\begin{tabular}{*3{ll}}
+\X\approxeq & \X\eqcirc & \X\succapprox \\
+\X\backepsilon & \X\fallingdotseq & \X\succcurlyeq \\
+\X\backsim & \X\multimap & \X\succsim \\
+\X\backsimeq & \X\pitchfork & \X\therefore \\
+\X\because & \X\precapprox & \X\thickapprox \\
+\X\between & \X\preccurlyeq & \X\thicksim \\
+\X\Bumpeq & \X\precsim & \X\varpropto \\
+\X\bumpeq & \X\risingdotseq & \X\Vdash \\
+\X\circeq & \X\shortmid & \X\vDash \\
+\X\curlyeqprec & \X\shortparallel & \X\Vvdash \\
+\X\curlyeqsucc & \X\smallfrown & \\
+\X\doteqdot & \X\smallsmile & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Negated Binary Relations}
+\index{binary relations>negated}
+\index{relational symbols>negated binary}
+\label{ams-nrel}
+\begin{tabular}{*3{ll}}
+\X\ncong & \X\nshortparallel & \X\nVDash \\
+\X\nmid & \X\nsim & \X\precnapprox \\
+\X\nparallel & \X\nsucc & \X\precnsim \\
+\X\nprec & \X\nsucceq & \X\succnapprox \\
+\X\npreceq & \X\nvDash & \X\succnsim \\
+\X\nshortmid & \X\nvdash \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ST]{\ST\ Binary Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\label{st-rel}
+\begin{tabular}{*2{ll}}
+\X\inplus & \X\niplus \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Binary Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\label{wasy-rel}
+\begin{tabular}{*3{ll}}
+\X\invneg & \X\leadsto & \X\wasypropto \\
+\X\Join & \X\logof \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Binary Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\label{txpx-rel}
+\begin{tabular}{*3{ll}}
+\X\circledgtr & \X\lJoin & \X\opentimes \\
+\X\circledless & \X\lrtimes & \X\Perp \\
+\X\colonapprox & \X\multimap & \X\preceqq \\
+\X\Colonapprox & \X\multimapboth & \X\precneqq \\
+\X\coloneq & \X\multimapbothvert & \X\rJoin \\
+\X\Coloneq & \X\multimapdot & \X\strictfi \\
+\X\Coloneqq & \X\multimapdotboth & \X\strictif \\
+\X\coloneqq$^*$ & \X\multimapdotbothA & \X\strictiff \\
+\X\Colonsim & \X\multimapdotbothAvert & \X\succeqq \\
+\X\colonsim & \X\multimapdotbothB & \X\succneqq \\
+\X\Eqcolon & \X\multimapdotbothBvert & \X\varparallel \\
+\X\eqcolon & \X\multimapdotbothvert & \X\varparallelinv \\
+\X\eqqcolon & \X\multimapdotinv & \X\VvDash \\
+\X\Eqqcolon & \X\multimapinv \\
+\X\eqsim & \X\openJoin \\
+\end{tabular}
+
+\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}
+\index{binary relations}
+\index{relational symbols>binary}
+\label{mns-rel}
+\begin{longtable}{*4{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[\MNSeqcirc]\eqcirc & \K[\MNSnwfree]\nwfree & \K[\MNSshortparallel]\shortparallel \\
+\K[\MNSapproxeq]\approxeq & \K[\MNSeqdot]\eqdot & \K[\MNSnwmodels]\nwmodels & \K[\MNSsim]\sim \\
+\K[\MNSbackapprox]\backapprox & \K[\MNSeqsim]\eqsim & \K[\MNSnwModels]\nwModels & \K[\MNSsimeq]\simeq \\
+\K[\MNSbackapproxeq]\backapproxeq & \K[\MNSequal]\equal & \K[\MNSnwsecrossing]\nwsecrossing & \K[\MNSsucc]\succ \\
+\K[\MNSbackcong]\backcong & \K[\MNSequalclosed]\equalclosed & \K[\MNSnwseline]\nwseline & \K[\MNSsuccapprox]\succapprox \\
+\K[\MNSbackeqsim]\backeqsim & \K[\MNSequiv]\equiv & \K[\MNSNwseline]\Nwseline & \K[\MNSsucccurlyeq]\succcurlyeq \\
+\K[\MNSbacksim]\backsim & \K[\MNSequivclosed]\equivclosed & \K[\MNSnwvdash]\nwvdash & \K[\MNSsucceq]\succeq \\
+\K[\MNSbacksimeq]\backsimeq & \K[\MNSfallingdotseq]\fallingdotseq & \K[\MNSnwVdash]\nwVdash & \K[\MNSsuccsim]\succsim \\
+\K[\MNSbacktriplesim]\backtriplesim & \K[\MNShateq]\hateq & \K[\MNSprec]\prec & \K[\MNSswfootline]\swfootline \\
+\K[\MNSbetween]\between & \K[\MNShcrossing]\hcrossing & \K[\MNSprecapprox]\precapprox & \K[\MNSswfree]\swfree \\
+\K[\MNSbumpeq]\bumpeq & \K[\MNSleftfootline]\leftfootline & \K[\MNSpreccurlyeq]\preccurlyeq & \K[\MNSswmodels]\swmodels \\
+\K[\MNSBumpeq]\Bumpeq & \K[\MNSleftfree]\leftfree & \K[\MNSpreceq]\preceq & \K[\MNSswModels]\swModels \\
+\K[\MNScirceq]\circeq & \K[\MNSleftmodels]\leftmodels & \K[\MNSprecsim]\precsim & \K[\MNSswvdash]\swvdash \\
+\K[\MNSclosedequal]\closedequal & \K[\MNSleftModels]\leftModels & \K[\MNSrightfootline]\rightfootline & \K[\MNSswVdash]\swVdash \\
+\K[\MNSclosedprec]\closedprec & \K[\MNSleftpropto]\leftpropto & \K[\MNSrightfree]\rightfree & \K[\MNStriplesim]\triplesim \\
+\K[\MNSclosedsucc]\closedsucc & \K[\MNSleftrightline]\leftrightline & \K[\MNSrightmodels]\rightmodels & \K[\MNSupdownline]\updownline \\
+\K[\MNScong]\cong & \K[\MNSLeftrightline]\Leftrightline & \K[\MNSrightModels]\rightModels & \K[\MNSUpdownline]\Updownline \\
+\K[\MNScurlyeqprec]\curlyeqprec & \K[\MNSleftslice]\leftslice & \K[\MNSrightpropto]\rightpropto & \K[\MNSupfootline]\upfootline \\
+\K[\MNScurlyeqsucc]\curlyeqsucc & \K[\MNSleftvdash]\leftvdash & \K[\MNSrightslice]\rightslice & \K[\MNSupfree]\upfree \\
+\K[\MNSdoteq]\doteq & \K[\MNSleftVdash]\leftVdash & \K[\MNSrightvdash]\rightvdash & \K[\MNSupmodels]\upmodels \\
+\K[\MNSDoteq]\Doteq & \K[\MNSnefootline]\nefootline & \K[\MNSrightVdash]\rightVdash & \K[\MNSupModels]\upModels \\
+\K[\MNSdownfootline]\downfootline & \K[\MNSnefree]\nefree & \K[\MNSrisingdotseq]\risingdotseq & \K[\MNSuppropto]\uppropto \\
+\K[\MNSdownfree]\downfree & \K[\MNSnemodels]\nemodels & \K[\MNSsefootline]\sefootline & \K[\MNSupvdash]\upvdash \\
+\K[\MNSdownmodels]\downmodels & \K[\MNSneModels]\neModels & \K[\MNSsefree]\sefree & \K[\MNSupVdash]\upVdash \\
+\K[\MNSdownModels]\downModels & \K[\MNSneswline]\neswline & \K[\MNSsemodels]\semodels & \K[\MNSvcrossing]\vcrossing \\
+\K[\MNSdownpropto]\downpropto & \K[\MNSNeswline]\Neswline & \K[\MNSseModels]\seModels & \K[\MNSVvdash]\Vvdash \\
+\K[\MNSdownvdash]\downvdash & \K[\MNSnevdash]\nevdash & \K[\MNSseparated]\separated & \\
+\K[\MNSdownVdash]\downVdash & \K[\MNSneVdash]\neVdash & \K[\MNSsevdash]\sevdash & \\
+\K[\MNSeqbump]\eqbump & \K[\MNSnwfootline]\nwfootline & \K[\MNSseVdash]\seVdash & \\
+\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[\MNSneswline]\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}
+\index{binary relations>negated}
+\index{relational symbols>negated binary}
+\label{mns-rrel}
+\begin{longtable}{*4{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[\MNSneqsim]\neqsim & \K[\MNSnnwModels]\nnwModels & \K[\MNSnsucc]\nsucc \\
+\K[\MNSnapproxeq]\napproxeq & \K[\MNSnequal]\nequal & \K[\MNSnnwseline]\nnwseline & \K[\MNSnsuccapprox]\nsuccapprox \\
+\K[\MNSnbackapprox]\nbackapprox & \K[\MNSnequalclosed]\nequalclosed & \K[\MNSnNwseline]\nNwseline & \K[\MNSnsucccurlyeq]\nsucccurlyeq \\
+\K[\MNSnbackapproxeq]\nbackapproxeq & \K[\MNSnequiv]\nequiv & \K[\MNSnnwvdash]\nnwvdash & \K[\MNSnsucceq]\nsucceq \\
+\K[\MNSnbackcong]\nbackcong & \K[\MNSnequivclosed]\nequivclosed & \K[\MNSnnwVdash]\nnwVdash & \K[\MNSnsuccsim]\nsuccsim \\
+\K[\MNSnbackeqsim]\nbackeqsim & \K[\MNSneswcrossing]\neswcrossing & \K[\MNSnprec]\nprec & \K[\MNSnswfootline]\nswfootline \\
+\K[\MNSnbacksim]\nbacksim & \K[\MNSnfallingdotseq]\nfallingdotseq & \K[\MNSnprecapprox]\nprecapprox & \K[\MNSnswfree]\nswfree \\
+\K[\MNSnbacksimeq]\nbacksimeq & \K[\MNSnhateq]\nhateq & \K[\MNSnpreccurlyeq]\npreccurlyeq & \K[\MNSnswmodels]\nswmodels \\
+\K[\MNSnbacktriplesim]\nbacktriplesim & \K[\MNSnleftfootline]\nleftfootline & \K[\MNSnpreceq]\npreceq & \K[\MNSnswModels]\nswModels \\
+\K[\MNSnbumpeq]\nbumpeq & \K[\MNSnleftfree]\nleftfree & \K[\MNSnprecsim]\nprecsim & \K[\MNSnswvdash]\nswvdash \\
+\K[\MNSnBumpeq]\nBumpeq & \K[\MNSnleftmodels]\nleftmodels & \K[\MNSnrightfootline]\nrightfootline & \K[\MNSnswVdash]\nswVdash \\
+\K[\MNSncirceq]\ncirceq & \K[\MNSnleftModels]\nleftModels & \K[\MNSnrightfree]\nrightfree & \K[\MNSntriplesim]\ntriplesim \\
+\K[\MNSnclosedequal]\nclosedequal & \K[\MNSnleftrightline]\nleftrightline & \K[\MNSnrightmodels]\nrightmodels & \K[\MNSnupdownline]\nupdownline \\
+\K[\MNSncong]\ncong & \K[\MNSnLeftrightline]\nLeftrightline & \K[\MNSnrightModels]\nrightModels & \K[\MNSnUpdownline]\nUpdownline \\
+\K[\MNSncurlyeqprec]\ncurlyeqprec & \K[\MNSnleftvdash]\nleftvdash & \K[\MNSnrightvdash]\nrightvdash & \K[\MNSnupfootline]\nupfootline \\
+\K[\MNSncurlyeqsucc]\ncurlyeqsucc & \K[\MNSnleftVdash]\nleftVdash & \K[\MNSnrightVdash]\nrightVdash & \K[\MNSnupfree]\nupfree \\
+\K[\MNSndoteq]\ndoteq & \K[\MNSnnefootline]\nnefootline & \K[\MNSnrisingdotseq]\nrisingdotseq & \K[\MNSnupmodels]\nupmodels \\
+\K[\MNSnDoteq]\nDoteq & \K[\MNSnnefree]\nnefree & \K[\MNSnsefootline]\nsefootline & \K[\MNSnupModels]\nupModels \\
+\K[\MNSndownfootline]\ndownfootline & \K[\MNSnnemodels]\nnemodels & \K[\MNSnsefree]\nsefree & \K[\MNSnupvdash]\nupvdash \\
+\K[\MNSndownfree]\ndownfree & \K[\MNSnneModels]\nneModels & \K[\MNSnsemodels]\nsemodels & \K[\MNSnupVdash]\nupVdash \\
+\K[\MNSndownmodels]\ndownmodels & \K[\MNSnneswline]\nneswline & \K[\MNSnseModels]\nseModels & \K[\MNSprecnapprox]\precnapprox \\
+\K[\MNSndownModels]\ndownModels & \K[\MNSnNeswline]\nNeswline & \K[\MNSnsevdash]\nsevdash & \K[\MNSprecnsim]\precnsim \\
+\K[\MNSndownvdash]\ndownvdash & \K[\MNSnnevdash]\nnevdash & \K[\MNSnseVdash]\nseVdash & \K[\MNSsuccnapprox]\succnapprox \\
+\K[\MNSndownVdash]\ndownVdash & \K[\MNSnneVdash]\nneVdash & \K[\MNSnshortmid]\nshortmid & \K[\MNSsuccnsim]\succnsim \\
+\K[\MNSneqbump]\neqbump & \K[\MNSnnwfootline]\nnwfootline & \K[\MNSnshortparallel]\nshortparallel & \\
+\K[\MNSneqcirc]\neqcirc & \K[\MNSnnwfree]\nnwfree & \K[\MNSnsim]\nsim & \\
+\K[\MNSneqdot]\neqdot & \K[\MNSnnwmodels]\nnwmodels & \K[\MNSnsimeq]\nsimeq & \\
+\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{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}
+\index{binary relations}
+\index{relational symbols>binary}
+\index{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}[CMLL]{\CMLL\ Binary Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\idxboth{linear logic}{symbols}
+\label{cmll-rel}
+\begin{tabular}{ll@{\hspace*{2em}}ll}
+\K[\CMLLcoh]\coh & \K[\CMLLscoh]\scoh \\
+\K[\CMLLincoh]\incoh & \K[\CMLLsincoh]\sincoh \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Subset and Superset Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\index{subsets}
+\index{supersets}
+\index{symbols>subset and superset}
+\label{subsets}
+\begin{tabular}{*3{ll}}
+\X\sqsubset$^*$ & \X\sqsupseteq & \X\supset \\
+\X\sqsubseteq & \X\subset & \X\supseteq \\
+\X\sqsupset$^*$ & \X\subseteq \\
+\end{tabular}
+
+\bigskip
+\notpredefinedmessageABX
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Subset and Superset Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\index{subsets}
+\index{supersets}
+\index{symbols>subset and superset}
+\label{ams-subsets}
+\begin{tabular}{*3{ll}}
+\X\nsubseteq & \X\subseteqq & \X\supsetneqq \\
+\X\nsupseteq & \X\subsetneq & \X\varsubsetneq \\
+\X\nsupseteqq & \X\subsetneqq & \X\varsubsetneqq \\
+\X\sqsubset & \X\Supset & \X\varsupsetneq \\
+\X\sqsupset & \X\supseteqq & \X\varsupsetneqq \\
+\X\Subset & \X\supsetneq \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ST]{\ST\ Subset and Superset Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\index{subsets}
+\index{supersets}
+\index{symbols>subset and superset}
+\label{st-subsets}
+\begin{tabular}{*2{ll}}
+\X\subsetplus & \X\supsetplus \\
+\X\subsetpluseq & \X\supsetpluseq \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Subset and Superset Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\index{subsets}
+\index{supersets}
+\index{symbols>subset and superset}
+\label{wasy-subset}
+\begin{tabular}{*2{ll}}
+\X\sqsubset & \X\sqsupset \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Subset and Superset Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\index{subsets}
+\index{supersets}
+\index{symbols>subset and superset}
+\label{txpx-subset}
+\begin{tabular}{*3{ll}}
+\X\nsqsubset & \X\nsqsupseteq & \X\nSupset \\
+\X\nsqsubseteq & \X\nSubset \\
+\X\nsqsupset & \X\nsubseteqq \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Subset and Superset Relations}
+\index{binary relations}
+\index{relational symbols>binary}
+\index{subsets}
+\index{supersets}
+\index{symbols>subset and superset}
+\label{abx-subsets}
+\begin{tabular}{*4{ll}}
+\X[\ABXnsqsubset]\nsqsubset & \X[\ABXnsupset]\nsupset & \X[\ABXsqsupseteq]\sqsupseteq & \X[\ABXsupseteq]\supseteq \\
+\X[\ABXnsqSubset]\nsqSubset & \X[\ABXnSupset]\nSupset & \X[\ABXsqsupseteqq]\sqsupseteqq & \X[\ABXsupseteqq]\supseteqq \\
+\X[\ABXnsqsubseteq]\nsqsubseteq & \X[\ABXnsupseteq]\nsupseteq & \X[\ABXsqsupsetneq]\sqsupsetneq & \X[\ABXsupsetneq]\supsetneq \\
+\X[\ABXnsqsubseteqq]\nsqsubseteqq & \X[\ABXnsupseteqq]\nsupseteqq & \X[\ABXsqsupsetneqq]\sqsupsetneqq & \X[\ABXsupsetneqq]\supsetneqq \\
+\X[\ABXnsqsupset]\nsqsupset & \X[\ABXsqsubset]\sqsubset & \X[\ABXsubset]\subset & \X[\ABXvarsqsubsetneq]\varsqsubsetneq \\
+\X[\ABXnsqSupset]\nsqSupset & \X[\ABXsqSubset]\sqSubset & \X[\ABXSubset]\Subset & \X[\ABXvarsqsubsetneqq]\varsqsubsetneqq \\
+\X[\ABXnsqsupseteq]\nsqsupseteq & \X[\ABXsqsubseteq]\sqsubseteq & \X[\ABXsubseteq]\subseteq & \X[\ABXvarsqsupsetneq]\varsqsupsetneq \\
+\X[\ABXnsqsupseteqq]\nsqsupseteqq & \X[\ABXsqsubseteqq]\sqsubseteqq & \X[\ABXsubseteqq]\subseteqq & \X[\ABXvarsqsupsetneqq]\varsqsupsetneqq \\
+\X[\ABXnsubset]\nsubset & \X[\ABXsqsubsetneq]\sqsubsetneq & \X[\ABXsubsetneq]\subsetneq & \X[\ABXvarsubsetneq]\varsubsetneq \\
+\X[\ABXnSubset]\nSubset & \X[\ABXsqsubsetneqq]\sqsubsetneqq & \X[\ABXsubsetneqq]\subsetneqq & \X[\ABXvarsubsetneqq]\varsubsetneqq \\
+\X[\ABXnsubseteq]\nsubseteq & \X[\ABXsqSupset]\sqSupset & \X[\ABXsupset]\supset & \X[\ABXvarsupsetneq]\varsupsetneq \\
+\X[\ABXnsubseteqq]\nsubseteqq & \X[\ABXsqsupset]\sqsupset & \X[\ABXSupset]\Supset & \X[\ABXvarsupsetneqq]\varsupsetneqq \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[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}{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{symtable}[AMS]{\AMS\ Triangle Relations}
+\index{triangle relations}\index{relational symbols>triangle}
+\label{ams-triangle-rel}
+\begin{tabular}{*4{ll}}
+\X\blacktriangleleft & \X\ntrianglelefteq & \X\trianglelefteq & \X\vartriangleleft \\
+\X\blacktriangleright & \X\ntriangleright & \X\triangleq & \X\vartriangleright \\
+\X\ntriangleleft & \X\ntrianglerighteq & \X\trianglerighteq \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ST]{\ST\ Triangle Relations}
+\index{triangle relations}\index{relational symbols>triangle}
+\label{st-triangle-rel}
+\begin{tabular}{*2{ll}}
+\X\trianglelefteqslant & \X\trianglerighteqslant \\
+\X\ntrianglelefteqslant & \X\ntrianglerighteqslant \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Triangle Relations}
+\index{triangle relations}\index{relational symbols>triangle}
+\label{abx-triangle-rel}
+\begin{tabular}{*4{ll}}
+\X[\ABXntriangleleft]\ntriangleleft & \X[\ABXntrianglerighteq]\ntrianglerighteq & \X[\ABXtriangleright]\triangleright & \X[\ABXvartriangleright]\vartriangleright \\
+\X[\ABXntrianglelefteq]\ntrianglelefteq & \X[\ABXtriangleleft]\triangleleft & \X[\ABXtrianglerighteq]\trianglerighteq & \\
+\X[\ABXntriangleright]\ntriangleright & \X[\ABXtrianglelefteq]\trianglelefteq & \X[\ABXvartriangleleft]\vartriangleleft & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[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}{Arrows}
+\index{arrows}
+\label{arrow}
+\begin{tabular}{*3{ll}}
+\X\Downarrow & \X\longleftarrow & \X\nwarrow \\
+\X\downarrow & \X\Longleftarrow & \X\Rightarrow \\
+\X\hookleftarrow & \X\longleftrightarrow & \X\rightarrow \\
+\X\hookrightarrow & \X\Longleftrightarrow & \X\searrow \\
+\X\leadsto$^*$ & \X\longmapsto & \X\swarrow \\
+\X\leftarrow & \X\Longrightarrow & \X\uparrow \\
+\X\Leftarrow & \X\longrightarrow & \X\Uparrow \\
+\X\Leftrightarrow & \X\mapsto & \X\updownarrow \\
+\X\leftrightarrow & \X\nearrow$^\dag$ & \X\Updownarrow \\
+\end{tabular}
+
+\bigskip
+\notpredefinedmessage
+
+\bigskip
+\begin{tablenote}[\dag]
+ See the note beneath Table~\ref{extensible-accents} for information
+ about how to put a diagonal arrow across a mathematical expression%
+\ifhavecancel
+ ~(as in ``$\cancelto{0}{\nabla \cdot \vec{B}}\quad$'')
+\fi
+.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{Harpoons}
+\index{harpoons}
+\label{harpoons}
+\begin{tabular}{*3{ll}}
+\X\leftharpoondown & \X\rightharpoondown & \X\rightleftharpoons \\
+\X\leftharpoonup & \X\rightharpoonup \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{\TC\ Text-mode Arrows}
+\index{arrows}
+\label{tc-arrows}
+\begin{tabular}{*2{ll}}
+\K\textdownarrow & \K\textrightarrow \\
+\K\textleftarrow & \K\textuparrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Arrows}
+\index{arrows}
+\label{ams-arrows}
+\begin{tabular}{*3{ll}}
+\X\circlearrowleft & \X\leftleftarrows & \X\rightleftarrows \\
+\X\circlearrowright & \X\leftrightarrows & \X\rightrightarrows \\
+\X\curvearrowleft & \X\leftrightsquigarrow & \X\rightsquigarrow \\
+\X\curvearrowright & \X\Lleftarrow & \X\Rsh \\
+\X\dashleftarrow & \X\looparrowleft & \X\twoheadleftarrow \\
+\X\dashrightarrow & \X\looparrowright & \X\twoheadrightarrow \\
+\X\downdownarrows & \X\Lsh & \X\upuparrows \\
+\X\leftarrowtail & \X\rightarrowtail & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Negated Arrows}
+\index{arrows>negated}
+\label{ams-narrows}
+\begin{tabular}{*3{ll}}
+\X\nLeftarrow & \X\nLeftrightarrow & \X\nRightarrow \\
+\X\nleftarrow & \X\nleftrightarrow & \X\nrightarrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Harpoons}
+\index{harpoons}
+\label{ams-harpoons}
+\begin{tabular}{*3{ll}}
+\X\downharpoonleft & \X\leftrightharpoons & \X\upharpoonleft \\
+\X\downharpoonright & \X[\AMSrightleftharpoons]\rightleftharpoons & \X\upharpoonright \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ST]{\ST\ Arrows}
+\index{arrows}
+\label{st-arrows}
+\begin{tabular}{*3{ll}}
+\X\leftarrowtriangle & \X\Mapsfrom & \X\shortleftarrow \\
+\X\leftrightarroweq & \X\mapsfrom & \X\shortrightarrow \\
+\X\leftrightarrowtriangle & \X\Mapsto & \X\shortuparrow \\
+\X\lightning & \X\nnearrow & \X\ssearrow \\
+\X\Longmapsfrom & \X\nnwarrow & \X\sswarrow \\
+\X\longmapsfrom & \X\rightarrowtriangle \\
+\X\Longmapsto & \X\shortdownarrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Arrows}
+\index{arrows}
+\label{txpx-arrows}
+\begin{tabular}{*3{ll}}
+\X\boxdotLeft & \X\circleddotright & \X\Diamondleft \\
+\X\boxdotleft & \X\circleleft & \X\Diamondright \\
+\X\boxdotright & \X\circleright & \X\DiamondRight \\
+\X\boxdotRight & \X\dashleftrightarrow & \X\leftsquigarrow \\
+\X\boxLeft & \X\DiamonddotLeft & \X\Nearrow \\
+\X\boxleft & \X\Diamonddotleft & \X\Nwarrow \\
+\X\boxright & \X\Diamonddotright & \X\Rrightarrow \\
+\X\boxRight & \X\DiamonddotRight & \X\Searrow \\
+\X\circleddotleft & \X\DiamondLeft & \X\Swarrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Arrows}
+\index{arrows}
+\label{abx-arrows}
+\begin{tabular}{*3{ll}}
+\X[\ABXcirclearrowleft]\circlearrowleft & \X[\ABXleftarrow]\leftarrow & \X[\ABXnwarrow]\nwarrow \\
+\X[\ABXcirclearrowright]\circlearrowright & \X[\ABXleftleftarrows]\leftleftarrows & \X[\ABXrestriction]\restriction \\
+\X[\ABXcurvearrowbotleft]\curvearrowbotleft & \X[\ABXleftrightarrow]\leftrightarrow & \X[\ABXrightarrow]\rightarrow \\
+\X[\ABXcurvearrowbotleftright]\curvearrowbotleftright & \X[\ABXleftrightarrows]\leftrightarrows & \X[\ABXrightleftarrows]\rightleftarrows \\
+\X[\ABXcurvearrowbotright]\curvearrowbotright & \X[\ABXleftrightsquigarrow]\leftrightsquigarrow & \X[\ABXrightrightarrows]\rightrightarrows \\
+\X[\ABXcurvearrowleft]\curvearrowleft & \X[\ABXleftsquigarrow]\leftsquigarrow & \X[\ABXrightsquigarrow]\rightsquigarrow \\
+\X[\ABXcurvearrowleftright]\curvearrowleftright & \X[\ABXlefttorightarrow]\lefttorightarrow & \X[\ABXrighttoleftarrow]\righttoleftarrow \\
+\X[\ABXcurvearrowright]\curvearrowright & \X[\ABXlooparrowdownleft]\looparrowdownleft & \X[\ABXRsh]\Rsh \\
+\X[\ABXdlsh]\dlsh & \X[\ABXlooparrowdownright]\looparrowdownright & \X[\ABXsearrow]\searrow \\
+\X[\ABXdowndownarrows]\downdownarrows & \X[\ABXlooparrowleft]\looparrowleft & \X[\ABXswarrow]\swarrow \\
+\X[\ABXdowntouparrow]\downtouparrow & \X[\ABXlooparrowright]\looparrowright & \X[\ABXupdownarrows]\updownarrows \\
+\X[\ABXdownuparrows]\downuparrows & \X[\ABXLsh]\Lsh & \X[\ABXuptodownarrow]\uptodownarrow \\
+\X[\ABXdrsh]\drsh & \X[\ABXnearrow]\nearrow & \X[\ABXupuparrows]\upuparrows \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Negated Arrows}
+\index{arrows>negated}
+\label{abx-narrows}
+\begin{tabular}{*3{ll}}
+\X[\ABXnLeftarrow]\nLeftarrow & \X[\ABXnleftrightarrow]\nleftrightarrow & \X[\ABXnrightarrow]\nrightarrow \\
+\X[\ABXnleftarrow]\nleftarrow & \X[\ABXnLeftrightarrow]\nLeftrightarrow & \X[\ABXnRightarrow]\nRightarrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Harpoons}
+\index{harpoons}
+\label{abx-harpoons}
+\begin{tabular}{*3{ll}}
+\X[\ABXbarleftharpoon]\barleftharpoon & \X[\ABXleftharpoonup]\leftharpoonup & \X[\ABXrightleftharpoons]\rightleftharpoons \\
+\X[\ABXbarrightharpoon]\barrightharpoon & \X[\ABXleftleftharpoons]\leftleftharpoons & \X[\ABXrightrightharpoons]\rightrightharpoons \\
+\X[\ABXdowndownharpoons]\downdownharpoons & \X[\ABXleftrightharpoon]\leftrightharpoon & \X[\ABXupdownharpoons]\updownharpoons \\
+\X[\ABXdownharpoonleft]\downharpoonleft & \X[\ABXleftrightharpoons]\leftrightharpoons & \X[\ABXupharpoonleft]\upharpoonleft \\
+\X[\ABXdownharpoonright]\downharpoonright & \X[\ABXrightbarharpoon]\rightbarharpoon & \X[\ABXupharpoonright]\upharpoonright \\
+\X[\ABXdownupharpoons]\downupharpoons & \X[\ABXrightharpoondown]\rightharpoondown & \X[\ABXupupharpoons]\upupharpoons \\
+\X[\ABXleftbarharpoon]\leftbarharpoon & \X[\ABXrightharpoonup]\rightharpoonup \\
+\X[\ABXleftharpoondown]\leftharpoondown & \X[\ABXrightleftharpoon]\rightleftharpoon \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{longsymtable}[MNS]{\MNS\ Arrows}
+\index{arrows}
+\label{mns-arrows}
+\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[\MNScurvearrowdownup]\curvearrowdownup & \X[\MNSlongleftarrow]\longleftarrow & \K[\MNSrhookswarrow]\rhookswarrow \\
+\K[\MNScurvearrowleftright]\curvearrowleftright & \X[\MNSLongleftarrow]\Longleftarrow & \K[\MNSrhookuparrow]\rhookuparrow \\
+\K[\MNScurvearrownesw]\curvearrownesw & \X[\MNSlongleftrightarrow]\longleftrightarrow & \K[\MNSrightarrow]\rightarrow \\
+\K[\MNScurvearrownwse]\curvearrownwse & \X[\MNSLongleftrightarrow]\Longleftrightarrow & \K[\MNSRightarrow]\Rightarrow \\
+\K[\MNScurvearrowrightleft]\curvearrowrightleft & \X[\MNSlongmapsto]\longmapsto & \K[\MNSrightarrowtail]\rightarrowtail \\
+\K[\MNScurvearrowsenw]\curvearrowsenw & \X[\MNSlongrightarrow]\longrightarrow & \K[\MNSrightleftarrows]\rightleftarrows \\
+\K[\MNScurvearrowswne]\curvearrowswne & \X[\MNSLongrightarrow]\Longrightarrow & \K[\MNSrightlsquigarrow]\rightlsquigarrow \\
+\K[\MNScurvearrowupdown]\curvearrowupdown & \K[\MNSlooparrowleft]\looparrowleft & \K[\MNSrightmapsto]\rightmapsto \\
+\K[\MNSdasheddownarrow]\dasheddownarrow & \K[\MNSlooparrowright]\looparrowright & \K[\MNSrightrightarrows]\rightrightarrows \\
+\K[\MNSdashedleftarrow]\dashedleftarrow & \K[\MNSLsh]\Lsh & \K[\MNSrightrsquigarrow]\rightrsquigarrow \\
+\K[\MNSdashednearrow]\dashednearrow & \K[\MNSnearrow]\nearrow & \K[\MNSRrightarrow]\Rrightarrow \\
+\K[\MNSdashednwarrow]\dashednwarrow & \K[\MNSNearrow]\Nearrow & \K[\MNSRsh]\Rsh \\
+\K[\MNSdashedrightarrow]\dashedrightarrow & \K[\MNSnearrowtail]\nearrowtail & \K[\MNSsearrow]\searrow \\
+\K[\MNSdashedsearrow]\dashedsearrow & \K[\MNSnelsquigarrow]\nelsquigarrow & \K[\MNSSearrow]\Searrow \\
+\K[\MNSdashedswarrow]\dashedswarrow & \K[\MNSnemapsto]\nemapsto & \K[\MNSsearrowtail]\searrowtail \\
+\K[\MNSdasheduparrow]\dasheduparrow & \K[\MNSnenearrows]\nenearrows & \K[\MNSselsquigarrow]\selsquigarrow \\
+\K[\MNSDownarrow]\Downarrow & \K[\MNSnersquigarrow]\nersquigarrow & \K[\MNSsemapsto]\semapsto \\
+\K[\MNSdownarrow]\downarrow & \K[\MNSneswarrow]\neswarrow & \K[\MNSsenwarrows]\senwarrows \\
+\K[\MNSdownarrowtail]\downarrowtail & \K[\MNSNeswarrow]\Neswarrow & \K[\MNSsersquigarrow]\sersquigarrow \\
+\K[\MNSdowndownarrows]\downdownarrows & \K[\MNSneswarrows]\neswarrows & \K[\MNSsesearrows]\sesearrows \\
+\K[\MNSdownlsquigarrow]\downlsquigarrow & \K[\MNSnwarrow]\nwarrow & \K[\MNSsquigarrowdownup]\squigarrowdownup \\
+\K[\MNSdownmapsto]\downmapsto & \K[\MNSNwarrow]\Nwarrow & \K[\MNSsquigarrowleftright]\squigarrowleftright \\
+\K[\MNSdownrsquigarrow]\downrsquigarrow & \K[\MNSnwarrowtail]\nwarrowtail & \K[\MNSsquigarrownesw]\squigarrownesw \\
+\K[\MNSdownuparrows]\downuparrows & \K[\MNSnwlsquigarrow]\nwlsquigarrow & \K[\MNSsquigarrownwse]\squigarrownwse \\
+\K[\MNSlcirclearrowdown]\lcirclearrowdown & \K[\MNSnwmapsto]\nwmapsto & \K[\MNSsquigarrowrightleft]\squigarrowrightleft \\
+\K[\MNSlcirclearrowleft]\lcirclearrowleft & \K[\MNSnwnwarrows]\nwnwarrows & \K[\MNSsquigarrowsenw]\squigarrowsenw \\
+\K[\MNSlcirclearrowright]\lcirclearrowright & \K[\MNSnwrsquigarrow]\nwrsquigarrow & \K[\MNSsquigarrowswne]\squigarrowswne \\
+\K[\MNSlcirclearrowup]\lcirclearrowup & \K[\MNSnwsearrow]\nwsearrow & \K[\MNSsquigarrowupdown]\squigarrowupdown \\
+\K[\MNSlcurvearrowdown]\lcurvearrowdown & \K[\MNSNwsearrow]\Nwsearrow & \K[\MNSswarrow]\swarrow \\
+\K[\MNSlcurvearrowleft]\lcurvearrowleft & \K[\MNSnwsearrows]\nwsearrows & \K[\MNSSwarrow]\Swarrow \\
+\K[\MNSlcurvearrowne]\lcurvearrowne & \K[\strut\smash\MNSpartialvardlcircleleftint]\partialvardlcircleleftint$^*$ & \K[\MNSswarrowtail]\swarrowtail \\
+\K[\MNSlcurvearrownw]\lcurvearrownw & \K[\strut\smash\MNSpartialvardlcirclerightint]\partialvardlcirclerightint$^*$ & \K[\MNSswlsquigarrow]\swlsquigarrow \\
+\K[\MNSlcurvearrowright]\lcurvearrowright & \K[\strut\smash\MNSpartialvardrcircleleftint]\partialvardrcircleleftint$^*$ & \K[\MNSswmapsto]\swmapsto \\
+\K[\MNSlcurvearrowse]\lcurvearrowse & \K[\strut\smash\MNSpartialvardrcirclerightint]\partialvardrcirclerightint$^*$ & \K[\MNSswnearrows]\swnearrows \\
+\K[\MNSlcurvearrowsw]\lcurvearrowsw & \K[\strut\smash\MNSpartialvartlcircleleftint]\partialvartlcircleleftint$^*$ & \K[\MNSswrsquigarrow]\swrsquigarrow \\
+\K[\MNSlcurvearrowup]\lcurvearrowup & \K[\strut\smash\MNSpartialvartlcirclerightint]\partialvartlcirclerightint$^*$ & \K[\MNSswswarrows]\swswarrows \\
+\K[\MNSLeftarrow]\Leftarrow & \K[\strut\smash\MNSpartialvartrcircleleftint]\partialvartrcircleleftint$^*$ & \K[\MNStwoheaddownarrow]\twoheaddownarrow \\
+\K[\MNSleftarrow]\leftarrow & \K[\strut\smash\MNSpartialvartrcirclerightint]\partialvartrcirclerightint$^*$ & \K[\MNStwoheadleftarrow]\twoheadleftarrow \\
+\K[\MNSleftarrowtail]\leftarrowtail & \K[\MNSrcirclearrowdown]\rcirclearrowdown & \K[\MNStwoheadnearrow]\twoheadnearrow \\
+\K[\MNSleftleftarrows]\leftleftarrows & \K[\MNSrcirclearrowleft]\rcirclearrowleft & \K[\MNStwoheadnwarrow]\twoheadnwarrow \\
+\K[\MNSleftlsquigarrow]\leftlsquigarrow & \K[\MNSrcirclearrowright]\rcirclearrowright & \K[\MNStwoheadrightarrow]\twoheadrightarrow \\
+\K[\MNSleftmapsto]\leftmapsto & \K[\MNSrcirclearrowup]\rcirclearrowup & \K[\MNStwoheadsearrow]\twoheadsearrow \\
+\K[\MNSleftrightarrow]\leftrightarrow & \K[\MNSrcurvearrowdown]\rcurvearrowdown & \K[\MNStwoheadswarrow]\twoheadswarrow \\
+\K[\MNSLeftrightarrow]\Leftrightarrow & \K[\MNSrcurvearrowleft]\rcurvearrowleft & \K[\MNStwoheaduparrow]\twoheaduparrow \\
+\K[\MNSleftrightarrows]\leftrightarrows & \K[\MNSrcurvearrowne]\rcurvearrowne & \K[\MNSuparrow]\uparrow \\
+\K[\MNSleftrsquigarrow]\leftrsquigarrow & \K[\MNSrcurvearrownw]\rcurvearrownw & \K[\MNSUparrow]\Uparrow \\
+\K[\MNSlhookdownarrow]\lhookdownarrow & \K[\MNSrcurvearrowright]\rcurvearrowright & \K[\MNSuparrowtail]\uparrowtail \\
+\K[\MNSlhookleftarrow]\lhookleftarrow & \K[\MNSrcurvearrowse]\rcurvearrowse & \K[\MNSupdownarrow]\updownarrow \\
+\K[\MNSlhooknearrow]\lhooknearrow & \K[\MNSrcurvearrowsw]\rcurvearrowsw & \K[\MNSUpdownarrow]\Updownarrow \\
+\K[\MNSlhooknwarrow]\lhooknwarrow & \K[\MNSrcurvearrowup]\rcurvearrowup & \K[\MNSupdownarrows]\updownarrows \\
+\K[\MNSlhookrightarrow]\lhookrightarrow & \K[\MNSrhookdownarrow]\rhookdownarrow & \K[\MNSuplsquigarrow]\uplsquigarrow \\
+\K[\MNSlhooksearrow]\lhooksearrow & \K[\MNSrhookleftarrow]\rhookleftarrow & \K[\MNSupmapsto]\upmapsto \\
+\K[\MNSlhookswarrow]\lhookswarrow & \K[\MNSrhooknearrow]\rhooknearrow & \K[\MNSuprsquigarrow]\uprsquigarrow \\
+\K[\MNSlhookuparrow]\lhookuparrow & \K[\MNSrhooknwarrow]\rhooknwarrow & \K[\MNSupuparrows]\upuparrows \\
+\K[\MNSlightning]\lightning & \K[\MNSrhookrightarrow]\rhookrightarrow & \\
+\K[\MNSLleftarrow]\Lleftarrow & \K[\MNSrhooksearrow]\rhooksearrow & \\
+\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[\MNSrcirclearrowup]\circlearrowleft & \mnssyn\rcirclearrowup \\
+ \K[\MNSlcirclearrowup]\circlearrowright & \mnssyn\lcirclearrowup \\
+ \K[\MNSrcurvearrowleft]\curvearrowleft & \mnssyn\rcurvearrowleft \\
+ \K[\MNSlcurvearrowright]\curvearrowright & \mnssyn\lcurvearrowright \\
+ \K[\MNSdashedleftarrow]\dashleftarrow & \mnssyn\dashedleftarrow \\
+ \K[\MNSdashedrightarrow]\dashrightarrow & \mnssyn\dashedrightarrow \\
+ \K[\MNSrhookleftarrow]\hookleftarrow & \mnssyn\rhookleftarrow \\
+ \K[\MNSlhookrightarrow]\hookrightarrow & \mnssyn\lhookrightarrow \\
+ \K[\MNSrightlsquigarrow]\leadsto & \mnssyn\rightlsquigarrow \\
+ \K[\MNSsquigarrowleftright]\leftrightsquigarrow & \mnssyn\squigarrowleftright \\
+ \K[\MNSrightmapsto]\mapsto & \mnssyn\rightmapsto \\
+ \K[\MNSrightlsquigarrow]\rightsquigarrow & \mnssyn\rightlsquigarrow \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ The \verb|\partialvar|\dots\verb|int| macros are intended to be used
+ internally by \MNS\ to produce various types of integrals.
+\end{tablenote}
+\end{longsymtable}
+
+
+\begin{longsymtable}[MNS]{\MNS\ Negated Arrows}
+\index{arrows>negated}
+\label{mns-narrows}
+\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[\MNSncurvearrowdownup]\ncurvearrowdownup & \K[\MNSnlhooknwarrow]\nlhooknwarrow & \K[\MNSnrightleftarrows]\nrightleftarrows \\
+\K[\MNSncurvearrowleftright]\ncurvearrowleftright & \K[\MNSnlhookrightarrow]\nlhookrightarrow & \K[\MNSnrightlsquigarrow]\nrightlsquigarrow \\
+\K[\MNSncurvearrownesw]\ncurvearrownesw & \K[\MNSnlhooksearrow]\nlhooksearrow & \K[\MNSnrightmapsto]\nrightmapsto \\
+\K[\MNSncurvearrownwse]\ncurvearrownwse & \K[\MNSnlhookswarrow]\nlhookswarrow & \K[\MNSnrightrightarrows]\nrightrightarrows \\
+\K[\MNSncurvearrowrightleft]\ncurvearrowrightleft & \K[\MNSnlhookuparrow]\nlhookuparrow & \K[\MNSnrightrsquigarrow]\nrightrsquigarrow \\
+\K[\MNSncurvearrowsenw]\ncurvearrowsenw & \K[\MNSnLleftarrow]\nLleftarrow & \K[\MNSnRrightarrow]\nRrightarrow \\
+\K[\MNSncurvearrowswne]\ncurvearrowswne & \K[\MNSnnearrow]\nnearrow & \K[\MNSnSearrow]\nSearrow \\
+\K[\MNSncurvearrowupdown]\ncurvearrowupdown & \K[\MNSnNearrow]\nNearrow & \K[\MNSnsearrow]\nsearrow \\
+\K[\MNSndasheddownarrow]\ndasheddownarrow & \K[\MNSnnearrowtail]\nnearrowtail & \K[\MNSnsearrowtail]\nsearrowtail \\
+\K[\MNSndashedleftarrow]\ndashedleftarrow & \K[\MNSnnelsquigarrow]\nnelsquigarrow & \K[\MNSnselsquigarrow]\nselsquigarrow \\
+\K[\MNSndashednearrow]\ndashednearrow & \K[\MNSnnemapsto]\nnemapsto & \K[\MNSnsemapsto]\nsemapsto \\
+\K[\MNSndashednwarrow]\ndashednwarrow & \K[\MNSnnenearrows]\nnenearrows & \K[\MNSnsenwarrows]\nsenwarrows \\
+\K[\MNSndashedrightarrow]\ndashedrightarrow & \K[\MNSnnersquigarrow]\nnersquigarrow & \K[\MNSnsersquigarrow]\nsersquigarrow \\
+\K[\MNSndashedsearrow]\ndashedsearrow & \K[\MNSnNeswarrow]\nNeswarrow & \K[\MNSnsesearrows]\nsesearrows \\
+\K[\MNSndashedswarrow]\ndashedswarrow & \K[\MNSnneswarrow]\nneswarrow & \K[\MNSnsquigarrowdownup]\nsquigarrowdownup \\
+\K[\MNSndasheduparrow]\ndasheduparrow & \K[\MNSnneswarrows]\nneswarrows & \K[\MNSnsquigarrowleftright]\nsquigarrowleftright \\
+\K[\MNSndownarrow]\ndownarrow & \K[\MNSnNwarrow]\nNwarrow & \K[\MNSnsquigarrownesw]\nsquigarrownesw \\
+\K[\MNSnDownarrow]\nDownarrow & \K[\MNSnnwarrow]\nnwarrow & \K[\MNSnsquigarrownwse]\nsquigarrownwse \\
+\K[\MNSndownarrowtail]\ndownarrowtail & \K[\MNSnnwarrowtail]\nnwarrowtail & \K[\MNSnsquigarrowrightleft]\nsquigarrowrightleft \\
+\K[\MNSndowndownarrows]\ndowndownarrows & \K[\MNSnnwlsquigarrow]\nnwlsquigarrow & \K[\MNSnsquigarrowsenw]\nsquigarrowsenw \\
+\K[\MNSndownlsquigarrow]\ndownlsquigarrow & \K[\MNSnnwmapsto]\nnwmapsto & \K[\MNSnsquigarrowswne]\nsquigarrowswne \\
+\K[\MNSndownmapsto]\ndownmapsto & \K[\MNSnnwnwarrows]\nnwnwarrows & \K[\MNSnsquigarrowupdown]\nsquigarrowupdown \\
+\K[\MNSndownrsquigarrow]\ndownrsquigarrow & \K[\MNSnnwrsquigarrow]\nnwrsquigarrow & \K[\MNSnswarrow]\nswarrow \\
+\K[\MNSndownuparrows]\ndownuparrows & \K[\MNSnnwsearrow]\nnwsearrow & \K[\MNSnSwarrow]\nSwarrow \\
+\K[\MNSnlcirclearrowdown]\nlcirclearrowdown & \K[\MNSnNwsearrow]\nNwsearrow & \K[\MNSnswarrowtail]\nswarrowtail \\
+\K[\MNSnlcirclearrowleft]\nlcirclearrowleft & \K[\MNSnnwsearrows]\nnwsearrows & \K[\MNSnswlsquigarrow]\nswlsquigarrow \\
+\K[\MNSnlcirclearrowright]\nlcirclearrowright & \K[\MNSnrcirclearrowdown]\nrcirclearrowdown & \K[\MNSnswmapsto]\nswmapsto \\
+\K[\MNSnlcirclearrowup]\nlcirclearrowup & \K[\MNSnrcirclearrowleft]\nrcirclearrowleft & \K[\MNSnswnearrows]\nswnearrows \\
+\K[\MNSnlcurvearrowdown]\nlcurvearrowdown & \K[\MNSnrcirclearrowright]\nrcirclearrowright & \K[\MNSnswrsquigarrow]\nswrsquigarrow \\
+\K[\MNSnlcurvearrowleft]\nlcurvearrowleft & \K[\MNSnrcirclearrowup]\nrcirclearrowup & \K[\MNSnswswarrows]\nswswarrows \\
+\K[\MNSnlcurvearrowne]\nlcurvearrowne & \K[\MNSnrcurvearrowdown]\nrcurvearrowdown & \K[\MNSntwoheaddownarrow]\ntwoheaddownarrow \\
+\K[\MNSnlcurvearrownw]\nlcurvearrownw & \K[\MNSnrcurvearrowleft]\nrcurvearrowleft & \K[\MNSntwoheadleftarrow]\ntwoheadleftarrow \\
+\K[\MNSnlcurvearrowright]\nlcurvearrowright & \K[\MNSnrcurvearrowne]\nrcurvearrowne & \K[\MNSntwoheadnearrow]\ntwoheadnearrow \\
+\K[\MNSnlcurvearrowse]\nlcurvearrowse & \K[\MNSnrcurvearrownw]\nrcurvearrownw & \K[\MNSntwoheadnwarrow]\ntwoheadnwarrow \\
+\K[\MNSnlcurvearrowsw]\nlcurvearrowsw & \K[\MNSnrcurvearrowright]\nrcurvearrowright & \K[\MNSntwoheadrightarrow]\ntwoheadrightarrow \\
+\K[\MNSnlcurvearrowup]\nlcurvearrowup & \K[\MNSnrcurvearrowse]\nrcurvearrowse & \K[\MNSntwoheadsearrow]\ntwoheadsearrow \\
+\K[\MNSnLeftarrow]\nLeftarrow & \K[\MNSnrcurvearrowsw]\nrcurvearrowsw & \K[\MNSntwoheadswarrow]\ntwoheadswarrow \\
+\K[\MNSnleftarrow]\nleftarrow & \K[\MNSnrcurvearrowup]\nrcurvearrowup & \K[\MNSntwoheaduparrow]\ntwoheaduparrow \\
+\K[\MNSnleftarrowtail]\nleftarrowtail & \K[\MNSnrhookdownarrow]\nrhookdownarrow & \K[\MNSnuparrow]\nuparrow \\
+\K[\MNSnleftleftarrows]\nleftleftarrows & \K[\MNSnrhookleftarrow]\nrhookleftarrow & \K[\MNSnUparrow]\nUparrow \\
+\K[\MNSnleftlsquigarrow]\nleftlsquigarrow & \K[\MNSnrhooknearrow]\nrhooknearrow & \K[\MNSnuparrowtail]\nuparrowtail \\
+\K[\MNSnleftmapsto]\nleftmapsto & \K[\MNSnrhooknwarrow]\nrhooknwarrow & \K[\MNSnupdownarrow]\nupdownarrow \\
+\K[\MNSnleftrightarrow]\nleftrightarrow & \K[\MNSnrhookrightarrow]\nrhookrightarrow & \K[\MNSnUpdownarrow]\nUpdownarrow \\
+\K[\MNSnLeftrightarrow]\nLeftrightarrow & \K[\MNSnrhooksearrow]\nrhooksearrow & \K[\MNSnupdownarrows]\nupdownarrows \\
+\K[\MNSnleftrightarrows]\nleftrightarrows & \K[\MNSnrhookswarrow]\nrhookswarrow & \K[\MNSnuplsquigarrow]\nuplsquigarrow \\
+\K[\MNSnleftrsquigarrow]\nleftrsquigarrow & \K[\MNSnrhookuparrow]\nrhookuparrow & \K[\MNSnupmapsto]\nupmapsto \\
+\K[\MNSnlhookdownarrow]\nlhookdownarrow & \K[\MNSnrightarrow]\nrightarrow & \K[\MNSnuprsquigarrow]\nuprsquigarrow \\
+\K[\MNSnlhookleftarrow]\nlhookleftarrow & \K[\MNSnRightarrow]\nRightarrow & \K[\MNSnupuparrows]\nupuparrows \\
+\K[\MNSnlhooknearrow]\nlhooknearrow & \K[\MNSnrightarrowtail]\nrightarrowtail & \\
+\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[\MNSnrcirclearrowup]\ncirclearrowleft & \mnssyn\nrcirclearrowup \\
+ \K[\MNSnlcirclearrowup]\ncirclearrowright & \mnssyn\nlcirclearrowup \\
+ \K[\MNSnrcurvearrowleft]\ncurvearrowleft & \mnssyn\nrcurvearrowleft \\
+ \K[\MNSnlcurvearrowright]\ncurvearrowright & \mnssyn\nlcurvearrowright \\
+ \K[\MNSndashedrightarrow]\ndasharrow & \mnssyn\ndashedrightarrow \\
+ \K[\MNSndashedleftarrow]\ndashleftarrow & \mnssyn\ndashedleftarrow \\
+ \K[\MNSndashedrightarrow]\ndashrightarrow & \mnssyn\ndashedrightarrow \\
+ \K[\MNSnleftarrow]\ngets & \mnssyn\nleftarrow \\
+ \K[\MNSnrhookleftarrow]\nhookleftarrow & \mnssyn\nrhookleftarrow \\
+ \K[\MNSnlhookrightarrow]\nhookrightarrow & \mnssyn\nlhookrightarrow \\
+ \K[\MNSnrightlsquigarrow]\nleadsto & \mnssyn\nrightlsquigarrow \\
+ \K[\MNSnsquigarrowleftright]\nleftrightsquigarrow & \mnssyn\nsquigarrowleftright \\
+ \K[\MNSnrightmapsto]\nmapsto & \mnssyn\nrightmapsto \\
+ \K[\MNSnrightlsquigarrow]\nrightsquigarrow & \mnssyn\nrightlsquigarrow \\
+ \K[\MNSnrightarrow]\nto & \mnssyn\nrightarrow \\
+\end{tabular}
+\end{longsymtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Harpoons}
+\index{harpoons}
+\label{mns-harpoons}
+\begin{tabular}{*3{ll}}
+\K[\MNSdownharpoonccw]\downharpoonccw$^*$ & \K[\MNSneswharpoons]\neswharpoons & \K[\MNSseharpooncw]\seharpooncw \\
+\K[\MNSdownharpooncw]\downharpooncw$^*$ & \K[\MNSneswharpoonsenw]\neswharpoonsenw & \K[\MNSsenwharpoons]\senwharpoons \\
+\K[\MNSdownupharpoons]\downupharpoons & \K[\MNSnwharpoonccw]\nwharpoonccw & \K[\MNSswharpoonccw]\swharpoonccw \\
+\K[\MNSleftharpoonccw]\leftharpoonccw$^*$ & \K[\MNSnwharpooncw]\nwharpooncw & \K[\MNSswharpooncw]\swharpooncw \\
+\K[\MNSleftharpooncw]\leftharpooncw$^*$ & \K[\MNSnwseharpoonnesw]\nwseharpoonnesw & \K[\MNSswneharpoons]\swneharpoons \\
+\K[\MNSleftrightharpoondownup]\leftrightharpoondownup & \K[\MNSnwseharpoons]\nwseharpoons & \K[\MNSupdownharpoonleftright]\updownharpoonleftright \\
+\K[\MNSleftrightharpoons]\leftrightharpoons & \K[\MNSnwseharpoonswne]\nwseharpoonswne & \K[\MNSupdownharpoonrightleft]\updownharpoonrightleft \\
+\K[\MNSleftrightharpoonupdown]\leftrightharpoonupdown & \K[\MNSrightharpoonccw]\rightharpoonccw$^*$ & \K[\MNSupdownharpoons]\updownharpoons \\
+\K[\MNSneharpoonccw]\neharpoonccw & \K[\MNSrightharpooncw]\rightharpooncw$^*$ & \K[\MNSupharpoonccw]\upharpoonccw$^*$ \\
+\K[\MNSneharpooncw]\neharpooncw & \K[\MNSrightleftharpoons]\rightleftharpoons & \K[\MNSupharpooncw]\upharpooncw$^*$ \\
+\K[\MNSneswharpoonnwse]\neswharpoonnwse & \K[\MNSseharpoonccw]\seharpoonccw & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ Where marked, the ``\verb|ccw|'' suffix can be replaced with
+ ``\verb|up|'' and the ``\verb|cw|'' suffix can be replaced with
+ ``\verb|down|''. (In addition, \cmdI[\MNSupharpooncw]{\upharpooncw}
+ can be written as \cmdI[\MNSupharpooncw]{\restriction}.)
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Negated Harpoons}
+\index{harpoons}
+\label{mns-nharpoons}
+\begin{tabular}{*3{ll}}
+\K[\MNSndownharpoonccw]\ndownharpoonccw$^*$ & \K[\MNSnneswharpoons]\nneswharpoons & \K[\MNSnseharpooncw]\nseharpooncw \\
+\K[\MNSndownharpooncw]\ndownharpooncw$^*$ & \K[\MNSnneswharpoonsenw]\nneswharpoonsenw & \K[\MNSnsenwharpoons]\nsenwharpoons \\
+\K[\MNSndownupharpoons]\ndownupharpoons & \K[\MNSnnwharpoonccw]\nnwharpoonccw & \K[\MNSnswharpoonccw]\nswharpoonccw \\
+\K[\MNSnleftharpoonccw]\nleftharpoonccw$^*$ & \K[\MNSnnwharpooncw]\nnwharpooncw & \K[\MNSnswharpooncw]\nswharpooncw \\
+\K[\MNSnleftharpooncw]\nleftharpooncw$^*$ & \K[\MNSnnwseharpoonnesw]\nnwseharpoonnesw & \K[\MNSnswneharpoons]\nswneharpoons \\
+\K[\MNSnleftrightharpoondownup]\nleftrightharpoondownup & \K[\MNSnnwseharpoons]\nnwseharpoons & \K[\MNSnupdownharpoonleftright]\nupdownharpoonleftright \\
+\K[\MNSnleftrightharpoons]\nleftrightharpoons & \K[\MNSnnwseharpoonswne]\nnwseharpoonswne & \K[\MNSnupdownharpoonrightleft]\nupdownharpoonrightleft \\
+\K[\MNSnleftrightharpoonupdown]\nleftrightharpoonupdown & \K[\MNSnrightharpoonccw]\nrightharpoonccw$^*$ & \K[\MNSnupdownharpoons]\nupdownharpoons \\
+\K[\MNSnneharpoonccw]\nneharpoonccw & \K[\MNSnrightharpooncw]\nrightharpooncw$^*$ & \K[\MNSnupharpoonccw]\nupharpoonccw$^*$ \\
+\K[\MNSnneharpooncw]\nneharpooncw & \K[\MNSnrightleftharpoons]\nrightleftharpoons & \K[\MNSnupharpooncw]\nupharpooncw$^*$ \\
+\K[\MNSnneswharpoonnwse]\nneswharpoonnwse & \K[\MNSnseharpoonccw]\nseharpoonccw & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ Where marked, the ``\verb|ccw|'' suffix can be replaced with
+ ``\verb|up|'' and the ``\verb|cw|'' suffix can be replaced with
+ ``\verb|down|''. (In addition, \cmdI[\MNSnupharpooncw]{\nupharpooncw}
+ can be written as \cmdI[\MNSnupharpooncw]{\nrestriction}.)
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[CHEMB]{\CHEMB\ Arrows}
+\index{arrows}
+\label{chemarrow-arrows}
+\begin{tabular}{ll}
+\X\chemarrow
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[FGE]{\FGE\ Arrows}
+\index{arrows}
+\idxboth{fletched}{arrows}
+\idxboth{Frege logic}{symbols}
+\label{fge-arrows}
+\begin{tabular}{ll@{\qquad}ll}
+\K\fgerightarrow & \K\fgeuparrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Spoons}
+\index{binary relations}
+\index{relational symbols>binary}
+\idxboth{spoon}{symbols}
+\label{mns-spoons}
+\begin{tabular}{*3{ll}}
+\K[\MNSdownfilledspoon]\downfilledspoon & \K[\MNSnnespoon]\nnespoon & \K[\MNSnwfilledspoon]\nwfilledspoon \\
+\K[\MNSdownspoon]\downspoon & \K[\MNSnnwfilledspoon]\nnwfilledspoon & \K[\MNSnwspoon]\nwspoon \\
+\K[\MNSleftfilledspoon]\leftfilledspoon & \K[\MNSnnwspoon]\nnwspoon & \K[\MNSrightfilledspoon]\rightfilledspoon \\
+\K[\MNSleftspoon]\leftspoon & \K[\MNSnrightfilledspoon]\nrightfilledspoon & \K[\MNSrightspoon]\rightspoon$^*$ \\
+\K[\MNSndownfilledspoon]\ndownfilledspoon & \K[\MNSnrightspoon]\nrightspoon$^*$ & \K[\MNSsefilledspoon]\sefilledspoon \\
+\K[\MNSndownspoon]\ndownspoon & \K[\MNSnsefilledspoon]\nsefilledspoon & \K[\MNSsespoon]\sespoon \\
+\K[\MNSnefilledspoon]\nefilledspoon & \K[\MNSnsespoon]\nsespoon & \K[\MNSswfilledspoon]\swfilledspoon \\
+\K[\MNSnespoon]\nespoon & \K[\MNSnswfilledspoon]\nswfilledspoon & \K[\MNSswspoon]\swspoon \\
+\K[\MNSnleftfilledspoon]\nleftfilledspoon & \K[\MNSnswspoon]\nswspoon & \K[\MNSupfilledspoon]\upfilledspoon \\
+\K[\MNSnleftspoon]\nleftspoon & \K[\MNSnupfilledspoon]\nupfilledspoon & \K[\MNSupspoon]\upspoon \\
+\K[\MNSnnefilledspoon]\nnefilledspoon & \K[\MNSnupspoon]\nupspoon & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ \MNS\ defines \cmdI[\MNSrightspoon]{\multimap} as a synonym for
+ \cmdI[\MNSrightspoon]{\rightspoon} and
+ \cmdI[\MNSnrightspoon]{\nmultimap} as a synonym for
+ \cmdI[\MNSnrightspoon]{\nrightspoon}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Pitchforks}
+\index{binary relations}
+\index{relational symbols>binary}
+\idxboth{pitchfork}{symbols}
+\label{mns-pitchforks}
+\begin{tabular}{*3{ll}}
+\K[\MNSdownpitchfork]\downpitchfork & \K[\MNSnnwpitchfork]\nnwpitchfork & \K[\MNSrightpitchfork]\rightpitchfork \\
+\K[\MNSleftpitchfork]\leftpitchfork & \K[\MNSnrightpitchfork]\nrightpitchfork & \K[\MNSsepitchfork]\sepitchfork \\
+\K[\MNSndownpitchfork]\ndownpitchfork & \K[\MNSnsepitchfork]\nsepitchfork & \K[\MNSswpitchfork]\swpitchfork \\
+\K[\MNSnepitchfork]\nepitchfork & \K[\MNSnswpitchfork]\nswpitchfork & \K[\MNSuppitchfork]\uppitchfork \\
+\K[\MNSnleftpitchfork]\nleftpitchfork & \K[\MNSnuppitchfork]\nuppitchfork & \\
+\K[\MNSnnepitchfork]\nnepitchfork & \K[\MNSnwpitchfork]\nwpitchfork & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ \MNS\ defines \cmdI[\MNSuppitchfork]{\pitchfork} as a synonym for
+ \cmdI[\MNSuppitchfork]{\uppitchfork} and
+ \cmdI[\MNSnuppitchfork]{\npitchfork} as a synonym for
+ \cmdI[\MNSnuppitchfork]{\nuppitchfork}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Smiles and Frowns}
+\index{binary relations}
+\index{relational symbols>binary}
+\idxboth{smile}{symbols}
+\idxboth{frown}{symbols}
+\label{mns-smile-frown}
+\begin{tabular}{*3{ll}}
+\K[\MNSdoublefrown]\doublefrown & \K[\MNSnsmileeq]\nsmileeq & \K[\MNSsmileeq]\smileeq \\
+\K[\MNSdoublefrowneq]\doublefrowneq & \K[\MNSnsmileeqfrown]\nsmileeqfrown & \K[\MNSsmileeqfrown]\smileeqfrown \\
+\K[\MNSdoublesmile]\doublesmile & \K[\MNSnsmilefrown]\nsmilefrown & \K[\MNSsmilefrown]\smilefrown \\
+\K[\MNSdoublesmileeq]\doublesmileeq & \K[\MNSnsmilefrowneq]\nsmilefrowneq & \K[\MNSsmilefrowneq]\smilefrowneq \\
+\K[\MNSeqfrown]\eqfrown & \K[\MNSnsqdoublefrown]\nsqdoublefrown & \K[\MNSsqdoublefrown]\sqdoublefrown \\
+\K[\MNSeqsmile]\eqsmile & \K[\MNSnsqdoublefrowneq]\nsqdoublefrowneq & \K[\MNSsqdoublefrowneq]\sqdoublefrowneq \\
+\K[\MNSfrown]\frown & \K[\MNSnsqdoublesmile]\nsqdoublesmile & \K[\MNSsqdoublesmile]\sqdoublesmile \\
+\K[\MNSfrowneq]\frowneq & \K[\MNSnsqdoublesmileeq]\nsqdoublesmileeq & \K[\MNSsqdoublesmileeq]\sqdoublesmileeq \\
+\K[\MNSfrowneqsmile]\frowneqsmile & \K[\MNSnsqeqfrown]\nsqeqfrown & \K[\MNSsqeqfrown]\sqeqfrown \\
+\K[\MNSfrownsmile]\frownsmile & \K[\MNSnsqeqsmile]\nsqeqsmile & \K[\MNSsqeqsmile]\sqeqsmile \\
+\K[\MNSfrownsmileeq]\frownsmileeq & \K[\MNSnsqfrown]\nsqfrown & \K[\MNSsqfrown]\sqfrown \\
+\K[\MNSndoublefrown]\ndoublefrown & \K[\MNSnsqfrowneq]\nsqfrowneq & \K[\MNSsqfrowneq]\sqfrowneq \\
+\K[\MNSndoublefrowneq]\ndoublefrowneq & \K[\MNSnsqfrowneqsmile]\nsqfrowneqsmile & \K[\MNSsqfrowneqsmile]\sqfrowneqsmile \\
+\K[\MNSndoublesmile]\ndoublesmile & \K[\MNSnsqfrownsmile]\nsqfrownsmile & \K[\MNSsqfrownsmile]\sqfrownsmile \\
+\K[\MNSndoublesmileeq]\ndoublesmileeq & \K[\MNSnsqsmile]\nsqsmile & \K[\MNSsqsmile]\sqsmile \\
+\K[\MNSneqfrown]\neqfrown & \K[\MNSnsqsmileeq]\nsqsmileeq & \K[\MNSsqsmileeq]\sqsmileeq \\
+\K[\MNSneqsmile]\neqsmile & \K[\MNSnsqsmileeqfrown]\nsqsmileeqfrown & \K[\MNSsqsmileeqfrown]\sqsmileeqfrown \\
+\K[\MNSnfrown]\nfrown & \K[\MNSnsqsmilefrown]\nsqsmilefrown & \K[\MNSsqsmilefrown]\sqsmilefrown \\
+\K[\MNSnfrowneq]\nfrowneq & \K[\MNSnsqtriplefrown]\nsqtriplefrown & \K[\MNSsqtriplefrown]\sqtriplefrown \\
+\K[\MNSnfrowneqsmile]\nfrowneqsmile & \K[\MNSnsqtriplesmile]\nsqtriplesmile & \K[\MNSsqtriplesmile]\sqtriplesmile \\
+\K[\MNSnfrownsmile]\nfrownsmile & \K[\MNSntriplefrown]\ntriplefrown & \K[\MNStriplefrown]\triplefrown \\
+\K[\MNSnfrownsmileeq]\nfrownsmileeq & \K[\MNSntriplesmile]\ntriplesmile & \K[\MNStriplesmile]\triplesmile \\
+\K[\MNSnsmile]\nsmile & \K[\MNSsmile]\smile & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ \MNS\ defines \cmdI[\MNSsmile]{\smallsmile} as a synonym for
+ \cmdI[\MNSsmile]{\smile}, \cmdI[\MNSfrown]{\smallfrown} as a synonym
+ for \cmdI[\MNSfrown]{\frown}, \cmdI[\MNSsmilefrown]{\asymp} as a
+ synonym for \cmdI[\MNSsmilefrown]{\smilefrown}, and
+ \cmdI[\MNSnsmilefrown]{\nasymp} as a synonym for
+ \cmdI[\MNSnsmilefrown]{\nsmilefrown}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ULSY]{\ULSY\ Contradiction Symbols}
+\idxboth{contradiction}{symbols}
+\label{ulsy}\medskip
+\begin{tabular}{*6{ll}}
+\K\blitza & \K\blitzb & \K\blitzc & \K\blitzd & \K\blitze \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Extension Characters}
+\index{extension characters}
+\label{ext}
+\begin{tabular}{*2{ll}}
+\X\relbar & \X\Relbar \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ST]{\ST\ Extension Characters}
+\index{extension characters}
+\label{st-ext}
+\begin{tabular}{*3{ll}}
+\X\Arrownot &\X\Mapsfromchar &\X\Mapstochar \\
+\X\arrownot &\X\mapsfromchar
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Extension Characters}
+\index{extension characters}
+\label{txpx-ext}
+\begin{tabular}{*3{ll}}
+\X\Mappedfromchar & \X\Mmappedfromchar & \X\Mmapstochar \\
+\X\mappedfromchar & \X\mmappedfromchar & \X\mmapstochar \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Extension Characters}
+\index{extension characters}
+\label{abx-ext}
+\begin{tabular}{*3{ll}}
+\X[\ABXmapsfromchar]\mapsfromchar & \X[\ABXmapstochar]\mapstochar \\
+\X[\ABXMapsfromchar]\Mapsfromchar & \X[\ABXMapstochar]\Mapstochar \\
+\end{tabular}
+\end{symtable}
+
+
+
+\begin{symtable}{Log-like Symbols}
+\idxboth{log-like}{symbols}
+\index{atomic math objects}
+\index{limits}
+\label{log}
+\begin{tabular}{*8l}
+\Z\arccos & \Z\cos & \Z\csc & \Z\exp & \Z\ker & \Z\limsup & \Z\min & \Z\sinh \\
+\Z\arcsin & \Z\cosh & \Z\deg & \Z\gcd & \Z\lg & \Z\ln & \Z\Pr & \Z\sup \\
+\Z\arctan & \Z\cot & \Z\det & \Z\hom & \Z\lim & \Z\log & \Z\sec & \Z\tan \\
+\Z\arg & \Z\coth & \Z\dim & \Z\inf & \Z\liminf & \Z\max & \Z\sin & \Z\tanh
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ Calling the above ``symbols'' may be a bit
+ misleading.\footnotemark{} Each log-like symbol merely produces the
+ eponymous textual equivalent, but with proper surrounding spacing.
+ See Section~\ref{math-spacing} for more information about log-like
+ symbols. As \cmd{\bmod} and \cmd{\pmod} are arguably not symbols we
+ refer the reader to the Short Math Guide for
+ \latex~\cite{Downes:smg} for samples.
+\end{tablenote}
+\end{symtable}
+\footnotetext{Michael\index{Downes, Michael J.} J. Downes prefers the
+more general term, ``atomic\index{atomic math objects} math objects''.}
+
+
+\begin{symtable}[AMS]{\AMS\ Log-like Symbols}
+\idxboth{log-like}{symbols}
+\index{atomic math objects}
+\index{limits}
+\label{ams-log}
+\renewcommand{\arraystretch}{1.5} % Keep tall symbols from touching.
+\begin{tabular}{*2{ll@{\qquad}}ll}
+\X\injlim & \X\varinjlim & \X\varlimsup \\
+\X\projlim & \X\varliminf & \X\varprojlim
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ Load the \pkgname{amsmath} package to get these symbols. See
+ Section~\ref{math-spacing} for some additional comments regarding
+ log-like symbols. As \cmd{\mod} and \cmd{\pod} are arguably not
+ symbols we refer the reader to the Short Math Guide for
+ \latex~\cite{Downes:smg} for samples.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{Greek Letters}
+\index{Greek}\index{alphabets>Greek}
+\label{greek}
+\begin{tabular}{*8l}
+\X\alpha &\X\theta &\X o &\X\tau \\
+\X\beta &\X\vartheta &\X\pi &\X\upsilon \\
+\X\gamma &\X\iota &\X\varpi &\X\phi \\
+\X\delta &\X\kappa &\X\rho &\X\varphi \\
+\X\epsilon &\X\lambda &\X\varrho &\X\chi \\
+\X\varepsilon &\X\mu &\X\sigma &\X\psi \\
+\X\zeta &\X\nu &\X\varsigma &\X\omega \\
+\X\eta &\X\xi \\
+ \\
+\X\Gamma &\X\Lambda &\X\Sigma &\X\Psi \\
+\X\Delta &\X\Xi &\X\Upsilon &\X\Omega \\
+\X\Theta &\X\Pi &\X\Phi
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ The remaining Greek majuscules\index{majuscules} can be produced
+ with ordinary Latin letters. The symbol ``M'', for instance, is
+ used for both an uppercase ``m'' and an uppercase ``$\mu$''. See
+ Section~\ref{bold-math} for examples of how to produce bold Greek
+ letters.\index{Greek>bold}
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Greek Letters}
+\index{Greek}\index{alphabets>Greek}
+\label{ams-greek}
+\begin{tabular}{*4l}
+\X\digamma &\X\varkappa
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Upright Greek Letters}
+\index{Greek}\index{alphabets>Greek}
+\index{Greek>upright}
+\index{upright Greek letters}
+\label{txpx-greek}
+\begin{tabular}{*4{ll}}
+\X\alphaup & \X\thetaup & \X\piup & \X\phiup \\
+\X\betaup & \X\varthetaup & \X\varpiup & \X\varphiup \\
+\X\gammaup & \X\iotaup & \X\rhoup & \X\chiup \\
+\X\deltaup & \X\kappaup & \X\varrhoup & \X\psiup \\
+\X\epsilonup & \X\lambdaup & \X\sigmaup & \X\omegaup \\
+\X\varepsilonup & \X\muup & \X\varsigmaup \\
+\X\zetaup & \X\nuup & \X\tauup \\
+\X\etaup & \X\xiup & \X\upsilonup \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[UPGR]{\UPGR\ Upright Greek Letters}
+\index{Greek}\index{alphabets>Greek}
+\index{Greek>upright}
+\index{upright Greek letters}
+\label{upgreek-greek}
+\begin{tabular}{*4{ll}}
+\K\upalpha & \K\uptheta & \K\uppi & \K\upphi \\
+\K\upbeta & \K\upvartheta & \K\upvarpi & \K\upvarphi \\
+\K\upgamma & \K\upiota & \K\uprho & \K\upchi \\
+\K\updelta & \K\upkappa & \K\upvarrho & \K\uppsi \\
+\K\upepsilon & \K\uplambda & \K\upsigma & \K\upomega \\
+\K\upvarepsilon & \K\upmu & \K\upvarsigma \\
+\K\upzeta & \K\upnu & \K\uptau \\
+\K\upeta & \K\upxi & \K\upupsilon \\
+ \\
+\K\Upgamma & \K\Uplambda & \K\Upsigma & \K\Uppsi \\
+\K\Updelta & \K\Upxi & \K\Upupsilon & \K\Upomega \\
+\K\Uptheta & \K\Uppi & \K\Upphi \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ \UPGR\ utilizes upright Greek characters from either the
+ \postscript \PSfont{Symbol} font (depicted above) or Euler
+ Roman.\index{Euler Roman} As a result, the glyphs may appear
+ slightly different from the above. Contrast, for example,
+ ``\Upgamma\Updelta\Uptheta\upalpha\upbeta\upgamma''~(Symbol) with
+ ``{\usefont{U}{eur}{m}{n}\char"00\char"01\char"02\char"0B\char"0C\char"0D}''~(Euler).
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Variant Latin Letters}
+\index{letters>variant Latin}
+\label{txpx-variant}
+\begin{tabular}{*3{ll@{\qquad}}ll}
+\X\varg & \X\varv & \X\varw & \X\vary \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ \newcommand*{\txital}[1]{{\usefont{T1}{txr}{m}{it}#1}}
+ Pass the \optname{txfonts/pxfonts}{varg} option to \TXPX\ to
+ replace~\txital{g}, \txital{v}, \txital{w}, and~\txital{y}
+ with~$\varg$, $\varv$, $\varw$, and~$\vary$ in every mathematical
+ expression in your document.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Hebrew Letters}
+\index{Hebrew}\index{alphabets>Hebrew}
+\label{ams-hebrew}
+\begin{tabular}{*6l}
+\X\beth & \X\gimel & \X\daleth
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+\cmdX{\aleph}~($\aleph$) appears in Table~\vref{ord}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Hebrew Letters}
+\index{Hebrew}\index{alphabets>Hebrew}
+\label{mns-hebrew}
+\begin{tabular}{*8l}
+\K[\MNSaleph]\aleph & \K[\MNSbeth]\beth & \K[\MNSgimel]\gimel & \K[\MNSdaleth]\daleth
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Letter-like Symbols}
+\idxboth{letter-like}{symbols}
+\index{tacks}
+\label{letter-like}
+\begin{tabular}{*5{ll}}
+\X\bot & \X\forall & \X\imath & \X\ni & \X\top \\
+\X\ell & \X\hbar & \X\in & \X\partial & \X\wp \\
+\X\exists & \X\Im & \X\jmath & \X\Re \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Letter-like Symbols}
+\idxboth{letter-like}{symbols}
+\label{ams-letter-like}
+\begin{tabular}{*3{ll}}
+\X\Bbbk & \X\complement & \X\hbar \\
+\X\circledR & \X\Finv & \X\hslash \\
+\X\circledS & \X\Game & \X\nexists \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[TX]{\TXPX\ Letter-like Symbols}
+\idxboth{letter-like}{symbols}
+\label{txpx-letter-like}
+\begin{tabular}{*4{ll}}
+\X\mathcent & \X\mathsterling$^*$ & \X\notin & \X\notni \\
+\end{tabular}
+
+\bigskip
+\usetextmathmessage[*]
+
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Letter-like Symbols}
+\idxboth{letter-like}{symbols}
+\label{abx-letter-like}
+\begin{tabular}{*4{ll}}
+\X[\ABXbarin]\barin & \X[\ABXin]\in & \X[\ABXnottop]\nottop & \X[\ABXvarnotin]\varnotin \\
+\X[\ABXcomplement]\complement & \X[\ABXnexists]\nexists & \X[\ABXowns]\owns & \X[\ABXvarnotowner]\varnotowner \\
+\X[\ABXexists]\exists & \X[\ABXnotbot]\notbot & \X[\ABXownsbar]\ownsbar \\
+\X[\ABXFinv]\Finv & \X[\ABXnotin]\notin & \X[\ABXpartial]\partial \\
+\X[\ABXGame]\Game & \X[\ABXnotowner]\notowner & \X[\ABXpartialslash]\partialslash \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Letter-like Symbols}
+\idxboth{letter-like}{symbols}
+\label{mns-letter-like}
+\begin{tabular}{*4{ll}}
+\K[\MNSbot]\bot & \K[\MNSin]\in & \K[\MNSnowns]\nowns$^*$ & \K[\MNStop]\top \\
+\K[\MNSexists]\exists & \K[\MNSnexists]\nexists & \K[\MNSowns]\owns & \K[\MNSwp]\wp \\
+\K[\MNSforall]\forall & \K[\MNSnin]\nin$^*$ & \K[\MNSpowerset]\powerset \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ \MNS\ provides synonyms \cmdI[\MNSnin]{\notin} for
+ \cmdI[\MNSnin]{\nin}, \cmdI[\MNSowns]{\ni} for
+ \cmdI[\MNSowns]{\owns}, and \cmdI[\MNStop]{\intercal} for
+ \cmdI[\MNStop]{\top}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[TRF]{\TRF\ Letter-like Symbols}
+\idxboth{letter-like}{symbols}
+\label{trf-letter-like}
+\begin{tabular}{ll@{\hspace*{3em}}ll}
+\X\e & \X\im \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MDES]{\MDES\ Letter-like Symbols}
+\idxboth{letter-like}{symbols}
+\label{mdes-letter-like}
+\begin{tabular}{*2{ll}}
+\K[\MDESin]\in & \K[\MDESowns]\owns \\
+\K[\MDESnotin]\notin & \K[\MDESsmallin]\smallin \\
+\K[\MDESnotsmallin]\notsmallin & \K[\MDESsmallowns]\smallowns \\
+\K[\MDESnotsmallowns]\notsmallowns & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+\ifAMS
+ The \MDES\ package additionally provides versions of each of the
+ letter-like symbols shown in Table~\vref{ams-letter-like}.
+\else
+ The \MDES\ package additionally provides versions of each of the
+ \AMS\ letter-like symbols.
+\fi
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[FGE]{\FGE\ Letter-like Symbols}
+\idxboth{letter-like}{symbols}
+\idxboth{Frege logic}{symbols}
+\label{fge-letter-like}
+\begin{tabular}{*3{ll@{\hspace*{3em}}}ll}
+\K\fgeA & \K\fgeeszett & \K\fgeleftB & \K\fgeU \\
+\K\fgec & \K\fgeF & \K\fgeleftC & \\
+\K\fged & \K\fgef & \K\fgerightB & \\
+\K\fgee & \K\fgelb$^*$ & \K\fges & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ The \FGE\ package defines \cmdI[\fgelb]{\fgeeta},
+ \cmdI[\fgelb]{\fgeN}, and \cmdI[\fgelb]{\fgeoverU} as synonyms for
+ \cmd{\fgelb}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Delimiters}
+\index{delimiters}
+\label{ams-del}
+\begin{tabular}{*2{ll}}
+\X\ulcorner & \X\urcorner \\
+\X\llcorner & \X\lrcorner
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ST]{\ST\ Delimiters}
+\index{delimiters}
+\label{st-del}
+\begin{tabular}{*4{ll}}
+\X\Lbag &\X\Rbag &\X\lbag &\X\rbag \\
+\X\llceil &\X\rrceil &\X\llfloor &\X\rrfloor \\
+\X\llparenthesis &\X\rrparenthesis
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Delimiters}
+\index{delimiters}
+\label{abx-del}
+\begin{tabular}{ll@{\hspace*{2em}}ll}
+\X[\ABXlcorners]\lcorners & \X[\ABXrcorners]\rcorners \\[3ex]
+\X[\ABXulcorner]\ulcorner & \X[\ABXurcorner]\urcorner \\
+\X[\ABXllcorner]\llcorner & \X[\ABXlrcorner]\lrcorner \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[NATH]{\NATH\ Delimiters}
+\index{delimiters}
+\label{nath-del}
+\begin{tabular}{ll@{\hspace*{3em}}ll}
+\X\niv & \X\vin \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Variable-sized Delimiters}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\label{dels}
+\renewcommand{\arraystretch}{1.75} % Keep tall symbols from touching.
+\begin{tabular}{lll@{\qquad}lll@{\hspace*{1.5cm}}lll@{\qquad}lll}
+\N\downarrow & \N\Downarrow & \N{[} & \N[\magicrbrack]{]} \\
+\N\langle & \N\rangle & \Np[\vert][\magicvertname]|
+ & \Np[\Vert][\magicVertname]\| \\
+\N\lceil & \N\rceil & \N\uparrow & \N\Uparrow \\
+\N\lfloor & \N\rfloor & \N\updownarrow & \N\Updownarrow \\
+\N( & \N) & \Np\{ & \Np\} \\
+\N/ & \N\backslash \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ When used with \cmd{\left} and \cmd{\right}, these symbols expand to
+ the height of the enclosed math expression. Note that \cmdX{\vert}
+ is a synonym for \verb+|+, and \cmdX{\Vert} is a synonym for
+ \verb+\|+.
+
+ $\varepsilon$-\TeX{}\index{e-tex=$\varepsilon$-\TeX} provides a
+ \cmd{\middle} analogue to \cmd{\left} and \cmd{\right}.
+ \cmd{\middle} can be used, for example, to make an internal ``$|$''
+ expand to the height of the surrounding \cmd{\left} and \cmd{\right}
+ symbols. (This capability is commonly needed when typesetting
+ adjacent bras\index{bra} and kets\index{ket} in Dirac\index{Dirac
+ notation} notation: ``$\langle\phi\vert\psi\rangle$''). A similar
+ effect can be achieved in conventional \latex using the
+ \pkgname{braket} package.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{Large, Variable-sized Delimiters}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\label{ldels}
+\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
+\begin{tabular}{*3{lll@{\qquad}}lll}
+\Y\lmoustache & \Y\rmoustache & \Y\lgroup & \Y\rgroup \\
+\Y\arrowvert & \Y\Arrowvert & \Y\bracevert
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ These symbols \emph{must} be used with \cmd{\left} and \cmd{\right}.
+ The \ABX\ package, however, redefines
+ \cmdI[$\string\big\string\lgroup$]{\lgroup} and
+ \cmdI[$\string\big\string\rgroup$]{\rgroup} so that those symbols
+ can work without \cmd{\left} and \cmd{\right}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Variable-sized Delimiters}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\label{ams-var-del}
+\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
+\begin{tabular}{lll@{\qquad}lll}
+\N\lvert & \N\rvert \\
+\N\lVert & \N\rVert \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ According to the \texttt{amsmath}
+ documentation~\cite{AMS1999:amsmath}, the preceding symbols are
+ intended to be used as delimiters (e.g.,~as in ``$\lvert -z
+ \rvert$'') while the \cmdX{\vert} and \cmdX{\Vert} symbols
+ (Table~\vref{dels}) are intended to be used as operators (e.g.,~as
+ in ``$p \vert q$'').
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ST]{\ST\ Variable-sized Delimiters}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\label{st-var-del}
+\begin{tabular}{lll@{\qquad}lll}
+\N\llbracket & \N\rrbracket
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Variable-sized Delimiters}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\idxboth{wavy-line}{delimiters}
+\label{abx-var-dels}
+\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
+\begin{tabular}{lll@{\qquad}lll}
+\N[\ABXldbrack]\ldbrack & \N[\ABXrdbrack]\rdbrack \\
+\Nbig[\ABXlfilet]\lfilet & \Nbig[\ABXrfilet]\rfilet \\
+\N[\ABXthickvert]\thickvert & \N[\ABXvvvert]\vvvert \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Variable-sized Delimiters}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\idxboth{wavy-line}{delimiters}
+\label{mns-var-dels}
+\renewcommand{\arraystretch}{3} % Keep tall symbols from touching.
+\begin{tabular}{lll@{\qquad}lll@{\hspace*{3em}}lll@{\qquad}lll}
+
+\KNbig[\MNStlceil][\MNSdlceil]\lceil & \KNbig[\MNStrceil][\MNSdrceil]\rceil & \KNbig[\MNStulcorner][\MNSdulcorner]\ulcorner & \KNbig[\MNSturcorner][\MNSdurcorner]\urcorner \\
+\KNbig[\MNStlfloor][\MNSdlfloor]\lfloor & \KNbig[\MNStrfloor][\MNSdrfloor]\rfloor & \KNbig[\MNStllcorner][\MNSdllcorner]\llcorner & \KNbig[\MNStlrcorner][\MNSdlrcorner]\lrcorner \\
+\KNbig[\MNStlwavy][\MNSdlwavy]\lwavy & \KNbig[\MNStrwavy][\MNSdrwavy]\rwavy & \KNbig[\MNStlangle][\MNSdlangle]\langle & \KNbig[\MNStrangle][\MNSdrangle]\rangle \\
+\KNbig[\MNStlWavy][\MNSdlWavy]\lWavy & \KNbig[\MNStrWavy][\MNSdrWavy]\rWavy & \KNbig[\MNStlanglebar][\MNSdlanglebar]\langlebar & \KNbig[\MNStranglebar][\MNSdranglebar]\ranglebar \\
+\KNbig[\MNStlparen][\MNSdlparen]( & \KNbig[\MNStrparen][\MNSdrparen]) & \KNbig[\MNStlgroup][\MNSdlgroup]\lgroup & \KNbig[\MNStrgroup][\MNSdrgroup]\rgroup \\
+\KNbig[\MNStlsem][\MNSdlsem]\lsem & \KNbig[\MNStrsem][\MNSdrsem]\rsem & \KNbig[\MNStllangle][\MNSdllangle]\llangle & \KNbig[\MNStrrangle][\MNSdrrangle]\rrangle \\
+\KNbig[\MNStlmoustache][\MNSdlmoustache]\lmoustache & \KNbig[\MNStrmoustache][\MNSdrmoustache]\rmoustache & \KNbig[\MNStlbrace][\MNSdlbrace]\lbrace & \KNbig[\MNStrbrace][\MNSdrbrace]\rbrace \\
+\KNbig[\MNStslash][\MNSdslash]/ & \KNbig[\MNStbackslash][\MNSdbackslash]\backslash & \KNbig[\MNStless][\MNSdless]< & \KNbig[\MNStgreater][\MNSdgreater]> \\
+\KNbig[\MNStlbracket][\MNSdlbracket]{[} & \KNbig[\MNStrbracket][\MNSdrbracket]{]} & \KNbig[\MNStullcorner][\MNSdullcorner]\ullcorner & \KNbig[\MNStulrcorner][\MNSdulrcorner]\ulrcorner \\
+\KNbig[\MNStvert][\MNSdvert]| & \KNbig[\MNStVert][\MNSdVert]\| & \KNbig[\MNStbracevert][\MNSdbracevert]\bracevert \\
+\KNbig[\MNStarrowvert][\MNSdarrowvert]\arrowvert & \KNbig[\MNStArrowvert][\MNSdArrowvert]\Arrowvert \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \cmdX{\vert} is a synonym for \verb+|+. \cmdX{\Vert} is a synonym
+ for \verb+\|+. \cmdX{\mid} and \verb|\mvert| produce the same
+ symbol as \cmdX{\vert} but designated as math relations instead of
+ ordinals. \verb|\divides| produces the same symbol as \cmdX{\vert}
+ but designated as a binary operator instead of an ordinal.
+ \cmdX{\parallel} and \verb|\mVert| produce the same symbol as
+ \cmdX{\Vert} but designated as math relations instead of ordinals.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MDES]{\MDES\ Variable-sized Delimiters}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\idxboth{wavy-line}{delimiters}
+\label{mdes-var-dels}
+\renewcommand{\arraystretch}{2.75} % Keep tall symbols from touching.
+\begin{tabular}{lll@{\qquad}lll}
+\KNbig[\MDESleftwavelet][\MDESleftwave]\leftwave &
+\KNbig[\MDESleftwavelet][\MDESleftwave]\rightwave \\
+\KNbig[\MDESleftevawlet][\MDESleftevaw]\leftevaw &
+\KNbig[\MDESleftevawlet][\MDESleftevaw]\rightevaw \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ The definitions of these symbols include a preceding \cmd{\left} or
+ \cmd{\right}. It is therefore an error to specify \cmd{\left} or
+ \cmd{\right} explicitly. The internal, ``primitive'' versions of
+ these symbols are called \cmdI[\MDESleftwave]{\lwave},
+ \cmdI[\MDESleftwave]{\rwave}, \cmdI[\MDESleftevaw]{\levaw}, and
+ \cmdI[\MDESleftevaw]{\revaw}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[NATH]{\NATH\ Variable-sized Delimiters (Double)}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\label{nath-var-dels-double}
+\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
+\begin{tabular}{lll@{\qquad}lll}
+\Nn[\langle]\lAngle & \Nn[\rangle]\rAngle \\
+\Nn[{[}]\lBrack & \Nn[\magicrbrack]\rBrack \\
+\Nn[\lceil]\lCeil & \Nn[\rceil]\rCeil \\
+\Nn[\lfloor]\lFloor & \Nn[\rfloor]\rFloor \\
+\Nn[\vert]\lVert$^*$ & \Nn[\vert]\rVert$^*$ \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ \NATH\ redefines all of the above to include implicit \cmd{\left}
+ and \cmd{\right} commands. Hence, separate \verb+\lVert+ and
+ \verb+\rVert+ commands are needed to disambiguate whether
+ ``\verb+|+'' is a left or right delimiter.
+\end{tablenote}
+
+\bigskip
+\begin{tablenote}
+ All of the symbols in Table~\ref{nath-var-dels-double} can also be
+ expressed using the \cmd{\double} macro. See the \NATH\
+ documentation for examples and additional information.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[NATH]{\NATH\ Variable-sized Delimiters (Triple)}
+\index{delimiters}
+\index{delimiters>variable-sized}
+\label{nath-var-dels-triple}
+\renewcommand{\arraystretch}{2.5} % Keep tall symbols from touching.
+\begin{tabular}{lll@{\qquad}lll}
+\Nnt{}[\langle]< & \Nnt{}[\rangle]> \\
+\Nnt{}[{[}]{[} & \Nnt{}[\magicrbrack]{]} \\
+\Nnt{l}[\vert]|$^*$ & \Nnt{r}[\vert]|$^*$ \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ Similar to \verb+\lVert+ and \verb+\rVert+ in
+ Table~\ref{nath-var-dels-double}, \cmd{\ltriple} and \cmd{\rtriple}
+ must be used instead of \cmd{\triple} to disambiguate whether
+ ``\verb+|+'' is a left or right delimiter.
+\end{tablenote}
+
+\bigskip
+\begin{tablenote}
+ Note that \cmd{\triple}---and the corresponding \cmd{\double}---is
+ actually a macro that takes a delimiter as an argument.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{\TC\ Text-mode Delimiters}
+\index{delimiters}
+\index{delimiters>text-mode}
+\label{tc-delimiters}
+\begin{tabular}{*2{ll}}
+\K\textlangle & \K\textrangle \\
+\K\textlbrackdbl & \K\textrbrackdbl \\
+\K\textlquill & \K\textrquill \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[METRE]{\METRE\ Text-mode Delimiters}
+\index{delimiters}
+\index{delimiters>text-mode}
+\label{metre-delimiters}
+\begin{tabular}{*2{ll}@{\hspace*{3em}}*2{ll}}
+\K\alad & \K\Alad & \K\crux & \K\Crux \\
+\K\alas & \K\Alas & \K\quadrad & \K\Quadrad \\
+\K\angud & \K\Angud & \K\quadras & \K\Quadras \\
+\K\angus & \K\Angus \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Math-mode Accents}
+\index{accents}
+\index{tilde}
+\label{math-accents}
+\begin{tabular}{*4{ll}}
+\W\acute{a} & \W\check{a} & \W\grave{a} & \W\tilde{a} \\
+\W\bar{a} & \W\ddot{a} & \W\hat{a} & \W\vec{a} \\
+\W\breve{a} & \W\dot{a} & \W\mathring{a} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \index{dotless i=dotless $i~(\imath)$>math mode}
+ \index{dotless j=dotless $j~(\jmath)$>math mode}
+ Also note the existence of \cmdX{\imath} and \cmdX{\jmath}, which
+ produce dotless versions of ``\textit{i}'' and ``\textit{j}''. (See
+ Table~\vref{ord}.) These are useful when the accent is supposed to
+ replace the dot. For example, ``\verb|\hat{\imath}|'' produces a
+ correct ``$\,\hat{\imath}\,$'', while ``\verb|\hat{i}|'' would yield
+ the rather odd-looking ``\,$\hat{i}\,$''.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Math-mode Accents}
+\index{accents}
+\label{ams-math-accents}
+\begin{tabular}{ll@{\hspace*{2em}}ll}
+\W\dddot{a} & \W\ddddot{a} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ These accents are also provided by the \ABX\ and \pkgname{accents}
+ packages and are redefined by the \MDOTS\ package if the
+ \pkgname{amsmath} and \pkgname{amssymb} packages have previously
+ been loaded. All of the variations except for the original \AMS\
+ ones tighten the space between the dots%
+\ifMDOTS
+ ~(from~$\dddot{a}$ to~$\MDOTSdddot{a}$)%
+\else
+ \ifABX
+ ~(from~$\dddot{a}$ to~$\ABXdddot{a}$)%
+ \else
+ \ifACCENTS
+ ~(from~$\dddot{a}$ to~$\ACCENTSdddot{a}$)%
+ \fi
+ \fi
+\fi
+. The \ABX\ and \MDOTS\ versions also function properly
+within subscripts and superscripts%
+\ifMDOTS
+ ~($x^{\MDOTSdddot{a}}$ instead of~$x^{\dddot{a}}$)
+\else
+ \ifABX
+ ~($x^{\ABXdddot{a}}$ instead of~$x^{\dddot{a}}$)
+ \fi
+\fi
+.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Math-mode Accents}
+\index{accents}
+\label{mns-math-accents}
+\begin{tabular}{ll}
+\W[\MNSvec]\vec{a} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[FGE]{\FGE\ Math-mode Accents}
+\index{accents}
+\label{fge-math-accents}
+\begin{tabular}{ll}
+\Q\spirituslenis$^*$ \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ When \FGE\ is passed the \optname{fge}{crescent} option,
+ \cmdI[\string\blackacc{\string\spirituslenisB}]{\spirituslenis}
+ instead uses a crescent accent as in~``\,\spirituslenisB{a}\,''.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[YH]{\YH\ Math-mode Accents}
+\index{accents}
+\label{yhmath-accents}
+\begin{tabular}{ll}
+\W\ring{a}
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ This symbol is largely obsolete, as standard \latexE has supported
+ \cmdI[$\string\blackacc{\string\mathring}$]{\mathring} since
+ June,~1998~\cite{ltnews09}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{Extensible Accents}
+\index{accents}
+\idxboth{extensible}{accents}
+\idxboth{extensible}{arrows}
+\index{tilde}
+\index{tilde>extensible}
+\index{extensible tildes}
+\index{symbols>extensible}
+\label{extensible-accents}
+\renewcommand{\arraystretch}{1.5}
+\begin{tabular}{*4l}
+\W\widetilde{abc}$^*$ & \W\widehat{abc}$^*$ \\
+\W\overleftarrow{abc}$^\dag$ & \W\overrightarrow{abc}$^\dag$ \\
+\W\overline{abc} & \W\underline{abc} \\
+\W\overbrace{abc} & \W\underbrace{abc} \\[5pt]
+\W\sqrt{abc}$^\ddag$ \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \def\longdivsign{%
+ \ensuremath{\overline{\vphantom{)}%
+ \hbox{\smash{\raise3.5\fontdimen8\textfont3\hbox{$)$}}}%
+ abc}}}
+
+ \index{long division|(}
+ \index{division|(}
+ \index{polynomial division|(}
+
+ As demonstrated in a 1997 TUGboat\index{TUGboat} article about
+ typesetting long-division problems~\cite{Gibbons:longdiv}, an
+ extensible long-division sign (``\,\longdivsign\,'') can be faked by
+ putting a ``\verb|\big)|'' in a \texttt{tabular} environment with an
+ \verb|\hline| or \verb|\cline| in the preceding row. The article
+ also presents a piece of code (uploaded to CTAN\idxCTAN{} as
+ \texttt{longdiv.tex}%
+ \index{longdiv=\textsf{longdiv} (package)}%
+ \index{packages>\textsf{longdiv}}) that automatically solves and
+ typesets---by putting an \cmdW{\overline} atop ``\verb|\big)|'' and
+ the desired text---long-division problems. See also the
+ \pkgname{polynom} package, which automatically solves and typesets
+ polynomial-division problems in a similar manner.
+
+ \index{long division|)}
+ \index{division|)}
+ \index{polynomial division|)}
+\end{tablenote}
+
+\bigskip
+
+\begin{tablenote}[*]
+ These symbols are made more extensible by the \MNS\ package and even
+ more extensible by the \YH\ package.
+\end{tablenote}
+
+\bigskip
+
+\begin{tablenote}[\dag]
+ If you're looking for an extensible \emph{diagonal} line or arrow to
+ be used for canceling or reducing mathematical
+ subexpressions\index{arrows>diagonal, for reducing subexpressions}
+\ifhavecancel
+ (e.g.,~``$\cancel{x + -x}$'' or ``$\cancelto{5}{3+2}\quad$'')
+\fi
+ then consider using the \pkgname{cancel} package.
+\end{tablenote}
+
+\bigskip
+
+\begin{tablenote}[\ddag]
+ With an optional argument, \verb|\sqrt| typesets nth roots. For
+ example, ``\verb|\sqrt[3]{abc}|'' produces~``$\!\sqrt[3]{abc}$\,''
+ and ``\verb|\sqrt[n]{abc}|'' produces~``$\!\sqrt[n]{abc}$\,''.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ORA]{\ORA\ Extensible Accents}
+\index{accents}
+\idxboth{extensible}{accents}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{ora-extensible-accents}
+\begin{tabular}{ll}
+\W\Overrightarrow{abc} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[YH]{\YH\ Extensible Accents}
+\idxboth{extensible}{accents}
+\index{symbols>extensible}
+\label{yhmath-extensible-accents}
+\renewcommand{\arraystretch}{1.5}
+\begin{tabular}{*4l}
+\W\wideparen{abc} & \W\widetriangle{abc} \\[5pt]
+\W\widering{abc} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Extensible Accents}
+\idxboth{extensible}{accents}
+\index{symbols>extensible}
+\label{ams-extensible-accents}
+\renewcommand{\arraystretch}{1.5}
+\begin{tabular}{ll@{\qquad}ll}
+\W\overleftrightarrow{abc} & \W\underleftrightarrow{abc} \\
+\W\underleftarrow{abc} & \W\underrightarrow{abc} \\[2ex]
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Extensible Accents}
+\idxboth{extensible}{accents}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{mns-extensible-accents}
+\renewcommand{\arraystretch}{1.75}
+\begin{tabular}{ll@{\qquad}ll}
+\W[\MNSoverbrace]\overbrace{abc} & \W[\MNSunderbrace]\underbrace{abc} \\
+\W[\MNSovergroup]\overgroup{abc} & \W[\MNSundergroup]\undergroup{abc} \\
+\W[\MNSoverlinesegment]\overlinesegment{abc} & \W[\MNSunderlinesegment]\underlinesegment{abc} \\
+\W[\MNSoverleftharpoon]\overleftharpoon{abc} & \W[\MNSoverrightharpoon]\overrightharpoon{abc} \\
+\W[\MNSwidehat]\widehat{abc} & \W[\MNSwidetilde]\widetilde{abc} \\
+\W[\MNSwideparen]\wideparen{abc} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MTOOLS]{\MTOOLS\ Extensible Accents}
+\idxboth{extensible}{accents}
+\index{symbols>extensible}
+\label{mathtools-extensible-accents}
+\renewcommand{\arraystretch}{1.5}
+\begin{tabular}{ll@{\qquad}ll}
+\W[\MTOOLSoverbrace]\overbrace{abc} & \W[\MTOOLSunderbrace]\underbrace{abc} \\
+\W[\MTOOLSoverbracket]\overbracket{abc}$^*$ & \W[\MTOOLSunderbracket]\underbracket{abc}$^*$ \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ \verb|\overbracket| and \verb|\underbracket| accept optional
+ arguments that specify the bracket height and thickness.
+ \seedocs{\MTOOLS}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Extensible Accents}
+\index{accents}
+\idxboth{extensible}{accents}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{abx-extensible-accents}
+\renewcommand{\arraystretch}{1.75}
+\begin{tabular}{ll@{\qquad}ll}
+\W[\ABXoverbrace]\overbrace{abc} & \W[\ABXwidebar]\widebar{abc} \\
+\W[\ABXovergroup]\overgroup{abc} & \W[\ABXwidecheck]\widecheck{abc} \\
+\W[\ABXunderbrace]\underbrace{abc} & \W[\ABXwideparen]\wideparen{abc} \\
+\W[\ABXundergroup]\undergroup{abc} & \W[\ABXwidering]\widering{abc} \\
+\W[\ABXwidearrow]\widearrow{abc} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ The braces shown for \verb|\overbrace| and \verb|\underbrace| appear
+ in their minimum size. They can expand arbitrarily wide, however.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ESV]{\ESV\ Extensible Accents}
+\index{accents}
+\idxboth{extensible}{accents}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{esv-extensible-accents}
+\renewcommand{\arraystretch}{1.5}
+\begin{tabular}{ll}
+\VV{a}{abc} \\
+\VV{b}{abc} \\
+\VV{c}{abc} \\
+\VV{d}{abc} \\
+\VV{e}{abc} \\
+\VV{f}{abc} \\
+\VV{g}{abc} \\
+\VV{h}{abc} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \ESV\ also defines a \verb|\vv*| macro which is used to typeset
+ arrows over vector variables with subscripts. \seedocs{\ESV}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[UTILD]{\UTILD\ Extensible Accents}
+\index{accents}
+\idxboth{extensible}{accents}
+\index{tilde>extensible}
+\index{extensible tildes}
+\index{tilde}
+\index{symbols>extensible}
+\label{utild-extensible-accents}
+\begin{tabular}{ll}
+\W\utilde{abc} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ Because \verb|\utilde| is based on \verb|\widetilde|%
+ \index{widetilde=\verb+\widetilde+ ($\blackacc{\widetilde}$)}
+ it is also made more extensible by the \YH\ package.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Extensible Arrows}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{ams-extensible-arrows}
+\begin{tabular}{ll@{\qquad}ll}
+\W\xleftarrow{abc} & \W\xrightarrow{abc} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MTOOLS]{\MTOOLS\ Extensible Arrows}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{mathtools-extensible-arrows}
+\renewcommand{\arraystretch}{1.5}
+\begin{tabular}{ll@{\qquad}ll}
+\W[\MTOOLSxhookleftarrow]\xhookleftarrow{abc} & \W[\MTOOLSxleftrightharpoons]\xleftrightharpoons{abc} \\
+\W[\MTOOLSxhookrightarrow]\xhookrightarrow{abc} & \W[\MTOOLSxmapsto]\xmapsto{abc} \\
+\W[\MTOOLSxLeftarrow]\xLeftarrow{abc} & \W[\MTOOLSxRightarrow]\xRightarrow{abc} \\
+\W[\MTOOLSxleftharpoondown]\xleftharpoondown{abc} & \W[\MTOOLSxrightharpoondown]\xrightharpoondown{abc} \\
+\W[\MTOOLSxleftharpoonup]\xleftharpoonup{abc} & \W[\MTOOLSxrightharpoonup]\xrightharpoonup{abc} \\
+\W[\MTOOLSxleftrightarrow]\xleftrightarrow{abc} & \W[\MTOOLSxrightleftharpoons]\xrightleftharpoons{abc} \\
+\W[\MTOOLSxLeftrightarrow]\xLeftrightarrow{abc} & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[CHEMA]{\CHEMA\ Extensible Arrows}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{chemarr-extensible-arrows}
+\begin{tabular}{ll}
+\W\xrightleftharpoons{abc} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[CHEMB]{\CHEMB\ Extensible Arrows}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{chemarrow-extensible-arrows}
+\renewcommand{\arraystretch}{4} % Keep upper and lower strings from touching.
+\begin{tabular}{ll@{\qquad}ll}
+\Wul\autoleftarrow{abc}{def} & \Wul\autorightarrow{abc}{def} \\
+\Wul\autoleftrightharpoons{abc}{def} & \Wul\autorightleftharpoons{abc}{def} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ In addition to the symbols shown above, \CHEMB\ also provides
+ \cmd{\larrowfill}, \cmd{\rarrowfill}, \cmd{\leftrightharpoonsfill},
+ and \cmd{\rightleftharpoonsfill} macros. Each of these takes a
+ length argument and produces an arrow of the specified length.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[TRF]{\TRF\ Extensible Arrows}
+\index{accents}
+\index{transforms}
+\index{symbols>extensible}
+\label{trf-arrows}
+\begin{tabular}{ll@{\hspace*{2em}}ll}
+\W\dft{a} & \W\DFT{a} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[EXTAR]{\EXTAR\ Extensible Arrows}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{extarrows-extensible-arrows}
+\renewcommand{\arraystretch}{1.5}
+\begin{tabular}{ll@{\qquad}ll}
+\W[\EXTARxLeftrightarrow]\xLeftrightarrow{abc} & \W\xLongleftrightarrow{abc} \\
+\W[\EXTARxleftrightarrow]\xleftrightarrow{abc} & \W\xlongleftrightarrow{abc} \\
+\W\xlongequal{abc} & \W\xLongrightarrow{abc} \\
+\W\xLongleftarrow{abc} & \W\xlongrightarrow{abc} \\
+\W\xlongleftarrow{abc} & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[XPFEIL]{\XPFEIL\ Extensible Arrows}
+\idxboth{extensible}{arrows}
+\index{symbols>extensible}
+\label{extpfeil-extensible-arrows}
+\renewcommand{\arraystretch}{1.5}
+\begin{tabular}{ll@{\qquad}ll}
+\W[\XPFEILxlongequal]\xlongequal{abc} & \W[\XPFEILxmapsto]\xmapsto{abc} \\
+\W\xtwoheadleftarrow{abc} & \W\xtwoheadrightarrow{abc} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ The \XPFEIL\ package also provides a \cmd{\newextarrow} command to
+ help you define your own extensible arrow symbols. \seedocs{\XPFEIL}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[HOPO]{\HOPO\ Non-commutative Division Symbols}
+\idxboth{extensible}{accents}
+\idxboth{non-commutative}{division}
+\index{symbols>non-commutative division}
+\label{holtpolt}
+\begin{tabular}{ll@{\qquad}ll}
+\Wul\holter{abc}{def} & \Wul\polter{abc}{def} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Dots}
+\idxboth{dot}{symbols}
+\index{dots (ellipses)} \index{ellipses (dots)}
+\label{dots}
+\begin{tabular}{*{3}{ll@{\hspace*{1.5cm}}}ll}
+\X\cdotp & \X\colon$^*$ & \X\ldotp & \X\vdots$^\dag$ \\
+\X\cdots & \X\ddots$^\dag$ & \X\ldots \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ While ``\texttt{:}'' is valid in math mode, \cmd{\colon} uses
+ different surrounding spacing. See Section~\ref{math-spacing} and the
+ Short Math Guide for \latex~\cite{Downes:smg} for more information on
+ math-mode spacing.
+\end{tablenote}
+
+\bigskip
+
+\begin{tablenote}[\dag]
+ \ifMDOTS
+ \let\mdcmdX=\cmdX
+ \else
+ \let\mdcmdX=\cmd
+ \fi
+ The \MDOTS\ package redefines \cmdX{\ddots} and \cmdX{\vdots} to
+ make them scale properly with font size. (They normally scale
+ horizontally but not vertically.) \mdcmdX{\fixedddots} and
+ \mdcmdX{\fixedvdots} provide the original, fixed-height
+ functionality of \latexE's \cmdX{\ddots} and \cmdX{\vdots} macros.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[AMS]{\AMS\ Dots}
+\idxboth{dot}{symbols}
+\index{dots (ellipses)} \index{ellipses (dots)}
+\label{ams-dots}
+\begin{tabular}{*{2}{ll@{\hspace*{1.5cm}}}ll}
+\X\because$^*$ & \X[\cdots]\dotsi & \X\therefore$^*$ \\
+\X[\cdots]\dotsb & \X[\cdots]\dotsm & \\
+\X[\ldots]\dotsc & \X[\ldots]\dotso & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ \cmdX{\because} and \cmdX{\therefore} are defined as binary
+ relations and therefore also appear in Table~\vref{ams-rel}.
+\end{tablenote}
+
+\bigskip
+
+\begin{tablenote}
+ The \AMS\ \verb*|\dots|\hbox to 0.75em{\hrulefill} symbols are named
+ according to their intended usage: \cmdI[$\string\cdots$]{\dotsb}
+ between pairs of binary operators/relations,
+ \cmdI[$\string\ldots$]{\dotsc} between pairs of commas,
+ \cmdI[$\string\cdots$]{\dotsi} between pairs of integrals,
+ \cmdI[$\string\cdots$]{\dotsm} between pairs of multiplication
+ signs, and \cmdI[$\string\ldots$]{\dotso} between other symbol
+ pairs.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Dots}
+\idxboth{dot}{symbols}
+\label{wasy-dots}
+\begin{tabular}{ll}
+\K\wasytherefore
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Dots}
+\idxboth{dot}{symbols}
+\index{dots (ellipses)} \index{ellipses (dots)}
+\label{mns-dots}
+\begin{tabular}{*{2}{ll@{\hspace*{1.5cm}}}ll}
+\K[\MNScdot]\cdot & \K[\MNShdotdot]\hdotdot & \K[\MNSudots]\udots \\
+\K[\MNSddotdot]\ddotdot & \K[\MNShdots]\hdots & \K[\MNSuptherefore]\uptherefore \\
+\K[\MNSddots]\ddots & \K[\MNSlefttherefore]\lefttherefore & \K[\MNSvdotdot]\vdotdot \\
+\K[\MNSdiamonddots]\diamonddots & \K[\MNSrighttherefore]\righttherefore & \K[\MNSvdots]\vdots \\
+\K[\MNSdowntherefore]\downtherefore & \K[\MNSsquaredots]\squaredots & \\
+\K[\MNSfivedots]\fivedots & \K[\MNSudotdot]\udotdot & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \MNS\ defines \cmdI[\MNSuptherefore]{\therefore} as
+ \cmdI[\MNSuptherefore]{\uptherefore} and
+ \cmdI[\MNSdowntherefore]{\because} as
+ \cmdI[\MNSdowntherefore]{\downtherefore}. Furthermore,
+ \cmdI[\MNScdot]{\cdotp} and \cmdI[\MNSvdotdot]{\colon} produce the
+ same glyphs as \cmdI[\MNScdot]{\cdot} and
+ \cmdI[\MNSvdotdot]{\vdotdot} respectively but serve as \tex\ math
+ punctuation (class~6 symbols) instead of \tex\ binary operators
+ (class~2).
+\end{tablenote}
+
+\bigskip
+
+\begin{tablenote}
+ All of the above except \cmdI[\MNShdots]\hdots\ and
+ \cmdI[\MNSvdots]\vdots\ are defined as binary operators and
+ therefore also appear in Table~\vref{mns-bin}. Also, unlike most of
+ the other dot symbols in this document, \MNS's dots are defined as
+ single characters instead of as composites of multiple single-dot
+ characters.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MDOTS]{\MDOTS\ Dots}
+\index{dots (ellipses)} \index{ellipses (dots)}
+\idxboth{dot}{symbols}
+\label{mathdots-dots}
+\begin{tabular}{ll}
+\X[\MDOTSiddots]\iddots
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[YH]{\YH\ Dots}
+\index{dots (ellipses)} \index{ellipses (dots)}
+\idxboth{dot}{symbols}
+\label{yhmath-dots}
+\begin{tabular}{ll}
+\X\adots
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{\MC\ Math Symbols}
+\label{mc-math}
+\begin{tabular}{*3{ll}}
+\K[\textcelsius]\tccentigrade & \K[\textohm]\tcohm & \K[\textperthousand]\tcperthousand \\
+\K[\textmu]\tcmu & \K[\textpertenthousand]\tcpertenthousand & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Mayan Digits}
+\index{digits>Mayan}
+\label{abx-mayan}
+\begin{tabular}{*2{ll@{\qquad}}ll}
+ \Tm{0} & \Tm{2} & \Tm{4} \\
+ \Tm{1} & \Tm{3} & \Tm{5} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Digits}
+\index{digits}
+\label{marv-digits}
+\begin{tabular}{*4{ll@{\qquad}}ll}
+\K\MVZero & \K\MVTwo & \K\MVFour & \K\MVSix & \K\MVEight \\
+\K\MVOne & \K\MVThree & \K\MVFive & \K\MVSeven & \K\MVNine \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[FGE]{\FGE\ Digits}
+\index{fge-digits}
+\idxboth{Frege logic}{symbols}
+\label{fge-digits}
+\begin{tabular}{ll@{\qquad}ll}
+\K\fgestruckzero & \K\fgestruckone \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{Miscellaneous \latexE{} Math Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{card suits}
+\index{diamonds (suit)}
+\index{hearts (suit)}
+\index{clubs (suit)}
+\index{spades (suit)}
+\idxboth{musical}{symbols}
+\index{dots (ellipses)}
+\index{ellipses (dots)}
+\index{null set}
+\index{dotless i=dotless $i~(\imath)$>math mode}
+\index{dotless j=dotless $j~(\jmath)$>math mode}
+\index{angles}
+\label{ord}
+\ifAMS
+ \def\AMSfn{$^\ddag$}
+\else
+ \def\AMSfn{}
+\fi
+\begin{tabular}{*4{ll}}
+\X\aleph & \X\Diamond$^*$ & \X\infty & \X\prime \\
+\X\angle & \X\diamondsuit & \X\mho$^*$ & \X\sharp \\
+\X\backslash & \X\emptyset\AMSfn & \X\nabla & \X\spadesuit \\
+\X\Box$^{*,\dag}$ & \X\flat & \X\natural & \X\surd \\
+\X\clubsuit & \X\heartsuit & \X\neg & \X\triangle \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ Not predefined in \latexE. Use one of the packages
+ \pkgname{latexsym}, \pkgname{amsfonts}, \pkgname{amssymb},
+ \pkgname{txfonts}, \pkgname{pxfonts}, or \pkgname{wasysym}. Note,
+ however, that \pkgname{amsfonts} and \pkgname{amssymb} define
+ \cmdX{\Diamond} to produce the same glyph as
+\ifAMS
+ \cmdX{\lozenge}~(``$\lozenge$'');
+\else
+ \cmd{\lozenge};
+\fi
+ the other packages produce a squarer \cmdX{\Diamond} as depicted above.
+\end{tablenote}
+
+\bigskip
+\begin{tablenote}[\dag]
+ To use \cmdX{\Box}---or any other symbol---as an end-of-proof
+ (Q.E.D\@.)\index{Q.E.D.}\index{end of proof}\index{proof, end of}
+ marker, consider using the \pkgname{ntheorem} package, which
+ properly juxtaposes a symbol with the end of the proof text.
+\end{tablenote}
+
+\ifAMS
+ \bigskip
+ \begin{tablenote}[\ddag]
+ Many people prefer the look of \AMS's \cmdX{\varnothing}
+ (``$\varnothing$'', Table~\ref{ams-misc}) to that of \latex's
+ \cmdX{\emptyset}.
+ \end{tablenote}
+\fi % AMS test
+
+\end{symtable}
+
+
+\begin{symtable}[AMS]{Miscellaneous \AMS\ Math Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{stars}
+\index{triangles}
+\index{null set}
+\index{angles}
+\label{ams-misc}
+\begin{tabular}{*3{ll}}
+\X[\AMSangle]\angle & \X\blacktriangledown & \X\mho \\
+\X\backprime & \X\diagdown & \X\sphericalangle \\
+\X\bigstar & \X\diagup & \X\square \\
+\X\blacklozenge & \X\eth & \X\triangledown \\
+\X\blacksquare & \X\lozenge & \X\varnothing \\
+\X\blacktriangle & \X\measuredangle & \X\vartriangle \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{Miscellaneous \WASY\ Math Symbols}
+\index{angles}
+\label{wasy-math}
+\begin{tabular}{*4{ll}}
+\X[\WASYBox]\Box & \X[\WASYDiamond]\Diamond & \X\mho$^*$ & \K\varangle \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ \WASY\ also defines an \cmdI{\agemO} symbol, which is the same glyph
+ as \cmdX{\mho} but is intended for use in text mode.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[TX]{Miscellaneous \TXPX\ Math Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{card suits}
+\index{diamonds (suit)}
+\index{hearts (suit)}
+\index{clubs (suit)}
+\index{spades (suit)}
+\label{txpx-misc}
+\begin{tabular}{*3{ll}}
+\X\Diamondblack & \X\lambdaslash & \X\varheartsuit \\
+\X\Diamonddot & \X\varclubsuit & \X\varspadesuit \\
+\X\lambdabar & \X\vardiamondsuit \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{Miscellaneous \ABX\ Math Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{null set}
+\index{semidirect products}
+\index{angles}
+\label{abx-misc}
+\begin{tabular}{*4{ll}}
+\X[\ABXdegree]\degree & \X[\ABXfourth]\fourth & \X[\ABXmeasuredangle]\measuredangle & \X[\ABXsecond]\second \\
+\X[\ABXdiagdown]\diagdown & \X[\ABXhash]\hash & \X[\ABXpitchfork]\pitchfork & \X[\ABXsphericalangle]\sphericalangle \\
+\X[\ABXdiagup]\diagup & \X[\ABXinfty]\infty & \X[\ABXpropto]\propto & \X[\ABXthird]\third \\
+\X[\ABXdiameter]\diameter & \X[\ABXleftthreetimes]\leftthreetimes & \X[\ABXrightthreetimes]\rightthreetimes & \X[\ABXvarhash]\varhash \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{Miscellaneous \MNS\ Math Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{null set}
+\index{angles}
+\index{card suits}
+\index{diamonds (suit)}
+\index{hearts (suit)}
+\index{clubs (suit)}
+\index{spades (suit)}
+\index{integrals}
+\idxboth{musical}{symbols}
+\label{mns-misc}
+\begin{tabular}{*4{ll}}
+\K[\MNSangle]\angle & \K[\MNSdiamondsuit]\diamondsuit & \K[\MNSmaltese]\maltese & \K[\MNSsharp]\sharp \\
+\K[\MNSbackneg]\backneg & \K[\MNSflat]\flat & \K[\MNSmeasuredangle]\measuredangle & \K[\MNSsmallint]\smallint \\
+\K[\MNSbackprime]\backprime & \K[\MNSheartsuit]\heartsuit & \K[\MNSnabla]\nabla & \K[\MNSspadesuit]\spadesuit \\
+\K[\MNScheckmark]\checkmark & \K[\MNSinfty]\infty & \K[\MNSnatural]\natural & \K[\MNSsphericalangle]\sphericalangle \\
+\K[\MNSclubsuit]\clubsuit & \K[\MNSinvbackneg]\invbackneg & \K[\MNSneg]\neg & \\
+\K[\MNSdiameter]\diameter & \K[\MNSinvneg]\invneg & \K[\MNSprime]\prime & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \MNS\ defines \cmdI[\MNSdiameter]{\emptyset} and
+ \cmdI[\MNSdiameter]{\varnothing} as synonyms for
+ \cmdI[\MNSdiameter]{\diameter}; \cmdI[\MNSneg]{\lnot} and
+ \cmdI[\MNSneg]{\minushookdown} as synonyms for \cmdI[\MNSneg]{\neg};
+ \cmdI[\MNSinvneg]{\minushookup} as a synonym for
+ \cmdI[\MNSinvneg]{\invneg}; \cmdI[\MNSbackneg]{\hookdownminus} as a
+ synonym for \cmdI[\MNSbackneg]{\backneg}; and,
+ \cmdI[\MNSinvbackneg]{\hookupminus} as a synonym for
+ \cmdI[\MNSinvbackneg]{\invbackneg}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{Miscellaneous Internal \MNS\ Math Symbols}
+\idxboth{miscellaneous}{symbols}
+\label{mns-misc-internal}
+\begin{tabular}{*2{ll}}
+\K[\smash\MNSpartialvardint]\partialvardint & \K[\smash\MNSpartialvartint]\partialvartint \\
+\K[\smash\MNSpartialvardlanddownint]\partialvardlanddownint & \K[\smash\MNSpartialvartlanddownint]\partialvartlanddownint \\
+\K[\smash\MNSpartialvardlandupint]\partialvardlandupint & \K[\smash\MNSpartialvartlandupint]\partialvartlandupint \\
+\K[\smash\MNSpartialvardlcircleleftint]\partialvardlcircleleftint & \K[\smash\MNSpartialvartlcircleleftint]\partialvartlcircleleftint \\
+\K[\smash\MNSpartialvardlcirclerightint]\partialvardlcirclerightint & \K[\smash\MNSpartialvartlcirclerightint]\partialvartlcirclerightint \\
+\K[\smash\MNSpartialvardoiint]\partialvardoiint & \K[\smash\MNSpartialvartoiint]\partialvartoiint \\
+\K[\smash\MNSpartialvardoint]\partialvardoint & \K[\smash\MNSpartialvartoint]\partialvartoint \\
+\K[\smash\MNSpartialvardrcircleleftint]\partialvardrcircleleftint & \K[\smash\MNSpartialvartrcircleleftint]\partialvartrcircleleftint \\
+\K[\smash\MNSpartialvardrcirclerightint]\partialvardrcirclerightint & \K[\smash\MNSpartialvartrcirclerightint]\partialvartrcirclerightint \\
+\K[\smash\MNSpartialvardstrokedint]\partialvardstrokedint & \K[\smash\MNSpartialvartstrokedint]\partialvartstrokedint \\
+\K[\smash\MNSpartialvardsumint]\partialvardsumint & \K[\smash\MNSpartialvartsumint]\partialvartsumint \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ These symbols are intended to be used internally by \MNS\ to
+ construct the integrals appearing in Table~\vref{mns-large} but can
+ nevertheless be used in isolation.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}{Miscellaneous \TC\ Text-mode Math Symbols}
+\index{fractions}
+\label{tc-math}
+\ifFRAC
+ \def\FRACfn{$^\dag$}
+\else
+ \def\FRACfn{}
+\fi
+\begin{tabular}{*3{ll}}
+\K\textdegree$^*$ & \K\textonehalf\FRACfn & \K\textthreequarters\FRACfn \\
+\K\textdiv & \K\textonequarter\FRACfn & \K\textthreesuperior \\
+\K\textfractionsolidus & \K\textonesuperior & \K\texttimes \\
+\K\textlnot & \K\textpm & \K\texttwosuperior \\
+\K\textminus & \K\textsurd \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ If you prefer a larger degree symbol you might consider defining one
+ as ``\verb|\ensuremath{^\circ}|''~(``$^\circ$'')%
+ \indexcommand[$\string\circ$]{\circ}.
+\end{tablenote}
+
+\ifFRAC
+ \bigskip
+ \begin{tablenote}[\dag]
+ \pkgname{nicefrac} (part of the \pkgname{units} package) can be
+ used to construct vulgar fractions like ``\nicefrac{1}{2}'',
+ ``\nicefrac{1}{4}'', ``\nicefrac{3}{4}'', and even
+ ``\nicefrac{c}{o}''\index{care of=care of (\nicefrac{c}{o})}.
+ \end{tablenote}
+\fi % FRAC test
+\end{symtable}
+
+
+\begin{symtable}[MARV]{Miscellaneous \MARV\ Math Symbols}
+\index{angles}
+\label{marv-misc}
+\begin{tabular}{*3{ll@{\qquad}}ll}
+\K\Anglesign & \K\Squaredot & \K\Vectorarrowhigh \\
+\K\Corresponds & \K\Vectorarrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[FGE]{Miscellaneous \FGE\ Math Symbols}
+\index{angles}
+\idxboth{Frege logic}{symbols}
+\label{fge-misc}
+\begin{tabular}{*3{ll@{\qquad}}ll}
+\K\fgebackslash & \K\fgecap & \K\fgecupacute & \K\fgelangle \\
+\K\fgebaracute & \K\fgecapbar & \K\fgecupbar & \K\fgeupbracket \\
+\K\fgebarcap & \K\fgecup & \K\fgeinfty & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MDES]{Miscellaneous \MDES\ Math Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{angles}
+\label{mdes-misc}
+\begin{tabular}{ll}
+\K[\MDESrightangle]\rightangle
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[AREV]{Miscellaneous \AREV\ Math Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{card suits}
+\index{diamonds (suit)}
+\index{hearts (suit)}
+\index{clubs (suit)}
+\index{spades (suit)}
+\label{arev-misc}
+\begin{tabular}{*3{ll}}
+\K\steaming & \K\vardiamond & \K\varspade \\
+\K\varclub & \K\varheart & \\
+\end{tabular}
+\end{symtable}
+
+
+% Because the Math Alphabets table is a bit different from the symbol
+% tables in this document we start it on its own page to emphasize it
+% and to include enough room for some of the table notes.
+\clearpage
+
+\begin{symtable}{Math Alphabets}
+\idxboth{math}{alphabets}
+\label{alphabets}
+\begin{tabular}{@{}*3l@{}}
+\toprule
+Font sample & Generating command & Required package \\
+\midrule
+\Wf\mathrm{ABCdef123} & \textit{none} \\
+\Ww\textit\mathit{ABCdef123} & \textit{none} \\
+\Wf\mathnormal{ABCdef123}& \textit{none} \\
+\Ww\CMcal\mathcal{ABC} & \textit{none} \\
+
+\ifx\mathscr\undefined\else
+\Wf\mathscr{ABC} & \pkgname{mathrsfs} \\
+\multicolumn{1}{r@{}}{\emph{or}}
+ &\verb|\mathcal{ABC}|
+ & \pkgname{calrsfs} \\
+\fi
+
+\ifEU
+\Wf\mathcal{ABC} & \pkgname{euscript} with the
+ \optname{euscript}{mathcal} option \\
+\multicolumn{1}{r@{}}{\emph{or}}
+ &\verb|\mathscr{ABC}|
+ & \pkgname{euscript} with the
+ \optname{euscript}{mathscr} option \\
+\fi
+
+\ifx\mathpzc\undefined\else
+\Wf\mathpzc{ABCdef123} & \textit{none}; manually defined$^*$ \\
+\fi
+
+\ifx\mathbb\undefined\else
+\Wf\mathbb{ABC} & \pkgname{amsfonts},%
+ \ifx\MSYMmathbb\undefined\else$^\S$~\fi
+ \pkgname{amssymb}, \pkgname{txfonts}, or
+ \pkgname{pxfonts} \\
+\fi
+
+\ifx\varmathbb\undefined\else
+\Wf\varmathbb{ABC} & \pkgname{txfonts} or \pkgname{pxfonts} \\
+\fi
+
+\ifx\BBmathbb\undefined\else
+\Ww\BBmathbb\mathbb{ABCdef123}
+ & \pkgname{bbold} or \pkgname{mathbbol}$^\dag$ \\
+\fi
+
+\ifx\MBBmathbb\undefined\else
+\Ww\MBBmathbb\mathbb{ABCdef123}
+ & \pkgname{mbboard}$^\dag$ \\
+\fi
+
+\ifx\mathbbm\undefined\else
+\Wf\mathbbm{ABCdef12} & \pkgname{bbm} \\
+\Wf\mathbbmss{ABCdef12} & \pkgname{bbm} \\
+\Wf\mathbbmtt{ABCdef12} & \pkgname{bbm} \\
+\fi
+
+\ifx\mathds\undefined\else
+\Wf\mathds{ABC1} & \pkgname{dsfont} \\
+\Ww\mathdsss\mathds{ABC1}
+ & \pkgname{dsfont} with the
+ \optname{dsfont}{sans} option \\
+\fi
+
+\ifx\mathfrak\undefined\else
+\Wf\mathfrak{ABCdef123} & \pkgname{eufrak} \\
+\fi
+
+\ifx\textfrak\undefined\else
+\Wf\textfrak{ABCdef123} & \pkgname{yfonts}$^\ddag$ \\
+\Wf\textswab{ABCdef123} & \pkgname{yfonts}$^\ddag$ \\
+\Wf\textgoth{ABCdef123} & \pkgname{yfonts}$^\ddag$ \\
+\fi
+\bottomrule
+\end{tabular}
+\end{symtable}
+\unskip
+
+% Because we have so much text and because we're at the end of the
+% section, we put all of the table notes after the symtable to give
+% LaTeX the opportunity to split them across pages.
+\begin{center}
+\ifx\mathpzc\undefined\else
+\bigskip
+\begin{tablenote}[*]
+ Put ``\verb|\DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}|'' in your
+ document's preamble to make \verb|\mathpzc| typeset its argument in
+ \PSfont{Zapf Chancery}.
+\ifx\mathcalligra\undefined\else
+ As a similar trick, you can typeset the \PSfont{Calligra} font's
+ script ``{\Large\mathcalligra{r}\,}'' (or other calligraphic symbols)
+ in math mode by loading the \pkgname{calligra} package and putting
+ ``\verb|\DeclareMathAlphabet{\mathcalligra}{T1}{calligra}{m}{n}|''
+ in your document's preamble to make \verb|\mathcalligra| typeset its
+ argument in the \PSfont{Calligra} font. (You may also want to
+ specify
+ ``\verb|\DeclareFontShape{T1}{calligra}{m}{n}{<->s*[2.2]callig15}{}|''
+ to set \PSfont{Calligra} at 2.2~times its design size for a better
+ blend with typical body fonts.)
+\fi
+\end{tablenote}
+\fi
+
+\ifx\BBmathbb\undefined\else
+\bigskip
+\begin{tablenote}[\dag]
+ The \pkgname{mathbbol} package defines some additional blackboard bold
+ characters: parentheses, square brackets, angle brackets, and---if
+ the \optname{mathbbol}{bbgreekl} option is passed to
+ \pkgname{matbbol}---Greek\index{Greek>blackboard bold} letters. For
+ instance,
+ ``$\BBmathbb{\char`<\char`[\char`(\char"0B\char"0C\char"0D\char`)\char`]\char`>}$''
+ is produced by
+ ``\cmd{\mathbb}\verb|{|\cmdI{\Langle}\linebreak[1]%
+ \cmdI{\Lbrack}\linebreak[1]\cmdI{\Lparen}\linebreak[1]%
+ \cmdI{\bbalpha}\linebreak[1]\cmdI{\bbbeta}\linebreak[1]%
+ \cmdI{\bbgamma}\linebreak[1]\cmdI{\Rparen}\linebreak[1]%
+ \cmdI{\Rbrack}\linebreak[1]\cmdI{\Rangle}\verb|}|''.
+
+ \ifx\MBBmathbb\undefined
+ \pkgname{mbboard} extends the blackboard bold symbol set
+ significantly further. It supports not only the
+ Greek\index{Greek>blackboard bold}\index{alphabets>Greek}
+ alphabet---including ``Greek-like'' symbols such as
+ \cmd{\bbnabla}---but also \emph{all} punctuation marks, various
+ currency\idxboth{currency}{symbols}\idxboth{monetary}{symbols}
+ symbols such as \cmd{\bbdollar} and \cmd{\bbeuro},\index{euro
+ signs>blackboard bold} and the
+ Hebrew\index{Hebrew}\index{alphabets>Hebrew} alphabet.
+ \else
+ \pkgname{mbboard} extends the blackboard bold symbol set
+ significantly further. It supports not only the
+ Greek\index{Greek>blackboard bold}\index{alphabets>Greek}
+ alphabet---including ``Greek-like'' symbols such as
+ \cmdI{\bbnabla}~(``\bbnabla'')---but also \emph{all} punctuation
+ marks, various
+ currency\idxboth{currency}{symbols}\idxboth{monetary}{symbols}
+ symbols such as \cmdI{\bbdollar}~(``\bbdollar'') and
+ \cmdI{\bbeuro}~(``\bbeuro''),\index{euro signs>blackboard bold}
+ and the Hebrew\index{Hebrew}\index{alphabets>Hebrew}
+ alphabet~(e.g.,~``\cmdI{\bbfinalnun}\linebreak[1]\cmdI{\bbyod}%
+ \linebreak[1]\cmdI{\bbqof}\linebreak[1]\cmdI{\bbpe}''~$\rightarrow$
+ ``\bbfinalnun\bbyod\bbqof\bbpe'').
+ \fi % MBBmathbb test
+\end{tablenote}
+\fi
+
+\ifx\textfrak\undefined\else
+\bigskip
+\begin{tablenote}[\ddag]
+ As their \verb|\text|\dots{} names imply, the fonts provided by the
+ \pkgname{yfonts} package are actually text fonts. They are
+ included in Table~\ref{alphabets} because they are frequently used
+ in a mathematical context.
+\end{tablenote}
+\fi
+
+\ifx\MSYMmathbb\undefined\else
+\bigskip
+\begin{tablenote}[\S]
+ An older (i.e.,~prior to~1991) version of the \AMS's fonts rendered
+ $\mathbb{C}$, $\mathbb{N}$, $\mathbb{R}$, $\mathbb{S}$,
+ and~$\mathbb{Z}$ as $\MSYMmathbb{C}$, $\MSYMmathbb{N}$,
+ $\MSYMmathbb{R}$, $\MSYMmathbb{S}$, and~$\MSYMmathbb{Z}$. As some
+ people prefer the older glyphs---much to the \AMS's surprise---and
+ because those glyphs fail to build under modern versions of
+ \metafont, \person{Berthold}{Horn} uploaded \postscript fonts for
+ the older blackboard-bold glyphs to CTAN\idxCTAN{}, to the
+ \texttt{fonts/msym10} directory. As of this writing, however, there
+ are no \latexE packages for utilizing the now-obsolete glyphs.
+\end{tablenote}
+\fi
+\end{center}
+
+
+\idxbothend{mathematical}{symbols}
+
+
+\section{Science and technology symbols}
+\idxbothbegin{scientific}{symbols}
+\idxbothbegin{technological}{symbols}
+
+This section lists symbols that are employed in various branches of
+science and engineering.
+
+\bigskip
+
+
+\begin{symtable}{\GSYMB\ Symbols Defined to Work in Both Math and Text Mode}
+\label{gsymb-math}
+\begin{tabular}{*2{ll@{\qquad}}ll}
+\K[\textcelsius]\celsius & \K[\textmu]\micro & \K[\textperthousand]\perthousand \\
+\K[\textdegree]\degree & \K[\textohm]\ohm & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Electrical and Physical Symbols}
+\idxboth{electrical}{symbols}
+\idxboth{physical}{symbols}
+\label{wasy-electic}
+\begin{tabular}{*{9}{ll@{\qquad}}ll}
+\K\AC & \K\VHF & \K\photon &
+\K\HF & \K\gluon \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[IFS]{\IFS\ Pulse Diagram Symbols}
+\idxboth{pulse diagram}{symbols}
+\idxboth{engineering}{symbols}
+\label{pulse-diagram}
+\begin{tabular}{*4{ll}}
+\K\FallingEdge & \K\LongPulseLow & \K\PulseLow & \K\ShortPulseHigh \\
+\K\LongPulseHigh & \K\PulseHigh & \K\RaisingEdge & \K\ShortPulseLow \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ In addition, within
+ \verb|\textifsym{|$\ldots$\verb|}|\indexcommand{\textifsym}, the
+ following codes are valid:
+
+ \begin{center}
+ \begin{tabular}{*5{ll@{\hspace{3em}}}ll}
+ \textifsym{l} & l &
+ \textifsym{m} & m &
+ \textifsym{h} & h &
+ \textifsym{d} & d &
+ \textifsym{<} & \textless &
+ \textifsym{>} & \textgreater \\[4pt]
+
+ \textifsym{L} & L &
+ \textifsym{M} & M &
+ \textifsym{H} & H &
+ \textifsym{D} & D &
+ \textifsym{<<} & \textless\textless &
+ \textifsym{>>} & \textgreater\textgreater \\
+ \end{tabular}
+ \end{center}
+
+ This enables one to write ``\verb|\textifsym{mm<DDD>mm}|'' to get
+ ``\textifsym{mm<DDD>mm}'' or ``\verb+\textifsym{L|H|L|H|L}+'' to get
+ ``\textifsym{L|H|L|H|L}''. See also the \pkgname{timing} package,
+ which provides a wide variety of pulse-diagram symbols within an
+ environment designed specifically for typesetting pulse diagrams.
+
+ Finally, \cmd{\textifsym} supports the display of
+ segmented\idxboth{segmented}{digits} digits, as would appear on an
+ LCD\idxboth{LCD}{digits}: ``\verb|\textifsym{-123.456}|'' produces
+ ``\textifsym{-123.456}''. ``\verb|\textifsym{b}|'' outputs a blank
+ with the same width as an ``\textifsym{8}''.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ASP]{\ASP\ Aspect Ratio Symbol}
+\index{aspect ratio}
+\label{aspect-ratio}
+\begin{tabular}{ll}
+\K\AR
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}{\TC\ Text-mode Science and Engineering Symbols}
+\label{tc-science}
+\begin{tabular}{*4{ll}}
+\K\textcelsius & \K\textmho & \K\textmu & \K\textohm \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Astronomical Symbols}
+\idxboth{astronomical}{symbols}
+\idxboth{astrological}{symbols}
+\idxboth{zodiacal}{symbols}
+\index{planets}
+\index{celestial bodies}
+\label{wasy-astro}
+\begin{tabular}{*5{ll}}
+\K\mercury & \K\earth & \K\jupiter & \K\uranus & \K\pluto \\
+\K\venus & \K\mars & \K\saturn & \K\neptune & \\[3ex]
+
+\K\astrosun & \K\fullmoon & \K\leftmoon & \K\newmoon & \K\rightmoon \\[3ex]
+
+\K\aries & \K\cancer & \K\libra & \K\aquarius \\
+\K\taurus & \K\leo & \K\scorpio & \K\capricornus \\
+\K\gemini & \K\virgo & \K\sagittarius & \K\pisces \\[3ex]
+
+\K\ascnode & \K\descnode & \K\conjunction & \K\opposition & \K\vernal \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Astronomical Symbols}
+\idxboth{astronomical}{symbols}
+\idxboth{astrological}{symbols}
+\idxboth{zodiacal}{symbols}
+\index{planets}
+\index{celestial bodies}
+\label{marv-astro}
+\begin{tabular}{*5{ll}}
+\K\Mercury & \K\Earth & \K\Jupiter & \K\Uranus & \K\Pluto \\
+\K\Venus & \K\Mars & \K\Saturn & \K\Neptune & \\[3ex]
+
+\K\Moon & \K\Sun \\[3ex]
+
+\K\Aries & \K\Cancer & \K\Libra & \K\Capricorn \\
+\K\Taurus & \K\Leo & \K\Scorpio & \K\Aquarius \\
+\K\Gemini & \K\Virgo & \K\Sagittarius & \K\Pisces \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ Note that \cmdI{\Aries}\,$\ldots$\,\linebreak[1]\cmdI{\Pisces} can also be
+ specified with
+ \cmd{\Zodiac}\verb|{1}|\,$\ldots$\,\linebreak[1]\cmd{\Zodiac}\verb|{12}|.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{\ABX\ Astronomical Symbols}
+\idxboth{astronomical}{symbols}
+\idxboth{astrological}{symbols}
+\idxboth{zodiacal}{symbols}
+\index{planets}
+\index{celestial bodies}
+\label{abx-astro}
+\begin{tabular}{*5{ll}}
+\X[\ABXMercury]\Mercury & \X[\ABXEarth]\Earth & \X[\ABXJupiter]\Jupiter & \X[\ABXUranus]\Uranus & \X[\ABXPluto]\Pluto \\
+\X[\ABXVenus]\Venus & \X[\ABXMars]\Mars & \X[\ABXSaturn]\Saturn & \X[\ABXNeptune]\Neptune & \X[\ABXvarEarth]\varEarth \\[3ex]
+
+\X[\ABXfullmoon]\fullmoon & \X[\ABXleftmoon]\leftmoon & \X[\ABXnewmoon]\newmoon & \X[\ABXrightmoon]\rightmoon & \X[\ABXSun]\Sun \\[3ex]
+
+\X[\ABXAries]\Aries & \X[\ABXTaurus]\Taurus & \X[\ABXGemini]\Gemini \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \ABX\ also defines \cmdI[$\string\ABXVenus$]{\girl} as an alias for
+ \cmdI[$\string\ABXVenus$]{\Venus}, \cmdI[$\string\ABXMars$]{\boy} as
+ an alias for \cmdI[$\string\ABXMars$]{\Mars}, and
+ \cmdI[$\string\ABXleftmoon$]{\Moon} as an alias for
+ \cmdI[$\string\ABXleftmoon$]{\leftmoon}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ APL Symbols}
+\index{APL>symbols}
+\index{symbols>APL}
+\label{wasy-APLsym}
+\begin{tabular}{*6l}
+\K\APLbox & \K\APLinv & \K\APLstar \\
+\K\APLcomment & \K\APLleftarrowbox & \K\APLup \\
+\K\APLdown & \K\APLlog & \K\APLuparrowbox \\
+\K\APLdownarrowbox & \K\APLminus & \K\notbackslash \\
+\K\APLinput & \K\APLrightarrowbox & \K\notslash \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ APL Modifiers}
+\index{APL>modifiers}
+\index{accents}
+\label{wasy-APLmod}
+\begin{tabular}{*2{ll@{\qqquad}}ll}
+\W\APLcirc{} & \W\APLnot{} & \W\APLvert{} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Computer Hardware Symbols}
+\idxboth{computer hardware}{symbols}
+\label{marv-computer}
+\begin{tabular}{*2{ll}ll}
+\K\ComputerMouse & \K\ParallelPort & \K\SerialInterface \\
+\K\Keyboard & \K\Printer & \K\SerialPort \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[KEYS]{\KEYS\ Computer Keys}
+\idxboth{keyboard}{symbols}
+\index{computer keys}
+\index{keys, computer}
+\index{arrows}
+\index{carriage return}
+\label{keystroke}
+\renewcommand{\arraystretch}{1.25} % Keep the symbols from touching.
+\begin{tabular}{*2{ll@{\hspace*{3em}}}ll}
+\K\Alt & \K\Enter$^*$ & \K\PrtSc$^*$ \\
+\K\AltGr & \K\Esc$^*$ & \K\RArrow \\
+\K\Break$^*$ & \K\Home$^*$ & \K\Return \\
+\K[\keysBSpace]\BSpace$^\dag$ & \K\Ins$^*$ & \K\Scroll$^*$ \\
+\K\Ctrl$^*$ & \K\LArrow & \K\Shift$^*$ \\
+\K\DArrow & \K\NumLock & \K\Spacebar \\
+\K\Del$^*$ & \K\PgDown$^*$ & \K[\keysTab]\Tab$^\dag$ \\
+\K\End$^*$ & \K\PgUp$^*$ & \K\UArrow \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ Changes based on the language option passed to the \KEYS\ package.
+ For example, the \optname{keystroke}{german} option makes
+ \cmdI{\Del} produce ``\keystroke{Entf}'' instead of ``\Del''.
+\end{tablenote}
+
+\bigskip
+
+\begin{tablenote}[\dag]
+ These symbols utilize the \pkgname{rotating} package and therefore
+ display improperly in most DVI\index{DVI} viewers.
+\end{tablenote}
+
+\bigskip
+
+\begin{tablenote}
+ The
+ \verb|\keystroke|\indexaccent[\string\blackacc{\string\keystroke}]{\keystroke}
+ command draws a key with an arbitrary label. For example,
+ ``\verb|\keystroke{F7}|'' produces ``\keystroke{F7}''.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[ASCII]{\ASCII\ Control Characters (CP437)}
+\index{ASCII}
+\index{IBM PC}
+\index{control characters}
+\index{carriage return}
+\index{smiley faces}
+\index{nonbreaking space}
+\index{code page 437}
+\index{faces}
+\label{ibm-ascii}
+\begin{tabular}{*4{ll@{\hspace{3em}}}ll}
+\K\SOH & \K\BS & \K\SI & \K\SYN & \K\GS \\
+\K\STX & \K[\asciiHT]\HT & \K\DLE & \K\ETB & \K\RS \\
+\K\ETX & \K\LF & \K\DCa & \K\CAN & \K\US \\
+\K\EOT & \K\VT & \K\DCb & \K\EM & \\
+\K\ENQ & \K\FF & \K\DCc & \K\SUB & \\
+\K\ACK & \K\CR & \K\DCd & \K\ESC & \\
+\K\BEL & \K\SO & \K\NAK & \K\FS & \\[2ex]
+%
+\K\DEL & \K\NBSP & \K\NUL &
+\incsyms\indexcommand[\splitvert]{\splitvert}\splitvert &
+\multicolumn{2}{l}{\ttfamily\string\splitvert} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ Code Page~437 (CP437), which was first utilized by the original
+ IBM~PC, uses the symbols \cmdI{\SOH} through \cmdI{\US} to depict
+ ASCII characters~1--31 and \cmdI{\DEL} to depict ASCII
+ character~127. The \cmdI{\NUL} symbol, not part of CP437,
+ represents ASCII character~0. \cmdI{\NBSP}, also not part of CP437,
+ represents a nonbreaking space. \cmdI{\splitvert} is merely the
+ ``$|$'' character drawn as it was on the IBM~PC.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Communication Symbols}
+\idxboth{communication}{symbols}
+\label{marv-comm}
+\begin{tabular}{*4{ll}ll}
+\K\Email & \K\fax & \K\Faxmachine & \K\Lightning & \K\Pickup \\
+\K\Emailct & \K\FAX & \K\Letter & \K\Mobilefone & \K\Telefon \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Engineering Symbols}
+\idxboth{engineering}{symbols}
+\label{marv-engineering}
+\begin{tabular}{*3{ll}ll}
+\K\Beam & \K\Force & \K\Octosteel & \K\RoundedTTsteel \\
+\K\Bearing & \K\Hexasteel & \K\Rectpipe & \K\Squarepipe \\
+\K\Circpipe & \K\Lefttorque & \K\Rectsteel & \K\Squaresteel \\
+\K\Circsteel & \K\Lineload & \K\Righttorque & \K\Tsteel \\
+\K\Fixedbearing & \K\Loosebearing & \K\RoundedLsteel$^*$ & \K\TTsteel \\
+\K\Flatsteel & \K\Lsteel & \K\RoundedTsteel$^*$ \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}[*]
+ \cmdI{\RoundedLsteel} and \cmdI{\RoundedTsteel} seem to be swapped,
+ at least in the 2000/05/01 version of \pkgname{marvosym}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Biological Symbols}
+\label{wasy-bio}
+\begin{tabular}{*2{ll}}
+\K\female & \K\male \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Biological Symbols}
+\idxboth{biological}{symbols}
+\label{marv-bio}
+\begin{tabular}{*3{ll}ll}
+\K\Female & \K\FemaleMale & \K\MALE & \K\Neutral \\
+\K\FEMALE & \K\Hermaphrodite & \K\Male \\
+\K\FemaleFemale & \K\HERMAPHRODITE & \K\MaleMale \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Safety-related Symbols}
+\idxboth{safety-related}{symbols}
+\label{marv-safety}
+\begin{tabular}{*3{ll}ll}
+\K\Biohazard & \K\CEsign & \K\Explosionsafe & \K\Radioactivity \\
+\K\BSEfree & \K\Estatically & \K\Laserbeam & \K\Stopsign \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[FEYN]{\FEYN\ Feynman Diagram Symbols}
+\index{Feynman-diagram symbols}
+\index{symbols>Feynman diagram}
+\index{particle-physics symbols}
+\index{symbols>particle physics}
+\index{bosons}
+\index{fermions}
+\index{gluons}
+\index{photons}
+\index{subatomic particles}
+\label{feyn}
+\renewcommand{\arraystretch}{1.75} % Keep tall symbols from touching.
+\begin{tabular}{*3{ll}ll}
+\K\bigbosonloop & \Kfeyn{fu} & \Kfeyn{gvs} & \Kfeyn{h} \\
+\Kfeyn{a} & \Kfeyn{fv} & \Kfeyn{gv} & \Kfeyn{ms} \\
+\Kfeyn{c} & \Kfeyn{f} & \Kfeyn{g} & \Kfeyn{m} \\
+\Kfeyn{fd} & \Kfeyn{glu} & \Kfeyn{hd} & \Kfeyn{p} \\
+\Kfeyn{fl} & \Kfeyn{gl} & \Kfeyn{hs} & \Kfeyn{x} \\
+\Kfeyn{fs} & \Kfeyn{gu} & \Kfeyn{hu} & \K\smallbosonloop \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ All other arguments to the \verb|\feyn| command produce a
+ ``\feyn{?}'' symbol.
+
+ The \FEYN\ package provides various commands for composing the
+ preceding symbols into complete Feynman diagrams. See the \FEYN\
+ documentation for examples and additional information.
+\end{tablenote}
+\end{symtable}
+
+
+\idxbothend{scientific}{symbols}
+\idxbothend{technological}{symbols}
+
+
+\section{Dingbats}
+\idxbothbegin{dingbat}{symbols}
+
+Dingbats are symbols such as stars, arrows, and geometric shapes.
+They are commonly used as bullets in itemized lists or, more
+generally, as a means to draw attention to the text that follows.
+
+The \PI\ dingbat package warrants special mention. Among other
+capabilities, \PI\ provides a \latex\ interface to the \PSfont{Zapf
+Dingbats} font (one of the standard~35 \postscript\index{PostScript
+fonts} fonts). However, rather than name each of the dingbats
+individually, \PI\ merely provides a single \cmd{\ding} command, which
+outputs the character that lies at a given position in the font. The
+consequence is that the \PI\ symbols can't be listed by name in this
+document's index, so be mindful of that fact when searching for a
+particular symbol.
+
+\bigskip
+
+
+\begin{symtable}[DING]{\DING\ Arrows}
+\label{bbding-arrows}
+\begin{tabular}{*3{ll}}
+\K\ArrowBoldDownRight & \K\ArrowBoldRightShort & \K\ArrowBoldUpRight \\
+\K\ArrowBoldRightCircled & \K\ArrowBoldRightStrobe \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Arrows}
+\index{arrows}
+\idxboth{fletched}{arrows}
+\label{pi-arrows}
+\begin{tabular}{*5{ll}}
+\Tp{212} & \Tp{221} & \Tp{230} & \Tp{239} & \Tp{249} \\
+\Tp{213} & \Tp{222} & \Tp{231} & \Tp{241} & \Tp{250} \\
+\Tp{214} & \Tp{223} & \Tp{232} & \Tp{242} & \Tp{251} \\
+\Tp{215} & \Tp{224} & \Tp{233} & \Tp{243} & \Tp{252} \\
+\Tp{216} & \Tp{225} & \Tp{234} & \Tp{244} & \Tp{253} \\
+\Tp{217} & \Tp{226} & \Tp{235} & \Tp{245} & \Tp{254} \\
+\Tp{218} & \Tp{227} & \Tp{236} & \Tp{246} \\
+\Tp{219} & \Tp{228} & \Tp{237} & \Tp{247} \\
+\Tp{220} & \Tp{229} & \Tp{238} & \Tp{248} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[BAYER]{\BAYER\ Arrows}
+\index{arrows}
+\label{bayer-arrows}
+\begin{tabular}{*2{ll}}
+\K\bauarrow & \K\bauwhitearrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Scissors}
+\index{scissors}
+\label{marv-scissors}
+\begin{tabular}{*3{ll}}
+\K\Cutleft & \K\Cutright & \K\Leftscissors \\
+\K\Cutline & \K\Kutline & \K\Rightscissors \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[DING]{\DING\ Scissors}
+\index{scissors}
+\label{scissors}
+\begin{tabular}{*2{ll}}
+\K\ScissorHollowLeft & \K\ScissorLeftBrokenTop \\
+\K\ScissorHollowRight & \K\ScissorRight \\
+\K\ScissorLeft & \K\ScissorRightBrokenBottom \\
+\K\ScissorLeftBrokenBottom & \K\ScissorRightBrokenTop \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Scissors}
+\index{scissors}
+\label{pi-scissors}
+\begin{tabular}{*4{ll}}
+\Tp{33} & \Tp{34} & \Tp{35} & \Tp{36} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ARK]{\ARK\ Pencils}
+\index{pencils}
+\vspace{1ex}
+\begin{tabular}{*2{ll}}
+\K[\ARKlargepencil]\largepencil & \K\smallpencil \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[DING]{\DING\ Pencils and Nibs}
+\index{pencils}
+\index{nibs}
+\label{pencils-nibs}
+\begin{tabular}{*3{ll}}
+\K\NibLeft & \K\PencilLeft & \K\PencilRightDown \\
+\K\NibRight & \K\PencilLeftDown & \K\PencilRightUp \\
+\K\NibSolidLeft & \K\PencilLeftUp \\
+\K\NibSolidRight & \K\PencilRight \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Pencils and Nibs}
+\index{pencils}
+\index{nibs}
+\label{pi-pencils}
+\begin{tabular}{*5{ll}}
+\Tp{46} & \Tp{47} & \Tp{48} & \Tp{49} & \Tp{50} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ARK]{\ARK\ Fists}
+\index{fists}
+\label{ark-hands}
+\renewcommand{\arraystretch}{1.25}
+\begin{tabular}{*3{ll}}
+\K\leftpointright & \K\rightpointleft & \K\rightpointright \\
+\K\leftthumbsdown & \K\rightthumbsdown \\
+\K\leftthumbsup & \K\rightthumbsup \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[DING]{\DING\ Fists}
+\index{fists}
+\label{hands}
+\begin{tabular}{*3{ll}}
+\K\HandCuffLeft & \K\HandCuffRightUp & \K\HandPencilLeft \\
+\K\HandCuffLeftUp & \K\HandLeft & \K\HandRight \\
+\K\HandCuffRight & \K\HandLeftUp & \K\HandRightUp \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Fists}
+\index{fists}
+\label{pi-hands}
+\begin{tabular}{*4{ll}}
+\Tp{42} & \Tp{43} & \Tp{44} & \Tp{45} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[DING]{\DING\ Crosses and Plusses}
+\index{crosses}
+\index{plusses}
+\index{crucifixes}
+\label{crosses-plusses}
+\begin{tabular}{*3{ll}}
+\K[\dingCross]\Cross & \K\CrossOpenShadow & \K\PlusOutline \\
+\K\CrossBoldOutline & \K\CrossOutline & \K\PlusThinCenterOpen \\
+\K\CrossClowerTips & \K\Plus \\
+\K\CrossMaltese & \K\PlusCenterOpen \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Crosses and Plusses}
+\index{crosses}
+\index{plusses}
+\index{crucifixes}
+\label{pi-crosses-plusses}
+\begin{tabular}{*4{ll}}
+\Tp{57} & \Tp{59} & \Tp{61} & \Tp{63} \\
+\Tp{58} & \Tp{60} & \Tp{62} & \Tp{64} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[DING]{\DING\ Xs and Check Marks}
+\index{check marks}
+\index{Xs}
+\label{ding-check-marks}
+\begin{tabular}{*3{ll}}
+\K\Checkmark & \K\XSolid & \K\XSolidBrush \\
+\K\CheckmarkBold & \K\XSolidBold \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Xs and Check Marks}
+\index{check marks}
+\index{Xs}
+\label{pi-check-marks}
+\begin{tabular}{*3{ll}}
+\Tp{51} & \Tp{53} & \Tp{55} \\
+\Tp{52} & \Tp{54} & \Tp{56} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Xs and Check Marks}
+\index{check marks}
+\index{Xs}
+\label{wasy-check-marks}
+\begin{tabular}{*6l}
+\K\CheckedBox & \K\Square & \K\XBox \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[BAYER]{\BAYER\ Xs}
+\index{Xs}
+\label{bayer-check-marks}
+\begin{tabular}{ll}
+\K\baucross \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Circled Numbers}
+\index{circled numbers}
+\index{numbers>circled}
+\label{circled-numbers}
+\begin{tabular}{*4{ll}}
+\Tp{172} & \Tp{182} & \Tp{192} & \Tp{202} \\
+\Tp{173} & \Tp{183} & \Tp{193} & \Tp{203} \\
+\Tp{174} & \Tp{184} & \Tp{194} & \Tp{204} \\
+\Tp{175} & \Tp{185} & \Tp{195} & \Tp{205} \\
+\Tp{176} & \Tp{186} & \Tp{196} & \Tp{206} \\
+\Tp{177} & \Tp{187} & \Tp{197} & \Tp{207} \\
+\Tp{178} & \Tp{188} & \Tp{198} & \Tp{208} \\
+\Tp{179} & \Tp{189} & \Tp{199} & \Tp{209} \\
+\Tp{180} & \Tp{190} & \Tp{200} & \Tp{210} \\
+\Tp{181} & \Tp{191} & \Tp{201} & \Tp{211} \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \PI\ (part of the \pkgname{psnfss} package) provides a
+ \cmd{dingautolist} environment which resembles \texttt{enumerate}
+ but uses circled numbers as bullets.\footnotemark{}
+ \seedocs{\pkgname{psnfss}}.
+\end{tablenote}
+\end{symtable}
+\footnotetext{In fact, \cmd{dingautolist} can use any set of
+ consecutive \PSfont{Zapf Dingbats} symbols.}
+
+
+\begin{symtable}[WASY]{\WASY\ Stars}
+\index{stars}
+\index{Jewish star}\index{Star of David}
+\label{wasy-stars}
+\begin{tabular}{*6l}
+\K\davidsstar & \K\hexstar & \K\varhexstar
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[DING]{\DING\ Stars, Flowers, and Similar Shapes}
+\index{asterisks}
+\index{clovers}
+\index{flowers}
+\index{sparkles}
+\index{snowflakes}
+\index{stars}
+\index{Jewish star}\index{Star of David}
+\label{star-like}
+\begin{tabular}{*3{ll}}
+\K\Asterisk & \K\FiveFlowerPetal & \K\JackStar \\
+\K\AsteriskBold & \K\FiveStar & \K\JackStarBold \\
+\K\AsteriskCenterOpen & \K\FiveStarCenterOpen & \K\SixFlowerAlternate \\
+\K\AsteriskRoundedEnds & \K\FiveStarConvex & \K\SixFlowerAltPetal \\
+\K\AsteriskThin & \K\FiveStarLines & \K\SixFlowerOpenCenter \\
+\K\AsteriskThinCenterOpen & \K\FiveStarOpen & \K\SixFlowerPetalDotted \\
+\K\DavidStar & \K\FiveStarOpenCircled & \K\SixFlowerPetalRemoved \\
+\K\DavidStarSolid & \K\FiveStarOpenDotted & \K\SixFlowerRemovedOpenPetal \\
+\K\EightAsterisk & \K\FiveStarOutline & \K\SixStar \\
+\K\EightFlowerPetal & \K\FiveStarOutlineHeavy & \K\SixteenStarLight \\
+\K\EightFlowerPetalRemoved & \K\FiveStarShadow & \K\Snowflake \\
+\K\EightStar & \K\FourAsterisk & \K\SnowflakeChevron \\
+\K\EightStarBold & \K\FourClowerOpen & \K\SnowflakeChevronBold \\
+\K\EightStarConvex & \K\FourClowerSolid & \K\Sparkle \\
+\K\EightStarTaper & \K\FourStar & \K\SparkleBold \\
+\K\FiveFlowerOpen & \K\FourStarOpen & \K\TwelweStar \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Stars, Flowers, and Similar Shapes}
+\index{asterisks}
+\index{clovers}
+\index{flowers}
+\index{sparkles}
+\index{snowflakes}
+\index{stars}
+\label{pi-star-like}
+\begin{tabular}{*5{ll}}
+\Tp{65} & \Tp{74} & \Tp{83} & \Tp{92} & \Tp{101} \\
+\Tp{66} & \Tp{75} & \Tp{84} & \Tp{93} & \Tp{102} \\
+\Tp{67} & \Tp{76} & \Tp{85} & \Tp{94} & \Tp{103} \\
+\Tp{68} & \Tp{77} & \Tp{86} & \Tp{95} & \Tp{104} \\
+\Tp{69} & \Tp{78} & \Tp{87} & \Tp{96} & \Tp{105} \\
+\Tp{70} & \Tp{79} & \Tp{88} & \Tp{97} & \Tp{106} \\
+\Tp{71} & \Tp{80} & \Tp{89} & \Tp{98} & \Tp{107} \\
+\Tp{72} & \Tp{81} & \Tp{90} & \Tp{99} \\
+\Tp{73} & \Tp{82} & \Tp{91} & \Tp{100} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Geometric Shapes}
+\index{polygons}
+\index{geometric shapes}
+\label{wasy-geometrical}
+\begin{tabular}{*8l}
+\K\hexagon & \K\octagon & \K\pentagon & \K\varhexagon
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MNS]{\MNS\ Geometric Shapes}
+\index{polygons}
+\index{stars}
+\index{geometric shapes}
+\label{mns-geometrical}
+\begin{tabular}{*4{ll}}
+\K[\MNSfilledlargestar]\filledlargestar & \K[\MNSlargediamond]\largediamond & \K[\MNSlargestar]\largestar & \K[\MNSsmalllozenge]\smalllozenge \\
+\K[\MNSfilledlozenge]\filledlozenge & \K[\MNSlargelozenge]\largelozenge & \K[\MNSlargestarofdavid]\largestarofdavid & \\
+\K[\MNSfilledmedlozenge]\filledmedlozenge & \K[\MNSlargepentagram]\largepentagram & \K[\MNSmedlozenge]\medlozenge & \\
+\K[\MNSlargecircle]\largecircle & \K[\MNSlargesquare]\largesquare & \K[\MNSmedstarofdavid]\medstarofdavid & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ \MNS\ defines \cmdI[\MNSlargecircle]{\bigcirc} as a synonym for
+ \cmdI[\MNSlargecircle]{\largecircle};
+ \cmdI[\MNSfilledlargestar]{\bigstar} as a synonym for
+ \cmdI[\MNSfilledlargestar]{\filledlargestar};
+ \cmdI[\MNSmedlozenge]{\lozenge} as a synonym for
+ \cmdI[\MNSmedlozenge]{\medlozenge}; and,
+ \cmdI[\MNSfilledmedlozenge]{\blacklozenge} as a synonym for
+ \cmdI[\MNSfilledmedlozenge]{\filledmedlozenge}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[IFS]{\IFS\ Geometric Shapes}
+\index{circles}
+\index{diamonds}
+\index{geometric shapes}
+\index{squares}
+\index{triangles}
+\label{ifs-geometrical}
+\begin{tabular}{*3{ll}}
+\K\BigCircle & \K\FilledBigTriangleRight & \K\SmallCircle \\
+\K\BigCross & \K\FilledBigTriangleUp & \K\SmallCross \\
+\K\BigDiamondshape & \K\FilledCircle & \K\SmallDiamondshape \\
+\K\BigHBar & \K\FilledDiamondShadowA & \K\SmallHBar \\
+\K\BigLowerDiamond & \K\FilledDiamondShadowC & \K\SmallLowerDiamond \\
+\K\BigRightDiamond & \K\FilledDiamondshape & \K\SmallRightDiamond \\
+\K\BigSquare & \K\FilledSmallCircle & \K\SmallSquare \\
+\K\BigTriangleDown & \K\FilledSmallDiamondshape & \K\SmallTriangleDown \\
+\K\BigTriangleLeft & \K\FilledSmallSquare & \K\SmallTriangleLeft \\
+\K\BigTriangleRight & \K\FilledSmallTriangleDown & \K\SmallTriangleRight \\
+\K\BigTriangleUp & \K\FilledSmallTriangleLeft & \K\SmallTriangleUp \\
+\K\BigVBar & \K\FilledSmallTriangleRight & \K\SmallVBar \\
+\K[\ifsCircle]\Circle & \K\FilledSmallTriangleUp & \K\SpinDown \\
+\K[\ifsCross]\Cross & \K\FilledSquare & \K\SpinUp \\
+\K\DiamondShadowA & \K\FilledSquareShadowA & \K[\ifsSquare]\Square \\
+\K\DiamondShadowB & \K\FilledSquareShadowC & \K\SquareShadowA \\
+\K\DiamondShadowC & \K\FilledTriangleDown & \K\SquareShadowB \\
+\K\Diamondshape & \K\FilledTriangleLeft & \K\SquareShadowC \\
+\K\FilledBigCircle & \K\FilledTriangleRight & \K[\ifsTriangleDown]\TriangleDown \\
+\K\FilledBigDiamondshape & \K\FilledTriangleUp & \K\TriangleLeft \\
+\K\FilledBigSquare & \K\HBar & \K\TriangleRight \\
+\K\FilledBigTriangleDown & \K\LowerDiamond & \K[\ifsTriangleUp]\TriangleUp \\
+\K\FilledBigTriangleLeft & \K\RightDiamond & \K\VBar \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ \begin{morespacing}{1pt}
+ The \IFS\ documentation points out that one can use \cmd{\rlap} to
+ combine some of the above into useful, new symbols. For example,
+ \cmdI{\BigCircle} and \cmdI{\FilledSmallCircle} combine to give
+ ``\,\rlap\FilledSmallCircle\BigCircle\,''. Likewise,
+ \cmdI[\ifsSquare]{\Square} and
+ \cmdI[\ifsCross]{\Cross} combine to give
+ ``\rlap\ifsCross\ifsSquare''. See Section~\ref{combining-symbols}
+ for more information about constructing new symbols out of
+ existing symbols.
+ \end{morespacing}
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[DING]{\DING\ Geometric Shapes}
+\index{circles}
+\index{diamonds}
+\index{ellipses (ovals)}
+\index{geometric shapes}
+\index{ovals}
+\index{rectangles}
+\index{squares}
+\index{triangles}
+\label{ding-geometrical}
+\begin{tabular}{*3{ll}}
+\K\CircleShadow & \K\Rectangle & \K\SquareShadowTopLeft \\
+\K\CircleSolid & \K\RectangleBold & \K\SquareShadowTopRight \\
+\K\DiamondSolid & \K\RectangleThin & \K\SquareSolid \\
+\K\Ellipse & \K[\dingSquare]\Square & \K\TriangleDown \\
+\K\EllipseShadow & \K\SquareCastShadowBottomRight & \K\TriangleUp \\
+\K\EllipseSolid & \K\SquareCastShadowTopLeft \\
+\K\HalfCircleLeft & \K\SquareCastShadowTopRight \\
+\K\HalfCircleRight & \K\SquareShadowBottomRight \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{\PI\ Geometric Shapes}
+\index{circles}
+\index{diamonds}
+\index{geometric shapes}
+\index{rectangles}
+\index{squares}
+\index{triangles}
+\label{pi-geometrical}
+\begin{tabular}{*5{ll}}
+\Tp{108} & \Tp{111} & \Tp{114} & \Tp{117} & \Tp{121} \\
+\Tp{109} & \Tp{112} & \Tp{115} & \Tp{119} & \Tp{122} \\
+\Tp{110} & \Tp{113} & \Tp{116} & \Tp{120} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[UNI]{\UNI\ Geometric Shapes}
+\index{circles}
+\index{squares}
+\index{triangles}
+\index{geometric shapes}
+\label{uni-geometrical}
+\begin{tabular}{*3{ll}}
+\K\baucircle & \K\bausquare & \K\bautriangle \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[BAYER]{\BAYER\ Geometric Shapes}
+\index{circles}
+\index{squares}
+\index{triangles}
+\index{geometric shapes}
+\label{bayer-geometrical}
+\begin{tabular}{*3{ll}}
+\K[\BAYERbaucircle]\baucircle & \K\bauhole & \K[\BAYERbausquare]\bausquare \\
+\K\baueclipse & \K\baupunct & \K[\BAYERbautriangle]\bautriangle \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[IGO]{\IGO\ Go Stones}
+\index{symbols>Go stones}
+\index{Go stones}
+\index{circles}
+\index{squares}
+\index{triangles}
+\index{crosses}
+\index{geometric shapes}
+\index{circled numbers}
+\index{numbers>circled}
+\label{go-stones}
+\begin{tabular}{ll@{\qquad}ll}
+\IGOb\igocircle & \IGOw\igocircle \\
+\IGOb\igocross & \IGOw\igocross \\
+\IGOb\igonone & \IGOw\igonone \\
+\IGOb\igosquare & \IGOw\igosquare \\
+\IGOb\igotriangle & \IGOw\igotriangle \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ In addition to the symbols shown above, \IGO's \cmd{\blackstone} and
+ \cmd{\whitestone} commands accept numbers from~1 to~99 and display
+ them circled as \blackstone[1], \blackstone[2],
+ \blackstone[3],~\dots\ \blackstone[99] and \whitestone[1],
+ \whitestone[2], \whitestone[3],~\dots\ \whitestone[99],
+ respectively.
+
+ The \IGO\ package is intended to typeset Go\index{Go boards} boards
+ (goban\index{goban}). \seedocs{\IGO}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MAN]{\MAN\ Dangerous Bend Symbols}
+\idxboth{dangerous bend}{symbols}
+\index{symbols>Knuth's}
+\index{Knuth, Donald E.>symbols by}
+\idxTBsyms
+\label{dangerous-bend}
+\begin{tabular}{*3{ll}}
+\K\dbend & \K\lhdbend & \K\reversedvideodbend \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ Note that these symbols descend far beneath the baseline. \MAN\
+ also defines non-descending versions, which it calls,
+ correspondingly, \cmdI[\string\textdbend]{\textdbend},
+ \cmdI[\string\textlhdbend]{\textlhdbend}, and
+ \cmdI[\string\textreversedvideodbend]{\textreversedvideodbend}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[SKULL]{\SKULL\ Symbols}
+\label{skull}
+\begin{tabular}{ll}
+\K\skull
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ABX]{Non-Mathematical \ABX\ Symbols}
+\label{abx-nonmath}
+\begin{tabular}{ll}
+\X[\ABXrip]\rip
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Information Symbols}
+\idxboth{information}{symbols}
+\index{check marks}
+\index{Xs}
+\label{marv-info}
+\begin{tabular}{*3{ll}ll}
+\K\Bicycle & \K\Football & \K\Pointinghand \\
+\K\Checkedbox & \K\Gentsroom & \K\Wheelchair \\
+\K\Clocklogo & \K\Industry & \K\Writinghand \\
+\K\Coffeecup & \K\Info \\
+\K\Crossedbox & \K\Ladiesroom \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[ARK]{Miscellaneous \ARK\ Dingbats}
+\idxboth{miscellaneous}{symbols}
+\index{check marks}
+\index{carriage return}
+\label{ark-misc}
+\begin{tabular}{*3{ll}}
+\K\anchor & \K\eye & \K\Sborder \\
+\K\carriagereturn & \K\filledsquarewithdots & \K\squarewithdots \\
+\K[\ARKcheckmark]\checkmark & \K\satellitedish & \K\Zborder \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[DING]{Miscellaneous \DING\ Dingbats}
+\idxboth{miscellaneous}{symbols}
+\label{bbding-misc}
+\begin{tabular}{*4{ll}}
+\K\Envelope & \K\Peace & \K\PhoneHandset & \K\SunshineOpenCircled \\
+\K\OrnamentDiamondSolid & \K\Phone & \K\Plane & \K\Tape \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PI]{Miscellaneous \PI\ Dingbats}
+\idxboth{miscellaneous}{symbols}
+\index{card suits}
+\index{diamonds (suit)}
+\index{hearts (suit)}
+\index{clubs (suit)}
+\index{spades (suit)}
+\label{pi-misc}
+\begin{tabular}{*5{ll}}
+\Tp{37} & \Tp{40} & \Tp{164} & \Tp{167} & \Tp{171} \\
+\Tp{38} & \Tp{41} & \Tp{165} & \Tp{168} & \Tp{169} \\
+\Tp{39} & \Tp{118} & \Tp{166} & \Tp{170} \\
+\end{tabular}
+\end{symtable}
+
+\idxbothend{dingbat}{symbols}
+
+
+\section{Other symbols}
+\idxbothbegin{miscellaneous}{symbols}
+
+The following are all the symbols that didn't fit neatly or
+unambiguously into any of the previous sections.
+\ifcomplete
+(Do weather symbols belong under ``Science and technology''? Should
+dice be considered ``mathematics''?) While some of the tables contain
+clearly related groups of symbols (e.g., musical notes), others
+represent motley assortments of whatever the font designer felt like
+drawing.
+\fi
+
+\bigskip
+
+
+\begin{symtable}{\TC\ Genealogical Symbols}
+\idxboth{genealogical}{symbols}
+\label{genealogical}
+\begin{tabular}{*3{ll}}
+\K\textborn & \K\textdivorced & \K\textmarried \\
+\K\textdied & \K\textleaf \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ General Symbols}
+\index{symbols>general}
+\index{smiley faces}
+\index{faces}
+\label{wasy-general}
+\begin{tabular}{*4{ll}}
+\K\ataribox & \K\clock & \K\LEFTarrow & \K\smiley \\
+\K\bell & \K\diameter & \K\lightning & \K\sun \\
+\K\blacksmiley & \K\DOWNarrow & \K\phone & \K\UParrow \\
+\K\Bowtie & \K\frownie & \K\pointer & \K\wasylozenge \\
+\K\brokenvert & \K\invdiameter & \K\recorder \\
+\K\checked & \K\kreuz & \K\RIGHTarrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Circles}
+\index{circles}
+\label{wasy-circles}
+\begin{tabular}{*8l}
+\K\CIRCLE & \K\LEFTcircle & \K\RIGHTcircle & \K\rightturn \\
+\K\Circle & \K\Leftcircle & \K\Rightcircle \\
+\K\LEFTCIRCLE & \K\RIGHTCIRCLE & \K\leftturn \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[WASY]{\WASY\ Musical Symbols}
+\idxboth{musical}{symbols}
+\label{wasy-music}
+\begin{tabular}{*{10}l}
+\K\eighthnote & \K\halfnote & \K\twonotes &
+\K\fullnote & \K\quarternote \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ See also \cmdX{\flat}, \cmdX{\sharp}, and \cmdX{\natural}
+ (Table~\vref{ord}).
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[AREV]{\AREV\ Musical Symbols}
+\idxboth{musical}{symbols}
+\label{arev-music}
+\begin{tabular}{ll@{\qquad}ll@{\qquad}ll}
+\K[\AREVquarternote]\quarternote &
+\K[\AREVeighthnote]\eighthnote &
+\K[\AREVsixteenthnote]\sixteenthnote \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ See also \cmdX{\flat}, \cmdX{\sharp}, and \cmdX{\natural}
+ (Table~\vref{ord}).
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[HARM]{\HARM\ Musical Symbols}
+\idxboth{musical}{symbols}
+\label{harmony-music}
+\begin{tabular}{*4{ll@{\hspace{3em}}}ll}
+\K\AAcht & \K\DDohne & \K\Halb & \K\SechBR & \K\VM \\
+\K\Acht & \K\Dohne & \K\HaPa & \K\SechBr & \K\Zwdr \\
+\K\AchtBL & \K\Ds & \K\Pu & \K\SePa & \K\ZwPa \\
+\K\AchtBR & \K\DS & \K\Sech & \K\UB & \\
+\K\AcPa & \K\Ganz & \K\SechBL & \K\Vier & \\
+\K\DD & \K\GaPa & \K\SechBl & \K\ViPa & \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ The \pkgname{musixtex} package must be installed to use \HARM.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[HARM]{\HARM\ Musical Accents}
+\idxboth{musical}{symbols}
+\index{accents}
+\label{harmony-accents}
+\begin{tabular}{ll@{\hspace{3em}}ll}
+\Q\Ferli$^*$ & \Q\Ohne$^*$ \\
+\Q\Fermi & \Q\Umd$^*$ \\
+\Qc\Kr & \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}[*]
+ These symbols take an optional argument which shifts the accent
+ either horizontally or vertically (depending on the command) by the
+ given distance.
+\end{tablenote}
+
+\bigskip
+\begin{tablenote}
+ In addition to the accents shown above, \cmd{\HH} is a special
+ accent command which accepts five period-separated characters and
+ typesets them such that ``\verb|\HH.X.a.b.c.d.|'' produces
+ ``\harmHH.X.a.b.c.d.''. All arguments except the first can be
+ omitted: ``\verb|\HH.X.....|'' produces ``\harmHH.X.....''.
+ \cmd{\Takt} takes two arguments and composes them into a musical
+ time signature. For example, ``\verb|\Takt{12}{8}|'' produces
+ ``\Takt{12}{8}''. As two special cases, ``\verb|\Takt{c}{0}|''
+ produces ``\Takt{c}{0}'' and ``\verb|\Takt{c}{1}|'' produces
+ ``\Takt{c}{1}''.
+
+ The \pkgname{musixtex} package must be installed to use \HARM.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[MAN]{Miscellaneous \MAN\ Symbols}
+\index{symbols>Knuth's}
+\index{Knuth, Donald E.>symbols by}
+\index{symbols>Metafontbook=\MF{}book}\index{Metafontbook symbols=\MF{}book symbols}
+\idxTBsyms
+\label{knuth}
+\begin{tabular}{*2{ll}}
+\K\manboldkidney & \K\manpenkidney \\
+\K\manconcentriccircles & \K\manquadrifolium \\
+\K\manconcentricdiamond & \K\manquartercircle \\
+\K\mancone & \K\manrotatedquadrifolium \\
+\K\mancube & \K\manrotatedquartercircle \\
+\K\manerrarrow & \K\manstar \\
+\K\manfilledquartercircle & \K\mantiltpennib \\
+\K\manhpennib & \K\mantriangledown \\
+\K\manimpossiblecube & \K\mantriangleright \\
+\K\mankidney & \K\mantriangleup \\
+\K\manlhpenkidney & \K\manvpennib \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Navigation Symbols}
+\idxboth{navigation}{symbols}
+\label{marv-navigation}
+\begin{tabular}{*3{ll}ll}
+\K\Forward & \K\MoveDown & \K\RewindToIndex & \K\ToTop \\
+\K\ForwardToEnd & \K\MoveUp & \K\RewindToStart \\
+\K\ForwardToIndex & \K\Rewind & \K\ToBottom \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{\MARV\ Laundry Symbols}
+\idxboth{laundry}{symbols}
+\label{marv-laundry}
+\begin{tabular}{*3{ll}}
+\K\AtForty & \K\Handwash & \K\ShortNinetyFive \\
+\K\AtNinetyFive & \K\IroningI & \K\ShortSixty \\
+\K\AtSixty & \K\IroningII & \K\ShortThirty \\
+\K\Bleech & \K\IroningIII & \K\SpecialForty \\
+\K\CleaningA & \K\NoBleech & \K\Tumbler \\
+\K\CleaningF & \K\NoChemicalCleaning & \K\WashCotton \\
+\K\CleaningFF & \K\NoIroning & \K\WashSynthetics \\
+\K\CleaningP & \K\NoTumbler & \K\WashWool \\
+\K\CleaningPP & \K\ShortFifty \\
+\K\Dontwash & \K\ShortForty \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[MARV]{Other \MARV\ Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{crosses}
+\index{crucifixes}
+\index{smiley faces}
+\index{faces}
+\label{marv-other}
+\begin{tabular}{*4{ll}}
+\K\Ankh & \K\Cross & \K\Heart & \K\Smiley \\
+\K\Bat & \K\FHBOlogo & \K\MartinVogel & \K\Womanface \\
+\K\Bouquet & \K\FHBOLOGO & \K\Mundus & \K\Yinyang \\
+\K\Celtcross & \K\Frowny & \K\MVAt \\
+\K\CircledA & \K\FullFHBO & \K\MVRightarrow \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[UNI]{Miscellaneous \UNI\ Symbols}
+\index{faces}
+\label{uni-misc}
+\begin{tabular}{*2{ll}}
+\K\bauforms & \K\bauhead \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[BAYER]{Miscellaneous \BAYER\ Symbols}
+\index{window}
+\index{faces}
+\label{bayer-misc}
+\begin{tabular}{*4{ll}}
+\K\baudash & \K[\BAYERbauforms]\bauforms & \K\bauquarter & \K\varQ \\
+\K\bauequal & \K[\BAYERbauhead]\bauhead & \K\bauquestion & \\
+\K\bauface & \K\bauplus & \K\bauwindow & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[IFS]{\IFS\ Weather Symbols}
+\idxboth{weather}{symbols}
+\label{weather}
+\begin{tabular}{*4{ll}}
+\K\Cloud & \K\Hail & \K\Sleet & \K\WeakRain \\
+\K\FilledCloud & \K\HalfSun & \K\Snow & \K\WeakRainCloud \\
+\K\FilledRainCloud & \K[\ifsLightning]\Lightning & \K\SnowCloud & \K\FilledSnowCloud \\
+\K\FilledSunCloud & \K\NoSun & \K[\ifsSun]\Sun & \\
+\K\FilledWeakRainCloud & \K\Rain & \K\SunCloud & \\
+\K\Fog & \K\RainCloud & \K\ThinFog & \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ \begin{morespacing}{\jot}
+ In addition,
+ \verb|\Thermo{0}|$\ldots$\verb|\Thermo{6}|\indexcommand{\Thermo}
+ produce thermometers that are between 0/6 and 6/6~full of
+ mercury:\quad \mbox{\Thermo{0}~~\Thermo{1}~~\Thermo{2}~~\Thermo{3}~~%
+ \Thermo{4}~~\Thermo{5}~~\Thermo{6}}
+ \end{morespacing}
+
+ \begin{morespacing}{1pt}
+ Similarly,
+ \cmd{\wind}\verb|{|\meta{sun}\verb|}{|\meta{angle}\verb|}{|\meta{strength}\verb|}|
+ will draw wind symbols with a given amount of sun~(0--4), a given
+ angle (in degrees), and a given strength in km/h~(0--100). For
+ example, \verb|\wind{0}{0}{0}| produces ``\,\wind{0}{0}{0}\unskip'',
+ \verb|\wind{2}{0}{0}| produces ``\,\wind{2}{0}{0}\unskip'', and
+ \verb|\wind{4}{0}{100}| produces ``\,\wind{4}{0}{100}\unskip''.
+ \end{morespacing}
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[IFS]{\IFS\ Alpine Symbols}
+\idxboth{alpine}{symbols}
+\label{alpine}
+\begin{tabular}{*4{ll}}
+\K\SummitSign & \K\Summit & \K\SurveySign & \K\HalfFilledHut \\
+\K\StoneMan & \K\Mountain & \K\Joch & \K\VarSummit \\
+\K\Hut & \K\IceMountain & \K\Flag & \\
+\K\FilledHut & \K\VarMountain & \K\VarFlag & \\
+\K\Village & \K\VarIceMountain & \K\Tent & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[IFS]{\IFS\ Clocks}
+\idxboth{clock}{symbols}
+\index{time of day}
+\label{clocks}
+\begin{tabular}{*4{ll}}
+\K\Interval & \K\StopWatchStart & \K\VarClock & \K\Wecker \\
+\K\StopWatchEnd & \K\Taschenuhr & \K\VarTaschenuhr \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ \IFS\ also exports a \cmd{\showclock} macro.
+ \verb|\showclock{|\meta{hours}\verb|}{|\meta{minutes}\verb|}| outputs
+ a clock displaying the corresponding time. For instance,
+ ``\verb|\showclock{5}{40}|'' produces ``\showclock{5}{40}''.
+ \meta{hours} must be an integer from 0 to~11, and \meta{minutes} must
+ be an integer multiple of~5 from 0 to~55.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[IFS]{Other \IFS\ Symbols}
+\idxboth{miscellaneous}{symbols}
+\index{tally markers}
+\index{dice}
+\label{ifs-misc}
+\begin{tabular}{*3{ll}}
+\K\FilledSectioningDiamond & \K[\ifsLetter]\Letter
+ & \K\Radiation \\
+\K\Fire & \K\PaperLandscape & \K\SectioningDiamond \\
+\K\Irritant & \K\PaperPortrait & \K\Telephone \\[2ex]
+
+\K\StrokeOne & \K\StrokeThree & \K\StrokeFive \\
+\K\StrokeTwo & \K\StrokeFour \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ \begin{morespacing}{\jot}
+ In addition,
+ \verb|\Cube{1}|$\ldots$\verb|\Cube{6}|\indexcommand{\Cube} produce
+ dice with the corresponding number of spots:\quad
+ \mbox{\Cube{1}~~\Cube{2}~~\Cube{3}~~\Cube{4}~~\Cube{5}~~\Cube{6}}
+ \end{morespacing}
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[EDICE]{\EDICE\ Dice}
+\idxboth{miscellaneous}{symbols}
+\index{dice}
+\label{edice}
+\begin{tabular}{ll@{\qquad}ll@{\qquad}ll}
+ \KED[\allepsdice][\epsdice][\epsdice{1}]\epsdice\verb|{1}| &
+ \KED[\allepsdice][\epsdice][\epsdice{3}]\epsdice\verb|{3}| &
+ \KED[\allepsdice][\epsdice][\epsdice{5}]\epsdice\verb|{5}| \\
+ \KED[\allepsdice][\epsdice][\epsdice{2}]\epsdice\verb|{2}| &
+ \KED[\allepsdice][\epsdice][\epsdice{4}]\epsdice\verb|{4}| &
+ \KED[\allepsdice][\epsdice][\epsdice{6}]\epsdice\verb|{6}| \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ The \EDICE\ package does not provide a font but rather an interface
+ to a set of graphics drawn in Encapsulated \postscript.
+ Consequently, \EDICE\ does not work with pdf\LaTeX.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[SKAK]{\SKAK\ Chess Informator Symbols}
+\idxboth{chess}{symbols}
+\idxboth{informator}{symbols}
+\begin{tabular}{*4{ll}}
+\K\bbetter & \K\doublepawns & \K\novelty & \K\various \\
+\K\bdecisive & \K\ending & \K\onlymove & \K\wbetter \\
+\K\betteris & \K\equal & \K\opposbishops & \K\wdecisive \\
+\K\bishoppair & \K[\SKAKetc]\etc & \K\passedpawn & \K\weakpt \\
+\K\bupperhand & \K\file & \K\qside & \K\with \\
+\K\centre & \K\kside & \K\samebishops & \K\withattack \\
+\K\comment & \K\markera & \K[\SKAKsee]\see & \K\withidea \\
+\K\compensation & \K\markerb & \K\seppawns & \K\withinit \\
+\K\counterplay & \K\mate & \K\timelimit & \K\without \\
+\K\devadvantage & \K\morepawns & \K\unclear & \K\wupperhand \\
+\K\diagonal & \K\moreroom & \K\unitedpawns & \K\zugzwang \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ \font\chessfont=skak10
+ \def\chs#1{{\chessfont#1}}
+
+ The preceding symbols are merely the named informator symbol.
+ \SKAK\ can typeset many more chess-related symbols, including those
+ for all of the pieces (\chs{KQRBNP}\slash\chs{kqrbnp}), but only in
+ the context of moves and boards, not as individual, named \latex
+ symbols.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[METRE]{\METRE\ Metrical Symbols}
+\idxboth{metrical}{symbols}
+\label{metre}
+\begin{tabular}{*5{ll@{\hspace*{2em}}}ll}
+\Mt\a & \Mt\bBm & \Mt\cc & \Mt\Mbb & \Mt\Pppp & \Mt\t \\
+\Mt\B & \Mt\bbm & \Mt\Ccc & \Mt\mbbx & \Mt\pppp & \Mt\tsbm \\
+\Mt\b & \Mt\Bbm & \Mt\m & \Mt\oo & \Mt\Ppppp & \Mt\tsmb \\
+\Mt\Bb & \Mt\bbmb & \Mt\M & \Mt\p & \Mt\ppppp & \Mt\tsmm \\
+\Mt\BB & \Mt\bbmx & \Mt\ma & \Mt\pm & \Mt\ps & \Mt\vppm \\
+\Mt\bb & \Mt\bm & \Mt\Mb & \Mt\pp & \Mt\pxp & \Mt\vpppm \\
+\Mt\bB & \Mt\Bm & \Mt\mb & \Mt\Pp & \Mt\Pxp & \Mt\x \\
+\Mt\bba & \Mt\c & \Mt\mBb & \Mt\ppm & \Mt\R \\
+\Mt\bbb & \Mt\C & \Mt\mbB & \Mt\ppp & \Mt\r \\
+\Mt\BBm & \Mt\Cc & \Mt\mbb & \Mt\Ppp & \Mt\T \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ The preceding symbols are valid only within the argument to the
+ \cmd{metre} command.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[METRE]{\METRE\ Small and Large Metrical Symbols}
+\idxboth{metrical}{symbols}
+\label{metre-small-large}
+\begin{tabular}{ll@{\hspace*{3em}}ll}
+\K\anaclasis & \K\Anaclasis \\
+\K[\METREantidiple]\antidiple & \K[\METREAntidiple]\Antidiple \\
+\K[\METREantidiplestar]{\antidiple*} & \K[\METREAntidiplestar]{\Antidiple*} \\
+\K\antisigma & \K\Antisigma \\
+\K\asteriscus & \K\Asteriscus \\
+\K\catalexis & \K\Catalexis \\
+\K[\METREdiple]\diple & \K[\METREDiple]\Diple \\
+\K[\METREdiplestar]{\diple*} & \K[\METREDiplestar]{\Diple*} \\
+\K[\METREobelus]\obelus & \K[\METREObelus]\Obelus \\
+\K[\METREobelusstar]{\obelus*} & \K[\METREObelusstar]{\Obelus*} \\
+\K[\METRErespondens]\respondens & \K[\METRERespondens]\Respondens \\
+\K[\METREterminus]\terminus & \K[\METRETerminus]\Terminus \\
+\K[\METREterminusstar]{\terminus*} & \K[\METRETerminusstar]{\Terminus*} \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PHAI]{\PHAI\ Symbols from the Phaistos Disk}
+\index{Phaistos disk}
+\index{symbols>Phaistos disk}
+\label{phaistos}
+\begin{tabular}{*2{ll@{\hspace*{3em}}}ll}
+\K\PHarrow & \K\PHeagle & \K\PHplumedHead \\
+\K\PHbee & \K\PHflute & \K\PHram \\
+\K\PHbeehive & \K\PHgaunlet & \K\PHrosette \\
+\K\PHboomerang & \K\PHgrater & \K\PHsaw \\
+\K\PHbow & \K\PHhelmet & \K\PHshield \\
+\K\PHbullLeg & \K\PHhide & \K\PHship \\
+\K\PHcaptive & \K\PHhorn & \K\PHsling \\
+\K\PHcarpentryPlane & \K\PHlid & \K\PHsmallAxe \\
+\K\PHcat & \K\PHlily & \K\PHstrainer \\
+\K\PHchild & \K\PHmanacles & \K\PHtattooedHead \\
+\K\PHclub & \K\PHmattock & \K\PHtiara \\
+\K\PHcolumn & \K\PHoxBack & \K\PHtunny \\
+\K\PHcomb & \K\PHpapyrus & \K\PHvine \\
+\K\PHdolium & \K\PHpedestrian & \K\PHwavyBand \\
+\K\PHdove & \K\PHplaneTree & \K\PHwoman \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[PROTO]{\PROTO\ Proto-Semitic Characters}
+\idxboth{proto-Semitic}{symbols}
+\index{alphabets>proto-Semitic}
+\label{protosem}
+\begin{tabular}{*4{ll@{\hspace*{3em}}}ll}
+\K[\textproto\Aaleph]\Aaleph &
+\K[\textproto\AAhe]\AAhe &
+\K[\textproto\Akaph]\Akaph &
+\K[\textproto\Asamekh]\Asamekh &
+\K[\textproto\AAresh]\AAresh \\
+
+\K[\textproto\AAaleph]\AAaleph &
+\K[\textproto\Azayin]\Azayin &
+\K[\textproto\AAkaph]\AAkaph &
+\K[\textproto\Ape]\Ape &
+\K[\textproto\Ashin]\Ashin \\
+
+\K[\textproto\Abeth]\Abeth &
+\K[\textproto\Avav]\Avav &
+\K[\textproto\Alamed]\Alamed &
+\K[\textproto\AApe]\AApe &
+\K[\textproto\Ahelmet]\Ahelmet \\
+
+\K[\textproto\AAbeth]\AAbeth &
+\K[\textproto\Aheth]\Aheth &
+\K[\textproto\AAlamed]\AAlamed &
+\K[\textproto\Asade]\Asade &
+\K[\textproto\AAhelmet]\AAhelmet \\
+
+\K[\textproto\Agimel]\Agimel &
+\K[\textproto\AAheth]\AAheth &
+\K[\textproto\Am]\Amem &
+\K[\textproto\AAsade]\AAsade &
+\K[\textproto\Atav]\Atav \\
+
+\K[\textproto\Adaleth]\Adaleth &
+\K[\textproto\Ateth]\Ateth &
+\K[\textproto\Anun]\Anun &
+\K[\textproto\Aqoph]\Aqoph \\
+
+\K[\textproto\AAdaleth]\AAdaleth &
+\K[\textproto\Ayod]\Ayod &
+\K[\textproto\Aayin]\Aayin &
+\K[\textproto\AAqoph]\AAqoph \\
+
+\K[\textproto\Ahe]\Ahe &
+\K[\textproto\AAyod]\AAyod &
+\K[\textproto\AAayin]\AAayin &
+\K[\textproto\Aresh]\Aresh \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ The \PROTO\ package defines abbreviated control sequences for each
+ of the above. In addition, single-letter shortcuts can be used
+ within the argument to the \cmd{\textproto} command
+ (e.g.,~``\verb|\textproto{Pakyn}|'' produces ``\textproto{Pakyn}'').
+ \seedocs{\PROTO}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[HIER]{\HIER\ Hieroglyphics}
+\index{hieroglyphics}
+\index{alphabets>hieroglyphic}
+\label{hieroglf}
+\begin{tabular}{*3{ll@{\hspace*{3em}}}ll}
+\K[\textpmhg\HA]\HA & \K[\textpmhg\HI]\HI & \K[\textpmhg\Hn]\Hn & \K[\textpmhg\HT]\HT \\
+\K[\textpmhg\Ha]\Ha & \K[\textpmhg\Hi]\Hi & \K[\textpmhg\HO]\HO & \K[\textpmhg\Ht]\Ht \\
+\K[\textpmhg\HB]\HB & \K[\textpmhg\Hibl]\Hibl & \K[\textpmhg\Ho]\Ho & \K[\textpmhg\Htongue]\Htongue \\
+\K[\textpmhg\Hb]\Hb & \K[\textpmhg\Hibp]\Hibp & \K[\textpmhg\Hp]\Hp & \K[\textpmhg\HU]\HU \\
+\K[\textpmhg\Hc]\Hc & \K[\textpmhg\Hibs]\Hibs & \K[\textpmhg\HP]\HP & \K[\textpmhg\Hu]\Hu \\
+\K[\textpmhg\HC]\HC & \K[\textpmhg\Hibw]\Hibw & \K[\textpmhg\Hplural]\Hplural & \K[\textpmhg\HV]\HV \\
+\K[\textpmhg\HD]\HD & \K[\textpmhg\HJ]\HJ & \K[\textpmhg\Hplus]\Hplus & \K[\textpmhg\Hv]\Hv \\
+\K[\textpmhg\Hd]\Hd & \K[\textpmhg\Hj]\Hj & \K[\textpmhg\HQ]\HQ & \K[\textpmhg\Hvbar]\Hvbar \\
+\K[\textpmhg\Hdual]\Hdual & \K[\textpmhg\Hk]\Hk & \K[\textpmhg\Hq]\Hq & \K[\textpmhg\Hw]\Hw \\
+\K[\textpmhg\He]\He & \K[\textpmhg\HK]\HK & \K[\textpmhg\Hquery]\Hquery & \K[\textpmhg\HW]\HW \\
+\K[\textpmhg\HE]\HE & \K[\textpmhg\HL]\HL & \K[\textpmhg\HR]\HR & \K[\textpmhg\HX]\HX \\
+\K[\textpmhg\Hf]\Hf & \K[\textpmhg\Hl]\Hl & \K[\textpmhg\Hr]\Hr & \K[\textpmhg\Hx]\Hx \\
+\K[\textpmhg\HF]\HF & \K[\textpmhg\Hm]\Hm & \K[\textpmhg\Hs]\Hs & \K[\textpmhg\HY]\HY \\
+\K[\textpmhg\HG]\HG & \K[\textpmhg\HM]\HM & \K[\textpmhg\HS]\HS & \K[\textpmhg\Hy]\Hy \\
+\K[\textpmhg\Hg]\Hg & \K[\textpmhg\Hman]\Hman & \K[\textpmhg\Hscribe]\Hscribe & \K[\textpmhg\Hz]\Hz \\
+\K[\textpmhg\Hh]\Hh & \K[\textpmhg\Hms]\Hms & \K[\textpmhg\Hslash]\Hslash & \K[\textpmhg\HZ]\HZ \\
+\K[\textpmhg\HH]\HH & \K[\textpmhg\HN]\HN & \K[\textpmhg\Hsv]\Hsv & \\
+~\\[2ex]
+\K[\textpmhg\Hone]\Hone & \K[\textpmhg\Hhundred]\Hhundred & \K[\textpmhg\HXthousand]\HXthousand & \K[\textpmhg\Hmillion]\Hmillion \\
+\K[\textpmhg\Hten]\Hten & \K[\textpmhg\Hthousand]\Hthousand & \K[\textpmhg\HCthousand]\HCthousand \\
+\end{tabular}
+
+\bigskip
+\begin{tablenote}
+ The \HIER\ package defines alternate control sequences and
+ single-letter shortcuts for each of the above which can be used
+ within the argument to the \cmd{\textpmhg} command
+ (e.g.,~``\verb|\textpmhg{Pakin}|'' produces ``\textpmhg{Pakin}'').
+ \seedocs{\HIER}.
+\end{tablenote}
+\end{symtable}
+
+
+\begin{symtable}[DICT]{\DICT\ Dictionary Symbols}
+\idxboth{dictionary}{symbols}
+\label{dictionary}
+\begin{tabular}{*2{ll@{\hspace*{3em}}}ll}
+\K\dsaeronautical & \K\dscommercial & \K\dsmedical \\
+\K\dsagricultural & \K\dsheraldical & \K\dsmilitary \\
+\K\dsarchitectural & \K\dsjuridical & \K\dsrailways \\
+\K\dsbiological & \K\dsliterary & \K\dstechnical \\
+\K\dschemical & \K\dsmathematical & \\
+\end{tabular}
+\end{symtable}
+
+
+\begin{symtable}[SIMP]{\SIMP\ Characters from \emph{The Simpsons}}
+\index{symbols>Simpsons characters}
+\index{Simpsons characters}
+\index{faces}
+\label{simpsons}
+\begin{tabular}{*3{ll@{\hspace*{3em}}}ll}
+\K\Bart & \K\Homer & \K\Maggie & \K\SNPP \\
+\K\Burns & \K\Lisa & \K\Marge & \\
+\end{tabular}
+
+\bigskip
+
+\begin{tablenote}
+ The location of the characters' pupils can be controlled with the
+ \cmd{\Goofy} command. See \emph{A \MF\ of `Simpsons'
+ characters}~\cite{Chen1997} for more information. Also, each of the
+ above can be prefixed with \cmd{\Left} to make the character face
+ left instead of right:
+
+ \begin{center}
+ \begin{tabular}{ll}
+ \Left\Bart & \verb|\Left\Bart| \\
+ \end{tabular}
+ \end{center}
+\end{tablenote}
+\end{symtable}
+
+
+\begin{longsymtable}[STAVE]{\STAVE\ Magical Staves}
+\index{symbols>staves}
+\index{symbols>magical signs}
+\index{magical signs}
+\index{staves}
+\index{Icelandic staves}
+\label{staves}
+\begin{longtable}{*2{ll@{\hspace*{3em}}}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\staveI & \K\staveXXIV & \K\staveXLVII \\
+\K\staveII & \K\staveXXV & \K\staveXLVIII \\
+\K\staveIII & \K\staveXXVI & \K\staveXLIX \\
+\K\staveIV & \K\staveXXVII & \K\staveL \\
+\K\staveV & \K\staveXXVIII & \K\staveLI \\
+\K\staveVI & \K\staveXXIX & \K\staveLII \\
+\K\staveVII & \K\staveXXX & \K\staveLIII \\
+\K\staveVIII & \K\staveXXXI & \K\staveLIV \\
+\K\staveIX & \K\staveXXXII & \K\staveLV \\
+\K\staveX & \K\staveXXXIII & \K\staveLVI \\
+\K\staveXI & \K\staveXXXIV & \K\staveLVII \\
+\K\staveXII & \K\staveXXXV & \K\staveLVIII \\
+\K\staveXIII & \K\staveXXXVI & \K\staveLIX \\
+\K\staveXIV & \K\staveXXXVII & \K\staveLX \\
+\K\staveXV & \K\staveXXXVIII & \K\staveLXI \\
+\K\staveXVI & \K\staveXXXIX & \K\staveLXII \\
+\K\staveXVII & \K\staveXL & \K\staveLXIII \\
+\K\staveXVIII & \K\staveXLI & \K\staveLXIV \\
+\K\staveXIX & \K\staveXLII & \K\staveLXV \\
+\K\staveXX & \K\staveXLIII & \K\staveLXVI \\
+\K\staveXXI & \K\staveXLIV & \K\staveLXVII \\
+\K\staveXXII & \K\staveXLV & \K\staveLXVIII \\
+\K\staveXXIII & \K\staveXLVI & \\
+\end{longtable}
+
+\bigskip
+
+\begin{tablenote}
+ The meanings of these symbols are described on the Web site for the
+ Museum of Icelandic Sorcery and Witchcraft\index{Museum of Icelandic
+ Sorcery and Witchcraft} at
+ \url{http://www.galdrasyning.is/index.php?option=com_content&task=category&sectionid=5&id=18&Itemid=60}
+ (TinyURL: \url{http://tinyurl.com/25979m}). For example,
+ \cmdI{\staveL}~(``\staveL'') is intended to ward off
+ ghosts\index{ghosts} and evil\index{evil spirits} spirits.
+\end{tablenote}
+\end{longsymtable}
+
+
+\idxbothend{miscellaneous}{symbols}
+
+
+\section{Additional Information}
+\label{addl-info}
+
+Unlike the previous sections of this document, Section~\ref{addl-info}
+does not contain new symbol tables. Rather, it provides additional
+help in using the \doctitle. First, it draws attention to symbol
+names used by multiple packages. Next, it provides some guidelines
+for finding symbols and gives some examples regarding how to construct
+missing symbols out of existing ones. Then, it comments on the
+spacing surrounding symbols in math mode. After that, it presents an
+ASCII and Latin~1 quick-reference guide, showing how to enter all of
+the standard ASCII/Latin~1 symbols in \latex{}. And finally, it lists
+some statistics about this document itself.
+
+\subsection{Symbol Name Clashes}
+
+% Rather than create a rat's nest of \if statements, we keep the table
+% whole and have each symbol conditionally appear.
+\makeatletter
+\DeclareRobustCommand{\trysym}[1]{\@ifundefined{#1}{\mbox{\tiny N/A}}{\csname#1\endcsname}}
+\makeatother
+
+Unfortunately, a number of symbol names are not unique; they appear in
+more than one package. Depending on how the symbols are defined in
+each package, \latex{} will either output an error message or replace
+an earlier-defined symbol with a later-defined symbol.
+Table~\ref{name-clashes} presents a selection of name clashes that
+appear in this document.
+\ifcomplete
+\else
+ The symbol ``\trysym{NONEXISTENT}'' is used to indicate that the
+ corresponding package was not available when \selftex was compiled.
+\fi
+
+\begin{nonsymtableL}{Symbol Name Clashes}
+\label{name-clashes}
+\begin{tabular}{@{}lp{0.3em}cccccccccc@{}} \toprule
+ Symbol && \latexE & \AmS & \ST & \WASY & \ABX & \MARV & \DING & \IFS & \ARK & \WIPA \\
+ \cmidrule(r){1-1}\cmidrule(l){3-12}
+ %
+ \cmdI[$\trysym{baro}$ vs.\ \trysym{WSUbaro}]{\baro} &&
+ & & $\trysym{baro}$ & & & & & & & \trysym{WSUbaro} \\
+ \cmdI[$\string\bigtriangledown$ vs.\ $\trysym{STbigtriangledown}$]{\bigtriangledown} &&
+ $\bigtriangledown$ & & $\trysym{STbigtriangledown}$ \\
+ \cmdI[$\string\bigtriangleup$ vs.\ $\trysym{STbigtriangleup}$]{\bigtriangleup} &&
+ $\bigtriangleup$ & & $\trysym{STbigtriangleup}$ \\
+ \cmdI[\trysym{checkmark} vs.\ \trysym{ARKcheckmark}]{\checkmark} &&
+ & \trysym{checkmark} & & & & & & & \trysym{ARKcheckmark} \\
+ \cmdI[\trysym{Circle} vs.\ \trysym{ifsCircle}]{\Circle} &&
+ & & & \trysym{Circle} & & & & \trysym{ifsCircle} \\
+ \cmdI[\trysym{Cross} vs.\ \trysym{dingCross} vs.\ \trysym{ifsCross}]{\Cross} &&
+ & & & & & \trysym{Cross} & \trysym{dingCross} & \trysym{ifsCross} \\
+ \cmdI[$\trysym{ggg}$ vs.\ $\trysym{ABXggg}$]{\ggg} &&
+ & $\trysym{ggg}$ & & & $\trysym{ABXggg}$ \\
+ \cmdI[\trysym{Letter} vs.\ \trysym{ifsLetter}]{\Letter} &&
+ & & & & & \trysym{Letter} & & \trysym{ifsLetter} \\
+ \cmdI[$\trysym{STlightning}$ vs.\ \trysym{WASYlightning}]{\lightning} &&
+ & & $\trysym{STlightning}$ & \trysym{WASYlightning} \\
+ \cmdI[\trysym{Lightning} vs.\ \trysym{ifsLightning}]{\Lightning} &&
+ & & & & & \trysym{Lightning} & & \trysym{ifsLightning} \\
+ \cmdI[$\trysym{lll}$ vs.\ $\trysym{ABXlll}$]{\lll} &&
+ & $\trysym{lll}$ & & & $\trysym{ABXlll}$ \\
+ \cmdI[\trysym{Square} vs.\ \trysym{dingSquare} vs.\ \trysym{ifsSquare}]{\Square} &&
+ & & & \trysym{Square} & & & \trysym{dingSquare} & \trysym{ifsSquare} \\
+ \cmdI[\trysym{Sun} vs.\ \trysym{ifsSun} vs.\ $\trysym{ABXSun}$]{\Sun} &&
+ & & & & $\trysym{ABXSun}$ & \trysym{Sun} & & \trysym{ifsSun} \\
+ \cmdI[\trysym{TriangleDown} vs.\ \trysym{ifsTriangleDown}]{\TriangleDown} &&
+ & & & & & & \trysym{TriangleDown} & \trysym{ifsTriangleDown} \\
+ \cmdI[\trysym{TriangleUp} vs.\ \trysym{ifsTriangleUp}]{\TriangleUp} &&
+ & & & & & & \trysym{TriangleUp} & \trysym{ifsTriangleUp} \\
+ \bottomrule
+\end{tabular}
+\end{nonsymtableL}
+
+
+Using multiple symbols with the same name in the same document---or
+even merely loading conflicting symbol packages---can be tricky but,
+as evidenced by the existence of Table~\ref{name-clashes}, not
+impossible. The general procedure is to load the first package,
+rename the conflicting symbols, and then load the second package.
+Examine the \latex{} source for this document (\selftex) for examples
+of this and other techniques for handling symbol conflicts. Note that
+\selftex's \cmd{\savesymbol} and \cmd{\restoresymbol} macros have been
+extracted into the \pkgname{savesym} package, which can be downloaded
+from CTAN\idxCTAN.
+
+\ifTX
+
+\TX\ and \PX\ redefine a huge number of symbols---essentially, all of
+the symbols defined by \pkgname{latexsym}, \TC, the various \AMS\
+symbol sets, and \latexE\ itself.
+\ifABX
+ Similarly, \ABX\ redefines a vast number of math symbols in an
+ attempt to improve their look. The \TX, \PX, and \ABX\ conflicts
+\else
+ The \TX\ and \PX\ conflicts
+\fi
+are not listed in Table~\ref{name-clashes} because they are designed
+to be compatible with the symbols they replace.
+Table~\vref{benign-clash} illustrates what ``compatible'' means in
+this context.
+
+\begin{nonsymtable}{Example of a Benign Name Clash}
+\label{benign-clash}
+\begin{tabular}{@{}lcc@{}} \toprule
+& Default & \TX \\
+\multicolumn{1}{c}{\raisebox{1ex}[0pt][0pt]{Symbol}} &
+(\PSfont{Computer Modern}) &
+(\PSfont{Times Roman}) \\ \cmidrule(r){1-1}\cmidrule(l){2-3}
+\texttt{R} & \Huge R & {\fontfamily{txr}\selectfont \Huge R} \\
+\cmdI{\textrecipe} & \Huge\textrecipe &
+ {\fontfamily{txr}\selectfont \Huge\textrecipe} \\
+\bottomrule
+\end{tabular}
+\end{nonsymtable}
+
+To use the new \TXPX\ symbols without altering the document's main font,
+merely reset the default font families back to their original values
+after loading one of those packages:
+
+\begin{verbatim}
+ \renewcommand\rmdefault{cmr}
+ \renewcommand\sfdefault{cmss}
+ \renewcommand\ttdefault{cmtt}
+\end{verbatim}
+
+\fi % TX test
+
+
+\subsection{Resizing symbols}
+\label{resizing-symbols}
+
+Mathematical symbols listed in this document as
+``variable-sized\idxboth{variable-sized}{symbols}'' are designed to
+stretch vertically. Each
+variable-sized\idxboth{variable-sized}{symbols} symbol comes in one or
+more basic sizes plus a variation comprising both stretchable and
+nonstretchable segments. Table~\vref{var-sized-syms} presents the
+symbols \cmdX{\}} and \cmdX{\uparrow} in their default size, in their
+\cmd{\big}, \cmd{\Big}, \cmd{\bigg}, and \cmd{\Bigg} sizes, in an even
+larger size achieved using \cmd{\left}\slash\cmd{\right}, and---for
+contrast---in a large size achieved by changing the font size using
+\latexE's \cmd{\fontsize} command. Because the symbols shown belong
+to the \PSfont{Computer Modern} family, the \pkgname{type1cm} package
+needs to be loaded to support font sizes larger than 24.88\,pt.
+
+\begin{nonsymtable}{Sample resized delimiters}
+\idxboth{variable-sized}{symbols}
+\label{var-sized-syms}
+\newcommand{\maketall}[1]{\ensuremath{\left.\rule{0pt}{1.5cm}\right#1}}
+\newcommand{\makebig}[1]{\fontsize{3cm}{3cm}\selectfont\ensuremath{#1}}
+\begin{tabular}{@{}*8c@{}}
+ \toprule
+ Symbol &
+ Default size &
+ \cmd{\big} &
+ \cmd{\Big} &
+ \cmd{\bigg} &
+ \cmd{\Bigg} &
+ \cmd{\left}\,/\,\cmd{\right} &
+ \cmd{\fontsize} \\
+ \midrule
+
+ \verb|\}| &
+ $\}$ &
+ $\big\}$ &
+ $\Big\}$ &
+ $\bigg\}$ &
+ $\Bigg\}$ &
+ \maketall\} &
+ \makebig\} \\
+
+ \verb|\uparrow| &
+ $\uparrow$ &
+ $\big\uparrow$ &
+ $\Big\uparrow$ &
+ $\bigg\uparrow$ &
+ $\Bigg\uparrow$ &
+ \maketall\uparrow &
+ \makebig\uparrow \\
+ \bottomrule
+\end{tabular}
+\end{nonsymtable}
+
+Note how \cmd{\fontsize} makes the symbol wider and thicker. (The
+\pkgname{graphicx} package's \cmd{\scalebox} or \cmd{\resizebox}
+commands would produce a similar effect.) Also, the
+\cmd{\fontsize}-enlarged symbol is vertically centered relative to
+correspondingly large text, unlike the symbols enlarged using
+\cmd{\big} et al.\ or \cmd{\left}\slash\cmd{\right}, which all use the
+same math axis regardless of symbol size. However, \cmd{\fontsize} is
+not limited to mathematical delimiters. Also, \cmd{\scalebox} and
+\cmd{\resizebox} are more robust to poorly composed symbols (e.g.,~two
+symbols made to overlap by backspacing a fixed distance) but do not
+work with every \tex backend and will produce jagged symbols when
+scaling a bitmapped font.
+
+\ifhavemultirow
+
+All variable-sized delimiters are defined (by the corresponding
+\texttt{.tfm} file) in terms of up to five segments, as illustrated by
+Figure~\vref{extensible-brace}. The top, middle, and bottom segments
+are of a fixed size. The top-middle and middle-bottom segments (which
+are constrained to be the same character) are repeated as many times
+as necessary to achieve the desired height.
+
+\begin{figure}[htbp]
+\centering
+\renewcommand{\arraystretch}{2}
+\newcommand{\cmexchar}{\usefont{OMX}{cmex}{m}{n}\selectfont\char}
+\newlength{\braceheight}
+\setlength{\braceheight}{6.5\baselineskip}
+\begin{tabular}{@{}ccl@{}}
+ \multirow{5}*{$\left.\rule{0pt}{\braceheight}\right\} \longrightarrow$}
+ & \cmexchar'71 & top \\
+ & \cmexchar'76 & top-middle (extensible) \\
+ & \cmexchar'75 & middle \\
+ & \cmexchar'76 & middle-bottom (extensible) \\
+ & \cmexchar'73 & bottom \\
+ \\
+\end{tabular}
+\index{symbols>extensible}
+\caption{Implementation of variable-sized delimiters}
+\label{extensible-brace}
+\end{figure}
+
+\fi % havemultirow test
+
+
+\subsection{Where can I find the symbol for~\dots?}
+\label{combining-symbols}
+
+If you can't find some symbol you're looking for in this document, there
+are a few possible explanations:
+
+\begin{itemize}
+ \item The symbol isn't intuitively named. As a few examples, the
+ \IFS\ command to draw dice\index{dice} is ``\cmd{\Cube}''; a plus
+ sign with a circle around it (``exclusive or''\index{exclusive or}
+ to computer engineers) is ``\cmdX{\oplus}''; and lightning bolts in
+ fonts designed by German speakers may have ``blitz'' in their names
+ as in the \ULSY\ package. The moral of the story is to be creative
+ with synonyms when searching the index.
+
+ \item The symbol is defined by some package that I overlooked (or
+ deemed unimportant). If there's some symbol package that you think
+ should be included in the \doctitle, please send me e-mail at the
+ address listed on the title page.
+
+ \item The symbol isn't defined in any package whatsoever.
+\end{itemize}
+
+\ifcomplete
+ Even in the last case, all is not lost. Sometimes, a symbol exists
+ in a font, but there is no \latex{} binding for it. For example,
+ the \postscript \PSfont{Symbol} font contains a
+ ``\Pisymbol{psy}{191}''\index{arrows} symbol, which may be useful
+ for representing a carriage\index{carriage return} return, but there
+ is no package (as far as I know) for accessing that symbol. To
+ produce an unnamed symbol, you need to switch to the font explicitly
+ with \latexE's low-level font commands~\cite{fntguide} and use
+ \tex's primitive \cmd{\char} command~\cite{Knuth:ct-a} to request a
+ specific character number in the font.\footnote{\pkgname{pifont}
+ defines a convenient \cmd{\Pisymbol} command for accessing symbols
+ in \postscript\index{PostScript fonts} fonts by number. For example,
+ ``\cmd{\Pisymbol}\texttt{\string{psy\string}\string{191\string}}''
+ produces ``\Pisymbol{psy}{191}''.}
+\ifOTII % Not covered by \ifcomplete
+ In fact, \cmd{\char} is not strictly necesssary; the character can
+ often be entered symbolically.
+ \index{sha=sha ({\fontencoding{OT2}\selectfont SH})|(}
+ For example, the symbol for an impulse train or Tate-Shafarevich
+ group (``{\fontencoding{OT2}\selectfont SH}'') is actually an
+ uppercase \textit{sha} in the Cyrillic\index{alphabets>Cyrillic}
+ alphabet. (Cyrillic is supported by the OT2 \fntenc[OT2], for
+ instance). While a \textit{sha} can be defined numerically as
+ ``\verb|{\fontencoding{OT2}|\linebreak[0]\verb|\selectfont\char88}|''
+ it may be more intuitive to use the OT2 \fntenc[OT2]'s ``SH''
+ ligature:
+ ``\verb|{\fontencoding{OT2}|\linebreak[0]\verb|\selectfont SH}|''.
+ \index{sha=sha ({\fontencoding{OT2}\selectfont SH})|)}
+\fi % OTII test
+
+
+ \subsubsection*{Reflecting and rotating existing symbols}
+
+ \mbox{} % Force the \index commands into the paragraph proper.
+ \index{symbols>reversed|(}
+ \index{symbols>rotated|(}
+ \index{symbols>upside-down|(}
+ \index{symbols>inverted|(}
+ \index{reversed symbols|(}
+ \index{rotated symbols|(}
+ \index{upside-down symbols|(}
+ \index{inverted symbols|(}
+ \DeclareRobustCommand{\irony}{\textsuperscript{\reflectbox{?}}}
+ A common request on \ctt is for a reversed or rotated version of an
+ existing symbol. As a last resort, these effects can be achieved
+ with the \pkgname{graphicx} (or \pkgname{graphics}) package's
+ \cmd{\reflectbox} and \cmd{\rotatebox} macros.
+ \newcommand{\definitedescription}{\rotatebox[origin=c]{180}{$\iota$}}
+ For example, \verb|\textsuperscript{\reflectbox{?}}| produces an
+ irony\index{irony mark=irony mark (\irony)} mark~(``\,\irony\,'';
+ cf.~\url{http://en.wikipedia.org/wiki/Irony_mark}), and
+ \verb|\rotatebox[origin=c]{180}{$\iota$}| produces the
+ definite-description\index{definite-description operator
+ (\definitedescription)}
+ operator~(``\rotatebox[origin=c]{180}{$\iota$}''). The disadvantage
+ of the \pkgname{graphicx}/\pkgname{graphics} approach is that not
+ every \tex backend handles graphical transformations.\footnote{As an
+ example, Xdvi\index{Xdvi} ignores both \cmd{\reflectbox} and
+ \cmd{\rotatebox}.} Far better is to find a suitable font that
+ contains the desired symbol in the correct orientation. For
+ instance, if the \PHON\ package is available, then
+ \verb|\textit{\riota}| will yield a
+ backend-independent~``\textit{\riota}''.
+ Similarly,\label{page:such-that} \TIPA's
+ \cmdI{\textrevepsilon}~(``\textrevepsilon'') or \WIPA's
+ \cmdI{\revepsilon}~(``\revepsilon'') may be used to express the
+ mathematical notion of ``such\index{such that} that'' in a cleaner
+ manner than with \cmd{\reflectbox} or
+ \cmd{\rotatebox}.\footnote{More common symbols for representing
+ ``such\index{such that} that'' include ``\texttt{|}'',
+ ``\texttt{:}'', and ``\texttt{s.t.}''.}
+ \index{symbols>reversed|)}
+ \index{symbols>rotated|)}
+ \index{symbols>upside-down|)}
+ \index{symbols>inverted|)}
+ \index{reversed symbols|)}
+ \index{rotated symbols|)}
+ \index{inverted symbols|)}
+
+ \subsubsection*{Joining and overlapping existing symbols}
+
+ Symbols that do not exist in any font can sometimes be fabricated
+ out of existing symbols. The \latexE{} source file \fontdefdtx
+ contains a number of such definitions. For example, \cmdX{\models}
+ (see Table~\vref{rel}) is defined in that file with:
+\else
+ Even in the last case, all is not lost. Sometimes, a symbol exists
+ in a font, but there is no \latex{} binding for it.
+
+ \subsubsection*{Reflecting and rotating existing symbols}
+
+ Rotated/reflected versions of an existing symbol can be produced
+ using the \pkgname{graphicx} (or \pkgname{graphics}) package's
+ \cmd{\reflectbox} and \cmd{\rotatebox} macros.\footnote{This should
+ be used as a last resort. Not every \tex backend supports graphical
+ transformations.}
+
+ \subsubsection*{Joining and overlapping existing symbols}
+
+ If a symbol does not exist in any orientation in any font, it may be
+ possible to fabricate it out of existing symbols. The \latexE{}
+ source file \fontdefdtx contains a number of such definitions. For
+ example, \cmdX{\models} (see Table~\vref{rel}) is defined in that
+ file with:
+\fi % Matches \ifcomplete ...
+
+\begin{verbatim}
+ \def\models{\mathrel|\joinrel=}
+\end{verbatim}
+
+\noindent
+where \cmd{\mathrel} and \cmd{\joinrel} are used to control the
+horizontal spacing. \verb|\def| is the \tex primitive upon which
+\latex's \verb|\newcommand| is based. See \TeXbook for more
+information on all three of those commands.
+
+\newcommand{\ismodeledby}{\ensuremath{=\joinrel\mathrel|}}
+With some simple pattern-matching, one can easily define a backward
+\cmdX{\models} sign (``\ismodeledby''):
+
+\begin{verbatim}
+ \def\ismodeledby{=\joinrel\mathrel|}
+\end{verbatim}
+\indexcommand[\string\ismodeledby]{\ismodeledby}
+
+In general, arrows/harpoons, horizontal lines (``='', ``-'',
+``\cmdX{\relbar}'', and ``\cmdX{\Relbar}''), and the various
+math-extension characters can be combined creatively with
+miscellaneous other characters to produce a variety of new symbols.
+Of course, new symbols can be composed from \emph{any} set of existing
+characters. For instance, \latex defines \cmdX{\hbar} (``$\hbar$'')
+as a ``$\mathchar'26$'' character (\verb|\mathchar'26|) followed by a
+backspace of 9~math units (\verb|\mkern-9mu|), followed by the
+letter~``$h$'':
+
+\begin{verbatim}
+ \def\hbar{{\mathchar'26\mkern-9muh}}
+\end{verbatim}
+
+\noindent
+We can just as easily define other barred\idxboth{barred}{letters}
+letters:
+
+\def\bbar{{\mathchar'26\mkern-9mu b}}
+\def\dbar{{\mathchar'26\mkern-12mu d}}
+
+\begin{verbatim}
+ \def\bbar{{\mathchar'26\mkern-9mu b}}
+ \def\dbar{{\mathchar'26\mkern-12mu d}}
+\end{verbatim}
+
+\noindent
+(The space after the ``mu'' is optional but is added for clarity.)
+\cmdX{\bbar} and \cmdX{\dbar} define ``$\bbar$'' and ``$\dbar$'',
+respectively. Note that \cmdX{\dbar} requires a greater backward
+math~kern than \cmdX{\bbar}; a $-9$\,mu~kern would have produced
+the less-attractive ``$\mathchar'26\mkern-9mu d$'' glyph.
+
+The \pkgname{amsmath} package provides \cmd{\overset} and
+\cmd{\underset} commands for placing one symbol respectively above or
+below another. For example,
+\verb|\overset{G}{\sim}|\footnote{\LaTeX's \cmd{\stackrel} command is
+similar but is limited to placing a symbol above a binary relation.}
+produces ``$\overset{G}{\sim}$'' (sometimes used for
+``equidecomposable\index{equidecomposable} with respect to~$G$'').
+
+\DeclareRobustCommand{\asterism}{\smash{%
+ \raisebox{-.5ex}{%
+ \setlength{\tabcolsep}{-.5pt}%
+ \begin{tabular}{@{}cc@{}}%
+ \multicolumn2c*\\[-2ex]*&*%
+ \end{tabular}}}}
+
+Sometimes an ordinary \texttt{tabular} environment can be co-opted
+into juxtaposing existing symbols into a new symbol. Consider the
+following definition of \cmdI{\asterism}~(``\asterism'') from a
+June~2007 post to \ctt by \person{Peter}{Flynn}:
+
+\begin{verbatim}
+ \newcommand{\asterism}{\smash{%
+ \raisebox{-.5ex}{%
+ \setlength{\tabcolsep}{-.5pt}%
+ \begin{tabular}{@{}cc@{}}%
+ \multicolumn2c*\\[-2ex]*&*%
+ \end{tabular}}}}
+\end{verbatim}
+
+\noindent
+Note how the space between columns (\cmd{\tabcolsep}) and rows
+(\verb|\\[|\dots\verb|]|) is made negative to squeeze the asterisks
+closer together.
+
+\bigskip
+
+There is a \tex primitive called \cmd{\mathaccent} that centers one
+mathematical symbol atop another. For\label{page:dotcup} example, one
+can define \cmdX{\dotcup} (``\dotcup'')---the composition of a
+\cmdX{\cup} and a \cmdX{\cdot}---as follows:
+
+\begin{verbatim}
+ \newcommand{\dotcup}{\ensuremath{\mathaccent\cdot\cup}}
+\end{verbatim}
+
+\noindent
+The catch is that \cmd{\mathaccent} requires the accent to be a ``math
+character''. That is, it must be a character in a math font as
+opposed to a symbol defined in terms of other symbols. See \TeXbook
+for more information.
+
+Another \tex primitive that is useful for composing symbols is
+\cmd{\vcenter}. \cmd{\vcenter} is conceptually similar to
+``\verb|\begin{tabular}{l}|'' in \latex but takes a list of vertical
+material instead of \verb|\\|-separated rows. Also, it vertically
+centers the result on the math axis. (Many operators, such as ``$+$''
+and ``$-$'' are also vertically centered on the math axis.)
+\person{Enrico}{Gregorio} posted the following symbol definition to
+\ctt in March~2004 in response to a query about an alternate way to
+denote equivalence:
+
+\newcommand*{\threesim}{%
+ \mathrel{\vcenter{\offinterlineskip
+ \hbox{$\sim$}\vskip-.35ex\hbox{$\sim$}\vskip-.35ex\hbox{$\sim$}}}}
+
+\begin{verbatim}
+ \newcommand*{\threesim}{%
+ \mathrel{\vcenter{\offinterlineskip
+ \hbox{$\sim$}\vskip-.35ex\hbox{$\sim$}\vskip-.35ex\hbox{$\sim$}}}}
+\end{verbatim}
+
+\noindent
+The \cmdX{\threesim} symbol, which vertically centers three
+\cmdX{\sim}~(``$\sim$'') symbols with 0.35 $x$-heights of space
+between them, is rendered as ``$\threesim$''. \cmd{\offinterlineskip}
+is a macro that disables implicit interline spacing. Without it,
+\cmdX{\threesim} would have a full line of vertical spacing between
+each \cmdX{\sim}. Because of \cmd{\vcenter}, \cmdX{\threesim} aligns
+properly with other math operators: \mbox{$a \div b \threesim c \times
+d$}.
+
+\makeatletter
+\providecommand\barcirc{\mathpalette\@barred\circ}
+\def\@barred#1#2{\ooalign{\hfil$#1-$\hfil\cr\hfil$#1#2$\hfil\cr}}
+\newcommand\stst{^{\protect\barcirc}}
+\makeatother
+
+A related \latex command, borrowed from Plain \tex, is \cmd{\ooalign}.
+\cmd{\ooalign} vertically overlaps symbols and works both within and
+outside of math mode. Essentially, it creates a single-column
+\texttt{tabular} environment with zero vertical distance between rows.
+However, because it is based directly on \tex's \cmd{\ialign}
+primitive, \cmd{\ooalign} uses \tex's tabular syntax instead of
+\latex's (i.e.,~with \cmd{\cr} as the row terminator instead of
+\cmd{\\}). The following example of \cmd{\ooalign}, a macro that
+defines a standard-state\index{standard state} symbol~(\cmdX{\stst},
+``$\stst$'') as a superscripted Plimsoll\index{Plimsoll line}
+line~(\cmdX{\barcirc}, ``$\barcirc$''),%
+\ifST
+ \footnote{While \cmdX{\barcirc} illustrates how to combine symbols
+ using \cmd{\ooalign}, the \ST\ package's \cmdX{\minuso} command
+ (Table~\vref{st-bin}) provides a similar glyph~(``$\minuso$'') as a
+ single, indivisible symbol.}
+\fi % ST test
+ is due to an October~2007 \ctt post by \person{Donald}{Arseneau}:
+
+\begin{verbatim}
+ \makeatletter
+ \providecommand\barcirc{\mathpalette\@barred\circ}
+ \def\@barred#1#2{\ooalign{\hfil$#1-$\hfil\cr\hfil$#1#2$\hfil\cr}}
+ \newcommand\stst{^{\protect\barcirc}}
+ \makeatother
+\end{verbatim}
+
+In the preceding code, note the \cmd{\ooalign} call's use of
+\cmd{\hfil} to horizontally center a minus sign~(``$-$'') and a
+\cmdX{\circ}~(``$\circ$'').
+
+\DeclareRobustCommand{\suchthat}{%
+ \mathrel{\ooalign{$\ni$\cr\kern-1pt$-$\kern-6.5pt$-$}}}
+
+As another example of \cmd{\ooalign}, consider the following code (due
+to \person{Enrico}{Gregorio} in a June~2007 post to \ctt) that
+overlaps a \cmdX{\ni}~(``$\ni$'') and two minus
+signs~(``$-$\kern-6.5pt$-$'') to produce
+``$\suchthat$''\indexcommand[$\suchthat$]{\suchthat}%
+\ifcomplete
+ , an obscure variation on the infrequently used ``\textrevepsilon''
+ symbol for ``such\index{such that} that''%
+ discussed~\vpageref[above]{page:such-that}%
+\fi
+:
+
+\begin{verbatim}
+ \newcommand{\suchthat}{%
+ \mathrel{\ooalign{$\ni$\cr\kern-1pt$-$\kern-6.5pt$-$}}}
+\end{verbatim}
+
+The \pkgname{slashed} package, although originally designed for
+producing Feynman\index{Feynman slashed character notation}
+slashed-character\idxboth{slashed}{letters} notation, in fact
+facilitates the production of \emph{arbitrary} overlapped symbols.
+\ifhaveslashed
+ \newcommand{\rqm}{{\declareslashed{}{\text{-}}{0.04}{0}{I}\slashed{I}}}
+ The default behavior is to overwrite a given character with ``$/$''.
+ For example, \cmd{\slashed}\verb|{D}| produces ``$\slashed{D}$''.
+ However, the \cmd{\declareslashed} command provides the flexibility
+ to specify the mathematical context of the composite character
+ (operator, relation, punctuation, etc., as will be discussed in
+ Section~\ref{math-spacing}), the overlapping symbol, horizontal and
+ vertical adjustments in symbol-relative units, and the character to
+ be overlapped. Consider, for example, the symbol for reduced
+ quadrupole moment~(``$\rqm$''). This can be declared as follows:
+
+\begin{verbatim}
+ \newcommand{\rqm}{{%
+ \declareslashed{}{\text{-}}{0.04}{0}{I}\slashed{I}}}
+\end{verbatim}
+
+ \noindent
+ \newcommand{\curlyarg}{\texttt{\char`\{}$\cdot$\texttt{\char`\}}}%
+ \cmd{\declareslashed}\curlyarg\curlyarg\curlyarg\curlyarg\verb|{I}|
+ affects the meaning of all subsequent \cmd{\slashed}\verb|{I}|
+ commands in the same scope. The preceding definition of \cmdX{\rqm}
+ therefore uses an extra set of curly braces to limit that scope to a
+ single \cmd{\slashed}\verb|{I}|. In addition, \cmdX{\rqm} uses
+ \pkgname{amstext}'s \cmd{\text} macro
+ (described~\vpageref[below]{text-macro}) to make
+ \cmd{\declareslashed} use a text-mode hyphen~(``-'') instead of a
+ math-mode minus sign~(``$-$'') and to ensure that the hyphen scales
+ properly in size in subscripts and superscripts.
+\fi % haveslashed
+See \pkgname{slashed}'s documentation (located in
+\filename{slashed.sty} itself) for a detailed usage description of the
+\cmd{\slashed} and \cmd{\declareslashed} commands.
+
+Somewhat simpler than \pkgname{slashed} is the \pkgname{centernot}
+package. \pkgname{centernot} provides a single command,
+\cmd{\centernot}, which, like \cmd{\not}, puts a slash over the
+subsequent mathematical symbol. However, instead of putting the slash
+at a fixed location, \cmd{\centernot} centers the slash over its
+argument%
+\ifhavecenternot
+ :
+
+ \begin{center}
+ \renewcommand{\arraystretch}{1.25}%
+ \begin{tabular}{cl}
+ $\not\longrightarrow$ & \verb|\not\longrightarrow| \\
+ \multicolumn{2}{c}{vs.} \\
+ $\centernot\longrightarrow$ & \verb|\centernot\longrightarrow| \\
+ \end{tabular}
+ \end{center}
+\else
+ .
+\fi % \havecenternot
+\seedocs{\pkgname{centernot}}.
+
+
+\subsubsection*{Making new symbols work in superscripts and subscripts}
+
+\index{subscripts>new symbols used in|(}
+\index{superscripts>new symbols used in|(}
+\def\topbotatom#1{\hbox{\hbox to 0pt{$#1\bot$\hss}$#1\top$}}
+\newcommand*{\topbot}{\mathrel{\mathchoice{\topbotatom\displaystyle}
+ {\topbotatom\textstyle}
+ {\topbotatom\scriptstyle}
+ {\topbotatom\scriptscriptstyle}}}
+
+To make composite symbols work properly within subscripts and
+superscripts, you may need to use \tex's \cmd{\mathchoice} primitive.
+\cmd{\mathchoice} evaluates one of four expressions, based on whether
+the current math style is display, text, script, or scriptscript.
+(See \TeXbook for a more complete description.) For example, the
+following \latex code---posted to \ctt by
+\person{Torsten}{Bronger}---composes a sub/superscriptable
+``$\topbot$'' symbol out of \cmdX{\top} and \cmdX{\bot} (``$\top$''
+and ``$\bot$''):
+
+\indexcommand[$\string\topbot$]{\topbot}%
+\indexcommand{\displaystyle}%
+\indexcommand{\textstyle}%
+\indexcommand{\scriptstyle}%
+\indexcommand{\scriptscriptstyle}%
+\label{code:topbot}%
+\begin{verbatim}
+ \def\topbotatom#1{\hbox{\hbox to 0pt{$#1\bot$\hss}$#1\top$}}
+ \newcommand*{\topbot}{\mathrel{\mathchoice{\topbotatom\displaystyle}
+ {\topbotatom\textstyle}
+ {\topbotatom\scriptstyle}
+ {\topbotatom\scriptscriptstyle}}}
+\end{verbatim}
+\index{superscripts>new symbols used in|)}
+\index{subscripts>new symbols used in|)}
+
+\index{integrals|(}
+
+The following\label{dashint} is another example that uses
+\cmd{\mathchoice} to construct symbols in different math modes. The
+code defines a principal value integral symbol, which is an integral
+sign with a line through it.
+
+\indexcommand{\displaystyle}%
+\indexcommand{\textstyle}%
+\indexcommand{\scriptstyle}%
+\indexcommand{\scriptscriptstyle}%
+\begin{verbatim}
+ \def\Xint#1{\mathchoice
+ {\XXint\displaystyle\textstyle{#1}}%
+ {\XXint\textstyle\scriptstyle{#1}}%
+ {\XXint\scriptstyle\scriptscriptstyle{#1}}%
+ {\XXint\scriptscriptstyle\scriptscriptstyle{#1}}%
+ \!\int}
+ \def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$}
+ \vcenter{\hbox{$#2#3$}}\kern-.5\wd0}}
+ \def\ddashint{\Xint=}
+ \def\dashint{\Xint-}
+\end{verbatim}
+
+\noindent
+(The preceding code was taken verbatim from the UK \TeX{} Users' Group
+FAQ at \url{http://www.tex.ac.uk/faq}.)
+\cmdI[$\string\dashint$]{\dashint} produces a single-dashed integral
+sign~(``$\dashint$''), while \cmdX{\ddashint} produces a double-dashed
+one~(``$\ddashint$''). The \verb|\Xint| macro defined above can also
+be used to generate a wealth of new integrals:
+\ifAMS
+ ``$\Xint\circlearrowright$'' (\verb|\Xint\circlearrowright|),
+ ``$\Xint\circlearrowleft$'' (\verb|\Xint\circlearrowleft|),
+ ``$\Xint\subset$'' (\verb|\Xint\subset|), ``$\Xint\infty$''
+ (\verb|\Xint\infty|), and so forth.
+\else
+ \verb|\Xint\circlearrowright|, \verb|\Xint\circlearrowleft|,
+ \verb|\Xint\subset|, \verb|\Xint\infty|, and so forth.
+\fi % AMS test
+
+\index{integrals|)}
+
+\newcommand\independent{\protect\mathpalette{\protect\independenT}{\perp}}
+\def\independenT#1#2{\mathrel{\rlap{$#1#2$}\mkern2mu{#1#2}}}
+
+\latexE provides a simple wrapper for \cmd{\mathchoice} that sometimes
+helps produce terser symbol definitions. The macro is called
+\cmd{\mathpalette} and it takes two arguments. \cmd{\mathpalette}
+invokes the first argument, passing it one of ``\cmd{\displaystyle}'',
+``\cmd{\textstyle}'', ``\cmd{\scriptstyle}'', or
+``\cmd{\scriptscriptstyle}'', followed by the second argument.
+\cmd{\mathpalette} is useful when a symbol macro must know which math
+style is currently in use (e.g.,~to set it explicitly within an
+\cmd{\mbox}). \person{Donald}{Arseneau} posted the following
+\cmd{\mathpalette}-based definition of a
+probabilistic-independence\index{probabilistic
+independence}\index{independence>probabilistic}\index{statistical
+independence}\index{independence>statistical}
+symbol~(``$\independent$'') to \ctt in June~2000:
+
+\begin{verbatim}
+ \newcommand\independent{\protect\mathpalette{\protect\independenT}{\perp}}
+ \def\independenT#1#2{\mathrel{\rlap{$#1#2$}\mkern2mu{#1#2}}}
+\end{verbatim}
+
+\noindent
+The \cmdX{\independent} macro uses \cmd{\mathpalette} to pass the
+\verb|\independenT| helper macro both the current math style and the
+\cmdX{\perp} symbol. \verb|\independenT| typesets \cmdX{\perp} in the
+current math style, moves two math units to the right, and finally
+typesets a second---overlapping---copy of \cmdX{\perp}, again in the
+current math style. \cmd{\rlap}, which enables text overlap, is
+described~\vpageref[later on this page]{desc:rlap}.
+
+\def\hksqrt{\mathpalette\DHLhksqrt}
+\def\DHLhksqrt#1#2{\setbox0=\hbox{$#1\sqrt{#2\,}$}\dimen0=\ht0
+ \advance\dimen0-0.2\ht0
+ \setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
+ {\box0\lower0.4pt\box2}}
+
+\index{sqrt=\verb+\sqrt+ ($\blackacc{\sqrt}$)|(}
+
+\begin{morespacing}{1pt}
+Some people like their square-root signs with a trailing ``hook''
+(i.e.,~``$\!\hksqrt{~}$\,'') as this helps visually distinguish
+expressions like~``$\!\sqrt{3x}$\,'' from those
+like~``$\!\sqrt{3}x$''. In March 2002, \person{Dan}{Luecking} posted
+a \cmd{\mathpalette}-based definition of a hooked square-root symbol
+to \ctt:
+\end{morespacing}
+
+\index{hksqrt=\verb+\hksqrt+ ($\blackacc{\hksqrt}$)}%
+\begin{verbatim}
+ \def\hksqrt{\mathpalette\DHLhksqrt}
+ \def\DHLhksqrt#1#2{\setbox0=\hbox{$#1\sqrt{#2\,}$}\dimen0=\ht0
+ \advance\dimen0-0.2\ht0
+ \setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
+ {\box0\lower0.4pt\box2}}
+\end{verbatim}
+
+\noindent
+Notice how \verb|\DHLhksqrt| uses \cmd{\mathpalette} to recover the
+outer math style (argument~\verb|#1|) from within an \verb|\hbox|.
+The rest of the code is simply using \tex primitives to position a
+hook of height 0.2~times the \verb|\sqrt| height at the right of the
+\verb|\sqrt|. See \TeXbook for more understanding of \tex ``boxes''
+and ``dimens''.
+
+\index{sqrt=\verb+\sqrt+ ($\blackacc{\sqrt}$)|)}
+
+
+\index{arrows>double-headed, diagonal|(}
+\label{code:neswarrow}%
+\newcommand{\neswarrow}{\mathrel{\text{$\nearrow$\llap{$\swarrow$}}}}
+\newcommand{\nwsearrow}{\mathrel{\text{$\nwarrow$\llap{$\searrow$}}}}
+
+Sometimes, however, \pkgname{amstext}'s \cmd{\text}\label{text-macro}
+macro is all that is necessary to make composite symbols appear
+correctly in subscripts and superscripts, as in the following
+definitions of \cmdX{\neswarrow} (``$\neswarrow$'') and
+\cmdX{\nwsearrow} (``$\nwsearrow$''):\footnote{Note that if your goal
+is to typeset commutative diagrams, then you should probably be using
+\xypic.}
+
+\indexcommand[$\string\nearrow$]{\nearrow}
+\indexcommand[$\string\swarrow$]{\swarrow}
+\indexcommand[$\string\nwarrow$]{\nwarrow}
+\indexcommand[$\string\searrow$]{\searrow}
+\begin{verbatim}
+ \newcommand{\neswarrow}{\mathrel{\text{$\nearrow$\llap{$\swarrow$}}}}
+ \newcommand{\nwsearrow}{\mathrel{\text{$\nwarrow$\llap{$\searrow$}}}}
+\end{verbatim}
+
+\noindent
+\cmd{\text} resembles \latex's \cmd{\mbox} command but shrinks its
+argument appropriately when used within a subscript or superscript.
+\cmd{\llap} (``left overlap'') and its counterpart,
+\cmd{\rlap}\label{desc:rlap} (``right overlap''), appear frequently
+when creating composite characters. \cmd{\llap} outputs its argument
+to the left of the current position, overlapping whatever text is
+already there. Similarly, \cmd{\rlap} overlaps whatever text would
+normally appear to the right of its argument. For example,
+``\verb|A|\cmd{\llap}\verb|{B}|'' and ``\cmd{\rlap}\verb|{A}B|'' each
+produce ``A\llap{B}''. However, the result of the former is the width
+of ``A'', and the result of the latter is the width of
+``B''---\cmd{\llap}\verb|{|\dots\verb|}| and
+\cmd{\rlap}\verb|{|\dots\verb|}| take up zero space.
+\index{arrows>double-headed, diagonal|)}
+
+In a June~2002 post to \ctt, \person{Donald}{Arseneau} presented a
+general macro for aligning an arbitrary number of symbols on their
+horizontal centers and vertical baselines:
+
+\indexcommand{\ialign}%
+\begin{verbatim}
+ \makeatletter
+ \def\moverlay{\mathpalette\mov@rlay}
+ \def\mov@rlay#1#2{\leavevmode\vtop{%
+ \baselineskip\z@skip \lineskiplimit-\maxdimen
+ \ialign{\hfil$#1##$\hfil\cr#2\crcr}}}
+ \makeatother
+\end{verbatim}
+
+\noindent
+The \cmd{\makeatletter} and \cmd{\makeatother} commands are needed to
+coerce \latex{} into accepting ``\texttt{@}'' as part of a macro
+name. \cmd{\moverlay} takes a list of symbols separated by \verb|\cr|
+(\tex's equivalent of \latex's \verb|\\|). For example, the
+\cmdX{\topbot} command defined \vpageref[above]{code:topbot} could
+have been expressed as ``\verb|\moverlay{\top\cr\bot}|'' and the
+\cmdX{\neswarrow} command defined \vpageref[above]{code:neswarrow}
+could have been expressed as
+``\verb|\moverlay{\nearrow\cr\swarrow}|''.%
+\indexcommand[$\string\nearrow$]{\nearrow}%
+\indexcommand[$\string\swarrow$]{\swarrow}
+
+The basic concept behind \cmd{\moverlay}'s implementation is that
+\cmd{\moverlay} typesets the given symbols in a table that utilizes a
+zero \verb|\baselineskip|. This causes every row to be typeset at the
+same vertical position. See \TeXbook for explanations of the \tex
+primitives used by \cmd{\moverlay}.
+
+\subsubsection*{Modifying \latex-generated symbols}
+
+\index{dots (ellipses)|(}
+\index{ellipses (dots)|(}
+\index{dot symbols|(}
+\index{symbols>dot|(}
+
+Oftentimes, symbols composed in the \latexE source code can be
+modified with minimal effort to produce useful variations. For
+example, \fontdefdtx composes the \cmdX{\ddots} symbol (see
+Table~\vref{dots}) out of three periods, raised~7\,pt., 4\,pt., and
+1\,pt., respectively:
+
+\begin{verbatim}
+ \def\ddots{\mathinner{\mkern1mu\raise7\p@
+ \vbox{\kern7\p@\hbox{.}}\mkern2mu
+ \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
+\end{verbatim}
+
+\noindent
+\cmd{\p@} is a \latexE{} shortcut for ``\texttt{pt}'' or
+``\texttt{1.0pt}''. The remaining commands are defined in \TeXbook.
+To\label{revddots} draw a version of \cmdX{\ddots} with the dots going
+along the opposite diagonal, we merely have to reorder the
+\verb|\raise7\p@|, \verb|\raise4\p@|, and \verb|\raise\p@|:
+
+\begin{verbatim}
+ \makeatletter
+ \def\revddots{\mathinner{\mkern1mu\raise\p@
+ \vbox{\kern7\p@\hbox{.}}\mkern2mu
+ \raise4\p@\hbox{.}\mkern2mu\raise7\p@\hbox{.}\mkern1mu}}
+ \makeatother
+\end{verbatim}
+ \makeatletter
+ \def\revddots{\mathinner{\mkern1mu\raise\p@
+ \vbox{\kern7\p@\hbox{.}}\mkern2mu
+ \raise4\p@\hbox{.}\mkern2mu\raise7\p@\hbox{.}\mkern1mu}}
+ \makeatother
+\indexcommand[$\string\revddots$]{\revddots}
+
+\noindent
+\cmdX{\revddots} is essentially identical to the \MDOTS\
+package's
+\ifMDOTS
+ \cmdX{\iddots}
+\else
+ \cmd{\iddots}
+\fi
+command or the \YH\ package's
+\ifYH
+ \cmdX{\adots}
+\else
+ \cmd{\adots}
+\fi
+command.
+\index{symbols>dot|)}
+\index{dot symbols|)}
+\index{ellipses (dots)|)}
+\index{dots (ellipses)|)}
+
+
+\subsubsection*{Producing complex accents}
+
+\ifx\diatop\undefined
+% The following was copied verbatim from ipa.sty, from the wsuipa package.
+\def\diatop[#1|#2]{%
+ {\setbox1=\hbox{#1{}}% diacritic mark
+ \setbox2=\hbox{#2{}}% letter (the group {} in case it is a diacritic)
+ \dimen0=\ifdim\wd1>\wd2\wd1\else\wd2\fi% compute the max width
+ % the `natural height' of diacritics is 1ex;
+ % \dimen1 is the shift upwards
+ \dimen1=\ht2\advance\dimen1by-1ex%
+ % center the diacritic mark on the width of the letter:
+ \setbox1=\hbox to\dimen0{\hss#1{}\hss}%
+ \leavevmode % force horizontal mode
+ \rlap{\raise\dimen1\box1}% the raised diacritic mark
+ \hbox to\dimen0{\hss#2\hss}% the letter
+ }%
+ }%
+\fi
+
+\index{accents|(}
+\index{accents>multiple per character}
+\index{multiple accents per character}
+Accents\label{multiple-accents} are a special case of combining
+existing symbols to make new symbols. While various tables in this
+document show how to add an accent to an existing symbol, some
+applications, such as transliterations from non-Latin alphabets,
+require \emph{multiple} accents per character. For instance, the
+creator of pdf\TeX\ writes his name as ``H\`an
+Th\diatop[\'|\^e]\index{Thanh, Han The=\thanhhanthe} Th\`anh''. The
+\pkgname{dblaccnt} package enables \latex{} to stack accents, as in
+``\verb|H\`an| \verb|Th\'{\^e}| \verb|Th\`anh|'' (albeit not in the
+OT1 \fntenc[OT1]). In addition, the \pkgname{wsuipa} package defines
+\cmd{\diatop} and \cmd{\diaunder} macros for putting one or more
+diacritics or accents above or below a given character.
+\ifTIPA\ifWIPA
+ For example,
+ \verb+\diaunder[{\diatop[\'|\=]}|+\linebreak[0]\verb+\textsubdot{r}]+
+ produces ``\diaunder[{\diatop[\'|\=]}|\textsubdot{r}]''.
+\fi\fi
+\seedocs{\pkgname{wsuipa}}.
+
+\index{accents>any character as}
+The \pkgname{accents} package facilitates the fabrication of accents
+in math mode. Its \cmd{\accentset} command enables \emph{any}
+character to be used as an accent.
+\ifACCENTS
+ For instance, \cmd{\accentset}\verb+{+\cmdX{\star}\verb+}{f}+
+ produces ``$\accentset{\star}{f}\,$'' and
+ \cmd{\accentset}\verb+{e}{X}+ produces ``$\accentset{e}{X}$''.
+\fi
+\cmd{\underaccent} does the same thing, but places the accent beneath
+the character.
+\ifACCENTS
+ This enables constructs like
+ \cmd{\underaccent}\verb+{+\cmdI[$\string\blackacc{\string\tilde}$]{\tilde}\verb+}{V}+,
+ which produces ``$\underaccent{\tilde}{V}$''.\index{tilde}
+\fi
+\pkgname{accents} provides other accent-related features as well; see
+the documentation for more information.
+\index{accents|)}
+
+\subsubsection*{Creating extensible symbols}
+
+\index{symbols>extensible|(}
+\index{extensible symbols, creating|(}
+
+A relatively simple example of creating extensible symbols stems from
+a \ctt post by \person{Donald}{Arseneau} (June~2003). The following
+code defines an equals sign that extends as far to the right as
+possible, just like \latex's \verb|\hrulefill| command:
+
+\makeatletter
+ \def\equalsfill{$\m@th\mathord=\mkern-7mu
+ \cleaders\hbox{$\!\mathord=\!$}\hfill
+ \mkern-7mu\mathord=$}
+\makeatother
+
+\begin{verbatim}
+ \makeatletter
+ \def\equalsfill{$\m@th\mathord=\mkern-7mu
+ \cleaders\hbox{$\!\mathord=\!$}\hfill
+ \mkern-7mu\mathord=$}
+ \makeatother
+\end{verbatim}
+
+\noindent
+\tex's \verb|\cleaders| and \verb|\hfill| primitives are the key to
+understanding \cmd{\equalsfill}'s extensibility. Essentially,
+\cmd{\equalsfill} repeats a box containing ``$=$'' plus some negative
+space until it fills the maximum available horizontal space.
+\cmd{\equalsfill} is intended to be used with \latex's \cmd{\stackrel}
+command, which stacks one mathematical expression (slightly reduced in
+size) atop another. Hence, ``\cmd{\stackrel}\verb|{a}{\rightarrow}|''
+produces ``$\stackrel{a}{\rightarrow}$'' and ``X
+\cmd{\stackrel}\verb|{\text{definition}}{\hbox{|\cmd{\equalsfill}\verb|}}|
+Y'' produces ``$X \stackrel{\text{definition}}{\hbox{\equalsfill}}
+Y$''.\idxboth{definition}{symbols}\label{equalsfill-ex}
+
+\index{symbols>actuarial|(}
+\index{actuarial symbols|(}
+\index{symbols>life insurance|(}
+\index{life-insurance symbols|(}
+
+If all that needs to extend are horizontal and vertical lines---as
+opposed to repeated symbols such as the ``$=$'' in the previous
+example---\latex's \verb|array| or \verb|tabular| environments may
+suffice. Consider the following code (due to a February~1999 \ctt
+post by \person{Donald}{Arseneau}) for typesetting
+annuities\index{annuity}:
+
+ \DeclareRobustCommand{\annu}[1]{_{%
+ \def\arraystretch{0}%
+ \setlength\arraycolsep{1pt}% adjust these
+ \setlength\arrayrulewidth{.2pt}% two settings
+ \begin{array}[b]{@{}c|}\hline
+ \\[\arraycolsep]%
+ \scriptstyle #1%
+ \end{array}%
+ }}
+
+\begin{verbatim}
+ \DeclareRobustCommand{\annu}[1]{_{%
+ \def\arraystretch{0}%
+ \setlength\arraycolsep{1pt}% adjust these
+ \setlength\arrayrulewidth{.2pt}% two settings
+ \begin{array}[b]{@{}c|}\hline
+ \\[\arraycolsep]%
+ \scriptstyle #1%
+ \end{array}%
+ }}
+\end{verbatim}
+
+\noindent
+One can then use, e.g.,~``\verb|$A\annu{x:n}$|'' to produce
+``$A\annu{x:n}$''.\indexaccent[$\string\blackacc\string\annu$]{\annu}
+
+\index{symbols>actuarial|)}
+\index{actuarial symbols|)}
+\index{symbols>life insurance|)}
+\index{life-insurance symbols|)}
+
+\index{accents|(}
+\index{extensible accents|(}
+\index{accents>extensible|(}
+
+A more complex example of composing accents is the following
+definition of extensible \cmdW{\overbracket}, \cmdW{\underbracket},
+\cmdW{\overparenthesis}, and \cmdW{\underparenthesis} symbols, taken
+from a May~2002 \ctt post by \person{Donald}{Arseneau}:
+
+\indexcommand{\ialign}%
+\makeatletter
+\def\overbracket#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
+ \DAdownbracketfill\crcr\noalign{\kern3\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+\def\underbracket#1{\mathop{\vtop{\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
+ \DAupbracketfill\crcr\noalign{\kern3\p@}}}}\limits}
+\def\overparenthesis#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
+ \downparenthfill\crcr\noalign{\kern3\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+\def\underparenthesis#1{\mathop{\vtop{\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
+ \upparenthfill\crcr\noalign{\kern3\p@}}}}\limits}
+\def\downparenthfill{$\m@th\braceld\leaders\vrule\hfill\bracerd$}
+\def\upparenthfill{$\m@th\bracelu\leaders\vrule\hfill\braceru$}
+\def\DAupbracketfill{$\m@th\makesm@sh{\llap{\vrule\@height3\p@\@width.7\p@}}%
+ \leaders\vrule\@height.7\p@\hfill
+ \makesm@sh{\rlap{\vrule\@height3\p@\@width.7\p@}}$}
+\def\DAdownbracketfill{$\m@th
+ \makesm@sh{\llap{\vrule\@height.7\p@\@depth2.3\p@\@width.7\p@}}%
+ \leaders\vrule\@height.7\p@\hfill
+ \makesm@sh{\rlap{\vrule\@height.7\p@\@depth2.3\p@\@width.7\p@}}$}
+\makeatother
+
+\indexcommand{\displaystyle}%
+\indexcommand{\ialign}%
+\begin{verbatim}
+ \makeatletter
+ \def\overbracket#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
+ \downbracketfill\crcr\noalign{\kern3\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+ \def\underbracket#1{\mathop{\vtop{\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
+ \upbracketfill\crcr\noalign{\kern3\p@}}}}\limits}
+ \def\overparenthesis#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
+ \downparenthfill\crcr\noalign{\kern3\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+ \def\underparenthesis#1{\mathop{\vtop{\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
+ \upparenthfill\crcr\noalign{\kern3\p@}}}}\limits}
+ \def\downparenthfill{$\m@th\braceld\leaders\vrule\hfill\bracerd$}
+ \def\upparenthfill{$\m@th\bracelu\leaders\vrule\hfill\braceru$}
+ \def\upbracketfill{$\m@th\makesm@sh{\llap{\vrule\@height3\p@\@width.7\p@}}%
+ \leaders\vrule\@height.7\p@\hfill
+ \makesm@sh{\rlap{\vrule\@height3\p@\@width.7\p@}}$}
+ \def\downbracketfill{$\m@th
+ \makesm@sh{\llap{\vrule\@height.7\p@\@depth2.3\p@\@width.7\p@}}%
+ \leaders\vrule\@height.7\p@\hfill
+ \makesm@sh{\rlap{\vrule\@height.7\p@\@depth2.3\p@\@width.7\p@}}$}
+ \makeatother
+\end{verbatim}
+
+\noindent
+Table~\ref{manual-extensible-accents} showcases these accents.
+\TeXbook or another book on \tex primitives is indispensible for
+understanding how the preceding code works. The basic idea is that
+\cmd{\downparenthfill}, \cmd{\upparenthfill}, \cmd{\downbracketfill},
+and \cmd{\upbracketfill} do all of the work; they output a left symbol
+(e.g.,~\cmdX{\braceld} [``$\braceld$''] for \cmd{\downparenthfill}), a
+horizontal rule that stretches as wide as possible, and a right symbol
+(e.g.,~\cmdX{\bracerd} [``$\bracerd$''] for \cmd{\downparenthfill}).
+\cmdW{\overbracket}, \cmdW{\underbracket}, \cmdW{\overparenthesis}, and
+\cmdW{\underparenthesis} merely create a table whose width is
+determined by the given text, thereby constraining the width of the
+horizontal rules.
+
+\begin{nonsymtable}{Manually Composed Extensible Accents}
+\index{accents}
+\idxboth{extensible}{accents}
+\label{manual-extensible-accents}
+\renewcommand{\arraystretch}{1.75}
+\begin{tabular}{*2{ll}}
+\W\overbracket{abc} & \W\overparenthesis{abc} \\
+\W\underbracket{abc} & \W\underparenthesis{abc} \\
+\end{tabular}
+\end{nonsymtable}
+
+Note that the \pkgname{simplewick} package provides mechanisms for
+typesetting Wick\index{Wick contractions} contractions, which utilize
+\cmdW{\overbracket}- and \cmdW{\underbracket}-like brackets of
+variable width \emph{and} height (or depth).
+\ifhavesimplewick
+ For example, ``\cmd{\acontraction}\verb|{}{A}{B}{C}|\linebreak[0]%
+ \cmd{\acontraction}\verb|[2ex]{A}{B}{C}{D}|\linebreak[0]%
+ \cmd{\bcontraction}\verb|{}{A}{BC}{D}|\linebreak[0]\verb|ABCD|'' produces
+ \[
+ \acontraction{}{A}{B}{C}
+ \acontraction[2ex]{A}{B}{C}{D}
+ \bcontraction{}{A}{BC}{D}
+ ABCD
+ \qquad.
+ \]
+\fi % simplewick test
+\seedocs{\pkgname{simplewick}}.
+
+\index{accents>extensible|)}
+\index{extensible accents|)}
+\index{accents|)}
+
+\index{symbols>extensible|)}
+\index{extensible symbols, creating|)}
+
+
+\subsubsection*{Developing new symbols from scratch}
+
+Sometimes is it simply not possible to define a new symbol in terms of
+existing symbols. Fortunately, most, if not all, \tex distributions
+are shipped with a tool called \metafont which is designed
+specifically for creating fonts to be used with \tex. The
+\MF{}book~\cite{Knuth:ct-c} is the authoritative text on \metafont.
+If you plan to design your own symbols with \metafont, The \MF{}book
+is essential reading. Nevertheless, the following is an extremely
+brief tutorial on how to create a new \latex symbol using \metafont.
+Its primary purpose is to cover the \latex-specific operations not
+mentioned in The \MF{}book and to demonstrate that symbol-font
+creation is not necessarily a difficult task.
+
+Suppose we need a symbol to represent a light
+bulb~(``\lightbulb'').\footnote{I'm not a very good artist; you'll
+have to pretend that~``\lightbulb'' looks like a light bulb.} The
+first step is to draw this in \metafont. It is common to separate the
+font into two files: a size-dependent file, which specifies the design
+size and various font-specific parameters that are a function of the
+design size; and a size-independent file, which draws characters in
+the given size. Figure~\ref{mftoplevel} shows the \metafont code for
+\filename{lightbulb10.mf}. \filename{lightbulb10.mf} specifies
+various parameters that produce a 10\,pt.\ light bulb then loads
+\filename{lightbulb.mf}. Ideally, one should produce
+\texttt{lightbulb}\meta{size}\texttt{.mf} files for a variety of
+\meta{size}s. This is called ``optical\idxboth{optical}{scaling}
+scaling''. It enables, for example, the lines that make up the light
+bulb to retain the same thickness at different font sizes, which looks
+much nicer than the alternative---and
+default---``mechanical\idxboth{mechanical}{scaling} scaling''. When a
+\texttt{lightbulb}\meta{size}\texttt{.mf} file does not exist for a
+given size \meta{size}, the computer mechanically produces a wider,
+taller, thicker symbol:
+
+\begin{center}
+\begin{tabular}{*{13}c}
+{\fontsize{10}{10}\lightbulb} & vs.\ &
+{\fontsize{20}{20}\lightbulb} & vs.\ &
+{\fontsize{30}{30}\lightbulb} & vs.\ &
+{\fontsize{40}{40}\lightbulb} & vs.\ &
+{\fontsize{50}{50}\lightbulb} & vs.\ &
+{\fontsize{60}{60}\lightbulb} & vs.\ &
+{\fontsize{70}{70}\lightbulb} \\[-1.5ex]
+{\tiny 10\,pt.} & &
+{\tiny 20\,pt.} & &
+{\tiny 30\,pt.} & &
+{\tiny 40\,pt.} & &
+{\tiny 50\,pt.} & &
+{\tiny 60\,pt.} & &
+{\tiny 70\,pt.} \\
+\end{tabular}
+\end{center}
+
+\begin{figure}[htbp]
+\centering
+\begin{codesample}
+% The following are derived from mftmac.tex.
+\def\\#1{\textit{#1}} % italic type for identifiers
+\def\2#1{\mathop{\textbf{#1}\/\kern.05em}} % operator, in bold type
+\def\9{\hfill$\%} % comment separator
+% Matching `$' for Emacs font-lock mode
+\def\SH{\raise.7ex\hbox{$\scriptstyle\#$}} % sharp sign for sharped units
+\let\BL=\medskip % space for empty line
+\def\frac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
+
+% The following are modified from mft's output.
+$\2{font\_identifier}:=\verb+"LightBulb10"+;\ \9 Name the font.\par
+$\2{font\_size}10\\{pt}\SH ;\ \9 Specify the design size.\par
+\BL
+$\\{em}\SH :=10\\{pt}\SH ;\ \9 ``M'' width is 10 points.\par
+$\\{cap}\SH :=7\\{pt}\SH ;\ \9 Capital letter height is 7 points above the
+baseline.\par
+$\\{sb}\SH :=\frac1/{4}\\{pt}\SH ;\ \9 Leave this much space on the side of
+each character.\par
+$o\SH :=\frac1/{16}\\{pt}\SH ;\ \9 Amount that curves overshoot borders.\par
+\BL
+$\2{input}\hbox{\tt lightbulb}\9 Load the file that draws the actual glyph.\par
+% Matching `$' for Emacs font-lock mode
+\end{codesample}
+\caption{Sample \metafont size-specific file (\filename{lightbulb10.mf})}
+\label{mftoplevel}
+\end{figure}
+
+\filename{lightbulb.mf}, shown in Figure~\ref{mfmain}, draws a light
+bulb using the parameters defined in \filename{lightbulb10.mf}. Note
+that the the filenames ``\filename{lightbulb10.mf}'' and
+``\filename{lightbulb.mf}'' do not follow the Berry font-naming
+scheme~\cite{Berry:fontname}; the Berry font-naming scheme is largely
+irrelevant for symbol fonts, which generally lack bold, italic,
+small-caps, slanted, and other such variants.
+
+\begin{figure}[htbp]
+\centering
+\begin{codesample}
+% The following are derived from mftmac.tex.
+\def\\#1{\textit{#1}} % italic type for identifiers
+\def\1#1{\mathop{\textrm{#1}}} % operator, in roman type
+\def\2#1{\mathop{\textbf{#1}\/\kern.05em}} % operator, in bold type
+\def\3#1{\,\mathclose{\textbf{#1}}} % `fi' and `endgroup'
+\def\5#1{\textbf{#1}} % `true' and `nullpicture'
+\def\6#1{\mathbin{\rm#1}} % `++' and `scaled'
+\def\8#1{\mathrel{\mathcode`\.="8000 \mathcode`\-="8000
+ #1\unkern}} % `..' and `--'
+\def\9{\hfill$\%} % comment separator
+% Matching `$' for Emacs font-lock mode
+\def\SH{\raise.7ex\hbox{$\scriptstyle\#$}} % sharp sign for sharped units
+\let\BL=\medskip % space for empty line
+\def\frac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
+ /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}}
+\mathchardef\period=`\.
+\newbox\shorthyf \setbox\shorthyf=\hbox{-\kern-.05em}
+{\catcode`\-=\active \global\def-{\copy\shorthyf\mkern3.9mu}
+ \catcode`\.=\active \global\def.{\period\mkern3mu}}
+
+% The following are modified from mft's output.
+$\5{mode\_setup};\ \9 Target a given printer.\par
+\BL
+$\2{define\_pixels}(\\{em},\\{cap},\\{sb});\ \9 Convert to device-specific
+units.\par
+$\2{define\_corrected\_pixels}(o);\ \9 Same, but add a device-specific fudge
+factor.\par
+\BL
+\%\% Define a light bulb at the character position for ``A''\par
+\%\% with width $\frac1/{2}\\{em}\SH$, height $\\{cap}\SH$, and depth $1\\{pt}\SH$.\par
+$\2{beginchar}(\verb+"A"+,\frac1/{2}\\{em}\SH ,\\{cap}\SH ,1\\{pt}\SH );\ \verb+"A light bulb"+;$\par
+\quad\quad$\2{pickup}\5{pencircle}\6{scaled}\frac1/{2}\\{pt};\ \9 Use a pen
+with a small, circular tip.\par
+\BL
+\quad\quad\%\% Define the points we need.\par
+\quad\quad$\\{top}\,z_{1}=(w/2,h+o);\ \9 $z_1$ is at the top of a circle.\par
+\quad\quad$\\{rt}\,z_{2}=(w+\\{sb}+o-x_{4},y_{4});\ \9 $z_2$ is at the same
+height as $z_4$ but the opposite side.\par
+\quad\quad$\\{bot}\,z_{3}=(z_{1}-(0,w-\\{sb}-o));\ \9 $z_3$ is at the bottom of
+the circle.\par
+\quad\quad$\\{lft}\,z_{4}=(\\{sb}-o,\frac1/{2}[y_{1},y_{3}]);\ \9 $z_4$ is on the
+left of the circle.\par
+\quad\quad$\2{path}\\{bulb};\ \9 Define a path for the bulb itself.\par
+\quad\quad$\\{bulb}=z_{1}\8{..}z_{2}\8{..}z_{3}\8{..}z_{4}\8{..}\1{cycle};\ \9
+The bulb is a closed path.\par
+\BL
+\quad\quad$z_{5}=\2{point}2-\frac1/{3}\2{of}\\{bulb};\ \9 $z_5$ lies on the
+bulb, a little to the right of $z_3$.\par
+\quad\quad$z_{6}=(x_{5},0);\ \9 $z_6$ is at the bottom, directly under $z_5$.\par
+\quad\quad$z_{7}=(x_{8},0);\ \9 $z_7$ is at the bottom, directly under $z_8$.\par
+\quad\quad$z_{8}=\2{point}2+\frac1/{3}\2{of}\\{bulb};\ \9 $z_8$ lies on the
+bulb, a little to the left of $z_3$.\par
+\quad\quad$\\{bot}\,z_{67}=(\frac1/{2}[x_{6},x_{7}],\\{pen\_bot}-o-\frac1/{8}%
+\\{pt});\ \9 $z_{67}$ lies halfway between $z_6$ and $z_7$ but a jot lower.\par
+\BL
+\quad\quad\%\% Draw the bulb and the base.\par
+\quad\quad$\2{draw}\\{bulb};\ \9 Draw the bulb proper.\par
+\quad\quad$\2{draw}z_{5}\8{--}z_{6}\8{..}z_{67}\8{..}z_{7}\8{--}z_{8};\ \9
+Draw the base of the bulb.\par
+\BL
+\quad\quad\%\% Display key positions and points to help us debug.\par
+\quad\quad$\\{makegrid}(0,\\{sb},w/2,w-\\{sb})(0,-1\\{pt},y_{2},h);\ \9 Label
+``interesting'' $x$ and $y$ coordinates.\par
+\quad\quad$\\{penlabels}(1,2,3,4,5,6,67,7,8);\ \9 Label control points for
+debugging.\par
+$\!\3{endchar};$\par
+$\!\3{end}$\par
+% Matching `$' for Emacs font-lock mode
+\end{codesample}
+\caption{Sample \metafont size-independent file (\filename{lightbulb.mf})}
+\label{mfmain}
+\end{figure}
+
+The code in Figures~\ref{mftoplevel} and~\ref{mfmain} is heavily
+commented and should demonstrate some of the basic concepts behind
+\metafont usage: declaring variables, defining points, drawing lines
+and curves, and preparing to debug or fine-tune the output. Again,
+The \MF{}book~\cite{Knuth:ct-c} is the definitive reference on
+\metafont programming.
+
+\metafont can produce ``proofs'' of fonts---large, labeled versions
+that showcase the logical structure of each character. In fact, proof
+mode is \metafont's default mode. To produce a proof of
+\filename{lightbulb10.mf}, issue the following commands at the
+operating-system prompt:
+
+\bigskip
+\noindent
+\begingroup
+\let\usercmd=\textbf
+\newlength{\commentlen}%
+\settowidth{\commentlen}{Produces \filename{lightbulb10.2602gf}}%
+\leftskip=\parindent \parindent=0pt \obeylines
+\osprompt \usercmd{mf lightbulb10.mf} \hfill $\Leftarrow$\quad%
+ \makebox[\commentlen][l]{Produces \filename{lightbulb10.2602gf}}
+\osprompt \usercmd{gftodvi lightbulb10.2602gf} \hfill $\Leftarrow$\quad%
+ \makebox[\commentlen][l]{Produces \filename{lightbulb10.dvi}}
+\endgroup
+\bigskip
+
+\noindent
+You can then view \filename{lightbulb10.dvi} with any DVI\index{DVI}
+viewer. The result is shown in Figure~\ref{lightbulb10-proof}.
+Observe how the grid defined with \textit{makegrid} at the bottom of
+Figure~\ref{mfmain} draws vertical lines at positions~0, \textit{sb},
+$w/2$, and $w - \textit{sb}$ and horizontal lines at positions~0,
+$-1$\textit{pt}, $y_2$, and $h$. Similarly, observe how the
+\textit{penlabels} command labels all of the important coordinates:
+$z_1, z_2, \ldots, z_8$ and $z_{67}$, which \filename{lightbulb.mf}
+defines to lie between $z_6$ and $z_7$.
+
+\begin{figure}[htbp]
+ \centering
+ \includegraphics[height=6cm]{lightbulb.eps}
+ \caption{Proof diagram of \filename{lightbulb10.mf}}
+ \label{lightbulb10-proof}
+\end{figure}
+
+Most, if not all, \tex distributions include a Plain \tex file called
+\filename{testfont.tex} which is useful for testing new fonts in a
+variety of ways. One useful routine produces a table of all of the
+characters in the font:
+
+\bigskip
+\noindent
+\begingroup
+\newcommand*{\usercmd}[1]{\textrm{\textbf{#1}}}%
+\leftskip=\parindent \parindent=0pt \ttfamily \obeylines \obeyspaces%
+\osprompt \usercmd{tex testfont}
+This is TeX, Version 3.14159 (Web2C 7.3.1)
+(/usr/share/texmf/tex/plain/base/testfont.tex
+Name of the font to test = \usercmd{lightbulb10}
+Now type a test command (\string\help for help):)
+*\usercmd{\textbackslash{}table}
+\vspace{\baselineskip}
+*\usercmd{\textbackslash{}bye}
+[1]
+Output written on testfont.dvi (1 page, 1516 bytes).
+Transcript written on testfont.log.
+\endgroup
+\bigskip
+
+\noindent
+The resulting table, stored in \filename{testfont.dvi} and illustrated
+in Figure~\ref{font-table}, shows every character in the font. To
+understand how to read the table, note that the character code
+for~``A''---the only character defined by
+\filename{lightbulb10.mf}---is 41 in hexadecimal (base~16) and 101 in
+octal (base~8).
+
+\begin{figure}[htbp]
+\centering
+\fbox{%
+\begin{minipage}{0.9\linewidth}
+\centering
+\vspace*{\baselineskip}
+\begin{minipage}{0.95\linewidth}
+{\tiny Test of lightbulb10 on March 11, 2003 at 1127}
+\vspace{2\baselineskip}
+
+\renewcommand{\tabularxcolumn}[1]{>{\mbox{}\hfill}p{#1}<{\hfill\mbox{}}}%
+% The following two lines are modified from testfont.tex
+\def\oct#1{\hbox{\normalfont\'{}\kern-.2em\itshape#1\/\kern.05em}} % octal constant
+\def\hex#1{\hbox{\normalfont\H{}\ttfamily#1}} % hexadecimal constant
+
+\begin{tabularx}{\linewidth}{@{}*9{X|}X@{}}
+ & \oct{0} & \oct{1} & \oct{2} & \oct{3} &
+ \oct{4} & \oct{5} & \oct{6} & \oct{7} & \\ \hline
+ \oct{10x}
+ & & \lightbulb & & & & & & &
+ \raisebox{-0.5\baselineskip}[0pt][0pt]{\hex{4x}} \\ \cline{1-9}
+ \oct{11x}
+ & & & & & & & & & \\ \hline
+ & \hex{8} & \hex{9} & \hex{A} & \hex{B} &
+ \hex{C} & \hex{D} & \hex{E} & \hex{F} & \\
+\end{tabularx}
+\end{minipage}
+\vspace*{\baselineskip}
+\end{minipage}}
+\caption{Font table produced by \filename{testfont.tex}}
+\label{font-table}
+\end{figure}
+
+The LightBulb10 font is now usable by \tex. \latexE, however, needs
+more information before documents can use the font. First, we create
+a font-description file that tells \latexE how to map fonts in a given
+font family and encoding to a particular font in a particular font
+size. For symbol fonts, this mapping is fairly simple. Symbol fonts
+almost always use the ``U''~(``Unknown'') font encoding and frequently
+occur in only one variant: normal weight and non-italicized. The
+filename for a font-description file important; it must be of the form
+``\meta{encoding}\meta{family}\texttt{.fd}'', where \meta{encoding} is
+the lowercase version of the encoding name (typically~``u'' for symbol
+fonts) and \meta{family} is the name of the font family. For
+LightBulb10, let's call this ``bulb''. Figure~\ref{bulb-fd-file}
+lists the contents of \filename{ubulb.fd}. The document ``\latexE
+Font Selection''~\cite{fntguide} describes \cmd{\DeclareFontFamily}
+and \cmd{\DeclareFontShape} in detail, but the gist of
+\filename{ubulb.fd} is first to declare a \texttt{U}-encoded version
+of the \texttt{bulb} font family and then to specify that a \latexE
+request for a \texttt{U}-encoded version of \texttt{bulb} with a
+(\texttt{m})edium font series (as opposed to, e.g., bold) and a
+(\texttt{n})ormal font shape (as opposed to, e.g., italic) should
+translate into a \tex request for \filename{lightbulb10.tfm}
+mechanically\idxboth{mechanical}{scaling} scaled to the current font
+size.
+
+\begin{figure}[htbp]
+\centering
+\begin{tabular}{@{}|l|@{}}
+ \hline
+ \verb+\DeclareFontFamily{U}{bulb}{}+ \\
+ \verb+\DeclareFontShape{U}{bulb}{m}{n}{<-> lightbulb10}{}+ \\
+ \hline
+\end{tabular}
+\caption{\latexE font-description file (\filename{ubulb.fd})}
+\label{bulb-fd-file}
+\end{figure}
+
+The final step is to write a \latexE style file that defines a name
+for each symbol in the font. Because we have only one symbol our
+style file, \filename{lightbulb.sty} (Figure~\ref{bulb-sty-file}), is
+rather trivial. Note that instead of typesetting ``\texttt{A}'' we
+could have had \cmdI{\lightbulb} typeset ``\verb+\char65+'',
+``\verb+\char"41+'', or ``\verb+\char'101+'' (respectively, decimal,
+hexadecimal, and octal character offsets into the font). For a
+simple, one-character symbol font such as LightBulb10 it would be
+reasonable to merge \filename{ubulb.fd} into \filename{lightbulb.sty}
+instead of maintaining two separate files. In either case, a document
+need only include ``\verb+\usepackage{lightbulb}+'' to make the
+\verb+\lightbulb+ symbol available.
+
+\begin{figure}[htbp]
+\centering
+\begin{tabular}{@{}|l|@{}}
+ \hline
+ \verb+\newcommand{\lightbulb}{{\usefont{U}{bulb}{m}{n}A}}+ \\
+ \hline
+\end{tabular}
+\caption{\latexE style file (\filename{lightbulb.sty})}
+\label{bulb-sty-file}
+\end{figure}
+
+\bigskip
+
+\metafont normally produces bitmapped fonts. However, it is also
+possible, with the help of some external tools, to produce \postscript
+\PSfont{Type~1} fonts. These have the advantages of rendering better
+in Adobe\regtm\index{Adobe Acrobat} Acrobat\regtm (at least in
+versions prior to~6.0) and of being more memory-efficient when handled
+by a \postscript interpreter. See
+\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=textrace} for
+pointers to tools that can produce \PSfont{Type~1} fonts from
+\metafont.
+
+
+\subsection{Math-mode spacing}
+\label{math-spacing}
+
+Terms such as ``binary operators'', ``relations'', and ``punctuation''
+in Section~\ref{math-symbols} primarily regard the surrounding
+spacing. (See the Short Math Guide for \latex~\cite{Downes:smg} for a
+nice exposition on the subject.) To use a symbol for a different
+purpose, you can use the \tex commands \cmd{\mathord}, \cmd{\mathop},
+\cmd{\mathbin}, \cmd{\mathrel}, \cmd{\mathopen}, \cmd{\mathclose}, and
+\cmd{\mathpunct}. For example, if you want to use \cmd{\downarrow} as
+a variable (an ``ordinary'' symbol) instead of a delimiter, you can
+write ``\verb|$3 x + \mathord{\downarrow}$|'' to get the properly
+spaced ``$3 x + \mathord{\downarrow}$'' rather than the
+awkward-looking ``$3 x + \downarrow$''. Similarly, to create a
+dotted-union\index{dotted union=dotted union ($\dot\cup$)} symbol
+(``$\dot\cup$'') that spaces like the ordinary set-union symbol
+(\cmdX{\cup}) it must be defined with \cmd{\mathbin}, just as
+\cmdX{\cup} is. Contrast ``\verb|$A \dot{\cup} B$|'' (``$A {\dot\cup}
+B$'') with ``\verb|$A \mathbin{\dot{\cup}} B$|'' (``$A
+\mathbin{\dot{\cup}} B$''). See \TeXbook for the definitive
+description of math-mode spacing.
+
+The purpose of the ``log-like symbols'' in
+\ifAMS
+ Tables~\ref{log} and~\ref{ams-log}
+\else
+ Table~\ref{log}
+\fi
+is to provide the correct amount of spacing around and within
+multiletter function names. Table~\vref{log-spacing} contrasts the
+output of the log-like symbols with various, na\"{\i}ve alternatives.
+In addition to spacing, the log-like symbols also handle subscripts
+properly. For example, ``\verb|\max_{p \in P}|'' produces ``$\max_{p
+\in P}$'' in text, but ``$\displaystyle\max_{p \in P}$'' as part of a
+displayed formula.
+
+\begin{nonsymtable}{Spacing Around/Within Log-like Symbols}
+\label{log-spacing}
+\setlength{\tabcolsep}{1em}
+\begin{tabular}{@{}ll@{}} \toprule
+\latex{} expression & Output \\ \midrule
+\verb|$r \sin \theta$| & $r \sin \theta$ \rlap{\quad (best)} \\
+\verb|$r sin \theta$| & $r sin \theta$ \\
+\verb|$r \mbox{sin} \theta$| & $r \mbox{sin} \theta$ \\
+\verb|$r \mathrm{sin} \theta$| & $r \mathrm{sin} \theta$ \\
+\bottomrule
+\end{tabular}
+\end{nonsymtable}
+
+The \pkgname{amsmath} package makes it straightforward to define new
+log-like symbols:
+
+\begin{verbatim}
+ \DeclareMathOperator{\atan}{atan}
+ \DeclareMathOperator*{\lcm}{lcm}
+\end{verbatim}
+\ifAMS
+ \indexcommand[$\string\atan$]{\atan}%
+ \indexcommand[$\string\lcm$]{\lcm}
+\else
+ \indexcommand{\atan}%
+ \indexcommand{\lcm}
+\fi % AMS test
+
+\noindent
+The difference between \cmd{\DeclareMathOperator} and
+\cmd{\DeclareMathOperator*} involves the handling of subscripts. With
+\cmd{\DeclareMathOperator*}, subscripts are written beneath log-like
+symbols in display style and to the right in text style. This is
+useful for limit operators (e.g.,~\cmdX{\lim}) and functions that tend
+to map over a set (e.g.,~\cmdX{\min}). In contrast,
+\cmd{\DeclareMathOperator} tells \tex that subscripts should always be
+displayed to the right of the operator, as is common for functions
+that take a single parameter (e.g.,~\cmdX{\log} and~\cmdX{\cos}).
+Table~\ref{new-log-likes} contrasts symbols declared with
+\cmd{\DeclareMathOperator} and \cmd{\DeclareMathOperator*} in both
+text style~(\texttt{\$}$\ldots$\texttt{\$}) and
+display~style~(\texttt{\string\[}$\ldots$\texttt{\string\]}).\footnote{Note
+that \cmd{\displaystyle} can be used to force display style
+within~\texttt{\$}$\ldots$\texttt{\$} and \cmd{\textstyle} can be used
+to force text style
+within~\texttt{\string\[}$\ldots$\texttt{\string\]}.}
+
+\begin{nonsymtable}{Defining new log-like symbols}
+\label{new-log-likes}
+\renewcommand{\tabcolsep}{1em}
+\begin{tabular}{@{}lll@{}}
+ \toprule
+ Declaration function &
+ \texttt{\$\string\newlogsym\_\string{p \string\in~P\string}\$} &
+ \texttt{\string\[~\string\newlogsym\_\string{p \string\in~P\string}~\string\]} \\
+ \midrule
+
+ \texttt{\string\DeclareMathOperator} &
+ $\newlogsym_{p \in P}$ &
+ $\displaystyle\newlogsym_{p \in P}$ \\[1ex]
+
+ \texttt{\string\DeclareMathOperator*} &
+ $\newlogsymSTAR_{p \in P}$ &
+ $\displaystyle\newlogsymSTAR_{p \in P}$ \\
+ \bottomrule
+\end{tabular}
+\end{nonsymtable}
+
+It is common to use a thin\idxboth{thin}{space} space~(\cmd{\,})
+between the words of a multiword operators, as in
+``\verb|\DeclareMathOperator*|\linebreak[0]\verb|{\argmax}|\linebreak[0]\verb|{arg\,max}|''.
+\cmdX{\liminf}, \cmdX{\limsup}, and all of the
+log-like\idxboth{log-like}{symbols}\index{atomic math objects} symbols
+shown in Table~\ref{ams-log} utilize this spacing convention.
+
+
+\subsection{Bold mathematical symbols}
+\label{bold-math}
+
+\idxbothbegin{bold}{symbols} \latex does not normally use bold symbols
+when typesetting mathematics. However, bold symbols are occasionally
+needed, for example when naming vectors. Any of the approaches
+described at
+\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=boldgreek} can be
+used to produce bold mathematical symbols. Table~\ref{bold-symbols}
+contrasts the output produced by these various techniques. As the
+table illustrates, these techniques exhibit variation in their
+formatting of Latin letters (upright vs.\ italic), formatting of
+Greek\index{Greek>bold} letters (bold vs.\ normal), formatting of
+operators and relations (bold vs.\ normal), and spacing.
+
+% The following was copied verbatim from amsbsy.sty.
+\makeatletter
+\DeclareRobustCommand{\pmb}{%
+ \ifmmode\else \expandafter\pmb@@\fi\mathpalette\pmb@}
+\def\pmb@@#1#2#3{\leavevmode\setboxz@h{#3}%
+ \dimen@-\wdz@
+ \kern-.5\ex@\copy\z@
+ \kern\dimen@\kern.25\ex@\raise.4\ex@\copy\z@
+ \kern\dimen@\kern.25\ex@\box\z@
+}
+\newdimen\pmbraise@
+\def\pmb@#1#2{\setbox8\hbox{$\m@th#1{#2}$}%
+ \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@
+ \binrel@{#2}%
+ \dimen@-\wd8 %
+ \binrel@@{%
+ \mkern-.8mu\copy8 %
+ \kern\dimen@\mkern.4mu\raise\pmbraise@\copy8 %
+ \kern\dimen@\mkern.4mu\box8 }%
+}
+\makeatother
+
+\begin{nonsymtable}{Producing bold mathematical symbols}
+ \idxboth{bold}{symbols}
+ \label{bold-symbols}
+ \begin{tabular}{@{}lll@{}}
+ \toprule
+ Package & Code & Output \\
+ \midrule
+
+ \textit{none} &
+ \verb!$\alpha + b = \Gamma \div D$! &
+ $\alpha + b = \Gamma \div D$ \rlap{\qquad (no bold)} \\
+
+ \textit{none} &
+ \verb!$!\cmd{\mathbf}\verb!{\alpha + b = \Gamma \div D}$! &
+\ifBM
+ $\alpha + \textbf{b} = \bm{\Gamma} \div \textbf{D}$ \\
+\else
+ $\mathbf{\alpha + b = \Gamma \div D}$ \\
+\fi
+
+ \textit{none} &
+ \cmd{\boldmath}\verb!$\alpha + b = \Gamma \div D$! &
+ \boldmath$\alpha + b = \Gamma \div D$ \\
+
+ \pkgname{amsbsy} &
+ \verb!$!\cmd{\pmb}\verb!{\alpha + b = \Gamma \div D}$! &
+ $\pmb{\alpha + b = \Gamma \div D}$ \rlap{\qquad (faked bold)} \\
+
+ \pkgname{amsbsy} &
+ \verb!$!\cmd{\boldsymbol}\verb!{\alpha + b = \Gamma \div D}$! &
+ \boldmath$\alpha + b = \Gamma \div D$ \\
+
+\ifBM
+ \pkgname{bm} &
+ \verb!$!\cmd{\bm}\verb!{\alpha + b = \Gamma \div D}$! &
+ $\bm{\alpha + b = \Gamma \div D}$ \\
+\fi
+
+ \pkgname{fixmath} &
+ \verb!$!\cmd{\mathbold}\verb!{\alpha + b = \Gamma \div D}$! &
+ \def\GammaIt{\mathord{\usefont{OML}{cmm}{b}{it}\mathchar"7100}}%
+ \boldmath$\alpha + b = \GammaIt \div D$ \\
+ \bottomrule
+ \end{tabular}
+\end{nonsymtable}
+
+\idxbothend{bold}{symbols}
+
+
+\subsection{ASCII and Latin~1 quick reference}
+\label{ascii-quickref}
+
+\index{ASCII|(}
+
+Table~\vref{ascii-table} amalgamates data from various other tables in
+this document into a convenient reference for \latexE typesetting of
+ASCII characters, i.e., the characters available on a typical
+U.S. computer keyboard. The first two columns list the character's
+ASCII code in decimal and hexadecimal. The third column shows what
+the character looks like. The fourth column lists the \latexE command
+to typeset the character as a text character. And the fourth column
+lists the \latexE command to typeset the character within a
+\verb|\texttt{|$\ldots$\verb|}| command (or, more generally, when
+\verb|\ttfamily| is in effect).
+
+\index{ASCII|)}
+
+\begin{nonsymtable}{\latexE ASCII Table}
+ \index{ASCII>table}
+ \label{ascii-table}
+ % Define an equivalent of \vdots that's the height of a "9".
+ \newlength{\digitheight}
+ \settoheight{\digitheight}{9}
+ \newcommand{\digitvdots}{\raisebox{-1.5pt}[\digitheight]{$\vdots$}}
+
+ % Replace all glyphs in a row with vertical dots.
+ \makeatletter
+ \newcommand{\skipped}{%
+ \settowidth{\@tempdima}{99} \makebox[\@tempdima]{\digitvdots} &
+ \settowidth{\@tempdima}{99} \makebox[\@tempdima]{\digitvdots} &
+ \digitvdots &
+ \digitvdots &
+ \digitvdots \\
+ }
+ \makeatother
+
+ % Typesetting a symbol by prefixing it with a "\".
+ \newcommand{\bscommand}[1]{#1 & \cmdI{#1} & \cmdI{#1}}
+
+ \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c*2{>{\ttfamily}l}l@{}} \\ \toprule
+ \multicolumn{1}{@{}c}{Dec} &
+ \multicolumn{1}{c}{Hex} &
+ \multicolumn{1}{c}{Char} &
+ \multicolumn{1}{c}{Body text} &
+ \multicolumn{1}{c@{}}{\ttfamily\string\texttt} \\ \midrule
+
+ 33 & 21 & ! & ! & ! \\
+ 34 & 22 & {\fontencoding{T1}\selectfont\textquotedbl} &
+ \string\textquotedbl & " \\ % Not available in OT1
+ 35 & 23 & \bscommand{\#} \\
+ 36 & 24 & \bscommand{\$} \\
+ 37 & 25 & \bscommand{\%} \\
+ 38 & 26 & \bscommand{\&} \\
+ 39 & 27 & ' & ' & ' \\
+ 40 & 28 & ( & ( & ( \\
+ 41 & 29 & ) & ) & ) \\
+ 42 & 2A & * & * & * \\
+ 43 & 2B & + & + & + \\
+ 44 & 2C & , & , & , \\
+ 45 & 2D & - & - & - \\
+ 46 & 2E & . & . & . \\
+ 47 & 2F & / & / & / \\
+ 48 & 30 & 0 & 0 & 0 \\
+ 49 & 31 & 1 & 1 & 1 \\
+ 50 & 32 & 2 & 2 & 2 \\
+ \skipped
+ 57 & 39 & 9 & 9 & 9 \\
+ 58 & 3A & : & : & : \\
+ 59 & 3B & ; & ; & ; \\
+ 60 & 3C & \textless & \cmdI{\textless} & < \\ % Or $<$
+ 61 & 3D & = & = & = \\ \bottomrule
+ \end{tabular}
+ \hfil
+ \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c*2{>{\ttfamily}l}l@{}} \\ \toprule
+ \multicolumn{1}{@{}c}{Dec} &
+ \multicolumn{1}{c}{Hex} &
+ \multicolumn{1}{c}{Char} &
+ \multicolumn{1}{c}{Body text} &
+ \multicolumn{1}{c@{}}{\ttfamily\string\texttt} \\ \midrule
+
+ 62 & 3E & \textgreater & \cmdI{\textgreater} & > \\ % Or $>$
+ 63 & 3F & ? & ? & ? \\
+ 64 & 40 & @ & @ & @ \\
+ 65 & 41 & A & A & A \\
+ 66 & 42 & B & B & B \\
+ 67 & 43 & C & C & C \\
+ \skipped
+ 90 & 5A & Z & Z & Z \\
+ 91 & 5B & [ & [ & [ \\
+ 92 & 5C & \textbackslash & \cmdI{\textbackslash} &
+ \verb|\char`\\| \\ % \textbackslash works in non-OT1
+ 93 & 5D & ] & ] & ] \\
+ 94 & 5E & \^{} & \verb|\^{}| & \verb|\^{}| \\ % Or \textasciicircum
+ 95 & 5F & \_ & \verb|\_| & \verb|\char`\_| \\ % \_ works in non-OT1
+ 96 & 60 & ` & ` & ` \\
+ 97 & 61 & a & a & a \\
+ 98 & 62 & b & b & b \\
+ 99 & 63 & c & c & c \\
+ \skipped
+ 122 & 7A & z & z & z \\
+ 123 & 7B & \{ & \verb|\{| & \verb|\char`\{| \\ % \{ works in non-OT1
+ 124 & 7C & \textbar & \cmdI{\textbar} & | \\ % Or $|$
+ 125 & 7D & \} & \verb|\}| & \verb|\char`\}| \\ % \} works in non-OT1
+ 126 & 7E & \~{} & \verb|\~{}| & \verb|\~{}| \\ % Or \textasciitilde ($\sim$?)
+ \\
+ \bottomrule
+ \end{tabular}
+\end{nonsymtable}
+
+The following are some additional notes about the contents of
+Table~\ref{ascii-table}:
+
+\begin{itemize}
+ \item
+ ``\indexcommand[\string\encone{\string\textquotedbl}]{\textquotedbl}{\encone{\textquotedbl}}''
+ is not available in the OT1 \fntenc[OT1].
+
+ \item
+ The\label{upside-down}\index{symbols>upside-down|(}\index{upside-down
+ symbols|(} characters ``\texttt{<}'', ``\texttt{>}'', and
+ ``\texttt{|}'' do work as expected in math mode, although they
+ produce, respectively, ``<'', ``>'', and ``|'' in text mode when
+ using the OT1 \fntenc[OT1].\footnote{Donald\index{Knuth, Donald E.}
+ Knuth didn't think such symbols were important outside of
+ mathematics so he omitted them from his text fonts.} The following
+ are some alternatives for typesetting ``\textless'',
+ ``\textgreater'', and ``\textbar'':
+
+ \begin{itemize}
+ \item Specify a document \fntenc{} other than OT1 (as
+ described~\vpageref[above]{altenc}).
+
+ \item Use the appropriate symbol commands from
+ Table~\vref{text-predef}, viz.~\cmdI{\textless},
+ \cmdI{\textgreater}, and \cmdI{\textbar}.
+
+ \item Enter the symbols in math mode instead of text mode,
+ i.e.,~\verb+$<$+, \verb+$>$+, and \verb+$|$+.
+ \end{itemize}
+
+ \noindent
+ Note that for typesetting metavariables many people prefer
+ \cmdI{\textlangle} and \cmdI{\textrangle} to \cmdI{\textless} and
+ \cmdI{\textgreater}, i.e., ``\meta{filename}'' instead of
+ ``$<$\textit{filename}$>$''.\index{symbols>upside-down|)}\index{upside-down
+ symbols|)}
+
+ \item Although ``\texttt{/}'' does not require any special
+ treatment, \latex additionally defines a \cmdI{\slash} command which
+ outputs the same glyph but permits a line~break afterwards. That
+ is, ``\texttt{increase/decrease}'' is always typeset as a single
+ entity while ``\verb|increase\slash{}decrease|'' may be typeset with
+ ``increase/'' on one line and ``decrease'' on the next.
+
+ \item \label{tildes} \index{tilde|(} \cmdI{\textasciicircum} can be
+ used instead of \cmdI[\string\^{}]{\^{}}\verb|{}|, and
+ \cmdI{\textasciitilde} can be used instead of
+ \cmdI[\string\~{}]{\~{}}\verb|{}|. Note that \cmdI{\textasciitilde}
+ and \cmdI[\string\~{}]{\~{}}\verb|{}| produce raised, diacritic
+ tildes. ``Text'' (i.e.,~vertically\index{tilde>vertically centered}
+ centered) tildes can be generated with either the math-mode
+ \cmdX{\sim} command (shown in Table~\vref{rel}), which produces a
+ somewhat wide ``$\sim$'', or the \TC\ package's \cmdI{\texttildelow}
+ (shown in Table~\vref{tc-misc}), which produces a vertically
+ centered ``{\fontfamily{ptm}\selectfont\texttildelow}'' in most
+ fonts but a baseline-oriented ``\texttildelow'' in \PSfont{Computer
+ Modern}, \TX, \PX, and various other fonts originating from the
+ \tex\ world. If your goal is to typeset tildes in URLs or Unix
+ filenames, your best bet is to use the \pkgname{url} package, which
+ has a number of nice features such as proper line-breaking of such
+ names.\index{tilde|)}
+
+ \item The various \verb|\char| commands within \verb|\texttt| are
+ necessary only in the OT1 \fntenc[OT1]. In other encodings
+ (e.g.,~T1)\index{font encodings>T1}, commands such as \cmdIp{\{},
+ \cmdIp{\}}, \cmdI{\_}, and \cmdI{\textbackslash} all work properly.
+
+ \item The code\index{code page 437} page~437 (IBM~PC\index{IBM PC})
+ version of ASCII\index{ASCII} characters~1 to~31 can be typeset
+ using the \pkgname{ascii} package.
+\ifASCII
+ See Table~\vref{ibm-ascii}.
+\fi
+
+ \item To replace~``\verb|`|'' and~``\verb|'|'' with the more
+ computer-like (and more visibly distinct) ``\texttt{\char18}''
+ and~``\texttt{\char13}'' within a \texttt{verbatim} environment, use
+ the \pkgname{upquote} package. Outside of \texttt{verbatim}, you
+ can use \verb|\char18| and \verb|\char13| to get the modified quote
+ characters. (The former is actually a grave accent.)
+\end{itemize}
+
+\index{Latin 1|(}
+
+Similar to Table~\ref{ascii-table}, Table~\vref{latin1-table} is an
+amalgamation of data from other tables in this document. While
+Table~\ref{ascii-table} shows how to typeset the 7-bit ASCII character
+set, Table~\ref{latin1-table} shows the Latin~1 (Western European)
+character set, also known as ISO-8859-1.
+
+\index{Latin 1|)}
+
+\begin{nonsymtable}{\latexE Latin~1 Table}
+ \index{Latin 1>table}
+ \index{copyright}
+ \idxboth{legal}{symbols}
+ \label{latin1-table}
+
+ \newcommand{\accented}[2]{#1#2 & \texttt{\string#1\string{#2\string}}}
+ \newcommand{\idxencone}[1]{\indexcommand[\string\encone{\string#1}]{#1}\encone{#1}}
+ \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c>{\ttfamily}lc@{}} \\ \toprule
+ \multicolumn{1}{@{}c}{Dec} &
+ \multicolumn{1}{c}{Hex} &
+ \multicolumn{1}{c}{Char} &
+ \multicolumn{2}{c@{}}{\latexE} \\ \midrule
+
+ 161 & A1 & !` & !{}` \\
+ 162 & A2 & \textcent & \cmdI{\textcent} & (\textsf{tc}) \\
+ 163 & A3 & \pounds & \cmdI{\pounds} \\
+ 164 & A4 & \textcurrency & \cmdI{\textcurrency} & (\textsf{tc}) \\
+ 165 & A5 & \textyen & \cmdI{\textyen} & (\textsf{tc}) \\
+ 166 & A6 & \textbrokenbar & \cmdI{\textbrokenbar} & (\textsf{tc}) \\
+ 167 & A7 & \S & \cmdI{\S} \\
+ 168 & A8 & \textasciidieresis & \cmdI{\textasciidieresis} & (\textsf{tc}) \\
+ 169 & A9 & \textcopyright & \cmdI{\textcopyright} \\
+ 170 & AA & \textordfeminine & \cmdI{\textordfeminine} \\
+ 171 & AB & \idxencone{\guillemotleft} & \string\guillemotleft & (T1) \\
+ 172 & AC & \textlnot & \cmdI{\textlnot} & (\textsf{tc}) \\
+ 173 & AD & - & \cmdI[-]{\-} \\
+ 174 & AE & \textregistered & \cmdI{\textregistered} \\
+ 175 & AF & \textasciimacron & \cmdI{\textasciimacron} & (\textsf{tc}) \\
+ 176 & B0 & \textdegree & \cmdI{\textdegree} & (\textsf{tc}) \\
+ 177 & B1 & \textpm & \cmdI{\textpm} & (\textsf{tc}) \\
+ 178 & B2 & \texttwosuperior & \cmdI{\texttwosuperior} & (\textsf{tc}) \\
+ 179 & B3 & \textthreesuperior & \cmdI{\textthreesuperior} & (\textsf{tc}) \\
+ 180 & B4 & \textasciiacute & \cmdI{\textasciiacute} & (\textsf{tc}) \\
+ 181 & B5 & \textmu & \cmdI{\textmu} & (\textsf{tc}) \\
+ 182 & B6 & \P & \cmdI{\P} \\
+ 183 & B7 & \textperiodcentered & \cmdI{\textperiodcentered} \\
+ 184 & B8 & \c{} & \cmdI[\string\blackacchack{\string\c}]{\c}\verb|{}| \\
+ 185 & B9 & \textonesuperior & \cmdI{\textonesuperior} & (\textsf{tc}) \\
+ 186 & BA & \textordmasculine & \cmdI{\textordmasculine} \\
+ 187 & BB & \idxencone{\guillemotright} & \string\guillemotright & (T1) \\
+ 188 & BC & \textonequarter & \cmdI{\textonequarter} & (\textsf{tc}) \\
+ 189 & BD & \textonehalf & \cmdI{\textonehalf} & (\textsf{tc}) \\
+ 190 & BE & \textthreequarters & \cmdI{\textthreequarters} & (\textsf{tc}) \\
+ 191 & BF & ?` & ?{}` \\
+ 192 & C0 & \accented{\`}{A} \\
+ 193 & C1 & \accented{\'}{A} \\
+ 194 & C2 & \accented{\^}{A} \\
+ 195 & C3 & \accented{\~}{A} \\
+ 196 & C4 & \accented{\"}{A} \\
+ 197 & C5 & \AA & \string\AA \\
+ 198 & C6 & \AE & \string\AE \\
+ 199 & C7 & \accented{\c}{C} \\
+ 200 & C8 & \accented{\`}{E} \\
+ 201 & C9 & \accented{\'}{E} \\
+ 202 & CA & \accented{\^}{E} \\
+ 203 & CB & \accented{\"}{E} \\
+ 204 & CC & \accented{\`}{I} \\
+ 205 & CD & \accented{\'}{I} \\
+ 206 & CE & \accented{\^}{I} \\
+ 207 & CF & \accented{\"}{I} \\
+ 208 & D0 & \idxencone{\DH} & \string\DH & (T1) \\ \bottomrule
+ \end{tabular}
+ \hfil
+ \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c>{\ttfamily}lc@{}} \\ \toprule
+ \multicolumn{1}{@{}c}{Dec} &
+ \multicolumn{1}{c}{Hex} &
+ \multicolumn{1}{c}{Char} &
+ \multicolumn{2}{c@{}}{\latexE} \\ \midrule
+
+ 209 & D1 & \accented{\~}{N} \\
+ 210 & D2 & \accented{\`}{O} \\
+ 211 & D3 & \accented{\'}{O} \\
+ 212 & D4 & \accented{\^}{O} \\
+ 213 & D5 & \accented{\~}{O} \\
+ 214 & D6 & \accented{\"}{O} \\
+ 215 & D7 & \texttimes & \string\texttimes & (\textsf{tc}) \\
+ 216 & D8 & \O & \string\O \\
+ 217 & D9 & \accented{\`}{U} \\
+ 218 & DA & \accented{\'}{U} \\
+ 219 & DB & \accented{\^}{U} \\
+ 220 & DC & \accented{\"}{U} \\
+ 221 & DD & \accented{\'}{Y} \\
+ 222 & DE & \idxencone{\TH} & \string\TH & (T1) \\
+ 223 & DF & \ss & \string\ss \\
+ 224 & E0 & \accented{\`}{a} \\
+ 225 & E1 & \accented{\'}{a} \\
+ 226 & E2 & \accented{\^}{a} \\
+ 227 & E3 & \accented{\~}{a} \\
+ 228 & E4 & \accented{\"}{a} \\
+ 229 & E5 & \aa & \string\aa \\
+ 230 & E6 & \ae & \string\ae \\
+ 231 & E7 & \accented{\c}{c} \\
+ 232 & E8 & \accented{\`}{e} \\
+ 233 & E9 & \accented{\'}{e} \\
+ 234 & EA & \accented{\^}{e} \\
+ 235 & EB & \accented{\"}{e} \\
+ 236 & EC & \accented{\`}{\i} \\
+ 237 & ED & \accented{\'}{\i} \\
+ 238 & EE & \accented{\^}{\i} \\
+ 239 & EF & \accented{\"}{\i} \\
+ 240 & F0 & \idxencone{\dh} & \string\dh & (T1) \\
+ 241 & F1 & \accented{\~}{n} \\
+ 242 & F2 & \accented{\`}{o} \\
+ 243 & F3 & \accented{\'}{o} \\
+ 244 & F4 & \accented{\^}{o} \\
+ 245 & F5 & \accented{\~}{o} \\
+ 246 & F6 & \accented{\"}{o} \\
+ 247 & F7 & \textdiv & \string\textdiv & (\textsf{tc}) \\
+ 248 & F8 & \o & \string\o \\
+ 249 & F9 & \accented{\`}{u} \\
+ 250 & FA & \accented{\'}{u} \\
+ 251 & FB & \accented{\^}{u} \\
+ 252 & FC & \accented{\"}{u} \\
+ 253 & FD & \accented{\'}{y} \\
+ 254 & FE & \idxencone{\th} & \string\th & (T1) \\
+ 255 & FF & \accented{\"}{y} \\ \bottomrule
+ \end{tabular}
+\end{nonsymtable}
+
+The following are some additional notes about the contents of
+Table~\ref{latin1-table}:
+
+\begin{itemize}
+ \item A ``(\textsf{tc})'' after a symbol name means that the \TC\
+ package must be loaded to access that symbol. A ``(T1)'' means that
+ the symbol requires the T1 \fntenc[T1]. The \pkgname{fontenc}
+ package can change the \fntenc[document] document-wide.
+
+ \item Many of the \verb|\text|\dots\ accents can also be produced
+ using the accent commands shown in Table~\vref{text-accents} plus an
+ empty argument. For instance,
+ \verb|\={}|\index{_=\magicequalname{}\verb+{}+ (\magicequal{})}
+ is essentially the same as \cmd{\textasciimacron}.
+
+ \item The commands in the ``\latexE'' columns work both in body text
+ and within a \verb|\texttt{|$\ldots$\verb|}| command (or, more
+ generally, when \verb|\ttfamily| is in effect).
+
+ \item The ``\pounds'' and ``\$'' glyphs occupy the same slot~(36) of
+ the OT1 \fntenc[OT1], with ``\pounds'' appearing in italic fonts and
+ ``\$'' appearing in roman fonts. A problem with \latex's default
+ handling of this double-mapping is that
+ ``\texttt{\string{\string\sffamily\linebreak[0]\string\slshape\linebreak[0]\string\pounds\string}}''
+ produces
+ ``{\fontencoding{OT1}\sffamily\slshape\selectfont\textdollar}'', not
+ ``{\fontencoding{T1}\sffamily\slshape\selectfont\textsterling}''.
+ Other \fntenc{}s use separate slots for the two characters and are
+ therefore robust to the problem of ``\pounds''/''\$'' conflicts.
+ Authors who use \cmdI{\pounds} should select a \fntenc{} other than
+ OT1 (as explained~\vpageref[above]{altenc}) or use the \TC\ package,
+ which redefines \cmdI{\pounds} to use the TS1 \fntenc[TS1].
+
+ \item Character~173, \cmdI[-]{\-}, is shown as ``-'' but is actually
+ a discretionary\index{discretionary hyphen}\index{hyphen,
+ discretionary} hyphen; it appears only at the end of a line.
+\end{itemize}
+
+\index{code page 1252|(}
+Microsoft\regtm\index{Microsoft Windows=Microsoft\regtm\
+Windows\regtm} Windows\regtm\index{Windows=Windows\regtm} normally
+uses a superset of Latin~1 called ``Code Page~1252'' or ``CP1252'' for
+short. CP1252 introduces symbols in the Latin~1 ``invalid'' range
+(characters~128--159). Table~\ref{cp1252-table} presents the
+characters with which CP1252 augments the standard Latin~1\index{Latin
+1} table.
+\index{code page 1252|)}
+
+\begin{nonsymtable}{\latexE Code Page~1252 Table}
+ \index{code page 1252>table}
+ \label{cp1252-table}
+ \newcommand{\accented}[2]{#1#2 & \texttt{\string#1\string{#2\string}}}
+ \newcommand{\idxencone}[1]{\indexcommand[\string\encone{\string#1}]{#1}\encone{#1}}
+
+ \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c>{\ttfamily}lc@{}} \\ \toprule
+ \multicolumn{1}{@{}c}{Dec} &
+ \multicolumn{1}{c}{Hex} &
+ \multicolumn{1}{c}{Char} &
+ \multicolumn{2}{c@{}}{\latexE} \\ \midrule
+ 128 & 80 & \texteuro & \cmdI{\texteuro} & (\textsf{tc}) \\
+ 130 & 82 & \idxencone{\quotesinglbase} & \string\quotesinglbase & (T1) \\
+ 131 & 83 & \textit{f} & \verb|\textit{f}| \\
+ 132 & 84 & \idxencone{\quotedblbase} & \string\quotedblbase & (T1) \\
+ 133 & 85 & \dots & \cmdI{\dots} \\
+ 134 & 86 & \dag & \cmdI{\dag} \\
+ 135 & 87 & \ddag & \cmdI{\ddag} \\
+ 136 & 88 & \textasciicircum & \cmdI{\textasciicircum} \\
+ 137 & 89 & \textperthousand & \cmdI{\textperthousand} & (\textsf{tc}) \\
+ 138 & 8A & \accented{\v}{S} \\
+ 139 & 8B & \idxencone{\guilsinglleft} & \string\guilsinglleft & (T1) \\
+ 140 & 8C & \OE & \cmdI{\OE} \\
+ 142 & 8E & \accented{\v}{Z} \\
+ \bottomrule
+ \end{tabular}
+ \hfil
+ \begin{tabular}[t]{@{}*2{>{\ttfamily}r}c>{\ttfamily}lc@{}} \\ \toprule
+ \multicolumn{1}{@{}c}{Dec} &
+ \multicolumn{1}{c}{Hex} &
+ \multicolumn{1}{c}{Char} &
+ \multicolumn{2}{c@{}}{\latexE} \\ \midrule
+ 145 & 91 & ` & ` \\
+ 146 & 92 & ' & ' \\
+ 147 & 93 & `` & `` \\
+ 148 & 94 & '' & '' \\
+ 149 & 95 & \textbullet & \cmdI{\textbullet} \\
+ 150 & 96 & -- & -- \\
+ 151 & 97 & --- & --- \\
+ 152 & 98 & \textasciitilde & \cmdI{\textasciitilde} \\
+ 153 & 99 & \texttrademark & \cmdI{\texttrademark} \\
+ 154 & 9A & \accented{\v}{s} \\
+ 155 & 9B & \idxencone{\guilsinglright} & \string\guilsinglright & (T1) \\
+ 156 & 9C & \oe & \cmdI{\oe} \\
+ 158 & 9E & \accented{\v}{z} \\
+ 159 & 9F & \accented{\"}{Y} \\
+ \bottomrule
+ \end{tabular}
+\end{nonsymtable}
+
+The following are some additional notes about the contents of
+Table~\ref{cp1252-table}:
+
+\begin{itemize}
+ \item As in Table~\ref{latin1-table}, a ``(\textsf{tc})'' after a
+ symbol name means that the \TC\ package must be loaded to access
+ that symbol. A ``(T1)'' means that the symbol requires the T1
+ \fntenc[T1]. The \pkgname{fontenc} package can change the
+ \fntenc[document] document-wide.
+
+ \item Not all characters in the 128--159 range are defined.
+
+ \item Look up ``euro signs'' in the index for alternatives to
+ \cmdI{\texteuro}.
+\end{itemize}
+
+\index{ISO character entities|(}
+While too large to incorporate into this document, a listing of
+ISO~8879:1986 SGML\index{SGML}/XML\index{XML} character entities and
+their \latex{} equivalents is available from
+\url{http://www.bitjungle.com/~isoent/}. Some of the characters
+presented there make use of \pkgname{isoent}, a \latexE{} package
+(available from the same URL) that fakes some of the missing ISO
+glyphs using the \latex{} \texttt{picture}
+environment.\footnote{\pkgname{isoent} is not featured in this
+document, because it is not available from CTAN\idxCTAN{} and because
+the faked symbols are not ``true'' characters; they exist in only one
+size, regardless of the body text's font size.}
+\index{ISO character entities|)}
+
+
+\subsection{About this document}
+\label{about-doc}
+
+\paragraph{History}
+\person{David}{Carlisle} wrote the first version of this document in
+October, 1994. It originally contained all of the native \latex{}
+symbols (Tables~\ref{bin}, \ref{op}, \ref{rel}, \ref{arrow},
+\ref{log}, \ref{greek}, \ref{dels}, \ref{ldels}, \ref{math-accents},
+\ref{extensible-accents}, \ref{ord}, and a few tables that have since
+been reorganized) and was designed to be nearly identical to the
+tables in Chapter~3 of Leslie\index{Lamport, Leslie} Lamport's
+book~\cite{Lamport:latex}. Even the table captions and the order of
+the symbols within each table matched! The \AMS\ symbols
+(Tables~\ref{ams-bin}, \ref{ams-rel}, \ref{ams-nrel},
+\ref{ams-arrows}, \ref{ams-narrows}, \ref{ams-greek},
+\ref{ams-hebrew}, \ref{ams-del}, and \ref{ams-misc}) and an initial
+Math Alphabets table (Table~\ref{alphabets}) were added thereafter.
+Later, \person{Alexander}{Holt} provided the \ST\ tables
+(Tables~\ref{st-bin}, \ref{st-large}, \ref{st-rel}, \ref{st-arrows},
+\ref{st-ext}, and \ref{st-del}).
+
+In January, 2001, \person{Scott}{Pakin} took responsibility for
+maintaining the symbol list and has since implemented a complete
+overhaul of the document. The result, now called, ``The \doctitle'',
+includes the following new features:
+
+\begin{itemize}
+ \item the addition of a handful of new math alphabets, dozens of new
+ font tables, and thousands of new symbols
+
+ \item the categorization of the symbol tables into body-text
+ symbols, mathematical symbols, science and technology symbols,
+ dingbats, and other symbols, to provide a more user-friendly
+ document structure
+
+ \item an index, table of contents, and a frequently-requested symbol
+ list, to help users quickly locate symbols
+
+ \item symbol tables rewritten to list the symbols in alphabetical
+ order
+
+ \item appendices to provide additional information relevant to using
+ symbols in \latex{}
+
+ \item tables showing how to typeset all of the characters in the
+ ASCII\index{ASCII} and Latin~1\index{Latin 1}
+ \fntenc[ASCII]s\index{font encodings>Latin 1}
+\end{itemize}
+
+\noindent
+Furthermore, the internal structure of the document has been
+completely altered from David's original version. Most of the changes
+are geared towards making the document easier to extend, modify, and
+reformat.
+
+
+\paragraph{Build characteristics}
+Table~\vref{doc-characteristics} lists some of this document's build
+characteristics. Most important is the list of packages that \latex{}
+couldn't find, but that \selftex otherwise would have been able to
+take advantage of. Complete, prebuilt versions of this document are
+available from CTAN\idxCTAN{} (\url{http://www.ctan.org/} or one of
+its many mirror sites) in the directory
+\texttt{tex-archive/info/symbols/comprehensive}.
+Table~\ref{package-dates} shows the package date (specified in the
+\verb|.sty|~file with \cmd{\ProvidesPackage}) for each package that
+was used to build this document and that specifies a package date.
+Packages are not listed in any particular order in either
+Table~\ref{doc-characteristics} or~\ref{package-dates}.
+
+\begin{nonsymtable}{Document Characteristics}
+\label{doc-characteristics}
+\begin{tabular}{@{}lp{0.5\textwidth}@{}} \toprule
+Characteristic & Value \\ \midrule
+Source file: & \selftex \\
+Build date: & \today \\
+Symbols documented: & \approxcount\prevtotalsymbols \\
+Packages included: & \makeatletter
+ \def\@elt#1{\pkgname{#1}\xspace}
+ \foundpkgs
+ \makeatother \\
+Packages omitted: & \makeatletter
+ \ifcomplete
+ \emph{none}
+ \else
+ \def\@elt#1{\pkgname{#1}\xspace}
+ \missingpkgs
+ \fi
+ \makeatother \\
+\bottomrule
+\end{tabular}
+\end{nonsymtable}
+
+
+% Automatically generate a table of package version numbers.
+\makeatletter
+\begingroup
+ % Given a package name, output the package's date.
+ \def\show@package@date#1/#2/#3#4#5!!!{#1/#2/#3#4}
+ \newcommand{\showpackagedate}[1]{%
+ \edef\package@date@string{\csname ver@#1.sty\endcsname}%
+ \expandafter\show@package@date\package@date@string!!!
+ }
+
+ % Format a metavariable.
+ \def\meta#1{\textlangle{\textit{#1}}\textrangle}
+
+ % Produce the entire table body as a token list.
+ \newtoks\pkg@date@toks
+ \def\@elt#1{%
+ \expandafter\ifx\csname ver@#1.sty\endcsname\relax
+ \else
+ \expandafter\ifx\csname ver@#1.sty\endcsname\@empty
+ \else
+ \pkgname{#1} & \showpackagedate{#1} \\
+ \fi
+ \fi
+ }
+ \expandafter\pkg@date@toks\expandafter=\expandafter{\foundpkgs}
+
+ % Output a formatted table which contains the previously defined token list.
+ \begin{nonsymtable}{Package versions used in the preparation of this document}
+ \label{package-dates}
+ \begin{tabular}{@{}ll@{}}
+ \toprule
+ Name & Date \\
+ \midrule
+ \the\pkg@date@toks
+ \bottomrule
+ \end{tabular}
+ \end{nonsymtable}
+\endgroup
+\makeatother
+
+
+\subsection{Copyright and license}
+
+\mbox{}
+
+\begin{tabular}{@{}l@{}}
+ The \doctitle \\
+ Copyright~\copyright\ \number\year, Scott Pakin \\
+\end{tabular}
+
+\bigskip
+
+\noindent
+This work may be distributed and/or modified under the conditions of
+the \latex\ Project Public License, either version~1.3c of this license
+or (at your option) any later version. The latest version of this
+license is in
+
+\begin{center}
+ \url{http://www.latex-project.org/lppl.txt}
+\end{center}
+
+\noindent
+and version~1.3c or later is part of all distributions of \latex\
+version 2006/05/20 or later.
+
+This work has the LPPL maintenance status ``maintained''.
+
+The current maintainer of this work is Scott Pakin.
+
+% This work consists of the files \filename{symbols.tex},
+% \filename{README}, \filename{SYMLIST}, \filename{lightbulb10.mf}, and
+% \filename{lightbulb.mf}, \filename{lightbulb.map}, and all PDF,
+% \postscript, Encapsulated \postscript, and \postscript font files
+% derived from those.
+
+
+% It seems like such a waste to put such a brief bibliography on its own
+% page. So we temporarily restore \section back to its original
+% definition, just for the list of references.
+
+\vspace{\stretch{1}}
+\begingroup
+\let\section=\origsection
+
+\addcontentsline{toc}{section}{References}
+\begin{thebibliography}{Knu86b}
+
+\bibitem[AMS99]{AMS1999:amsmath}
+ American Mathematical Society.
+ \emph{User's Guide for the \textsf{amsmath} Package (Version~2.0)},
+ December~13, 1999.
+ Available from \url{ftp://ftp.ams.org/pub/tex/doc/amsmath/amsldoc.pdf}.
+
+\bibitem[Ber01]{Berry:fontname}
+ Karl Berry.\index{Berry, Karl}
+ Fontname: Filenames for \tex fonts,
+ June 2001.
+ Available from \url{http://www.ctan.org/tex-archive/info/fontname}.
+
+\bibitem[Che97]{Chen1997}
+ Raymond Chen.\index{Chen, Raymond}
+ A \MF\ of `Simpsons' characters.
+ \emph{Baskerville}, 4(4):19, September 1997.
+ ISSN~\mbox{1354-5930}.
+ Available from
+ \url{http://tug.ctan.org/usergrps/uktug/baskervi/4_4/bask4_4.ps}.
+
+\bibitem[Dow00]{Downes:smg}
+ Michael Downes.\index{Downes, Michael J.}
+ Short math guide for {\latex},
+ July~19, 2000.
+ Version~1.07.
+ Available from \url{http://www.ams.org/tex/short-math-guide.html}.
+
+\bibitem[Gib97]{Gibbons:longdiv}
+ Jeremy Gibbons.\index{Gibbons, Jeremy}
+ Hey---it works!
+ \emph{TUGboat}, 18(2):75--78, June 1997.
+ Available from \url{http://www.tug.org/TUGboat/Articles/tb18-2/tb55works.pdf}.
+
+\bibitem[Knu86a]{Knuth:ct-a}
+ Donald~E. Knuth.\index{Knuth, Donald E.}
+ \emph{The {\TeX}book},
+ volume~A of \emph{Computers and Typesetting}.
+ Ad{\-d}i{\-s}on-Wes{\-l}ey,
+ Reading, MA, USA,
+ 1986.
+
+\bibitem[Knu86b]{Knuth:ct-c}
+ Donald~E. Knuth.\index{Knuth, Donald E.}
+ \emph{The {\MF}book},
+ volume~C of \emph{Computers and Typesetting}.
+ Ad{\-d}i{\-s}on-Wes{\-l}ey,
+ Reading, MA, USA,
+ 1986.
+
+\bibitem[Lam86]{Lamport:latex}
+ Leslie Lamport.\index{Lamport, Leslie}
+ \emph{\latex: A document preparation system}.
+ Ad{\-d}i{\-s}on-Wes{\-l}ey,
+ Reading, MA, USA,
+ 1986.
+
+\bibitem[\LaT{}98]{ltnews09}
+ \latex{}3~Project Team.
+ A new math accent.
+ \emph{\latex News}. Issue~9, June~1998.
+ Available from
+ \url{http://www.ctan.org/tex-archive/macros/latex/doc/ltnews09.pdf}
+ (also included in many \tex{} distributions).
+
+\bibitem[\LaT{}00]{fntguide}
+ \latex{}3~Project Team.
+ \latexE font selection,
+ January~30, 2000.
+ Available from
+ \url{http://www.ctan.org/tex-archive/macros/latex/doc/fntguide.ps}
+ (also included in many \tex{} distributions).
+\end{thebibliography}
+\endgroup
+
+\clearpage
+\addcontentsline{toc}{section}{Index}
+{\small\printindex}
+
+\end{document}