Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by h1439878.stratoserver.net (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id s8TLdqYn022681 for ; Mon, 29 Sep 2014 23:39:53 +0200 Received: from relay2.uni-heidelberg.de ([129.206.210.211]) by mx-ha.gmx.net (mxgmx105) with ESMTPS (Nemesis) id 0MHaUa-1XXdHD0GaK-003KPj for ; Mon, 29 Sep 2014 23:39:47 +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 s8TLadlG010457 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 29 Sep 2014 23:36:39 +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 s8TE1THm001470; Mon, 29 Sep 2014 23:36:39 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 11303076 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Mon, 29 Sep 2014 23:36:39 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id s8TLadXm019729 for ; Mon, 29 Sep 2014 23:36:39 +0200 Received: from smtp3.easily.co.uk (smtp3.easily.co.uk [91.194.151.18]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id s8TLaWeY010420 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 29 Sep 2014 23:36:35 +0200 Received: from [31.52.244.197] (port=56987 helo=palladium.home) by smtp3.easily.co.uk with esmtpa (Exim 4.43) id 1XYicS-0005vB-0X for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Mon, 29 Sep 2014 22:36:32 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 References: Content-Type: text/plain; charset=UTF-8 Message-ID: <5429D0DF.7060608@morningstar2.co.uk> Date: Mon, 29 Sep 2014 22:36:31 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: [l3keys] Suggestion: Add a key property for specifying key that /has/ to be used To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-MIME-Autoconverted: from 8bit to quoted-printable by relay2.uni-heidelberg.de id s8TLadlG010457 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:xSeH7NoA0Zo=:aCL2rOxdCUjxU/esgk5nbQGFqb MKnm9sD1kqtYK2fLeNmMzjD8oOixpBPsVfEU/rBlz32lHFru8BPyB+vlTxI31OCwfcTWBg+Fv 0S+pi2Aeli59zqymSK9kkTl6/FjF9Q3yGQgZ35zV6jPHd8azi+TyVfNCM/myB/5eG+qjIWdIT CAHMlZzXQkXLg6v77tz7ZfU4Ui3BiaCMdnFIKOSDIFBEiP7Eb1Fb8dxMaylh9AC60FAXRFp7Q nkNBDcl5Lj8Qdjdmxxu9Y/7SdGySl7iW2/lDg7bhrA57AcexJq3Wl7uCfnrxkrcZ/RJcSIj1b MDS+w+e5wK3s8ocNsog9kgfaX4p+2m3jUjggoypiK1jJNeHAVD9e0E72cyDLA33vfQL4ybiLx 1vytF3otI3sa2ryRcUnBmHYEWpTJrDcs7nB6wfvVQEhU4MSswA+sUPfPwcWaeTGG9fwhgsWnk ZteTvO/ZmaqDNJ/S0bA20TzVAZdgFkRCrMHODGYDyqi+2AXnunqDqrMoTP1+PTRxCf1pcBlz+ XJ2NDRkfo3Xs4Om2Ar5TwDQzBszN8CaIIRGk1f8zBzRZnjuPV64EnNsZ+EdHKHTavLQ/AH13X ZcoWchwnzgbt5YEmoTrCYqjPicJDHD9OUhK8kDldLmcbTUvfhvAVH2TNUwDu/YCivIDgJyFB/ JcpmRtWJSXjgoB/0ZEZ8GRV7B0kfHhDylLU98wyjePWFQ5BEVOgaJsufrCbMhsOMgyHh0UjY3 q/+kOt9CXrhPCvmf4hGooNOLQn2di9wQ4aIfM4+XwgARhP8Tkjd4o5oK8+ePxZT4x8S9jDUGj xy7zi+R2EkbVfJCtZnVxkN1BTCWJo3tOT6fB+6Ecs4vkBrNEuKCxDQFTFdZKa1Hu5V0IxN9mf BOI+Tad1gHJhC6HWX9Psm9S7lOD3bnAYNj5lC4KNhEXmps0iPDZU3rWB8t+lb4Gdt5sbs8XSH C5c9OPo/62jPORqP1xluTq+kUQrCy8vHVzGzN8kNZqgIvJvf7+V4Dga2oBDUneHw8jdd3YTN2 BGZEt7HxgEYX5ah5wHwbkMzaGJzZSOwnKJ1NmKdKPrjTXFZItrANTzA1iZI4lN0Vto+U3yNvt C6cWMB8k1qJjdVb446t80XjXX6PFgkCSGqdeOOqIb/p+SyK85HCCu+UHuO2ONBK2VqQrJ5CWw 7Q27yX/baSuMj2qdxYdEg0HkUzA6u3uDYXDo0uc3kWbQL1rvFjo6it6ixbUmfdDqBKmNOqzwA NGuXEz8v8fhtlDuYBFmXlpkNRj/8WO37byUPUoJHdQIE3kLsgp++C3sf/33/R0th98DDvyh18 OXa/5NfOdSpyNBspZxg4BnLsuAYEiG4JTh36LxEW2xqcsds/HjqmkbijMQHUgw0eaLSjCNE/N ZAHiK0qCJUrfEHmiVha2CH5+FQWJzLzTfCaSLzCNGGi/Zpb8W2DMxC6qATXWXwQZ2UFF9gkhX IVaGu/5nwNIYM0Ci2zUlpp/v8eEgCeJ7lKttq5Q/gzyBTjfaYC X-UI-Loop:V01:+Sc75zxNvVE=:sn5eFjZYPXVp90SMr2PJ3zrAp6UU/SBEOu6eLXE6J3E= X-UI-Out-Filterresults: notjunk:1; X-Scanned-By: MIMEDefang 2.71 on 85.214.41.38 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by h1439878.stratoserver.net id s8TLdqYn022681 Status: R X-Status: X-Keywords: X-UID: 7602 On 29/09/2014 10:37, Denis Bitouzé wrote: > Hi, > > among others, `.value_forbidden:` and `.value_required:` key properties > from `l3keys` package are useful: they let us specify that a given key, > when used, either cannot or must receive a value. > > What could be useful as well is a key property, say `.required:`, that would > specify that the corresponding key /has/ to be used. This could be helpful for > instance in the case of a document command `\MyModuleSetup` for setting up > a module `mymodule`: > > \DeclareDocumentCommand \MyModuleSetup { m } > { \keys_set:nn { mymodule } { #1 } } > > where some module property /has/ to be specified. > > I know this can be achieved with something like test of existence of > some tokenlist and message emitted in case of nonexistence but a high > level key property for this could be nice. > > May I ask what is your opinion about that? > > Thanks in anticipation. Sean has pointed to a similarity to dealing with mandatory arguments at a design level. This request seems a little different as l3keys isn't meant to be targeting that area. However, there is clearly overlap. At present, key properties mainly apply to individual keys in a 'stand alone' sense. This request is different as it's actually about an entire set of keys. To me, that seems a bit odd: it's pretty rare that buried inside a set of optional settings is one or more mandatory ones. There is also the question of what 'required' might mean, as key = \empty or similar might well be equally invalid in the real use case but would presumably pass such a test. What I think we need before we can really comment is some solid proposed use cases, showing why the property is needed as opposed to other approaches as you outline. -- Joseph Wright