Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by h1439878.stratoserver.net (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id t6E8jdla020625 for ; Tue, 14 Jul 2015 10:45:40 +0200 Received: from relay2.uni-heidelberg.de ([129.206.210.211]) by mx-ha.gmx.net (mxgmx104) with ESMTPS (Nemesis) id 0MNvHT-1ZMMti1cV9-007Tqt for ; Tue, 14 Jul 2015 10:45:33 +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 t6E8hdQ9032406 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 14 Jul 2015 10:43:43 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t6E8btNH003076; Tue, 14 Jul 2015 10:43:39 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12370856 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 14 Jul 2015 10:42:26 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t6E8gQoh004678 for ; Tue, 14 Jul 2015 10:42:26 +0200 Received: from tkt-001-i374.relay.mailchannels.net (tkt-001-i374.relay.mailchannels.net [174.136.5.177]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id t6E8gJJD022844 for ; Tue, 14 Jul 2015 10:42:23 +0200 X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp3.easily.co.uk (ip-10-213-14-133.us-west-2.compute.internal [10.213.14.133]) by relay.mailchannels.net (Postfix) with ESMTPA id 554FEA0B15 for ; Tue, 14 Jul 2015 08:42:16 +0000 (UTC) X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp3.easily.co.uk (smtp3.easily.co.uk [10.83.15.107]) (using TLSv1 with cipher DHE-RSA-AES256-SHA) by 0.0.0.0:2500 (trex/5.5.1); Tue, 14 Jul 2015 08:42:17 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: netnames|x-authuser|joseph.wright@morningstar2.co.uk X-MailChannels-Auth-Id: netnames X-MC-Loop-Signature: 1436863336880:652870870 X-MC-Ingress-Time: 1436863336879 Received: from [139.222.114.154] (port=51073 helo=[139.222.114.154]) by smtp3.easily.co.uk with esmtpa (Exim 4.43) id 1ZEvn4-0001TI-3c for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 14 Jul 2015 09:42:14 +0100 References: <11lm3sqjz6xux$.dlg@nililand.de> <5595661F.1070304@morningstar2.co.uk> <55962878.5030204@morningstar2.co.uk> <55A4A8D2.6060304@morningstar2.co.uk> <1bc6qigbj7juc.dlg@nililand.de> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-AuthUser: joseph.wright@morningstar2.co.uk Message-ID: <55A4CB65.9050302@morningstar2.co.uk> Date: Tue, 14 Jul 2015 09:42:13 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: Order of key declarations To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <1bc6qigbj7juc.dlg@nililand.de> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-GMX-Antivirus: 0 (no virus found) X-UI-Filterresults: notjunk:1;V01:K0:kOXaXB+wefw=:RNtJiU90yHLxI5Gg9w3a5m5ctM QWbCHJX8zcUIGR+m12RyAp17I5e2tc8KRR6U/J+5FSns7on5+QbMcMCaIaLqCDJcuXSZPHVgQ vjZn34HQWRmVK3KVxjVQ53Jby828I8Z0qK0c0LTGdzVTFGfVn6Hd+jpWfu082yzfqKp7L0Jmd RfrlnCz92anrkz5LuWnRm9TGRfXfGgdtz0RKc/rBnd6BYejH9MOEtT71TcKM94ykYDYI3qbtT bfGp56yZli1jYWeZP0zfc+xdebu4orFNlvSulIcKy/lMdxz04VYTAzZjmWRy1fMmroMlDmP76 zeqrcs1Kc0u5M4oHHiGJ2s+uU4kUSFMFPq4q3aT7BuDD2JdBLBItQtn8EjdEAvL+k5pLJf1nv V60BKuccZ3+bECdHNp7j4KeTVwzBYOJA+N6R3qtPgMehVNZ/klKCtkzCszAsguTl7yWK34sp/ jEcKl+ntJold/+j0UiGTzYY41C+VFQMp2AktRHPf5DFbHwuqSW5NjK2BI+HiYuhRtB6vDsJWz hDaKm73vrxhPgvK1peXPgfq3kPIHqrJHVDBLNsi3zvsS2kUBDJX1v0BecszDITiLzb+wihlpS wVIDFeAsHK7V30L4jnXPW6uqcM2extEeWoxDPTDBteTcGvArGM/0wtzTQtvubzOQvh2HBhuRJ ab3B+wh9NL/IliMj4yp0HJYPNtIE6QbV+OESP+TX22uM4mw6umt44dqHyL1MsWwxM2Txkc0+M Re9IJtc5LWDzJqLA1uaSHHITp76RQKCJ3/JTcCeVGrnw0usqMP4BH/RtrzE3EGgZ1Dtyq0uuf QxX7bLb9aEj18ztiH7+cRTbTOUxPIBT0ibqgQ/BmLvxqGzrF6ljPVBXtgnrqIPnyUsmDaASL7 Ys21uWknGs+/mYKVaHlXxBR0IhpTkV7OMZdTV5rjUgyQp3WclsCQv5022Mf6M2lCcYMW+LMsN OdQybvkBvIL4WqEKiGsesFQGqCDVyJWwuLgo8OFpIl4r1FOjfMRFwaXULkDGaK/IivOjA0+3c a5GQG2j3vPjOPIwcMztNJOQvodJ+7TNu5zjjmklbsuCwjvHzT9iynaq4aN8teYNZnvYpS2m5w t33sgUJLg3Gjt6V6Zbw7sbrF6adws36HlAxJg4dJdri49BOsyy7rwZwEwJ8gJKAQ3/9okaN3O RI+dukIQpqEimtob5e988PUD4dzPuZyOXEB/j3Ckb6XNRRYW4U6BfuDY0tu90XlrDhFpzNYpz rhoEVk3OBU2fw3wlisCxQ82KwTZJSI16LZ/nJz9wXMlrc3+gsRv5/6CufqgrimVY8JiiTDevD wytoB0Iu0D7BrC/CuMSiiYhUC09ZYESSsh13rt+3t8gduHVWQmV15WqMhD/Q5ybu1obujVNHb zxZSpbq+mXOfYC+1aC08JShPeCFyeX26qVaUHiZv0OTE8Ex4YndbtFoY25wGrMrUBsW5MXLrD I6D4OzoP2ORoY3ZyShqFspyrs4BQMMX+hTsUMFJ75pKuuulKqcxZjlHXPTWAo6M8t8MGcBKg= = X-UI-Loop:V01:pvzAA+hkZEc=:zhxqTAekNOmo9Vu175G6OaemOOyFadhkN2CvqKp39vg= X-UI-Out-Filterresults: notjunk:1;V01:K0:I1qvteMb10Y=:kSod/PuJ3rHd7K5/EtYrcR px64vNGBW4hFdROxPt1gOZSnGbJZceDmqylbAbs7Iga6A4x1PHSEHNuDZQY/WBfh9htLRRrQ4 aAiQzu6nfbYoqBX1Qdd0668E/jswjDy9Y5/vnsUhIXTc9QeyFjAprvSmMe0BJZl37I544iwf9 rury3yrs6HHEXXB2xQ7unW9DFKqdUAlPga6pk4ZAbXWsTlWYdsxa2edlTA3pAiyzpJRM8gYiE qYFodMwwDnvDQoBeB5M2+NDn/WIskj2V3CnplVY6jlz3jKDpDdblwyXYBbEy0L9dXkm2mvAix dZ5qumVE8JfBsDKPs3Uutm26SLhxp0KWE1bvnjP6q3TdHR+rP4HfzwbFpwevUs3v9kJ3uW4pJ 1Vef8+rniXtyuzjutBLuq0PWS6vwiVDK5m4R/f5DdC3XMXJZq7SvtxE7T6+rlCTsYyU4K8k9l RbnSXGfC7OKbjxyUdPBHoBx7uRRq+aUsI+xhKS12Q45UAr0V/lzY X-Scanned-By: MIMEDefang 2.71 on 85.214.41.38 Status: R X-Status: X-Keywords: X-UID: 7769 On 14/07/2015 09:13, Ulrike Fischer wrote: > Am Tue, 14 Jul 2015 07:14:42 +0100 schrieb Joseph Wright: > >> On 03/07/2015 08:58, Ulrike Fischer wrote: >>> - .default:X can imho be reset with .default:n= {}. >>> - .groups:n can imho be reset with .groups:n = {}. >> >> As previously noted, I'll alter this behaviour for .groups:n so a blank >> version means 'remove from grouping'. I'll also document that. >> >> The .default:n is different: an empty default is not the same as no >> default at all (as a default means effectively a value is always given). > > In many cases it is. E.g. I could see not difference with the > .code:n or .tl_set:N. And even choice keys works without a default: > > \documentclass{article} > \usepackage{expl3} > \begin{document} > \ExplSyntaxOn > \keys_define:nn {test} > { > testa .code:n = {the~argument~is #1!}, > testb .tl_set:N = \l_test_tl, > testc .choice:, > testc / .code:n={xxx}, > } > > \keys_set:nn {test} {testa,testb,testc} > > \tl_if_empty:NTF\l_test_tl{~empty}{not empty} > > \ExplSyntaxOff > > \end{document} I was thinking of \keys_define:nn {test} { testa .code:n = {\tl_show:n {#1}}, testa .value_required:, testb .code:n = {\tl_show:n {#1}}, testb .value_required:, testb .default:n = {} } \keys_set:nn {test} {testa,testb} where one might expect to get an error only in the first case. That's not currently the situation! Setting the value required then setting a default is a bit odd, but the behaviour should be defined one way or another. I can see this both ways: I can alter the code so a default 'counts' for a required value or can document that it doesn't. > But .default:n={} wouldn't work with bool. No. I could add a property to remove a default but I think at present it's unusual enough that .undefine: followed by 'recreating' the key should probably cover it. -- Joseph Wright