Received: via tmail-4.1(11) (invoked by user schoepf) for schoepf; Sat, 8 Jan 2000 04:56:27 +0100 (MET) Received: from mailgate1.zdv.Uni-Mainz.DE (mailgate1.zdv.Uni-Mainz.DE [134.93.8.56]) by mailserver1.zdv.Uni-Mainz.DE (8.9.3+Sun/8.9.1) with ESMTP id EAA08409 for ; Sat, 8 Jan 2000 04:56:26 +0100 (MET) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01BF598C.566DE780" Received: from mail.listserv.gmd.de (mail.listserv.gmd.de [192.88.97.5]) by mailgate1.zdv.Uni-Mainz.DE (8.9.3/8.9.3) with ESMTP id EAA03725 for ; Sat, 8 Jan 2000 04:56:26 +0100 (MET) Received: from mail.listserv.gmd.de (192.88.97.5) by mail.listserv.gmd.de (LSMTP for OpenVMS v1.1a) with SMTP id <6.26FEF1E6@mail.listserv.gmd.de>; Sat, 8 Jan 2000 4:56:13 +0100 X-MimeOLE: Produced By Microsoft Exchange V6.5 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 446525 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 8 Jan 2000 04:55:10 +0100 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id EAA20280 for ; Sat, 8 Jan 2000 04:55:09 +0100 (MET) Received: from downtown.oche.de (downtown.oche.de [194.94.253.3]) by relay.uni-heidelberg.de (8.9.1b+Sun/8.9.1) with ESMTP id EAA03437 for ; Sat, 8 Jan 2000 04:56:06 +0100 (MET) Received: from corona.oche.de (uucp@localhost) by downtown.oche.de (8.9.3/8.9.3/Debian/GNU) with UUCP id EAA25468 for URZ.UNI-HEIDELBERG.DE!LATEX-L; Sat, 8 Jan 2000 04:50:00 +0100 Received: by corona.oche.de (wUUCP 1.10) id <1k9y@corona.oche.de>; Fri, 7 Jan 00 21:31:45 CET Return-Path: X-Mailer: AmiGate 1.6 (13.11.95) x-vm-v5-data: ([nil nil nil nil nil nil nil nil nil]["2014" "Fri" "7" "January" "2000" "21:25:39" "CET" "Achim Blumensath" "blume@CORONA.OCHE.DE" nil "54" "Re: environment templates" "^Date:" nil nil "1" nil "environment templates" nil nil nil]nil) Content-class: urn:content-classes:message Subject: Re: environment templates Date: Fri, 7 Jan 2000 22:25:39 +0100 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: From: "Achim Blumensath" Sender: "Mailing list for the LaTeX3 project" To: "Multiple recipients of list LATEX-L" Reply-To: "Mailing list for the LaTeX3 project" Status: R X-Status: X-Keywords: X-UID: 3495 This is a multi-part message in MIME format. ------_=_NextPart_001_01BF598C.566DE780 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Frank Mittelbach wrote: > Achim Blumensath writes: > > > for the theoremstyle template type a good name could then be > > > something like \EndThisTheorem. > > > > I think it would be a good idea to uniformly call those commands > > \EndThisEnvironment. > > the problem with this and perhaps the problem with the whole mechanism > is that a lot of people have learned to write environments like this: > > \newenvironment{foo}{...\quote ...}{ ... \endquote ...} > > ie without using \begin/\end internally. > > if all such things like \quote internally use \EndThisEnviornment then > guess what happens. so this needs some thoughts. > > a) do not allow above usage IMHO such hacks as above shouldn't be allowed anyway. If someone = directly accesses internals of some package instead of using the defined interface he deserves his code breaking when the implementation is changed. Besides, what happenes if someone uses two nested lists in the above way? So you have the problem regardless of whether all templates share a common name or each uses its own one. One way to allow hacks like this could be to define \newenvironment as \newenvironment :=3D \def\{ \begingroup } \def\end{ \endgroup } that is, to move the \begingroup, \endgroup from \begin and \end into the \foo, \endfoo commands. > b) do implement your independent stack handling for these things > c) do provide your own groups already at the environment-template = level > d) ...? Achim ________________________________________________________________________ _ | \_____/ = | // Achim Blumensath | \ _ \O/ \___/\ = | // blume@corona.oche.de |-< /_\ =3Do=3D \ = /\ \| \X/ (p^2 - m^2)\psi =3D 0 |_/ \_ /"\ = o----| ____________________________________________________________________\___|= ------_=_NextPart_001_01BF598C.566DE780 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Re: environment templates

Frank Mittelbach wrote:
> Achim Blumensath writes:
>  > > for the theoremstyle template = type a good name could then be
>  > > something like = \EndThisTheorem.
>  >
>  > I think it would be a good idea to = uniformly call those commands
>  > \EndThisEnvironment.
>
> the problem with this and perhaps the problem = with the whole mechanism
> is that a lot of people have learned to write = environments like this:
>
> \newenvironment{foo}{...\quote ...}{ ... = \endquote ...}
>
> ie without using \begin/\end internally.
>
> if all such things like \quote internally use = \EndThisEnviornment then
> guess what happens. so this needs some = thoughts.
>
>  a) do not allow above usage

IMHO such hacks as above shouldn't be allowed anyway. = If someone directly
accesses internals of some package instead of using = the defined
interface he deserves his code breaking when the = implementation is
changed. Besides, what happenes if someone uses two = nested lists in the
above way? So you have the problem regardless of = whether all templates
share a common name or each uses its own one.

One way to allow hacks like this could be to define = \newenvironment as

  \newenvironment <name> <begin-code> = <end-code> :=3D
    \def\<name>{
      \begingroup
      = <begin-code>
    }
    \def\end<name>{
      = <end-code>
      \endgroup
    }

that is, to move the \begingroup, \endgroup from = \begin and \end
into the \foo, \endfoo commands.

>  b) do implement your independent stack = handling for these things
>  c) do provide your own groups already at = the environment-template level
>  d) ...?

Achim
________________________________________________________________= ________
          &nbs= p;            = ;         = _            =             &= nbsp;    | \_____/ |
    //  Achim = Blumensath       | \  = _            =             \O/ = \___/\ |
   //   = blume@corona.oche.de   |-< = /_\           &nbs= p;           = =3Do=3D  \ /\ \|
 \X/    (p^2 - m^2)\psi =3D = 0    |_/ = \_            = ;            = /"\   o----|
________________________________________________________________= ____\___|

------_=_NextPart_001_01BF598C.566DE780--