def process_lex_node_reprR(node, compress=False, gloss_iter=None, **kwargs): if compress: gloss = gloss_iter.next() if gloss_iter else None lex = r'\cjk{%s}' % ' '.join( latex_tag_for(leaf) for leaf in text(node)) if gloss: lex = r'\glosE{%s}{%s}' % (lex, gloss) return "\\cf{%s} %s %s" % (sanitise_category(str( node.category)), "\\edge[roof]; " if node.count() > 1 else '', lex) if node.is_leaf(): global Rnode_id lex = latex_tag_for(node.lex) gloss = gloss_iter.next() if gloss_iter else None if gloss: lex = r'\glosE{%s}{%s}' % (lex, gloss) result = "\\node(r%s){\\cf{%s} %s};" % ( Rnode_id, sanitise_category(str(node.category)), lex) Rnode_id += 1 return result else: return "\\cf{%s}" % sanitise_category(str(node.category))
def process_lex_node_reprS(node, compress=False, gloss_iter=None, **kwargs): if compress: gloss = gloss_iter.next() if gloss_iter else None lex = r'\cjk{%s}' % ' '.join( latex_tag_for(leaf) for leaf in text(node)) if gloss: # lex = r'\glosE{%s}{%s}' % (lex, gloss) return r'\ensuremath{\shortstack{\cf{%s}\smallskip\\ %s \medskip\\ \textit{%s} }}' % ( sanitise_category(str(node.category)), lex, gloss) else: return "\\cf{%s} %s %s" % (sanitise_category(str( node.category)), "\\edge[roof]; " if node.count() > 1 else '', lex) if node.is_leaf(): global Snode_id lex = latex_tag_for(node.lex) gloss = gloss_iter.next() if gloss_iter else None if gloss: # lex = r'\glosE{%s}{%s}' % (lex, gloss) result = r'\node(r%s){\ensuremath{\shortstack{\cf{%s}\smallskip\\ %s \medskip\\ \textit{%s}}}};' % ( Snode_id, sanitise_category(str(node.category)), lex, gloss) else: result = "\\node(r%s){\\cf{%s} %s};" % ( Snode_id, sanitise_category(str(node.category)), lex) Snode_id += 1 return result else: return "\\cf{%s}" % sanitise_category(str(node.category))
def process_lex_node_reprR(node, compress=False, gloss_iter=None, **kwargs): if compress: gloss = gloss_iter.next() if gloss_iter else None lex = r'\cjk{%s}' % ' '.join(latex_tag_for(leaf) for leaf in text(node)) if gloss: lex = r'\glosE{%s}{%s}' % (lex, gloss) return "\\cf{%s} %s %s" % ( sanitise_category(str(node.category)), "\\edge[roof]; " if node.count()>1 else '', lex) if node.is_leaf(): global Rnode_id lex = latex_tag_for(node.lex) gloss = gloss_iter.next() if gloss_iter else None if gloss: lex = r'\glosE{%s}{%s}' % (lex, gloss) result = "\\node(r%s){\\cf{%s} %s};" % (Rnode_id, sanitise_category(str(node.category)), lex) Rnode_id += 1 return result else: return "\\cf{%s}" % sanitise_category(str(node.category))
def process_lex_node_reprS(node, compress=False, gloss_iter=None, **kwargs): if compress: gloss = gloss_iter.next() if gloss_iter else None lex = r'\cjk{%s}' % ' '.join(latex_tag_for(leaf) for leaf in text(node)) if gloss: # lex = r'\glosE{%s}{%s}' % (lex, gloss) return r'\ensuremath{\shortstack{\cf{%s}\smallskip\\ %s \medskip\\ \textit{%s} }}' % ( sanitise_category(str(node.category)), lex, gloss) else: return "\\cf{%s} %s %s" % ( sanitise_category(str(node.category)), "\\edge[roof]; " if node.count()>1 else '', lex) if node.is_leaf(): global Snode_id lex = latex_tag_for(node.lex) gloss = gloss_iter.next() if gloss_iter else None if gloss: # lex = r'\glosE{%s}{%s}' % (lex, gloss) result = r'\node(r%s){\ensuremath{\shortstack{\cf{%s}\smallskip\\ %s \medskip\\ \textit{%s}}}};' % ( Snode_id, sanitise_category(str(node.category)), lex, gloss) else: result = "\\node(r%s){\\cf{%s} %s};" % (Snode_id, sanitise_category(str(node.category)), lex) Snode_id += 1 return result else: return "\\cf{%s}" % sanitise_category(str(node.category))
def process_lex_node_repr_ccg(node, compress=False, gloss_iter=None, **kwargs): if node.is_leaf(): gloss = gloss_iter.next() if gloss_iter else None lex = latex_tag_for(node.lex) if gloss: # with gloss, two lines: category \\ lex gloss return r"\ensuremath{\raisebox{-\baselineskip}{\shortstack{\cf{%s} \\ \glosE{%s}{%s}}}}" % (sanitise_category(str(node.cat)), lex, gloss) else: return "{\\cf{%s} %s}" % (sanitise_category(str(node.cat)), lex) else: return "\\cf{%s}" % sanitise_category(str(node.cat))
def process_lex_node_repr_ccg(node, compress=False, gloss_iter=None, **kwargs): if node.is_leaf(): gloss = gloss_iter.next() if gloss_iter else None lex = latex_tag_for(node.lex) if gloss: # with gloss, two lines: category \\ lex gloss return r"\ensuremath{\raisebox{-\baselineskip}{\shortstack{\cf{%s} \\ \glosE{%s}{%s}}}}" % ( sanitise_category(str(node.cat)), lex, gloss) else: return "{\\cf{%s} %s}" % (sanitise_category(str(node.cat)), lex) else: return "\\cf{%s}" % sanitise_category(str(node.cat))
def comb_lines(lines): ret = [] by_row = transpose(lines) cur_column = 0 arrow_line = [] cat_line = [] while by_row[0]: (begin, end), arrow = by_row[0].pop(0), by_row[1].pop(0) category = by_row[2].pop(0) combinator = get_combinator_for_arrow(arrow) if not combinator: raise RuntimeError('Unknown combinator.') arrow_line.append( " & " * (begin - cur_column) ) arrow_line.append( "\\%s{%d}" % (combinator, end-begin+1) ) cat_line.append( " & " * (begin - cur_column) ) cat_line.append( "\mc{%d}{%s}" % (end-begin+1, sanitise_category(category)) ) cur_column = end arrow_line.append(ESCAPED_NEWLINE) cat_line.append(ESCAPED_NEWLINE) return ''.join(''.join(line) for line in (arrow_line, cat_line))
def cat_repr(cat, i): cat_str = str(cat) if abbreviate is not False: if isinstance(abbreviate, xrange): if isinstance(i, int): if i in abbreviate: cat_str = abbr(cat_str) elif isinstance(i, xrange): if abbreviate.start <= i.start < i.end <= abbreviate.end: cat_str = abbr(cat_str) else: cat_str = abbr(cat_str) return sanitise_category(cat_str)