Orphans and widows for specific paragraph groups
I have a couple of questions about preventing orphans for specific document blocks. These all relate to a web-based report card application I have written for a study abroad school client of mine. The ConTeXt file is being generated and processed out of a PHP Laravel framework app. I have stripped away most of the details as well as the application fonts, but the issue that I am facing is related to keeping the course header (done as a paragraph environment), \hairline, and the teacher's comment for that course together as a unit. At a minimum, I would like the three elements as a grouped and pushed to the following page. Ideally, and this is more for my own learning, I'd like to be able to have finer control---say the header, \hairline, and a set number of comment lines would be acceptable at the bottom of a page. What would be the best practices for this? advTHANKSance
MWE
\definefontfamily[mainface][rm][Latin Modern Roman] \definefontfamily[mainface][ss][Latin Modern Sans] \definefontfamily[mainface][tt][Latin Modern Typewriter] \definefontfamily[mainface][mm][Latin Modern Math] \setupbodyfont[mainface,9pt] % Set up default paragraph indenting and spacing. \setupindenting[yes, medium, next] \setupwhitespace[small] % Set up paragraph environment for subject header. \defineparagraphs [subjectpar][ n=2, before={\blank[2*big]}] \setupparagraphs [subjectpar] [1] [width=.3\textwidth] \starttext \blank[8*big, force] \dorecurse{10}{ \blank[2*big] \noindentation \startsubjectpar {\ss\tfc ENG4U} \subjectpar %% Need to keep the following together as a unit. {\ss\tfc English (Grade 12)} \stopsubjectpar \noindentation \vskip-2em\hairline \setupindenting[yes, medium, next] \dorecurse{1}{ \input lorem.tex } } \stoptext <<<< MWE -- Pavneet Arora m: +1 (647) 406-6843 Waroc Informatik t: +1 (416) 937-9276
I tried to use Aditya's suggestion (which was for Natural Tables) to keep paragraphs on the same page: \noindent{\blank[samepage]} but I don't seem to have much success with the MWE I posted earlier. Try as a might, I cannot seem to keep the paragraph head "{\ss\tfc English (Grade 12)}" and the hairline together. I can, however, keep the hairline and the following lorem text together, but I need all three elements to float as a group: the paragraph header, hairline, and paragraph body. Would anyone have any suggestions on how to accomplish this? Many thanks. On 09Jun16, Pavneet Arora wrote: ...
MWE
\definefontfamily[mainface][rm][Latin Modern Roman] \definefontfamily[mainface][ss][Latin Modern Sans] \definefontfamily[mainface][tt][Latin Modern Typewriter] \definefontfamily[mainface][mm][Latin Modern Math] \setupbodyfont[mainface,9pt] % Set up default paragraph indenting and spacing. \setupindenting[yes, medium, next] \setupwhitespace[small] % Set up paragraph environment for subject header. \defineparagraphs [subjectpar][ n=2, before={\blank[2*big]}] \setupparagraphs [subjectpar] [1] [width=.3\textwidth] \starttext \blank[8*big, force] \dorecurse{10}{ \blank[2*big] \noindentation \startsubjectpar {\ss\tfc ENG4U} \subjectpar %% Need to keep the following together as a unit. {\ss\tfc English (Grade 12)} \stopsubjectpar \noindentation \vskip-2em\hairline \setupindenting[yes, medium, next] \dorecurse{1}{ \input lorem.tex } } \stoptext <<<< MWE -- Pavneet Arora m: +1 (647) 406-6843 Waroc Informatik t: +1 (416) 937-9276
Pavneet Arora mailto:pavneet_arora@waroc.com 17. Juni 2016 um 14:22 I tried to use Aditya's suggestion (which was for Natural Tables) to keep paragraphs on the same page:
\noindent{\blank[samepage]}
but I don't seem to have much success with the MWE I posted earlier.
Try as a might, I cannot seem to keep the paragraph head "{\ss\tfc English (Grade 12)}" and the hairline together. I can, however, keep the hairline and the following lorem text together, but I need all three elements to float as a group: the paragraph header, hairline, and paragraph body.
Would anyone have any suggestions on how to accomplish this? You can put everything in a framedtext to keep it together.
\setupbodyfont[9pt] \setupindenting[yes,medium,next] \setupwhitespace[small] \definetabulate[subjectpar][|f{\ssc}w(.3\textwidth)|f{\ssc}p|] \setuptabulate [subjectpar][after={\blackrule[width=\textwidth,height=\linewidth]\noindentation}] \defineframedtext [subjectblock] [frame=off, width=max, offset=0pt, before={\blank[2*big]}] \starttext \blank[8*big, force] \dorecurse{10} {\startsubjectblock \startsubjectpar \NC ENG4U \NC English (Grade 12) \NC\NR \stopsubjectpar \input{lorem.tex} \stopsubjectblock} \stoptext Wolfgang
On Fri, 17 Jun 2016, Wolfgang Schuster wrote:
Pavneet Arora mailto:pavneet_arora@waroc.com 17. Juni 2016 um 14:22 I tried to use Aditya's suggestion (which was for Natural Tables) to keep paragraphs on the same page:
\noindent{\blank[samepage]}
but I don't seem to have much success with the MWE I posted earlier.
Try as a might, I cannot seem to keep the paragraph head "{\ss\tfc English (Grade 12)}" and the hairline together. I can, however, keep the hairline and the following lorem text together, but I need all three elements to float as a group: the paragraph header, hairline, and paragraph body.
Would anyone have any suggestions on how to accomplish this? You can put everything in a framedtext to keep it together.
Or, just put everything in a TABLE (that does not split, by default): \setupbodyfont[9pt] \setupindenting[yes,medium,next] \setupwhitespace[small] \startsetups subjects \setupTABLE[frame=off, align={normal,hyphenated}] \setupTABLE[column][1][width=0.3\textwidth] \setupTABLE[column][2][width=0.7\textwidth] \setupTABLE[row][1][style=\ssc, bottomframe=on, toffset={2\bigskipamount}] \stopsetups \starttext \blank[8*big, force] \dorecurse{10} {\startTABLE[setups=subjects]}] \NC ENG4U \NC English (Grade 12) \NC\NR \NC[nc=2] \input{lorem.tex} \NC\NR \stopTABLE} \stoptext Aditya
participants (3)
-
Aditya Mahajan
-
Pavneet Arora
-
Wolfgang Schuster