from typing import Any
import unicodedata


def print_len(elements: Any) -> int:
    """Return length of text in characters, excluding Mark characters.

    This is meant to approximate width of text in
    a monospaced font, so that a plaintext table has a decent
    chance of lining up the columns correctly.

    >>> print_len('abc')
    3

    'é' counts as one display character, whether it is represented as a single
    precombined Unicode character or as a letter character followed by an
    diacritic character.
    >>> print_len('abb\N{LATIN SMALL LETTER E WITH ACUTE}')
    4
    >>> print_len('abbe\N{COMBINING ACUTE ACCENT}')
    4

    """
    return sum(
        1 for element in str(elements)
        if not unicodedata.category(element).startswith('M'))