Received: from mx0.gmx.net (mx0.gmx.net [213.165.64.100]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with SMTP id p02LRYc2013671 for ; Sun, 2 Jan 2011 22:27:35 +0100 Received: (qmail 924 invoked by alias); 2 Jan 2011 21:27:29 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 02 Jan 2011 21:27:29 -0000 Received: from relay.uni-heidelberg.de (EHLO relay.uni-heidelberg.de) [129.206.100.212] by mx0.gmx.net (mx015) with SMTP; 02 Jan 2011 22:27:29 +0100 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 p02LPoIX031502 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 2 Jan 2011 22:25:50 +0100 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p01N14hW014420; Sun, 2 Jan 2011 22:25:45 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 771863 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sun, 2 Jan 2011 22:25:45 +0100 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p02LPiHw016653 for ; Sun, 2 Jan 2011 22:25:45 +0100 Received: from lon1-post-3.mail.demon.net (lon1-post-3.mail.demon.net [195.173.77.150]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p02LPYFd016860 for ; Sun, 2 Jan 2011 22:25:37 +0100 Received: from cremornelane.demon.co.uk ([80.177.25.195] helo=palladium.local) by lon1-post-3.mail.demon.net with esmtp (Exim 4.69) id 1PZVQj-0002WM-fe; Sun, 02 Jan 2011 21:25:34 +0000 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-GB; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 References: <4D20D031.7040803@gmx.de> <4D20DAE9.3070306@morningstar2.co.uk> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Message-ID: <4D20ED4D.8060004@morningstar2.co.uk> Date: Sun, 2 Jan 2011 21:25:33 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: l3luatex module To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=5D7Q89H36p4U4jfdfC5HDevlx1X2sAZgAaLl3DbFfW0PXxL7WgvovMFXXSEPrACW/b9IW Qp+GhEViZlUW4mdBntgP1X8KwB5tjHCA/yxSZMu7BXBiPs3ujyaoi2xLHDqpg8dk65Dhpb3Lg0c1 iTjGg==V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de Status: R X-Status: X-Keywords: X-UID: 6506 On 02/01/2011 21:03, Philipp Stephani wrote: > Am 02.01.2011 um 21:07 schrieb Joseph Wright: > >> If the idea is that you can use LaTeX3 without needing to know all of the underlying TeX > > still it would be great if the behavior of the L3 macros were formally defined in TeX terms: I often experience that I cannot use certain L3 macros because it is not documented whether they expand to, say, an or an. \dimexpr ... \relax is guaranteed by the e-TeX manual to be an, but what \int_eval:n does is undocumented—in fact, it expands to an without trailing space, making things like > > \documentclass{minimal} > \usepackage{expl3} > \begin{document} > \newcount\x > \ExplSyntaxOn > \x = \int_eval:n { 1 + 1 } 1 > \ExplSyntaxOn > (\the\x) > \end{document} > > possible. 2e's counters and length were designed to make such effects impossible, but L3 reintroduces them :-( > \dim_eval:n, on the contrary, expands to an. I think that is the right choice because it is faster and leads to fewer problems. I think a formal description like the following would be nice: One of the jobs which definitely needs doing for expl3 is tightening up the documentation. On this one, at least, I would point out that you are abusing \int_eval:n here, as there is a perfectly good, documented function for setting int variables (\int_set:Nn). > "Formal definition: \int_eval:n is a non-long, non-protected, non-outer macro. The token sequence \int_eval:n expands after an undefined number of expansion steps to a token sequence that represents an." > Personally I would benefit from such guarantees because I could use more from L3. At the moment, my packages use a mixture of 2e, L3 and TeX primitives, and until L3 can replace every bit of TeX and 2e, the TeX speak won't disappear. As long as we don't have to endure those unreadble lists of argument definition :-) -- Joseph Wright