Thomas A. Schmitz <mailto:thomas.schm...@uni-bonn.de>
22. Oktober 2015 um 13:51
Hi,

I'm trying to set up a header: if a page contains only one marking, it should display this, if it has more than one, display the first and last. Here's what I tried, unsuccessfully:

\definemarking [test]

\startsetups [test header]
\doifelse {\expanded{\getmarking[test][top]}} {\expanded{\getmarking[test][bottom]}}
    {\getmarking[test][top]}
    {\getmarking[test][top] and \getmarking[test][bottom]}
\stopsetups

\setupheadertexts [\setups{test header}]

\starttext

\marking[test] {One}

\input knuth

\marking [test] {Two}

\page

\marking [test] {Three}

\input tufte

\stoptext

How can I make the \doifelse work? I'm not sure I understand the keywords top/bottom, first/last, and previous/next.
You have to use the \fetchmark command (which is currently broken but I sent a fix to the dev list)
to check the content of both marks because \getmarking isn’t expandable.

\startsetups [test header]
    \doifelse{\fetchmark[test][top]}{\fetchmark[test][bottom]}
        {\getmarking[test][top]}
        {\getmarking[test][top] and \getmarking[test][bottom]}
\stopsetups

Wolfgang
___________________________________________________________________________________
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