Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by h1439878.stratoserver.net (8.14.4/8.14.4/Debian-2ubuntu2.1) with ESMTP id t4VGsvbL016243 for ; Sun, 31 May 2015 18:54:58 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx111) with ESMTPS (Nemesis) id 0Ldtlf-1ZOmcq3bXf-00iyMa for ; Sun, 31 May 2015 18:54:52 +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 t4VGrIM8008598 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 31 May 2015 18:53: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 t4VAWAoY029109; Sun, 31 May 2015 18:53:18 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 12138281 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sun, 31 May 2015 18:53:18 +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 t4VGrI7Y019773 for ; Sun, 31 May 2015 18:53:18 +0200 Received: from relay.mailchannels.net (ftx-008-i771.relay.mailchannels.net [50.61.143.71]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id t4VGrArb008564 for ; Sun, 31 May 2015 18:53:14 +0200 X-Sender-Id: netnames|x-authuser|joseph.wright@morningstar2.co.uk Received: from smtp3.easily.co.uk (ip-10-33-12-218.us-west-2.compute.internal [10.33.12.218]) by relay.mailchannels.net (Postfix) with ESMTPA id 5D74760565 for ; Sun, 31 May 2015 16:53:07 +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.4.8); Sun, 31 May 2015 16:53:08 +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: 1433091187958:3650943121 X-MC-Ingress-Time: 1433091187958 Received: from [109.147.52.3] (port=52094 helo=Palladium.local) by smtp3.easily.co.uk with esmtpa (Exim 4.43) id 1Yz6Tw-0000LC-WF for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sun, 31 May 2015 17:53:05 +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> <556B1417.3060900@morningstar2.co.uk> <556B1C0D.2020900@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 t4VGrI7Y019774 Message-ID: <556B3C70.9020106@morningstar2.co.uk> Date: Sun, 31 May 2015 17:53:04 +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: <556B1C0D.2020900@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 t4VGrIM8008598 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:ihxouQP0eM0=:wmO75SW8/DDc09das4dsTN6Tq0 8ibCflTOXc0IK7F95dcdJk9mfsNqhbAgbNUDBSsKkuwXhmgc1kxwFYyq+V3DAAGBnAbO3BPwn hovNqaMbcMHZoH4YFvGmyFeFNQL9UD9RaQ7DqmR49tz5SjSiuOM9BSuvFLLyh9kbweFrNhfrs X5bitTnKXxqiG6DKRy25RAJYXWR3UpNYVbNEBygW9a3AE5sh2xqu+tY4sUbp+Z3jpEo+AcED2 tIRF5n8h1MSOo6T5fS37K/H/4xkrqyfudHNtZx8UH6lJaTw6On+WszVxEWL9Wuv+7hBncZfvD SPo4DERdeNuVbiecAOTpaypMS4VeF0alabG6fFiSqdxGzZTYV6C3ZDfassqFMuK4UoYeQTFsN mZrAzL8ayr3b3e4aKBv1UGEgvTg28HS7WJ+Zum4ocAbHycnfEC9FGV+8on5dPmosCMa+lZrp2 c4h/5X346TQBbzjcku4h/1KdIpaIN4hR3FIMuc+FOUIWP7ESQ6bMz+GbeOqHLWOC2BRyiQ6z+ YE4wyVHJItuyh31J3Kk0ry5x1384WjZBEPmcO/vV3/sIAHb2mA0EXt5EiFmX32Ng8INsv5cPc FVHVsdVlboYzDKRMa/aCGcLI1PvhWwA6acEz1TLcaI2wPBSxrNDvX1Spz1y+/MgPYZ89XPRQs KFHMEPzUcWaCColt5wwfeHCll6VTYmEmyrWElmMUrUynrk27K/s6SppB3wa0pYRJGfnwUymjf Hn4ISb87Hwkm+juBHkeVWpUieOCIsihX/klrJJTg8T9+c4PU9FiXy3CjGsQ8oBKYhsZ8DO7SX wth5ulIlidY0zTtqHO/eIyb8ucZDdWioRrYdAon71gAITNszL8FQNjixMhs1+JVWCjBv/oFoP /GOLGTisQjmdGdtAwU0N1F6/MzxNP9fe4OBM7fb8EzPi6tPLdG2KURLGwS8vQOSkjB44BAI/N N07j913LlM4PSSZHyYQXxfv2oizB/dnQMWUS/k/XyMbw2rNePvpypU2Qp8akrJ7qj+XEX9n6p ZkYaLqyC6lwVMP8cnXNG3JoFKD2lpdzB7kj4zsT2rmCFnVx5a9tHljQZQDTnUzb6t419VWPgx DOIYahpK9C4GGWkmn+VM7XHPVG4oV/pN+n+FiUYv1Q64A62XmhR3gDtZvHDFm+JUlyba1nNYD E8D8E+uOZ1+kW/PJ3GinHJIvqxqcLDuesIO1Vv33pfs8X3sbKhic1qy3DrX9zG4rMF2lzmYat zEufcByhA+GsmHE69mipwy641dipYzO95j2wgh+OYkc3jMxWANpJjAKbKlnOICdIb/5l1HEM3 bhNIxKoZIYO73FcJ3FCyHMnx2/oEmXE8048j8/seuug1Zezrot6qc1oUg28ydrOMILm+Ew9gi vbSlJ9E5j3irNY/C6/G5drzjjJJ4ldBkPoYVVFA7bfLq53ZX+2XHH2fpnaPbzBLwsm6XYQ4oq ieZKRhSRe1ItC746UvEw647VXIouhK0HR+RgtLu20IWAv07p4D/snph/QuFAAmKoUYooKkYg= = X-UI-Loop:V01:d620Z4oTY/w=:Z/AY7705YBp5s2FZZTAYXigsUCOOkfdpIqjNcbjE8EQ= X-UI-Out-Filterresults: notjunk:1;V01:K0:5+/qiYwdlQM=:pewiGQQ0OxsImSOLJbdYYF BKqE4IFRJXCfUTxJWV9Cqz6iNZDWaKKSgldQbjBE8maZg/BDxPxZKwNYOXpyMfwFjlxyGqUcz 1O+FaVECX3hzmTusGd2Sb5y2RhzhO9XG54j1InqidGLmh7XAQmvbmt0BAhziBj1t7xskxfMD+ d1SddCvMMW7z17vD6Q3oEfjzEu1uhlT06XDx7+olz229S6sHkIRv1SFwP/nBq8Df+pRFYE8V3 6F2K9ovNPtv44xRX6I+RZDDfuh0R93og4JAbc1mxjorRuXU3KY06hVVCwH8BCoVb02ZGeRy4+ oekS/B+TXEa8zE1xtrAKwRNCu1qdeduGIcFYwB9/Ns5ekjjLpmVMApk4dIggc8WM2JNmV6AGV VUOl9aqQAj/NJWZ7QY9MbdjXP8HG5g1iRw0xJ8IINvejULao38GWMSIQwhpmyN1PT2JAlJB4S +w5Rra9HRgyWalRriZZgIAvN6n3t8K5Lw5MaWiHq2v3REvTDbJ+l 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 t4VGsvbL016243 Status: R X-Status: X-Keywords: X-UID: 7720 On 31/05/2015 15:34, Julien RIVAUD (_FrnchFrgg_) wrote: > Le 31/05/2015 16:00, Joseph Wright a écrit : > >>> -> 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. > > If internally parshapes/cutouts are stored so that they can be > cumulative, then that's not needed. It was more an implementation need > that a real interface requirement. I'm most interested in interface use cases: implementations can and do change, and one LaTeX3 idea is that we are very specifically *not* giving any assurance on internals, only what we document. > The idea is that if parshapes aren't cumulative (with a way to reset > them if needed), then a package using parshapes to do, say hanging items > or theorem heads would clobber a parshape previously set by a > wrapfig-like package, unless it reads them back to add to them instead > of wiping previous settings. Yes, but the point is such things done by l3galley don't suffer from this. > Some real reasons to read parshapes would be: > > - ensuring that consecutive lines have the same shape (I can envision > environments that would prefer to get a rectangular area, even if it > means a smaller one) You mean for example if a cutout overlaps with a block of text that should be rectangular? Tricky, as a cutout should have some visual 'bite' into the text block. Probably if implemented this should be a particular type of measure rather than requiring reading back the raw \parshape. > - querying the space some line will have (e.g., to decide if the first > enumerate label should be on the same line as the surrounding enumerate > item, or if we should typeset pending labels then start a new paragraph > --- \leavevmode\par for LaTeX2e) A query mechanism for the shape is certainly possible, as it would only require that we have a forced setting of \parshape followed by an e-TeX-based lookup. > Of course, both of these could/would better be solved with other means > (maybe carefully crafted penalties/skips for the second one, because I'm > not sure that in a galley setting we really need to delay label > typesetting, even if the code needs to know if the last thing we typeset > *is* a label) Quite true. You also need to know which line you are interested in, which I guess is OK if it's the first line of a paragraph but unlikely to be helpful after that. >> 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. > > So you trade compatibility with legacy code ? (Currently, enumitem > already does strange things when xgalley is loaded, but most things work > normally). The big picture for l3galley is controlling what goes onto the MVL. That can only be done if all code uses the correct mechanisms. As such, whilst l3galley will load with LaTeX2e it's quite clear that *anything* that interacts with the galley/MVL has to be modified to use the new code. There's a reason it's down as 'experimental': the code here cannot be used with arbitrary LaTeX2e documents. As such, there has never been any intention to work with anything else messing with \parshape. -- Joseph Wright