Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by h1439878.stratoserver.net (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id t62GS8Vo012902 for ; Thu, 2 Jul 2015 18:28:10 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx108) with ESMTPS (Nemesis) id 0LmNkE-1YcBXM3EtG-00Zu8V for ; Thu, 02 Jul 2015 18:28:03 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id t62GQJKt003244 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 2 Jul 2015 18:26:19 +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 t62DRm2N025321; Thu, 2 Jul 2015 18:26:19 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12330667 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 2 Jul 2015 18:26:19 +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 t62GQJMx009474 for ; Thu, 2 Jul 2015 18:26:19 +0200 Received: from ar-005-i203.relay.mailchannels.net (ar-005-i203.relay.mailchannels.net [162.253.144.85]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id t62GQCLV003200 for ; Thu, 2 Jul 2015 18:26:15 +0200 X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp3.easily.co.uk (ip-10-204-4-183.us-west-2.compute.internal [10.204.4.183]) by relay.mailchannels.net (Postfix) with ESMTPA id A0AF712015A for ; Thu, 2 Jul 2015 16:26:09 +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); Thu, 02 Jul 2015 16:26:10 +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: 1435854370020:1937345853 X-MC-Ingress-Time: 1435854370019 Received: from [139.222.114.154] (port=60489 helo=[139.222.114.154]) by smtp3.easily.co.uk with esmtpa (Exim 4.43) id 1ZAhJP-0003oM-KF for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 02 Jul 2015 17:26:07 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 References: <11lm3sqjz6xux$.dlg@nililand.de> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-AuthUser: joseph.wright@morningstar2.co.uk Message-ID: <5595661F.1070304@morningstar2.co.uk> Date: Thu, 2 Jul 2015 17:26:07 +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: <11lm3sqjz6xux$.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:qKt/PdwsYC0=:fXAUnYUKWyflOCSWSrdlRmcJve nyt3Hwfc/aDPuCfJU+XhhnyU4y++gAj09XBs+XWHyRJHSBX0fH7kTVL5/H7l+v8ht2q+UZyib Q5y+BeGiXEQTdxG6xizYEJW/idp2tJM3+D/pkFg3B5Nn6xVwRmw4OYvAqIq5apN/NdiZD0m2B NIY75pIP7EwLo5B+DiMKsmUKT2+hnRdpdeNhyRYmlIl/Ls3U4wPk+sxycOrUGLIXIiXnKgjtB tan5FetTgm4N/95Nbg6OV+cEt++wxxrJbstXspvk3LcArnaIcAKnvYnoxJjnENVT5zmHerwDW cxogSM7Uj/PDe4AMxRZ1YnTbKmhMLYbf/fxm3D3Gk1D2u4pptHzeO9WEoMGCnKvKIf6BYQAPG m/HrKB89Dj8z/RTzYpTiAh2fAJe3c+WIRXY8qpSMA55E1lucUqxP3jHMywRuBD6kWq5D3Uf30 cxGrkXfHJHWgGDR+UE1PX2t9ezA2u0mmTDwiWinRcKgNJVbaZgnqj73Dn/iUwAqii2aNBw7Nc dldDOw+rup9RWktVEWS5rF2lP7OOuGJegBJZirHh7uNNABOLrmXrCYFwB5PGLypB6JH5jeSUb P0cLM7Wk1DEfTPYIMgEMBUxSkbowACoPUsy9HCyL3A4xu9khbydudHp3pcF8qEIJqgeKFWdTq NZGXj6vvPh2fW9zgvipqBFGok1TGxmOstFQsT/nCVEBArX1KbqUifExFBr4F6xSE17BRUfVVr C/YZBMUE/bsgKX9Gfq8eY0656PwgAV+C99rZpLrPYrxKynnHXpMfKZyMNZHuvjIaT3XVecojm gbjUv72tY7GmB55G3S2syV8PIbJHkd74tQRUdJCZMHm2pyJFFap8IeHcFwJsCzGS9EDBqTkDz /v5MzC2eTFwi315InsWjOpE66N3RN1CDyb+o8csVhD+nmLwrudZ4s3Kx6a5zl7gFngkaS4nqo I/j37WgE20zzRhf8m6afmmj+4xd/xMUaoAFej6H5ftuQ/Hcs6NFJK+UzebtOC/cWLcLsPX5vB ielaU4Ug74+rFhaw0NQigkzQV5mNiXnalAmEeawAuZzcaXzIa8GtqHZZU+qyz6lSkl3TtXcQr jPnEtcpqXvk7/MHAoHqLf75oqr9DoZauldRa3cLh3QfSAkLtHzAy480fHWcYkOlo9SkmJZlaL TIR9cLGIUhZfo6L+7u7h30WfTFsra8KwEyZxsWrJ+NxKWwtDQ8Ttrh7mgZ+lpzD//Ca5qEJh0 v9chh9EohYuIICdyvBkDbdz3Jv4C1jKKDt90Hm4IDV+HWRFgyKxn7NKvR9477bK2FRjY8MUh8 IM+bgnKq9071Nj16TzOw45vOZSH0yGnzYIH1RM0K7AsFsXZcvgmHF0a7bZhoMZ6l/UN3nMW/9 ZUgMlNYjtXz7F+1jMTKP5n/2FECXAGPImJIh0DpzZLbkL3xiXdon3xLqPhseHLbESrhhFK8cT PxOyPZVBE8dTymb71mIoDqYodllGWU9FI0qsR3wnYtSSN8RoZhyAwlzNJAKLo37LM8PIcpgA= = X-UI-Loop:V01:v1xz4dsCBrQ=:QsKjN/2fhNakcxT9vxpajEp4QSnOfMYENkt4lIZBBRU= X-UI-Out-Filterresults: notjunk:1;V01:K0:l91NBWpMyho=:030pY3nVqoXMcGT5nR2F4q zl21mG0zIS1jVhTfeYbnx3Heg6eQRwZmrzNAlhvdDq9RQrCx7c8+Q9WO9gQyu300XzTWqu/pE QEaaRLO4/RBMoncNv7aOEIoe14plM5fm5wccwEtv8gle/S8oswvtNFssoJf+Tj3d7JWUWOYnR u+XpPVJ0QX+lkqeAqGm+eT/FWPK+omUl3lQnzjoAVNbURQvac7Y8+ieuUDPZ/KZryODSAC/xr phvRCvWfXr2POv8d/ooXg8dBAZbvvMfdXfmVa8F4Tc71Ay+cpxsFEBAje7+ARvul0e2w8Mj1e /6TTNf5F3UygppMFPioWn3lpQk8wsEfjMIFYUuTV3BiQkN7SIp5X7VLop31lsxwI+RQ7KGO1r DHxGvY2y+E/S8SWEL+tFrQcf9mSU+0y/zqrTFVmrTSHTKmzgQmkOu/RCOozPAuG/BB4UiyfkH f3DCMtwe353dN+e8w4vu5kXi0vB8Tcqz0PTC5dwsFFNSXjHjBHQp X-Scanned-By: MIMEDefang 2.71 on 85.214.41.38 Status: R X-Status: X-Keywords: X-UID: 7741 On 02/07/2015 14:43, Ulrike Fischer wrote: > I had problems with some keys because I hadn't really paid attention > to the order of the declaration. Some tests revealed then that some > key properties (e.g. .code:n) overwrite other (e.g. .groups:n and > .default:n). I don't know if it is a bug but imho at least it should > be mentioned in the documentation. > > \documentclass[parskip]{scrartcl} > > \usepackage{expl3} > \begin{document} > \ExplSyntaxOn > > \keys_define:nn{test} > { > key .code:n = {show~key~(#1)~}, > key .groups:n = {show}, > key .default:n = {XX}, > %different order: > keyb .groups:n = {show}, > keyb .default:n = {XX}, > keyb .code:n = {show~keyb~(#1)}, > } > > Key:~\keys_set:nn{test}{key,keyb}~\\ > Group:~\keys_set_groups:nnn {test} {show} {key=A,keyb=A} > > % a change of the .code:n property > \par > \keys_define:nn{test} > { > key .code:n = {show~key~(#1)}, > } > > Key:~\keys_set:nn{test}{key}~\\ > Group:~\keys_set_groups:nnn {test} {show} {key=B} > \ExplSyntaxOff > > \end{document} Hi Ulrike, The outcome is by-design but you are right that the docs don't currently make it clear. The logic here is that whilst you can add various properties to a key it's not so easy to have a 'remove properties' set up. It therefore seemed most logical that anything that can be used to create a key implementation (.code:n or a specialised derivative such as .tl_set:N) should simply clear any 'stray' properties already set. Unless there is a really good alternative interface I'll simply document this. -- Joseph Wright