def xabstract(nd): r = txt.tr('Abstract') p = spar('section') p.append(r) getap(nd).append(p) setx(nd, p, getap(nd)) ct.cnl(nd)
def xthebibliography(nd): r = txt.tr('References') p = spar('section') p.append(r) getap(nd).append(p) setx(nd, p, getap(nd)) ct.cnl(nd)
def xpar(nd): if nd.childNodes: if nd.firstChild.nodeName in { 'enumerate', 'itemize', 'equation', 'abstract', 'thebibliography', 'table', 'centering', 'tabular', 'center' }: setap(nd, getap(nd)) ct.cnl(nd) return else: return if mmf.isset(): setap(nd, getap(nd)) ct.cnl(nd) return if nd.parentNode.nodeName == 'item': enum.itempar(nd) return p = etree.Element(NSW + 'p') setAlign(p) setx(nd, p, p) npf.clear() ct.cnl(nd) if npf.isset(): getap(nd).append(p)
def xhspace(nd): s = nd.attributes['len'] n = int(s.em*6) t = txt.tr(u"\u2006"*n) getap(nd).append(t)
def xtext(nd): if nd.parentNode.nodeName == '#document': return s = nd.textContent if not mmf.isset(): p = getap(nd) if len(p) == 0: s = s.lstrip() elif p[-1].tag == NSW+'pPr': s = s.lstrip() #if nd.previousSibling == None: #s = s.lstrip() #elif nd.previousSibling.blockType == True: #s = s.lstrip() #if nd.nextSibling == None: #s = s.rstrip() #if s == '': #return #else: #r = tr(s) if s == '': return r = tr(s) getap(nd).append(r)
def xpar(nd): if nd.childNodes: if nd.firstChild.nodeName in {'enumerate', 'itemize', 'equation', 'abstract', 'thebibliography', 'table', 'centering', 'tabular', 'center'}: setap(nd, getap(nd)) ct.cnl(nd) return else: return if mmf.isset(): setap(nd, getap(nd)) ct.cnl(nd) return if nd.parentNode.nodeName=='item': enum.itempar(nd) return p = etree.Element(NSW+'p') setAlign(p) setx(nd, p, p) npf.clear() ct.cnl(nd) if npf.isset(): getap(nd).append(p)
def accent(nd, char): a = etree.Element(NSM + 'acc') pr = etree.SubElement(a, NSM + 'accPr') ch = etree.SubElement(pr, NSM + 'chr') ch.set(NSM + 'val', char) e = etree.SubElement(a, NSM + 'e') getap(nd).append(a) setx(nd, a, e) ct.cnl(nd)
def xbar(nd): a = etree.Element(NSM + "acc") pr = etree.SubElement(a, NSM + "accPr") ch = etree.SubElement(pr, NSM + "chr") ch.set(NSM + "val", u"\u0304") e = etree.SubElement(a, NSM + "e") getap(nd).append(a) setx(nd, a, e) ct.cnl(nd)
def accent(nd, char): a = etree.Element(NSM + "acc") pr = etree.SubElement(a, NSM + "accPr") ch = etree.SubElement(pr, NSM + "chr") ch.set(NSM + "val", char) e = etree.SubElement(a, NSM + "e") getap(nd).append(a) setx(nd, a, e) ct.cnl(nd)
def xbar(nd): a = etree.Element(NSM + 'acc') pr = etree.SubElement(a, NSM + 'accPr') ch = etree.SubElement(pr, NSM + 'chr') ch.set(NSM + 'val', u'\u0304') e = etree.SubElement(a, NSM + 'e') getap(nd).append(a) setx(nd, a, e) ct.cnl(nd)
def xtabular(nd): t = etree.Element(NSW+'tbl') pr = etree.SubElement(t, NSW+'tblPr') sty = etree.SubElement(pr, NSW+'tblStyle') sty.set(NSW+'val', 'tbl') jc = etree.SubElement(pr, NSW+'jc') jc.set(NSW+'val', 'center') setx(nd, t, t) getap(nd).append(t) ct.cnl(nd)
def xtabular(nd): t = etree.Element(NSW + 'tbl') pr = etree.SubElement(t, NSW + 'tblPr') sty = etree.SubElement(pr, NSW + 'tblStyle') sty.set(NSW + 'val', 'tbl') jc = etree.SubElement(pr, NSW + 'jc') jc.set(NSW + 'val', 'center') setx(nd, t, t) getap(nd).append(t) ct.cnl(nd)
def limlow(nd, s): ll = etree.Element(NSM + 'limLow') e = etree.SubElement(ll, NSM + 'e') e.append(txt.pmtr(s)) l = etree.SubElement(ll, NSM + 'lim') getap(nd).append(ll) ns = nd.nextSibling if ns.nodeName == 'active::_': setap(ns, l) ct.cnl(ns) nd.parentNode.removeChild(ns)
def limlow(nd, s): ll = etree.Element(NSM + "limLow") e = etree.SubElement(ll, NSM + "e") e.append(txt.pmtr(s)) l = etree.SubElement(ll, NSM + "lim") getap(nd).append(ll) ns = nd.nextSibling if ns.nodeName == "active::_": setap(ns, l) ct.cnl(ns) nd.parentNode.removeChild(ns)
def xfrac(nd): f = etree.Element(NSM + "f") fpr = etree.SubElement(f, NSM + "fPr") tp = etree.SubElement(fpr, NSM + "type") tp.set(NSM + "val", "bar") getap(nd).append(f) num = etree.SubElement(f, NSM + "num") setx(nd.attributes["numer"], num, num) ct.cnl(nd.attributes["numer"]) den = etree.SubElement(f, NSM + "den") setx(nd.attributes["denom"], den, den) ct.cnl(nd.attributes["denom"])
def xeqnarray(nd): p = etree.Element(NSM + "oMathPara") m = etree.SubElement(p, NSM + "oMath") m = etree.SubElement(m, NSM + "m") m.append(_mpreqa()) getap(nd).append(p) setx(nd, p, m) mmf.push() mmf.set() ct.cnl(nd) mmf.pop()
def xeqnarray(nd): p = etree.Element(NSM + 'oMathPara') m = etree.SubElement(p, NSM + 'oMath') m = etree.SubElement(m, NSM + 'm') m.append(_mpreqa()) getap(nd).append(p) setx(nd, p, m) mmf.push() mmf.set() ct.cnl(nd) mmf.pop()
def xfrac(nd): f = etree.Element(NSM + 'f') fpr = etree.SubElement(f, NSM + 'fPr') tp = etree.SubElement(fpr, NSM + 'type') tp.set(NSM + 'val', 'bar') getap(nd).append(f) num = etree.SubElement(f, NSM + 'num') setx(nd.attributes['numer'], num, num) ct.cnl(nd.attributes['numer']) den = etree.SubElement(f, NSM + 'den') setx(nd.attributes['denom'], den, den) ct.cnl(nd.attributes['denom'])
def xArrayRow(nd): mr = etree.Element(NSM + 'mr') getap(nd).append(mr) setx(nd, mr, mr) ct.cnl(nd) if nd.parentNode.nodeName == 'eqnarray': e = etree.Element(NSM + 'e') mr.append(e) if nd.ref != None: ntf.push() ntf.set() e.append(txt.tr(' (' + nd.ref.textContent + ')')) ntf.pop()
def xArrayRow(nd): mr = etree.Element(NSM + "mr") getap(nd).append(mr) setx(nd, mr, mr) ct.cnl(nd) if nd.parentNode.nodeName == "eqnarray": e = etree.Element(NSM + "e") mr.append(e) if nd.ref != None: ntf.push() ntf.set() e.append(txt.tr(" (" + nd.ref.textContent + ")")) ntf.pop()
def tc(nd): c = etree.Element(NSW+'tc') cp = etree.SubElement(c, NSW+'tcPr') if 'colspan' in nd.attributes: gs = etree.SubElement(cp, NSW+'gridSpan') gs.set(NSW+'val', str(nd.attributes['colspan'])) bd = etree.SubElement(cp, NSW+'tcBorders') if 'border-top-style' in nd.style: tb = etree.SubElement(bd, NSW+'top') if nd.style['border-top-style'] == 'solid': tb.set(NSW+'val', 'single') if 'border-bottom-style' in nd.style: bb = etree.SubElement(bd, NSW+'bottom') if nd.style['border-bottom-style'] == 'solid': bb.set(NSW+'val', 'single') if 'border-left' in nd.style: sb = etree.SubElement(bd, NSW+'start') s = nd.style['border-left'].split() if s[1] == 'solid': sb.set(NSW+'val', 'single') if 'border-right' in nd.style: eb = etree.SubElement(bd, NSW+'end') s = nd.style['border-right'].split() if s[1] == 'solid': eb.set(NSW+'val', 'single') if nd.style['text-align'] == 'center': dc.ac = 'c' elif nd.style['text-align'] == 'right': dc.ac = 'r' elif nd.style['text-align'] == 'left': dc.ac = 'l' getap(nd).append(c) if nd.childNodes: setx(nd,c,c) ct.cnl(nd) p = c.find(NSW+'p') if p == None: p = etree.SubElement(c, NSW+'p') par.setAlign(p) dc.acPop()
def narg(nd, char): n = etree.Element(NSM + "nary") getap(nd).append(n) np = etree.SubElement(n, NSM + "naryPr") ch = etree.SubElement(np, NSM + "chr") ch.set(NSM + "val", char) subHide = etree.SubElement(np, NSM + "subHide") subHide.set(NSM + "val", "1") supHide = etree.SubElement(np, NSM + "supHide") supHide.set(NSM + "val", "1") e = etree.SubElement(n, NSM + "e") d = nd.ownerDocument.createDocumentFragment() setap(d, e) ns = nd.nextSibling try: for x in range(0, 2): if ns.nodeName == "active::_": s = etree.SubElement(n, NSM + "sub") subHide.set(NSM + "val", "0") setap(ns, s) ct.cnl(ns) elif ns.nodeName == "active::^": s = etree.SubElement(n, NSM + "sup") supHide.set(NSM + "val", "0") setap(ns, s) ct.cnl(ns) else: while ns is not None: d.appendChild(ns) nd.parentNode.removeChild(ns) ns = nd.nextSibling ct.cnl(d) return nd.parentNode.removeChild(ns) ns = nd.nextSibling if nd.nodeType == 3 and ns.isspace(): nd.parentNode.removeChild(ns) ns = nd.nextSibling while ns is not None: d.appendChild(ns) nd.parentNode.removeChild(ns) ns = nd.nextSibling ct.cnl(d) return except AttributeError: return
def narg(nd, char): n = etree.Element(NSM + 'nary') getap(nd).append(n) np = etree.SubElement(n, NSM + 'naryPr') ch = etree.SubElement(np, NSM + 'chr') ch.set(NSM + 'val', char) subHide = etree.SubElement(np, NSM + 'subHide') subHide.set(NSM + 'val', '1') supHide = etree.SubElement(np, NSM + 'supHide') supHide.set(NSM + 'val', '1') e = etree.SubElement(n, NSM + 'e') d = nd.ownerDocument.createDocumentFragment() setap(d, e) ns = nd.nextSibling try: for x in range(0, 2): if ns.nodeName == 'active::_': s = etree.SubElement(n, NSM + 'sub') subHide.set(NSM + 'val', '0') setap(ns, s) ct.cnl(ns) elif ns.nodeName == 'active::^': s = etree.SubElement(n, NSM + 'sup') supHide.set(NSM + 'val', '0') setap(ns, s) ct.cnl(ns) else: while ns is not None: d.appendChild(ns) nd.parentNode.removeChild(ns) ns = nd.nextSibling ct.cnl(d) return nd.parentNode.removeChild(ns) ns = nd.nextSibling if nd.nodeType == 3 and ns.isspace(): nd.parentNode.removeChild(ns) ns = nd.nextSibling while ns is not None: d.appendChild(ns) nd.parentNode.removeChild(ns) ns = nd.nextSibling ct.cnl(d) return except AttributeError: return
def tc(nd): c = etree.Element(NSW + 'tc') cp = etree.SubElement(c, NSW + 'tcPr') if 'colspan' in nd.attributes: gs = etree.SubElement(cp, NSW + 'gridSpan') gs.set(NSW + 'val', str(nd.attributes['colspan'])) bd = etree.SubElement(cp, NSW + 'tcBorders') if 'border-top-style' in nd.style: tb = etree.SubElement(bd, NSW + 'top') if nd.style['border-top-style'] == 'solid': tb.set(NSW + 'val', 'single') if 'border-bottom-style' in nd.style: bb = etree.SubElement(bd, NSW + 'bottom') if nd.style['border-bottom-style'] == 'solid': bb.set(NSW + 'val', 'single') if 'border-left' in nd.style: sb = etree.SubElement(bd, NSW + 'start') s = nd.style['border-left'].split() if s[1] == 'solid': sb.set(NSW + 'val', 'single') if 'border-right' in nd.style: eb = etree.SubElement(bd, NSW + 'end') s = nd.style['border-right'].split() if s[1] == 'solid': eb.set(NSW + 'val', 'single') if nd.style['text-align'] == 'center': dc.ac = 'c' elif nd.style['text-align'] == 'right': dc.ac = 'r' elif nd.style['text-align'] == 'left': dc.ac = 'l' getap(nd).append(c) if nd.childNodes: setx(nd, c, c) ct.cnl(nd) p = c.find(NSW + 'p') if p == None: p = etree.SubElement(c, NSW + 'p') par.setAlign(p) dc.acPop()
def xmath(nd): mmf.push() mmf.set() if ntf.isset(): ntf.push() ntf.clear() setap(nd, getap(nd)) ct.cnl(nd) ntf.pop() else: e = etree.Element(NSM + 'oMath') setx(nd, e, e) ct.cnl(nd) getap(nd).append(e) mmf.pop()
def xmath(nd): mmf.push() mmf.set() if ntf.isset(): ntf.push() ntf.clear() setap(nd, getap(nd)) ct.cnl(nd) ntf.pop() else: e = etree.Element(NSM + "oMath") setx(nd, e, e) ct.cnl(nd) getap(nd).append(e) mmf.pop()
def xquote(nd): p = getap(nd) pr = p.find('.//'+NSW+'pPr') if pr==None: pr = etree.SubElement(p, NSW+'pPr') ind = etree.SubElement(pr, NSW+'ind') ind.set(NSW+'left','420') ind.set(NSW+'right','420') else: ind = pr.find('.//'+NSW+'ind') if ind == None: ind = etree.SubElement(pr, NSW+'ind') ind.set(NSW+'left','420') ind.set(NSW+'right','420') else: left = ind.get(NSW+'left') if left == None: left = '420' else: left = str(int(left)+420) ind.set(NSW+'left',left) right = ind.get(NSW+'right') if right == None: right = '420' else: right = str(int(right)+420) ind.set(NSW+'right',right) setap(nd, p) ct.cnl(nd)
def xcaption(nd): p = getap(nd) s = nd.captionName.textContent + ' ' + nd.ref.textContent + ': ' r = txt.tr(s) p.append(r) setap(nd, p) ct.cnl(nd)
def xtheorem(nd): cap = nd.caption p = etree.Element(NSW+'p') setap(cap, p) rbf.push() rbf.set() ct.cnl(cap) p.append(txt.tr(' '+nd.ref.textContent)) rbf.pop() rif.push() rif.set() i = 1 if nd.childNodes[0].firstChild.nodeName == 'displaymath': i = 0 else: setap(nd.childNodes[0], p) ct.cnl(nd.childNodes[0]) np = getap(nd.parentNode) setap(nd, np) np.append(p) for par in nd.childNodes[i:]: ct.cnd(par) rif.pop() npf.clear()
def xtheorem(nd): cap = nd.caption p = etree.Element(NSW + 'p') setap(cap, p) rbf.push() rbf.set() ct.cnl(cap) p.append(txt.tr(' ' + nd.ref.textContent)) rbf.pop() rif.push() rif.set() i = 1 if nd.childNodes[0].firstChild.nodeName == 'displaymath': i = 0 else: setap(nd.childNodes[0], p) ct.cnl(nd.childNodes[0]) np = getap(nd.parentNode) setap(nd, np) np.append(p) for par in nd.childNodes[i:]: ct.cnd(par) rif.pop() npf.clear()
def xquote(nd): p = getap(nd) pr = p.find('.//' + NSW + 'pPr') if pr == None: pr = etree.SubElement(p, NSW + 'pPr') ind = etree.SubElement(pr, NSW + 'ind') ind.set(NSW + 'left', '420') ind.set(NSW + 'right', '420') else: ind = pr.find('.//' + NSW + 'ind') if ind == None: ind = etree.SubElement(pr, NSW + 'ind') ind.set(NSW + 'left', '420') ind.set(NSW + 'right', '420') else: left = ind.get(NSW + 'left') if left == None: left = '420' else: left = str(int(left) + 420) ind.set(NSW + 'left', left) right = ind.get(NSW + 'right') if right == None: right = '420' else: right = str(int(right) + 420) ind.set(NSW + 'right', right) setap(nd, p) ct.cnl(nd)
def setbase(nd): p = getap(nd) if len(p)==0: x = txt.tr(u'\u200B') p.append(x) else: x = p[-1] n = nd.previousSibling.nodeName if n=='active::_' or n=='active::^': return x if n=='#text': t = x.find(NSM+'t') tt = t.text if len(tt)>1: tt1 = tt[-1] x1 = deepcopy(x) t1 = x1.find(NSM+'t') t1.text = tt1 t.text = tt[:-1] x = x1 else: p.remove(x) else: p.remove(x) if nd.nodeName == 'active::_': if nd.nextSibling == None: s = etree.Element(NSM+'sSub') e = etree.SubElement(s, NSM+'e') e.append(x) p.append(s) elif nd.nextSibling.nodeName != 'active::^': s = etree.Element(NSM+'sSub') e = etree.SubElement(s, NSM+'e') e.append(x) p.append(s) else: s = etree.Element(NSM+'sSubSup') e = etree.SubElement(s, NSM+'e') e.append(x) p.append(s) elif nd.nodeName == 'active::^': if nd.nextSibling==None: s = etree.Element(NSM+'sSup') e = etree.SubElement(s, NSM+'e') e.append(x) p.append(s) elif nd.nextSibling.nodeName != 'active::_': s = etree.Element(NSM+'sSup') e = etree.SubElement(s, NSM+'e') e.append(x) p.append(s) else: s = etree.Element(NSM+'sSubSup') e = etree.SubElement(s, NSM+'e') e.append(x) p.append(s) return s
def setbase(nd): p = getap(nd) if len(p) == 0: x = txt.tr(u'\u200B') p.append(x) else: x = p[-1] n = nd.previousSibling.nodeName if n == 'active::_' or n == 'active::^': return x if n == '#text': t = x.find(NSM + 't') tt = t.text if len(tt) > 1: tt1 = tt[-1] x1 = deepcopy(x) t1 = x1.find(NSM + 't') t1.text = tt1 t.text = tt[:-1] x = x1 else: p.remove(x) else: p.remove(x) if nd.nodeName == 'active::_': if nd.nextSibling == None: s = etree.Element(NSM + 'sSub') e = etree.SubElement(s, NSM + 'e') e.append(x) p.append(s) elif nd.nextSibling.nodeName != 'active::^': s = etree.Element(NSM + 'sSub') e = etree.SubElement(s, NSM + 'e') e.append(x) p.append(s) else: s = etree.Element(NSM + 'sSubSup') e = etree.SubElement(s, NSM + 'e') e.append(x) p.append(s) elif nd.nodeName == 'active::^': if nd.nextSibling == None: s = etree.Element(NSM + 'sSup') e = etree.SubElement(s, NSM + 'e') e.append(x) p.append(s) elif nd.nextSibling.nodeName != 'active::_': s = etree.Element(NSM + 'sSup') e = etree.SubElement(s, NSM + 'e') e.append(x) p.append(s) else: s = etree.Element(NSM + 'sSubSup') e = etree.SubElement(s, NSM + 'e') e.append(x) p.append(s) return s
def xdelim(nd): d = etree.Element(NSM + "d") dpr = etree.SubElement(d, NSM + "dPr") bc = etree.SubElement(dpr, NSM + "begChr") if nd.attributes["bchar"].textContent != ".": bc.set(NSM + "val", nd.attributes["bchar"].textContent) else: bc.set(NSM + "val", "") ec = etree.SubElement(dpr, NSM + "endChr") if nd.attributes["echar"].textContent != ".": ec.set(NSM + "val", nd.attributes["echar"].textContent) else: ec.set(NSM + "val", "") e = etree.SubElement(d, NSM + "e") setx(nd, d, e) getap(nd).append(d) ct.cnl(nd)
def xdelim(nd): d = etree.Element(NSM + 'd') dpr = etree.SubElement(d, NSM + 'dPr') bc = etree.SubElement(dpr, NSM + 'begChr') if nd.attributes['bchar'].textContent != '.': bc.set(NSM + 'val', nd.attributes['bchar'].textContent) else: bc.set(NSM + 'val', '') ec = etree.SubElement(dpr, NSM + 'endChr') if nd.attributes['echar'].textContent != '.': ec.set(NSM + 'val', nd.attributes['echar'].textContent) else: ec.set(NSM + 'val', '') e = etree.SubElement(d, NSM + 'e') setx(nd, d, e) getap(nd).append(d) ct.cnl(nd)
def xthanks(nd): def fr(sr): r = etree.Element(NSW+'r') rpr = etree.SubElement(r, NSW+'rPr') rs = etree.SubElement(rpr, NSW+'rStyle') rs.set(NSW+'val', 'sup') fr = etree.SubElement(r, NSW+sr) fr.set(NSW+'id', i) return r i = nd.id[1:] f = etree.Element(NSW+'footnote') f.set(NSW+'id', i) p = etree.SubElement(f, NSW+'p') setap(nd, p) p.append(fr('footnoteRef')) ct.cnl(nd) getap(nd).append(fr('footnoteReference')) docx.Footnotes.append(f)
def xbgroup(nd): rif.push() rif.clear() rbf.push() rbf.clear() setap(nd, getap(nd)) ct.cnl(nd) rbf.pop() rif.pop()
def xthanks(nd): def fr(sr): r = etree.Element(NSW + 'r') rpr = etree.SubElement(r, NSW + 'rPr') rs = etree.SubElement(rpr, NSW + 'rStyle') rs.set(NSW + 'val', 'sup') fr = etree.SubElement(r, NSW + sr) fr.set(NSW + 'id', i) return r i = nd.id[1:] f = etree.Element(NSW + 'footnote') f.set(NSW + 'id', i) p = etree.SubElement(f, NSW + 'p') setap(nd, p) p.append(fr('footnoteRef')) ct.cnl(nd) getap(nd).append(fr('footnoteReference')) docx.Footnotes.append(f)
def xitemize(nd): nr = docx.Numbering num = etree.Element(NSW + 'num') num.set(NSW + 'numId', nd.id[1:]) nr.append(num) an = etree.SubElement(num, NSW + 'abstractNumId') an.set(NSW + 'val', '0') lo = itemizeLvlOveride(str(lvl(nd) + 1)) num.append(lo) setx(nd, num, getap(nd)) ct.cnl(nd)
def xitemize(nd): nr = docx.Numbering num = etree.Element(NSW+'num') num.set(NSW+'numId', nd.id[1:]) nr.append(num) an = etree.SubElement(num, NSW+'abstractNumId') an.set(NSW+'val', '0') lo = itemizeLvlOveride(str(lvl(nd)+1)) num.append(lo) setx(nd, num, getap(nd)) ct.cnl(nd)
def xenumerate(nd): nr = docx.Numbering num = etree.Element(NSW+'num') num.set(NSW+'numId', nd.id[1:]) nr.append(num) an = etree.SubElement(num, NSW+'abstractNumId') an.set(NSW+'val', '0') lo = lvloveride() num.append(lo) setx(nd, num, getap(nd)) ct.cnl(nd)
def xenumerate(nd): nr = docx.Numbering num = etree.Element(NSW + 'num') num.set(NSW + 'numId', nd.id[1:]) nr.append(num) an = etree.SubElement(num, NSW + 'abstractNumId') an.set(NSW + 'val', '0') lo = lvloveride() num.append(lo) setx(nd, num, getap(nd)) ct.cnl(nd)
def xverbatim(nd): ls = nd.textContent.splitlines() if ls[0] == '': ls = ls[1:] p = getap(nd) ttf.push() ttf.set() for l in ls: p.append(tr(l)) p.append(etree.Element(NSW+'br')) p.remove(p[-1]) ttf.pop()
def itempar(nd): p = etree.Element(NSW+'p') pr = etree.SubElement(p, NSW+'pPr') l = lvl(nd) if nd.previousSibling!=None: ind = etree.SubElement(pr, NSW+'ind') li = str((l+1)*420) ind.set(NSW+'left', li) #Left Indentation else: np = etree.SubElement(pr, NSW+'numPr') ilv = etree.SubElement(np, NSW+'ilvl') ilv.set(NSW+'val', str(l)) nid = etree.SubElement(np, NSW+'numId') nid.set(NSW+'val', nd.parentNode.parentNode.id[1:]) fl = etree.SubElement(pr, NSW+'ind') fl.set(NSW+'firstLineChars', '0') li = str((l+1)*420) fl.set(NSW+'left', li) #Left Indentation fl.set(NSW+'hanging', '420') getap(nd).append(p) setx(nd, p, p) ct.cnl(nd)
def itempar(nd): p = etree.Element(NSW + 'p') pr = etree.SubElement(p, NSW + 'pPr') l = lvl(nd) if nd.previousSibling != None: ind = etree.SubElement(pr, NSW + 'ind') li = str((l + 1) * 420) ind.set(NSW + 'left', li) #Left Indentation else: np = etree.SubElement(pr, NSW + 'numPr') ilv = etree.SubElement(np, NSW + 'ilvl') ilv.set(NSW + 'val', str(l)) nid = etree.SubElement(np, NSW + 'numId') nid.set(NSW + 'val', nd.parentNode.parentNode.id[1:]) fl = etree.SubElement(pr, NSW + 'ind') fl.set(NSW + 'firstLineChars', '0') li = str((l + 1) * 420) fl.set(NSW + 'left', li) #Left Indentation fl.set(NSW + 'hanging', '420') getap(nd).append(p) setx(nd, p, p) ct.cnl(nd)
def xdisplaymath(nd): ap = getap(nd) if nd.previousSibling != None: ap.append(etree.Element(NSW + 'br')) mmf.push() mmf.set() p = etree.Element(NSM + 'oMathPara') m = etree.SubElement(p, NSM + 'oMath') setx(nd, p, m) ct.cnl(nd) ap.append(p) mmf.pop() if nd.previousSibling != None: ap.append(etree.Element(NSW + 'br'))
def xdisplaymath(nd): ap = getap(nd) if nd.previousSibling != None: ap.append(etree.Element(NSW + "br")) mmf.push() mmf.set() p = etree.Element(NSM + "oMathPara") m = etree.SubElement(p, NSM + "oMath") setx(nd, p, m) ct.cnl(nd) ap.append(p) mmf.pop() if nd.previousSibling != None: ap.append(etree.Element(NSW + "br"))
def xfunc(nd): s = nd.nextSibling.textContent n = nd.tagName if s: if s[0] not in {"(", "[", "{"}: getap(nd).append(txt.pmtr(n + u"\u2006")) else: getap(nd).append(txt.pmtr(n)) else: getap(nd).append(txt.pmtr(n))
def xfunc(nd): s = nd.nextSibling.textContent n = nd.tagName if s: if s[0] not in {'(', '[', '{'}: getap(nd).append(txt.pmtr(n + u'\u2006')) else: getap(nd).append(txt.pmtr(n)) else: getap(nd).append(txt.pmtr(n))
def xbr(nd): r = etree.Element(NSW+'br') getap(nd).append(r)
def tr(nd): r = etree.Element(NSW + 'tr') getap(nd).append(r) setx(nd, r, r) ct.cnl(nd)
def xacchar(nd): getap(nd).append(txt.tr(nd.chars[nd.textContent]))
def xstxt(nd): k = nd.nodeName v = _tum[k] getap(nd).append(txt.tr(v))
def xitem(nd): setap(nd, getap(nd)) ct.cnl(nd)