Hi,

Something like this?

(PS. I cannot send mail to your address, it bounces, do you have an alternative one?)

Hans


\unprotect

\def\v!txt{txt}

\appendtoks \letvalue\v!txt  \itemgrouptext  \to \itemgroupcommands

\setfalse\txtlistitem

\def\itemgrouptext#1%
{\def\symsymbol{\doitemattributes\itemlevel\c!headstyle\c!headcolor{#1}}%
 \symbolitemtrue
 \settrue\txtlistitem
 \itemgroupitem}

\def\redostartitemgroup[#1][#2]%
{\setfalse\inlinelistitem % new, no indent (leftskip)
 \setfalse\concatnextitem % new, concat
 \setfalse\txtlistitem
 \ifhmode
   \ifconditional\autoconcatnextitem % new, concat
     \ifdim\lastskip=\itemsignal     % new, concat
       \settrue\concatnextitem       % new, concat
     \fi                             % new, concat
   \fi                               % new, concat
   \iftextitems\else\doifnotinset\v!text{#1}\par\fi % suboptimal
 \fi
 \begingroup
 \ifnum\itemlevel=\plusone % NIEUW
   \doadaptleftskip {\getitemparameter1\c!margin}%
   \doadaptleftskip {\getitemparameter1\c!leftmargin}%
   \doadaptrightskip{\getitemparameter1\c!rightmargin}%
 \fi
 \dosetraggedcommand{\getitemparameter\itemlevel\c!align}\raggedcommand
 \doifsomething{\getitemparameter\itemlevel\c!indenting}
   {% is \expanded needed?
    \expanded{\setupindenting[\getitemparameter\itemlevel\c!indenting]}}%
 \doifinset\v!columns{#1}%
   {\ifinsidecolumns\else\ifnum\itemcolumndepth=\zerocount
      \globallet\itemcolumndepth\itemlevel
      \getitemparameter\itemlevel\c!before
      \processfirstactioninset
        [#1]
        [  \v!one=>\!!counta1\relax,
           \v!two=>\!!counta2\relax,
         \v!three=>\!!counta3\relax,
          \v!four=>\!!counta4\relax,
          \v!five=>\!!counta5\relax,
       \s!unknown=>[EMAIL PROTECTED]
      \startcolumns
        [\c!n=\!!counta, % netter \??op\itemlevel\c!n
         \c!height=,
         \c!rule=\v!off,
         \c!balance=\v!yes,
         \c!align=\v!no]%
    \fi\fi}%
 \doifinsetelse\v!intro{#1}\itemintrotrue\itemintrofalse
 \doglobal\increment\noflists
 \let\currentlist\noflists
 \newcounter\noflistelements
 \headitemfalse
 \subitemfalse
 \symbolitemfalse
 \let\marsymbol\relax
 \globallet\somdestination\empty
 \let\symsymbol\empty
 \the\itemgroupcommands
 \setitemlevel{#1}%
 \let\listitem\empty % ** start value
 \doifelsenothing{#1} % iffirstargument
   {\edef\@@opsymbol{\getitemparameter\itemlevel\c!symbol}%
    \letgvalueempty{\@@globalitemsymbol\itemlevel}%
    \global\letitemparameter\itemlevel\v!continue\empty
    \dosetupitemgroupvariable[\itemlevel][#2]}
   {\dosetupitemgroupconstant[\itemlevel][#1]%
    \dosetupitemgroupvariable[\itemlevel][#2]%
    \doifinsetelse\v!continue{#1}%
{\edef\@@opsymbol{\noexpand\getvalue{\@@globalitemsymbol\itemlevel}}%
       \getitemparameter\itemlevel\v!continue}
{\edef\@@opsymbol{\noexpand\getitemparameter{\itemlevel}{\c!symbol}}%
       \global\setitemparameter\itemlevel\v!continue
         {\dosetupitemgroupconstant[\itemlevel][#1]%
          \dosetupitemgroupvariable[\itemlevel][#2]}}%
    \def\docommando##1% \setitemmark resets \docommando
      {\doifnot{##1}{0}{\setitemmark{##1}}}%
    \processcommalist[#1]\docommando}%
 \ifx\listitem\empty
   \setitemmark\@@opsymbol % ** default value
   \ifx\listitem\empty
     \edef\currentitemsymbol{\itemlevel}%
   \fi
 \fi
 \ifautoitemintro\ifnum\prevgraf<3
   \itemintrotrue
 \fi\fi
 \ifparagraphitems
   \ifnum\itemlevel>\plusone
     \letitemparameter\itemlevel\c!inbetween\empty
   \fi
 \else\ifpackeditems
   \letitemparameter\itemlevel\c!inbetween\empty
 \fi\fi
 \calculatelistwidth\itemlevel{\dimen0}%
 \ifdim\dimen0>\zeropoint\relax
   \ifconditional\inlinelistitem\else
     \advance\leftskip \dimen0\relax
   \fi
 \fi}

\def\dolistitem % evt aantal items opslaan per niveau, scheelt zoeken
{\iftextitems
  % begin of item
 \else
   \par
 \fi
 \ignorespaces
 \increment\noflistelements
 \ifnum\itemcolumndepth=\zerocount \ifoptimizeitems
   \ifnum\noflistelements=\plusone        % tgv bv kolommen/nesting
     \findtwopassdata\s!list{\noflists:}% % wordt soms de volgorde
   \fi                                    % verstoord, vandaar \find
   \iftwopassdatafound
     \ifcase0\twopassdata\relax \twopassdatafoundfalse \fi
   \fi
   \iftwopassdatafound
     \ifnum\twopassdata=3
       \ifnum\noflistelements>1
         \doitembreak\itemnobreak
       \fi
     \else\ifnum\twopassdata>3
       \ifnum\noflistelements=2
         \ifitemintro
           \doitembreak\nobreak
         \else
           \doitembreak\itemnobreak
         \fi
       \else\ifnum\twopassdata=\noflistelements\relax
         \doitembreak\itemnobreak
       \else\ifnum\noflistelements>2
         \doitembreak\itembreak
       \else
         \ifitemintro\else\doitembreak\itembreak\fi
       \fi\fi\fi
     \fi\fi
   \fi
 \fi\fi
 \noindent
 \setbox8\hbox
   {\ifheaditem
      \ifsymbolitem
        \symsymbol
      \else
        \doitemattributes\itemlevel\c!headstyle\c!headcolor{\listitem}%
      \fi
    \else
      \ifsymbolitem
        \symsymbol % no attributes, why?
      \else
        \doitemattributes\itemlevel\c!style\c!color{\listitem}%
      \fi
    \fi}%
 \doifsomething\somdestination
   {\setbox8\hbox{\goto{\box8}[\somdestination]}}%
 \globallet\somdestination\empty
 \dimen2=\getitemparameter\itemlevel\c!width\relax
 \ht8=\strutheight
 \dp8=\strutdepth
\checkforrepeatedlistitem
 \ifdim\dimen2<\zeropoint\relax
   \llap{\ifsubitem\llap{+}\fi\box8\hskip\leftmargindistance}%
 \else
   \ifdim\dimen2=\zeropoint\relax
     \calculatelistwidth1{\dimen0}%
   \else
     \calculatelistwidth\itemlevel{\dimen0}%
   \fi
   \iftextitems
     \hbox{\ifsubitem+\fi\box8\hskip\fontdimen2\font}\nobreak
   \else\ifconditional\inlinelistitem
     \hbox to \dimen0{\ifsubitem\llap{+}\fi\box8\hfill}%
   \else\ifconditional\txtlistitem
     \scratchdimen\wd8
     \llap{\hbox to \dimen0{\ifsubitem\llap{+}\fi\box8\hfill}}%
     \hskip\scratchdimen
     % \hskip-\dimen0 this makes them touch
   \else
     \llap{\hbox to \dimen0{\ifsubitem\llap{+}\fi\box8\hfill}}%
   \fi\fi\fi
 \fi
\forceunexpanded % needed for m conversion (\os) / i need to look into this
 \setevalue{\@@currentitemsymbol\itemlevel}%
   {\getvalue{\@@localitemsymbol\itemlevel}}% still problems with \uchar ?
 \resetunexpanded
 \headitemfalse
 \subitemfalse
 \symbolitemfalse
 \EveryPar{\ignorespaces}%
 \ignorespaces}

\protect

\starttext

\input tufte

\defineitemgroup[gbitemize]
\setupitemgroup[gbitemize][each][headstyle=bold]

\startgbitemize
\txt{italian} some italians like this kind of cross||breed between an
itemize and a description
\txt{sicilians} i wonder how many sicilian mathematicians do a thesis on
the math involved in predicting the next big bang of the vulcano
\stopgbitemize

\input tufte

\stoptext

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to