File: texcodecatalog.py

package info (click to toggle)
eln 1.5.6-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,876 kB
  • sloc: cpp: 26,606; perl: 796; python: 437; sh: 73; makefile: 32; xml: 8
file content (75 lines) | stat: -rwxr-xr-x 1,668 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/python3

import re
import os
import qplot as qp

rx = re.compile(r'"(.*)":\s*"(.*)"');

sections = []
keylist = []
keymap = {}
revmap = {}
secheader = []

with open("../src/Items/TeXCodes.json") as f:
    fr = f.read()
    for line in fr.split("\n"):
        m = rx.search(line)
        if m:
            k = m.group(1)
            v = m.group(2)
            if k == "#":
                sections.append(keylist)
                secheader.append(v)
                keylist = []
            else:
                keylist.append(k)
                keymap[k] = v
                revmap[v] = k

sections.append(keylist)
sections = sections[1:]

N = len(sections)
dy = 12
for n in range(N):
    h = len(sections[n]) * dy / 72 + .1
    if n==2:
        w = 1.3
    else:
        w = 1.2
    qp.figure('texcodes', w, h)
    qp.pen('w')
    qp.plot([0, 1],[0, -1])
    qp.pen()
    qp.at(.25, 0)
    y = 0
    qp.font('FreeMono', 10)
    qp.align('left', 'base')
    for k in sections[n]:
        while k[0] in revmap:
            k = revmap[k[0]] + k[1:]
        k = k.replace("^", "∧")
        if k[0]=='*':
            if len(k)==2:
                k = k[1]
            else:
                k = k[1:] + "^*"
        qp.text(k, 10, y)
        y = y + dy
    y = 0
    if n==6:
        qp.font('Georgia', 10, italic=True)
    else:
        qp.font('CenturySchoolbook', 10)
    qp.align('center', 'base')
    for k in sections[n]:
        v = keymap[k]
        qp.text(v, -5, y)
        y = y + dy
    qp.shrink(2)
    qp.save(f"../build/texcodes-{n}.pdf")

os.chdir("../build")
os.system("placeqpt -o ../docs/userguide/texcodes.pdf ../tools/texcodes.placeqpt")