On Thu, Aug 23, 2001 at 11:07:20AM +0200, Andre Poenitz wrote:
> On Thu, Aug 23, 2001 at 11:37:16AM +0300, Dekel Tsur wrote:
> > It is not hard to generate the information we need for all latex symbols
> > from the latex files (fontmath.ltx and amssymb.sty).
> 
> Looks like you are volunteering. 
> 
> Would be nice to have the symbols in some kind of text file
> 
>   latexname1  in_X_symbol_font?  X_symbol_code  other_font?  other_code
>   latexname2  in_X_symbol_font?  X_symbol_code  other_font?  other_code
> 
> or something like that.

Here is the list with only ps symbol information.
I can add the X symbol font information if you need it.

PS: The script doesn't use the 2nd argument to DeclareMathSymbol which
defines the type of the symbol. Do you need this information in the list ?
# Generated from fontmath.ltx

alpha              cmm  0b
beta               cmm  0c
gamma              cmm  0d
delta              cmm  0e
epsilon            cmm  0f
zeta               cmm  10
eta                cmm  11
theta              cmm  12
iota               cmm  13
kappa              cmm  14
lambda             cmm  15
mu                 cmm  16
nu                 cmm  17
xi                 cmm  18
pi                 cmm  19
rho                cmm  1a
sigma              cmm  1b
tau                cmm  1c
upsilon            cmm  1d
phi                cmm  1e
chi                cmm  1f
psi                cmm  20
omega              cmm  21
varepsilon         cmm  22
vartheta           cmm  23
varpi              cmm  24
varrho             cmm  25
varsigma           cmm  26
varphi             cmm  27
Gamma              cmr  00
Delta              cmr  01
Theta              cmr  02
Lambda             cmr  03
Xi                 cmr  04
Pi                 cmr  05
Sigma              cmr  06
Upsilon            cmr  07
Phi                cmr  08
Psi                cmr  09
Omega              cmr  0a
aleph              cmsy 40
imath              cmm  7b
jmath              cmm  7c
ell                cmm  60
wp                 cmm  7d
Re                 cmsy 3c
Im                 cmsy 3d
partial            cmm  40
infty              cmsy 31
prime              cmsy 30
emptyset           cmsy 3b
nabla              cmsy 72
top                cmsy 3e
bot                cmsy 3f
triangle           cmsy 34
forall             cmsy 38
exists             cmsy 39
neg                cmsy 3a
flat               cmm  5b
natural            cmm  5c
sharp              cmm  5d
clubsuit           cmsy 7c
diamondsuit        cmsy 7d
heartsuit          cmsy 7e
spadesuit          cmsy 7f
coprod             cmex 60
bigvee             cmex 57
bigwedge           cmex 56
biguplus           cmex 55
bigcap             cmex 54
bigcup             cmex 53
int                cmex 52
prod               cmex 51
sum                cmex 50
bigotimes          cmex 4e
bigoplus           cmex 4c
bigodot            cmex 4a
oint               cmex 48
bigsqcup           cmex 46
smallint           cmsy 73
triangleleft       cmm  2f
triangleright      cmm  2e
bigtriangleup      cmsy 34
bigtriangledown    cmsy 35
wedge              cmsy 5e
vee                cmsy 5f
cap                cmsy 5c
cup                cmsy 5b
ddagger            cmsy 7a
dagger             cmsy 79
sqcap              cmsy 75
sqcup              cmsy 74
uplus              cmsy 5d
amalg              cmsy 71
diamond            cmsy 05
bullet             cmsy 0f
wr                 cmsy 6f
div                cmsy 04
odot               cmsy 0c
oslash             cmsy 0b
otimes             cmsy 0a
ominus             cmsy 09
oplus              cmsy 08
mp                 cmsy 07
pm                 cmsy 06
circ               cmsy 0e
bigcirc            cmsy 0d
setminus           cmsy 6e
cdot               cmsy 01
ast                cmsy 03
times              cmsy 02
star               cmm  3f
propto             cmsy 2f
sqsubseteq         cmsy 76
sqsupseteq         cmsy 77
parallel           cmsy 6b
mid                cmsy 6a
dashv              cmsy 61
vdash              cmsy 60
nearrow            cmsy 25
searrow            cmsy 26
nwarrow            cmsy 2d
swarrow            cmsy 2e
Leftrightarrow     cmsy 2c
Leftarrow          cmsy 28
Rightarrow         cmsy 29
leq                cmsy 14
geq                cmsy 15
succ               cmsy 1f
prec               cmsy 1e
approx             cmsy 19
succeq             cmsy 17
preceq             cmsy 16
supset             cmsy 1b
subset             cmsy 1a
supseteq           cmsy 13
subseteq           cmsy 12
in                 cmsy 32
ni                 cmsy 33
gg                 cmsy 1d
ll                 cmsy 1c
not                cmsy 36
leftrightarrow     cmsy 24
leftarrow          cmsy 20
rightarrow         cmsy 21
mapsto             cmsy 37
sim                cmsy 18
simeq              cmsy 27
perp               cmsy 3f
equiv              cmsy 11
asymp              cmsy 10
smile              cmm  5e
frown              cmm  5f
leftharpoonup      cmm  28
leftharpoondown    cmm  29
rightharpoonup     cmm  2a
rightharpoondown   cmm  2b
lhook              cmm  2c
rhook              cmm  2d
ldotp              cmm  3a
cdotp              cmsy 01
colon              cmr  3a
braceld            cmex 7a
bracerd            cmex 7b
bracelu            cmex 7c
braceru            cmex 7d
lmoustache         cmex 7a
rmoustache         cmex 7b
arrowvert          cmsy 6a
Arrowvert          cmsy 6b
Vert               cmsy 6b
vert               cmsy 6a
uparrow            cmsy 22
downarrow          cmsy 23
updownarrow        cmsy 6c
Uparrow            cmsy 2a
Downarrow          cmsy 2b
Updownarrow        cmsy 6d
backslash          cmsy 6e
rangle             cmsy 69
langle             cmsy 68
rbrace             cmsy 67
lbrace             cmsy 66
rceil              cmsy 65
lceil              cmsy 64
rfloor             cmsy 63
lfloor             cmsy 62
lgroup             cmex 3a
rgroup             cmex 3b
bracevert          cmex 3e
mathparagraph      cmsy 7b
mathsection        cmsy 78
mathdollar         cmr  24

