X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["1493" "Mon" "20" "October" "1997" "18:38:46" "-0400" "Matthew Swift" "swift@ALUM.MIT.EDU" nil "33" "Re: \\@ifdefinable" "^Date:" nil nil "10" nil nil nil nil nil] nil) Received: from listserv.gmd.de (listserv.gmd.de [192.88.97.1]) by mail.Uni-Mainz.DE (8.8.5/8.8.5) with ESMTP id AAA08759; Tue, 21 Oct 1997 00:39:19 +0200 (MET DST) Received: from lsv1.listserv.gmd.de by listserv.gmd.de (LSMTP for OpenVMS v1.1a) with SMTP id <12.3A5B98D8@listserv.gmd.de>; Tue, 21 Oct 1997 0:39:18 +0200 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 218996 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 21 Oct 1997 00:38:54 +0200 Received: from acs-mail.bu.edu (root@ACS-MAIL.BU.EDU [128.197.153.100]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with ESMTP id AAA11488 for ; Tue, 21 Oct 1997 00:38:50 +0200 (MET DST) Received: from aleph.swift.xxx (PPP-86-15.BU.EDU [128.197.8.195]) by acs-mail.bu.edu (8.8.5/BU_Server-1.3) with ESMTP id SAA117800 for ; Mon, 20 Oct 1997 18:38:27 -0400 Received: from aleph (localhost [127.0.0.1]) by aleph.swift.xxx (8.8.5/8.8.5) with ESMTP id SAA19878 for ; Mon, 20 Oct 1997 18:38:47 -0400 X-Emacs: Emacs 20.2, MULE 3.0 (MOMIJINOGA) MIME-Version: 1.0 (generated by SEMI MIME-Edit 0.92 - "Oyanagi") Content-Type: text/plain; charset=US-ASCII Message-ID: <199710202238.SAA19878@aleph.swift.xxx> Reply-To: Mailing list for the LaTeX3 project In-Reply-To: Your message of "Mon, 20 Oct 1997 19:30:59 +0200." Date: Mon, 20 Oct 1997 18:38:46 -0400 From: Matthew Swift Sender: Mailing list for the LaTeX3 project To: Multiple recipients of list LATEX-L Subject: Re: \@ifdefinable Status: R X-Status: X-Keywords: X-UID: 2492 >>>>> "H" == Hans Aberg writes: >> 4) advanced syntax that lets you compute the macro name and/or >> write a complex parameter specification. H> Isn't this just the usual (in-reality-not-so-advanced) TeX H> parameter definitions you are thinking of here? H> I think the LaTeX parameter style \newcommand[6]... is H> pointless. Should it not be scrapped in LaTeX3, only be allowed H> in compatibility mode? If you are going to reengineer the whole system of defining commands in LaTeX, then a fortiori you are going to redefine \@ifdefinable. If anyone does this, I think it makes sense to continue to permit one or more abbreviated forms of defining commands in the present manner: a form for simple arguments; a form that accommodates common optional arguments; and a form with full generality -- at least these forms. TeX macro parameters and their TeX syntax may be "in-reality-not-so-advanced" to multi-year veterans of TeX such as Hans and myself, but the easier it is for all users to BOTH WRITE and READ defining commands, the better for everyone. The current system of permitting the majority of definitions to be written in a simple form is the right idea. Imagine if every definition were as hard to read as this one from the kernel: \long\def\@tf@r#1#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\space\else \@tforloop#2\@nil\@nil\@@#1{#3}\fi} ...or another macro I use has that has a full 32 #'s in front of it.