I've been using \needspace{4\baselineskip}
to keep Poem Titles with a graphic produced by lilypond-book (music typesetting engine) together. In a 184p. document with 79 different Poem Titles followed by graphics, this rule is broken about four times, leaving the title at the bottom of one page and the music on the following page. Is there a way to further insist that the rule is never to be broken?
Also, if the \verselength is set to where long lines are broken and indented, the broken-indented part of the line occasionally finds itself on the other side of a page break, which is never ok either.
The poem lines alternate between \\* and \\, with the last line of a stanza \\! - this rule is also broken on rare occasion (perhaps in this example because of the \needspace{4\baseline} before the Poem's Title):
The minimum code required to reproduce this is a bit of a challenge given all the different elements at play. The whole code is available here: http://code.google.com/p/lypsautierant/source/browse/#svn%2Ftrunk%2Fpsautier, and if a specific part of the code would be helpful I will provide it. I am hoping that there is something global that forces latex (xetex) to always and without exception obey page breaking rules that have been made explicit - perhaps breaking in other places latex considers absolutely undesirable.