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 t7M7d098018975 for ; Sat, 22 Aug 2015 09:39:02 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx105) with ESMTPS (Nemesis) id 0MgZ3r-1Z93hQ0aeN-00NvTP for ; Sat, 22 Aug 2015 09:38:55 +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 t7M7bLgV014294 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 22 Aug 2015 09:37:21 +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 t7LM14Q0031319; Sat, 22 Aug 2015 09:37:21 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12511455 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 22 Aug 2015 09:37:20 +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 t7M7bKAg032212 for ; Sat, 22 Aug 2015 09:37:20 +0200 Received: from nov-007-i591.relay.mailchannels.net (nov-007-i591.relay.mailchannels.net [46.232.183.145]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t7M7bEUp022677 for ; Sat, 22 Aug 2015 09:37:19 +0200 X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp2.easily.co.uk (ip-10-220-9-73.us-west-2.compute.internal [10.220.9.73]) by relay.mailchannels.net (Postfix) with ESMTPA id F2440100182 for ; Sat, 22 Aug 2015 07:37:11 +0000 (UTC) X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp2.easily.co.uk (smtp2.easily.co.uk [10.45.8.167]) (using TLSv1 with cipher DHE-RSA-AES256-SHA) by 0.0.0.0:2500 (trex/5.5.1); Sat, 22 Aug 2015 07:37:12 +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: 1440229032351:3679798099 X-MC-Ingress-Time: 1440229032351 Received: from [109.146.67.21] (port=52351 helo=palladium.local) by smtp2.easily.co.uk with esmtpa (Exim 4.43) id 1ZT3MT-0003Zs-PS for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 22 Aug 2015 08:37:09 +0100 References: User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-AuthUser: joseph.wright@morningstar2.co.uk X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id t7M7bKAg032213 Message-ID: <55D826A5.10803@morningstar2.co.uk> Date: Sat, 22 Aug 2015 08:37:09 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: Help with Expl3-izing some code 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 relay.uni-heidelberg.de id t7M7bLgV014294 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:YVVp6VW9Oqg=:4wkmgTaVmYJmfbIjGNV5NXoN3w oMYmWPuJPao2HWIsRthuTTZIlBAJY9tXjOhf49aXLmOkOGdCCGnIN7mqB++BFg8K8Yo8ScWof dx0GTYExL2YxHal6pTQUVL1o2NI4Xp7xul7NUrTyyYg4mNlRn/K+ZBFblO2APdBBZ8hoOS0GU Onq4aVmcMGdMtS12FZjbWizdR/E3CQGWTrvUWPHxHyrk6q5K+wT4lI1N20gX1F2d6NXyIc6ku Is3MfgnHJR5wZuZPh5R4Mw9L0CtU97AgGZwEnOtTFyrpANics/8O2IT9D1/Xeq0RUtvw6P82u cY2reO+MKWl9BanwgKiyzOIl1DeMQR6F3XnFHyh64mFFvbPfvCy8iksVipQZYwS6H3iPD+Djo blMvIn/Nkz66uHoUPuTwmhIs/DFnXFPZzkn0qunWgM4cUGfMXERy3d1obE1bPvt/08i3JQONB HuEjTL7pgkZV5C3Ii5uPmHg7pJPl0chcen+YcZhcpEAbouo457o96OvIpDPnLGTCb9cKMAbXx 4atRFEyePyagiQzeSuD5BIJkwcrffClN7O4oHw/I7pbwbw5hnVh+Q1EtQKMbhpCGBI7OqRW1v vEAVawQDMKV56wK+2DXlYkqeCM8SYPg2swDz6/NqQkluzm2ANI+M/U7gcDIfkcWysumHNXd75 qqrI99b73YOh0I3C6Uvz/8teUJwKzy9jOBivSqBSQKnkdqY1NP12oBB+w7PjsI03zNtDXJkGJ L2IoyVZNZ8cuke6ImsEk8jr2GdW+oZrkrsYx58QpUYjBeM5v3gmmTHUGXsP/8d6/hMxJA7YMV TcpkyimXjV3cI0/MRrUspc+Qylx7EUeG9lzW+oxHXuX/x3qi9TNW7kBu+6WGfWyYgeand+PWB GbaAONWgoswBHiIojw1zgoGdjPUObfHtdiTe6KOH8pRPX63md4t06cqLX9D04ponUzFYtvmrD QQFjOQ4FO3x0yYVnoNGQWkkrXzPG7L7U9/xz0/fXsHs8mqlZVCfqMHbaZ0liPoE/qtZ2Ugdwy AjAVY7LOI7msLxcg1xFMW+qgWG/3MM7P2eM+bNVU5ghhZ+CXxpmEcYQBH3T0HEFurm0Zay5MJ Jo7bskg+K1WppBbUNc9DJ/SO/Eot20pmPmW/dtEk3/xYcf8BGmUw4dck217duWMVU8slwXKFq +DfImP2ITM3zWs5gzkQh8ue8kMtdagD6j7TkvKEzDSrJPxOsxKLRNGeyeZ9THCNMvil5dN5SG JinhstpC5U485Rm9PZVN0Jh25p5hmEw80lrk81Otqy4hkfoZNcE2tPpvZmCtXp3zgQGky+Kct WPz3z8NBJ/cbm2OEcraX+vmMhG4eNtsry2M04dflZQaZhkeIS3MlFcUkWwNK0oUjQGvxi4BOb 95FkXrEJqKxDVcT7EXRAPslRqkNFdJHRlzeHayu9y5fniiRJP2brgoum6PYwudAMouEZhr2wV p0AhFQ4YoovTKaVLG34/7yBWTG1+EXo2xrQz7GVXMR4oTkAXxBIXrswEKHpowPLGQ+0flWew= = X-UI-Loop:V01:tcVs/CNzXNU=:s0D8vXjwdD22Qd3TVERpADHrzCNw3aZ6TLSoa5RI9Ek= X-UI-Out-Filterresults: notjunk:1;V01:K0:NNwEpphLSFg=:YJZrrlEwlpEYlPFxlypRN1 wnqs38QmDFlR02oRhttCS22DGaMQO0UTygB+0kRfzz5alf0wdeSqOoHkUG4FTBlqkI1u//B0h JqojHf1IJMP4RdT1Gr1hYoqM3CoxeHE+yG+ExRDcjk25x6BflpX1XwEFBUh/Hct6wwP/o2lII JKaOxXRNb6eGBO/ojyyivBw0BlRkSTjE06/2Zj6Zy3IlWRwPUME7lBaFi3wOVCsCMAQ0s6+1I 7PaIzscDMjd1UAxEvqCPfd4HfkLqZrSdjDNTNH/XCZBIcq1Ks93fFrZFPpGROrriesAEOl1to 48qJfbIxabrzPuptV0lYAea/c0r82ykOaVqtqLP4eO8st+eR8x3ZSQ30ie30jlz/rBwBG0zJ2 9q6KLP0PA4wDn+MHEtg+ZknV5QDzosC3xamM251pvXQdacIqaLp/ahJpRY1tJhuCsLLaEcW+H qyHlQk0BCdcKdGwsqh6+GwesP6DuNRYyF0oagea9GRWNT3P6bCJ6 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 t7M7d098018975 Status: R X-Status: X-Keywords: X-UID: 7827 On 21/08/2015 18:16, Joel C. Salomon wrote: > Experimentation, and looking at xbox code, shows me that > `\hbox_overlap_left:n` can substitute for `\llap`. I’m not sure why > l3trial/xbox’s `\llap` includes `\xbox_leave_vmode:`, though—probably > for the same reason the Memoir example code included `\leavevmode`, > but I don’t understand that either; it seems to work just fine without > it. I see you've had some other answers that cover a lot of what I'd say :-) To add a few notes, the main reason I wrote xbox was to see how well xparse/expl3 can cope with this type of higher-level stuff. Thus it's mainly about experiments rather than expecting the code as-is to be used in production. As Chris notes \llap, etc. are really plain TeX commands. The *don't* current do \leavevmode so will fail ('not behave nicely') if used when TeX is in vertical mode. All of the LaTeX box commands do \leavevmode so it seemed to me that a new implementation should alter this. -- Joseph Wright