Johannes Graumann wrote:
Hello,
In LaTeX (don't remember whether this is generic or specific to one of the packages I used to use), the 'caption' command for floats came along this way:
\caption[optional short version]{Caption}
we use [] for references, and once users want one alternative, they may want another one as well, so best cook up a generic mechanism
If one uses the 'optional short version' bit, the Table of Figures/Tables present the short version rather than the whole caption (which in my case is long paragraphs and makes the TOF/TOT unpractical). I would very much like to have that functionality in context.
Thanks for any hints on how to achieve this. Poking around in the source did not lead this newbie to a starting point ...
something \def\MyCaption{\firstoftwoarguments} ...\MyCaption{bla}{more bla} or better, wrapped in a feature: \unprotect % let's reuse this one in selectors (from syst-ext) \def\dofilterfromstr#1#2% max n {\ifcase#1\or \ifcase#2\or \strippedcsname\firstofoneargument \else \strippedcsname\gobbleoneargument \fi \or \ifcase#2\or \strippedcsname\firstoftwoarguments \or \strippedcsname\secondoftwoarguments \else \strippedcsname\gobbletwoarguments \fi \or \ifcase#2\or \strippedcsname\firstofthreearguments \or \strippedcsname\secondofthreearguments \or \strippedcsname\thirdofthreearguments \else \strippedcsname\gobblethreearguments \fi \or \ifcase#2\or \strippedcsname\firstoffourarguments \or \strippedcsname\secondoffourarguments \or \strippedcsname\thirdoffourarguments \or \strippedcsname\fourthoffourarguments \else \strippedcsname\gobblefourarguments \fi \or \ifcase#2\or \strippedcsname\firstoffivearguments \or \strippedcsname\secondoffivearguments \or \strippedcsname\thirdoffivearguments \or \strippedcsname\fourthoffivearguments \or \strippedcsname\fifthoffivearguments \else \strippedcsname\gobblefivearguments \fi \fi} \def\filterfromvalue#1#2#3% value max n {\@EA\@EAEAEA\csname % we use the fact that an \@EA\ifx\csname#1\endcsname\relax % undefined cs has become \relax \strippedcsname\gobbleoneargument % which we then gobble here \else \dofilterfromstr{#2}{#3}% \fi \endcsname\csname#1\endcsname} \def\filterfromnext#1#2% max n {..}{..}{..}{..} {\csname\dofilterfromstr{#1}{#2}\endcsname} % new, selectors \definesystemvariable{sx} \def\defineselector{\dodoubleargument\dodefineselector} \def\setupselector {\dodoubleargument\dosetupselector} \def\dodefineselector[#1][#2]{\getparameters[\??sx#1][\c!max=2,\c!n=1,#2]} \def\dosetupselector [#1][#2]{\getparameters[\??sx#1][#2]} \unexpanded\def\select#1% {\filterfromnext {\executeifdefined{\??sx#1\c!max}1} {\executeifdefined{\??sx#1\c!n }1}} \defineselector[caption][max=2,n=1] \start \setupselector[caption][n=1] \placelist[figure][criterium=all] \stop \starttext \placefigure {\select{caption}{zapf}{\input zapf \relax}} {} \stoptext i'll add selectors to the core Hans ----------------------------------------------------------------- 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 -----------------------------------------------------------------