|
5 | 5 |
|
6 | 6 | symbols = [
|
7 | 7 | ["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")], |
13 | 14 | ["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")], |
17 | 18 | ["Hebrew",
|
18 | 19 | 6,
|
19 |
| - r"""\aleph \beth \daleth \gimel""".split()], |
| 20 | + (r"\aleph", r"\beth", r"\gimel", r"\daleth")], |
20 | 21 | ["Delimiters",
|
21 |
| - 6, |
| 22 | + 5, |
22 | 23 | _mathtext.Parser._delims],
|
23 | 24 | ["Big symbols",
|
24 |
| - 6, |
| 25 | + 5, |
25 | 26 | _mathtext.Parser._overunder_symbols | _mathtext.Parser._dropsub_symbols],
|
26 | 27 | ["Standard function names",
|
27 |
| - 6, |
| 28 | + 5, |
28 | 29 | {fr"\{fn}" for fn in _mathtext.Parser._function_names}],
|
29 | 30 | ["Binary operation and relation symbols",
|
30 | 31 | 4,
|
|
90 | 91 | \hslash \vdots \blacksquare \ldots \blacktriangle \ddots \sharp
|
91 | 92 | \prime \blacktriangledown \Im \flat \backprime \Re \natural
|
92 | 93 | \circledS \P \copyright \ss \circledR \S \yen \AA \checkmark \$
|
93 |
| - \cent \triangle \QED \sinewave""".split()] |
| 94 | + \cent \triangle \QED \sinewave \nabla \mho""".split()] |
94 | 95 | ]
|
95 | 96 |
|
96 | 97 |
|
97 | 98 | 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", "\\") |
99 | 103 | if sym.startswith("\\"):
|
100 |
| - sym = sym[1:] |
| 104 | + sym = sym.lstrip("\\") |
101 | 105 | if sym not in (_mathtext.Parser._overunder_functions |
|
102 | 106 | _mathtext.Parser._function_names):
|
103 | 107 | sym = chr(_mathtext_data.tex2uni[sym])
|
104 | 108 | return f'\\{sym}' if sym in ('\\', '|') else sym
|
105 | 109 |
|
106 | 110 | lines = []
|
107 | 111 | 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 |
109 | 118 |
442D
columns = min(columns, len(syms))
|
110 | 119 | lines.append("**%s**" % category)
|
111 | 120 | lines.append('')
|
|
0 commit comments