That’s cool! I Didn’'t realize the Character Panel was i the menu.
In that case, its only a small code change for the notepad++ source to “borrow” the XML file from the “symbsearch” program, and add the same combo-box for selecting different character groups to the “character panel”. The notepad++ team could at a minimum add in a combobox group for “Greek characters” and one for “math symbols”. Heres the XML from symbsearch zip install file:
<?xml version=“1.0” encoding=“UTF-8”?>
<symbols>
<symb name=“Alpha” sign=“Α” cat=“Greek”></symb>
<symb name=“alpha” sign=“α” cat=“Greek”></symb>
<symb name=“Beta” sign=“Β” cat=“Greek”></symb>
<symb name=“beta” sign=“β” cat=“Greek”></symb>
…
<symb name=“N-ary Product” sign=“∏” cat=“Mathematics”></symb>
<symb name=“N-ary Coproduct” sign=“∐” cat=“Mathematics”></symb>
<symb name=“N-ary Summation” sign=“∑” cat=“Mathematics”></symb>
<symb name=“Minus Sign” sign=“−” cat=“Mathematics”></symb>
<symb name=“Division Sign” sign=“÷” cat=“Mathematics”></symb>
<symb name=“Square Root” sign=“√” cat=“Mathematics”></symb>
…
<symb name=“Leftwards Arrow” sign=“←” cat=“Arrows”></symb>
<symb name=“Upwards Arrow” sign=“↑” cat=“Arrows”></symb>
<symb name=“Rightwards Arrow” sign=“→” cat=“Arrows”></symb>
<symb name=“Downwards Arrow” sign=“↓” cat=“Arrows”></symb>
<symb name=“Left Right Arrow” sign=“↔” cat=“Arrows”></symb>
…
<symb name=“Smiley Happy Light” sign=“☺” cat=“Special”></symb>
<symb name=“Smiley Happy Dark” sign=“☻” cat=“Special”></symb>
<symb name=“Heart” sign=“♥” cat=“Special”></symb>
<symb name=“Diamonds” sign=“♦” cat=“Special”></symb>
<symb name=“Club” sign=“♣” cat=“Special”></symb>
<symb name=“Spade” sign=“♠” cat=“Special”></symb>
<symb name=“Bullet” sign=“•” cat=“Special”></symb>
The nice thing about using XML in notepad++ install directory for setting up “Character Panel” combobox groups is that it allows anybody to customize the characters that they want to use… notepad++ can just add the groupings that most people need such as math and greek letters for writing scientific documents in text docments with out using strange markup languages like Tex, or adding scientific/math comments in programming source files…
Actually, what i wanted is all the subscripts and superscript numbers and alphabet to be in one group… only problem i’ve been having with it is setting the correct monospace font to get it to print them… see python script for example:
import sys
on windows run from QtConsole for unicode
(Cmd console only support codepage characters)
At present (6/10/2017), superscripts/subscript chars
are best viewed with terminal/text-editor set to monospace font
“DejaVu Sans Mono”
“Consolas” works also, but is missing a few characters…
and, “Courier” has the worst support at present…
if int(sys.version[0]) != 3:
print(‘Aborted: Python 3.x required’)
sys.exit(1)
def table():
unicode_map = {
# superscript subscript
‘0’ : (‘\u2070’, ‘\u2080’ ),
‘1’ : (‘\u00B9’, ‘\u2081’ ),
‘2’ : (‘\u00B2’, ‘\u2082’ ),
‘3’ : (‘\u00B3’, ‘\u2083’ ),
‘4’ : (‘\u2074’, ‘\u2084’ ),
‘5’ : (‘\u2075’, ‘\u2085’ ),
‘6’ : (‘\u2076’, ‘\u2086’ ),
‘7’ : (‘\u2077’, ‘\u2087’ ),
‘8’ : (‘\u2078’, ‘\u2088’ ),
‘9’ : (‘\u2079’, ‘\u2089’ ),
‘a’ : (‘\u1d43’, ‘\u2090’ ),
‘b’ : (‘\u1d47’, ‘?’ ),
‘c’ : (‘\u1d9c’, ‘?’ ),
‘d’ : (‘\u1d48’, ‘?’ ),
‘e’ : (‘\u1d49’, ‘\u2091’ ),
‘f’ : (‘\u1da0’, ‘?’ ),
‘g’ : (‘\u1d4d’, ‘?’ ),
‘h’ : (‘\u02b0’, ‘\u2095’ ),
‘i’ : (‘\u2071’, ‘\u1d62’ ),
‘j’ : (‘\u02b2’, ‘\u2c7c’ ),
‘k’ : (‘\u1d4f’, ‘\u2096’ ),
‘l’ : (‘\u02e1’, ‘\u2097’ ),
‘m’ : (‘\u1d50’, ‘\u2098’ ),
‘n’ : (‘\u207f’, ‘\u2099’ ),
‘o’ : (‘\u1d52’, ‘\u2092’ ),
‘p’ : (‘\u1d56’, ‘\u209a’ ),
‘q’ : (‘?’, ‘?’ ),
‘r’ : (‘\u02b3’, ‘\u1d63’ ),
‘s’ : (‘\u02e2’, ‘\u209b’ ),
‘t’ : (‘\u1d57’, ‘\u209c’ ),
‘u’ : (‘\u1d58’, ‘\u1d64’ ),
‘v’ : (‘\u1d5b’, ‘\u1d65’ ),
‘w’ : (‘\u02b7’, ‘?’ ),
‘x’ : (‘\u02e3’, ‘\u2093’ ),
‘y’ : (‘\u02b8’, ‘?’ ),
‘z’ : (‘?’, ‘?’ ),
‘A’ : (‘\u1d2c’, ‘?’ ),
‘B’ : (‘\u1d2e’, ‘?’ ),
‘C’ : (‘?’, ‘?’ ),
‘D’ : (‘\u1d30’, ‘?’ ),
‘E’ : (‘\u1d31’, ‘?’ ),
‘F’ : (‘?’, ‘?’ ),
‘G’ : (‘\u1d33’, ‘?’ ),
‘H’ : (‘\u1d34’, ‘?’ ),
‘I’ : (‘\u1d35’, ‘?’ ),
‘J’ : (‘\u1d36’, ‘?’ ),
‘K’ : (‘\u1d37’, ‘?’ ),
‘L’ : (‘\u1d38’, ‘?’ ),
‘M’ : (‘\u1d39’, ‘?’ ),
‘N’ : (‘\u1d3a’, ‘?’ ),
‘O’ : (‘\u1d3c’, ‘?’ ),
‘P’ : (‘\u1d3e’, ‘?’ ),
‘Q’ : (‘?’, ‘?’ ),
‘R’ : (‘\u1d3f’, ‘?’ ),
‘S’ : (‘?’, ‘?’ ),
‘T’ : (‘\u1d40’, ‘?’ ),
‘U’ : (‘\u1d41’, ‘?’ ),
‘V’ : (‘\u2c7d’, ‘?’ ),
‘W’ : (‘\u1d42’, ‘?’ ),
‘X’ : (‘?’, ‘?’ ),
‘Y’ : (‘?’, ‘?’ ),
‘Z’ : (‘?’, ‘?’ ),
‘+’ : (‘\u207A’, ‘\u208A’ ),
‘-’ : (‘\u207B’, ‘\u208B’ ),
‘=’ : (‘\u207C’, ‘\u208C’ ),
‘(’ : (‘\u207D’, ‘\u208D’ ),
‘)’ : (‘\u207E’, ‘\u208E’ ),
‘:alpha’ : (‘\u1d45’, ‘?’ ),
‘:beta’ : (‘\u1d5d’, ‘\u1d66’ ),
‘:gamma’ : (‘\u1d5e’, ‘\u1d67’ ),
‘:delta’ : (‘\u1d5f’, ‘?’ ),
‘:epsilon’ : (‘\u1d4b’, ‘?’ ),
‘:theta’ : (‘\u1dbf’, ‘?’ ),
‘:iota’ : (‘\u1da5’, ‘?’ ),
‘:pho’ : (‘?’, ‘\u1d68’ ),
‘:phi’ : (‘\u1db2’, ‘?’ ),
‘:psi’ : (‘\u1d60’, ‘\u1d69’ ),
‘:chi’ : (‘\u1d61’, ‘\u1d6a’ ),
‘:coffee’ : (‘\u2615’, ‘\u2615’ )
}
keys = sorted(unicode_map.keys())
for key in keys:
spr = "X" + unicode_map[key][0]
sub = "X" + unicode_map[key][1]
if (spr == "X?"): spr = ""
if (sub == "X?"): sub = ""
print('%-15s %s %s' % (key, spr, sub))
table()