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 t4VE2qUv013685 for ; Sun, 31 May 2015 16:02:53 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx011) with ESMTPS (Nemesis) id 0MBb4I-1YqqMS3LrK-00AVfo for ; Sun, 31 May 2015 16:02:47 +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 t4VE1Hp6024204 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 31 May 2015 16:01:18 +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 t4VAWASk029110; Sun, 31 May 2015 16:01:17 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12138148 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sun, 31 May 2015 16:01:17 +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 t4VE1HkK010413 for ; Sun, 31 May 2015 16:01:17 +0200 Received: from relay.mailchannels.net (nov-007-i534.relay.mailchannels.net [46.232.183.88]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id t4VE17JB016807 for ; Sun, 31 May 2015 16:01:12 +0200 X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp3.easily.co.uk (ip-10-237-13-110.us-west-2.compute.internal [10.237.13.110]) by relay.mailchannels.net (Postfix) with ESMTPA id 14DF460BAD for ; Sun, 31 May 2015 14:01:02 +0000 (UTC) X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp3.easily.co.uk (smtp3.easily.co.uk [10.21.145.197]) (using TLSv1 with cipher DHE-RSA-AES256-SHA) by 0.0.0.0:2500 (trex/5.4.8); Sun, 31 May 2015 14:01:04 +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: 1433080863631:2706918323 X-MC-Ingress-Time: 1433080863631 Received: from [109.147.52.3] (port=56541 helo=Palladium.local) by smtp3.easily.co.uk with esmtpa (Exim 4.43) id 1Yz3nL-0001bB-Vl for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sun, 31 May 2015 15:00:56 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 References: <55676BAC.7010604@free.fr> <55678C62.1090601@morningstar2.co.uk> <556A194A.9070501@morningstar2.co.uk> <556A2446.5090004@free.fr> 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 t4VE1HkK010414 Message-ID: <556B1417.3060900@morningstar2.co.uk> Date: Sun, 31 May 2015 15:00:55 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: l3galley, margins/parshapes and cutouts To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <556A2446.5090004@free.fr> 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 t4VE1Hp6024204 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:B2eOQ2BEzFU=:0/rYi0l5ROYmshmPEWn/MRCV4l inoqYL4b5pIYTVA4GgdxHpSPatEQSfRvDO3XFCzeri0YVyUXblWgw3CK/7y6CA0yJT2QTIeX1 /qVsD4DXA0No8XBCKUELWma3dmo2G+VV8tuRRzLkAjMCZhkdgbLaOTfk4U7rPliPSV2Rm3jiQ iKHfjvrc+GL0OvbqPUOu0wmKSs/ucRZimDIxmzCMasgF4xyxuRlBUeQxXTDl06p1E0F3Dv9Tn KUgQla6iUOnDu7qJvM8YqWpmD3pruk8PSAUwhC0yi6lxpbuJSl1MuMMZ0x4Zn0Ig4aILNcLg3 gtNmU4j9LSL9uysLLL5LXCbqSl7bgvIc5gZo7tATudSy6b57U5HrVfIQFjznszker3QZrNBNk Yy9BE/1+ZBfpgsLTgJLAYqu37aC3oG4p5oVzLLo6RzFqhgbxnzpqGqQPVpsmJRdeIuFUdYNq/ Qb/NYpXxjxcHXDIDZDZcCMXHLtSy21AU/Z2J7XTCYVvoaSiT+41EWSlJria7js1WVMnA5VfZh jJv70fTFPWyrH5IUeIZRPqxB/wwDWmDRJ0tbGoA/wPKantKkcQuARtb25h9/ra45SuedmFVph M6M9HiXotAxLcep2pKCY4V6Z66w/z+SOpI6oEEccLQ4s/kLfBYa3fiP3/vhVnZj9DUfvRDdTU EK34N12+cRkD66pn8WO6RMsAAsjDyTc57Gvb/UgN8vw/wso1vpIqiAKpGpo+KffK2JKLJlmDv raxzhoaUKb69bdO4brwR3rUFkqVq2TnJTu+BeQ01SA0NtqhtbWgEazQQYQaFXm1sYDCUGhJ1e BVpS+fKu1GJQmHQ8Hb9ESrPfHQgDFE5TnFB4ciEj3lA4D2hORrQphlUEP+MQmnKpC2wMecZRh mbIcC+sHbN3yi2u9p/dL5Byp2Fthp3s4DflMFl2eWXDIbsnmM0unbTg5xRiRj5QFcZP2bOSGR /ExLI84Kh5WMCczwnIAybVVj3ewCfAMxEm4lNj3+5JIQEGV5/GtL/CqinPGOJjDVw9iVVeRi/ UIntiKVaNoiXBMFemh8u2V+Ngb297JbLK6kAnZ9GMHregrSVJJk4p3KKFQRIAt3SAe3BOQzcP d+UCXTzl8uZ6R4nbK9zCcKtENcGfNeo9mtOtcb2Jq19H2KuxX6GNPtSw5bfnkC5Pyov8muRjK DLGR5OCJNLQsMhykJYKQ71QOSYLIL0BR8P9QZTFivt22U4iNEHi+yR0ZL8ipazRmaaZUqp8gP JeAxbGgxVhnn4jLH07B1FI0kngbPrsOz012Ig80pzclHKS+s7D5btzxESa19a5SJpuUMm1Tqn R8A8nF2Dudg9BGjuvTvH5aSJSimD4s+q1xHeOuVIIqkykYmzN4G9AzhivfRUOyzU/RF5qo8i5 G6wcJlHpzduq18MMt8mrKRCVwqaX0OAupC1EaF+x639uM7Xg9C//7uNkZ6nwASGdfUg6pVpAI htyGfrZBuyQNIAH379u0/XDFSNMArVQyWZcwsKZlu4aAR8b2eqJ4/1lIVCDndtbPGD/y7WSw= = X-UI-Loop:V01:sYsOhiU0uTs=:Fty6T1eO3+H/dYZS4OjoCTgT/AoggbVBTh/bGnxkvLc= X-UI-Out-Filterresults: notjunk:1;V01:K0:MeAp035hyW4=:UlgwG+enNvHUerA5oeH8es /m67zW3pXtfBFwPtW4G2jsuBiawxjEa475P2ouknALZf7LE1ySzxSSv3P8ObnF+ORI6WbIOeT 4vT9TCQdAutfOso4r/B5vrH5u6aawBXrrEArHbZ5h3oCCdlCznDzzBsW0XKCN/Be9WOp9gtXP Vd2tQ+hb/3spTiYjDQBut0rSeHKAoy1J1XLrAEhcv9SkXoM/h61nAIPLGsbxsaA8guWN5U5Nr Q/EL8Geyzqjj1qeJo9MGgkqsgtNc49PamGhRGIRv9Ykg8t5Ioy1rMron0QpXQRl06EvZJRxqc glbBkSa1sgh6jsMwfm5lBxWvgY4xLHzWNAKSvmQ4+suvfRZyZgmDkmdvIylN877B/85Aelvb7 3bqsSWiJlImg5DXUevgxPQW9Va/nM93YASC4u/5nqGls5KHKNFv3vJXI1OA6fKrqdoHqDlFCc KVldA4xDJZvbQUNrsEApx1rwNCSPO3y9iOPtsd5aR6G7psTPuqsb 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 t4VE2qUv013685 Status: R X-Status: X-Keywords: X-UID: 7718 On 30/05/2015 21:57, Julien RIVAUD (_FrnchFrgg_) wrote: > Le 30/05/2015 22:10, Joseph Wright a écrit : > >> Further to this, I believe I have sorted the issues. I am happy to >> update CTAN tomorrow with the new code: would that be helpful? > > Sure, but don't feel pressed to update, I'm not severely bitten by the > bug (I'm planning to only use margins, but wanted to see if a later > "wrapfig"-like system, using cutouts or parshapes, would interact well. I've sent the update to CTAN. One of the design aims for me in the approach taken to parshape was exactly allowing wrapfig-like effects with lists and the like. As such, this was quite an important issue to fix. > Thinking further about what features packages would need, I currently see: > > -> a way to read currently setup parshapes in clist form (so that it can > be edited then fed back to l3galley). It would then be easier to have > cutouts implemented as simple wrappers around parshapes (at least for > the current paragraph). I don't see the requirement to read back raw parshapes. Indeed, as the concept is that margins, measure and cutouts are separate concepts, access to the raw parshape sounds like a bad idea! For example, if you are coding a list-like structure you've no idea is some other code will alter the margins or impose a cutout, so should not expect to be able to set the raw parshape. > -> have some kind of cumulative parshape settings (easy for a single > paragraph, just by reading and computing sums, but harder in the general > case: > > if you do in order > > \galley_set_parshape_multi:* > \galley_set_parshape_single:* > \galley_set_parshape_relative_multi:* > > Then computing the right parshapes for later paragraph is hard IIUC > because the parshape settings are not stored independently and rather > read back from eTeX as needed... So until the reset done by the endofpar > hook, you don't have access to next par settings (unless you parse the > reset tl, which I find ugly and error prone). The good part with the > current way is that if parshapes are touched by galley-unaware code, > everything still works. I've refactored the entire area here, so there is no longer an internal readback of the \parshape primitive. However, the data structures are largely internal. I'd expect any higher-level interface to track the settings it is requesting itself. > -> a way to setup parshapes that continue through paragraph boundaries > (great for wrapfig-like cutouts). But maybe it is better to do that > manually with begin/end par hooks, because the code might decide that > the parskip accounts for a line, or other fancy stuff. It wasn't working properly before, but the entire point of a cutout as I've conceptualised it is that it's an arbitrary shape imposed on the text after setting margins and measure, and that it explicitly applies to a fixed number of lines rather than on a paragraph basis. I'd recommend trying the now-working code! (On the business of how one determines how many lines count, that may require some recalculation depending on the spacing active. As you say, that seems best added to a paragraph hook rather than trying to incorporate it into the core mechanism.) -- Joseph Wright