From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/27109 Path: news.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: \setupframed[...][...=...] Date: Wed, 12 Apr 2006 11:11:19 +0200 Message-ID: <443CC437.3020500@wxs.nl> References: <443C48FF.40504@seznam.cz> 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 1144833194 1627 80.91.229.2 (12 Apr 2006 09:13:14 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 12 Apr 2006 09:13:14 +0000 (UTC) Original-X-From: ntg-context-bounces@ntg.nl Wed Apr 12 11:13:12 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 1FTbPN-00032c-CV for gctc-ntg-context-518@m.gmane.org; Wed, 12 Apr 2006 11:13:05 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 2253E12778; Wed, 12 Apr 2006 11:13:05 +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 14341-04; Wed, 12 Apr 2006 11:13:04 +0200 (CEST) Original-Received: from ronja.vet.uu.nl (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 9E29F1278D; Wed, 12 Apr 2006 11:11:18 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id AD1981278D for ; Wed, 12 Apr 2006 11:11:16 +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 14253-09 for ; Wed, 12 Apr 2006 11:11:16 +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 DEE8912778 for ; Wed, 12 Apr 2006 11:11:15 +0200 (CEST) Original-Received: from [10.100.1.102] (unverified [10.100.1.102]) by controller-1 (SurgeMail 3.5b3) with ESMTP id 12274 for ; Wed, 12 Apr 2006 13:11:15 +0400 User-Agent: Thunderbird 1.5 (Windows/20051201) Original-To: mailing list for ConTeXt users In-Reply-To: <443C48FF.40504@seznam.cz> 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:27109 Archived-At: Vit Zyka wrote: > Hi, > > I tied to extend \setupframed[...=...] to also \setupframed[...][...=...]: > > --------------------------------- > \unprotect > \def\setupframed{\dodoubleempty\dosetupframed} > \def\dosetupframed{% > \ifsecondargument > \@EA\dodoublesetupframed > \else > \@EA\dosinglesetupframed > \fi > } > \def\dosinglesetupframed[#1][#2]{\getparameters[\??oi][#1]} > \def\dodoublesetupframed[#1][#2]{% > \bgroup > \def\dodoubleempty{}% > \def\doframed[##1]{##1}% > \xdef\tmp{\getvalue{#1}}% > \egroup > > \@EA\setvalue\@EA{\@EA#1\@EA}\@EA{\@EA\dodoubleempty\@EA\doframed\@EA[\tmp,#2]}% > } > \protect > > \starttext > \setupframed[framecolor=yellow] \framed{A} > \defineframed[myframed][framecolor=blue] \myframed{B} > \setupframe[myframe][framecolor=red] \myframed{C} > \stoptext > ------------------------------------- > > it works but with fully expansion of options. So it works a bit > differently in a cases > 1) > \def\ONorOFF{off} > \defineframed[myframed][frame=\ONorOFF] > \def\ONorOFF{on}\myframed{A} > > 2) > \def\ONorOFF{off} > \defineframed[myframed][frame=\ONorOFF] > \setupframed[myframe][framecolor=red] > \def\ONorOFF{on}\myframed{A} > > Is there some simple solution? Or it has to be rewritten in a way like > other \definesomething[...] (storing every parameter/definition-instance > in a macro)? If sometimes this code would be reviewed I vote for doing > \setupframed in this 'standard' ConTeXt way. > > next time post with less typos -) anyway, here is a working solution: \unprotect \def\setupframed {\dodoubleempty\dosetupframed} \def\dosetupframed {\ifsecondargument \@EA\dodoublesetupframed \else \@EA\dosinglesetupframed \fi} \def\dosinglesetupframed[#1][#2]% {\getparameters[\??oi][#1]} \def\dodoublesetupframed[#1][#2]% {\bgroup \let\dodoubleempty\empty \def\doframed[##1]{\gdef\globalredefinedframed{\dodoubleempty\doframed[##1,#2]}}% \getvalue{#1}% \egroup \letvalue{#1}\globalredefinedframed} \protect keep in mind that some 100 setups of the same instance may lead to rather big definitions \setupcolors[state=start] \starttext \setupframed[framecolor=yellow] \framed{A} \defineframed[myframed][framecolor=blue] \myframed{B} \setupframed[myframed][framecolor=red] \myframed{C} \stoptext i need to think about adding this, since it may break other things (i will run it for a while) you can add such patches to cont-loc.tex which is not distributed but read at runtime 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 -----------------------------------------------------------------