8000 alphabetize greek and hebrew, closes #26140 · matplotlib/matplotlib@3830616 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3830616

Browse files
story645oscargus
andcommitted
alphabetize greek and hebrew, closes #26140
Co-authored-by: Oscar Gustafsson <oscar.gustafsson@gmail.com>
1 parent f329eb8 commit 3830616

File tree

1 file changed

+31
-19
lines changed

1 file changed

+31
-19
lines changed

doc/sphinxext/math_symbol_table.py

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,19 @@
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",
2122
6,
2223
_mathtext.Parser._delims],
@@ -90,22 +91,33 @@
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

97-
def run(state_machine):
98-
def render_symbol(sym):
99-
if sym.startswith("\\"):
100-
sym = sym[1:]
101-
if sym not in (_mathtext.Parser._overunder_functions |
102-
_mathtext.Parser._function_names):
103-
sym = chr(_mathtext_data.tex2uni[sym])
104-
return f'\\{sym}' if sym in ('\\', '|') else sym
98+
def render_symbol(sym):
99+
if sym.startswith("\\"):
100+
sym = sym[1:]
101+
if sym not in (_mathtext.Parser._overunder_functions |
102+
_mathtext.Parser._function_names):
103+
sym = chr(_mathtext_data.tex2uni[sym])
104+
return f'\\{sym}' if sym in ('\\', '|') else sym
105+
105106

107+
def run(state_machine):
106108
lines = []
107109
for category, columns, syms in symbols:
108-
syms = sorted(list(syms))
110+
# special case language chars to sort by alphabet
111+
if category == "Hebrew": # hebrew is rtl
112+
syms = sorted(syms, key=render_symbol, reverse=True)
113+
elif category == "Upper-case Greek":
114+
syms = sorted(syms, key=render_symbol)
115+
elif category == "Lower-case Greek":
116+
syms = sorted(syms, key=lambda sym: ord(render_symbol(sym))
117+
if not sym.startswith(r"\var") else
118+
ord(render_symbol(sym.replace(r"var", r""))) + .5)
119+
else:
120+
syms = sorted(list(syms))
109121
columns = min(columns, len(syms))
110122
lines.append("**%s**" % category)
111123
lines.append('')

0 commit comments

Comments
 (0)
0