# Generated from amsfonts.sty

ulcorner           msa  70
urcorner           msa  71
llcorner           msa  78
lrcorner           msa  79
dabar@             msa  39
rightleftharpoons  msa  0a
angle              msa  5c
hbar               msb  7e
sqsubset           msa  40
sqsupset           msa  41
mho                msb  66
square             msa  03
lozenge            msa  06
vartriangleright   msa  42
vartriangleleft    msa  43
trianglerighteq    msa  44
trianglelefteq     msa  45
rightsquigarrow    msa  20
lhd                msa  43
unlhd              msa  45
rhd                msa  42
unrhd              msa  44

# Generated from amssymb.sty

boxdot             msa  00
boxplus            msa  01
boxtimes           msa  02
square             msa  03
blacksquare        msa  04
centerdot          msa  05
lozenge            msa  06
blacklozenge       msa  07
circlearrowright   msa  08
circlearrowleft    msa  09
leftrightharpoons  msa  0b
leftrightharpoons  msa  0b
boxminus           msa  0c
Vdash              msa  0d
Vvdash             msa  0e
vDash              msa  0f
twoheadrightarrow  msa  10
twoheadleftarrow   msa  11
leftleftarrows     msa  12
rightrightarrows   msa  13
upuparrows         msa  14
downdownarrows     msa  15
upharpoonright     msa  16
downharpoonright   msa  17
upharpoonleft      msa  18
downharpoonleft    msa  19
rightarrowtail     msa  1a
leftarrowtail      msa  1b
leftrightarrows    msa  1c
rightleftarrows    msa  1d
Lsh                msa  1e
Rsh                msa  1f
rightsquigarrow    msa  20
leftrightsquigarrow msa  21
looparrowleft      msa  22
looparrowright     msa  23
circeq             msa  24
succsim            msa  25
gtrsim             msa  26
gtrapprox          msa  27
multimap           msa  28
therefore          msa  29
because            msa  2a
doteqdot           msa  2b
triangleq          msa  2c
precsim            msa  2d
lesssim            msa  2e
lessapprox         msa  2f
eqslantless        msa  30
eqslantgtr         msa  31
curlyeqprec        msa  32
curlyeqsucc        msa  33
preccurlyeq        msa  34
leqq               msa  35
leqslant           msa  36
lessgtr            msa  37
backprime          msa  38
risingdotseq       msa  3a
fallingdotseq      msa  3b
succcurlyeq        msa  3c
geqq               msa  3d
geqslant           msa  3e
gtrless            msa  3f
vartriangleright   msa  42
vartriangleright   msa  42
vartriangleleft    msa  43
trianglerighteq    msa  44
trianglelefteq     msa  45
bigstar            msa  46
between            msa  47
blacktriangledown  msa  48
blacktriangleright msa  49
blacktriangleleft  msa  4a
vartriangle        msa  4d
blacktriangle      msa  4e
triangledown       msa  4f
eqcirc             msa  50
lesseqgtr          msa  51
gtreqless          msa  52
lesseqqgtr         msa  53
gtreqqless         msa  54
Rrightarrow        msa  56
Lleftarrow         msa  57
veebar             msa  59
barwedge           msa  5a
doublebarwedge     msa  5b
measuredangle      msa  5d
measuredangle      msa  5d
sphericalangle     msa  5e
varpropto          msa  5f
smallsmile         msa  60
smallfrown         msa  61
Subset             msa  62
Supset             msa  63
Cup                msa  64
Cap                msa  65
curlywedge         msa  66
curlyvee           msa  67
leftthreetimes     msa  68
rightthreetimes    msa  69
subseteqq          msa  6a
supseteqq          msa  6b
bumpeq             msa  6c
Bumpeq             msa  6d
lll                msa  6e
ggg                msa  6f
circledS           msa  73
pitchfork          msa  74
dotplus            msa  75
backsim            msa  76
backsimeq          msa  77
complement         msa  7b
intercal           msa  7c
circledcirc        msa  7d
circledast         msa  7e
circleddash        msa  7f
lvertneqq          msb  00
lvertneqq          msb  00
gvertneqq          msb  01
nleq               msb  02
ngeq               msb  03
nless              msb  04
ngtr               msb  05
nprec              msb  06
nsucc              msb  07
lneqq              msb  08
gneqq              msb  09
nleqslant          msb  0a
ngeqslant          msb  0b
lneq               msb  0c
gneq               msb  0d
npreceq            msb  0e
nsucceq            msb  0f
precnsim           msb  10
succnsim           msb  11
lnsim              msb  12
gnsim              msb  13
nleqq              msb  14
ngeqq              msb  15
precneqq           msb  16
succneqq           msb  17
precnapprox        msb  18
succnapprox        msb  19
lnapprox           msb  1a
gnapprox           msb  1b
nsim               msb  1c
ncong              msb  1d
diagup             msb  1e
diagdown           msb  1f
varsubsetneq       msb  20
varsupsetneq       msb  21
nsubseteqq         msb  22
nsupseteqq         msb  23
subsetneqq         msb  24
supsetneqq         msb  25
varsubsetneqq      msb  26
varsupsetneqq      msb  27
subsetneq          msb  28
supsetneq          msb  29
nsubseteq          msb  2a
nsupseteq          msb  2b
nparallel          msb  2c
nmid               msb  2d
nshortmid          msb  2e
nshortparallel     msb  2f
nvdash             msb  30
nVdash             msb  31
nvDash             msb  32
nVDash             msb  33
ntrianglerighteq   msb  34
ntrianglelefteq    msb  35
ntriangleleft      msb  36
ntriangleright     msb  37
nleftarrow         msb  38
nrightarrow        msb  39
nLeftarrow         msb  3a
nRightarrow        msb  3b
nLeftrightarrow    msb  3c
nleftrightarrow    msb  3d
divideontimes      msb  3e
varnothing         msb  3f
nexists            msb  40
Finv               msb  60
Game               msb  61
eth                msb  67
eth                msb  67
eqsim              msb  68
beth               msb  69
gimel              msb  6a
daleth             msb  6b
lessdot            msb  6c
gtrdot             msb  6d
ltimes             msb  6e
rtimes             msb  6f
shortmid           msb  70
shortparallel      msb  71
smallsetminus      msb  72
thicksim           msb  73
thickapprox        msb  74
approxeq           msb  75
succapprox         msb  76
precapprox         msb  77
curvearrowleft     msb  78
curvearrowright    msb  79
digamma            msb  7a
varkappa           msb  7b
Bbbk               msb  7c
hslash             msb  7d
backepsilon        msb  7f
backepsilon        msb  7f

