/// is this the last possible position?
bool atLastPos() const { return pit() == lastpit() && pos() == lastpos(); }
/// is this the last possible position?
bool atLastPos() const { return pit() == lastpit() && pos() == lastpos(); }
Paragraph & innerParagraph() const;
/// return the inner text slice.
CursorSlice const & innerTextSlice() const;
Paragraph & innerParagraph() const;
/// return the inner text slice.
CursorSlice const & innerTextSlice() const;
/// the first and last positions of a word at top cursor slice
/// \warning only works within text!
FontSpan locateWord(word_location const loc) const;
/// the first and last positions of a word at top cursor slice
/// \warning only works within text!
FontSpan locateWord(word_location const loc) const;
/// fix DocIterator in circumstances that should never happen.
/// \return true if the DocIterator was fixed.
bool fixIfBroken();
/// fix DocIterator in circumstances that should never happen.
/// \return true if the DocIterator was fixed.
bool fixIfBroken();
/// find index of CursorSlice with &cell() == &cell (or -1 if not found)
int find(MathData const & cell) const;
/// find index of CursorSlice with &cell() == &cell (or -1 if not found)
int find(MathData const & cell) const;