8000 Merge pull request #26142 from story645/mathtext_hebrew · matplotlib/matplotlib@b858e37 · GitHub
[go: up one dir, main page]

Skip to content

Commit b858e37

Browse files
authored
Merge pull request #26142 from story645/mathtext_hebrew
[Doc] alphabetize mathtext symbols by unicode
2 parents 1d0d255 + 7536890 commit b858e37

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

doc/sphinxext/math_symbol_table.py

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,27 @@
55

66
symbols = [
77
["Lower-case Greek",
8-
6,
9-
r"""\alpha \beta \gamma \chi \delta \epsilon \eta \iota \kappa
10-
\lambda \mu \nu \omega \phi \pi \psi \rho \sigma \tau \theta
11-
\upsilon \xi \zeta \digamma \varepsilon \varkappa \varphi
12-
\varpi \varrho \varsigma \vartheta""".split()],
8+
4,
9+
(r"\alpha", r"\beta", r"\gamma", r"\chi", r"\delta", r"\epsilon",
10+
r"\eta", r"\iota", r"\kappa", r"\lambda", r"\mu", r"\nu", r"\omega",
11+
r"\phi", r"\pi", r"\psi", r"\rho", r"\sigma", r"\tau", r"\theta",
12+
r"\upsilon", r"\xi", r"\zeta", r"\digamma", r"\varepsilon", r"\varkappa",
13+
r"\varphi", r"\varpi", r"\varrho", r"\varsigma", r"\vartheta")],
1314
["Upper-case Greek",
14-
8,
15-
r"""\Delta \Gamma \Lambda \Omega \Phi \Pi \Psi \Sigma \Theta
16-
\Upsilon \Xi \mho \nabla""".split()],
15+
4,
16+
(r"\Delta", r"\Gamma", r"\Lambda", r"\Omega", r"\Phi", r"\Pi", r"\Psi",
17+
r"\Sigma", r"\Theta", r"\Upsilon", r"\Xi")],
1718
["Hebrew",
1819
6,
19-
r"""\aleph \beth \daleth \gimel""".split()],
20+
(r"\aleph", r"\beth", r"\gimel", r"\daleth")],
2021
["Delimiters",
21-
6,
22+
5,
2223
_mathtext.Parser._delims],
2324
["Big symbols",
24-
6,
25+
5,
2526
_mathtext.Parser._overunder_symbols | _mathtext.Parser._dropsub_symbols],
2627
["Standard function names",
27-
6,
28+
5,
2829
{fr"\{fn}" for fn in _mathtext.Parser._function_names}],
2930
["Binary operation and relation symbols",
3031
4,
@@ -90,22 +91,30 @@
9091
\hslash \vdots \blacksquare \ldots \blacktriangle \ddots \sharp
9192
\prime \blacktriangledown \Im \flat \backprime \Re \natural
9293
\circledS \P \copyright \ss \circledR \S \yen \AA \checkmark \$
93-
\cent \triangle \QED \sinewave""".split()]
94+
\cent \triangle \QED \sinewave \nabla \mho""".split()]
9495
]
9596

9697

9798
def run(state_machine):
98-
def render_symbol(sym):
99+
100+
def render_symbol(sym, ignore_variant=False):
101+
if ignore_variant and sym != r"\varnothing":
102+
sym = sym.replace(r"\var", "\\")
99103
if sym.startswith("\\"):
100-
sym = sym[1:]
104+
sym = sym.lstrip("\\")
101105
if sym not in (_mathtext.Parser._overunder_functions |
102106
_mathtext.Parser._function_names):
103107
sym = chr(_mathtext_data.tex2uni[sym])
104108
return f'\\{sym}' if sym in ('\\', '|') else sym
105109

106110
lines = []
107111
for category, columns, syms in symbols:
108-
syms = sorted(list(syms))
112+
syms = sorted(syms,
113+
# Sort by Unicode and place variants immediately
114+
# after standard versions.
115+
key=lambda sym: (render_symbol(sym, ignore_variant=True),
116+
sym.startswith(r"\var")),
117+
reverse=(category == "Hebrew")) # Hebrew is rtl
109118
442D columns = min(columns, len(syms))
110119
lines.append("**%s**" % category)
111120
lines.append('')

0 commit comments

Comments
 (0)
0