Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with ESMTP id s7MJWQ1x029904 for ; Fri, 22 Aug 2014 21:32:27 +0200 Received: from relay2.uni-heidelberg.de ([129.206.210.211]) by mx-ha.gmx.net (mxgmx004) with ESMTPS (Nemesis) id 0MdFUR-1X2YTP1SWR-00IWvO for ; Fri, 22 Aug 2014 21:32:20 +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 s7MJTnJP029982 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 22 Aug 2014 21:29:49 +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 s7MIEtM8010261; Fri, 22 Aug 2014 21:29:49 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 11288818 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 22 Aug 2014 21:29:49 +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 s7MJJnSk021811 for ; Fri, 22 Aug 2014 21:19:49 +0200 Received: from homiemail-a34.g.dreamhost.com (sub4.mail.dreamhost.com [69.163.253.135]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id s7MJJcJU007583 for ; Fri, 22 Aug 2014 21:19:41 +0200 Received: from homiemail-a34.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a34.g.dreamhost.com (Postfix) with ESMTP id 4AAF51005D for ; Fri, 22 Aug 2014 12:19:38 -0700 (PDT) Received: from webmail.seanallred.com (caiajhbihbdd.dreamhost.com [208.97.187.133]) (Authenticated sender: tex@seanallred.com) by homiemail-a34.g.dreamhost.com (Postfix) with ESMTPA id 192B410059 for ; Fri, 22 Aug 2014 12:19:38 -0700 (PDT) Received: from 108.51.157.100 (proxying for 108.51.157.100) (SquirrelMail authenticated user tex@seanallred.com) by webmail.seanallred.com with HTTP; Fri, 22 Aug 2014 12:19:38 -0700 References: <53F667E1.8080909@morningstar2.co.uk> User-Agent: SquirrelMail/1.4.21 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id s7MJJnSk021812 Message-ID: Date: Fri, 22 Aug 2014 12:19:38 -0700 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Sean Allred Subject: Re: Thoughts on xtemplate To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <53F667E1.8080909@morningstar2.co.uk> 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:96VIWk9svLg=:JlPDGqeLfFEKVSfSss4YYDLH6c J6sVIEQBZOPXtBPE44kLaCAkEj1QO0fgpnW7p+pmSaIGX4FINTUMR62DnqYMAgMaJ5fdNbud+ 2jrFAbeskrwtEb0FGmKCLaqMbC1ceVHuzYOvWQyvzIw2pbY+1gQpcwp1Kw9DjTs6TOO4fZhIT QCLMsDrn665UFPL5yS2tCaRh5glRQ4eLGoyzmSuhHCZPMdCfL0Jv2knAdfd1ryUmcnFSoMYNP xUQHtqFoKpvC92fTlNM3dIFyFt8E4bOUAyPYUK7yTG6/daBpaT8NQ6rrwcD2RzfplHRe+GIFa sW8WlpIecoN/wf/pefHDiwBjydD2Qi541L08SGarGkDIVkI0jtc7ma9jcTjC/TpoTllpftO41 ZMx92hyCe40l5ohbBQHa5gbwpiTAZl64RY7pAN2noOfYyjGz9bZo1idPFxGlZmogsGuY1Ex0K 3jaJonkFlCjv1EPvwNX+Fs282LfknMyrvabzoys33LoSQLcBXpPza4YdIYWh7ndhuhGb+sUpq CvbCnzxMT4oIMYEUiRZBGr9i14EqLTwoiMgPtgULUn+4OCo6pt6JjJFQ2kC7pVz+rboLjwars Eup7R5oO4T3fyhDvZSA1TWuXXRqH0K3VyGXQjpFNbGIpZdVgebn90u+4rdQ5W9prMjJ6vMZx1 8vZ9BVclh7TCSSzch/2QwXwE9JL6SMxcqou1Dsyt+xkL7Rsygo1uDAi55xQl1zBCJzCItrJ/4 vA0QMLBUrhUkpSXK08bXbo0/P5auQzuZu3+u7A6PyD4B/F7BY5qbN4AwlFaF8klxniAT6hM7s UxiUYfafUUZ8g7801A8MVI/KF8Kp6vPbdw5WwvHaXb+6nuTeW0wd6QifNwd1WRlvyM23zq6hl jSSiWd+zp6jqWYNv5wwDQVqjUy+9s0FHFkSEozPhEcbaX1acGxjW31/EH1cQ6UZ02mGyO3s49 yvyBRIX6BZJxefEKtganypT80Jq3rqFBddu/t7Ud56MPfHK590e4SSel0jkic5C9E964w7JJo CcRyzyAyMADizqa+j3PIBGxdU8MDMcZhqGEGOi5xm8Pare830Uq6bljw2KqZdqDO22i4kJ99R K9iZez9lex69ZDmAZ5hYTVw6QWNFS9wsAVNPt4U/5LQZV5wH0AuzlVPIM7N+3/cU7q4hVhi/o LD4byAZji1F5/RAodafYxwyK6A+kOINjpwxCa1qVh3pzBcvZ72yjqoUZQE+tFIYq0Qw22NU6U K0Zj8CQ2nbp4IcfBN4jHLQXcErUUup4PDrNCgPZKSYQaMYq4evzLb93reviZhuK6NKUoJVjQF fuL7YP161P2r6CIsdc8vul8i2/5/l3JzYyxg2XM3vs3pWtIVUrSTGKkqeVGETrMwVf5vx5/4V T5KLfZ2vxI2IneDXJp3rU9Ji8qYvT/aDA/FjdCnsFtpRTUMYf06Mm6B51Nxny7+mhwKqSAtxF ul6ONWDzGJDzEX99jeBs5nlwIIbKe1wDDrVywHgzA7eMxjxd/B7Tg9+/g24uF6SfOZVP9lGg= = X-UI-Loop:V01:tK8MM7K6U5o=:05Y+iRUWztUb6JhQDza0HhKGFrBK7xaOu+H/WkIN1eo= X-UI-Out-Filterresults: notjunk:1; Status: R X-Status: X-Keywords: X-UID: 7573 > One thing I think to consider is the lesson of LaTeX(2e) in that a small > number of positional-based mandatory arguments work well as a user. > That's something I'd certainly expect to see in any new code too. I agree wholeheartedly; as you mentioned in your post on TeX.SX, *nobody* wants to write anything like \UseInstance{sectioning}{latex2e} {}{}{
}... even on the design levels. This is why I am very supportive of the key--value syntax: \UseInstance{sectioning}{latex2e} { full-name = #1, toc-name = \IfValueTF{#1}{#1}{#2}, header-name = \IfValueTF{#1}{#1}{#2}, ... } as it is much clearer. I've seen many, many packages that use KV-based interfaces for setup, and I think that this is similar. As long as it remains on the design level (the 'setup' level, if you will), it should be fine. > Almost certainly the number of truly *required* arguments will > remain small, and while the case that a design should not be limited > by TeX is quite true, and the same time a design interface that > fundamentally fails to translate to a TeX-based user layer is a > problem too. And I don't mean to advocate that these objects should be able to have many (9+) mandatory arguments; I'm far more concerned with the homelessness for optional ones. The support for many mandatory arguments is a side-effect that good interface designers will know to avoid except where it may be appropriate (I can't think of any, but in the interest of my own ignorance). If there is a cleaner way to provide this support for optional arguments, that's perhaps just as good. All the best, Sean I still like the idea of a purely KV 'backend' from as a language thing. -- Sean Allred