Hello. Is there any particular reason this is getting private? I would prefer public lists since answers to your questions can very well be interesting for other readers of the ML. I really would like to forward this answer to the ML unless you speak against it. What is wrong with that? Say, come on, i'll Cc: it right away.
"Brendan Caluneo" <caluneo.bren...@gmail.com> wrote: |the package can format MLA style essays, but I am having a problem \ |with one word |widow lines. For example, given the line "The highest rating it can \ |receive: AO for Adults Only.", the page breaks after the first "the" \ |but the word |"highest" is put in the header with the page numbering while the rest \ |of the sentence continues on an inch from the top as it should. Something \ |like: | |The | |- page break (this is the header for page numbering)- | |highest That i don't understand. Roff uses special requests for header and footer lines; if you want to do that in some special way so that it serves your purpose, you should create .di (versions) and dump them out at appropriate times. |Caluneo 2 | |-spacing (back to where the essay text should go)- | |rating it can receive. | |I've read pages elsewhere about how to fix this, but none of the solutions \ |they yielded worked for me. Well the manual has section 5.16 on "Page Control". The request to deal with orphan lines is .ne, and you will likely have a hard time getting the paragraphs right. E.g., i have a paragraph macro that is (and i have ".blm PARA", too, and yes the requests are all .als aliases of real roff requests) .NUMBER #PARA_SPACE 1v .NUMBER #PARA_INDENT 0 .MACRO PARA .\" FIXME . br . \" Suppress any spacing before _and_ at (!) pagestart . ie ((\\n[ROFF:#VERT_POS]u > \\n[S:#PAGE_START]u)) \{\ ' sp \\n[#PARA_SPACE]u . if (\\n[ROFF:#PAGENO] = 1) \{\ . if !d S:TOP_BOXES_SET .S:CHECK_TOP_BOXES I indeed have some code for doing my own headers, too, and to be able to get that for the first page (as opposed to follow pages where the page trap .wh comes into play) i seem to have found no better solution than this. . \} . if (\\n[ROFF:#VERT_POS] >= \\n[S:#PAGE_END_CRITICAL]) \{\ . ne \\n[#ORPHAN_LINES] I have a page layout calculator which gets sprung for each page, too, and it sets a critical dimension (as via . nr S:#PAGE_END_CRITICAL \\n[S:#PAGE_END]u-(\\n[#ORPHAN_LINES]u*1v) ) that is then used to adjust .ne requests on the fly, whenever a paragraph is newly opened. I.e., you need to (or should) have something that can be sprung via traps as well as because of explicit user requests, say a new paragraph. Otherwise you will sooner or later have a layout problem that is not solvable except by placing command into the document itself, and that is something that i for one really dislike a lot. . \} . \} . if \\n[#PARA_INDENT] \{\ . ie d S:PARA_NOINDENT .rm S:PARA_NOINDENT . el .ti \\n[#PARA_INDENT]u . \} .. Hope this helps, Ciao from gray Germany, --steffen