# -*- mode: Perl -*-
# /=====================================================================\ #
# |  txfonts                                                            | #
# | Implementation for LaTeXML                                          | #
# |=====================================================================| #
# | Part of LaTeXML:                                                    | #
# |  Public domain software, produced as part of work done by the       | #
# |  United States Government & not subject to copyright in the US.     | #
# |---------------------------------------------------------------------| #
# | Bruce Miller <bruce.miller@nist.gov>                        #_#     | #
# | http://dlmf.nist.gov/LaTeXML/                              (o o)    | #
# \=========================================================ooo==U==ooo=/ #
package LaTeXML::Package::Pool;
use strict;
use warnings;
use LaTeXML::Package;

RequirePackage('amssymb');

#================================================================================
# See LaTeX Symbol list, Table 27.

DefMath('\circledbar',    "\x{29B6}");
DefMath('\circledbslash', "\x{29B8}");
DefMath('\circledvee',    "\x{2228}\x{20DD}");    # overlay circle?
DefMath('\circledwedge',  "\x{2227}\x{20DD}");    # overlay cirxle?
DefMath('\invamp',        "\x{214B}");
# DefMath('\medbullet',     "\x{}");
# DefMath('\medcirc',       "\x{}");
# DefMath('\sqcapplus',     "\x{}");
# DefMath('\sqcupplus',     "\x{}");

# Not in table, but apparently defined?
DefMath('\boxast',       "\x{29C6}");
DefMath('\boxbar',       "\x{25EB}");    # ?
DefMath('\boxbslash',    "\x{29C4}");
DefMath('\boxslash',     "\x{29C5}");
DefMath('\circleddot',   "\x{2299}");
DefMath('\circledminus', "\x{2296}");
DefMath('\circledplus',  "\x{2295}");
DefMath('\circledslash', "\x{2298}");
DefMath('\circledtimes', "\x{2297}");

