@@ -1685,13 +1685,12 @@ class _MathStyle(enum.Enum):
1685
1685
liminf sin cos exp limsup sinh cosh gcd ln sup cot hom log tan
1686
1686
coth inf max tanh""" .split ())
1687
1687
1688
- _ambi_delim = set (r"""
1688
+ _ambi_delims = set (r"""
1689
1689
| \| / \backslash \uparrow \downarrow \updownarrow \Uparrow
1690
1690
\Downarrow \Updownarrow . \vert \Vert \\|""" .split ())
1691
-
1692
- _left_delim = set (r"( [ \{ < \lfloor \langle \lceil" .split ())
1693
-
1694
- _right_delim = set (r") ] \} > \rfloor \rangle \rceil" .split ())
1691
+ _left_delims = set (r"( [ \{ < \lfloor \langle \lceil" .split ())
1692
+ _right_delims = set (r") ] \} > \rfloor \rangle \rceil" .split ())
1693
+ _delims = _left_delims | _right_delims | _ambi_delims
1695
1694
1696
1695
def __init__ (self ):
1697
1696
p = types .SimpleNamespace ()
@@ -1726,9 +1725,7 @@ def set_names_and_parse_actions():
1726
1725
Optional (r"\math" + oneOf (self ._fontnames )("font" )) + "{" )
1727
1726
p .end_group = Literal ("}" )
1728
1727
1729
- p .ambi_delim = oneOf (self ._ambi_delim )
1730
- p .left_delim = oneOf (self ._left_delim )
1731
- p .right_delim = oneOf (self ._right_delim )
1728
+ p .delim = oneOf (self ._delims )
1732
1729
1733
1730
set_names_and_parse_actions () # for root definitions.
1734
1731
@@ -1788,8 +1785,8 @@ def set_names_and_parse_actions():
1788
1785
| Error (r"Expected \binom{num}{den}" ))
1789
1786
1790
1787
p .genfrac <<= r"\genfrac" - (
1791
- "{" + Optional (p .ambi_delim | p . left_delim )("ldelim" ) + "}"
1792
- + "{" + Optional (p .ambi_delim | p . right_delim )("rdelim" ) + "}"
1788
+ "{" + Optional (p .delim )("ldelim" ) + "}"
1789
+ + "{" + Optional (p .delim )("rdelim" ) + "}"
1793
1790
+ "{" + p .float_literal ("rulesize" ) + "}"
1794
1791
+ p .simple_group ("style" )
1795
1792
+ p .required_group ("num" )
@@ -1854,13 +1851,9 @@ def set_names_and_parse_actions():
1854
1851
)
1855
1852
1856
1853
p .auto_delim <<= (
1857
- r"\left"
1858
- - ((p .left_delim | p .ambi_delim )("left" )
1859
- | Error ("Expected a delimiter" ))
1854
+ r"\left" - (p .delim ("left" ) | Error ("Expected a delimiter" ))
1860
1855
+ ZeroOrMore (p .simple | p .auto_delim )("mid" )
1861
- + r"\right"
1862
- - ((p .right_delim | p .ambi_delim )("right" )
1863
- | Error ("Expected a delimiter" ))
1856
+ + r"\right" - (p .delim ("right" ) | Error ("Expected a delimiter" ))
1864
1857
)
1865
1858
1866
1859
# Leaf definitions.
@@ -1982,7 +1975,7 @@ def symbol(self, s, loc, toks):
1982
1975
# Binary operators at start of string should not be spaced
1983
1976
if (c in self ._binary_operators and
1984
1977
(len (s [:loc ].split ()) == 0 or prev_char == '{' or
1985
- prev_char in self ._left_delim )):
1978
+ prev_char in self ._left_delims )):
1986
1979
return [char ]
1987
1980
else :
1988
1981
return [Hlist ([self ._make_space (0.2 ),
@@ -2087,8 +2080,7 @@ def operatorname(self, s, loc, toks):
2087
2080
if isinstance (name , ParseResults ):
2088
2081
next_char_loc += len ('operatorname{}' )
2089
2082
next_char = next ((c for c in s [next_char_loc :] if c != ' ' ), '' )
2090
- delimiters = self ._left_delim | self ._ambi_delim | self ._right_delim
2091
- delimiters |= {'^' , '_' }
2083
+ delimiters = self ._delims | {'^' , '_' }
2092
2084
if (next_char not in delimiters and
2093
2085
name not in self ._overunder_functions ):
2094
2086
# Add thin space except when followed by parenthesis, bracket, etc.
0 commit comments