Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id w9Q8bKg7030608 for ; Fri, 26 Oct 2018 10:37:21 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx117 [212.227.17.5]) with ESMTPS (Nemesis) id 1MY6nl-1g6IZr48dB-00Yd9x for ; Fri, 26 Oct 2018 10:37:15 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx117 [212.227.17.5]) with ESMTPS (Nemesis) id 1MY6nl-1g6IZr48dB-00Yd9x for ; Fri, 26 Oct 2018 10:37:15 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.15.2/8.15.2) with ESMTP id w9Q8bEKB017786; Fri, 26 Oct 2018 10:37:14 +0200 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 7A1171265A9; Fri, 26 Oct 2018 10:20:16 +0200 (CEST) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 30568105 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 26 Oct 2018 10:20:16 +0200 Delivered-To: LATEX-L@listserv.uni-heidelberg.de Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.119.212]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 728B5121F1A for ; Fri, 26 Oct 2018 10:20:16 +0200 (CEST) Received: from comedy.dante.de (comedy.dante.de [176.28.54.184]) by relay2.uni-heidelberg.de (8.15.2/8.15.2) with ESMTPS id w9Q8KBPr030965 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Fri, 26 Oct 2018 10:20:14 +0200 Received: from Franks-MBP.fritz.box (p200300CBAF1CDA00A08547441D48A8F9.dip0.t-ipconnect.de [IPv6:2003:cb:af1c:da00:a085:4744:1d48:a8f9]) (authenticated bits=0) by comedy.dante.de (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id w9Q8K94d028956 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Fri, 26 Oct 2018 10:20:10 +0200 References: <3293228949484868.WA.kellysmith12.21gmail.com@listserv.uni-heidelberg.de> <13ECAC5E-7313-4582-85A3-A5BCC82070BB@wspr.io> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-DANTE-Spam-Score: 1.083 (*) BAYES_00,KHOP_DYNAMIC,RDNS_DYNAMIC,SPF_FAIL,URIBL_BLOCKED X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 X-Scanned-By: MIMEDefang 2.71 on IPv6:2a01:488:67:1000:b01c:36b8:0:1 Message-ID: <4df17a67-b095-6a0e-6156-282b7a83c61f@latex-project.org> Date: Fri, 26 Oct 2018 10:20:08 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Abstracting Over Templates To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <13ECAC5E-7313-4582-85A3-A5BCC82070BB@wspr.io> 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-Spam-Flag: NO X-UI-Filterresults: notjunk:1;V01:K0:RYm203wiAlo=:EVBACej1UakQByzosk8zEsGn2O nWGjfeWv6YN3VtHXgHqf88qw6Fk/K/fzsbSRfakcmcDkXIKqGHSZQQDaoQN5jadQG4nMXEKKW KvkPt4s5drz15qMYj824V6y9qNrZItkocmtQkzTdt8F0PcVhJ3FvZW0VQsx8RKuthq3NBg9Im MJql7KiXCe1jcdXjsFkrF73HiT698ELtWoM9++GdSEVKivrZi6sTuWHOcU3IZTaitzfHcwJ6x K9Za9h3BjE+nLs1IFrhKpPcrzN/X5ZyDWmOY9fXfSHKbGgYLMkQdeGTvvnwTtEjZgVudMLGOg kXoOElNY9wi2RrzegzRc1t1Vm9AYd9HeLQF77NrA8fBWmKKx8x8ohezf5cOoTSm0lmUcPTGYV WSfb79rEnjVbzOKbUICEwjTCVscI4J5FXh2r0tXw/tUrDFj7ik9bt0xcrX1AkBJTzrWKleGcJ pFemrZrRmnMxOn4j/MLebiuqZgH0b+/9AnsNK7fMmYNZpG5DXSnq5hNEf4jZStphyJeuSc8wW vqNqupScKLnvil9Y8vk/vaUvv4ljr+8tGr0SAAcg9xDUQwT3lki6PETTtqaMsa1vj8dSR3wau 8HL3b/R+y8CXCuZOgVVHzoIb5DI5O4XJ2VzFPcT/sPtKXQd8rkuhGhlAFsUyjsKekNmxSY3LK OyLLmCxLs+5RotQmFIZGcRFNxJ7kk80kx5urddW/039JczSo+YpTIZZpcLKzAoGVnSPIpA1Fe VjaK564bu+TxKc2J/UtZwz67nf2nZ/ghxAtjdtnwX2ORlcuJrq3xF0GRdmZE1lxytxBbMdWbm LayeLSFDYgi1l2BUik4zFuaNnfo+uaf5wCPFB+tpOI0nXsmLMiF+ZNPnqwffGY/1CgmydP9LO ImjwsgDffjyIWLX76dMbnjsebCYY9HhnlmDssPoeNsG09BVvZsZX4g6kDDaRHPQcbyxmDxZOZ 5wR+zBxYCxedswIZgyJX9H8a0LRzGkTUXrtkzUsMrcMYd19hKMB2/MycPF278wE8JVHze8OAO spupqskRCOk8FQ1vcYAnNw7w/SB5suPVXXKXCpE/jkpQh4ZEUk4JeWvoKOq2dBMSQhuKKBNWN GrI2JAqnK+YUIp/1bXx3HvHP+/d/CzmXJE4wPYJ/lN6TpzcX1JJEOQp5cJ19Du/E3hT45LZol lUWd76vLkR4RyAuFmxnySa5kXu7l5xmmib50dg4ok22qUc2oguTXa18Zc9s/F5Zx8DPd3haY2 P/3CxhPpOVQ4Vs0/4OkXQLes9YcJCkgftqP2XmRSydHzxjwdtFQEMdlpPePP3FZgJuOZlPb18 MGEqwf0tfSXt6f2iJ5JCEFN3VLjWG00dg/mPhO40diuialEo1mkEQ6hxa9gAezWRm7+xMdsMZ fkYPxCci2pTA/uUL3B6ABR0e6aiktwd5OZ8qi2PYYSLXOqlmphwWzLquuIRZYnn8Ok3tN/yHX 1QbqkqlbTMVIw1JBfNqXUun7PdlJAzzuVf3+pPx9ziO1GhZSIds17jmlgdKqGRdy+ebwsHa2G iusB/eO+APzZaV1psg7+qVsLm9xto5OIzHOBV6kRWxuPqNe8KMQY+EfpZQ57GUHPrZ8gOf00y tQiPefJq9Q3LiVFzdoynw2wNUh118M2TWWMeslB1q22gtsO2eFVO6rEdVDiDi6Px0tRQRvL69 JHQeQfdwQ5sdAs/y9XJlvRHTTcOH9+YkDXaMbmUTijscprvNrhkzJ1NXTqSAcTfNiDlnWf485 V50rKTpeFBSoMgvdfmet66DH/BxRo5D3SRY5mRKXQp0/XO8rw4Ug7oLHaSVtxh0UthEARBGiu g5VVOG0ScoForPLL5bMSYOrfMZzhkMht7ITRRlhJsF21qco4bioCsf+cG2eIVJbkbEpW5ytyY 5h+ZHzo96dn5NbZRM6VnA6QRk64ddgByx+NucFa9ZZOs2wvAo639sP1I43g7srZTjfxwRNmsG b2B9j7IxTiJK1arN11iYr/mAA2RC9nOkwBKGY/lQk61x6tZmR7JfcFZVUmda9cYDwn0CTi6rC nol7PQ4oHytmVdyIM+hy7C5aZBDEv+YUavjanX4iKLlPC8mDWP4SQ0D/dCNyyPCA== X-UI-Loop:V01:KP6fKigJuPU=:zu5CtUtIOhrK2g5f0jNWOH/zAfKHGjJXZiyRw1Jurqo= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V01:K0:pknyszOE/FI=:rZd4ObJRGT4qcE7GdE3JX/ RRBsk/BIrVe7+39Y+BMb5FzlaBLmXHjyWV+7YqgaxjSEr4aMQHI9fsr+H4eJEjVSQjqxZJk5I vBhAnQqp8dVkZy0NKY2TmNs3wYE2wojVeZwJvS48Hdl3H7Uh7j8NB/kmCgvbzkj2IdSMXz0yr 0GYfxVVxu3yLMfIoucGELuu3oAOS4+RMBELXreBWtlmjTgCM0WMIGuFndS0o+JT3ITrhARdcZ xyX0rXmsrXFoZbFH1BeoYokmCAkv+xRKYTYxz90OvmNUcATD/t0cTK9G3WVILQr9fyJnLMWU/ 9A/FWJc7Z2IuZpp1ZlFZGHNjvT+saSHOSNBLn/6671wK8qf/aUATU6qm10d9Xp31rbCSfiItQ zjGKP08TLFkxYyfVArK5gG4AS1HTE14db3kSMMY8SHVsndiVgVBU3qxQgAlLkvyYPcJFRuOG9 doZvKTdzvWC/2fQD+LGpCt5RznGx2gs= Status: R X-Status: X-Keywords: X-UID: 8098 Am 26.10.18 um 08:18 schrieb Will Robertson: > In general, for your purposes it’s good to “abuse” xtemplate where > you need to so that we can see what needs to change. > > While we designed xtemplate with fresh eyes a number of years ago > now, we still think it has a few deficiencies in its model so I > wouldn’t be surprised if run into areas that it doesn’t work > perfectly for. to add to Will's comments, way back I tried myself as using xtemplate for that kind of purpose too and it might be helpful to to have a look at what I have done back then and see if that fits your thinking or gives you some other ideas. The code from that is in https://github.com/latex3/latex3/tree/master/xpackages/xfrontm and I just checked (even the documentation doesn't compile without an error -- but that can be scrolled past, though I guess it should be corrected). I would assume that otherwise it still works or could be made to work but just looking at the .dtx file is good enough to understand my thinking from that time. So I think it is worth a look. What I have done basically is to "abuse" the template approach to provide new declaration methods that internally use a template, so it is kind of one way templates and and that already is telling that something is not quite right or missing. My long-term thoughts is that there is a still a big gap in that you need a way for local customization of of elements (for which templates provide the right kind of abstraction more or less) and the configuration of relationships for which you need something totally different --- and in my believe what we termed LDB way back and which is currently not available except for some old code that need adaption. My architecture vision talk in India gives a good overview on that https://www.latex-project.org/publications/indexbyyear/2011/ But given that it is not there, see what can be done reasonably with current concept and what requires gymnastics that cry for something else is extremely valuable. frank