Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Wed, 10 Jun 2009 18:54:25 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n5AGsOXW014648 for ; Wed, 10 Jun 2009 18:54:25 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n5AGp2fQ027892 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 10 Jun 2009 18:51:02 +0200 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n5AC7Mfx006334; Wed, 10 Jun 2009 18:50:52 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 319103 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 10 Jun 2009 18:50:52 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id n5AGeq4F018078 for ; Wed, 10 Jun 2009 18:40:52 +0200 Received: from ix.urz.uni-heidelberg.de (cyrus-portal.urz.uni-heidelberg.de [129.206.100.176]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n5AGeqaL020917 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 10 Jun 2009 18:40:52 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by ix.urz.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id n5AGep7o003757 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 10 Jun 2009 18:40:51 +0200 Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n5AGeglx024533 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 10 Jun 2009 18:40:46 +0200 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1MEQqw-0004Ox-2l for LATEX-L@URZ.UNI-HEIDELBERG.DE; Wed, 10 Jun 2009 16:40:42 +0000 Received: from p5b2a4efe.dip.t-dialin.net ([91.42.78.254]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 10 Jun 2009 16:40:42 +0000 Received: from news3 by p5b2a4efe.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 10 Jun 2009 16:40:42 +0000 X-Injected-Via-Gmane: http://gmane.org/ Lines: 63 References: <4A2F5FE3.3030205@morningstar2.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: p5b2a4efe.dip.t-dialin.net User-Agent: 40tude_Dialog/2.0.15.41de X-Spam-Level: X-Spam-Flag: No X-Envelope-From: X-Spam-Status: No, hits=-4.20 required=5 tests=AWL,BAYES_00,CRM114_GOOD,L_P0F_Linux,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS,SPF_PASS Message-ID: Date: Wed, 10 Jun 2009 18:40:12 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Ulrike Fischer Subject: Re: Key-value input To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 10 Jun 2009 16:54:25.0257 (UTC) FILETIME=[1C446D90:01C9E9EC] Status: R X-Status: X-Keywords: X-UID: 5789 Am Wed, 10 Jun 2009 08:25:23 +0100 schrieb Joseph Wright: > I wonder if the pgfkeys idea of using one macro to create and set keys > is confusing. Currently, it is what I've done in keys3: > > \keys_manage:n{ > % Some keys are created > } > \keys_manage:n{ > % Some keys are set > } > > but do other people think that strict separation: > > \keys_generate:n { > % Some keys are created > } > \keys_set:n { > % Some keys are set > } > > is clearer? Yes. > > The other question is how to make keys in this way. keys3 uses the idea > of properties: > > key name/.property = value > > for example > > \module\my~key/.tl_set:N = \l_module_my_tl, > \module\my~key/.default:n = {default} > > to create a key which will store its input in a tl. On the other hand, > template uses and "extended key-value" approach: > > key name = [default] > > for example: > > my key =n [default] \l_module_my_tl > > Both ideas have some good points. template keeps everything in one line, > which probably makes it easier to see what goes with what. On the other > hand, the pgfkeys approach does not need any special layout of the input > to work. > > I wonder how other people see the two schemes, and if there are other > ways that similar effects can be achieved. I would prefer the two step method -- because it probably means that you can change the default independently from the function. (I haven't never really tried to use pgfkeys because the last time I looked at it it wasn't babel safe and all the spaces in the key names in the documentation make me nervous.) -- Ulrike Fischer