def represent_value(name, val=None, sigma=None, eps=None, units='', n=-1):
    r"""
    Форматирует значение величины для лабы в формат

    Если есть погрешности: $ name = val \\pm sigma [units], \\; \\varepsilon_{name} = eps \\% $

    Иначе: $ name = val \\pm [units] $

    :param name: Название величины
    :param val: Значение величины
    :param sigma: Абсолютная величины
    :param eps: Относительная величины
    :param units: единицы измерения
    :param n: число знаков округления, если -1, то округления нет
    :return: представление величины в формате latex для копипаста в текст лабы
    """
    # Проверка, что не все значения None
    if val is None and sigma is None and eps is None:
        raise ValueError(f'У величины {name} не переданы никакие значения')

    # Проверка, что если все не None, то выполняется тождество  val * eps == sigma
    if val is not None and sigma is not None and eps is not None and val * eps != sigma:
        raise ValueError(f'У величины {name} переданы некорректные значения')

    if units:
        units = f' \\; {units}'

    # Проверка, что есть пара не None
    if sigma is None and eps is None:
        print(f'WARNING!!! У величины {name} передано только значение.')
        return f'$ {name} = {round(val, n) if n != -1 else n}{units}$'

    if val is None and eps is None:
        raise ValueError(f'У величины {name} передана, только абсолютная погрешность')

    if val is None and sigma is None:
        raise ValueError(f'У величины {name} передана, только относительная погрешность')

    # Далее форматирование
    if eps is None and val != 0:
        eps = abs(sigma / val)

    if sigma is None:
        sigma = abs(val * eps)

    if val is None:
        if eps == 0:
            if sigma != 0:
                raise ValueError(f'У величины {name} переданы только погрешности, '
                                 f'при чем относительная равна нулю, а абсолютная нет')
            else:
                raise ValueError(f'У величины {name} переданы только погрешности, при чем относительная и '
                                 f'абсолютная равна нулю одновременно, получается неопределенность')
        else:
            print(f'WARNING!!! У величины {name} переданы только погрености, но не сама величина. '
                  f'Будет вычислено с точностью до знака Это странно.')
            val = sigma / eps

    if n != -1:
        val_ = round(val, n)
        sigma_ = round(sigma, n)
        eps_ = round(eps * 100, n)

    else:
        val_ = val
        sigma_ = sigma
        eps_ = eps * 100

    return f'$ {name} = {val_} \\pm {sigma_}{units}, \\; \\varepsilon_{{{name}}} = {eps_} \\% $'
