[NTG-context] vertical spacing and makeups

Wolfgang Schuster schuster.wolfgang at gmail.com
Sun Apr 19 20:50:53 CEST 2015


> Am 18.04.2015 um 20:29 schrieb Pablo Rodriguez <oinos at gmx.es>:
> 
> On 04/18/2015 07:15 PM, Wolfgang Schuster wrote:
>>> Am 18.04.2015 um 18:43 schrieb Pablo Rodriguez:
>>> [...]
>>> The first page shows that \setupwhitespace[big] affects to a single line
>>> in a makeup. Shouldn’t white space be added only between paragraphs? The
>>> second page is right vertically centered. And the third page shows that
>>> the white space isn’t added before the first paragraph in a normal page
>>> (no makeup).
>>> 
>>> This is the first issue, isn’t it a bug? Or what am I missing?
>> 
>> TeX inserts the \parskip value which is set by \setupwhitespace
>> before your text in the makeup environment. Note that this happens
>> only when you have skip before the text (e.g. with the default top=\vss
>> setting) at the begin of the environment.
>> 
>> The following low level example demonstrates this:
>> 
>> \setuppapersize[A6]
>> 
>> \starttext
>> 
>> \dontleavehmode
>> \ruledvbox to 3cm{\hsize=4cm text}
>> \ruledvbox to 3cm{\hsize=4cm\parskip=2ex\relax text}
>> 
>> \dontleavehmode
>> \ruledvbox to 3cm{\hsize=4cm\vss text\vss}
>> \ruledvbox to 3cm{\hsize=4cm\parskip=2ex\relax\vss text\vss}
>> 
>> \stoptext
> 
> Many thanks for your reply, Wolfgang.
> 
> So the a workaround would be to use \blank instead of \par or a blank
> line, wouldn’t it be?

You can flush the content of the buffer in a \vbox where you set the
whitespace at the begin of the box.

\def\startSlide
  {\grabbufferdata[SlideContent][startSlide][stopSlide]}

\def\stopSlide
  {\startmakeup[standard][align=middle]
   \vbox\bgroup
     \setupwhitespace[big]
     \begstrut\getbufferdata[SlideContent]\endstrut
   \egroup
   \stopmakeup}

\setuppapersize[S8]
%\setupbodyfont[100pt]

\showgrid

\starttext

\startSlide
program

content
\stopSlide

\startSlide
descender
\stopSlide

\stoptext

Wolfgang


More information about the ntg-context mailing list