[NTG-context] Doublesided, with header text centered.
Aditya Mahajan
adityam at umich.edu
Fri Jun 9 21:33:01 CEST 2006
On Fri, 9 Jun 2006, John R. Culleton wrote:
> On Friday 09 June 2006 13:06, Aditya Mahajan wrote:
>> On Thu, 8 Jun 2006, Aditya Mahajan wrote:
>>> On Thu, 8 Jun 2006, John R. Culleton wrote:
>>>> Here is a common situation. I need a doublesided layout so I can
>>>> adjust the backspace. I want the header text on evens and odds
>>>> centered over the text block. To simplify the issue let's say
>>>> I want "left" on the evens and "right" on the odds. If I specify
>>>> (per the manual)
>>>> \setupheadertexts[text][left][right]
>>>> then I get both words on both pages.
>>>> If I use two extra sets of [] then I can get "left" on the left
>>>> and "right" on the right but I cannot get them centered.
>>>>
>>>> I am missing something obvious I am sure. Anyone have a firm
>>>> grasp of the obvious? I don't.
>>>
>>> If I understand you correctly, use \setupheadertexts[center]. If you
>>> want something in the left, center and right, then do
>>>
>>> \setupheadertexts[left][right]
>>> \setupheadertexts[center]
>>
>> I misread your mail. How about something like this
>>
>> \def\setupextendedheadertexts{%
>> \dosixtupleempty\dosetupextendedheadertexts}
>>
>> \def\dosetupextendedheadertexts[#1][#2][#3][#4][#5][#6]{
>> \setupheadertexts[] %Empty the center headers
>> \setupheadertexts
>> %Odd page
>> [{\rlap{#1}\hfill#2\hfill\llap{#3}}][]
>> %Even page
>> [][{\rlap{#4}\hfill#5\hfill\llap{#6}}]}
>>
>> \setupextendedheadertexts[odd-left][odd-center][odd-right][even-left][even-
>> center][even-right]
>>
>> \starttext
>> \dorecurse{10}{This is a test \page}
>> \stoptext
>>
>>
>> This does not take care of "magic" texts like pagenumber, section,
>> chapter. If you want that, you can try (careful with linebreaks)
>>
>> \def\setupextendedheadertexts{%
>> \dosixtupleempty\dosetupextendedheadertexts}
>>
>> \def\dosetupextendedheadertexts[#1][#2][#3][#4][#5][#6]{
>> \setupheadertexts[] %Empty the center headers
>> \setupheadertexts
>> %Odd page
>> [{\rlap{\domagic{#1}}\hfill\domagic{#2}\hfill\llap{\domagic{#3}}}][]
>> %Even page
>> [][{\rlap{\domagic{#4}}\hfill\domagic{#5}\hfill\llap{\domagic{#6}}}]}
>>
>> \unprotect
>> \def\domagic#1{%
>> \convertargument#1\to\ascii
>> \doifsomething\ascii{%
>> \doifelsemarking\ascii
>> {\getmarking[\ascii][\v!first]}
>> {\ConvertConstantAfter\doifelse\v!pagenumber{#1}
>> \@@plaatspaginanummer
>> {\ConvertConstantAfter\doifelse\v!date{#1}
>> {\currentdate}
>> {#1{}{}{}}}}}}
>> \protect
>>
>> \setupextendedheadertexts[date][chapter][pagenumber][pagenumber][section][W
>> hatever]
>>
>> \starttext
>> \dorecurse{4}{
>> \chapter{Chapter \recurselevel}
>> \input tufte \endgraf
>> \input tufte \endgraf
>> \input tufte \endgraf
>> \section{Section}
>> \input knuth
>> \input knuth
>> \input knuth
>> }
>>
>> \stoptext
>>
>>
>> Aditya
>> _______________________________________________
>> ntg-context mailing list
>> ntg-context at ntg.nl
>
> Very impressive, but surely there is a simpler solution! I just
> want one header on the left hand page, a different one on the
> right, and both of them centered on their respective pages.
\def\MyHeader{
\doifoddpageelse{Odd Header}
{Even Header}}
\setupheadertexts[\MyHeader]
If you want you can extend it to recognize keywords like date,
pagenumber, section etc.
Aditya
More information about the ntg-context
mailing list