#!/usr/bin/python
import sys,string,re

def is_prefix(a, b):
    return a[:len(b)] == b

font_names = {}

def process(file):
    fh = open(file)
    lines = fh.readlines()
    fh.close()

    n = len(lines)
    for i in xrange(n):
        line = lines[i]
        next_line = ""
        if i+1 < n:
            next_line = lines[i+1]

        # some entries are spread over two lines so we joint the next line 
        # to the current one, removing any comments
        line = string.split(line,'%')[0]+string.split(next_line,'%')[0]

        mo =  
re.match(r'\s*\\DeclareSymbolFont\s*\{(.*?)\}\s*\{(.*?)\}\s*\{(.*?)\}.*', line)
        if mo != None:
            font_names[mo.group(1)] = mo.group(3)
        mo =  
re.match(r'\s*\\DeclareMath(Symbol|Delimiter)\s*\{?\\(.*?)\}?\s*\{(.*?)\}\s*\{(.*?)\}\s*\{"(.*?)\}.*',
 line)
        if mo != None:
            symbol = mo.group(2)
            mo2 = re.match(r'\s*\\def\\(.*?)\{', next_line)
            if mo2 != None and is_prefix(symbol,mo2.group(1)):
                sys.stderr.write("# %s -> %s\n" % (symbol, mo2.group(1)))
                symbol = mo2.group(1)

            font = mo.group(4)
            if font_names.has_key(font):
                font = font_names[font]
            print "%-18s %-4s %2s" % (symbol,font,string.lower(mo.group(5)))

for file in sys.argv[1:]:
    print "# Generated from " + file + "\n"
    process(file)
    print

Reply via email to