def Latt2text(Cen):
    """From lattice centering vectors returns ';' delimited cell centering vectors"""
    lattTxt = ''
    fracList = ['1/2', '1/3', '2/3', '1/4', '3/4', '1/5', '2/5', '3/5',
        '4/5', '1/6', '5/6', '1/7', '2/7', '3/7', '4/7', '5/7', '6/7',
        '1/8', '3/8', '5/8', '7/8', '1/9', '2/9', '4/9', '5/9', '7/9', '8/9']
    mulList = [2, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 
        8, 9, 9, 9, 9, 9, 9]
    prodList = [1.0, 1.0, 2.0, 1.0, 3.0, 1.0, 2.0, 3.0, 4.0, 1.0, 5.0, 1.0,
        2.0, 3.0, 4.0, 5.0, 6.0, 1.0, 3.0, 5.0, 7.0, 1.0, 2.0, 4.0, 5.0, 
        7.0, 8.0]
    nCen = len(Cen)
    for i, cen in enumerate(Cen):
        txt = ''
        for icen in cen:
            if icen == 1:
                txt += '1,'
                continue
            if not icen:
                txt += '0,'
                continue
            if icen < 0:
                txt += '-'
                icen *= -1
            for mul, prod, frac in zip(mulList, prodList, fracList):
                if abs(icen * mul - prod) < 1e-05:
                    txt += frac + ','
                    break
        lattTxt += txt[:-1] + '; '
        if i and not i % 8 and i < nCen - 1:
            lattTxt += '\n     '
    return lattTxt[:-2]