#================================================================================
# See LaTeX Symbol list, Table 28.
DefMath('\fint', "\x{2A0F}", meaning => 'integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\fintop', "\x{2A0F}", meaning => 'integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
DefMath('\idotsint', "\x{222B}\x{22EF}\x{222B}", meaning => 'multiple-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\idotsintop', "\x{222B}\x{22EF}\x{222B}", meaning => 'multiple-integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
DefMath('\iint', "\x{222C}", meaning => 'double-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\iintop', "\x{222C}", meaning => 'double-integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
DefMath('\iiint', "\x{222D}", meaning => 'triple-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\iiintop', "\x{222D}", meaning => 'triple-integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
DefMath('\iiiint', "\x{2A0C}", meaning => 'quadruple-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\iiiintop', "\x{2A0C}", meaning => 'quadruple-integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);

# Following made with combining clockwise or counter clockwise overlay
DefMath('\oiiintclockwise', "\x{222D}\x{20D9}",
  meaning   => 'triple-clockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\oiiintclockwiseop', "\x{222D}\x{20D9}",
  meaning   => 'triple-clockwise-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                               mathstyle => \&doVariablesizeOp);
DefMath('\varoiiintclockwise', "\x{222D}\x{20D9}",
  meaning   => 'triple-clockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\varoiiintclockwiseop', "\x{222D}\x{20D9}",
  meaning   => 'triple-clockwise-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                               mathstyle => \&doVariablesizeOp);
DefMath('\oiiintctrclockwise', "\x{222D}\x{20DA}",
  meaning   => 'triple-counterclockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\oiiintctrclockwiseop', "\x{222D}\x{20DA}",
  meaning   => 'triple-counterclockwise-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                                      mathstyle => \&doVariablesizeOp);
DefMath('\varoiiintctrclockwise', "\x{222D}\x{20DA}",
  meaning   => 'triple-counterclockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\varoiiintctrclockwiseop', "\x{222D}\x{20DA}",
  meaning   => 'triple-counterclockwise-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                                      mathstyle => \&doVariablesizeOp);

DefMath('\oiiint', "\x{2230}",
  meaning   => 'triple-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\oiiintop', "\x{2230}",
  meaning   => 'triple-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                     mathstyle => \&doVariablesizeOp);
DefMath('\oiintclockwise', "\x{222C}\x{20D9}",
  meaning   => 'double-clockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\oiintclockwiseop', "\x{222C}\x{20D9}",
  meaning   => 'double-clockwise-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                               mathstyle => \&doVariablesizeOp);
DefMath('\varoiintclockwise', "\x{222C}\x{20D9}",
  meaning   => 'double-clockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\varoiintclockwiseop', "\x{222C}\x{20D9}",
  meaning   => 'double-clockwise-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                               mathstyle => \&doVariablesizeOp);
DefMath('\oiintctrclockwise', "\x{222C}\x{20DA}",
  meaning   => 'double-counterclockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\oiintctrclockwiseop', "\x{222C}\x{20DA}",
  meaning   => 'double-counterclockwise-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                                      mathstyle => \&doVariablesizeOp);
DefMath('\varoiintctrclockwise', "\x{222C}\x{20DA}",
  meaning   => 'double-counterclockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\varoiintctrclockwiseop', "\x{222C}\x{20DA}",
  meaning   => 'double-counterclockwise-contour-integral', role      => 'INTOP',
  scriptpos => 'mid',                                      mathstyle => \&doVariablesizeOp);

DefMath('\oiint', "\x{222F}", meaning => 'double-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\oiintop', "\x{222F}", meaning => 'double-contour-integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
DefMath('\ointclockwise', "\x{2232}", meaning => 'clockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\ointclockwiseop', "\x{2232}", meaning => 'clockwise-contour-integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
DefMath('\ointctrclockwise', "\x{2233}", meaning => 'counter-clockwise-contour-integral',
  role => 'INTOP', mathstyle => \&doVariablesizeOp);
DefMath('\ointctrclockwiseop', "\x{2233}", meaning => 'counter-clockwise-contour-integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
DefMath('\varointclockwise', "\x{2232}", meaning => 'clockwise-contour-integral', role => 'INTOP',
  mathstyle => \&doVariablesizeOp);
DefMath('\varointclockwiseop', "\x{2232}", meaning => 'clockwise-contour-integral', role => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
DefMath('\varointctrclockwise', "\x{2233}", meaning => 'counter-clockwise-contour-integral',
  role => 'INTOP', mathstyle => \&doVariablesizeOp);
DefMath('\varointctrclockwiseop', "\x{2233}", meaning => 'counter-clockwise-contour-integral',
  role      => 'INTOP',
  scriptpos => 'mid', mathstyle => \&doVariablesizeOp);
# \sqiiint
# \sqiint
DefMath('\sqint', "\x{2A16}", role => 'INTOP', meaning => 'square-contour-integral',
  mathstyle => \&doVariablesizeOp);
# \varprod

DefMathI('\bigsqcap', undef, "\x{2A05}",
  role      => 'SUMOP',
  scriptpos => \&doScriptpos,
  mathstyle => \&doVariablesizeOp);

#================================================================================
# See LaTeX Symbol list, Table 29 --- also in amsfonts

#================================================================================
# See LaTeX Symbol list, Table 34.
DefMath('\boxdotleft',      "\x{2190}\x{22A1}", role => 'RELOP');
DefMath('\boxdotLeft',      "\x{21D0}\x{22A1}", role => 'RELOP');
DefMath('\boxdotright',     "\x{22A1}\x{2192}", role => 'RELOP');
DefMath('\boxdotRight',     "\x{22A1}\x{21D2}", role => 'RELOP');
DefMath('\boxleft',         "\x{2190}\x{25A1}", role => 'RELOP');
DefMath('\boxLeft',         "\x{21D0}\x{25A1}", role => 'RELOP');
DefMath('\boxright',        "\x{25A1}\x{2192}", role => 'RELOP');
DefMath('\boxRight',        "\x{25A1}\x{21D2}", role => 'RELOP');
DefMath('\circleddotleft',  "\x{2190}\x{2299}", role => 'RELOP');
DefMath('\circleddotright', "\x{2299}\x{2192}", role => 'RELOP');
DefMath('\circledgtr',      "\x{29C1}",         role => 'RELOP');
DefMath('\circledless',     "\x{29C0}",         role => 'RELOP');
DefMath('\circleleft',      "\x{2190}\x{25CB}", role => 'RELOP');
DefMath('\circleright',     "\x{25CB}\x{2192}", role => 'RELOP');
DefMath('\colonapprox',     ":\x{2248}",        role => 'RELOP');
DefMath('\Colonapprox',     "::\x{2248}",       role => 'RELOP');
DefMath('\coloneq',         ":-",               role => 'RELOP');
DefMath('\Coloneq',         "::-",              role => 'RELOP');
DefMath('\coloneqq',        "\x{2254}",         role => 'RELOP');
DefMath('\Coloneqq',        "\x{2A74}",         role => 'RELOP');
DefMath('\colonsim',        ":\x{223C}",        role => 'RELOP');
DefMath('\Colonsim',        "::\x{223C}",       role => 'RELOP');
# \dashleftrightarrow
DefMath('\Diamonddotleft',  "\x{2190}\x{27D0}", role => 'RELOP');
DefMath('\DiamonddotLeft',  "\x{21D0}\x{27D0}", role => 'RELOP');
DefMath('\Diamonddotright', "\x{27D0}\x{2192}", role => 'RELOP');
DefMath('\DiamonddotRight', "\x{27D0}\x{21D2}", role => 'RELOP');
DefMath('\Diamondleft',     "\x{2190}\x{25C7}", role => 'RELOP');
DefMath('\DiamondLeft',     "\x{21D0}\x{25C7}", role => 'RELOP');
DefMath('\Diamondright',    "\x{25C7}\x{2192}", role => 'RELOP');
DefMath('\DiamondRight',    "\x{25C7}\x{21D2}", role => 'RELOP');
DefMath('\Eqcolon',         "-::",              role => 'RELOP');
DefMath('\eqcolon',         "-:",               role => 'RELOP');
DefMath('\Eqqcolon',        "=::",              role => 'RELOP');
DefMath('\eqqcolon',        "\x{2255}",         role => 'RELOP');
DefMath('\eqsim',           "\x{2242}",         role => 'RELOP');
DefMath('\leftsquigarrow',  "\x{21DC}",         role => 'RELOP');
DefMath('\lJoin',           "\x{22C9}",         role => 'RELOP');

DefMath('\lrtimes',        "\x{22C8}", role => 'RELOP');    # ?
DefMath('\Join',           "\x{22C8}", role => 'RELOP');
DefMath('\lrJoin',         "\x{22C8}", role => 'RELOP');
DefMath('\Mappedfromchar', "\x{2AE4}", role => 'RELOP');
DefMath('\mappedfromchar', "\x{2ADE}", role => 'RELOP');
DefMath('\mmapstochar',    "\x{2AE3}", role => 'RELOP');
DefMath('\Mmapstochar',    "\x{2AE5}", role => 'RELOP');
DefMath('\multimapboth',   "\x{29DF}", role => 'RELOP');
#DefMath('\multimapbothvert',    "\x{}",             role=>'RELOP');
#DefMath('\multimapdot',         "\x{}",             role=>'RELOP');
#DefMath('\multimapdotboth',     "\x{}",             role=>'RELOP');
DefMath('\multimapdotbothA', "\x{22B6}", role => 'RELOP');
#DefMath('\multimapdotbothAvert',"\x{}",             role=>'RELOP');
DefMath('\multimapdotbothB', "\x{22B7}", role => 'RELOP');
#DefMath('\multimapdotbothBvert',"\x{}",             role=>'RELOP');
#DefMath('\multimapdotinv',      "\x{}",             role=>'RELOP');
DefMath('\multimapinv', "\x{27DC}",         role    => 'RELOP');
DefMath('\napproxeq',   "\x{224A}\x{0338}", meaning => 'not-approximately-equals', role => 'RELOP');
DefMath('\nasymp',      "\x{226D}",         meaning => 'not-equivalent-to',        role => 'RELOP');
DefMath('\nbacksim',    "\x{223D}\x{0337}", role    => 'RELOP');
DefMath('\nbacksimeq',  "\x{224C}\x{0338}", role    => 'RELOP');
DefMath('\nBumpeq',     "\x{224E}\x{0338}", role    => 'RELOP');
DefMath('\nbumpeq',     "\x{224F}\x{0338}", role    => 'RELOP');
DefMath('\Nearrow',     "\x{21D7}",         role    => 'ARROW');
DefMath('\nequiv',      "\x{2262}",         meaning => 'not-equivalent-to', role => 'RELOP');
DefMath('\ngg',         "\x{226B}\x{0338}", role    => 'RELOP');
DefMath('\ngtrapprox', "\x{2A86}\x{0338}",
  meaning => 'not-greater-than-nor-approximately-equals', role => 'RELOP');
DefMath('\ngtrless', "\x{2278}",
  meaning => 'not-greater-than-nor-less-than', role => 'RELOP');
DefMath('\ngtrsim', "\x{2275}",
  meaning => 'not-greater-than-nor-equivalent-to', role => 'RELOP');
DefMath('\nlessapprox', "\x{2A85}\x{0338}",
  meaning => 'not-less-than-nor-approximately-equals', role => 'RELOP');
DefMath('\nlessgtr', "\x{2279}",
  meaning => 'not-less-than-nor-greater-than', role => 'RELOP');
DefMath('\nlesssim', "\x{2274}",
  meaning => 'not-less-than-nor-equivalent-to', role => 'RELOP');
DefMath('\nll', "\x{226A}\x{0338}",
  meaning => 'not-much-less-than', role => 'RELOP');
DefMath('\notin', "\x{2209}",
  meaning => 'not-element-of', role => 'RELOP');
DefMath('\notni', "\x{220C}",
  meaning => 'not-contains', role => 'RELOP');
DefMath('\notowns', "\x{220C}",
  meaning => 'not-contains', role => 'RELOP');

DefMath('\nprecapprox', "\x{2AB7}\x{0338}",
  meaning => 'not-precedes-nor-approximately-equals', role => 'RELOP');
DefMath('\npreccurlyeq', "\x{22E0}",
  meaning => 'not-precedes-nor-equals', role => 'RELOP');

DefMath('\npreceqq', "\x{2AB3}\x{0338}", role => 'RELOP',
  meaning => 'not-precedes-nor-equals');
DefMath('\nprecsim', "\x{227E}\x{0338}", role => 'RELOP',
  meaning => 'not-precedes-nor-equivalent-to');
DefMath('\nsimeq', "\x{2243}\x{0338}", role => 'RELOP',
  meaning => 'not-equivalent-to-nor-equals');
DefMath('\nsqsubset', "\x{228F}\x{0338}", role => 'RELOP',
  meaning => 'not-square-image-of');
DefMath('\nsqsubseteq', "\x{22E2}", role => 'RELOP',
  meaning => 'not-square-image-of-nor-equals');
DefMath('\nsqsupset', "\x{2290}\x{0338}", role => 'RELOP',
  meaning => 'not-square-original-of');
DefMath('\nsqsupseteq', "\x{22E3}", role => 'RELOP',
  meaning => 'not-square-original-of-nor-equals');
DefMath('\nSubset', "\x{22D0}\x{0338}", role => 'RELOP',
  meaning => 'not-double-subset-of');
DefMath('\nsubseteqq', "\x{2AC5}\x{0338}", role => 'RELOP',
  meaning => 'not-subset-nor-equals');
DefMath('\nsuccapprox', "\x{2AB8}\x{0338}", role => 'RELOP',
  meaning => 'not-succeeds-nor-approximately-equals');
DefMath('\nsucccurlyeq', "\x{22E1}", role => 'RELOP',
  meaning => 'not-succeeds-nor-equals');
DefMath('\nsucceqq', "\x{2AB4}\x{0338}", role => 'RELOP',
  meaning => 'not-succeeds-nor-equals');
DefMath('\nsuccsim', "\x{227F}\x{0338}", role => 'RELOP',
  meaning => 'not-succeeds-nor-equivalent-to');
DefMath('\nSupset', "\x{22D1}\x{0338}", role => 'RELOP',
  meaning => 'not-double-superset-of');
DefMath('\nthickapprox', "\x{2249}", role => 'RELOP',
  meaning => 'not-approximately-equals');
DefMath('\ntwoheadleftarrow',  "\x{2B34}", role => 'RELOP');
DefMath('\ntwoheadrightarrow', "\x{2900}", role => 'RELOP');
# DefMath('\nvparallel',         "\x{}",             role=>'RELOP');
# DefMath('\nvparallelinv',      "\x{}",             role=>'RELOP');
DefMath('\nVdash', "\x{22AE}", role => 'RELOP',
  meaning => 'not-forces');
DefMath('\Nwarrow', "\x{21D6}", role => 'ARROW');
# DefMath('\openJoin',           "\x{}",             role=>'RELOP');
# DefMath('\opentimes',          "\x{}",             role=>'RELOP');
DefMath('\Perp', "\x{2AEB}", role => 'RELOP');
DefMath('\preceqq', "\x{2AB3}", role => 'RELOP',
  meaning => 'precedes-or-equals');
DefMath('\precneqq', "\x{2AB5}", role => 'RELOP',
  meaning => 'precedes-and-not-equals');
DefMath('\rJoin', "\x{22CA}", role => 'RELOP',
  meaning => 'right-normal-factor-semidirect-product');
DefMath('\Rrightarrow', "\x{21DB}",         role => 'RELOP');
DefMath('\Searrow',     "\x{21D8}",         role => 'ARROW');
DefMath('\strictfi',    "\x{297C}",         role => 'RELOP');
DefMath('\strictif',    "\x{297D}",         role => 'RELOP');
DefMath('\strictiff',   "\x{297C}\x{297D}", role => 'RELOP');
DefMath('\succeqq', "\x{2AB4}", role => 'RELOP',
  meaning => 'succeeds-or-equals');
DefMath('\succneqq', "\x{2AB6}", role => 'RELOP',
  meaning => 'succeeds-and-not-equals');
DefMath('\Swarrow',     "\x{21D9}", role => 'ARROW');
DefMath('\varparallel', "\x{2AFD}", role => 'RELOP');
# DefMath('\varparallelinv',     "\x{}",             role=>'RELOP');
# DefMath('\VvDash',             "\x{}",             role=>'RELOP');

# Not in the table?
DefMath('\napprox', "\x{2249}", meaning => 'not-approximately-equals', role => 'RELOP');
DefMath('\nsubset', "\x{2284}", meaning => 'not-subset-of',            role => 'RELOP');
DefMath('\nsupset', "\x{2285}", meaning => 'not-superset-of',          role => 'RELOP');

#================================================================================
# LaTeX Symbol List, Table 38. that are apparently in txfonts
DefMath('\Longmappedfrom', "\x{27FD}", role => 'ARROW');
DefMath('\Longmapsto',     "\x{27FE}", role => 'ARROW');
#DefMath('\Longmmappedfrom',      "\x{}",         role=>'ARROW');
#DefMath('\Longmmasto',           "\x{}",         role=>'ARROW');
DefMath('\Mappedfrom', "\x{2906}", role => 'ARROW');
DefMath('\Mapsto',     "\x{2907}", role => 'ARROW');
# \Mapstochar ??
#DefMath('\Mmappedfrom',          "\x{}",         role=>'ARROW');
# \Mmappedfromchar
#DefMath('\Mmapsto',              "\x{}",         role=>'ARROW');

#================================================================================
# LaTeX Symbol List, Table 43.

DefMath('\alphaup', "\x{03B1}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER ALPHA
DefMath('\betaup', "\x{03B2}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER BETA
DefMath('\gammaup', "\x{03B3}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER GAMMA
DefMath('\deltaup', "\x{03B4}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER DELTA
DefMath('\epsilonup', "\x{03F5}", font => { shape => 'upright', forceshape => 1 }); # GREEK LUNATE EPSILON SYMBOL
DefMath('\varepsilonup', "\x{03B5}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER EPSILON
DefMath('\zetaup', "\x{03B6}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER ZETA
DefMath('\etaup', "\x{03B7}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER ETA
DefMath('\thetaup', "\x{03B8}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER THETA
DefMath('\varthetaup', "\x{03D1}", font => { shape => 'upright', forceshape => 1 }); # GREEK THETA SYMBOL
DefMath('\iotaup', "\x{03B9}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER IOTA
DefMath('\kappaup', "\x{03BA}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER KAPPA
DefMath('\lambdaup', "\x{03BB}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER LAMDA
DefMath('\muup', "\x{03BC}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER MU
DefMath('\nuup', "\x{03BD}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER NU
DefMath('\xiup', "\x{03BE}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER XI
DefMath('\piup', "\x{03C0}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER PI
DefMath('\varpiup', "\x{03D6}", font => { shape => 'upright', forceshape => 1 });  # GREEK PI SYMBOL
DefMath('\rhoup', "\x{03C1}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER RHO
DefMath('\varrhoup', "\x{03F1}", font => { shape => 'upright', forceshape => 1 }); # GREEK RHO SYMBOL
DefMath('\sigmaup', "\x{03C3}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER SIGMA
DefMath('\varsigmaup', "\x{03C2}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER FINAL SIGMA
DefMath('\tauup', "\x{03C4}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER TAU
DefMath('\upsilonup', "\x{03C5}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER UPSILON
DefMath('\phiup', "\x{03D5}", font => { shape => 'upright', forceshape => 1 });   # GREEK PHI SYMBOL
DefMath('\varphiup', "\x{03C6}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER PHI
DefMath('\chiup', "\x{03C7}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER CHI
DefMath('\psiup', "\x{03C8}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER PSI
DefMath('\omegaup', "\x{03C9}", font => { shape => 'upright', forceshape => 1 }); # GREEK SMALL LETTER OMEGA
# Where did I think I found these?
# DefMath('\Gammaup',     "\x{0393}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER GAMMA
# DefMath('\Deltaup',     "\x{0394}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER DELTA
# DefMath('\Thetaup',     "\x{0398}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER THETA
# DefMath('\Lambdaup',    "\x{039B}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER LAMDA
# DefMath('\Xiup',        "\x{039E}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER XI
# DefMath('\Piup',        "\x{03A0}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER PI
# DefMath('\Sigmaup',     "\x{03A3}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER SIGMA
# DefMath('\Upsilonup',   "\x{03A5}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER UPSILON
# DefMath('\Phiup',       "\x{03A6}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER PHI
# DefMath('\Psiup',       "\x{03A8}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER PSI
# DefMath('\Omegaup',     "\x{03A9}", font=>{shape=>'upright',forceshape=>1}); # GREEK CAPITAL LETTER OMEGA

#================================================================================
# LaTeX Symbol List, Table 44
#
DefMath('\varg', "\x{210A}");
# DefMath('\varv', "\x{}");
# DefMath('\varw', "\x{}");
# DefMath('\vary', "\x{}");

#================================================================================
# LaTeX Symbol List, Table 61
DefMath('\Diamondblack', "\x{25C6}");
DefMath('\Diamonddot',   "\x{27D0}");
# DefMath('\lambdabar', "\x{}");
# DefMath('\lambdaslash', "\x{}");
DefMath('\mathcent',       UTF(0xA2));
DefMath('\mathsterling',   UTF(0xA3));
DefMath('\varclubsuit',    "\x{2667}");
DefMath('\vardiamondsuit', "\x{2666}");
DefMath('\varheartsuit',   "\x{2665}");
DefMath('\varspadesuit',   "\x{2664}");

#================================================================================
DefMath('\llbracket', "\x{27E6}", role => 'OPEN');
DefMath('\rrbracket', "\x{27E7}", role => 'CLOSE');
# \lbag, \rbag ?
#================================================================================

1;