Example #1
0
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))
Example #2
0
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))
Example #3
0
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))
Example #4
0
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))
Example #5
0
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))
Example #6
0
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))
Example #7
0
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))
Example #8
0
    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)