From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/27656 Path: news.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: Float caption feature request Date: Fri, 05 May 2006 14:42:36 +0200 Message-ID: <445B483C.8000807@wxs.nl> References: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1146833177 15234 80.91.229.2 (5 May 2006 12:46:17 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 5 May 2006 12:46:17 +0000 (UTC) Original-X-From: ntg-context-bounces@ntg.nl Fri May 05 14:46:15 2006 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from ronja.vet.uu.nl ([131.211.172.88] helo=ronja.ntg.nl) by ciao.gmane.org with esmtp (Exim 4.43) id 1FbzhE-0008Ue-IV for gctc-ntg-context-518@m.gmane.org; Fri, 05 May 2006 14:46:12 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 439A1127BA; Fri, 5 May 2006 14:46:12 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 25259-06; Fri, 5 May 2006 14:46:11 +0200 (CEST) Original-Received: from ronja.vet.uu.nl (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 4ABE4127B9; Fri, 5 May 2006 14:42:38 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 11A2F127B9 for ; Fri, 5 May 2006 14:42:37 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 23236-05 for ; Fri, 5 May 2006 14:42:36 +0200 (CEST) Original-Received: from mail.pragma-ade.net (dsl-212-84-128-085.solcon.nl [212.84.128.85]) by ronja.ntg.nl (Postfix) with SMTP id 17A2312796 for ; Fri, 5 May 2006 14:42:35 +0200 (CEST) Original-Received: from [10.100.1.102] (unverified [10.100.1.102]) by controller-1 (SurgeMail 3.5b3) with ESMTP id 15435 for ; Fri, 05 May 2006 16:42:35 +0400 User-Agent: Thunderbird 1.5.0.2 (Windows/20060308) Original-To: mailing list for ConTeXt users In-Reply-To: X-Server: High Performance Mail Server - http://surgemail.com r=-274017400 X-Authenticated-User: hagen@controller-1 X-Virus-Scanned: amavisd-new at ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.7 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl X-Virus-Scanned: amavisd-new at ntg.nl Xref: news.gmane.org gmane.comp.tex.context:27656 Archived-At: 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 -----------------------------------------------------------------