def tag_configure(self, tag_name, **kwargs):
        """
        Create a marker tag

        :param tag_name: Identifier for the tag

        :param move_callback: Callback to be called upon moving a
            marker. Arguments to callback:
            ``(iid: str, (old_start: float, old_finish: float),
            (new_start: float, new_finish: float))``
        :type move_callback: callable
        :param left_callback: Callback to be called upon left clicking
            a marker. Arguments to callback:
            ``(iid: str, x_coord: int, y_coord: int)``
        :type left_callback: callable
        :param right_callback: Callback to be called upon right clicking
            a marker. Arguments to callback:
            ``(iid: str, x_coord: int, y_coord: int)``
        :type right_callback: callable
        :param menu: A Menu widget to show upon right click. Can be
            used with the right_callback option simultaneously.
        :type menu: tk.Menu

        In addition, supports all options supported by markers. Note
        that tag options are applied to markers upon marker creation,
        and thus is a tag is updated, the markers are not automatically
        updated as well.
        """
        callbacks = [
            kwargs.get("move_callback", None),
            kwargs.get("left_callback", None),
            kwargs.get("right_callback", None)
        ]
        for callback in callbacks:
            if callback is not None and not callable(callback):
                raise ValueError("One or more callbacks is not a callable object")
        self._tags[tag_name] = kwargs