'Remove the specified items (by canonical name) from the spine. If ``remove_if_no_longer_in_spine``
is True, the items are also deleted from the book, not just from the spine.'

def remove_from_spine(self, spine_items, remove_if_no_longer_in_spine=True):

    nixed = set()
    for ((name, remove), (item, xname, linear)) in zip(spine_items, self.spine_iter):
        if (remove and (name == xname)):
            self.remove_from_xml(item)
            nixed.add(name)
    if remove_if_no_longer_in_spine:
        nixed -= {name for (name, linear) in self.spine_names}
        for name in nixed:
            self.remove_item(name)
