Hi!

I'd like to follow up on a problem that Denis came across recently with the 
titles argument in tabulate. (It's more a solution than a question, but any 
hints to improve the answer are welcome.) I wanted to use this argument for an 
easy specification of, well, a title for a "recipe". The advantage is that all 
information is held together and it's easy to use for people who are not (too) 
familiar with ConTeXt.

So, in one file I can define all styles (which the end-user would not need to 
see):

\definetabulate[recipe][|l|l|p|l|]

\setuptabulate
        [recipe]
        [
        bodyfont=small,
        distance=medium,
        before={\blank[back, small]},
        header=text,
        headstyle=\bi, % this formats the "\BC" cells
        headcolor=red, % this formats the "\BC" cells
        ]


\starttext

And then use:

\startrecipe[title={Whatever mixture 1}]
\FL 
\NC Absolute \BC Stock \NC Ingredient \NC Final \NR 
\HL
\NC 1 \NR
\LL
\stoprecipe

\startrecipe[title={Whatever mixture 2}]
\FL 
\BC Absolute \BC Stock \BC Ingredient \BC Final \NR 
\HL
\NC 1 \NR
\LL
\stoprecipe

\stoptext

etc.

However, I cannot change the way the title is styled (or spaced from the table) 
unless I do "title={\bi Some text.}". However, blank commands are also stripped 
off at this place. (I also don't get a clue from the source if there is any 
argument to spike-in some formatting.) 

So, if there is no easy way to access this one, we can work around:

\definetabulate[recipetab][|l|l|p|l|]

\setuptabulate
        [recipetab]
        [
        bodyfont=small,
        distance=medium,
        before={\blank[back, small]},
        % header=text, % THIS MUST NOT BE "text"
        headstyle=bold,
        headcolor=red,
        ]

\define\startrecipe{\dodoubleempty\dostartrecipe}

\long\def\dostartrecipe[#1][#2]#3\stoprecipe{%
        \iffirstargument
                {\bi #1}\blank[medium]
        \fi
        \ifsecondargument
                \startrecipetab[#2]
                #3
                \stoprecipetab
        \else
                \startrecipetab
                #3
                \stoprecipetab
        \fi
}

\startrecipe[Head 1]
\FL
\BC Absolute \BC Stock \BC Ingredient \BC Final \NR 
\HL
\NC 1 \NR
\LL
\stoprecipe

\startrecipe[Head 2][headcolor=blue] % pass on arguments to tabulate
\FL
\BC Absolute \BC Stock \BC Ingredient \BC Final \NR 
\HL
\NC 1 \NR
\LL
\stoprecipe

Small question though: Is there a ConTeXt way to "\long\def" or a simple way 
("user interface") to filter a list of arguments for a specific key=val pair, 
e.g. to make a single optional argument with headertitle={Some header.}?

Best


Benjamin

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to