Am 16.03.2010 um 10:32 schrieb Andreas Harder:

> 
> Am 16.03.2010 um 01:32 schrieb Wolfgang Schuster:
> 
>> Am 14.03.10 15:07, schrieb Andreas Harder:
>>> If one removes the blank line after \section{Section} the output is 
>>> correct, otherwise \TestSpace is ignored …
>>> 
>> \def\DefineSectionBlank
>> {\dotripleempty\doDefineSectionBlank}
>> 
>> \def\doDefineSectionBlank[#1][#2][#3]#4%
>> {\edef\CurrentSection{#1}%
>>  \setvalue{#1:#2:\ifthirdargument\the\dimexpr#3\relax\fi}{#4}}
>> 
>> \def\SectionBlank#1#2%
>> {\edef\CurrentSection{#1}%
>>  
>> \executeifdefined{#1:#2:\LastSectionBlankSignal}{\executeifdefined{#1:#2:\the\dimexpr\zeropoint\relax}{\getvalue{#1:#2:}}}%
>>  \doif{#2}{after}{\SectionBlankSignal}}
>> 
>> \let\LastSectionBlankSignal\zeropoint
>> 
>> \EveryPar{\let\LastSectionBlankSignal\zeropoint}
>> 
>> \def\SectionBlankSignal
>> {\setevalue{LastSectionBlankSignal}{\the\dimexpr\csname\CurrentSection 
>> Signal\endcsname\relax}}
>> 
>> % chapter
>> 
>> \DefineSectionBlank [Chapter] [before] {\blank[force,48pt]}
>> \DefineSectionBlank [Chapter] [after]  {\blank[20pt]}
>> 
>> \newsignal\ChapterSignal
>> 
>> \setuphead
>> [chapter]
>> [before=\SectionBlank{Chapter}{before},
>>  after=\SectionBlank{Chapter}{after}]
>> 
>> % section
>> 
>> \newsignal\SectionSignal
>> 
>> \DefineSectionBlank [Section] [before] [\ChapterSignal] {\blank[18pt]}
>> \DefineSectionBlank [Section] [before]                  {\blank[24pt]}
>> \DefineSectionBlank [Section] [after]                   {\blank[18pt]}
>> 
>> \setuphead
>> [section]
>> [before=\SectionBlank{Section}{before},
>>  after=\SectionBlank{Section}{after}]
>> 
>> \showgrid
>> 
>> \starttext
>> 
>> \chapter{Chapter}
>> 
>> \section{Section}
>> 
>> \chapter{Chapter}\edef\CurrentSection{Section}\SectionBlankSignal % tell 
>> \section the last header was \section too!
>> 
>> \section{Section}
>> 
>> \chapter{Chapter}
>> 
>> text
>> 
>> \section{Section}
>> 
>> \stoptext
> 
> Hello Wolfgang,
> 
> thank you for your elaborate example!
> 
> In the meantime I played a little with weak/strong blanks, before I figured 
> out that this already works out of the box. It seams that the blank before a 
> head gets a higher priority and overrides the blank after the previous head, 
> so that there is no need for signals at all …?



In some projects it might look better if the space between two consecutive 
section heads is smaller than the regular space between section head and text.
That's where signals are needed and where Wolfgang's code does a great job.

Steffen
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to