* Re: problems with indented columnized itemization
2004-10-13 16:31 problems with indented columnized itemization Stefan Wachter
@ 2004-10-15 9:18 ` Hans Hagen
0 siblings, 0 replies; 2+ messages in thread
From: Hans Hagen @ 2004-10-15 9:18 UTC (permalink / raw)
Stefan Wachter wrote:
> Hi all,
>
> I try to generate the following output:
>
> Some Label * item 1 * item 2 * item 3
> * item 4 * item 4 * item 5
>
> i.e. I want to have a label followed by an itemization that is set in
> columns.
>
> I tried several things but did not succeede
>
> 1. Variant - a tabulate environment
>
> \starttabulate[|l|p|]
> \NC
> \inframed[width=\LabelWidth,align=left]{Teilnehmer}\hskip\SepWidth
> \NC
> \startitemize[columns,three]
> \item Bauherr
> \item Architekt
> \item Bauleiter
> \stopitemize
> \NC\NR
> \stoptabulate
this is beyond the tabulate handler; i guess i can implement support for
that but it's not that trivial (using simplecolumns and collecting lines
and such)
> There the following problems: a) the itemization introduces an
> additional empty line and b) the [columns,three] parameter is not
> considered.
>
> 2. Variant - using a narrower
>
> \startnarrower[left]
> \startitemize[columns,three]
> \item Bauherr
> \item Architekt
> \item Bauleiter
> \stopitemize
> \stopnarrower
>
> The problem with this variant is that the coluns do not respect the
> right margin, i.e. the items reach beyond the paper.
>
>
> Has anyone a solution for this problem?
see end of mail; the third one only works with the patched macro:
\unprotect
\def\redostartitemgroup[#1][#2]%
{\setfalse\inlinelistitem % new, no indent (leftskip)
\setfalse\concatnextitem % new, concat
\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=>\@EA\!!counta\getitemparameter\itemlevel\c!n]%
% new
% \edef\columneditemleftskip{\the\leftskip}%
% \def\postprocesscolumnbox##1%
% {\scratchdimen\columneditemleftskip
% \divide\scratchdimen \nofcolumns
% \hbox{\hskip\columneditemleftskip\hbox{\box##1}}}%
% \scratchdimen-\columneditemleftskip
% \multiply\scratchdimen \nofcolumns
% \advance\scratchdimen \columneditemleftskip
% \advance\scratchdimen \hsize
% \edef\columntextwidth{\the\scratchdimen}%
% \leftskip\zeropoint
% so far
\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}%
%\getitemparameter\itemlevel\empty
\let\listitem\empty % ** start value
\doifelsenothing{#1} % iffirstargument
{\edef\@@opsymbol{\getitemparameter\itemlevel\c!symbol}%
\letgvalueempty{\@@globalitemsymbol\itemlevel}%
\global\letitemparameter\itemlevel\v!continue\empty
% \setitemmark\@@opsymbol % ** default value
\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,\@@opsymbol]\docommando
\processcommalist[#1]\docommando}%
\ifx\listitem\empty
\setitemmark\@@opsymbol
\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}
\protect
\starttext
\setupbodyfont[small]
\showframe
\startnarrower[left]
\startcolumns[n=3]
\startitemize
\item \input ward
\item \input ward
\item \input ward
\stopitemize
\stopcolumns
\stopnarrower
\blank
\startnarrower[left]
\startitemize[columns,three]
\item \input ward
\item \input ward
\item \input ward
\stopitemize
\stopnarrower
\blank
\setupitemize[leftmargin=1.5em]
\startitemize[columns,three]
\item \input ward
\item \input ward
\item \input ward
\stopitemize
\stoptext
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 2+ messages in thread