[NTG-context] How to avoid a page break?

Marcin Borkowski mbork at atos.wmid.amu.edu.pl
Tue Nov 4 23:42:21 CET 2008


Dnia Tue, Nov 04, 2008 at 11:25:17PM +0100, Wolfgang Schuster napisał(a):
> 
> Am 04.11.2008 um 22:39 schrieb Marcin Borkowski:
> 
> > Dnia Tue, Nov 04, 2008 at 10:17:51PM +0100, Wolfgang Schuster  
> > napisał(a):
> >>
> >> Am 04.11.2008 um 21:21 schrieb Marcin Borkowski:
> >>
> >>> Hi,
> >>>
> >>> I have the following in my code:
> >>>
> >>> \def\doPutTitle#1{%
> >>> \startalignment[middle]
> >>>   \bfb
> >>>   \page[bigpreference]
> >>>   \blank[2*big]
> >>>   #1%
> >>>   \page[no]%
> >>>   \blank[big]%
> >>>   \page[no]%
> >>> \stopalignment
> >>> \page[no]%
> >>> }%
> >>>
> >>> Why is it still possible that I have a page break after, say,
> >>> \doPutTitle{some title} (in MkII, in MkIV page breaks fall in
> >>> different
> >>> places).  Which percentage signs and \page[no]'s are unnecessary  
> >>> here?
> >>
> >> \def\doPutTitle#1%
> >>   {\page[bigpreference]
> >>    \vbox\bgroup
> >>    \raggedcenter
> >>    #1%
> >>    \egroup
> >>    \nobreak\blank[big]}
> >
> > OK, though this looks rather low-level.  I was thinking about  
> > something
> > more user-friendly;).
> >
> > This raises a philosophical question: is it the "ConTeXt way" to use
> > low-level constructs in environments and high-level in documents?   
> > Or is
> > it better to avoid low level whenever possible?  Also, your code mixes
> > low-level commands (\vbox, which is a TeX prmitive, \raggedcenter,  
> > which
> > is a ConTeXt low-level command, I guess) and high-level ones (\blank).
> > I understand that this ensures a uniform vertical spacing (\blank[big]
> > is obviously better than \vskip 10pt;)), but I thought that it is
> > against ConTeXt philosophy to use low-level stuff unless something
> > really non-standard is needed.
> 
> Here is a better method, there is nothing wrong with low level but
> you should know what you do.

Yes, that's obvious.  But high-level is better in one thing: when I want
to teach ConTeXt to non-TeX-maniacs;), it's the only possibility.

> 
> \defineblankmethod [nobreak] {\nobreak}
> 
> \def\doPutTitle#1%
>    {\framed[frame=offwidth=\textwidth,align=middle]{#1}%
>     \blank[nobreak,line]}

OK, that's very nice, apart from the thing that the only two ways of
learning it are: (1) studying sources or (2) asking here.  Also, the
trick with \framed[frame=off,...] is neat, but I still don't get it: why
my \startalignment[middle] didn't work?  And how does exactly
\blank[something] work?

Don't think I need these answers *now*.  But it would be nice to
understand ConTeXt a bit some day...

You know, with plain TeX it's relatively easy to understand
*everything* - it's so small and, well, primitive;).  With LaTeX things
get messy, but still I can read the sources - they are very "plainy", I
mean LaTeX does not have so much UI for developers/package/class
writers, so it's not *that* difficult to understand parts of source
code.  But ConTeXt baffles me a lot.  I guess that reading sources is
the only remedy - but I don't have enough time now...  But some day, I
*will* understand this;).

> 
> Wolfgang
> 

PS. Wolfgang, can I still subscribe to your fan club?  Do I get a free
t-shirt;)?

Greets

-- 
Marcin Borkowski (http://mbork.pl)

People can be divided into two groups: those who can be divided into
two groups and those who can't.


More information about the ntg-context mailing list