[NTG-context] blank line and signals

Andreas Harder aharder at uni-koblenz.de
Tue Mar 16 10:32:08 CET 2010


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 …?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-consecutive-heads3.tex
Type: application/octet-stream
Size: 1650 bytes
Desc: not available
URL: <http://www.ntg.nl/pipermail/ntg-context/attachments/20100316/e2d322fe/attachment.obj>
-------------- next part --------------


Greeting
	Andreas



More information about the ntg-context mailing list