Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(5.0.2195.6713); Sun, 17 Apr 2005 13:36:54 +0200 Received: by mail.proteosys.com (8.12.10/8.12.2) with ESMTP id j3HBaqqc022466 for ; Sun, 17 Apr 2005 13:36:53 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.119.176]) by relay2.uni-heidelberg.de (8.12.10/8.12.10) with ESMTP id j3HBXMtL003258; Sun, 17 Apr 2005 13:33:22 +0200 (MET DST) Received: from listserv (listserv.uni-heidelberg.de [129.206.119.176]) by listserv.uni-heidelberg.de (8.12.7/8.12.7/SuSE Linux 0.6) with ESMTP id j3GM1B2Q022803; Sun, 17 Apr 2005 13:31:29 +0200 Received: from LISTSERV.UNI-HEIDELBERG.DE by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8e) with spool id 211325 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sun, 17 Apr 2005 13:31:28 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.12.7/8.12.7/SuSE Linux 0.6) with ESMTP id j3HBVRrw006704 for ; Sun, 17 Apr 2005 13:31:27 +0200 Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by relay2.uni-heidelberg.de (8.12.10/8.12.10) with ESMTP id j3HBWstL003200 for ; Sun, 17 Apr 2005 13:32:55 +0200 (MET DST) Received: from localhost ([127.0.0.1] helo=localhost.localdomain) by fencepost.gnu.org with esmtp (Exim 4.34) id 1DN7zS-0005Gy-Uq for LATEX-L@listserv.uni-heidelberg.de; Sun, 17 Apr 2005 07:31:03 -0400 References: <5.1.0.14.0.20050417104145.0247e860@pop3.web.de> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id j3HBVRrw006706 Message-ID: <85hdi5ej28.fsf@gnu.org> Date: Sun, 17 Apr 2005 13:31:11 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Kastrup Subject: Re: \output trick; Re: lineno.sty question To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: (Donald Arseneau's message of "Sun, 17 Apr 2005 04:04:23 -0700") Precedence: list X-ProteoSys-SPAM-Score: 0 () X-Scanned-By: MIMEDefang at proteosys.com Return-Path: owner-latex-l@listserv.uni-heidelberg.de X-OriginalArrivalTime: 17 Apr 2005 11:36:55.0044 (UTC) FILETIME=[C1A15C40:01C54341] Status: R X-Status: X-Keywords: X-UID: 4858 Donald Arseneau writes: > Uwe Lück writes: > >> This is due to a mistake in revtex's way of changing the output >> routine. > > I agree. > >> After a \newtoks\output, > > And, for the output routine, I think that itself is the mistake! I > opine that for \output one should "bite the bullet" and do > \output=\expandafter{\expandafter\mymacro\the\output} > > Hoping to silently hook in, without knowledge of what else has > modified the output routine, and without making your own > modification obvious, is insane. The problem is that you sometimes need to call the old behavior, and sometimes not. In particular, if you have inserted a special penalty yourself, then you will deal with it yourself, not passing anything on and not actually calling the original output routine. There really is no sane reason to expose all this to completely unrelated packages and formats and hope that they will not break in the process. Using a clean separation between changed and called hook makes it possible to give strictly coherent results which make changes strictly confined to the package in question. As you can see from the previous example I posted in the list, it does not even seem that latex.ltx and amsmath.sty which are released together get it right, as amsmath.sty fiddles inconsistently with both \frozen@everymath and \frozen@everydisplay as well as \everymath and \everydisplay. So this clearly is already a mistake when just two packages in the same code base are involved, and the complexity explodes exponentially when more packages get pulled into the play. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum