Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by h1439878.stratoserver.net (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id t2P5HjqX005717 for ; Wed, 25 Mar 2015 06:17:46 +0100 Received: from relay2.uni-heidelberg.de ([129.206.210.211]) by mx-ha.gmx.net (mxgmx008) with ESMTPS (Nemesis) id 0M5Hix-1ZQ9aF06Nr-00zTJH for ; Wed, 25 Mar 2015 06:17:40 +0100 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 t2P5FBLw030220 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 25 Mar 2015 06:15:12 +0100 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 t2P4qlib021475; Wed, 25 Mar 2015 06:15:11 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12000885 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 25 Mar 2015 06:15:11 +0100 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 t2P5FBeY022705 for ; Wed, 25 Mar 2015 06:15:11 +0100 Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com [209.85.212.173]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id t2P5F4oh004270 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Wed, 25 Mar 2015 06:15:07 +0100 Received: by wibg7 with SMTP id g7so65864250wib.1 for ; Tue, 24 Mar 2015 22:15:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=P0dbYVu1ToTsxH/QWgVT7SUrgkS9p8c9vna/NJL7fGk=; b=NVUMl+oc5wqrGhd3Ys437rtMtuifBzrlUtu/1R2seFIQA38wHd/75jXio+3Vxke9Jm aT1ooItAaihtzVqRk2tNYGxJEo+nU54hKHkENuXzIvBpdokzXQ07TBgf1mj95zGd+Ivb I0ayQqcWOhU8TywX/PRcs4u2TL6kyM7tuhXtElilCZychzxWH6dIn8WcTalDZsUlb3Tp 4kCvxO38+uLfV9sf8zie7JbEqw3+m0i2r2Ewa266biZJJSD1pUS0vqIEvSwLBX9Q03QD Wjg/jKMYnNvIc/dEOkhjW4B95JgvoNWJZRxTY9zZ5B3f35ZPu8hgjmF95W7KGdUFsYTX lwaA== X-Gm-Message-State: ALoCoQnhHNX1F0VX6XHJoueXlCVJW4J5upKfmZpIHwh8YXutv4omgxuyhjhKR4k/YqqBKbEtxds2 X-Received: by 10.194.193.99 with SMTP id hn3mr14477612wjc.148.1427260504285; Tue, 24 Mar 2015 22:15:04 -0700 (PDT) Received: from [172.16.2.18] ([195.142.119.210]) by mx.google.com with ESMTPSA id ax10sm1865876wjc.26.2015.03.24.22.15.02 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Mar 2015 22:15:03 -0700 (PDT) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 References: Content-Type: text/plain; charset=utf-8 Message-ID: <5512445C.8070009@longborough.org> Date: Wed, 25 Mar 2015 05:15:08 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Brent Longborough 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 t2P5FBLw030220 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:YV1kTbWai8M=:DPXcM/nFkkV3HAdTMUt/f6vD4I wYjsZAPcLz8AHAL56OTGLSYoP4oybC8MgVSuIfkjX4w4A2NHy1/BJF9ESxkhraqguZ+C9afUf CA7dtXbkn3OwfcyLzDZU/po82UGQsVLPR7kQYPE3KsH9qv42ZpDEO8t9VSIjZAW02Z+V66A6p 3FkqlZNqTwe4o5rK/rS+tSD8mSqOF8JJYwboGIl9Ex45rKEfCz8QQX99fjeEzus+UepR9OuSI IGEzVYXSs5ob/lLFB/afWLusYdoFfMSTx8roI1DY6nR/tNNiRbXQmlasoyUIHbsuhGccDefkJ f1fL7RvEmnnSB658OQrY22how4txRjMFytw0EQtzK0mHnqUFRxkyLzOmISO/w8o+cW6BC38qo hKu53muU9G3eq0xw9IPnrGvSbClaNCOYzvTKRQDDRht9drqJH/goTSyRD6GoekKFM8YkDk02+ P6KIGdjuQZVPKbKqOK99L8cwlc7IbHy6XakIKPTeM2Fn2pp1/5GWv/8sw1ePYu5jIDIkktAke JXlGift7J1fmgtV4gq/OL50trnoVA0nTSNXa8GnjuF7iqeoBjpFI7rCOa7FP0ohf+hmlXj3c5 C04pB3u0GwHtM4GwwaMVZn/t3Q4JNio9i//LazZau4wvdYtJ/Gt6v0AZf28bz1jfjBF6DLT5u gziNhn6xuWIc1Y+gTVl/OWzYeuO0Lxei6nz6433I98Km9lM+lvO0D8WjcHpZc7Ckh4aUH481F w9JVzu+ScFnQYCJGQAuAx7dgaR0OmeD5bgLYYg7iJJ5NaS9Z7ojU3w7V+1LUKh6bGItmqj4yF MdW4gFriR/lL12OBJzazxHo2aJM+FugA1ztbCbtzPOTE4GgFxbFsBsPGBhbO+MeS+9FEKUiiS jCISJcODmo9TaLNRMUfK3tbEDst4GIlIhOCLrMCxFynGJ1jiC9TIWhPyUB0/Sv+nJl2I4cXQk iLQLmUsujoIFNksiN3eDkDC1sHP4tg+69I8/AxmfvYHj9i4b0VcrnQRmIlzt3cwbrUJPpAzHw RHER0KPkra5JFpVohUn8ash4j1N6Sd6GJC1uhhLFpkcBbZGpkkfsMftJqR2iNWrz4vFKiPmvG lSd1ET1RNjqb1kXjfJRgPG3IsqkGiHCgcc1pE8ChkRWrAytNJN5ZOTKmYazVP3ATK2WvWoIBl iFxkw+Wp+bJUAXNHdMAdmUrruL0ZunB5wXgfF6AuhC9+tmfb2ATfF6XXVJuzTRQFO4VJJmOrP MnEhWlY5pmwfU7bAb0j2euyg0/4FClohi/UPO2LxXVpU/oCQzcGjuZ+bQV6makO2h3J0Ac6R3 Sk2iUB9FDIUtNDk9wxYk2Di2wn9ZnMMPUKbWJkqcasOpO3mOxiWx67hFqrBTWH7VGeuuojeyo Mr5aQ621wriSDjCPdBIT6+NogCrb6eehAt1TbxXYB6JWH3QYtohXPIW/CMrNJRCb0FImmGN9I O0qVPa2TLT+6cBL4Va+gCk8b00a3pAqGAmixjq/GzMpe4LT/Fh X-UI-Loop:V01:UWM/HfgFL1o=:q6WtfPzDm8ZRwVfDQ4sbnHbmD7HaHFC4pIwkFluctRc= 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 t2P5HjqX005717 Status: R X-Status: X-Keywords: X-UID: 7677 On 2014-09-29 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. > Just a couple of thoughts, humbly offered with some uncertainty: 1. A compulsory key seems to me, on the face of it, to imply a less-than-friendly user experience. 2. A simple solution might be to provide a default (such as "nil"), and, 'later in the package', test the key for "nil" and complain if it has not been overridden. Brent Longborough