Received: from webgate.proteosys.de (mail.proteosys-ag.com [62.225.9.49]) by lucy.proteosys (8.11.0/8.9.3/SuSE Linux 8.9.3-0.1) with ESMTP id f1JHER104642 for ; Mon, 19 Feb 2001 18:14:27 +0100 Received: by webgate.proteosys.de (8.11.0/8.11.0) with ESMTP id f1JHEQd28190 . for ; Mon, 19 Feb 2001 18:14:26 +0100 Received: from mail.Uni-Mainz.DE (mailserver1.zdv.Uni-Mainz.DE [134.93.8.30]) by mailgate1.zdv.Uni-Mainz.DE (8.11.0/8.10.2) with ESMTP id f1JHEQH15455 for ; Mon, 19 Feb 2001 18:14:26 +0100 (MET) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C09A97.69AC1B80" Received: from mailgate2.zdv.Uni-Mainz.DE (mailgate2.zdv.Uni-Mainz.DE [134.93.8.57]) by mail.Uni-Mainz.DE (8.9.3/8.9.3) with ESMTP id SAA05092 for ; Mon, 19 Feb 2001 18:14:25 +0100 (MET) X-MimeOLE: Produced By Microsoft Exchange V6.5 Received: from mail.listserv.gmd.de (mail.listserv.gmd.de [192.88.97.5]) by mailgate2.zdv.Uni-Mainz.DE (8.11.0/8.10.2) with ESMTP id f1JHEOQ28575 for ; Mon, 19 Feb 2001 18:14:24 +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 <10.3B42F8EC@mail.listserv.gmd.de>; Mon, 19 Feb 2001 18:14:15 +0100 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 490627 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 19 Feb 2001 18:14:19 +0100 Received: from ix.urz.uni-heidelberg.de (mail.urz.uni-heidelberg.de [129.206.119.234]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA29146 for ; Mon, 19 Feb 2001 18:14:18 +0100 (MET) Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by ix.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA52550 for ; Mon, 19 Feb 2001 18:14:18 +0100 Received: from abel.math.umu.se (abel.math.umu.se [130.239.20.139]) by relay.uni-heidelberg.de (8.10.2+Sun/8.10.2) with ESMTP id f1JHEIx28447 for ; Mon, 19 Feb 2001 18:14:18 +0100 (MET) Received: from [130.239.20.144] (mac144.math.umu.se [130.239.20.144]) by abel.math.umu.se (8.9.2/8.9.2) with ESMTP id SAA15766 for ; Mon, 19 Feb 2001 18:12:22 +0100 (CET) In-Reply-To: <200102191604.QAA03679@penguin.nag.co.uk> References: =?iso-8859-1?Q?=3Cl03102800b6b5fe495104=40=5B130=2E239=2E137=2E13?= =?iso-8859-1?Q?=5D=3E_=28message_from_Lars____________Hellstr=F6m_o?= =?iso-8859-1?Q?n_Mon=2C_19_Feb_2001_00=3A13=3A56_+0100=29__________?= =?iso-8859-1?Q?___=3Cl03102800b6b5fe495104=40=5B130=2E239=2E137=2E13=5D=3E?= Return-Path: X-Sender: lars@abel.math.umu.se x-mime-autoconverted: from quoted-printable to 8bit by relay.urz.uni-heidelberg.de id SAA29147 Content-class: urn:content-classes:message Subject: Re: New template macro families Date: Mon, 19 Feb 2001 18:14:17 +0100 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: From: =?iso-8859-1?Q?Lars_Hellstr=F6m?= 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: 3985 This is a multi-part message in MIME format. ------_=_NextPart_001_01C09A97.69AC1B80 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable At 17.04 +0100 2001-02-19, David Carlisle wrote: >so where you have > > Current name: \describecsfamily{TP@<\meta{type}>} > New name: \describecsfamily{TP@T{\meta{type}}} > >ie a name of the form > >\csname TP@T{xxx}\endcsname > >you could have names > >\csname TP@T}xxx}\endcsname I think it's best not to deliberately mismatch the braces as a user = seeing the above control sequence in an error message may easily mistake it for \TP@T }xxx} (i.e., two end-of-groups) and thus get the wrong idea about where a = group he started actually ends. As for using names of the form TP@Iccc{ttt}iii (four braces less than I suggested), it doesn't completely prevent namespace overlap. The D instance in collection A{B} of type C is still stored in the same place as the {C}D instance in collection A of type B (although this overlap is much less likely). I think another advantage = with the names I suggested is that they are more easily interpreted by a user who sees them in a TeX error message. The logical structure of \TP@I{frontmatter}{heading}{section} is easier to understand than that of \TP@Ifrontmatter{heading}section Compare with the case for the NFSS fontdef tokens. I understood the = meaning of e.g. \T1/pad/m/n/12 (when TeX was showling an hlist) the first time I looked at it, but it took several months before I realised how tricky it really was. Lars Hellstr=F6m ------_=_NextPart_001_01C09A97.69AC1B80 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Re: New template macro families

At 17.04 +0100 2001-02-19, David Carlisle = wrote:
>so where you have
>
> Current name: = \describecsfamily{TP@<\meta{type}>}
>  New name: = \describecsfamily{TP@T{\meta{type}}}
>
>ie a name of the form
>
>\csname TP@T{xxx}\endcsname
>
>you could have names
>
>\csname TP@T}xxx}\endcsname

I think it's best not to deliberately mismatch the = braces as a user seeing
the above control sequence in an error message may = easily mistake it for

  \TP@T }xxx}

(i.e., two end-of-groups) and thus get the wrong idea = about where a group
he started actually ends. As for using names of the = form TP@Iccc{ttt}iii
(four braces less than I suggested), it doesn't = completely prevent
namespace overlap. The D instance in collection A{B} = of type C is still
stored in the same place as the {C}D instance in = collection A of type B
(although this overlap is much less likely). I think = another advantage with
the names I suggested is that they are more easily = interpreted by a user
who sees them in a TeX error message. The logical = structure of

 \TP@I{frontmatter}{heading}{section}

is easier to understand than that of

 \TP@Ifrontmatter{heading}section

Compare with the case for the NFSS fontdef tokens. I = understood the meaning
of e.g. \T1/pad/m/n/12 (when TeX was showling an = hlist) the first time I
looked at it, but it took several months before I = realised how tricky it
really was.

Lars Hellstr=F6m

------_=_NextPart_001_01C09A97.69AC1B80--