4-Nov-1997 8:37:06-GMT,2753;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id BAA10396 for ; Tue, 4 Nov 1997 01:37:03 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id IAA14150; Tue, 4 Nov 1997 08:57:54 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 228619 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 4 Nov 1997 08:57:46 +0100 Received: from linpwd (linpwd.mpae.gwdg.de [134.76.28.202]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id IAA14120 for ; Tue, 4 Nov 1997 08:57:36 +0100 (MET) X-VMS-To: SMTP%"LATEX-L@relay.urz.uni-heidelberg.de" X-VMS-Cc: DALY Message-ID: <97110408573510@linpwd.mpae.gwdg.de> Date: Tue, 4 Nov 1997 08:57:35 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "P.W.Daly, MPAe, Lindau, Germany" Subject: Re: journal macros (not front matter) To: Multiple recipients of list LATEX-L > > 2. Most journal style files (few issue classes) do include extra features > > for handling tables, figure captions, references, sublabelling > > equations. Much of this can be handled by existing packages, such as > > my natbib. > > Hmmm...how does natbib come into this? Sometimes the caption should > come before the table, sometimes after---one has to code presentation, > not content. It's things like this I was thinking of. How can natbib > (in its present form) do this? Natbib cannot do this at all. I was talking about other packages of mine (which I have never publically released). Here natbib was only meant as one example of an additional package to meet journals' special requests, in this case, author-year citation. There has been a great deal said about my natbib package in this discussion. I shall send out a short overview of it in a following message, for those readers who have never used it. Patrick ----------------------------------------------------------------------------- Dr. Patrick W. Daly Tel. [+49] 5556-979-279 Max-Planck-Institut fuer Aeronomie Fax. [+49] 5556-979-240 Max-Planck-Str. 2 D-37191 Katlenburg-Lindau Internet: daly@linmpi.mpg.de Germany ----------------------------------------------------------------------------- 3-Nov-1997 10:54:53-GMT,2260;000000000000 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA13024 for ; Mon, 3 Nov 1997 03:54:45 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id LAA16186; Mon, 3 Nov 1997 11:19:23 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 227921 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 3 Nov 1997 11:19:20 +0100 Received: from MZDMZA.ZDV.UNI-MAINZ.DE (dzdmza.zdv.Uni-Mainz.DE [134.93.178.30]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with ESMTP id LAA16179 for ; Mon, 3 Nov 1997 11:19:19 +0100 (MET) Received: from MZDMZA.ZDV.UNI-MAINZ.DE by MZDMZA.ZDV.UNI-MAINZ.DE (PMDF V5.0-4 #22141) id <01IPKKGYJR68AR4OVJ@MZDMZA.ZDV.UNI-MAINZ.DE> for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 03 Nov 1997 11:16:12 +0100 X-VMS-To: IN%"LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE" MIME-version: 1.0 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Message-ID: <01IPKKGYJWTEAR4OVJ@MZDMZA.ZDV.UNI-MAINZ.DE> Date: Mon, 3 Nov 1997 11:16:12 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "J\"org Knappen 941" Subject: Re: help me get back on the list To: Multiple recipients of list LATEX-L Philipp, send the command HELP in a single-line e-mail message to the LSITSERV@relay.urz.uni-heidelberg.de . This will get you a help file about the listserv oprions. You can set some option to receive a copy of your own message from the listserv, by default this option is turned off. You can also choose to get a send report (saying: Your message was distributed to *** people). Yours, J"org Knappen P.S. Didn't you save the wellcome message from the Listserver when you subscribed? It tells you about this. 4-Nov-1997 9:18:25-GMT,5912;000000000000 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id CAA11014 for ; Tue, 4 Nov 1997 02:18:22 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id JAA16865; Tue, 4 Nov 1997 09:39:59 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 228665 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 4 Nov 1997 09:39:56 +0100 Received: from linpwd (linpwd.mpae.gwdg.de [134.76.28.202]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id JAA16851 for ; Tue, 4 Nov 1997 09:39:52 +0100 (MET) X-VMS-To: SMTP%"LATEX-L@relay.urz.uni-heidelberg.de" X-VMS-Cc: DALY Message-ID: <97110409395258@linpwd.mpae.gwdg.de> Date: Tue, 4 Nov 1997 09:39:52 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "P.W.Daly, MPAe, Lindau, Germany" Subject: natbib overview To: Multiple recipients of list LATEX-L In the discussion on standardizing a journal class, my natbib package has been frequently mentioned (positively, thank heavens), mainly by Sebastian and Phillip. I would like give a brief overview of it for those who are unfamiliar to it. Sebastian did ask me some time ago to write a TUGboat article on it, and, well, that is still on my todo list. Natbib.sty was originally made up to handle author-year citations. In this sense, it was far from the first such package. There were apalike, newapa, chicago, harvard, named, and so on. Each of these had its own bst files, which could only be used with that package. New \cite commands were necessary in every case, if only to distinguish between citations in text like Jones et al. [1995]. and parenthetical ones [Jones, et al. 1995]. That is the basic requirement for author-year citation (which apalike does not even fulfill). Additional requirements are commands for authors only, year only, both citation variants with full author list [Jones, Baker, Williams, and Gouge, 1995]. Chicago and especially harvard can handle these. But: each one has a different set of \cite variants to this. In that sense, natbib is no better, for it uses yet another set. However, natbib has developed further to have two main advantages over chicago and harvard: 1: it can read bst files intended for the other packages; 2: it can switch between numerical and author-year citation mode. Under point 1: natbib can even read plain.bst and the other numerical styles, but then can only produce numerical citations. I provided plainnat.bst, unsrtnat.bst, and abbrvnat.bst as natbib replacements for 3 of the 4 standard bst files that can be used with either numerical or author-year citations. Point 2 means that one can write the argument of Bright [1984] has been refuted [Smith et al. 1995] for author-year citation mode, and if one changes to numerical citations by selecting a \usepackage option, one gets, without any further change in the source text, the argument of Bright [23] has been refuted [54] (This requires that one uses an author-year bst, but any one will do, even those intended for harvard or chicago.) It is safe to say that natbib can do anything the other packages can do, and more. Some people might object, saying harvard can give citations with full author lists on the first citations, and short lists afterwards, whereas natbib can do this, but not automatically. I can refute this simply by saying that version 6.7, which is about to be released, also has this automatic feature. Phillip has talked about the natbib native format for \bibitem, which looks like this: \bibitem[Jones et al.(1995)Jones, Baker, Williams, and Gouge]{key}... This can only be used with natbib.sty; none of the others will treat this right. However, if natbib were to become quasi-standard, this is no problem. The only thing that worries me is that if I were starting from scratch today, I would invent \natbibitem with three clearly separated arguments for the year, short and full lists. As it is, I rely on the parentheses to act as delimiters to separate the three parts of the citation information, something that could cause trouble if an author's name contains parentheses. I have talked to Oren Patashnik about this, and there is a tendency to put square brackets into first names to indicate how the name abbreviated. I am toying with the idea of switching to \natbibitem once BibTeX 1.00 comes out. But of course, older syntaxes would still have to be supported. My other major contribution to bibliographying is custom-bib or makebst. This allows one to make up bst files from a gigantic master by selectively taking lines of code, governed by a set of options. An interactive menu system helps select these options, putting them into a docstrip batch job file, for future editing/correcting or rerunning on updates to the master file. There are over 100 options available, with the number growing. This will do for an overview. Now I should concentrate on writing the TUGboat articles, or getting the latest versions of natbib /makebst online. Patrick ----------------------------------------------------------------------------- Dr. Patrick W. Daly Tel. [+49] 5556-979-279 Max-Planck-Institut fuer Aeronomie Fax. [+49] 5556-979-240 Max-Planck-Str. 2 D-37191 Katlenburg-Lindau Internet: daly@linmpi.mpg.de Germany ----------------------------------------------------------------------------- 5-Nov-1997 10:57:18-GMT,3068;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA12889 for ; Wed, 5 Nov 1997 03:57:14 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id LAA04632; Wed, 5 Nov 1997 11:01:52 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 229303 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 5 Nov 1997 11:01:49 +0100 Received: from heaton.cl.cam.ac.uk (exim@heaton.cl.cam.ac.uk [128.232.32.11]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id LAA04404 for ; Wed, 5 Nov 1997 11:00:14 +0100 (MET) Received: from dorceus.cl.cam.ac.uk (cl.cam.ac.uk) [128.232.1.34] (rf) by heaton.cl.cam.ac.uk with esmtp (Exim 1.735 #2) id 0xT2Fw-0005Gv-00; Wed, 5 Nov 1997 10:00:12 +0000 Message-ID: Date: Wed, 5 Nov 1997 10:00:11 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Robin Fairbairns Subject: Re: journal macros (not front matter) To: Multiple recipients of list LATEX-L In-Reply-To: Your message of "Fri, 31 Oct 1997 13:44:31 GMT." <97103113443170@multivac.jb.man.ac.uk> Philip Helbig quoting Hans Aberg: [proposed \colour command, I forget what for] > > Should the command not be named \color? I mean, who will remember how to > > spell it correctly otherwise. -- Just joking. :-) > > \color might already exist in one of the graphics packages?!?! \color is indeed used in color.sty, which seems to me a good reason *not* to use either American or British spelling. However, since I don't recall what the original command was for (and can't afford the time to look for it) I'm not able to suggest a reasonable alternative > > But I am not sure of the use of the command. Are there a lot of authors > > writing papers in several English dialects simultaneously? > > Well, my next paper I intend to submit to the Monthly Notices of the > Royal Astronomical Society, who in their style guide say `please use > British spelling'. However, MNRAS were still updating their 2.09 stuff in 1995, so one presumes they've little interest in all this new-fangled 2\varepsilon stuff. This is in fact a general problem: SPIE, I found last week, updated their 2.09 proceedings stuff in July (it turned out easier to hack their 2.09 package to a 2e class than to un-2e-ise the paper that had to be out <24 hours after I was called onto the job ;-). What publishers (apart from Springer NY ;-) can we expect to refuse to take part in this sort of exercise, I wonder? Robin 18-Nov-1997 20:05:47-GMT,2799;000000000000 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id NAA20057 for ; Tue, 18 Nov 1997 13:05:45 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id UAA05072; Tue, 18 Nov 1997 20:49:49 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 236670 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 18 Nov 1997 20:49:45 +0100 Received: from multivac (multivac.jb.man.ac.uk [130.88.24.128]) by relay.urz.uni-heidelberg.de (8.8.7/8.8.7) with SMTP id UAA05063 for ; Tue, 18 Nov 1997 20:49:41 +0100 (MET) X-VMS-To: SMTP%"LATEX-L@relay.urz.uni-heidelberg.de" X-VMS-Cc: HELBIG Message-ID: <97111819505757@multivac.jb.man.ac.uk> Date: Tue, 18 Nov 1997 19:50:57 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Phillip Helbig Subject: Re: journal macros (not front matter) To: Multiple recipients of list LATEX-L Both quotes from Patrick Daly: > > > 2. Most journal style files (few issue classes) do include extra features > > > for handling tables, figure captions, references, sublabelling > > > equations. Much of this can be handled by existing packages, such as > > > my natbib. > > > Natbib cannot do this at all. I was talking about other packages of mine > (which I have never publically released). Here natbib was only meant as > one example of an additional package to meet journals' special requests, > in this case, author-year citation. > > There has been a great deal said about my natbib package in this discussion. > I shall send out a short overview of it in a following message, for > those readers who have never used it. I've been away for a while and am catching up on the discussion. As a recent convert to natbib, I can welcome the overview to introduce new users. Also, details on these other packages would be interesting (no need to reinvent the wheel...) -- Phillip Helbig Email ... helbig@multivac.jb.man.ac.uk Nuffield Radio Astronomy Laboratories Tel. ..... +44 1477 571 321 (ext. 297) Jodrell Bank Fax ................. +44 1477 571 618 Macclesfield Telex ................. 36149 JODREL G UK-Cheshire SK11 9DL Web .... http://www.jb.man.ac.uk/~pjh/ 4-Dec-1997 10:12:01-GMT,3276;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA00928 for ; Thu, 4 Dec 1997 03:11:57 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id KAA23275; Thu, 4 Dec 1997 10:42:01 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 245956 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 4 Dec 1997 10:41:57 +0100 Received: from multivac (multivac.jb.man.ac.uk [130.88.24.128]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id KAA23251 for ; Thu, 4 Dec 1997 10:41:55 +0100 (MET) X-VMS-To: LATEX X-VMS-Cc: HELBIG Message-ID: <97120409374722@multivac.jb.man.ac.uk> Date: Thu, 4 Dec 1997 09:37:47 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Phillip Helbig Subject: private macros and journal .cls To: Multiple recipients of list LATEX-L The discussion seems to have died down a bit regarding the standardisation of journal macros. Hopefully it will pick up again in the new year. One leading scientific journal is exemplary in REQUIRING 2e instead of 2.09 but prohibits the use of private macros (even if defined in the preamble with no name clashes, redefinitions etc of standard commands or ones from the special journal .cls), presumably because this is a hindrance in conversion to HTML (which has the advantage of being searchable) which they use as one of their online formats. Is this something one must be prepared to accept in the long run? It seems to me that there is no problem in principle and that this must be a limitation of their current conversion process. It is certainly contrary to the spirit of LaTeX. The suggestion is to replace macros which serve as abbreviations before submission. This is easily enough done, but the problem is that macros which one really needs, like with multiple arguments, some or all of which might be used more or less than once, are not so simply substituted. I sent an email praising their support and even requirement of 2e and making a few polite suggestions as to how they could make some improvements and continue to be the leader in the field as far as LaTeX is concerned; I also asked them to join in the discussion here. This has been a while, and I have had no response and not seen anyone here. -- Phillip Helbig Email ... helbig@multivac.jb.man.ac.uk Nuffield Radio Astronomy Laboratories Tel. ..... +44 1477 571 321 (ext. 297) Jodrell Bank Fax ................. +44 1477 571 618 Macclesfield Telex ................. 36149 JODREL G UK-Cheshire SK11 9DL Web .... http://www.jb.man.ac.uk/~pjh/ My opinions are not necessarily those of NRAL or the University of Manchester. 4-Dec-1997 10:24:28-GMT,3112;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA01170 for ; Thu, 4 Dec 1997 03:24:26 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id LAA24469; Thu, 4 Dec 1997 11:05:01 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 245972 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 4 Dec 1997 11:04:57 +0100 Received: from pillar.elsevier.co.uk (root@pillar.elsevier.co.uk [193.131.222.35]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id LAA24450 for ; Thu, 4 Dec 1997 11:04:54 +0100 (MET) Received: from snowdon.elsevier.co.uk (snowdon.elsevier.co.uk [193.131.197.164]) by pillar.elsevier.co.uk (8.8.5/8.8.5) with ESMTP id KAA05131 for ; Thu, 4 Dec 1997 10:03:05 GMT Received: from screavie.elsevier.co.uk by snowdon.elsevier.co.uk with SMTP (PP); Thu, 4 Dec 1997 10:04:09 +0000 Received: from lurgmhor.elsevier.co.uk (lurgmhor.elsevier.co.uk [193.131.192.141]) by screavie.elsevier.co.uk (8.8.5/8.8.5) with ESMTP id KAA19082 for ; Thu, 4 Dec 1997 10:03:38 GMT Received: (from srahtz@localhost) by lurgmhor.elsevier.co.uk (8.8.5/8.8.5) id KAA04494; Thu, 4 Dec 1997 10:04:37 GMT References: <97120409374722@multivac.jb.man.ac.uk> Message-ID: <199712041004.KAA04494@lurgmhor.elsevier.co.uk> Date: Thu, 4 Dec 1997 10:04:37 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Sebastian Rahtz Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: <97120409374722@multivac.jb.man.ac.uk> > 2.09 but prohibits the use of private macros (even if defined in the > preamble with no name clashes, redefinitions etc of standard commands or > ones from the special journal .cls), presumably because this is a > hindrance in conversion to HTML (which has the advantage of being > searchable) which they use as one of their online formats. > > Is this something one must be prepared to accept in the long run? It no. it just means they don't use a very sophisticated converter. i have mildly strong views on this, since my job at present is further development of Elsevier's latex 2 sgml. If we go to the trouble of dealing with arbitrary macros, so can everyone else.... Sebastian [if you have not heard of it before, our converter works by running LaTeX with a highly-specialized LaTeX class, and extracting tagged text from the dvi file. Eitan Gurari's tex4ht uses a similar process.] 5-Dec-1997 12:36:44-GMT,2546;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA04240 for ; Fri, 5 Dec 1997 05:36:43 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA05965; Fri, 5 Dec 1997 13:07:11 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246720 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 13:07:08 +0100 Received: from AWIUNI11.EDVZ.UniVie.AC.AT (helios.edvz.univie.ac.at [131.130.1.2]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA05947 for ; Fri, 5 Dec 1997 13:07:06 +0100 (MET) Received: from VM.UNIVIE.AC.AT by AWIUNI11.EDVZ.UniVie.AC.AT (IBM VM SMTP V2R2) with BSMTP id 2566; Fri, 05 Dec 97 13:07:14 MEZ Received: from VM.UNIVIE.AC.AT (NJE origin A8131DAL@AWIUNI11) by VM.UNIVIE.AC.AT (LMail V1.2a/1.8a) with BSMTP id 5345; Fri, 5 Dec 1997 13:07:14 +0100 Message-ID: <199712051207.NAA05947@relay.urz.uni-heidelberg.de> Date: Fri, 5 Dec 1997 12:50:53 MEZ Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Peter Schmitt Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: Message of Thu, 4 Dec 1997 09:37:47 GMT from On Thu, 4 Dec 1997 09:37:47 GMT Phillip Helbig said: >One leading scientific journal is exemplary in REQUIRING 2e instead of >2.09 but prohibits the use of private macros (even if defined in the >preamble with no name clashes, redefinitions etc of standard commands or >ones from the special journal .cls), [] >Is this something one must be prepared to accept in the long run? > Considering the excessively high prices (most) professional journals charge (even if they also demand page fees) -- though paying no royalties but demanding full copyrights -- while the author usually provides an almost completely typeset manuscript, publishers should _gladly_ accept anything the author is prepared to deliver instead of imposing specific requirements. Peter 5-Dec-1997 12:56:47-GMT,2781;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA04583 for ; Fri, 5 Dec 1997 05:56:45 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA07567; Fri, 5 Dec 1997 13:28:34 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246737 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 13:28:31 +0100 Received: from pillar.elsevier.co.uk (root@pillar.elsevier.co.uk [193.131.222.35]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA07549 for ; Fri, 5 Dec 1997 13:28:29 +0100 (MET) Received: from snowdon.elsevier.co.uk (snowdon.elsevier.co.uk [193.131.197.164]) by pillar.elsevier.co.uk (8.8.5/8.8.5) with ESMTP id MAA01686 for ; Fri, 5 Dec 1997 12:26:31 GMT Received: from SRAHTZ (actually host srahtz.elsevier.co.uk) by snowdon.elsevier.co.uk with SMTP (PP); Fri, 5 Dec 1997 12:27:24 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199712051207.NAA05947@relay.urz.uni-heidelberg.de> X-Mailer: VM 6.33 under Emacs 19.34.6 Message-ID: <1416-Fri05Dec1997122404+0000-s.rahtz@elsevier.co.uk> Date: Fri, 5 Dec 1997 12:24:04 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Sebastian Rahtz Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: <199712051207.NAA05947@relay.urz.uni-heidelberg.de> > while the author > usually provides an almost completely typeset manuscript, > publishers should _gladly_ accept anything the author is prepared to > deliver instead of imposing specific requirements. the problem is that the author "provides an almost completely *non-portable* typeset manuscript". (my **). sadly, this is not what is needed in the world of electronic publishing. the cost of cleaning up that "typeset manuscript" is really very high. yes, of course publishers screw you. its a bargain, we screw you, you (the academic world) get to play games about tenure based on publication rate. if you drop that absurdity, you can free yourselves from the Faustian pact with the publishers. Sebastian 5-Dec-1997 13:47:37-GMT,4206;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA05498 for ; Fri, 5 Dec 1997 06:47:32 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA10532; Fri, 5 Dec 1997 14:14:28 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246779 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 14:14:26 +0100 Received: from avalon.informatik.uni-freiburg.de (root@avalon.informatik.uni-freiburg.de [132.230.150.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA10516 for ; Fri, 5 Dec 1997 14:14:24 +0100 (MET) Received: from sardinia.informatik.uni-freiburg.de (sardinia.informatik.uni-freiburg.de [132.230.150.160]) by avalon.informatik.uni-freiburg.de (8.8.8/8.8.8) with ESMTP id OAA29827; Fri, 5 Dec 1997 14:14:27 +0100 (MET) Received: (from may@localhost) by sardinia.informatik.uni-freiburg.de (8.8.8/8.8.8) id OAA10402; Fri, 5 Dec 1997 14:13:14 +0100 (MET) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199712051207.NAA05947@relay.urz.uni-heidelberg.de> <1416-Fri05Dec1997122404+0000-s.rahtz@elsevier.co.uk> X-Mailer: VM 6.22 under 19.15p6 XEmacs Lucid Message-ID: <199712051313.OAA10402@sardinia.informatik.uni-freiburg.de> Date: Fri, 5 Dec 1997 14:13:14 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Wolfgang May Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: <1416-Fri05Dec1997122404+0000-s.rahtz@elsevier.co.uk> On Thu, 4 Dec 1997 09:37:47 GMT Phillip Helbig said: >One leading scientific journal is exemplary in REQUIRING 2e instead of >2.09 but prohibits the use of private macros (even if defined in the >preamble with no name clashes, redefinitions etc of standard commands or >ones from the special journal .cls), [] >Is this something one must be prepared to accept in the long run? Sebastian Rahtz writes: > > while the author > > usually provides an almost completely typeset manuscript, > > publishers should _gladly_ accept anything the author is prepared to > > deliver instead of imposing specific requirements. > > the problem is that the author "provides an almost completely > *non-portable* typeset manuscript". (my **). sadly, this is not what > is needed in the world of electronic publishing. the cost of cleaning > up that "typeset manuscript" is really very high. > > yes, of course publishers screw you. its a bargain, we screw you, you > (the academic world) get to play games about tenure based on > publication rate. if you drop that absurdity, you can free yourselves > from the Faustian pact with the publishers. For *one* paper, the way described by P.H. above works well. I suppose that the main problem is that in most journals there are several papers, so, if each of them has no clashes with latex2e and the journal styles, there is also the problem of clashes *between* the papers. One possibility could be that every author guarantees that he only defines macros which begin with an identifier which is unlikely to clash with *any* other paper, e.g. names like \phelbigXbla{...} or \srahtzXblubb{...} etc .pp. Perhaps this can be a feasible compromise ? Wolfgang -------------------------------------------------------------------- Wolfgang May E-mail: may@informatik.uni-freiburg.de Universitaet Freiburg http://www.informatik.uni-freiburg.de/~may/ Institut fuer Informatik D-79110 Freiburg / Germany Lehrstuhl fuer Datenbanken und Informationssysteme 5-Dec-1997 14:08:47-GMT,3215;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA05991 for ; Fri, 5 Dec 1997 07:08:45 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA12031; Fri, 5 Dec 1997 14:31:50 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246801 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 14:31:48 +0100 Received: from pillar.elsevier.co.uk (root@pillar.elsevier.co.uk [193.131.222.35]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA12019 for ; Fri, 5 Dec 1997 14:31:45 +0100 (MET) Received: from snowdon.elsevier.co.uk (snowdon.elsevier.co.uk [193.131.197.164]) by pillar.elsevier.co.uk (8.8.5/8.8.5) with ESMTP id NAA04418 for ; Fri, 5 Dec 1997 13:29:54 GMT Received: from SRAHTZ (actually host srahtz.elsevier.co.uk) by snowdon.elsevier.co.uk with SMTP (PP); Fri, 5 Dec 1997 13:30:45 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199712051207.NAA05947@relay.urz.uni-heidelberg.de> <1416-Fri05Dec1997122404+0000-s.rahtz@elsevier.co.uk> <199712051313.OAA10402@sardinia.informatik.uni-freiburg.de> X-Mailer: VM 6.33 under Emacs 19.34.6 Message-ID: <7345-Fri05Dec1997132729+0000-s.rahtz@elsevier.co.uk> Date: Fri, 5 Dec 1997 13:27:29 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Sebastian Rahtz Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: <199712051313.OAA10402@sardinia.informatik.uni-freiburg.de> > For *one* paper, the way described by P.H. above works well. I suppose > that the main problem is that in most journals there are several > papers, so, if each of them has no clashes with latex2e and the > journal styles, there is also the problem of clashes *between* the > papers. > to be honest, it never occured to me to think about macro name clashes; that seems to be the least of the problems. i guess most of us work an article at a time anyway. the problem is that few typesetters use LaTeX; so the markup has to be converted to some other system (in our case, via SGML). converting LaTeX is hard, and hard-pressed workers adopt simplistic search-and-replace methods. obviously these fail if there are cutesy author-defined macros which affect the whole paper Ask Michel Goossens or I about our experiences with someone writing VMS documentation who changed the catcode of $ so that he could write FOO$BAR without any special worries. Try throwing the result at eg latex2html sebastian 5-Dec-1997 14:27:00-GMT,3159;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA06382 for ; Fri, 5 Dec 1997 07:26:58 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA12796; Fri, 5 Dec 1997 14:43:48 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246809 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 14:43:46 +0100 Received: from multivac (multivac.jb.man.ac.uk [130.88.24.128]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA12781 for ; Fri, 5 Dec 1997 14:43:43 +0100 (MET) X-VMS-To: SMTP%"LATEX-L@relay.urz.uni-heidelberg.de" X-VMS-Cc: HELBIG Message-ID: <97120513432713@multivac.jb.man.ac.uk> Date: Fri, 5 Dec 1997 13:43:27 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Phillip Helbig Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L > > For *one* paper, the way described by P.H. above works well. I suppose > > that the main problem is that in most journals there are several > > papers, so, if each of them has no clashes with latex2e and the > > journal styles, there is also the problem of clashes *between* the > > papers. > > > to be honest, it never occured to me to think about macro name > clashes; that seems to be the least of the problems. i guess most of > us work an article at a time anyway. I had been thinking about individual papers as well, and I don't know to what extent this is a problem. In any case, the variants on \providecommand discussed a while back (in this case if undefined, define, if defined, override) could solve this problem easily. > the problem is that few typesetters use LaTeX; so the markup has to be > converted to some other system (in our case, via SGML). converting > LaTeX is hard, and hard-pressed workers adopt simplistic > search-and-replace methods. obviously these fail if there are cutesy > author-defined macros which affect the whole paper It seems to me that it is much better for a few people to work hard at LaTeX to HTML conversion, or whatever is required, rather than making each author of each paper do a lot of unnecessary work. -- Phillip Helbig Email .......... p.helbig@jb.man.ac.uk Nuffield Radio Astronomy Laboratories Tel. ..... +44 1477 571 321 (ext. 297) Jodrell Bank Fax ................. +44 1477 571 618 Macclesfield Telex ................. 36149 JODREL G UK-Cheshire SK11 9DL Web .... http://www.jb.man.ac.uk/~pjh/ My opinions are not necessarily those of NRAL or the University of Manchester. 5-Dec-1997 14:30:02-GMT,2525;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA06438 for ; Fri, 5 Dec 1997 07:29:59 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA14086; Fri, 5 Dec 1997 15:04:15 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246831 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 15:04:12 +0100 Received: from pillar.elsevier.co.uk (root@pillar.elsevier.co.uk [193.131.222.35]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA14061 for ; Fri, 5 Dec 1997 15:04:04 +0100 (MET) Received: from snowdon.elsevier.co.uk (snowdon.elsevier.co.uk [193.131.197.164]) by pillar.elsevier.co.uk (8.8.5/8.8.5) with ESMTP id OAA06047 for ; Fri, 5 Dec 1997 14:02:11 GMT Received: from SRAHTZ (actually host srahtz.elsevier.co.uk) by snowdon.elsevier.co.uk with SMTP (PP); Fri, 5 Dec 1997 14:03:04 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <97120513432713@multivac.jb.man.ac.uk> X-Mailer: VM 6.33 under Emacs 19.34.6 Message-ID: <473-Fri05Dec1997135950+0000-s.rahtz@elsevier.co.uk> Date: Fri, 5 Dec 1997 13:59:50 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Sebastian Rahtz Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: <97120513432713@multivac.jb.man.ac.uk> > > It seems to me that it is much better for a few people to work hard at > LaTeX to HTML conversion, or whatever is required, rather than making > each author of each paper do a lot of unnecessary work. > Sure, thats why I said it *shouldnt* be an author constraint. People who convert LaTeX should do so properly, or say up front that they cannot do it, rather than unreasonably constraining authors. latex2html is a red herring, of course. in practise, i don't think any large scale publisher goes this route. sebastian 5-Dec-1997 15:03:19-GMT,2294;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA07137 for ; Fri, 5 Dec 1997 08:03:12 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA15429; Fri, 5 Dec 1997 15:33:13 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246844 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 15:33:10 +0100 Received: from multivac (multivac.jb.man.ac.uk [130.88.24.128]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA15411 for ; Fri, 5 Dec 1997 15:33:08 +0100 (MET) X-VMS-To: SMTP%"LATEX-L@relay.urz.uni-heidelberg.de" X-VMS-Cc: HELBIG Message-ID: <97120514353787@multivac.jb.man.ac.uk> Date: Fri, 5 Dec 1997 14:35:37 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Phillip Helbig Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L > Sure, thats why I said it *shouldnt* be an author constraint. People > who convert LaTeX should do so properly, or say up front that they > cannot do it, rather than unreasonably constraining authors. > > latex2html is a red herring, of course. in practise, i don't think any > large scale publisher goes this route. Astronomy and Astrophysics, published by Springer, asks for manuscripts in TeX and has an on-line version which includes HTML, but I don't know how they convert it. -- Phillip Helbig Email .......... p.helbig@jb.man.ac.uk Nuffield Radio Astronomy Laboratories Tel. ..... +44 1477 571 321 (ext. 297) Jodrell Bank Fax ................. +44 1477 571 618 Macclesfield Telex ................. 36149 JODREL G UK-Cheshire SK11 9DL Web .... http://www.jb.man.ac.uk/~pjh/ 5-Dec-1997 15:52:42-GMT,3511;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA08262 for ; Fri, 5 Dec 1997 08:52:40 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id QAA19042; Fri, 5 Dec 1997 16:29:21 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246872 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 16:29:17 +0100 Received: from multivac (multivac.jb.man.ac.uk [130.88.24.128]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id QAA19002 for ; Fri, 5 Dec 1997 16:29:13 +0100 (MET) X-VMS-To: SMTP%"LATEX-L@relay.urz.uni-heidelberg.de" X-VMS-Cc: HELBIG Message-ID: <97120515242953@multivac.jb.man.ac.uk> Date: Fri, 5 Dec 1997 15:24:29 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Phillip Helbig Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L I've been constructing some .bst files with custom-bib today. The differences between different journals, not only regarding references, and the fierceness with which they say they will reject anything which does not conform (though this might not be true in practice) are amazing, especially considering how unimportant such things should be. I know that the confusion---what this thread is trying to do away with---leads some authors NOT to follow the advice of the individual journals, but rather just send in something which looks halfway OK. Of course, this means that the manuscript is probably processed conventionally, which is an additional burden for the journal, so it seems to me that journals should a) take more interest in the standardisation of journal macros stuff and b) support or require BibTeX, natbib and other things which allow flexibility and functionality while minimising author coding error and wasted time. Of course, it is also in the interests of the authors, but I really don't feel like preaching to my colleagues until there is more standardisation among the journals, since the number of things one must take into account is so large that I can understand authors submitting just `reasonably formatted' manuscripts; maybe the journals get what they deserve in this respect. I know that some LaTeX people at some scientific journals are aware of the LaTeX list and even this thread; it would be interesting to know if any have actually been following this thread. (If you don't want to announce yourself to the list, please email me privately and I'll keep everything confidential.) -- Phillip Helbig Email .......... p.helbig@jb.man.ac.uk Nuffield Radio Astronomy Laboratories Tel. ..... +44 1477 571 321 (ext. 297) Jodrell Bank Fax ................. +44 1477 571 618 Macclesfield Telex ................. 36149 JODREL G UK-Cheshire SK11 9DL Web .... http://www.jb.man.ac.uk/~pjh/ My opinions are not necessarily those of NRAL or the University of Manchester. 5-Dec-1997 19:11:53-GMT,2232;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id MAA13367 for ; Fri, 5 Dec 1997 12:11:51 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA29194; Fri, 5 Dec 1997 19:59:46 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246945 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 19:59:43 +0100 Received: from plmsc.psu.edu (planck.plmsc.psu.edu [128.118.41.212]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id TAA29184 for ; Fri, 5 Dec 1997 19:59:39 +0100 (MET) Received: (from boris@localhost) by plmsc.psu.edu (8.8.2/8.8.2) id NAA13018; Fri, 5 Dec 1997 13:59:33 -0500 (EST) X-Sender: boris@planck MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: Date: Fri, 5 Dec 1997 13:59:32 -0500 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Boris Veytsman Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: <97120515242953@multivac.jb.man.ac.uk> On Fri, 5 Dec 1997, Phillip Helbig wrote: > [...] The > differences between different journals, not only regarding references, > and the fierceness with which they say they will reject anything which > does not conform (though this might not be true in practice) are > amazing, especially considering how unimportant such things should be. They are NOT unimportant. A consistent and aesthetically pleasant look for a journal, that is unique enough to make it readily recognizable, is a must. Too bad typography becomes a lost art nowadays... Good luck -Boris Home page 5-Dec-1997 21:21:21-GMT,3595;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id OAA16621 for ; Fri, 5 Dec 1997 14:21:19 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA02816; Fri, 5 Dec 1997 22:04:27 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 246987 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 5 Dec 1997 22:04:25 +0100 Received: from multivac (multivac.jb.man.ac.uk [130.88.24.128]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA02804 for ; Fri, 5 Dec 1997 22:04:22 +0100 (MET) X-VMS-To: SMTP%"LATEX-L@relay.urz.uni-heidelberg.de" X-VMS-Cc: HELBIG Message-ID: <97120521021238@multivac.jb.man.ac.uk> Date: Fri, 5 Dec 1997 21:02:12 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Phillip Helbig Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L > On Fri, 5 Dec 1997, Phillip Helbig wrote: > > > [...] The > > differences between different journals, not only regarding references, > > and the fierceness with which they say they will reject anything which > > does not conform (though this might not be true in practice) are > > amazing, especially considering how unimportant such things should be. > > They are NOT unimportant. A consistent and aesthetically pleasant look > for a journal, that is unique enough to make it readily recognizable, is > a must. Too bad typography becomes a lost art nowadays... Sorry, I couldn't agree more---I realise I misphrased what I said above. What you said applies to the LOOK of the journal, and this should be as the journal likes it, and indeed the strength of LaTeX, if used properly, allows this presentation to be achieved while the author concentrates on content. However, to produce, in many cases, essentially the same content, it seems absurd to require completely different mechanisms to produce them---here a .cls, there an option to a standard .cls, here this variation on \cite, there another (incompatible) one, some encouraging BibTeX, some discouraging it, and even the author isn't allowed to make this easier on himself by coding such differences as macros which can be redefined to have whatever behaviour is needed, as such own macros are also discouraged if not forbidden. I think that standardised journal macros would allow journals to become more unique---part of the move to standardise journal PRESENTATION, as with some astronomical journals, was probably due to the fact that the authors themselves are forced to code presentation which is properly managed from somewhere else. -- Phillip Helbig Email .......... p.helbig@jb.man.ac.uk Nuffield Radio Astronomy Laboratories Tel. ..... +44 1477 571 321 (ext. 297) Jodrell Bank Fax ................. +44 1477 571 618 Macclesfield Telex ................. 36149 JODREL G UK-Cheshire SK11 9DL Web .... http://www.jb.man.ac.uk/~pjh/ My opinions are not necessarily those of NRAL or the University of Manchester. 6-Dec-1997 13:53:43-GMT,2857;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA05042 for ; Sat, 6 Dec 1997 06:53:42 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA15502; Sat, 6 Dec 1997 14:29:31 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 247404 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 6 Dec 1997 14:29:25 +0100 Received: from mail-out-3.tiac.net (mail-out-3.tiac.net [199.0.65.15]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA15492 for ; Sat, 6 Dec 1997 14:29:23 +0100 (MET) Received: from denali (p26.tc2.metro.MA.tiac.com [209.61.75.91]) by mail-out-3.tiac.net (8.8.7/8.8.7) with SMTP id NAA18963; Sat, 6 Dec 1997 13:30:39 GMT (envelope-from support@YandY.com) X-Sender: yandy@pop.tiac.net X-Mailer: Windows Eudora Pro Version 3.0.1 (32) References: <97120513432713@multivac.jb.man.ac.uk> <97120513432713@multivac.jb.man.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: <3.0.1.32.19971206082925.00aa3a50@pop.tiac.net> Date: Sat, 6 Dec 1997 08:29:25 -0500 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Y&Y, Inc." Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: <473-Fri05Dec1997135950+0000-s.rahtz@elsevier.co.uk> At 01:59 PM 97/12/05 +0000, Sebastian Rahtz wrote: > > It seems to me that it is much better for a few people to work hard at > > LaTeX to HTML conversion, or whatever is required, rather than making > > each author of each paper do a lot of unnecessary work. >Sure, thats why I said it *shouldnt* be an author constraint. People >who convert LaTeX should do so properly, or say up front that they >cannot do it, rather than unreasonably constraining authors. >latex2html is a red herring, of course. in practise, i don't think any >large scale publisher goes this route. In fact, most online journals are in Acrobat PDF format. And many of them are not done using TeX, and many of the ones done with TeX do not use the fonts any of us use (instead using Adobe Math Pi, MonoType math fonts etc.). Those not done using TeX don't look as fine to the trained eye, but they don't seem to care. Occassionally it pays to look up from the grind stone and smell the roses :-). Regards, Berthold. 6-Dec-1997 18:41:42-GMT,2421;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id LAA09847 for ; Sat, 6 Dec 1997 11:41:40 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA20181; Sat, 6 Dec 1997 19:24:04 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 247469 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 6 Dec 1997 19:24:02 +0100 Received: from relay.Phys.UAlberta.CA (root@relay.phys.ualberta.ca [129.128.7.238]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id TAA20171 for ; Sat, 6 Dec 1997 19:24:00 +0100 (MET) Received: from gortel ([129.128.7.128] EHLO gortel.phys.ualberta.ca ident: michal [port 32519]) by relay.Phys.UAlberta.CA with ESMTP id <63722-203>; Sat, 6 Dec 1997 11:28:50 -0700 Received: (from michal@localhost) by gortel.phys.ualberta.ca (8.8.5/8.8.5) id LAA08651 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 6 Dec 1997 11:23:58 -0700 X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-ID: <199712061823.LAA08651@gortel.phys.ualberta.ca> Date: Sat, 6 Dec 1997 11:23:58 -0700 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Michal Jaegermann Subject: Re: private macros and journal .cls To: Multiple recipients of list LATEX-L In-Reply-To: <3.0.1.32.19971206082925.00aa3a50@pop.tiac.net> from "Y&Y, Inc." at Dec 6, 97 08:29:25 am Berthold Horn wrote: > Those not done using TeX don't look > as fine to the trained eye, but they don't seem to care. Not so long time ago it was a common practice to make "camera ready" books from a typewriter script with symbols "painted in" by hand and also "they" don't seem to care. Check Springer yellow series, for example, but far from only. It is not so common nowadays, so maybe somebody did care after all? --mj 24-Dec-1997 16:53:45-GMT,2863;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id JAA12751 for ; Wed, 24 Dec 1997 09:53:37 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id RAA10914; Wed, 24 Dec 1997 17:20:41 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 256937 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 24 Dec 1997 17:20:40 +0100 Received: from vms.rhbnc.ac.uk (alpha1.rhbnc.ac.uk [134.219.201.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id RAA10884; Wed, 24 Dec 1997 17:20:05 +0100 (MET) X-Vmsmail-To: @TEX-LISTS X-Vmsmail-Cc: CHAA006 Message-ID: <971224161738.1350@vms.rhbnc.ac.uk> Date: Wed, 24 Dec 1997 16:17:38 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Philip Taylor (RHBNC)" Subject: TUG'98: Call for papers closes on 30th January 1998 To: Multiple recipients of list LATEX-L Dear Colleague -- I hope that by now you are aware of the location and timing of the 1998 TeX User Group conference, TUG'98: Torun, Poland, between 17th and 21st August 1998. I also hope that you will consider proposing a paper, or offering a poster display, for that conference. The theme of the conference is "Integrating TeX with the Surrounding World", and papers which specifically address that theme will be most welcome, although papers on any topic which is relevant to TeX, typography, and/or electronic publishing will be considered. If you are considering proposing a paper or offering a poster session, please be aware that the last date for receipt of proposals is 30th January 1998. Further details are available from the TUG'98 web pages: http://www.tug.org/tug-98/ (general information) http://www.tug.org/tug-98/call.html (call for papers) If for any reason the TUG server is down, the same documents can be found at: http://www.rhbnc.ac.uk/tug-98/ (general information) http://www.rhbnc.ac.uk/tug-98/call.html (call for papers) I look forward to finding many proposals in my mailbox when I return in the New Year! A very merry Christmas and happy New Year to you all. Philip Taylor, Chairman: TUG'98 Programme Committee P.S. Apologies if you receive more than one copy of this message: it is being sent to all known TeX-related lists, and many of you may well be members of more than one such list. 12-Feb-1998 17:23:01-GMT,2174;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA22515 for ; Thu, 12 Feb 1998 10:22:59 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id RAA03679; Thu, 12 Feb 1998 17:45:00 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 281620 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 12 Feb 1998 17:44:57 +0100 Received: from vms.rhbnc.ac.uk (alpha1.rhbnc.ac.uk [134.219.201.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id RAA03644; Thu, 12 Feb 1998 17:44:49 +0100 (MET) X-Vmsmail-To: @TEX-LISTS X-Vmsmail-Cc: CHAA006 Message-ID: <980212164131.4af43@vms.rhbnc.ac.uk> Date: Thu, 12 Feb 1998 16:41:31 GMT Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Philip Taylor (RHBNC)" Subject: TUG'98: Revised deadlines for submissions To: Multiple recipients of list LATEX-L Dear Colleagues -- At the request of several potential speakers at the TUG'98 conference in Torun, Poland, the deadlines for submission of proposals and papers have been revised. The new deadlines are: Receipt of proposals: 15th March 1998; Notification of acceptance/rejection: 6th April 1998; Receipt of first drafts: 30th April 1998; Receipt of final versions: 30th May 1998. It would be much appreciated if those who have already submitted proposals would keep to the original deadlines; this will much help the work of both the Programme and Publication Committees by distributing the load in time. Full details of the conference and the procedures for submitting proposals may be found at http://www.tug.org/tug-98/ Philip Taylor, Chairman, TUG'98 Programme Committee. 23-Mar-1998 23:18:29-GMT,1934;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id QAA08041 for ; Mon, 23 Mar 1998 16:18:27 -0700 (MST) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA26455; Mon, 23 Mar 1998 23:57:40 +0100 (MET) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 300315 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 23 Mar 1998 23:57:35 +0100 Received: from humulus.daimi.aau.dk (humulus.daimi.aau.dk [130.225.16.6]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA26437 for ; Mon, 23 Mar 1998 23:57:23 +0100 (MET) Received: (from sandmann@localhost) by humulus.daimi.aau.dk (8.8.7/8.8.7) id XAA20339 for latex-l@relay.urz.uni-heidelberg.de; Mon, 23 Mar 1998 23:57:33 +0100 (MET) Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: ELM [version 2.4ME+ PL22 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-ID: <199803232257.XAA20339@humulus.daimi.aau.dk> Date: Mon, 23 Mar 1998 23:57:32 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Soren Sandmann Pedersen Subject: The experimental packages To: Multiple recipients of list LATEX-L Ltnews08 says that soon a group of highly experimental packages will appear on CTAN. How soon will they be there? Soeren Sandmann -- Soeren Sandmann (email: sandmann@daimi.aau.dk) 14-Apr-1998 14:52:02-GMT,3277;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA09787 for ; Tue, 14 Apr 1998 08:51:43 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id QAA04806; Tue, 14 Apr 1998 16:07:11 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 318233 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 14 Apr 1998 16:07:08 +0200 Received: from noc.belwue.de (root@noc.BelWue.DE [129.143.2.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id QAA04795 for ; Tue, 14 Apr 1998 16:07:02 +0200 (MET DST) Received: from tunix.mathematik.uni-stuttgart.de (tunix.mathematik.uni-stuttgart.de [129.69.116.156]) by noc.belwue.de (8.8.8/8.8.8) with SMTP id QAA29039 for ; Tue, 14 Apr 1998 16:07:35 +0200 (MET DST) env-from (schubert@tunix.mathematik.uni-stuttgart.de) Received: by tunix.mathematik.uni-stuttgart.de (AIX 3.2/UCB 5.64/BelWue-1.0AIXRS) id AA17736; Tue, 14 Apr 1998 16:07:32 +0200 Message-ID: <9804141407.AA17736@tunix.mathematik.uni-stuttgart.de> Date: Tue, 14 Apr 1998 16:07:32 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Volker Schubert Subject: Arrays To: Multiple recipients of list LATEX-L Dear Latex-L members! In the following I would like to make some remarks and suggestions on the tabular and array environments. I hope somebody else is interested in these problems, two. I also don't know, if these problems have been discussed before (maybe someone knows). 1) The array/tabular environments are intended for tabulars with constant baseline-distance. The baselineskip-mechanism of TeX is turned off (\lineskip=0pt). LaTeX works with struts instead. The problem here is that there is no minimal vertical space between the lines. But in some situations it would be desirable, if vertical space would be inserted automatically. Especially when one writes large formulas. The equation environments do insert vertical space. But they can only deal with a very restricted form of the horizontal alignment. It would be nice if there was a generalized equation environment, where one can give arbitrary preambles for the horizontal alignment. 2) Sometimes it happens that one wants some mathematical material to be ``displayed'', but this material has to be aligned horizontally. If one wants \displaystyle, one has to switch to \displaystyle in every column by hand (or define a new columntype). But there are no standard columntypes for \displaystyle material. The easiest way would be, if there was an argument-switch in the alignment-environment where one could turn on ``\displaymode in every column''. Does anyone agree? Volker 15-Apr-1998 4:30:49-GMT,2670;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id WAA08566 for ; Tue, 14 Apr 1998 22:30:47 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id GAA29107; Wed, 15 Apr 1998 06:08:57 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 318038 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 15 Apr 1998 06:08:56 +0200 Received: from Erich.Triumf.CA (erich.Triumf.CA [142.90.100.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id GAA29100 for ; Wed, 15 Apr 1998 06:08:54 +0200 (MET DST) Received: by triumf.ca (MX V4.0-1 VAX) id 63; Tue, 14 Apr 1998 21:06:35 PST Message-ID: <009C4B71.A7A63E6A.63@triumf.ca> Date: Tue, 14 Apr 1998 21:06:28 PST Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Donald Arseneau Subject: Re: Arrays To: Multiple recipients of list LATEX-L Volker Schubert wrote: >1) The array/tabular environments are intended for tabulars with >constant baseline-distance. The baselineskip-mechanism of TeX is >turned off (\lineskip=0pt). LaTeX works with struts instead. The >problem here is that there is no minimal vertical space between the lines. >But in some situations it would be desirable, if vertical space >would be inserted automatically. tabls.sty... "one of these days" I will make an array-package-compatible version. If you don't have vertical lines it is easy -- just set \lineskip back again! That's booktabs.sty. Yes, this is one of the many features of table formatting that must be put in LaTex3. >2) Sometimes it happens that one wants some mathematical material >to be ``displayed'', but this material has to be aligned >horizontally. If one wants \displaystyle, one has to switch to >\displaystyle in every column by hand (or define a new columntype). I think a new (user defined) column type *is* the answer. >The easiest way would be, if there was an argument-switch in the >alignment-environment where one could turn on ``\displaymode in >every column''. \everymath{\displaystyle}. But it's not great. Donald Arseneau asnd@triumf.ca 15-Apr-1998 9:14:31-GMT,3674;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA04960 for ; Wed, 15 Apr 1998 03:14:24 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id KAA05649; Wed, 15 Apr 1998 10:43:14 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 318124 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 15 Apr 1998 10:43:12 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id KAA05640 for ; Wed, 15 Apr 1998 10:43:09 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id JAA01953; Wed, 15 Apr 1998 09:48:13 +0100 References: <9804141407.AA17736@tunix.mathematik.uni-stuttgart.de> Message-ID: <199804150848.JAA01953@nag.co.uk> Date: Wed, 15 Apr 1998 09:48:13 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: Arrays To: Multiple recipients of list LATEX-L In-Reply-To: <9804141407.AA17736@tunix.mathematik.uni-stuttgart.de> (message from Volker Schubert on Tue, 14 Apr 1998 16:07:32 +0200) I sent the following reply but the list bounced it (as I wasn't subscribed as davidc@nag:-) so I'll resend now. In the meantime I see Donald Arseneau also replied. Fortunately I think his reply agrees with this! David Date: 14 Apr 1998 17:58:54 +0100 From: David Carlisle To: LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE In-reply-to: <9804141407.AA17736@tunix.mathematik.uni-stuttgart.de> (message from Volker Schubert on Tue, 14 Apr 1998 16:07:32 +0200) Subject: Re: Arrays Reply-To: david@dcarlisle.demon.co.uk > The problem here is that there is no minimal vertical space between > the lines. There are some packages which extend the latex system to provide for a mininmum amount of white space above the table entries. Unfortunately doing this makes the packages usually incompatible to a greater or lesser extent to each other and to other latex table packages. But tabls.sty mdwtab.sty and colortab.sty all offer something along these lines. Not specifically for math material, your example, but more generally forcing the table system to insert a minimum amount of space between each line. It is hard to come up with a really good solution to this while preserving the existing latex syntax for rules and inter-column material such as @{...}. It is not essential that all latex array packages preserve the existing syntax, but coming up with an alternative has not proved too easy in the past! > It would be nice if there was a generalized equation environment, > where one can give arbitrary preambles for the horizontal alignment. what sort of things do you want to specify. Not the syntax, which is not so important, but what `arbitrary' information do you have in mind? > if there was an argument-switch in the > alignment-environment where one could turn on ``\displaymode in > every column''. I'm tempted to say do \begin{everymath}{\displaystyle} \begin{array}{cc} \sum_1^2x & \frac{a}{b} \end{array} \end{everymath} but perhaps that makes more display mode than you intended. David 16-Apr-1998 4:00:40-GMT,1683;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id WAA10211 for ; Wed, 15 Apr 1998 22:00:38 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id GAA17897 for ; Thu, 16 Apr 1998 06:00:02 +0200 (MET DST) Message-Id: <199804160400.GAA17897@relay.urz.uni-heidelberg.de> Date: Thu, 16 Apr 1998 06:00:02 +0200 From: "L-Soft list server at University of Heidelberg (1.8b)" Subject: Renewal of your subscription to the LATEX-L list To: "Nelson H. F. Beebe" X-LSV-ListID: LATEX-L Thu, 16 Apr 1998 06:00:02 Your subscription to the LATEX-L list is due for renewal. If you wish to remain subscribed to LATEX-L, please issue the following command to LISTSERV@RELAY.URZ.UNI-HEIDELBERG.DE at your earliest convenience: CONFIRM LATEX-L You will be automatically removed from the list if you do not send a CONFIRM command within the next 21 days. PS: In order to facilitate the task, this message has been specially formatted so that you only need to forward it back to LISTSERV@RELAY.URZ.UNI-HEIDELBERG.DE to have the command executed. Note that while the formats produced by the forwarding function of most mail packages are supported, replying will seldom work, so make sure to forward and not reply. ------------------------------------------------------------------------- // JOB CONFIRM LATEX-L // EOJ 16-Apr-1998 15:55:12-GMT,976;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id JAA16082 for ; Thu, 16 Apr 1998 09:55:06 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id RAA21539 for ; Thu, 16 Apr 1998 17:54:26 +0200 (MET DST) Message-Id: <199804161554.RAA21539@relay.urz.uni-heidelberg.de> Date: Thu, 16 Apr 1998 17:54:26 +0200 From: "L-Soft list server at University of Heidelberg (1.8b)" Subject: Output of your job "beebe" To: "Nelson H. F. Beebe" > CONFIRM LATEX-L Your subscription to the LATEX-L list has been confirmed. Summary of resource utilization ------------------------------- CPU time: 0.040 sec Overhead CPU: 0.010 sec CPU model: SPARCstation-20 (128M) 20-Apr-1998 11:37:57-GMT,2930;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA24025 for ; Mon, 20 Apr 1998 05:37:55 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA18959; Mon, 20 Apr 1998 13:12:14 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 319343 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 20 Apr 1998 13:12:12 +0200 Received: from noc.belwue.de (root@noc.BelWue.DE [129.143.2.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA18948 for ; Mon, 20 Apr 1998 13:12:10 +0200 (MET DST) Received: from tunix.mathematik.uni-stuttgart.de (tunix.mathematik.uni-stuttgart.de [129.69.116.156]) by noc.belwue.de (8.8.8/8.8.8) with SMTP id NAA14860 for ; Mon, 20 Apr 1998 13:12:46 +0200 (MET DST) env-from (schubert@tunix.mathematik.uni-stuttgart.de) Received: by tunix.mathematik.uni-stuttgart.de (AIX 3.2/UCB 5.64/BelWue-1.0AIXRS) id AA18688; Mon, 20 Apr 1998 13:12:40 +0200 Message-ID: <9804201112.AA18688@tunix.mathematik.uni-stuttgart.de> Date: Mon, 20 Apr 1998 13:12:40 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Volker Schubert Subject: Arrays To: Multiple recipients of list LATEX-L Thank you for your replies! I didn't know that there are tabular-packages which are capable of inserting minimal vertical space between the lines. Maybe one of these packages (resp. certain concepts) should be built into LaTeX3 to set a standard and to prevent incompatible packages. (But who decides which one?) (With ``arbitrary preambles for the horizontal alignment'' I meant, that one should have a preamble-syntax just like with the array-environment.) Now to the problem of \displaystyle in every column. David and Donald suggested to use \displaystyle as the argument of an ``everymath''-command. This is a solution but it might cause side-effects if one uses text inside the array: \begin{array}{ll} & \Hom(M,\sum_i V_i) =& \sum_i\Hom(M,V_i) ,\quad\mbox{since $M$ is $(\bigoplus_i V_i)$-projective} \end{array} Here an explanation appears inside a calculation. The calculation should be printed in \displaystyle, but not the `little' math-symbols in the explanation. I often use constructions of this form. Wouldn't it be better to introduce something like ``\everycolumn{}''? Volker 20-May-1998 10:04:11-GMT,2878;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id EAA23347 for ; Wed, 20 May 1998 04:03:52 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id LAA07460; Wed, 20 May 1998 11:37:51 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 341418 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 20 May 1998 11:37:48 +0200 Received: from perdita.zdv.Uni-Mainz.de (perdita.zdv.Uni-Mainz.DE [134.93.8.147]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id LAA06947; Wed, 20 May 1998 11:31:54 +0200 (MET DST) Received: (from schoepf@localhost) by perdita.zdv.Uni-Mainz.de (8.8.8/8.8.8) id LAA07706; Wed, 20 May 1998 11:31:53 +0200 (MEST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.44 under Emacs 19.34.1 Message-ID: <13666.41066.41305.314040@perdita.zdv.Uni-Mainz.de> Date: Wed, 20 May 1998 11:31:50 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Rainer Schoepf Organization: Johannes Gutenberg-Universitaet Mainz Subject: LaTeX3 experimental programming conventions released To: Multiple recipients of list LATEX-L As announced at the TeX Users Group meeting (Summer 1997), a group of highly experimental packages will has (somewhat belated) been released to allow experienced TeX programmers to experiment with, and comment on, a proposed set of syntax conventions and basic data-types that might form the basis for programming large scale projects in TeX. They are located in this CTAN directory: CTAN:macros/latex/packages/expl3 The documentation of this material is as follows: individual package files provide outline, draft documentation; there is an article that gives an overview of the syntax and related concepts; there is a readme.txt file containing a brief description of the collection. All aspects of these packages are liable, indeed likely, to change. They should not be used at this stage for anything that requires a stable system. However, we do encourage people to experiment with these packages, and to send comments on them to the LaTeX-L mailing list. To subscribe to this list, mail to: listserv@urz.uni-heidelberg.de the following one line message: subscribe LATEX-L <> <> We are sorry that it has taken so long to prepare this for distribution. The LaTeX Team 25-May-1998 12:13:50-GMT,8129;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA29130 for ; Mon, 25 May 1998 06:13:32 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA05766; Mon, 25 May 1998 13:40:40 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 345235 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 25 May 1998 13:40:36 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA05684 for ; Mon, 25 May 1998 13:39:37 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id VAA09913; Mon, 25 May 1998 21:37:46 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199805251137.VAA09913@ricetub.anu.edu.au> Date: Mon, 25 May 1998 21:37:46 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: L3PL To: Multiple recipients of list LATEX-L Some initial comments on The LaTeX3 Programming Language (L3PL for short). Well, the silence is deafening. Someone has to be first, and it might as well be me. (I haven't heard anything, and hope I haven't lost any e-mail. If so, sorry!) First, a short anecdote. In the early days of the TDS (1994) it looked like the font area was going to be supplier/typeface/type, which I thought from my experience with web2c would be very slow (no ls-R at that stage). I thought this issue was settled, so I opted out of the discussion. It was only this year when I was working with betas of web2c 7.2 that I came back to the TDS and discovered that the font area had been changed to type/supplier/typeface, a much better solution (IMHO). I then realized that I could/should have kept following the discussion. So this time I'm sticking around and I'm going to try to make a positive contribution. But as I'm going first (AFAIK), I'm sure I will have misunderstood some of the ideas and motivations, so please bear with me as I stumble around and ask a few basic questions. Also, please forgive me if I sound a little negative in places; I am trying to promote (provoke!) a healthy discussion. I read: `Variations of this language have been in use by The LaTeX3 Project Team since around 1990 . . .'. Well, this is news to me! I do understand that the Team wanted to get it to a certain stage of maturity before releasing it, but they don't win any friends for keeping the whole thing such a well-guarded secret (even if only by default - most LaTeX users don't attend TUG meetings to hear the latest gossip, and we haven't heard anything about it in `LaTeX News' until the current release). `Gut feelings' When the beta release of 2e came out I read through the documentation and got really excited by all of the new features that supported writing-in-the-large, proper package encapsulation, the improved font-selection scheme, etc. etc. I think this excitement was part of the reason why 2e has been so successful. Anything that follows (e.g. LaTeX3) has to be exciting too. If it isn't fun, why bother? Warm fuzzy feelings should not be underestimated. Having read carefully through the introductory documentation for L3PL and most of the separate packages, I feel only luke-warm. Some features are long overdue: the naming system (if only it were more consistently applied) and the different types of arguments (n, o, x, etc.). But `fake' integers? I like hacking TeX too, but I realize its limitations. There seems to have been a considerable amount of effort put into overcoming limitations of TeX which are better overcome by changing TeX - as has already been done. If I need more counters I will use Omega. I'm not normally the paranoid type (although I like watching The X Files as much as the next person . . .) but features such as removeoldnames are positively subversive! The packages give tantalizing hints about the future and raise more questions than they answer. Surely `fake' integers can not be here to stay? On the one hand it looks like the Team want to drop TeX, but at the same time it looks as though they are trying to hold on tightly. I would appreciate a little more clarity on this issue. Clearly at this stage we are not all going to agree on whether we go with Omega or e-TeX, or a merger of the two projects (ideal), but what about dropping TeX per se? >From all that I have read, LaTeX3 might well have an historical link to the original conception and implementation of LaTeX, but it is going to be very different. Reading the L3PL documentation it becomes painfully obvious (to me, anyway) that it's time to cut the cord officially and (a) adopt a new base platform (Omega, e-TeX, whatever) and (b) change the name to something other than LaTeX. The fine details I like the \_: format. But I do have a few niggling doubts. First, I have to remember the each time I use a macro. I imagine myself writing a package and thinking to myself as follows: `OK, I want to do an \immediate\write16{blah}. What's the new version? Ah, \iow_expanded. Now what's its arg-spec? Umm . . . er, :nn, :wn? No, wait . . . . . . it has to be :Nn. Huh? How do I say \immediate\write16{blah} then? Oh, I'm not supposed to do that . . .' My point is that this is an attempt to add the concept of overloaded functions to a language that does not support it. TeX doesn't even have a proper concept of `type'. Adding a suffix that indicates the type of a macro's arguments or their expansion (or lack of) is a hack, pure and simple. The fact that it `works' is neither here nor there. And AUC TeX will only help a little bit. Second, TeX does not have a well-developed concept of encapsulation. Even a low-level language such as C allows the definition of `static' functions, which can not be `seen' in other compilation units. In TeX, all macros must be unique across all input files for a job, to avoid unintended conflicts. To be true to L3PL, this means using the component on practically everything. While I do not object to this in principle, it is yet another burden for package writers. Third, it isn't possible to abstract away from TeX completely. The fact that there are so many `TeXhackers notes' hints at this, as well as `w' in arg-specs. I suspect that using many of the new macros properly requires an understanding of what's happening at the TeX level. (And what are error messages going to look like?) Fourth, a more basic objection can be expressed thus: `why should I start writing \exp_after:NN when I have been writing \expandafter for so many years?'. Is it planned to make the removeoldnames feature the default for LaTeX3? Fifth, an even more basic objection is `so what?'. It isn't clear that using L3PL will yield a significant payoff. Is it really worth the enormous effort of rewriting LaTeX in L3PL when (a) it already works, and (b) the underlying system is still TeX? The maxim `if it ain't broke, don't fix it' surely applies here. The bottom line (so far) I need more convincing. Let the Team show us why the L3PL is so great, by releasing some of their prototype re-implementations of some of the functionality of LaTeX. Let the debate begin! Richard. -- Richard Walker richard@cs.anu.edu.au Department of Computer Science The Australian National University Canberra, ACT 0200, Australia Fax: +61 2 6249 0010 25-May-1998 20:32:23-GMT,2558;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id OAA12596 for ; Mon, 25 May 1998 14:32:21 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA07653; Mon, 25 May 1998 22:14:47 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 344126 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 25 May 1998 22:14:45 +0200 Received: from fcfm.buap.mx (fismat1.fcfm.buap.mx [148.228.125.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA07630 for ; Mon, 25 May 1998 22:14:36 +0200 (MET DST) Received: from localhost by fcfm.buap.mx (4.1/SMI-4.1) id AA29421; Mon, 25 May 98 15:11:41 CST X-Sender: amendoza@fismat1 Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: Date: Mon, 25 May 1998 15:11:41 -0600 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Alvaro Castan'eda Mendoza" Subject: Re: L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199805251137.VAA09913@ricetub.anu.edu.au> Hi. I read an email that says that it is better to put a suffix to the command to remember the argument type. I ask to my friends (my friends are physics students thar are learning LaTeX) and they think that it isn't good idea. I like LaTeX as is, in fact I amn't a TeXpert maybe I am a TeXnician, but I want to learn all about LaTeX. I subscribe to this group thinking that you discuss how to program any thing, and send the macros, then I can learn from the experts. In Mexico nobody (who I know) has the TeXbook (except the source code, but is ilegal to print it) and the same if for The LaTeX companion, I am learning reading the source code for some packages, but there are too much commands that I cant imagine ist function or its syntax. However I am working to learn as much as I can and have time because I like very much LaTeX and hate MS-Windows (also winword). SALUDOS ALFVARO SALUDOS ALVARO 26-May-1998 10:43:27-GMT,9139;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id EAA22499 for ; Tue, 26 May 1998 04:43:25 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA06431; Tue, 26 May 1998 12:06:50 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 344515 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 26 May 1998 12:06:47 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA06408 for ; Tue, 26 May 1998 12:06:43 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id LAA22233; Tue, 26 May 1998 11:03:43 +0100 References: <199805251137.VAA09913@ricetub.anu.edu.au> Message-ID: <199805261003.LAA22233@nag.co.uk> Date: Tue, 26 May 1998 11:03:43 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199805251137.VAA09913@ricetub.anu.edu.au> (message from Richard Walker on Mon, 25 May 1998 21:37:46 +1000) > I feel only luke-warm. Well, that's good! It could have been that you felt positively hostile... > Some features are long overdue: the naming system (if only it were > more consistently applied) and the different types of arguments (n, o, > x, etc.). If you spot any particular inconsitencies we'd be interested. The details of the naming scheme change from time to time so inconsistencies may relate to older conventions that we ought to update, or it may be that you are viewing some concept in a different way. > But `fake' integers? I like hacking TeX too, but I realize > its limitations. There seems to have been a considerable amount of > effort put into overcoming limitations of TeX which are better > overcome by changing TeX - as has already been done. If I need more > counters I will use Omega. The fake integer implementations predate etex and omega. Probably it is correct to say that a real L3 implementation would use an extended tex's features for that, but perhaps this implementation may still be useful to provide support for a standard tex. Also (and more to the point here) it gives an example of a relatively simple datatype implemented within L3 as opposed to being a primitive tex register. As you will have noticed the distribution is mainly intended as a set of `small examples'. The examples provided are mainly chosen to be small enough to run just with the provided code, rather than being chosen as being particularly the most important or useful topics. > I'm not normally the paranoid type (although I like watching The X > Files as much as the next person . . .) but features such as > removeoldnames are positively subversive! Well.. Having that feature on a latex2e package (which then disables almost all of the underlying system) is clearly rather strange, and only there as a topic of conversation, not really to be used. However if one considers making a format from scratch using these kinds of conventions, then it does make sense to at least consider freeing up the tex primitive names. It is not clear whether it is a good idea or not, but it does have several advantages. The main point of the [removeoldnames] option is to provoke discussion of that. > The packages give tantalizing hints about the future and raise more > questions than they answer. Ah. They are working just as intended! > Surely `fake' integers can not be here to stay? See comments above. > On the one hand it looks like the Team want to drop TeX, but at the > same time it looks as though they are trying to hold on tightly. I > would appreciate a little more clarity on this issue. Clearly at this > stage we are not all going to agree on whether we go with Omega or > e-TeX, or a merger of the two projects (ideal), but what about > dropping TeX per se? This is of course a big issue. One that wasn't really so pressing when the l3 project started. omega/etex/pdftex/... and how they relate to the standard tex distributions is something that will clearly have an effect on how latex develops, but I don't think it is clear at this stage how things will turn out. Generalising slightly, it is etex rather than omega or pdftex that has the most bearing on the kind of low level programming issues addressed by this distribution, as omega's otp and language support is really acting at a different level, as is the variant pdf backend in pdftex. However etex is also concerned with improving the basic programming aspects and so does (or rather should) affect the design at various points (eg fake counters, although in that case omega also provides the functionality). However if you start to consider a full L3 environment not just this low level programming language, then all the tex extensions will have an influence. > and (a) adopt a new base platform (Omega, e-TeX, whatever) > and (b) change the name to something other than LaTeX. Both are topics that are worth discussing..... > In TeX, all macros must be unique across all input files for a job, to > avoid unintended conflicts.> To be true to L3PL, this means using the > component on practically everything. While I do not object > to this in principle, it is yet another burden for package writers. Some package writers (me, for instance) already use some kind of module system to try to ensure uniqueness of internal names. eg all longtable internal command names begin \LT@... all tabularx ones begin \TX@... So I don't really see this as an extra burden, more of an aid in having a documented mechanism for this. Having the naming scheme being based on some kind of abstract `module' rather than package based, should help different packages share code. > Third, it isn't possible to abstract away from TeX completely. The > fact that there are so many `TeXhackers notes' hints at this, as well > as `w' in arg-specs. I suspect that using many of the new macros > properly requires an understanding of what's happening at the TeX > level. Hopefully it will be possible to build up the core l3 functionality to the point that it is possible to program using `l3 primitives' without having to look up the definition of each of those in terms of tex primitives. That probably is not the case with the current suite of functions and the current level of documentation. > (And what are error messages going to look like?) A good question. One possibilty is to have long helpful error messages loaded `on demand' from external files. > Fifth, an even more basic objection is `so what?'. It isn't clear > that using L3PL will yield a significant payoff. Is it really worth > the enormous effort of rewriting LaTeX in L3PL when (a) it already > works, and (b) the underlying system is still TeX? The maxim `if it > ain't broke, don't fix it' surely applies here. Another good question. If the outcome is to produce a rewrite of 2e but using a new internal syntax then I agree it isn't much of a payoff. However one may want to extend the functionality of latex in places where it does not ``already work'' not least you may want to take advantage of extra functionality coming from omega or etex, and also one of the original motivations, producing a system that makes it easier to implement design specifications. Although it is not _really_ hard to write a latex class file, there are still relatively few good ones around, that implement layouts drastically different to the standard classes. Part of the problem is that it is too much like programming, rather than being a more declarative interface closer to a design spec. While latex2 does `work' it is a rather monolithic beast that is rather hard to change fundamentally without breaking a lot of existing code. If you are going to break stuff in order to add functionality, you may as well take a step back and try to `do it right' (or at least better). Which is really the point of these packages. > I need more convincing. Let the Team show us why the L3PL is so > great, by releasing some of their prototype re-implementations of some > of the functionality of LaTeX. It may be that discussions show changes need to be made to all parts of this proposed interface. Therefore we don't really want to code up a really functioning `latex-lookalike' at this stage, while we are still in a stage where we are prepared to go right back to the drawing board and redo everything. Probably some larger programming examples will get released reasonably soon though, depending on time available. > Let the debate begin! Hope so. David 29-May-1998 18:02:21-GMT,4980;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id MAA25285 for ; Fri, 29 May 1998 12:02:19 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA23012; Fri, 29 May 1998 19:34:56 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 347691 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 29 May 1998 19:34:54 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id TAA22998 for ; Fri, 29 May 1998 19:34:52 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA160 for ; Fri, 29 May 1998 19:34:52 +0200 Received: from [195.122.196.121] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAA239 for ; Fri, 29 May 1998 19:36:55 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199805291734.TAA22998@relay.urz.uni-heidelberg.de> Date: Fri, 29 May 1998 19:32:51 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Re: L3PL To: Multiple recipients of list LATEX-L Richard Walker (>>) and David Carlisle (>) wrote: >> Some features are long overdue: the naming system (if only it were >> more consistently applied) and the different types of arguments (n, o, >> x, etc.). > >If you spot any particular inconsitencies we'd be interested. The >details of the naming scheme change from time to time so inconsistencies >may relate to older conventions that we ought to update, or it may be >that you are viewing some concept in a different way. A had a quick look at l3. For many years the LaTeX Team has been encouraging LaTeX-like syntax in packages; now, the proposed syntax is quite different from anything known. I've found most of tools very useful, but I think their command names are a bit clumsy. Why not a combination of the old and the new, say: \newcommand{\name}[cn]{definition} or similar? In addition, there is a potential danger. If LaTeX is so dramatically rewritten, *will* existing packages work? The programming experience gained in the past years could be lost in part (and the packages themselves) and LaTeX3 functionality could be lesser than LaTeX2e one, at least for a transition period. How long will be this period? While uncompatibility is acceptable to some extent, perhaps l3 is *too* innovatory. (Remember Jobs has partially rejected Rhapsody because of a similar reason.) >> But `fake' integers? I like hacking TeX too, but I realize >> its limitations. There seems to have been a considerable amount of >> effort put into overcoming limitations of TeX which are better >> overcome by changing TeX - as has already been done. If I need more >> counters I will use Omega. > >The fake integer implementations predate etex and omega. Probably it is >correct to say that a real L3 implementation would use an extended tex's >features for that, but perhaps this implementation may still be useful to >provide support for a standard tex.[...] In my packages I always avoid internal registers as much as possible. I even write things like \edef\temporal{\the\counterx} and \counterx=\temporal\relax if there are no available temporal counters . Fake integers is an useful addition which you may use or not; imposing Omega and the like is not an alternative, since most of TeX users have not even heard of them. TeX is the *standard* language, existing in every system and we must improve it. (Actually, fint is a "changed TeX" but by another procedure.) >> In TeX, all macros must be unique across all input files for a job, to >> avoid unintended conflicts.> To be true to L3PL, this means using the >> component on practically everything. While I do not object >> to this in principle, it is yet another burden for package writers. > >Some package writers (me, for instance) already use some kind of module >system to try to ensure uniqueness of internal names. eg all longtable >internal command names begin \LT@... all tabularx ones begin \TX@... Me too. The goal is uniqueness of names and the burden is fixing uncompatibilities if this device is not used. Javier 12-Jun-1998 17:47:52-GMT,3232;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id LAA02844 for ; Fri, 12 Jun 1998 11:46:45 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA18679; Fri, 12 Jun 1998 19:12:51 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 359277 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 12 Jun 1998 19:12:48 +0200 Received: from heaton.cl.cam.ac.uk (exim@heaton.cl.cam.ac.uk [128.232.32.11]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA18662 for ; Fri, 12 Jun 1998 19:12:46 +0200 (MET DST) Received: from dorceus.cl.cam.ac.uk (cl.cam.ac.uk) [128.232.1.34] (rf) by heaton.cl.cam.ac.uk with esmtp (Exim 1.82 #1) id 0ykXNd-0007sn-00; Fri, 12 Jun 1998 18:12:45 +0100 Message-ID: Date: Fri, 12 Jun 1998 18:12:42 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Robin Fairbairns Subject: Re: L3PL To: Multiple recipients of list LATEX-L In-Reply-To: Your message of "Mon, 25 May 1998 15:11:41 MDT." > Hi. I read an email that says that it is better to put a suffix to > the command to remember the argument type. I ask to my friends (my friends > are physics students thar are learning LaTeX) and they think that it isn't > good idea. i think you misunderstand the nature of the programming proposals that were posted on the archive. they were (it seems to me, though i *still* haven't read them in detail) proposals about programming latex itself, not for people such as yourself who use latex. > I like LaTeX as is, in fact I amn't a TeXpert maybe I am a > TeXnician, but I want to learn all about LaTeX. I subscribe to this group > thinking that you discuss how to program any thing, and send the macros, > then I can learn from the experts. really, the more common place for people to discuss > In Mexico nobody (who I know) has the TeXbook that must make life rather difficult... > (except the source code, but is ilegal to print it) and the same if for > The LaTeX companion, I am learning reading the source code for some > packages, but there are too much commands that I cant imagine ist function > or its syntax. the real point of the programming conventions is to make it *easier* for people to `just read' latex source, as you are hoping to do. at present, even experts have to think quite hard to understand the sources of some latex packages: hopefully the new conventions will help here. however, i don't think we'll ever get away from the need to understand at least the basic behaviour of tex itself. robin fairbairns. 13-Jun-1998 16:59:41-GMT,5140;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA28242 for ; Sat, 13 Jun 1998 10:59:39 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA23505; Sat, 13 Jun 1998 18:43:14 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 359828 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 13 Jun 1998 18:43:12 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA23491 for ; Sat, 13 Jun 1998 18:43:10 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA181 for ; Sat, 13 Jun 1998 18:43:16 +0200 Received: from [195.122.196.227] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAB214 for ; Sat, 13 Jun 1998 18:45:47 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199806131643.SAA23491@relay.urz.uni-heidelberg.de> Date: Sat, 13 Jun 1998 18:41:03 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Re: L3PL To: Multiple recipients of list LATEX-L [This message was originally posted two weeks ago, but I have not received it yet. Apologies if someone is receiving it for the second time.] Richard Walker (>>) and David Carlisle (>) wrote: >> Some features are long overdue: the naming system (if only it were >> more consistently applied) and the different types of arguments (n, o, >> x, etc.). > >If you spot any particular inconsitencies we'd be interested. The >details of the naming scheme change from time to time so inconsistencies >may relate to older conventions that we ought to update, or it may be >that you are viewing some concept in a different way. A had a quick look at l3. For many years the LaTeX Team has been encouraging LaTeX-like syntax in packages; now, the proposed syntax is quite different from anything known. I've found most of tools very useful, but I think their command names are a bit clumsy. Why not a combination of the old and the new, say: \newcommand{\name}[cn]{definition} or similar? In addition, there is a potential danger. If LaTeX is so dramatically rewritten, *will* existing packages work? The programming experience gained over the past years could be lost in part (and the packages themselves) and LaTeX3 functionality could be lesser than LaTeX2e one, at least for a transition period. How long will be this period? While uncompatibility is acceptable to some extent, perhaps l3 is *too* innovatory. (Remember Jobs has partially rejected Rhapsody because of a similar reason.) >> But `fake' integers? I like hacking TeX too, but I realize >> its limitations. There seems to have been a considerable amount of >> effort put into overcoming limitations of TeX which are better >> overcome by changing TeX - as has already been done. If I need more >> counters I will use Omega. > >The fake integer implementations predate etex and omega. Probably it is >correct to say that a real L3 implementation would use an extended tex's >features for that, but perhaps this implementation may still be useful to >provide support for a standard tex.[...] In my packages I always avoid internal registers as much as possible. I even write things like \edef\temporal{\the\counterx} and \counterx=\temporal\relax if there are no available temporal counters. Fake integers is an useful addition which you may use or not; imposing Omega and the like is not an alternative, since most of TeX users have not even heard of them. TeX is the *standard* language, existing in every system and we must improve it. (Actually, fint is a sort of "changed TeX" but by another procedure.) >> In TeX, all macros must be unique across all input files for a job, to >> avoid unintended conflicts.> To be true to L3PL, this means using the >> component on practically everything. While I do not object >> to this in principle, it is yet another burden for package writers. > >Some package writers (me, for instance) already use some kind of module >system to try to ensure uniqueness of internal names. eg all longtable >internal command names begin \LT@... all tabularx ones begin \TX@... Me too. The goal is uniqueness of names and the burden is fixing uncompatibilities if this device is not used. Regards Javier 14-Jun-1998 13:46:32-GMT,8004;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA18784 for ; Sun, 14 Jun 1998 07:46:31 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA24387; Sun, 14 Jun 1998 15:23:17 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 360107 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 14 Jun 1998 15:23:15 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA24374 for ; Sun, 14 Jun 1998 15:23:13 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id PAA22607 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 14 Jun 1998 15:23:14 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id PAA21667; Sun, 14 Jun 1998 15:12:24 +0200 References: <199806131643.SAA23491@relay.urz.uni-heidelberg.de> Message-ID: <199806141312.PAA21667@frank.zdv.uni-mainz.de> Date: Sun, 14 Jun 1998 15:12:24 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199806131643.SAA23491@relay.urz.uni-heidelberg.de> Javier Bezos writes: > [This message was originally posted two weeks ago, but I have not > received it yet. Apologies if someone is receiving it for the second > time.] i don't think it ever made it to the list before > In addition, there is a potential danger. If LaTeX is so dramatically > rewritten, *will* existing packages work? The programming experience i would say *if* such a dramatical rewrite is done in full then: *no* existing packages will no longer work. of course you could make them work all in parallel by supporting all kind of old syntax as well as internal new syntax but that in my eyes would be a horrible nightmare. on the other hand, *assume* for the moment that there would be a full kernel not just a number of packages as we put out and a kernel that is much more consistent in naming conventions and much more orthogonal in functionality as what we have now. also assume that enough people (that understand about TeX programming) find the kernel being a good toolkit and are interested to use it now how many packages are on CTAN that are functional with the current latex and how many man/hours do you need to convert them once for all? many i guess but perhaps not that many to make it impossible in a short time frame assuming there are enough people finding it worth while. many ifs, true, but if you don't make a clean cut and instead built forever on the fragile base and all it different coding layers that LaTeX currently exist of then you will never get much further as we got now: with packages don't working with each other and incompatible coding for the same functionality and, what i think is important no structure whatsoever that makes the coding at least halfway understandable. > For many years the LaTeX Team has been encouraging LaTeX-like syntax in > packages; now, the proposed syntax is quite different from anything known. > I've found most of tools very useful, but I think their command names are > a bit clumsy. Why not a combination of the old and the new, say: > > \newcommand{\name}[cn]{definition} > > or similar? the main point of what we suggest (at least conceptual even if not exactly the way as presented) is dividing up the coding layers; there is a document level coding layer which consists of applying tags and allowing for alias like functions (which \newcommand sort of provides), there is supposed to be a design layer which allows to describe layout by declarations and there is a low-level coding layer which is supposed to be used for providing the tags and layout functions which would be something like the proposed L3PL. the importance here is consistency, eg \name:cn tells me how \name:cn handles its arguments in contrast to \name:oo. in other words it provides a scheme for defining \name:nn and all its argument handling variants once for all. this doesn't belong to the document level as there one should not be concerned about expanding arguments. and without the naming convention (perhaps not exactly the one used but something similar in sprit) it wouldn't be worth on the programming level either. right now many packages and the kernel do define such commands and some of their variants but they do it ad hoc and you don't know it looking at the code. > gained > over the past years could be lost in part (and the packages themselves) > and LaTeX3 functionality could be lesser than LaTeX2e one, at least for > a transition period. How long will be this period? While > uncompatibility is acceptable to some extent, perhaps l3 is *too* > innovatory. (Remember Jobs has partially rejected Rhapsody because of a > similar reason.) maybe it is, who knows? which is one of the reasons why we have put it out for discussion. and this by the way is also one of the reasons why we haven't put it out earlier; because we have never been sure ourselves (and aren't now) if it is something that can work or will work (even though it worked for ourselves for proto-typing of many ideas) Richard Walker said in some email earlier that he thought it bad that such ideas have been around for a long time in our heads without putting them up to the public and that we are not making friends this way. sorry for that, but i wonder what he would have said if we had made similar (probably even worse as far as consistency is concerned) ideas public at the same time as 2e was launched to get the latex world back into some usable state? it might have killed LaTeX or at least 2e (just like the dc/ec fonts nearly killed it) because probably nobody would have believed that there are two things: a stable production system to go for and in parallel also thinking innovative (and perhaps even too innovative) ideas at the same time i think that we can now think about such ideas with some detachment without fearing the worst for the stable system we have now. And with Omega and etex and perhaps some combination of it one day available to the community at large we have to think along those lines anyway, eg using functionality of either such system in the kernel would mean a large shift and a big reencoding and not using them would mean that we stay limited forever even if the tools are around at some point. so to summarize: this PL is showing concepts which we think being worth looking at and thinking about it. actually applying them and how is something that remains to be seen hopefully after people have done a little more with it than just glancing over its documentation. my intention at least is to provide a language interface concept coded in this language sometime this year to show how to make real stuff using the principles behind it. perhaps others get interested enough to explore its potential as well a bit. the naming convention is something that is unfamiliar the first time you use it but our experience is that it is something you don't think of being clumsy after a short period. definitely less clumsy as the coding i had to use in the kernel for things like NFSS to make it happen and which are awfully hard to understand afterwards. frank 14-Jun-1998 17:02:34-GMT,2567;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id LAA21910 for ; Sun, 14 Jun 1998 11:02:33 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA01564; Sun, 14 Jun 1998 18:36:17 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 360188 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 14 Jun 1998 18:36:14 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA01547 for ; Sun, 14 Jun 1998 18:36:13 +0200 (MET DST) Received: from [130.237.37.61] (sl101.modempool.kth.se [130.237.37.127]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id SAA00223 for ; Sun, 14 Jun 1998 18:36:11 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Sun, 14 Jun 1998 18:36:11 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: LaTeX3 experimental programming conventions released To: Multiple recipients of list LATEX-L In-Reply-To: <13666.41066.41305.314040@perdita.zdv.Uni-Mainz.de> >As announced at the TeX Users Group meeting (Summer 1997), a group of >highly experimental packages will has (somewhat belated) been released >to allow experienced TeX programmers to experiment with, and comment >on, a proposed set of syntax conventions and basic data-types that >might form the basis for programming large scale projects in TeX. They >are located in this CTAN directory: > > CTAN:macros/latex/packages/expl3 ... I get the error message: Font T1/cmr/m/n/10=dcr1000 at 10.0pt not loadable: Metric (TFM) file not found. What font is this? Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 14-Jun-1998 19:23:32-GMT,3345;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id NAA24246 for ; Sun, 14 Jun 1998 13:23:31 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id VAA23709; Sun, 14 Jun 1998 21:01:39 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 360264 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 14 Jun 1998 21:01:35 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id VAA23678 for ; Sun, 14 Jun 1998 21:01:33 +0200 (MET DST) Received: from [130.237.37.61] (sl86.modempool.kth.se [130.237.37.112]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id VAA05462 for ; Sun, 14 Jun 1998 21:01:28 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806131643.SAA23491@relay.urz.uni-heidelberg.de> <199806131643.SAA23491@relay.urz.uni-heidelberg.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Sun, 14 Jun 1998 21:01:20 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: LaTeX3 naming & modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806141312.PAA21667@frank.zdv.uni-mainz.de> The naming format \_: is surely right when starting to build orthogonal modules: In my experimentation, I wrote \/. The thing is that once has this kind of names, one can start building new commands that frees developer from knowing the developer the details of the expanded name. For example, a command \module{module_name}{ ... } which automatically add the module_name to code, and provides special definition commands for the different argument types. The code the developer then writes could then look pretty normal, say \module{tex}{ \def:D\let \def:D\def ... } instead of the definitions of l3names.dtx file \name_primitive:NN \let \name_primitive:NN \def The next step could be submodules of modules. So at least this part looks both exciting and to be the right thing to me. I can note that allowing to contain _ may be a problem when starting to build submodules: Say the name \foo_bar_xxx:w becomes ambiguous, if bar is the submodule of foo, which cannot be distinguished from the name bar_xxx in the module foo. So if submodules should be allowed, then either _ should be an indication of a submodule or a space in a name, but not both. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 14-Jun-1998 20:32:34-GMT,3116;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id OAA25288 for ; Sun, 14 Jun 1998 14:32:33 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA08079; Sun, 14 Jun 1998 22:04:51 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 360301 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 14 Jun 1998 22:04:49 +0200 Received: from mail-out-0.tiac.net (mail-out-0.tiac.net [199.0.65.247]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id WAA08053 for ; Sun, 14 Jun 1998 22:04:46 +0200 (MET DST) Received: from mail-out-4.tiac.net (mail-out-4.tiac.net [199.0.65.16]) by mail-out-0.tiac.net (8.8.8/8.8.8) with ESMTP id QAA24690 for ; Sun, 14 Jun 1998 16:04:37 -0400 (EDT) (envelope-from support@YandY.com) Received: from denali (p21.tc10.metro.MA.tiac.com [209.61.77.86]) by mail-out-4.tiac.net (8.8.7/8.8.7) with SMTP id UAA27400 for ; Sun, 14 Jun 1998 20:04:40 GMT (envelope-from support@YandY.com) X-Sender: yandy@pop.tiac.net X-Mailer: QUALCOMM Windows Eudora Pro Version 4.0.1 References: <13666.41066.41305.314040@perdita.zdv.Uni-Mainz.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: <4.0.1.19980614155055.00e2f800@pop.tiac.net> Date: Sun, 14 Jun 1998 16:04:42 -0400 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Y&Y, Inc." Subject: Re: LaTeX3 experimental programming conventions released To: Multiple recipients of list LATEX-L In-Reply-To: You have an out of date LaTeX 2e. The DC fonts have been replaced by the EC fonts a while back. At 06:36 PM 98/06/14 +0200, you wrote: >>As announced at the TeX Users Group meeting (Summer 1997), a group of >>highly experimental packages will has (somewhat belated) been released >>to allow experienced TeX programmers to experiment with, and comment >>on, a proposed set of syntax conventions and basic data-types that >>might form the basis for programming large scale projects in TeX. They >>are located in this CTAN directory: >> >> CTAN:macros/latex/packages/expl3 >... > > I get the error message: > >Font T1/cmr/m/n/10=dcr1000 at 10.0pt not loadable: Metric (TFM) file not found. > > What font is this? > > Hans Aberg > * Email: Hans Aberg > * Home Page: > * AMS member listing: > 15-Jun-1998 14:05:49-GMT,4363;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA05412 for ; Mon, 15 Jun 1998 08:05:16 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA29457; Mon, 15 Jun 1998 15:20:56 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 361526 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 15 Jun 1998 15:20:54 +0200 Received: from ixgate01.dfnrelay.d400.de (ixgate01.dfnrelay.d400.de [193.174.248.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA29440 for ; Mon, 15 Jun 1998 15:20:47 +0200 (MET DST) X400-Received: by mta d400relay in /PRMD=dfnrelay/ADMD=d400/C=de/; Relayed; Mon, 15 Jun 1998 15:14:16 +0200 X400-Received: by mta venus in /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Mon, 15 Jun 1998 15:13:50 +0200 X400-Received: by mta fell.open.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Mon, 15 Jun 1998 15:13:46 +0200 X400-Received: by mta open.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Mon, 15 Jun 1998 15:13:45 +0200 X400-Received: by mta UK.AC.MHS-RELAY.SUN in /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Mon, 15 Jun 1998 15:14:01 +0200 X400-Originator: C.A.Rowley@open.ac.uk X400-Recipients: non-disclosure:; X400-MTS-Identifier: [/PRMD=UK.AC/ADMD= /C=GB/;<13701.7374.830742.540142@fell.o] X400-Content-Type: P2-1988 (22) Content-Identifier: Re: L3PL Alternate-Recipient: Allowed References: <199806131643.SAA23491@relay.urz.uni-heidelberg.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.44 under Emacs 19.34.1 Message-ID: <13701.7374.830742.540142@fell.open.ac.uk> Date: Mon, 15 Jun 1998 15:14:01 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Chris Rowley Subject: Re: L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199806141312.PAA21667@frank.zdv.uni-mainz.de> In case anyone is misled about the Team's thinking on the intentions of LaTeX3, I thought it would be useful to quote from the nearest thing we have to an outline of our intentions: The LaTeX3 Project (in the distributed file ltx3info.tex). To get the context of these quotes you will need to read the whole document. First, LaTeX3 is a "... major new document processing system based on the principles pioneered by Leslie Lamport in the current \LaTeX". Thus, unlike 2e, it is not, primarily, just a new version of LaTeX. A lengthier quote: "Further analysis of these deficiencies has shown that some of the problems are to be found in \LaTeX{}'s internal concepts and design. This project to produce a new version therefore involves thorough research into the challenges posed by new applications and by the use of \LaTeX{} as a formatter for a wide range of documents, \eg \SGML{} documents; on-line \PDF{} documents with hypertext links. This will result in a major re-implementation of large parts of the system." Thus again it is clear that far more than extensions and enhancements were, and are still, considered necessary. I think that Frank has made it clear in his recent message that we are aware of the implications of doing this, one of which is that current packages could be redundant, and that this may no longer be what people want. But we are reasonably certain that it will be far more difficult to continue to build on a deeply flawed foundation than to build again from scratch ... or, rather, from whatever the rest of the world has to offer in the way of topography and building materials (to over-stretch the metaphor). Also note that the major reason for the redundancy of the packages will be because the foundations (and below) are very different; it will not be because the L3PL has a particular syntax or structure. chris 15-Jun-1998 15:15:16-GMT,3648;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id JAA07733 for ; Mon, 15 Jun 1998 09:15:14 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id QAA04906; Mon, 15 Jun 1998 16:26:30 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 361671 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 15 Jun 1998 16:26:27 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id QAA04893 for ; Mon, 15 Jun 1998 16:26:25 +0200 (MET DST) Received: from [130.237.37.102] (sl76.modempool.kth.se [130.237.37.102]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id QAA06321 for ; Mon, 15 Jun 1998 16:26:17 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se (Unverified) Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 15 Jun 1998 16:26:11 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Modules To: Multiple recipients of list LATEX-L When I did some modules programming, I arrived at a more general idea than the one in the expl3 draft: The construction \/...// should be interpreted as though the is called within the , which is a submodule of , and so forth. In LaTeX3, one could have a naming convention that there should be a command with the same name. However, the actual interpretation is somewhat deeper: The is called within the module whose full name is \/...//, and it should be called within the conventions that this module determines to fit. Therefore not merely the command name \/...// is called, but the command name \/...// with as an argument: Then the command \/...// can determine what conventions to use; for example, it could merely expand to \/...//. The point is that one could define modules with more flexible syntax. This could be a module with HTML syntax, even though if just that is possible. Therefore I am inclined to believe that in the syntax \_:, the : should not be a part of the name of the command, but something that can be extracted when knowing the name \_. But perhaps this is too complicated (or too inefficient) to implement on the development level: Perhaps one could implement user level commands with simplified names instead. The best would perhaps to let an improved version of TeX itself sort out which of the different copies of \_: should be used for a given \_ (in so called "name overloading"). Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 15-Jun-1998 16:53:44-GMT,2772;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA11373 for ; Mon, 15 Jun 1998 10:53:38 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA17351; Mon, 15 Jun 1998 18:29:04 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 362007 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 15 Jun 1998 18:29:02 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA17341 for ; Mon, 15 Jun 1998 18:29:01 +0200 (MET DST) Received: from [130.237.37.151] (sl125.modempool.kth.se [130.237.37.151]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id SAA17027 for ; Mon, 15 Jun 1998 18:28:58 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806131643.SAA23491@relay.urz.uni-heidelberg.de>, Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 15 Jun 1998 18:28:04 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: LaTeX3 naming & modules To: Multiple recipients of list LATEX-L In-Reply-To: <13701.17613.13961.821690@fell.open.ac.uk> >But, as Hans suggests in his other message, whether such ideas are >practical whilst the current TeX (or any extensions so far considered) >is the underlying language needs further research. This is also a point which I did not mention: For developing such ideas like modules and objects, one needs a very good context. So the best way to approach this subject is really the approach taken: Start to write these names by hand. When one has a good working kernal, one can start to think about abstractions. I then pointed out some snags that may arise down the line, and I indicated what I think is needed to get around them. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 15-Jun-1998 16:54:49-GMT,3493;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA11408 for ; Mon, 15 Jun 1998 10:54:38 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA15517; Mon, 15 Jun 1998 18:06:19 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 361974 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 15 Jun 1998 18:06:16 +0200 Received: from ixgate01.dfnrelay.d400.de (ixgate01.dfnrelay.d400.de [193.174.248.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA15498 for ; Mon, 15 Jun 1998 18:06:12 +0200 (MET DST) X400-Received: by mta d400relay in /PRMD=dfnrelay/ADMD=d400/C=de/; Relayed; Mon, 15 Jun 1998 18:05:55 +0200 X400-Received: by mta venus in /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Mon, 15 Jun 1998 18:03:22 +0200 X400-Received: by mta fell.open.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Mon, 15 Jun 1998 18:03:20 +0200 X400-Received: by mta open.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Mon, 15 Jun 1998 18:03:19 +0200 X400-Received: by mta UK.AC.MHS-RELAY.SUN2 in /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Mon, 15 Jun 1998 18:05:44 +0200 X400-Originator: C.A.Rowley@open.ac.uk X400-Recipients: non-disclosure:; X400-MTS-Identifier: [/PRMD=UK.AC/ADMD= /C=GB/;<13701.17613.13961.821690@fell.o] X400-Content-Type: P2-1988 (22) Content-Identifier: Re: LaTeX3 na... Alternate-Recipient: Allowed References: <199806131643.SAA23491@relay.urz.uni-heidelberg.de>, MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.44 under Emacs 19.34.1 Message-ID: <13701.17613.13961.821690@fell.open.ac.uk> Date: Mon, 15 Jun 1998 18:05:44 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Chris Rowley Subject: Re: LaTeX3 naming & modules To: Multiple recipients of list LATEX-L In-Reply-To: Hans Aberg wrote -- > The next step could be submodules of modules. So at least this part looks > both exciting and to be the right thing to me. > > I can note that allowing to contain _ may be a problem when > starting to build submodules: Say the name \foo_bar_xxx:w becomes > ambiguous, if bar is the submodule of foo, which cannot be distinguished > from the name bar_xxx in the module foo. > > So if submodules should be allowed, then either _ should be an indication > of a submodule or a space in a name, but not both. It is certainly true that if the module concept is to be made more formal and/or the module part of name is to have structural significance then the scheme would need such changes. But, as Hans suggests in his other message, whether such ideas are practical whilst the current TeX (or any extensions so far considered) is the underlying language needs further research. chris 15-Jun-1998 17:45:42-GMT,2763;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id LAA13204 for ; Mon, 15 Jun 1998 11:45:36 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA21137; Mon, 15 Jun 1998 19:08:33 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 362095 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 15 Jun 1998 19:08:30 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id TAA21121 for ; Mon, 15 Jun 1998 19:08:28 +0200 (MET DST) Received: from [130.237.37.151] (sl75.modempool.kth.se [130.237.37.101]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id TAA19661 for ; Mon, 15 Jun 1998 19:08:26 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 15 Jun 1998 19:08:28 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L Here is another idea one might play around with: The interesting with modules is that the names from different modules cannot clash. But then one want to load several modules and work with them in a convenient way. For example, if one has two modules phys and math, with abbreviation of names from physics and mathematics, and say these have the names \phys_T (for time) and \math_T (for torus), and one needs to use both these side by side. Always typing the full names might be inconvenient, so one can think of commands like \module{short}{phys}{\/} \module{short}{math}{\|} and then one would use \/T or \|T in formulas as long as these abbreviations are valid. -- One can note if this idea is carried out fully, then \module really refers to the module named ``module'' governing the behavior of modules. (Just as Java has a class named Class). Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 17-Jun-1998 17:51:24-GMT,5477;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id LAA18048 for ; Wed, 17 Jun 1998 11:51:22 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA22315; Wed, 17 Jun 1998 19:20:35 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 364401 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 17 Jun 1998 19:20:33 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id TAA22305 for ; Wed, 17 Jun 1998 19:20:30 +0200 (MET DST) Received: from [130.237.37.46] (sl26.modempool.kth.se [130.237.37.46]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id TAA29175 for ; Wed, 17 Jun 1998 19:20:28 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se (Unverified) Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Wed, 17 Jun 1998 19:20:22 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L I will give a simple example on how the idea of modules and submodules might be developed, which illustrates the principle I saw of a sequence of logical substructures with its own local rules for executing the code. I have attached LaTeX2e code, which is "quick-and-dirty" in order to keep it small. So, I define a module "math" with a submodule "symbol". The module math has commands phi and varphi which are named math/phi and math/varphi, and the submodule symbol has the command phi which is named math/symbol/phi. I then define an user command <...> for invoking those module and submodule commands, that is, , , and . The command <...> does not merely execute what it encloses, but parses it and passes it to the correct module, which then determines how to react to it. So the module math has a command named \math/ which takes one argument which determines how to react to the argument. So , , and will be parsed to \math/ taking the argument {phi}, {varphi}, and {symbol/phi} respectively. (If what <...> encloses does not contain a slash /, then in the version I wrote here, it is merely executed as a command. So executes \phi.) Then the command \math/ as it is defined here parses its argument too see if it is a command or a submodule: If it is a command (no slash in it), then it merely executes it. So \math/{phi} executes \math/phi, etc. But in the submodule case (a slash in the name), \math/{symbol/phi} translates into \math/symbol/{phi}; it is then up to the submodule command \math/symbol/ to decide how to react. I have then given two versions of \math/symbol/, one in which \math/symbol/{#1} expands to \math/symbol/#1 and another where this expands to \math/var#1. So in the first case, \math/symbol/{phi} becomes \math/symbol/phi, and in the other case it becomes \math/varphi. This then illustrates the principle that even though there is a generic rule for what a module or submodule should execute, this can easily be overridden by a local definition. ---- Module Example ----------------------------------------------- \documentclass{minimal} \catcode`\/=11 \def\newmodule#1{% \expandafter\def\csname#1/\endcsname##1{\parseB{#1}##1>}} % Define an example module "math" with submodule "symbol" \newmodule{math} % Same as \def\math/#1{\parseB{math}#1>} % Command #1 of submodule math/symbol executes \math/symbol/#1 \def\math/symbol/#1{\csname math/symbol/#1\endcsname} % Command #1 of submodule math/symbol executes \math/var#1 %\def\math/symbol/#1{\csname math/var#1\endcsname} \let\math/phi\phi % Command phi of module math \let\math/varphi\varphi % Command varphi of module math \let\math/symbol/phi\phi % Command phi of submodule math/symbol \catcode`\/=12 \catcode`\<=\active % User command for invoking module commands. \def<#1>{\parseA#1>} % Parse for slash in argument. \def\parseA#1#2#3>{ \ifx#3\relax\relax% \def\tempA{\csname#1#2\endcsname}% No /; command #1#2. \else\ifx#2/% \def\tempA{\csname#1/\endcsname{#3}}% /, command #3 in module #1/. \else \def\tempA{\parseA{#1#2}#3>}% \fi\fi% \tempA% } % Same as parseA, but within a module #1. \def\parseB#1#2#3#4>{ \ifx#4\relax\relax% \def\tempA{\csname#1/#2#3\endcsname}% No /; command #2#3 in module #1/. \else\ifx#3/% \def\tempA{\csname#1/#2/\endcsname{#4}}% A /, so submodule #1/#2 checks #4 \else \def\tempA{\parseB{#1}{#2#3}#4>}% \fi\fi% \tempA% } \begin{document} Command ``phi'': $$. Command ``phi'' of module ``math'': $$. Command ``phi'' of submodule ``symbol'' of module ``math'': $$. \end{document} ---- End of Module Example ----------------------------------------------- 17-Jun-1998 18:30:22-GMT,2721;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id MAA19369 for ; Wed, 17 Jun 1998 12:30:16 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA23773; Wed, 17 Jun 1998 19:53:36 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 364426 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 17 Jun 1998 19:53:34 +0200 Received: from ixgate01.dfnrelay.d400.de (ixgate01.dfnrelay.d400.de [193.174.248.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id TAA23761 for ; Wed, 17 Jun 1998 19:53:28 +0200 (MET DST) X400-Received: by mta d400relay in /PRMD=dfnrelay/ADMD=d400/C=de/; Relayed; Wed, 17 Jun 1998 19:48:31 +0200 X400-Received: by mta venus in /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Wed, 17 Jun 1998 19:47:44 +0200 X400-Received: by mta fell.open.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Wed, 17 Jun 1998 19:47:43 +0200 X400-Received: by mta open.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Wed, 17 Jun 1998 19:47:42 +0200 X400-Received: by mta UK.AC.MHS-RELAY.SUN2 in /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Wed, 17 Jun 1998 19:48:24 +0200 X400-Originator: C.A.Rowley@open.ac.uk X400-Recipients: non-disclosure:; X400-MTS-Identifier: [/PRMD=UK.AC/ADMD= /C=GB/;<13704.121.527407.877988@fell.op] X400-Content-Type: P2-1988 (22) Content-Identifier: Re: Modules Alternate-Recipient: Allowed References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.44 under Emacs 19.34.1 Message-ID: <13704.121.527407.877988@fell.open.ac.uk> Date: Wed, 17 Jun 1998 19:48:24 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Chris Rowley Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Hans' very interesting ideas are for modules to handle the name-clash problem at the document-level. This is certainly something that needs attention but is probably independent of L3PL modularisation, or maybe there is some overlap? chris 17-Jun-1998 19:02:10-GMT,2879;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id NAA20788 for ; Wed, 17 Jun 1998 13:02:09 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id UAA25711; Wed, 17 Jun 1998 20:39:07 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 364471 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 17 Jun 1998 20:39:04 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id UAA25699 for ; Wed, 17 Jun 1998 20:39:01 +0200 (MET DST) Received: from [130.237.37.46] (sl88.modempool.kth.se [130.237.37.114]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id UAA04146 for ; Wed, 17 Jun 1998 20:38:57 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Wed, 17 Jun 1998 20:38:55 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <13704.121.527407.877988@fell.open.ac.uk> At 19:48 +0200 98/06/17, Chris Rowley wrote: >This is certainly something that needs attention but is probably >independent of L3PL modularisation, or maybe there is some overlap? There is some overlap, which is why I bring it up: The correct way to do this stuff is to write it out by hand as in L3PL, and then with a good context given by all the code to fit into it, and successively moves to higher levels of abstraction. But on this road, there are some sneaky points, namely if one does not start to think about modules and submodules one the final higher abstraction level, some of the early decisions will be wrong, and then all work has to be redone (or it will be impossible to implement it). So I try to mainly point out some of the principles I saw, and perhaps they can help to influence the L3PL if needed. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 18-Jun-1998 3:53:22-GMT,2209;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id VAA07574 for ; Wed, 17 Jun 1998 21:53:21 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id FAA20273; Thu, 18 Jun 1998 05:37:47 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 364675 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 18 Jun 1998 05:37:38 +0200 Received: from salmon.maths.tcd.ie (mmdf@salmon.maths.tcd.ie [134.226.81.11]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id FAA20229 for ; Thu, 18 Jun 1998 05:37:30 +0200 (MET DST) Received: from boole.maths.tcd.ie by salmon.maths.tcd.ie with SMTP id ; 18 Jun 98 04:37:30 +0100 (BST) X-Mailer: ELM [version 2.4ME+ PL40 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-ID: <9806180437.aa15317@boole.maths.tcd.ie> Date: Thu, 18 Jun 1998 04:37:30 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Timothy Murphy Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: from Hans Aberg at "Jun 17, 98 07:20:22 pm" > Then the command \math/ as it is defined here parses its argument too see > if it is a command or a submodule: If it is a command (no slash in it), > then it merely executes it. So \math/{phi} executes \math/phi, etc. But in > the submodule case (a slash in the name), \math/{symbol/phi} translates > into \math/symbol/{phi}; it is then up to the submodule command > \math/symbol/ to decide how to react. Does this really mean I'll have to say "\math/phi" every time I want a \phi ? 18-Jun-1998 6:02:41-GMT,5675;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id AAA11473 for ; Thu, 18 Jun 1998 00:02:39 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id HAA05877; Thu, 18 Jun 1998 07:46:54 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 364751 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 18 Jun 1998 07:46:37 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id HAA05772 for ; Thu, 18 Jun 1998 07:46:14 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id PAA08908; Thu, 18 Jun 1998 15:46:02 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <13704.121.527407.877988@fell.open.ac.uk> X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199806180546.PAA08908@ricetub.anu.edu.au> Date: Thu, 18 Jun 1998 15:46:02 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Well . . . Hans's ideas sent me scurrying back to The TeXbook (always a good thing) to study the fine print about s. Hans has come up with a useful hierarchical namespace system for macros. All I can say is . . . `cool!'. I was a little concerned about ambiguities in L3PL caused by using _ to separate components, and then allowing _ within components. I think it is good to allow _ within a component (and @ for internals?!) and then use something else (such as /) to separate the components. This will be useful for external indexing programs (e.g. Emacs etags) or even doc.sty. Now bear with me for a few moments of madness. Come to think of it, what follows isn't much weirder^H^H^H^H^H^H^Hmore unusual than some of the details of L3PL. Even if you don't like the particulars, maybe they might trigger a better idea or a totally different application? OK, so now the base's internal macros look like this: \base/ltbibl/@citex and if I write a package called `splat' my internal macros will look like this: \contrib/supported/splat/somethinguseful The result: massive fmt file and control sequence bloat. We need some shortcuts. Here are some possibilities. ============================================================ 1. Use a variant of the Apple solution: author/product codes. E.g. assign a four-(hex-)digit code to a developer. Assume I am allocated a5d4; then my macros begin \a5d4/. . . There might be special codes for e.g. the LaTeX base and packages. ============================================================ 2. Extend doc.sty to do the following: (a) The package writer uses the long names as above when editing the dtx file. We assume that the writer has the help of a good text editor to save on keystrokes! (b) When run through TeX to extract the .cls/.sty/whatever file, the long names of internal macros are rewritten in a canonical, unique-across-all-packages short form, perhaps based on point 1 above. (This must also be the same across TeX implementations.) The package writer might make the renaming explicit or give `hints'; there might be a (more or less) sensible default. (c) Write out a .cut file (for `short cut') which specifies the correspondence between long and short forms. This file could also include macro documentation, error messages, etc. Something like Emacs documentation strings? (Write it out in a format that can be loaded by AUC TeX?) Zillions of possibilities. Maybe .cut is the wrong suffix . . . . People who only use the package don't need to worry about any of this; the `exported' macros have `nice' names. People who want to build on the package can `load' the .cut file in a `special' way which sets up correspondences between long and short names. <- This needs some work to get it right; when you redefine an internal macro you have to redefine both long and short names. Once you are done messing with the internals you can `undo' the correspondences to free up the control sequence space. Error messages relating to internal macros go via the .cut file so that the user sees something `sensible', i.e. using the long names. ============================================================ 3. Similar to point 2 above, but doc.sty writes out two separate .cls/.sty/whatever files, one using the short names and one using the long names. Load whichever you need. You still need the .cut file. ============================================================ 4. As for 3, but write just one file; you specify what you want when you load the file via a [shortnames] or [longnames] option. (Hmm . . . not so good when used as \documentclass[longnames]{blah}; this filters down to later \usepackages unless you override it.) You still need the .cut file. ============================================================ What do you think? Richard. 18-Jun-1998 10:03:25-GMT,3246;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id EAA05435 for ; Thu, 18 Jun 1998 04:03:24 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id LAA29553; Thu, 18 Jun 1998 11:35:28 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 364971 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 18 Jun 1998 11:35:18 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id LAA29481 for ; Thu, 18 Jun 1998 11:35:11 +0200 (MET DST) Received: from [130.237.37.106] (sl89.modempool.kth.se [130.237.37.115]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id LAA22879 for ; Thu, 18 Jun 1998 11:35:04 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: from Hans Aberg at "Jun 17, 98 07:20:22 pm" Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Thu, 18 Jun 1998 11:34:48 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <9806180437.aa15317@boole.maths.tcd.ie> At 04:37 +0100 98/06/18, Timothy Murphy wrote: >Does this really mean I'll have to say "\math/phi" >every time I want a \phi ? There are two questions: What names to use on a development level, and how to implement features that are easy to the user. On the development level, long names are mainly (I think) the question of the speed of TeX, but I think TeX is not slowed much down by that. It is good if names alway expand to \math/phi or \phys/phi because it makes those names separate and they cannot clash. But on the user level, there must be shortcuts: The user should avoid using those '/' as much as possible. One suggestion would be that the user is allowed to make local definitions: When typing say (inventing a syntax on the fly) it expands to \document/name/my_doc/foo -- the point is that when several documents are blended together, these local definitions can be made globally available if needed. I just jot down some ideas on how the matter could be developed. -- Doing this correctly would need (in the example) a careful study on how to actually blend together several documents, just as the discussions carried out earlier here in this group. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 18-Jun-1998 10:30:25-GMT,4001;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id EAA06108 for ; Thu, 18 Jun 1998 04:30:10 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA03048; Thu, 18 Jun 1998 12:01:48 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 365049 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 18 Jun 1998 12:01:44 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA02992 for ; Thu, 18 Jun 1998 12:01:20 +0200 (MET DST) Received: from [130.237.37.106] (sl44.modempool.kth.se [130.237.37.64]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA24505 for ; Thu, 18 Jun 1998 12:01:11 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <13704.121.527407.877988@fell.open.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Thu, 18 Jun 1998 12:01:04 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806180546.PAA08908@ricetub.anu.edu.au> At 15:46 +1000 98/06/18, Richard Walker wrote: >.. We need some >shortcuts. Here are some possibilities. > >============================================================ >1. Use a variant of the Apple solution: author/product >codes. E.g. assign a four-(hex-)digit code to a developer. Assume I >am allocated a5d4; then my macros begin \a5d4/. . . >There might be special codes for e.g. the LaTeX base and packages. One drawback with such an idea is that somebody would need to assign such codes: But if TeX is not bothered by long names I think it should not be needed, because an user could use "a5d4" as a shortcut expanding to a long name. >============================================================ >2. Extend doc.sty to do the following: >(a) The package writer uses the long names as above when editing the >dtx file. We assume that the writer has the help of a good text >editor to save on keystrokes! Even if one has to write out all the long names by hand, one way to do it is to first use shorter names, and then insert the long names after the package has been developed. But I think that also developers of packages will need developer user commands that simplifies this stuff. Anyway, I think one will have to do some experimenting with how to produce useful shortcuts, while retaining the feature that the long module names do not clash. -- I should perhaps point out that a module (say "math") that wants to supply short names could have a submodule "short", so that if there is a short version of "alpha" in "math" named "al", its long name would be "math/short/al". Then an user could say (inventing a syntax) that expands to \math/short/foo instead of \math/foo. So once one has started with modules, it is possible to supply those things on the logical level, without extra files and stuff. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 18-Jun-1998 12:36:55-GMT,2623;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA09176 for ; Thu, 18 Jun 1998 06:36:49 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA16500; Thu, 18 Jun 1998 14:04:56 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 364713 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 18 Jun 1998 14:04:45 +0200 Received: from ixgate01.dfnrelay.d400.de (ixgate01.dfnrelay.d400.de [193.174.248.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA16412 for ; Thu, 18 Jun 1998 14:04:35 +0200 (MET DST) X400-Received: by mta d400relay in /PRMD=dfnrelay/ADMD=d400/C=de/; Relayed; Thu, 18 Jun 1998 14:02:28 +0200 X400-Received: by mta venus in /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Thu, 18 Jun 1998 14:01:57 +0200 X400-Received: by mta fell.open.ac.uk in /PRMD=UK.AC/ADMD= /C=GB/; Relayed; Thu, 18 Jun 1998 14:01:55 +0200 X400-Received: by mta UK.AC.MHS-RELAY.SUN2 in /PRMD=uk.ac/ADMD= /C=gb/; Relayed; Thu, 18 Jun 1998 14:02:00 +0200 X400-Originator: C.A.Rowley@open.ac.uk X400-Recipients: non-disclosure:; X400-MTS-Identifier: [/PRMD=UK.AC/ADMD= /C=GB/;<13705.355.847609.670463@fell.op] X400-Content-Type: P2-1988 (22) Content-Identifier: Re: Modules Alternate-Recipient: Allowed References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.44 under Emacs 19.34.1 Message-ID: <13705.355.847609.670463@fell.open.ac.uk> Date: Thu, 18 Jun 1998 14:02:00 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Chris Rowley Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <9806180437.aa15317@boole.maths.tcd.ie> Timothy Murphy wrote -- > Does this really mean I'll have to say "\math/phi" > every time I want a \phi ? Well, the intention is just the opposite: that you can always say \phi but it can silently be interpreted as different things in different contexts. chris 20-Jun-1998 19:38:52-GMT,6361;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id NAA15742 for ; Sat, 20 Jun 1998 13:38:50 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id VAA18628; Sat, 20 Jun 1998 21:05:43 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 365838 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 20 Jun 1998 21:05:38 +0200 Received: from bilbo.yavuz.de (root@p3ppp209.rz.uni-mannheim.de [134.155.17.209]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id VAA18614 for ; Sat, 20 Jun 1998 21:05:32 +0200 (MET DST) Received: by bilbo.yavuz.de id m0ynSs5-000DLbC (Debian Smail-3.2 1996-Jul-4 #2); Sat, 20 Jun 1998 21:00:17 +0200 (CEST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.35 under Emacs 20.2.1 Message-ID: Date: Sat, 20 Jun 1998 21:00:17 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Volkan Yavuz Subject: Modules To: Multiple recipients of list LATEX-L These are my thoughts regarding modules and a hierarchical namespace. They are similar to what Hans has written, but slightly different. * Specifying the Local Scope A package author identifies not just the package name but also gives it's location within a hierarchy (modules, submodule). This hierarchy may also correspond to some extent to the directory structure on CTAN.... :-) It may be feasible to use a deeper module hierarchy than the current directory structure on CTAN to be able to categorize packages more exactly. \ProvidesPackage{latex3/contrib/math} after this declaration, all macros that are \newcommand'ed within this package are auto-magically[1] prefixed with something like "latex3/contrib/math". [1] This would save package authors a lot of typing and automatically ensures that all macros have the correct prefix. * Accessing Macros When the author of that particular package wants to access macros defined in some other package, he says \RequirePackage{latex3/base/toc} \RequirePackage{latex3/base/ifthen} or for document authors respectively \usepackage{latex3/base/toc} \usepackage{latex3/base/ifthen} This could lead to the following: whenever a macro is requested, it is searched along some kind of search path, i.e. it is first looked up in "latex3/contrib/math", "latex3/base/toc" and finally "latex3/base/ifthen".[2] It could well be looked up in some standard system namespaces, too, or maybe it is not searched anywhere else. [2] This would save document authors a lot of typing since they needn't specify the fully qualified macro name. Because of \usepackage, LaTeX knows where to look for the macros. This only works as long as there is no name clash among the macros in "latex3/contrib/math" and the public[3] macros in "latex3/base/toc" and "latex3/base/ifthen". When a name is ambiguous, the macro has to be fully qualified, e.g. something like "\latex3/base/ifthen/newif". [3] How about declaring macros public or private to some module. When declared private, they are not looked up automatically when not in the local scope. The local scope is determined by "\ProvidesPackage{the/local/scope}". * Local Namespaces It may be very useful to locally specify some valid namespaces which are to be prepended to all unqualified macros. This could also be used to rearrange the order in which the namespace is traversed in search for a macro. \begin{namespace}{latex3/contrib/tabularx,% latex3/contrib/graphics} % use macros from tabularx and graphics % no need to fully qualify their names % first look in tabularx, then in graphics \end{namespace} * Redefining Macro Names In case there are macros with identical names from different packages, it may be useful to allow redefinition of one of them to disambiguate their names, so there is no need to fully qualify their names. Say there is a macro "\phi" both in "latex3/contrib/math/phi" and in "latex3/contrib/phys/phi". Both \phis are somewhat different and needed throughout the document. \rename{latex3/contrib/math/phi}{mphi} After this, \phi from latex3/contrib/math is accessible "from outside" as \mphi. Of course, this could equally well be achieved by just writing a macro \mphi that expands to the fully qualified name of \phi. There was some other reason to providing this functionality which has just escaped my mind... * By specifying a local scope and using a search path, there should be no problem for both package and document authors dealing with the now somewhat long macro names as Richard has pointed out. I haven't considered the impact on TeX's memory and performance, though. The module name could also be used to distinguish officially released packages which are available from CTAN from locally written packages, which are either not meant to be published or are still in development. How about reserving the prefix "latex3" for packages which are released on CTAN and using something like "edu/st-anford/drofnats" for packages written by an individual at St-Anford? You see the obvious similarities to the way Java(tm) handles packages which belong to the standard distribution and which are developed elsewhere. Regarding the similarity of the module/submodule names and the directory structure on CTAN, how about making LaTeX Internet aware. Lets let it load packages on-demand from the nearest CTAN host... ;-) Kind regards, Volkan -- __volkan yavuz___________________________ mailto:yavuzv@rumms.uni-mannheim.de http://webrum.uni-mannheim.de/ba/yavuzv/ __________"May the source be with you!"__ 20-Jun-1998 20:26:11-GMT,2724;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id OAA17011 for ; Sat, 20 Jun 1998 14:26:02 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA19660; Sat, 20 Jun 1998 22:06:09 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 365871 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 20 Jun 1998 22:06:07 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id WAA19650 for ; Sat, 20 Jun 1998 22:06:05 +0200 (MET DST) Received: from [130.237.37.43] (sl124.modempool.kth.se [130.237.37.150]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id WAA20478 for ; Sat, 20 Jun 1998 22:06:03 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Sat, 20 Jun 1998 22:06:00 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L The idea with modules is to not define localities. There is already a structure in LaTeX for creating localities, name the environments. In fact, a convenient way to implement environments is by creating a module called "environment", which defines the behavior of environments, including how to define new environments. In fact, one can go one step further and create a module "Environment" which is used to create different styles of environments (say if you want to change that \begin{foo} ... \end{foo} to something else, or perhaps create environments for HTML code, or something). I have put up a link on my home page to the LaTeX/TeX code I once made while exploring these ideas. It is just a copy of what I happened to have in my home directory, so it's a mess. But the stuff is at least available for exploration. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 20-Jun-1998 21:15:15-GMT,2752;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id PAA18116 for ; Sat, 20 Jun 1998 15:15:08 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA20308; Sat, 20 Jun 1998 23:00:36 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 365906 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 20 Jun 1998 23:00:33 +0200 Received: from sallib.sals.edu (SALLIB.SALS.EDU [198.175.242.1]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA20298 for ; Sat, 20 Jun 1998 23:00:31 +0200 (MET DST) Received: by sallib.sals.edu for LATEX-L@relay.urz.Uni-Heidelberg.DE; Sat, 20 Jun 1998 17:00:47 -0400 Message-ID: <980620170047.104b4@sals.edu> Date: Sat, 20 Jun 1998 17:00:47 -0400 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Michael O'Connor" Subject: Re: Modules To: Multiple recipients of list LATEX-L Dear fellow LaTeX friends, >From a little guy, von einem Duemmerchen, I want to report how useful LaTex has been to our small organization. We have used TeX and LaTeX for many years and we have contributed modest dollars, within our means, to LaTeX's future development. We love LaTeX. And we hope that the new "3" development won't cause us us to rearrange our lives significantly. As rank amateurs in this typesetting business, we look forward to a "3" that will enable _easy_ font selection and an _easy_ transition from "2e," the transition to which was a model others should imitate. We also hope that "3" will provide the same typesetting discipline in the original Lamport/LaTeX package. At the same time, we admire and applaud all of the volunteer efforts, here and abroad, and we hope that whatever the "3" developers do will address the needs of the small organizations such as ours. We wish all of you the best in your work. ================================================================ Michael O'Connor Voice 518/584-7300 Southern Adirondack Library System FAX 518/587-5589 22 Whitney Place Internet moc@sals.edu Saratoga Springs NY 12866-4596 DRANet sallib::moc ================================================================ 20-Jun-1998 21:33:11-GMT,2720;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id PAA18480 for ; Sat, 20 Jun 1998 15:33:04 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA20609; Sat, 20 Jun 1998 23:16:13 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 365917 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 20 Jun 1998 23:16:10 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA20599 for ; Sat, 20 Jun 1998 23:16:08 +0200 (MET DST) Received: from [130.237.37.71] (sl51.modempool.kth.se [130.237.37.71]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id XAA22586 for ; Sat, 20 Jun 1998 23:16:07 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Sat, 20 Jun 1998 23:16:09 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Lovely LaTeX3 (Was: Modules) To: Multiple recipients of list LATEX-L In-Reply-To: <980620170047.104b4@sals.edu> At 17:00 -0400 98/06/20, Michael O'Connor wrote: >We have used TeX and LaTeX for many years and we have >contributed modest dollars, within our means, to >LaTeX's future development. We love LaTeX. And we hope that >the new "3" development won't cause us us to rearrange our >lives significantly. Of course, I hope that LaTeX3 will cause you to rearrange your lives rather significantly but in a positive and constructive way, by choice depending on your individual needs. >At the same time, we admire and applaud all of the volunteer >efforts, here and abroad, and we hope that whatever the "3" >developers do will address the needs of the small organizations >such as ours. Why not giving some inputs on this list, specifying what those needs and wishes are? Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 20-Jun-1998 20:12:58-GMT,3740;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id OAA16599 for ; Sat, 20 Jun 1998 14:12:43 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id VAA19434; Sat, 20 Jun 1998 21:55:58 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 365856 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 20 Jun 1998 21:55:54 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id VAA19422 for ; Sat, 20 Jun 1998 21:55:52 +0200 (MET DST) Received: from [130.237.37.43] (sl23.modempool.kth.se [130.237.37.43]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id VAA20192 for ; Sat, 20 Jun 1998 21:55:45 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Sat, 20 Jun 1998 21:55:48 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: In general, there is no point in abbreviating the names while loading a module: One loads them in full and then, as needs arise, one use local, more convenient definitions. This way the user can use different kinds of mixtures of modules in different localities. One example might be when putting together different manuscripts of different authors: Each author might have a different blend of say the math or phys module. By not abbreviating the names when loading those modules, the different manuscripts will not clash. (So, in particular, I think that LaTeX3 should make the environment "document" to a locality, and the definitions of that document that the user might add should be made within that environment: The commands that need to be global should be named \document//. Then the commands of different documents will not clash when run together.) At 21:00 +0200 98/06/20, Volkan Yavuz wrote: >* Specifying the Local Scope ... > \ProvidesPackage{latex3/contrib/math} > >after this declaration, all macros that are \newcommand'ed within this >package are auto-magically[1] prefixed with something like >"latex3/contrib/math". So a command like this could be useful to load all macros in latex3/contrib/math, but it would not abbreviate the names. Instead an user would define a special environment which abbreviates the names. Inventing something: \module{short}{latex3/contrib/math}{m} and as long as the locality is valid, names \m/foo would expand to \latex3/contrib/math/foo. One reason for doing it this way is that it is difficult know in advance what kind of blends of modules users may make use of. Then one could of course think of more complicated things (like search paths etc), but I think this would suffice quite far. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 21-Jun-1998 18:00:50-GMT,5329;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id MAA02060 for ; Sun, 21 Jun 1998 12:00:48 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id TAA04837; Sun, 21 Jun 1998 19:38:53 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 366384 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 21 Jun 1998 19:38:49 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id TAA04827 for ; Sun, 21 Jun 1998 19:38:46 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA150 for ; Sun, 21 Jun 1998 19:38:50 +0200 Received: from [195.122.199.60] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAA142 for ; Sun, 21 Jun 1998 19:41:36 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199806211738.TAA04827@relay.urz.uni-heidelberg.de> Date: Sun, 21 Jun 1998 19:36:28 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: l3 function names To: Multiple recipients of list LATEX-L Hello, I've rewritten some of my own macros -- it's not difficult and... they work! That and the Frank's message convinced me that the argument specifiers could be sometimes a good thing. But... >From l3basics: "\let:NwN \let:NN \let:Nc \let:cN \let:cc" That looks pretty, but it's misleading because it suggests a symmetry which in fact does not exist. \let:NwN expands to itself while the remainder does not. Another example (from "l3expand"): "\exp_args:Nx \exp_args:Nc" The first one cancels kerning, but the second one does not. When there are some variants, which is the command with the actual definition? More important: How do I remember which variants are available? If I write \def_long:cpn and then I realize that this command should be global I will tempted to write \gdef_long:cpn. It does not exist! Personally, I don't feel like learning the available variants of the commands. I find preferable a set of basic commands and a set of modifying commands as explained below. Renaming commands ~~~~~~~~~~~~~~~~~ Suppose someone is determined to study the internal latex code with the new naming scheme. He take the TeXbook and... surprise! The latex code is absolutely unintelligible. I thing the primitive (and maybe plain) command names should be preserved with perhaps some minute changes; eg. \_box instead of \box (you may think of that as "no module"). However, I think it's not a good idea to change at all the meaning of those well established names. If \box has another meaning it could lead to confusion. Argument specifiers ~~~~~~~~~~~~~~~~~~~~ >From expl3: "N Single token (unlike n, the argument must not be sorrounded by braces.)" In fact N stands for: - a token without braces (\def:Npn) - a token with (or without) braces (\def_new:Npn) - a brace (!) (\tokensi\exp_after:NN{\command}) \let:NN{\arg1}{\arg2} is particularly amusing because the first N is \arg1 and the second one is { with an unmatched brace. I think three ideas are being mixed: - How arguments are read: * A single token without braces * A single token with or without braces * A token list (with braces) - How argument are expanded: * No expansion * One level expansion * Full expansion - Conversion from a string to a token (Actually, in my titlesec package I need expand a certain command exactly three times, no less, no more.) If specifiers rules are not very, very, very clear it could be interpreted in a wide variety of ways by developpers, making the code even more unintelligible. I've devised some other specifier schemes but inconsistencies seems reluctant to disappear (except if a score of specifiers are used). Now imagine that there is no : notation and we use the l3expand set of tools. The code will no longer be cluttered with specifiers and in the few places where something unusual is necessary the code will remain readable. For instance (from "expl3"): \exp_args_Oc \glet \g_reserved_a_tlp \l_current_font_shape_tlp and \exp_args_cO \seq_test_in {sym#3} \l_group_seq Undescore in names ~~~~~~~~~~~~~~~~~~~ Changing the _ catcode prevents from using explicit subscript characters. I think there are better candidates: "other" character except =, <, >, . (sadly), , (ie, comma), - and +. (Namely /, !, ?, : (already used), ;, @, |...) Regards Javier PS. Frank and Rainer: Thank you for your suggestion, I've sent the command to the server. 22-Jun-1998 7:01:30-GMT,5476;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id BAA29299 for ; Mon, 22 Jun 1998 01:01:23 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id IAA14711; Mon, 22 Jun 1998 08:32:23 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 366622 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 22 Jun 1998 08:32:20 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id IAA14695 for ; Mon, 22 Jun 1998 08:32:07 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id QAA11602; Mon, 22 Jun 1998 16:31:11 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199806220631.QAA11602@ricetub.anu.edu.au> Date: Mon, 22 Jun 1998 16:31:11 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Volkan Yavuz writes: > A package author identifies not just the package name but also gives > it's location within a hierarchy (modules, submodule). This hierarchy > may also correspond to some extent to the directory structure on > CTAN.... :-) It may be feasible to use a deeper module hierarchy than > the current directory structure on CTAN to be able to categorize > packages more exactly. > > \ProvidesPackage{latex3/contrib/math} This is what I was hinting at when I referred to \base/ltbibl/@citex and \contrib/supported/splat/somethinguseful. (May I suggest not including `latex3', since it is superfluous, and we want upward compatibility with LaTeX4 . . . .) Some of us are talking at cross-purposes, so allow me to clarify what I was getting at before. There are some conflicting concerns: 1. Macro/symbol names should follow a consistent scheme, be easy to remember and use. Hence `long' names. 2. I was addressing the problem of keeping format file size and control sequence space requirements to a minimum. This has been one of the stated aims of the project. Hence `short' names. Is this no longer a concern? Is it OK if all macro names are thirty or more characters long? If so, dump the short names altogether, and stick with the long names. We use smart editors. Hans Aberg writes: > So a command like this could be useful to load all macros in > latex3/contrib/math, but it would not abbreviate the names. Instead an user > would define a special environment which abbreviates the names. Inventing > something: > \module{short}{latex3/contrib/math}{m} > and as long as the locality is valid, names \m/foo would expand to > \latex3/contrib/math/foo. > > One reason for doing it this way is that it is difficult know in advance > what kind of blends of modules users may make use of. > > Then one could of course think of more complicated things (like search > paths etc), but I think this would suffice quite far. My `gut' feeling is that this is a Very Bad Idea, but I'm not sure why. Perhaps because it doesn't lend itself to portable code. LaTeX `code' tends to be reused in much smaller chunks than is normal with other programming languages. If you copy some code from within some `module' construct, you have to be very careful where you put it. It might find itself being called inside some other `module', possibly with bizarre results. PS Nice photo! Javier Bezos writes: > Renaming commands > ~~~~~~~~~~~~~~~~~ > Suppose someone is determined to study the internal latex code with the > new naming scheme. He take the TeXbook and... surprise! The latex code is > absolutely unintelligible. This was my reaction too. And the new names are often not transparent renamings of the original - as you point out, some are subtly different. You need to know not only the new names but you need to keep the implementations in mind too. > I thing the primitive (and maybe plain) > command names should be preserved with perhaps some minute changes; eg. > \_box instead of \box (you may think of that as "no module"). Interesting idea. But I think we are looking at an `all-or-nothing' solution. I don't recall seeing LaTeX listed in those `shoot yourself in the foot' jokes; let's keep it that way. > However, I think it's not a good idea to change at all the meaning of > those well established names. If \box has another meaning it could > lead to confusion. A couple of days ago I needed a macro for typesetting program code within math mode. We have \mathrm, \mathtt, etc. so I thought: why not \mathcode? Oops, that's a TeX primitive. Ben L. User would probably be annoyed about that. I must admit that I'm slowly coming around to the [removeoldnames] option. 22-Jun-1998 11:23:19-GMT,4512;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA13045 for ; Mon, 22 Jun 1998 05:23:13 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA06578; Mon, 22 Jun 1998 12:52:39 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 367388 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 22 Jun 1998 12:52:36 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA06564 for ; Mon, 22 Jun 1998 12:52:32 +0200 (MET DST) Received: from [130.237.37.30] (sl81.modempool.kth.se [130.237.37.107]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA07009 for ; Mon, 22 Jun 1998 12:52:29 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 22 Jun 1998 12:42:38 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806220631.QAA11602@ricetub.anu.edu.au> I think there are two concerns, the logical (keeping the code straight, so different chunks of code do not clash), and how to make this workable and useful to those who use it, both developers and users. For the logical part, I think that module names should always be long, unless there is some technical reason against, like TeX does not like it. But I think TeX does not bother so much; it replaces long names by a short internal macro representation, I think. Then one may discuss how long the long names should be: Certainly, one cannot diminish the number of module separators (like "/" in these discussions), because they tell something about the logical structure. But it is possible to let the module named "environment" have names starting "envir/" by simply letting the command \environment/ expand \environment/ to \envir/. But then the module name "envir" cannot be used. Similarly, the module named "environment" should not be required be in a file named like that; if one wants to specify a special file or file position, there should be command doing this. (Such command could be made to be platform independent between say UNIX, MacOS and MSOS if there is another command telling which platform it is.) At 16:31 +1000 98/06/22, Richard Walker wrote: >1. Macro/symbol names should follow a consistent scheme, be easy to >remember and use. Hence `long' names. > >2. I was addressing the problem of keeping format file size and >control sequence space requirements to a minimum. This has been one >of the stated aims of the project. Hence `short' names. Is this no >longer a concern? Is it OK if all macro names are thirty or more >characters long? If so, dump the short names altogether, and stick >with the long names. We use smart editors. So here, they way I see it, the long names (1) are only used really in order to keep the code straight and avoid code clashes. The user (preferably also developers) should only need to use short names by various of simplifying schemes; this is (2) then. But non-local names should expand to long names. When developing the simplifying schemes (2), I do not know how to do it for the simple reason that TeX is too tricky to program. One can simply not invent some nice general schemes, then sit down, program it in TeX and hope it is going to work. Generalities is evidently not Knuth's strong side. So (2) must be developed together with (1), so that the two cooperate. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 22-Jun-1998 11:23:31-GMT,3059;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA13048 for ; Mon, 22 Jun 1998 05:23:17 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA06703; Mon, 22 Jun 1998 12:54:28 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 367392 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 22 Jun 1998 12:54:25 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA06579 for ; Mon, 22 Jun 1998 12:52:40 +0200 (MET DST) Received: from [130.237.37.30] (sl81.modempool.kth.se [130.237.37.107]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA07020 for ; Mon, 22 Jun 1998 12:52:37 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 22 Jun 1998 12:52:41 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806220631.QAA11602@ricetub.anu.edu.au> Javier Bezos wrote: > Renaming commands > ~~~~~~~~~~~~~~~~~ > Suppose someone is determined to study the internal latex code with the > new naming scheme. He take the TeXbook and... surprise! The latex code is > absolutely unintelligible. Richard Walker wrote: >This was my reaction too. And the new names are often not transparent >renamings of the original - as you point out, some are subtly >different. You need to know not only the new names but you need to >keep the implementations in mind too. I think the contrary: This is a very good, bold move, that is, if it can be made to work. One then becomes independent of that old PlainTeX once for all, and is free to build up an entirely new consistent logical structure. This will perhaps prepare for a new version of TeX, which can take care of the new LaTeX3 structures efficiently. That is, if it can be made practical... So give it a try, I would say. (It is probably more difficult to implement the feature at a later stage than removing it if it does not work.) Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 22-Jun-1998 11:38:39-GMT,2819;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA13414 for ; Mon, 22 Jun 1998 05:36:19 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA07889; Mon, 22 Jun 1998 13:10:53 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 367434 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 22 Jun 1998 13:10:50 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA07879 for ; Mon, 22 Jun 1998 13:10:48 +0200 (MET DST) Received: from [130.237.37.30] (sl117.modempool.kth.se [130.237.37.143]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id NAA08292 for ; Mon, 22 Jun 1998 13:10:39 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 22 Jun 1998 13:10:46 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L A clarification: The way I did the modules, the user cannot type say \math/phi at all: It would be read as \math /phi, because to the user, the "/" works as normal. So it is possible to have a lower, development level code that works entirely different from what is the case now, but on top of that building development or user levels which work pretty normal, relative to the already existing TeX and LaTeX2e standards. But then with this new, entirely new lowest development level code, it will be possible to add entirely new standards of producing code. Then these new ways will be orthogonal to the old LaTeX2e/TeX standards, so that these do not conflict. One idea one might explore is a TeX environment: It has all the old TeX names defined locally within that environment, but those definitions expand to the global \tex/ definitions. Anyway, this is the kind of picture I have in my mind. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 22-Jun-1998 12:46:20-GMT,3213;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA14999 for ; Mon, 22 Jun 1998 06:46:14 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA12569; Mon, 22 Jun 1998 14:14:10 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 367497 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 22 Jun 1998 14:14:06 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA12549 for ; Mon, 22 Jun 1998 14:14:04 +0200 (MET DST) Received: from [130.237.37.30] (sl80.modempool.kth.se [130.237.37.106]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id OAA13984 for ; Mon, 22 Jun 1998 14:13:55 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 22 Jun 1998 14:14:03 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: l3 function names To: Multiple recipients of list LATEX-L In-Reply-To: <199806211738.TAA04827@relay.urz.uni-heidelberg.de> At 19:36 +0100 98/06/21, Javier Bezos wrote: >Undescore in names >~~~~~~~~~~~~~~~~~~~ >Changing the _ catcode prevents from using explicit subscript characters. >I think there are better candidates: "other" character except =, <, >, >. (sadly), , (ie, comma), - and +. (Namely /, !, ?, : (already used), ;, >@, |...) This is something I worried about at first. But it is possible to build a new development level above the fundamental one where _ works as usual: Then one would either not be able to use command names with _, or use a special command to invoke them or create them. For example, within <...>, _ works as an underscore space, and without as a subscript command. So I think one should not worry about it at this the most fundamental development level, and just use whatever is best for describing the logical structure. >Argument specifiers >~~~~~~~~~~~~~~~~~~~~ .. >\let:NN{\arg1}{\arg2} is particularly amusing because the first N is >\arg1 and the second one is { with an unmatched brace. One variation could be \_::, with a final ":" delimiting the argument type (\let:N: etc). It would be simpler to parse also, if the argument type should be stripped off the command name. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 22-Jun-1998 19:19:18-GMT,3431;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id NAA28759 for ; Mon, 22 Jun 1998 13:19:12 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id UAA06588; Mon, 22 Jun 1998 20:56:30 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 367889 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 22 Jun 1998 20:56:26 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id UAA06570 for ; Mon, 22 Jun 1998 20:56:21 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA188 for ; Mon, 22 Jun 1998 20:56:23 +0200 Received: from [195.122.194.98] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAA75 for ; Mon, 22 Jun 1998 20:59:09 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199806221856.UAA06570@relay.urz.uni-heidelberg.de> Date: Mon, 22 Jun 1998 20:53:58 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Re: l3 function names To: Multiple recipients of list LATEX-L Hans Aberg (>) and myself (>>) wrote >>Undescore in names >>~~~~~~~~~~~~~~~~~~~ >>Changing the _ catcode prevents from using explicit subscript characters. >>I think there are better candidates: "other" character except =, <, >, >>. (sadly), , (ie, comma), - and +. (Namely /, !, ?, : (already used), ;, >>@, |...) > > This is something I worried about at first. But it is possible to build a >new development level above the fundamental one where _ works as usual: [snip] Yet another level? No, please! ;-) Furtunately, the \lccode / \lowercase trick allows to introduce explicit subscripts in all of the known levels, but it's a mess. >>Argument specifiers >>~~~~~~~~~~~~~~~~~~~~ >.. >>\let:NN{\arg1}{\arg2} is particularly amusing because the first N is >>\arg1 and the second one is { with an unmatched brace. > > One variation could be \_::, >with a final ":" delimiting the argument type (\let:N: etc). [snip] That is not the problem. The first argument is an actual macro argument which it's read as usual, removing the braces if present. That expands to \let\arg1= which in turn reads the very first token doesn't matter its categorie, in this case {. This leaves \arg2} unused, where you can see the unmatched brace. A bit tricky but clear when you are using TeX; with \let:NN is not so clear what are you doing -- except when you learn its TeX equivalence! (Admittedly this example is typical of a warped mind :-) ) Regards Javier Bezos 22-Jun-1998 21:38:31-GMT,12084;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id PAA02708 for ; Mon, 22 Jun 1998 15:38:25 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA10340; Mon, 22 Jun 1998 23:10:41 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 367951 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 22 Jun 1998 23:10:38 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA10330 for ; Mon, 22 Jun 1998 23:10:36 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id XAA10572 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 22 Jun 1998 23:10:36 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id WAA00853; Mon, 22 Jun 1998 22:51:13 +0200 References: <199806211738.TAA04827@relay.urz.uni-heidelberg.de> Message-ID: <199806222051.WAA00853@frank.zdv.uni-mainz.de> Date: Mon, 22 Jun 1998 22:51:13 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: l3 function names To: Multiple recipients of list LATEX-L In-Reply-To: <199806211738.TAA04827@relay.urz.uni-heidelberg.de> Javier > I've rewritten some of my own macros -- it's not difficult and... > they work! That and the Frank's message convinced me that the argument > specifiers could be sometimes a good thing. delighted to hear that (we come to the but's later :-) this was my hope that people really give it a try before discussing grander solutions --- after all any solution has to work in practice and that is in a small model office example easy, but usually not so easy in real life. i come to the ideas by Hans et al on more general schemes in a different message (they are not forgotten, but i'm currently have difficulties to find the time for this type of work and typing with a small child on my lap is ...) > But... now for the but's :-) let me first say that i agree that the current state of that language is a mess but not as large a mess as it could be and was in the past. i'm going through your arguments now commenting on each in turn which will give a somewhat incorrect picture as i may tire down near the end but ... > >From l3basics: > "\let:NwN > \let:NN > \let:Nc > \let:cN > \let:cc" > > That looks pretty, but it's misleading because it suggests a symmetry > which > in fact does not exist. \let:NwN expands to itself while the remainder > does > not. \let:NwN is bad and should not be there as it is the primitive which should probably not used at all or if so for certain parts where speed or bootstraping is important clearly marked as the primitve. this is historical as many other things and should be carefully weeded out. > Another example (from "l3expand"): > "\exp_args:Nx > \exp_args:Nc" > The first one cancels kerning, but the second one does not. true and a fact of life (within TeX but hopefully not within etex or some other successor). i guess the bottom line here is really that one would need to state that any command using and "x" arg is non-expandable and has side-effects like killing kerning. this is not different to coding the same manually in your macros. if your macros really need the functionality of "x" then you're sunk as far as kerning etc is concerned. so to me this is more a general problem of TeX not of this interface and only needs proper documenting. > When there are some variants, which is the command with the > actual definition? More important: How do I remember which > variants are available? If I write \def_long:cpn and > then I realize that this command should be global I will > tempted to write \gdef_long:cpn. It does not exist! Personally, > I don't feel like learning the available variants of the commands. > I find preferable a set of basic commands and a set of modifying > commands as explained below. well... :-) i agree that i don't like to learn what commands are available either. so the bottom line should be that all commands are available. your suggestion is that one has a set of basic commands + modifiers. in some sense this is what we provide as well. only that we think as far as modifications in argument handling they should be presented as a single command. our approach was (and is at the moment) to provide a "reasonable" selection (what that is is certainly not yet defined :-) and in addition have a standard mechanism to provide *any* other variant in a unique way so that such variants can be provided by any package that needs them without the danger that some other package overwrite this meaning. as for \gdef_long:cpn (which has a questionable name in the first place): if this does not exist this is simply a bug in the language as this is not a variant but a basic form. > Renaming commands > ~~~~~~~~~~~~~~~~~ > Suppose someone is determined to study the internal latex code with the > new naming scheme. He take the TeXbook and... surprise! The latex code is > absolutely unintelligible. I thing the primitive (and maybe plain) > command names should be preserved with perhaps some minute changes; eg. > \_box instead of \box (you may think of that as "no module"). first of all the basic commands are unchanged availabale all starting \tex_... (with the idea that perhaps \etex_... or \pdftex_... thingies exist one day. second, i fear that this surprise is something a "someone" is in for. if we would have this language (sorry, some much better one but in a similar spirit) one day then it should come with something comparable to the TeXbook but for this language. even now for most people the latex source is not easy (if at all) to deciper if your only source of reference would be the TeX book (assuming you look at latex.ltx and not the 1000 pages of documentation that exist somehow within the latex distribution). > However, I think it's not a good idea to change at all the meaning of > those well established names. If \box has another meaning it could > lead to confusion. only if you think that plain or initex TeX is what you should learn first. In my option this has lead to a lot of problems within the TeX world: precisely that Don never bothered to really distinguish between the basic language of TeX and his private format build on top of it. if the bootstrap of something like L3PL is short and painless you could start from learning the language itself and nothing else. it does clearly keep the primitives that should be enough. in other words i think this is more something for old programmers like you and me being a *short-term* problem but that should'nt guide us. > Argument specifiers > ~~~~~~~~~~~~~~~~~~~~ > >From expl3: > "N Single token (unlike n, the argument must not be sorrounded by > braces.)" > > In fact N stands for: > - a token without braces (\def:Npn) > - a token with (or without) braces (\def_new:Npn) > - a brace (!) (\tokensi\exp_after:NN{\command}) i somewhere have a quote by Leslie Lamport on the quality of Don as an alorithm person compared to his quality as a language designer :-) so yes, quite right. any suggestions? let's interpret that a bit carefully: the language definition as stated above says "N" not allowed to have braces! this is part of the language spec only that the interpreter doesn't check for it. the real problem is that we sort of try to bann some the the really nasty parts of TeX but on the other hand can't really leave them out as on some levels we need them to make things work. again, any suggestions? > \let:NN{\arg1}{\arg2} is particularly amusing because the first N is > \arg1 and the second one is { with an unmatched brace. indeed. but then you could argue, garbage in garbage out, ie as this isn't correct input output might be anything. but i know if i argue this way then you give me \let:NN{\arg2 which should then work but doesn't either. so???? ....drawing board ? > I think three ideas are being mixed: > - How arguments are read: > * A single token without braces > * A single token with or without braces > * A token list (with braces) > - How argument are expanded: > * No expansion > * One level expansion > * Full expansion > - Conversion from a string to a token > (Actually, in my titlesec package I need expand a certain command > exactly three times, no less, no more.) agreed. and probably more is mixed. partly this is historical (for example the letters used) partly this is to try solving what you have and what you have to compile into (unfortunately). how would you distangle this? > If specifiers rules are not very, very, very clear it could be interpreted > in a wide variety of ways by developpers, making the code even more > unintelligible. I've devised some other specifier schemes but > inconsistencies > seems reluctant to disappear (except if a score of specifiers are used). not sure i understand that sentence. did you mean you found it hard to find something that works better without running into different problems? (that's what we found) we would certainly welcome suggestions---this is a working draft and as we say by no means anything that is present as the best and final thoughts on the subject, though it is true that we have put a lot of thoughts into it and thrown away many (worse) attempts. > Now imagine that there is no : notation and we use the l3expand set > of tools. The code will no longer be cluttered with specifiers and in the > few places where something unusual is necessary the code will remain > readable. > For instance (from "expl3"): > \exp_args_Oc \glet \g_reserved_a_tlp \l_current_font_shape_tlp > and > \exp_args_cO \seq_test_in {sym#3} \l_group_seq well, my experience is that having the number of arguments clearly attached to a command makes things much more readable than not having it (ie \seq_test_in:nn compared to \seq_test_in) --- after getting used to it this was a very helpful feature in reading code by others. > Undescore in names > ~~~~~~~~~~~~~~~~~~~ > Changing the _ catcode prevents from using explicit subscript characters. > I think there are better candidates: "other" character except =, <, >, > . (sadly), , (ie, comma), - and +. (Namely /, !, ?, : (already used), ;, > @, |...) we experimented a lot with various chars and the final conclusion was that \foo_bar:nnn or \foo-bar:nnn is about to be the most readable. i think we originally had the hyphen instead of the _ (can't remember why that got changed) we really tried a lot of variations but personally dind't find any of them as useful as what we finally settled on. my personal feeling always was that in some fonts (ie when printed) the _ was not the best choice but that it worked very good on the terminal. as for the _ not being available as an explicit subscript: we don't consider this significant as we think that this should be done this way anyway. the few places where you really need a subscript in a macro you can as well use some slightly more complicated way (in plain TeX this would be \sb) the - is less good in this regard as you need it in units within your code much more often (think that that was one of the reasons why we finally settled for the current letters). thanks for all the comments (hope to get more) good night frank 23-Jun-1998 1:26:44-GMT,2840;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id TAA07397 for ; Mon, 22 Jun 1998 19:26:42 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id DAA15090; Tue, 23 Jun 1998 03:11:09 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 368053 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 23 Jun 1998 03:11:07 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id DAA15080 for ; Tue, 23 Jun 1998 03:11:03 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id LAA12429; Tue, 23 Jun 1998 11:10:55 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199806220631.QAA11602@ricetub.anu.edu.au> X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199806230110.LAA12429@ricetub.anu.edu.au> Date: Tue, 23 Jun 1998 11:10:55 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Hans Aberg writes: > One then becomes independent of that old PlainTeX once for > all, and is free to build up an entirely new consistent logical structure. You mean that one is free to build up an entirely new _inconsistent_ logical structure . . . ! We all know about creeping featurism. Even small subcomponents such as NFSS show how difficult it is to get it right. (And the NFSS is not modular - you can't easily add a new `axis'. (Note - I said `easily'.)) > This will perhaps prepare for a new version of TeX, which can take care of > the new LaTeX3 structures efficiently. Let's hope so. As I said at the beginning, I hope we can progress to a unified e-TeX/Omega platform. > That is, if it can be made practical... So give it a try, I would say. Oh, I have an open mind. I am sticking around for the long haul. I just hope we don't lose others along the way. > (It is probably more difficult to implement the feature at a later stage > than removing it if it does not work.) Agreed 100%. 23-Jun-1998 1:43:21-GMT,4456;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id TAA07650 for ; Mon, 22 Jun 1998 19:43:19 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id DAA15238; Tue, 23 Jun 1998 03:27:52 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 368057 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 23 Jun 1998 03:27:46 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id DAA15228 for ; Tue, 23 Jun 1998 03:27:36 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id LAA12452; Tue, 23 Jun 1998 11:27:29 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 References: <199806220631.QAA11602@ricetub.anu.edu.au> X-Mailer: VM 6.29 under Emacs 19.34.1 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by relay.urz.uni-heidelberg.de id DAA15229 Message-ID: <199806230127.LAA12452@ricetub.anu.edu.au> Date: Tue, 23 Jun 1998 11:27:29 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Hans Aberg writes: > Then one may discuss how long the long names should be: Certainly, one > cannot diminish the number of module separators (like "/" in these > discussions), because they tell something about the logical structure. But > it is possible to let the module named "environment" have names starting > "envir/" by simply letting the command \environment/ expand > \environment/ to \envir/. But then the module > name "envir" cannot be used. Aha, yes, I'm sure this is something else my stomach was thinking about . . . :-) A renaming like this may inadvertently conflict with something else in the system. Perhaps the way around this is to enforce the use of a \newshortcut, which does checking a là \newcommand. > Similarly, the module named "environment" should not be required be in a > file named like that; if one wants to specify a special file or file > position, there should be command doing this. (Such command could be made > to be platform independent between say UNIX, MacOS and MSOS if there is > another command telling which platform it is.) Implementors might take a leaf out of web2c's book - the texfonts.map file. (See the kpathsea documentation.) > So here, they way I see it, the long names (1) are only used really in > order to keep the code straight and avoid code clashes. The user > (preferably also developers) should only need to use short names by various > of simplifying schemes; this is (2) then. But non-local names should expand > to long names. Hmm . . . this is the exact opposite of what I was suggesting. Developers use the long names to make it easier to write; these get translated by docstrip/doc.sty into short names to minimize format size and control sequence usage. Still no word from the Team as to whether this matters for LaTeX3. > When developing the simplifying schemes (2), I do not know how to do it > for the simple reason that TeX is too tricky to program. One can simply not > invent some nice general schemes, then sit down, program it in TeX and hope > it is going to work. Generalities is evidently not Knuth's strong side. I have some ideas about how to implement the suggestions in my earlier e-mail. I don't think it would be too hard; it's primarily a matter of making sure that implementors and package-writers keep to the `rules' (i.e. like always using \newcommand instead of \def). > So (2) must be developed together with (1), so that the two cooperate. Indeed. 23-Jun-1998 1:48:51-GMT,3163;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id TAA07757 for ; Mon, 22 Jun 1998 19:48:50 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id DAA15321; Tue, 23 Jun 1998 03:34:33 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 368063 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 23 Jun 1998 03:34:31 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id DAA15307 for ; Tue, 23 Jun 1998 03:34:27 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id LAA12465; Tue, 23 Jun 1998 11:34:20 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199806230134.LAA12465@ricetub.anu.edu.au> Date: Tue, 23 Jun 1998 11:34:20 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Hans Aberg writes: > So it is possible to have a lower, development level code that works > entirely different from what is the case now, but on top of that building > development or user levels which work pretty normal, relative to the > already existing TeX and LaTeX2e standards. > > But then with this new, entirely new lowest development level code, it > will be possible to add entirely new standards of producing code. Then > these new ways will be orthogonal to the old LaTeX2e/TeX standards, so that > these do not conflict. Well, we already have this to some extent. The @ symbol becomes a normal letter while reading cls and sty files. In the new regime we also make _ and / into letters. That means you get to keep the normal meanings of _ and / while processing documents (highly desirable). > One idea one might explore is a TeX environment: It has all the old TeX > names defined locally within that environment, but those definitions expand > to the global \tex/ definitions. This is akin to 2.09 compatibility mode. With smart editors you don't need it. I am happy to have a keystroke in my editor insert \tex/ for me (and perhaps display it in a different colour?) If you don't want the clutter, you might (in a smart editor like Emacs) hide the long prefixes (either altogether - displaying the result in a different colour, or hide the prefix as `...' - as is done with outlining). 23-Jun-1998 8:51:43-GMT,3388;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id CAA04177 for ; Tue, 23 Jun 1998 02:51:39 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id KAA26095; Tue, 23 Jun 1998 10:27:30 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 368221 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 23 Jun 1998 10:27:27 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id KAA26084 for ; Tue, 23 Jun 1998 10:27:25 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id JAA07311; Tue, 23 Jun 1998 09:33:36 +0100 References: <199806220631.QAA11602@ricetub.anu.edu.au> <199806230127.LAA12452@ricetub.anu.edu.au> Message-ID: <199806230833.JAA07311@nag.co.uk> Date: Tue, 23 Jun 1998 09:33:36 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806230127.LAA12452@ricetub.anu.edu.au> (message from Richard Walker on Tue, 23 Jun 1998 11:27:29 +1000) > Developers use the long names to make it easier to write; these get > translated by docstrip/doc.sty into short names to minimize format > size and control sequence usage. > Still no word from the Team as to whether this matters for LaTeX3. Some of the team are on holiday, or preparing for June 1st, or... However I am sure we are all saving these messages and will reply later. Partly is probably good to let others comment first, and give initial reactions (as you and Hans have been doing) rather than just getting the `official line'. However to comment on your point about format size that you've made a couple of times. The long command names don't really affect format size too much. Of course if you call a command \foo_bar_baz:nnn instead of \foo then the format entry for that command is larger by 12 characters, but that is the only difference in the format. No matter how many times the command is used, the comand tokens are always the same size, just having an index to the table that has the print name of the command sequence. Note that this one important reason why the module names and argument spec is part of the command _name_. If instead you had \foo_bar_baz{nnn} (or any other such syntax) then you have switched from one token to 6 tokens every time you use the command, and your format is suddenly many many times larger. > making sure that implementors and package-writers keep to the `rules' > (i.e. like always using \newcommand instead of \def). Of course one way to do that is if the format has \let\def\@undefined Experience with latex2 shows that may be the only way. David 23-Jun-1998 11:12:27-GMT,2900;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA07380 for ; Tue, 23 Jun 1998 05:12:21 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA06766; Tue, 23 Jun 1998 12:47:57 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 368412 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 23 Jun 1998 12:47:55 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA06723 for ; Tue, 23 Jun 1998 12:47:33 +0200 (MET DST) Received: from [130.237.37.54] (sl34.modempool.kth.se [130.237.37.54]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA14149 for ; Tue, 23 Jun 1998 12:47:26 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806220631.QAA11602@ricetub.anu.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Tue, 23 Jun 1998 11:36:32 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806230110.LAA12429@ricetub.anu.edu.au> At 11:10 +1000 98/06/23, Richard Walker wrote: >Hans Aberg writes: > > One then becomes independent of that old PlainTeX once for > > all, and is free to build up an entirely new consistent logical structure. > >You mean that one is free to build up an entirely new _inconsistent_ >logical structure . . . ! We all know about creeping featurism. Even >small subcomponents such as NFSS show how difficult it is to get it >right. (And the NFSS is not modular - you can't easily add a new >`axis'. Well, at least one is freed of not being forced to do it in this or that way just because TeX or LaTeX2e did it. So that structure can be allowed to be inconsistent with TeX and LaTeX2e, but should be strengthened to be consistent within itself. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 23-Jun-1998 11:17:04-GMT,3606;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA07506 for ; Tue, 23 Jun 1998 05:17:01 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA06787; Tue, 23 Jun 1998 12:48:05 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 368416 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 23 Jun 1998 12:48:02 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA06753 for ; Tue, 23 Jun 1998 12:47:51 +0200 (MET DST) Received: from [130.237.37.54] (sl34.modempool.kth.se [130.237.37.54]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA14181 for ; Tue, 23 Jun 1998 12:47:35 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Tue, 23 Jun 1998 11:55:37 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806230134.LAA12465@ricetub.anu.edu.au> At 11:34 +1000 98/06/23, Richard Walker wrote: >Hans Aberg writes: > > One idea one might explore is a TeX environment: It has all the old TeX > > names defined locally within that environment, but those definitions expand > > to the global \tex/ definitions. > >This is akin to 2.09 compatibility mode. With smart editors you don't >need it. I am happy to have a keystroke in my editor insert \tex/ for >me (and perhaps display it in a different colour?) If you don't want >the clutter, you might (in a smart editor like Emacs) hide the long >prefixes (either altogether - displaying the result in a different >colour, or hide the prefix as `...' - as is done with outlining). This is a good point (which I already mentioned): It is in fact not very difficult to insert those extensions \tex/ by hand with a good editor. But this concerns new code. My idea is though different from a compatibility mode, because the idea is that one should be able to write {say) \module{code}{tex} ... % TeX definitions \module{endcode}{tex} and then the TeX definitions expand to names \tex/. So this TeX code can then be used as module code, used together with other modules without code clashing. In a compatibility mode, one is stuck with TeX for the rest of the compile. Here the idea is that after \module{endcode}{tex}, the TeX names \hbox etc do not any longer exist; all definitions are of the form \tex/hbox, etc. I am not sure if it can be done like this and work correctly, but that is what the idea is. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 23-Jun-1998 11:19:17-GMT,3499;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA07555 for ; Tue, 23 Jun 1998 05:19:15 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA06743; Tue, 23 Jun 1998 12:47:38 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 368408 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 23 Jun 1998 12:47:35 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA06724 for ; Tue, 23 Jun 1998 12:47:33 +0200 (MET DST) Received: from [130.237.37.54] (sl34.modempool.kth.se [130.237.37.54]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA14164 for ; Tue, 23 Jun 1998 12:47:32 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806220631.QAA11602@ricetub.anu.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Tue, 23 Jun 1998 11:43:30 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806230127.LAA12452@ricetub.anu.edu.au> At 11:27 +1000 98/06/23, Richard Walker wrote: >Hans Aberg writes: > > So here, they way I see it, the long names (1) are only used really in > > order to keep the code straight and avoid code clashes. The user > > (preferably also developers) should only need to use short names by various > > of simplifying schemes; this is (2) then. But non-local names should expand > > to long names. > >Hmm . . . this is the exact opposite of what I was suggesting. >Developers use the long names to make it easier to write; these get >translated by docstrip/doc.sty into short names to minimize format >size and control sequence usage. Still no word from the Team as to >whether this matters for LaTeX3. This is an idea I did not think of. But I think we are speaking about different things here: By "long names", I thought of names with a sequence of module separators \foo/bar/.../blah, and short names abbreviations used locally by the user working in a local context which does not have those mpodule separators, or not as many of them. But I am not sure what translation procedure you think of: The reason of using a long name like \environment/begin instead of say \envir/begin would be to ensure this name does not clash with other names. If one wants to shorten those names, it wiuld be better to define a module named `envir' right away. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 23-Jun-1998 12:13:49-GMT,2724;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA08913 for ; Tue, 23 Jun 1998 06:13:43 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA11059; Tue, 23 Jun 1998 13:41:52 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 368538 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 23 Jun 1998 13:41:50 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA11046 for ; Tue, 23 Jun 1998 13:41:46 +0200 (MET DST) Received: from [130.237.37.54] (sl88.modempool.kth.se [130.237.37.114]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id NAA18916 for ; Tue, 23 Jun 1998 13:41:24 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806230127.LAA12452@ricetub.anu.edu.au> (message from Richard Walker on Tue, 23 Jun 1998 11:27:29 +1000) <199806220631.QAA11602@ricetub.anu.edu.au> <199806230127.LAA12452@ricetub.anu.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Tue, 23 Jun 1998 13:40:37 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806230833.JAA07311@nag.co.uk> At 09:33 +0100 98/06/23, David Carlisle wrote: >... The long command names don't really affect format size too >much. ... No matter how many times >the command is used, the comand tokens are always the same size, just >having an index to the table that has the print name of the command >sequence. So one should then probably just use the long names then for the purpose of building a logical structure, and have short names for the user. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 24-Jun-1998 14:48:50-GMT,1720;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA19959 for ; Wed, 24 Jun 1998 08:48:38 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id QAA04315; Wed, 24 Jun 1998 16:19:25 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 370047 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 24 Jun 1998 16:19:22 +0200 Received: from vms.rhbnc.ac.uk (alpha1.rhbnc.ac.uk [134.219.201.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id QAA04297 for ; Wed, 24 Jun 1998 16:19:19 +0200 (MET DST) Message-ID: <980624151914.48d9@vms.rhbnc.ac.uk> Date: Wed, 24 Jun 1998 15:19:14 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Philip Taylor (RHBNC)" Subject: Re: Modules To: Multiple recipients of list LATEX-L >> Of course one way to do that is if the format has \let\def\@undefined How can that work? Assuming that (e.g.) "\newcommand" is macro -> {... \def ...}, then without a LaTeX equivalent of PostScript's "bind", you still need access to "\def"; and if "\newcommand" is macro -> {... \someconcealedversionofdef ...}, then the user can use "\someconcealedversionofdef" :-( ** Phil.. 25-Jun-1998 3:20:20-GMT,2136;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id VAA08870 for ; Wed, 24 Jun 1998 21:20:19 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id EAA04781; Thu, 25 Jun 1998 04:53:15 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 370395 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 25 Jun 1998 04:53:13 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id EAA04770 for ; Thu, 25 Jun 1998 04:53:06 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id MAA13499; Thu, 25 Jun 1998 12:53:00 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <980624151914.48d9@vms.rhbnc.ac.uk> X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199806250253.MAA13499@ricetub.anu.edu.au> Date: Thu, 25 Jun 1998 12:53:00 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <980624151914.48d9@vms.rhbnc.ac.uk> Philip Taylor (RHBNC) writes: > How can that work? Assuming that (e.g.) "\newcommand" is macro -> > {... \def ...}, then without a LaTeX equivalent of PostScript's > "bind", you still need access to "\def"; and if "\newcommand" is > macro -> {... \someconcealedversionofdef ...}, then the user can > use "\someconcealedversionofdef" :-( Stick an @ in the name of the renamed \def. That's enough to stop most people. 25-Jun-1998 14:16:39-GMT,2496;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA21026 for ; Thu, 25 Jun 1998 08:16:38 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA11429; Thu, 25 Jun 1998 15:47:50 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 371035 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 25 Jun 1998 15:47:48 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA11419 for ; Thu, 25 Jun 1998 15:47:46 +0200 (MET DST) Received: from [130.237.37.112] (sl86.modempool.kth.se [130.237.37.112]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id PAA08990 for ; Thu, 25 Jun 1998 15:47:41 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se (Unverified) References: <980624151914.48d9@vms.rhbnc.ac.uk> <980624151914.48d9@vms.rhbnc.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Thu, 25 Jun 1998 15:37:39 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806250253.MAA13499@ricetub.anu.edu.au> >Philip Taylor writes: > > How can that work? Assuming that (e.g.) "\newcommand" is macro -> > > {... \def ...}, then without a LaTeX equivalent of PostScript's > > "bind", you still need access to "\def"; and if "\newcommand" is > > macro -> {... \someconcealedversionofdef ...}, then the user can > > use "\someconcealedversionofdef" :-( I guess there will be a command called \tex_def or \tex/def or something, which one can use. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 25-Jun-1998 14:17:27-GMT,2084;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA21032 for ; Thu, 25 Jun 1998 08:17:21 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA12041; Thu, 25 Jun 1998 15:58:12 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 371063 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 25 Jun 1998 15:58:10 +0200 Received: from vms.rhbnc.ac.uk (alpha1.rhbnc.ac.uk [134.219.201.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA12031 for ; Thu, 25 Jun 1998 15:58:09 +0200 (MET DST) Message-ID: <980625145808.48d9@vms.rhbnc.ac.uk> Date: Thu, 25 Jun 1998 14:58:08 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Philip Taylor (RHBNC)" Subject: Re: Modules To: Multiple recipients of list LATEX-L >> I guess there will be a command called \tex_def or \tex/def or something, >> which one can use. Indeed, that was my very point : David was suggesting that \def could be made inaccessible by the format; I argued that all the while TeX lacks the equivalent of PostScript's "bind", primitives which are used by maos defined in the format source and which must be accessible to the user code can never be made totally inaccessible. You can "hide" them but you can't remove them, so why bother even to hide them if an astute programmer can work his way around the hiding mechanism? ** Phil. (the earlier proposal to use commercial-at is just one way of hiding such things, neithe better nor worse (in this context) than any other mechanism). 25-Jun-1998 16:41:58-GMT,3140;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA24816 for ; Thu, 25 Jun 1998 10:41:44 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA21549; Thu, 25 Jun 1998 18:20:33 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 371209 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 25 Jun 1998 18:20:30 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA21538 for ; Thu, 25 Jun 1998 18:20:28 +0200 (MET DST) Received: from [130.237.37.112] (sl36.modempool.kth.se [130.237.37.56]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id SAA22307 for ; Thu, 25 Jun 1998 18:20:26 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Thu, 25 Jun 1998 18:19:44 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <980625145808.48d9@vms.rhbnc.ac.uk> At 14:58 +0100 98/06/25, Philip Taylor (RHBNC) wrote: >>> I guess there will be a command called \tex_def or \tex/def or something, >>> which one can use. > >Indeed, that was my very point : David was suggesting that \def could >be made inaccessible by the format; I argued that all the while TeX lacks >the equivalent of PostScript's "bind", primitives which are used by >maos defined in the format source and which must be accessible to >the user code can never be made totally inaccessible. You can "hide" >them but you can't remove them, so why bother even to hide them if an astute >programmer can work his way around the hiding mechanism? I think the idea should be to help indicating objects proper use. >(the earlier proposal to use commercial-at is just one way of hiding such > things, neither better nor worse (in this context) than any other mechanism). For use with modules, my suggestion is that @ should be used for indicating that a command is "private" or "protected", that is not for external use of that module. So the command should then be named \tex/def and not \tex/@def, as some other module is going to use it, like other modules defining \/new. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 26-Jun-1998 17:06:31-GMT,3496;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id LAA25600 for ; Fri, 26 Jun 1998 11:06:25 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA16778; Fri, 26 Jun 1998 18:41:05 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 372037 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 26 Jun 1998 18:41:03 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA16768 for ; Fri, 26 Jun 1998 18:41:01 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id SAA09671 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 26 Jun 1998 18:41:02 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id SAA14583; Fri, 26 Jun 1998 18:15:51 +0200 References: <980624151914.48d9@vms.rhbnc.ac.uk> Message-ID: <199806261615.SAA14583@frank.zdv.uni-mainz.de> Date: Fri, 26 Jun 1998 18:15:51 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <980624151914.48d9@vms.rhbnc.ac.uk> Philip Taylor writes: > >> Of course one way to do that is if the format has \let\def\@undefined > > How can that work? Assuming that (e.g.) "\newcommand" is > macro -> {... \def ...}, then without a LaTeX equivalent of PostScript's "bind", > you still need access to "\def"; and if "\newcommand" is > macro -> {... \someconcealedversionofdef ...}, then the user can > use "\someconcealedversionofdef" :-( Phil, this is not the question. we all agree that there is no way to hide a primitive from a use of a clever programmer if you want use it yourself. of course if you don't you can really delete it :-) point is that if you try to provide a programming style but keep alternate names around then you will get a mess of code using both or either or ... so it works in the sense that people don't accidentially mix stuff or use dangerous commands --- they do it only if they have enough "criminal" energy. simple example from current latex: if you use \hbox instead of \mbox then a user typically runs into one of two problems at some point: missing \leavevmode or strange effects if color is used (as \hbox in constrast to \mbox is not color-save) if Leslie had moved all such primitives that where never intended to be used on document level to \@@... as he did with those he had to redefine many user problems (solved and resolved over and over again on ctt) would have never happened. of course that would'nt have hindered their use in package files or even in the document via \makeatletter but it would have produced a clear distinction between user-level and programmer level. frank 27-Jun-1998 13:18:44-GMT,9020;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA18611 for ; Sat, 27 Jun 1998 07:18:43 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA09668; Sat, 27 Jun 1998 14:39:27 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 372401 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 27 Jun 1998 14:39:23 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA09658 for ; Sat, 27 Jun 1998 14:39:21 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA162 for ; Sat, 27 Jun 1998 14:39:26 +0200 Received: from [195.122.197.214] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAA218 for ; Sat, 27 Jun 1998 14:42:26 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199806271239.OAA09658@relay.urz.uni-heidelberg.de> Date: Sat, 27 Jun 1998 14:36:57 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Re: l3 function names To: Multiple recipients of list LATEX-L Hello The Frank's letter clarifies me many things. >and typing with a >small child on my lap is ...) I presume a lot harder than with a cat :-) >first of all the basic commands are unchanged availabale all starting >\tex_... (with the idea that perhaps \etex_... or \pdftex_... thingies >exist one day. In this case using \tex_ makes sense, but I presume that tex, etex, pdftex... names will not overlap. For this reason I think removing the "tex" is not a serious problem and this way we avoid the cluttering with "tex"s. There is also the :D convention which suggest that many TeX parameters are functions; eg \uchyph or \parindent. If this notation is to be used in all or none of primitives, I think is preferable in none, because they will not follow neither the function nor the parameter syntax, ie they stand apart. >if the bootstrap of something like L3PL is short and painless you >could start from learning the language itself and nothing else. it >does clearly keep the primitives that should be enough. in other words >i think this is more something for old programmers like you and me >being a *short-term* problem but that should'nt guide us. I'm not convinced. I think that that will make LaTeX a closed world without exchanging ideas and macros with other TeX formats. I'm thinking of EDMAC, ArabTeX or MusicTeX for instance. > > \let:NN{\arg1}{\arg2} is particularly amusing because the first N is > > \arg1 and the second one is { with an unmatched brace. > >indeed. but then you could argue, garbage in garbage out, ie as this >isn't correct input output might be anything. but i know if i argue >this way then you give me > >\let:NN{\arg2 > >which should then work but doesn't either. so???? Of course it does not work because { is not active. The point here is that the opening brace sometimes is ignored, sometimes is not; the closing brace sometimes will be read, sometimes will give an error. > > If specifiers rules are not very, very, very clear it could be interpreted > > in a wide variety of ways by developpers, making the code even more > > unintelligible. I've devised some other specifier schemes but > > inconsistencies > > seems reluctant to disappear (except if a score of specifiers are used). > >not sure i understand that sentence. did you mean you found it hard to >find something that works better without running into different >problems? (that's what we found) Yes, you are right. (English is not my strong point and perhaps I didn't explain myself correctly.) I also mean that if someone interprets the specifiers in a wrong way he could give a misleading name. For example, n instead of N (in fact I've made this mistake when writing some macros. I realized my error when trying to devise other specifier schemes) or argumentless function instead of parameter. >we would certainly welcome suggestions---this is a working draft and >as we say by no means anything that is present as the best and final >thoughts on the subject, though it is true that we have put a lot of >thoughts into it and thrown away many (worse) attempts. Obviously, I cannot try for a complete spec scheme in just a few days, but for example this is the best idea I had (so far and by far) spec arg forms meaning ~~~~ ~~~~~~~~~ ~~~~~~~~ u \cmd unexpanded/unbraced token n \cmd {\cmd} token name c \cmd {\cmd1\cmd2...} container; the contents will be passed as argument [\expandafter{\cmd}] l \cmd {\cmd1\cmd2...} token list x \cmd {\cmd1\cmd2...} expanded token list n and c have the "string" variants N [\expandafter{\csname str\endcsname}] and C [\expandafter\expandafter\expandafter{\csname str\endcsname}]. Perhaps also: S string containter in string form [\expandafter\expandafter\expandafter {\expandafter\csname\csname str\endcsname\endcsname}] An hypothetical no string form (s) is equivalent to N; there is also p, t, f, w. I was looking for some symmetry in the meaning of uppercase letters; here uppercase means "string form". So we have for instance \let:uwu \let:nu \let:Nu \let:nN \let:NN \exp_after:uu \def:upl \def:upx \def:Npl \def:Npx. As you can see nothing new, except the letters used and the u spec. A further spec is to be used with \exp_args: d \cmd {\cmd} dormant; usually n but it will not be expanded in protected expansions. Its definition could be something like: \def\:::#1{\exp_not:N#1} \def\::d#1\:::#2#3{#1\:::{#2\exp_not:N#3}} with the corresponding tests to see if the protection is enabled. The string variant (D) can lead to confusion. For example \exp_args:nd\def:npl\cmd{...} is right, but \exp_args:nD\def:Npl{str}{...} expands to \def:Npl\str, which is wrong. If the modifiers + basics scheme is used this problem does not exist: \exp_args_d\def\cmd and \exp_args_D\def{str}. These ideas should be thought out if they seem interesting. Actually, the problem is always present if diferent variants of \exp_args and command specs are mixed: \exp_args:Noox\cmd:nNxn... What? :-) ) The answer of exercise 9.8 from the TeXbook is to the point. Why \'#1 and not simply \'? "An argument makes the use of \' more consistent with the use of other accents like \d." This idea may be applied to the \def: functions. So \def:Npn #1{\tex_def:D #1} instead of \let:NN\def:Npn\tex_def:D. In the notation above that gives \def:npl \def:npx \def:Npl \def:Npx. >well, my experience is that having the number of arguments clearly >attached to a command makes things much more readable than not having >it (ie \seq_test_in:nn compared to \seq_test_in) --- after getting >used to it this was a very helpful feature in reading code by others. If you want to understand a function you must read its definition, and then you see its arguments, making the specs a bit redundant. And when I see things like \titlesec_sect:nnnnnnnn I am horrified. Up to now I have not get used to it. Perhaps in a few years... ;-) >as for the _ not being available as an explicit subscript: > >we don't consider this significant as we think that this should be >done this way anyway. the few places where you really need a subscript >in a macro you can as well use some slightly more complicated way (in >plain TeX this would be \sb) \sb is not an explicit subscript char. I cannot say, for instance \def:Npn \get_token:n #1{ \if:w \str_eq_p:nn {#1} {\sb} etc to test if the token is _. I presume that the \lccode / \lowercase trick will be necessary. (Or thinking in terms of the new syntax (expandable version): \if:w \exp_args:No \str_eq_p:nn {\sb_char} {#1}... where \sb_char contains an actual subscript char. But I find clearer \if \exp_args_o \str_eq_p {\sb_char} {#1}...) (Actually, \str_eq_p is great. I've had using for years the \if\test device in my own TeX macros. I think it's one of the most interesting aditions, besides the l3expand module and the fint type.) >thanks for all the comments (hope to get more) You are welcome... and l3 as well (no doubt) Ragards Javier 27-Jun-1998 13:18:44-GMT,9020;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA18611 for ; Sat, 27 Jun 1998 07:18:43 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA09668; Sat, 27 Jun 1998 14:39:27 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 372401 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 27 Jun 1998 14:39:23 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA09658 for ; Sat, 27 Jun 1998 14:39:21 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA162 for ; Sat, 27 Jun 1998 14:39:26 +0200 Received: from [195.122.197.214] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAA218 for ; Sat, 27 Jun 1998 14:42:26 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199806271239.OAA09658@relay.urz.uni-heidelberg.de> Date: Sat, 27 Jun 1998 14:36:57 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Re: l3 function names To: Multiple recipients of list LATEX-L Hello The Frank's letter clarifies me many things. >and typing with a >small child on my lap is ...) I presume a lot harder than with a cat :-) >first of all the basic commands are unchanged availabale all starting >\tex_... (with the idea that perhaps \etex_... or \pdftex_... thingies >exist one day. In this case using \tex_ makes sense, but I presume that tex, etex, pdftex... names will not overlap. For this reason I think removing the "tex" is not a serious problem and this way we avoid the cluttering with "tex"s. There is also the :D convention which suggest that many TeX parameters are functions; eg \uchyph or \parindent. If this notation is to be used in all or none of primitives, I think is preferable in none, because they will not follow neither the function nor the parameter syntax, ie they stand apart. >if the bootstrap of something like L3PL is short and painless you >could start from learning the language itself and nothing else. it >does clearly keep the primitives that should be enough. in other words >i think this is more something for old programmers like you and me >being a *short-term* problem but that should'nt guide us. I'm not convinced. I think that that will make LaTeX a closed world without exchanging ideas and macros with other TeX formats. I'm thinking of EDMAC, ArabTeX or MusicTeX for instance. > > \let:NN{\arg1}{\arg2} is particularly amusing because the first N is > > \arg1 and the second one is { with an unmatched brace. > >indeed. but then you could argue, garbage in garbage out, ie as this >isn't correct input output might be anything. but i know if i argue >this way then you give me > >\let:NN{\arg2 > >which should then work but doesn't either. so???? Of course it does not work because { is not active. The point here is that the opening brace sometimes is ignored, sometimes is not; the closing brace sometimes will be read, sometimes will give an error. > > If specifiers rules are not very, very, very clear it could be interpreted > > in a wide variety of ways by developpers, making the code even more > > unintelligible. I've devised some other specifier schemes but > > inconsistencies > > seems reluctant to disappear (except if a score of specifiers are used). > >not sure i understand that sentence. did you mean you found it hard to >find something that works better without running into different >problems? (that's what we found) Yes, you are right. (English is not my strong point and perhaps I didn't explain myself correctly.) I also mean that if someone interprets the specifiers in a wrong way he could give a misleading name. For example, n instead of N (in fact I've made this mistake when writing some macros. I realized my error when trying to devise other specifier schemes) or argumentless function instead of parameter. >we would certainly welcome suggestions---this is a working draft and >as we say by no means anything that is present as the best and final >thoughts on the subject, though it is true that we have put a lot of >thoughts into it and thrown away many (worse) attempts. Obviously, I cannot try for a complete spec scheme in just a few days, but for example this is the best idea I had (so far and by far) spec arg forms meaning ~~~~ ~~~~~~~~~ ~~~~~~~~ u \cmd unexpanded/unbraced token n \cmd {\cmd} token name c \cmd {\cmd1\cmd2...} container; the contents will be passed as argument [\expandafter{\cmd}] l \cmd {\cmd1\cmd2...} token list x \cmd {\cmd1\cmd2...} expanded token list n and c have the "string" variants N [\expandafter{\csname str\endcsname}] and C [\expandafter\expandafter\expandafter{\csname str\endcsname}]. Perhaps also: S string containter in string form [\expandafter\expandafter\expandafter {\expandafter\csname\csname str\endcsname\endcsname}] An hypothetical no string form (s) is equivalent to N; there is also p, t, f, w. I was looking for some symmetry in the meaning of uppercase letters; here uppercase means "string form". So we have for instance \let:uwu \let:nu \let:Nu \let:nN \let:NN \exp_after:uu \def:upl \def:upx \def:Npl \def:Npx. As you can see nothing new, except the letters used and the u spec. A further spec is to be used with \exp_args: d \cmd {\cmd} dormant; usually n but it will not be expanded in protected expansions. Its definition could be something like: \def\:::#1{\exp_not:N#1} \def\::d#1\:::#2#3{#1\:::{#2\exp_not:N#3}} with the corresponding tests to see if the protection is enabled. The string variant (D) can lead to confusion. For example \exp_args:nd\def:npl\cmd{...} is right, but \exp_args:nD\def:Npl{str}{...} expands to \def:Npl\str, which is wrong. If the modifiers + basics scheme is used this problem does not exist: \exp_args_d\def\cmd and \exp_args_D\def{str}. These ideas should be thought out if they seem interesting. Actually, the problem is always present if diferent variants of \exp_args and command specs are mixed: \exp_args:Noox\cmd:nNxn... What? :-) ) The answer of exercise 9.8 from the TeXbook is to the point. Why \'#1 and not simply \'? "An argument makes the use of \' more consistent with the use of other accents like \d." This idea may be applied to the \def: functions. So \def:Npn #1{\tex_def:D #1} instead of \let:NN\def:Npn\tex_def:D. In the notation above that gives \def:npl \def:npx \def:Npl \def:Npx. >well, my experience is that having the number of arguments clearly >attached to a command makes things much more readable than not having >it (ie \seq_test_in:nn compared to \seq_test_in) --- after getting >used to it this was a very helpful feature in reading code by others. If you want to understand a function you must read its definition, and then you see its arguments, making the specs a bit redundant. And when I see things like \titlesec_sect:nnnnnnnn I am horrified. Up to now I have not get used to it. Perhaps in a few years... ;-) >as for the _ not being available as an explicit subscript: > >we don't consider this significant as we think that this should be >done this way anyway. the few places where you really need a subscript >in a macro you can as well use some slightly more complicated way (in >plain TeX this would be \sb) \sb is not an explicit subscript char. I cannot say, for instance \def:Npn \get_token:n #1{ \if:w \str_eq_p:nn {#1} {\sb} etc to test if the token is _. I presume that the \lccode / \lowercase trick will be necessary. (Or thinking in terms of the new syntax (expandable version): \if:w \exp_args:No \str_eq_p:nn {\sb_char} {#1}... where \sb_char contains an actual subscript char. But I find clearer \if \exp_args_o \str_eq_p {\sb_char} {#1}...) (Actually, \str_eq_p is great. I've had using for years the \if\test device in my own TeX macros. I think it's one of the most interesting aditions, besides the l3expand module and the fint type.) >thanks for all the comments (hope to get more) You are welcome... and l3 as well (no doubt) Ragards Javier 27-Jun-1998 19:26:44-GMT,7535;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id NAA24681 for ; Sat, 27 Jun 1998 13:26:43 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id VAA17638; Sat, 27 Jun 1998 21:06:26 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 372507 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 27 Jun 1998 21:06:24 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id VAA17628 for ; Sat, 27 Jun 1998 21:06:23 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id VAA31900 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sat, 27 Jun 1998 21:06:23 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id UAA29351; Sat, 27 Jun 1998 20:53:46 +0200 References: <199806220631.QAA11602@ricetub.anu.edu.au> <199806230127.LAA12452@ricetub.anu.edu.au> Message-ID: <199806271853.UAA29351@frank.zdv.uni-mainz.de> Date: Sat, 27 Jun 1998 20:53:46 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806230127.LAA12452@ricetub.anu.edu.au> I think Richard Walker asked whether or not the Team thinks that concepts of modules are relevant for LaTeX3. well here are my own thoughts, Team or no Team for the moment. i think that looking carefully at the idea of modules for structuring code in some way is relevant for latex3 but i go with Chris who said: > Hans' very interesting ideas are for modules to handle the name-clash > problem at the document-level. > > This is certainly something that needs attention but is probably > independent of L3PL modularization, or maybe there is some overlap? what he points out here with just two sentences that he thinks that there are different levels of modularizations and essentially that a modularization as suggested can't be used for low-level programming and i fully agree with him here. in other words as nice and sensible the modularizations as suggested by Hans or in a different fashion by Volkan are (or may be) they can probably be successfully applied in a layer that is high above the actual programming action, eg perhaps on a document level (as suggested by Chris) or perhaps at one level deeper in a sort of high-level design language that is used to produce certain effects from low-level modules which offer certain functions via such a naming concept. the problem then however is that this is most likely very unsatisfactory if the same concepts can't be applied deeper down. and my claim is they can't (at least not reasonably) why? a) because TeX in its current incarnations (ie TeX3, eTeX, Omega) is a token based interpreter which works only at an acceptable speed if its internal coding is based on tokens which can directly be looked up in a hash table either resulting in a primitive action or into a macro which consist of tokens. the recursion here has to be coming to an end pretty fast and in current TeX code it reasonably does but there are a number of recursions. if you change that to implement a manual lookup functionality on all levels then you will find yourself slowing down the system by i would guess a factor of 50 or more --- and even if these days we are having bigger machines than the one i had when i first saw LaTeX this is still far outside of what is usable. b) a large amount of the language lives due to expansion facilities. this is at the heart of the language like it or not and it mainly works by altering the order of expansions on the token level. now if you get rid of the token level and replace it my a manual lookup mechanism then a large part of the language becomes unusable, and there is nothing you can replace it with. if on the other hand you make the lookup functionality usable with the expansion paradigm then you have to slow down the process even further. if you don't believe me i suggest you try the following medium sized experiment: take the plain TeX format ie plain.tex and replace all tokens \ within all macro definitions by, say, !name> and at the very beginning define something like \catcode`\!=\active \def!#1>{\csname#1\endcsname} which would be the simplest case of name lookup. of course this is a bit (or even more than a bit) of handwork to get this going, beside going through all the code you would need to carefully check all the places where the code picks up arguments as single tokens which would now need {...} but it might be worthwhile to try it for two reasons: a) to compare how fast it compiles the TeX book or some comparable document compared to compiling it with the original plain format and b) how big the format gets compared to the original one. b) will be drastic: a current LaTeX format (without any packages loaded) uses about 51088 words of memory before begin document; if the average word length in commands is 10 (which is far too low with a consequent implemented module concept) then this gets basically blown to 500000 which is twice the amount of main mem that i have available on this machine for everything. i just looked: when we compiled the Companion the log file showed 208957 words of memory out of 262141 try to imagine to what size this would grow. so i fear this is impossible. perhaps i'm wrong and if somebody proves me so, so much the better, but it must me something more than just the sketch of an generic idea that makes me believe that this can work with TeX. for this reason our approach for LP3 was to provide a token based language with a module concept being based on conventions rather than absolute force. In other words \module_prog:nnn is a convention and nobody is forced to obey it; we don't think we can enforce that (one could make the above a variable and use it as such or define a command with 1 argument that has this name). but we also think we don't really need to enforce this, assuming that such (or rather a similar) convention is finally adopted. experience with TeX code has shown that people do obey conventions (if they get any:-): look at typical latex code it looks like latex code, unreadable and all, with a few twists depending on who wrote it (ie some people have their special conventions). of course you could surround such a language with a programming front-end that would enforce any concept and help you along be it some emacs more or some fancy gui support. well, so much for my view on this. hope this is not disappointing it is not meant to be but i think that my view is backed from years of programming experience within TeX and in real programming languages frank 28-Jun-1998 11:25:56-GMT,4112;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA10927 for ; Sun, 28 Jun 1998 05:25:54 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA00518; Sun, 28 Jun 1998 12:39:49 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 372827 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 28 Jun 1998 12:39:46 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA00507 for ; Sun, 28 Jun 1998 12:39:45 +0200 (MET DST) Received: from [130.237.37.112] (sl86.modempool.kth.se [130.237.37.112]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA18258 for ; Sun, 28 Jun 1998 12:39:38 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se (Unverified) Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Sun, 28 Jun 1998 12:38:45 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: l3 function names (Really: Modules) To: Multiple recipients of list LATEX-L In-Reply-To: <199806271239.OAA09658@relay.urz.uni-heidelberg.de> Frank Mittelbach wrote: >first of all the basic commands are unchanged availabale all starting >\tex_... (with the idea that perhaps \etex_... or \pdftex_... thingies >exist one day. Javier Bezos wrote: >In this case using \tex_ makes sense, but I presume that tex, etex, >pdftex... names will not overlap. For this reason I think removing >the "tex" is not a serious problem and this way we avoid the >cluttering with "tex"s. The idea with modules is not only to ensure that names do not clash, but to communicate information about the uses of those names. For example, if we have two modules "real" and "complex", then several names overlap, like +, * etc, but some do not, like max, min, Re, Im. It is possible to let the context (in general) sort out if say "+" refers to the real or complex numbers, but even if we were able to do that, it would be preferable to keep the real and complex names in different modules. So names tex, etex, pdftex could be put in the same module, but if one wants to communicate the information that say the tex module only deals with basic primitives and nothing else, it should be left uncluttered with other names. For the names etex, pdftex one could experiment with different ideas: One would be let them be new modules named etex, pdftex, another would be to view them as submodule of \tex, in which case they would get the names tex/e and tex/pdf. In the latter case, one could also think of a module called pdf: Then the tex/pdf module would only deal with basic tex commands that the pdf module uses for building more advance pdf features. Using different module names like this will in fact help developers, if done correctly: For example, two different pdf packages may use the same low level tex/pdf commands. Then the developer of a new pdf package will know that it is not necessary to worry about the pdf module. (This is just an example of ideas, which does not have anything with developing pdftex itself.) So one can use nodules to split the code into chunks that enables the developer to focus only on the parts needed for the task at hand. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 28-Jun-1998 12:07:23-GMT,4949;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA11563 for ; Sun, 28 Jun 1998 06:07:22 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA01212; Sun, 28 Jun 1998 13:21:05 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 372855 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 28 Jun 1998 13:21:03 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA01202 for ; Sun, 28 Jun 1998 13:20:59 +0200 (MET DST) Received: from [130.237.37.112] (sl99.modempool.kth.se [130.237.37.125]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id NAA20608 for ; Sun, 28 Jun 1998 13:20:55 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806230127.LAA12452@ricetub.anu.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Sun, 28 Jun 1998 13:20:13 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806271853.UAA29351@frank.zdv.uni-mainz.de> At 20:53 +0200 98/06/27, Frank Mittelbach wrote: >a) because TeX in its current incarnations (ie TeX3, eTeX, Omega) is a >token based interpreter which works only at an acceptable speed if its >internal coding is based on tokens which can directly be looked up in >a hash table either resulting in a primitive action or into a macro >which consist of tokens. the recursion here has to be coming to an end >pretty fast and in current TeX code it reasonably does but there are a >number of recursions. if you change that to implement a manual lookup >functionality on all levels then you will find yourself slowing down >the system by i would guess a factor of 50 or more --- and even if >these days we are having bigger machines than the one i had when i >first saw LaTeX this is still far outside of what is usable. I just want to point out that the way I worded the modules, it does not exclude Frank's idea of a low level naming convention: A module would itself define how it uses its names. So a module like \tex could define that all its names should be interpreted directly, that is, \tex/foo is executed directly. Further, modules with long names could be allowed to use short names for their commands. For example, the module "environment" could decide to use names \envir/foo, or \@env/foo or something. One would then add a high-level command \environment/ which knows how to expand to the short names. Such a high level command is useful for those who do not use the names much, because it is easier to remember. One can then go in and optimize, using the short names directly. >b) will be drastic: a current LaTeX format (without any packages >loaded) uses about 51088 words of memory before begin document; if the >average word length in commands is 10 (which is far too low with a >consequent implemented module concept) then this gets basically blown >to 500000 which is twice the amount of main mem that i have available >on this machine for everything. i just looked: when we compiled the >Companion the log file showed 208957 words of memory out of 262141 >try to imagine to what size this would grow. I worried about this: What kind of old computer is Frank using? I have 32MB RAM on my, and with the computers sold today, I do not think that is considered to be much. Further, the figure doubles ever 18 months or so (and so does the speed) or even faster. The average lifetime of a computer is a few years. So by the time LaTeX3 is out, and is starting to become accepted, which I will gather will take a few years, those memory concerns will no longer be relevant. Speed perhaps: If a document can be processed in less than one second instead of ten, that will always be a great advantage. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 28-Jun-1998 14:23:04-GMT,4871;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA13665 for ; Sun, 28 Jun 1998 08:23:01 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA05152; Sun, 28 Jun 1998 15:58:37 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 372898 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 28 Jun 1998 15:58:35 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA05140 for ; Sun, 28 Jun 1998 15:58:31 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id XAA16592; Sun, 28 Jun 1998 23:58:20 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199806281358.XAA16592@ricetub.anu.edu.au> Date: Sun, 28 Jun 1998 23:58:20 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Frank Mittelbach writes: > I think Richard Walker asked whether or not the Team thinks that > concepts of modules are relevant for LaTeX3. Did I?! No, I wondered about the consequences of using long names. David answered that one. Hans Aberg writes: > I just want to point out that the way I worded the modules, it does not > exclude Frank's idea of a low level naming convention: > > A module would itself define how it uses its names. So a module like \tex > could define that all its names should be interpreted directly, that is, > \tex/foo is executed directly. This is what I was assuming too. So my (our?) counter-proposal has been that macros be named: \hierarchical/path/to/module/perhaps_with_underscores/macro_name:argspec (or according to Hans - I need more convincing): \hierarchical/path/to/module/perhaps_with_underscores/macro_name:argspec: with / _ : all having catcode 11. No fancy tricks with \csname...\endcsname that slow things down by a factor of 50 or more. :-) Even if LaTeX itself doesn't take advantage of this convention (by Hans's <...> notation or otherwise), doc.sty/docstrip, Emacs, lacheck/chkTeX, etc. etc. might. I'd like to push forward my earlier idea of docstrip writing out a file containing a list of macros defined, macro documentation or whatever, in a form that can be easily used by smart editors. To clarify the difference once more: in L3PL as it stands there is IMHO some confusion caused by using _ to separate module and description while allowing _ in the middle of the description - and then not allowing _ in the middle of the module name. I argue that the confusion should be removed, preferably by using / to separate module and description, and allowing _ in the middle of module and description names. This also means that there can be a hierarchy of modules. As David points out, there are no space and time penalties (only in the size and handling of latex.ltx plus extra space in the format for one copy of the longer names). So instead of e.g. \chk_var_or_const:N we have \chk/var_or_const:N. I think the latter is also easier to read. The c, l, and p prefixes could be stuck on the front: thus \c/iow/comment_char and \l/tlp/testa instead of \c_iow_comment_char and \l_testa_tlp. (Hmm . . . this needs some more thought.) > So by the time LaTeX3 is out, and is starting to become accepted, which I > will gather will take a few years, those memory concerns will no longer be > relevant. Deep breath . . . are we no better than Microsoft? A decent TeX installation is hungry enough as it is. No more please. > Speed perhaps: If a document can be processed in less than one second > instead of ten, that will always be a great advantage. It is a sobering experience to run any of DEK's stuff (articles etc.) through plain TeX. If only LaTeX ran that fast . . . . Richard. 28-Jun-1998 18:50:02-GMT,5180;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id MAA17995 for ; Sun, 28 Jun 1998 12:49:56 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id UAA10992; Sun, 28 Jun 1998 20:26:36 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 372960 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Sun, 28 Jun 1998 20:26:34 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id UAA10982 for ; Sun, 28 Jun 1998 20:26:32 +0200 (MET DST) Received: from [130.237.37.83] (sl63.modempool.kth.se [130.237.37.83]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id UAA12731 for ; Sun, 28 Jun 1998 20:26:29 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Sun, 28 Jun 1998 20:25:50 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806281358.XAA16592@ricetub.anu.edu.au> I have not really have much to add to what Richard Walker wrote. I can repeat the basic ideas: The idea with the modules concept is to generalize, open doors, and not to close any. If long names or submodules are not of any use for low level development, do not use that in that programming. But adding ideas like submodules and more sophisticated module processing can be difficult if one does not consider certain snags at this point (like not mixing up module and word separators). The principle of a module defining its behaviour via a command \/ (with an ending "/"), I arrived at by doing such module programming. The parsing I showed was only an illustration how such an idea might be used: After all, adding such a command does not burden TeX much, and if it is too slow in some modules, it needs not to be used, one can still call the names directly. However, the point is that such a principle might allow for solutions that otherwise might not be possible: Sometimes a slow solution is preferred over none at all. Also, not all developing takes place by first knocking out optimized code: Often one first writes something that one is sure to work, and then is doing the optimization. One example in TeX might be the use of definitions with optional arguments: It is possible to make definition commands that produce fairly general commands with LaTeX style optional arguments that work in fairly general situations, but which are slow and do not work in the perfect generality one would want for a built in LaTeX command. But one could speed up developing by using such a definition command, and if the command is not used often, it is no point for say an user or casual developer to sit down trying to figure out how to do LaTeX style low level parsing. > > Speed perhaps: If a document can be processed in less than one second > > instead of ten, that will always be a great advantage. > >It is a sobering experience to run any of DEK's stuff (articles etc.) >through plain TeX. If only LaTeX ran that fast . . . . LaTeX already has several very slow commands with slow parsing, for example the variations of "new" with the LaTeX special style of defining arguments. One way to speed up LaTeX would be a command "define" which still checks if the command has been defined before, but otherwise uses TeX style parameters. >(or according to Hans - I need more convincing): > > \hierarchical/path/to/module/perhaps_with_underscores/macro_name:argspec: The only point with a terminating ":" would be to make it easier to know where the argspec ends if one processes the command name. This could be done otherwise by a convention that the argspec can only occupy one letter, or if that does not give sufficiently many combinations, that if the first letter is uppercase it is a two letter argspec, or something. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 29-Jun-1998 7:22:42-GMT,2852;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id BAA01111 for ; Mon, 29 Jun 1998 01:22:41 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id JAA25726; Mon, 29 Jun 1998 09:00:55 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 373235 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 29 Jun 1998 09:00:52 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id JAA25696 for ; Mon, 29 Jun 1998 09:00:47 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id RAA16896; Mon, 29 Jun 1998 17:00:17 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> <199806281358.XAA16592@ricetub.anu.edu.au> X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199806290700.RAA16896@ricetub.anu.edu.au> Date: Mon, 29 Jun 1998 17:00:17 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Hans Aberg writes: > >(or according to Hans - I need more convincing): > > > > \hierarchical/path/to/module/perhaps_with > > _underscores/macro_name:argspec: > > The only point with a terminating ":" would be to make it easier > to know where the argspec ends if one processes the command > name. This could be done otherwise by a convention that the argspec > can only occupy one letter, or if that does not give sufficiently > many combinations, that if the first letter is uppercase it is a > two letter argspec, or something. Hmm . . . at this stage let's say that an argspec can only contain A-Z and a-z. Then the argspec is the longest contiguous sequence of letters after the colon - easily specified with a regular expression. 29-Jun-1998 10:52:23-GMT,3106;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id EAA04709 for ; Mon, 29 Jun 1998 04:52:12 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA14190; Mon, 29 Jun 1998 12:19:07 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 373748 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 29 Jun 1998 12:19:04 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA14174 for ; Mon, 29 Jun 1998 12:19:02 +0200 (MET DST) Received: from [130.237.37.77] (sl57.modempool.kth.se [130.237.37.77]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA01887 for ; Mon, 29 Jun 1998 12:18:42 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> <199806281358.XAA16592@ricetub.anu.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 29 Jun 1998 12:16:23 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806290700.RAA16896@ricetub.anu.edu.au> Richard Walker wrote: >Hans Aberg writes: > > The only point with a terminating ":" would be to make it easier > > to know where the argspec ends if one processes the command > > name. ... >Hmm . . . at this stage let's say that an argspec can only contain >A-Z and a-z. Then the argspec is the longest contiguous sequence of >letters after the colon - easily specified with a regular expression. Easier in TeX, that is (like in the example program below). If I am allowed to write my own parser, it makes no difference, of course. ------------------------------------------------------------------- \catcode`\:=11 \catcode`\@=11 \def\foo:A{foo and A} \def\getargspec#1{\expandafter\@getargspec\string#1} \catcode`\:=12 \def\@getargspec#1#2:#3{Command ``#2'' has argspec #3!} \catcode`\:=11 \getargspec\foo:A \end ------------------------------------------------------------------- 29-Jun-1998 11:12:47-GMT,2529;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA05087 for ; Mon, 29 Jun 1998 05:12:18 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA15531; Mon, 29 Jun 1998 12:36:36 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 373760 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 29 Jun 1998 12:36:33 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA15511 for ; Mon, 29 Jun 1998 12:36:31 +0200 (MET DST) Received: from [130.237.37.150] (sl124.modempool.kth.se [130.237.37.150]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA03147 for ; Mon, 29 Jun 1998 12:36:29 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se (Unverified) Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 29 Jun 1998 12:35:19 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Argspec To: Multiple recipients of list LATEX-L Here is another suggestion for the argspec: Instead of naming a command \:, for every command \ that needs an argspec one defines another command named \: which expands to the (or argspecs, if the same command name is allowed to have several argspecs). This would be efficient in TeX as the command \: is only used when really needed. The process can also be automated by having a special definitions command, say \define:\{definition} which defines both \ and \: at once. The argspec is then more easily available for manipulation. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 29-Jun-1998 13:53:34-GMT,2649;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA07816 for ; Mon, 29 Jun 1998 07:53:32 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA00251; Mon, 29 Jun 1998 15:18:34 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 374021 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 29 Jun 1998 15:17:25 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA29947 for ; Mon, 29 Jun 1998 15:15:08 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA228 for ; Mon, 29 Jun 1998 15:14:59 +0200 Received: from [195.122.195.92] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAA204 for ; Mon, 29 Jun 1998 15:18:09 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199806291315.PAA29947@relay.urz.uni-heidelberg.de> Date: Mon, 29 Jun 1998 15:12:32 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Re: Modules To: Multiple recipients of list LATEX-L Richard Walker wrote > \hierarchical/path/to/module/perhaps_with_underscores/macro_name:argspec It looks nice. > >(or according to Hans - I need more convincing): > > \hierarchical/path/to/module/perhaps_with_underscores/macro_name:argspec: The finishing char can be add on the fly. Instead of (after Hans Aberg) \def\getargspec#1{\expandafter\@getargspec\string#1} \catcode`\:=12 \def\@getargspec#1#2:#3{Command ``#2'' has argspec #3!} which only gets the very first spec: \def\getargspec#1{\expandafter\@getargspec\string#1\\} %^^ \catcode`\:=12 \def\@getargspec#1#2:#3\\{Command ``#2'' has argspec #3!} %^^ Regards Javier 29-Jun-1998 14:25:31-GMT,2352;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id IAA08495 for ; Mon, 29 Jun 1998 08:25:23 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA02997; Mon, 29 Jun 1998 15:55:21 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 374085 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 29 Jun 1998 15:55:17 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA02976 for ; Mon, 29 Jun 1998 15:55:16 +0200 (MET DST) Received: from [130.237.37.137] (sl23.modempool.kth.se [130.237.37.43]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id PAA18789 for ; Mon, 29 Jun 1998 15:55:14 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Mon, 29 Jun 1998 15:54:45 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806291315.PAA29947@relay.urz.uni-heidelberg.de> At 15:12 +0100 98/06/29, Javier Bezos wrote: >The finishing char can be add on the fly. .. >\def\getargspec#1{\expandafter\@getargspec\string#1\\} > %^^ > \catcode`\:=12 > \def\@getargspec#1#2:#3\\{Command ``#2'' has argspec #3!} > %^^ So I got lost in the TeX-mech's; simply drop this my argspec suggestion then. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 30-Jun-1998 9:04:13-GMT,3741;000000000001 Received: from Niord.shsu.edu (niord.shsu.edu [192.92.115.8]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with SMTP id DAA05058 for ; Tue, 30 Jun 1998 03:04:12 -0600 (MDT) X-ListName: Literate Programming Discussion List Warnings-To: <> Errors-To: owner-litprog@SHSU.edu Sender: owner-litprog@SHSU.edu Received: from MVB.SAIC.COM by Niord.shsu.edu (MX V4.1 AXP) with SMTP; Tue, 30 Jun 1998 03:53:27 EST From: Freddy Potargent Reply-To: LitProg@SHSU.edu, potargen@imec.be Subject: Re: LaTeX2e <1996/12/01> cannot compile cweb ! Date: 30 Jun 1998 08:48:07 GMT Message-ID: <6na8o7$msb$1@elna.ethz.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: LitProg@SHSU.edu Hi Oliver, Sorry for this late reply but I recently (re)discovered this newsgroup (and your question). The problem is indeed in the warning, apparently the \end command has been changed since cweb-sty-1.1.1 was released. Below is a simple patch that corrects this problem. [In depth: a \global command was removed from the \end definition so instead of skipping 5 tokens we now need to skip only 4 tokens.] *** cweb.cls.orig Tue Jun 30 09:27:54 1998 --- cweb.cls Tue Jun 30 09:12:37 1998 *************** *** 842,851 **** \CheckCommand*\end[1]{% \csname end#1\endcsname\@checkend{#1}% \expandafter\endgroup\if@endpe\@doendpe\fi ! % 1 2 3 4 5 ! \if@ignore\global\@ignorefalse\ignorespaces\fi} ! \def\cweb@skip_end#1#2#3#4#5{\cweb@check_fi} %%% \endprog --- 842,851 ---- \CheckCommand*\end[1]{% \csname end#1\endcsname\@checkend{#1}% \expandafter\endgroup\if@endpe\@doendpe\fi ! % 1 2 3 4 ! \if@ignore\@ignorefalse\ignorespaces\fi} ! \def\cweb@skip_end#1#2#3#4{\cweb@check_fi} %%% \endprog -- Freddy Potargent IMEC - VSDM Research Engineer Kapeldreef 75 mailto:potargen@imec.be B-3001 Leuven Belgium Oliver Pabst wrote: > > Hi folks, > > I used to create a .tex file from a CWEB file. > When I do latex file.tex, I get these messages: > > [olpa@newton Diplom]$ latex ge_module > This is TeX, Version 3.14159 (C version 6.1) > (ge_module.tex > LaTeX2e <1996/12/01> patch level 1 > [...] > LaTeX Warning: Command \end has changed. > Check if current package is valid. > ) (doc/angela.tex (/usr/lib/texmf/texmf/tex/latex/misc/geometry.sty > (/usr/lib/texmf/texmf/tex/latex/graphics/keyval.sty)) > (/usr/lib/texmf/texmf/tex/generic/babel/babel.sty > (/usr/lib/texmf/texmf/tex/generic/babel/germanb.ldf > (/usr/lib/texmf/texmf/tex/generic/babel/babel.def)) > (/usr/lib/texmf/texmf/tex/generic/babel/english.ldf)) > > [...] > > Overfull \hbox (22.78969pt too wide) in paragraph at lines 40--66 > [][] > [2] *2 [3] [4] [5] [6] [7] > Overfull \hbox (43.3812pt too wide) in paragraph at lines 466--471 > [][][][]\OML/cmm/m/it/10 :[][][][][][][]:[][][][][]$ > ) > * > > LaTeX returns in command mode without exiting correctly. > > When I use an old version of LaTeX (1 year older), it works ! > > I presume the reason is the Warning message at the beginning of the LaTeX > output. > > Can someone help me ? > > Thanks. > > [Please answer also by email] > > --- > --- > oliver pabst |\ _,,,---,,_ > computer science student ZZZzz /,`.-'`' -. ;-;;,_ > mailto:olpa@itm.uni-sb.de ______|,4- ) )-,_. ,\ (____-'________ > http://www.itm.uni-sb.de/~olpa '---''(_/--' `-'\_) > Do a "finger olpa@sisko.itm.uni-sb.de" for my PGP public key 30-Jun-1998 9:21:55-GMT,4056;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA05361 for ; Tue, 30 Jun 1998 03:21:38 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id KAA13831; Tue, 30 Jun 1998 10:55:24 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 374828 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 10:55:22 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id KAA13808 for ; Tue, 30 Jun 1998 10:55:11 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id KAA02857; Tue, 30 Jun 1998 10:01:28 +0100 References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> Message-ID: <199806300901.KAA02857@nag.co.uk> Date: Tue, 30 Jun 1998 10:01:28 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: (message from Hans Aberg on Sun, 28 Jun 1998 20:25:50 +0200) Hans writes > LaTeX already has several very slow commands with slow parsing, for > example the variations of "new" with the LaTeX special style of defining > arguments. Having a definition command that is slower than def is acceptable. Having a mechanism where the _use_ of commands is an order of magnitude (or more) slower than directly calling a control sequence is not acceptible, as long as the system is to be programmed in TeX (or a TeX-like system such as etex or omega). This means that while it might be useful sometimes to `parse out' the argument specification from the command name this would only ever be used in limited circumstances, eg to define one variant form in terms of another if for some reason the normal `base' NNNN (or nnnn) form is for some reason unavailable. As Javier commented the current N-n distinction is not always perfect. The exact detail of the conventions may well need changing, but the basic principle must be that command sequences are accessed directly as tokens at the level we are talking about (which is the low level programming conventions in which higher level markup can be defined). This does not mean that the document level markup has to be token based. Already LaTeX has the environment constructs which are not. \begin{enumerate} is 12 tokens rather than \begingroup\enumerate which is two. The environment syntax can fairly easily be offered in an alternative syntax, say ... which is about the same in terms of speed and memory usage as \begin \end (you have to work a bit harder to get a full XML system though:-). Having the document level markup being something that is parsed, `by hand', using a parser written in TeX is acceptable, but only if the result of that initial processing is a set of command tokens that can be executed in the normal way of command tokens directly looked up in TeX's hash table. I mention this point (again) not to try to stifle discussion but because I got rather lost at what level you are intending some of your module proposals to be used. David 30-Jun-1998 9:36:22-GMT,3915;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA05575 for ; Tue, 30 Jun 1998 03:36:11 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id LAA15172; Tue, 30 Jun 1998 11:12:02 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 374862 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 11:12:00 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id LAA15132 for ; Tue, 30 Jun 1998 11:11:41 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id KAA02863; Tue, 30 Jun 1998 10:18:00 +0100 References: <199806271239.OAA09658@relay.urz.uni-heidelberg.de> Message-ID: <199806300918.KAA02863@nag.co.uk> Date: Tue, 30 Jun 1998 10:18:00 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: l3 function names To: Multiple recipients of list LATEX-L In-Reply-To: <199806271239.OAA09658@relay.urz.uni-heidelberg.de> (message from Javier Bezos on Sat, 27 Jun 1998 14:36:57 +0100) spec arg forms meaning ~~~~ ~~~~~~~~~ ~~~~~~~~ u \cmd unexpanded/unbraced token n \cmd {\cmd} token name c \cmd {\cmd1\cmd2...} container; the contents will be passed as argument [\expandafter{\cmd}] l \cmd {\cmd1\cmd2...} token list x \cmd {\cmd1\cmd2...} expanded token list A further spec is to be used with \exp_args: d \cmd {\cmd} dormant; usually n but it will not be expanded in protected expansions. ....... and uppercase variants of these. Interesting. I Would need to experiment a bit more with it before really commenting, but in anycase having some control over arguments in protected contexts must be useful (even in etex which has some primitive protection mechanism) > Actually, the problem is always present if diferent variants of > \exp_args and command specs are mixed: \exp_args:Noox\cmd:nNxn... > What? :-) ) Yes the current exp_arg schemes really assume that the underlying command is of type nnnn (or possibly some N's). If you apply it to something that already has a `different' argument type you get a mess. > So \def:Npn #1{\tex_def:D #1} instead > of \let:NN\def:Npn\tex_def:D. In the notation above that gives > \def:npl \def:npx \def:Npl \def:Npx. The whole question of what to do with the primitives is not clear. Initially the names like \def:Npn were defined in the initial pass through the TeX primitives. That is, each primitive was given a new name (and then the old name undefined). While descripibing the system for the paper at TUG98 this summer we decided to switch to a regular naming scheme for the primitives of \tex_(old name):D and then \let them to useable name(s) in the appropriate module (or modules). This does `waste' some csnames (as the :D forms are not supposed to be used) and it does let evil people like Phil reconstruct plain TeX by relocating all the primitive commands in a consistent way, but it seemed better than trying to decide the `right' new name for the primitives. The hope was that apart from these low level modules most code would be using (slightly) higher level functions in which the argument conventions were more rationalized. David 30-Jun-1998 10:52:09-GMT,3840;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id EAA06796 for ; Tue, 30 Jun 1998 04:51:54 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA20705; Tue, 30 Jun 1998 12:16:52 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 374954 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 12:16:49 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA20687 for ; Tue, 30 Jun 1998 12:16:45 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id UAA18253; Tue, 30 Jun 1998 20:16:20 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> <199806300901.KAA02857@nag.co.uk> X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199806301016.UAA18253@ricetub.anu.edu.au> Date: Tue, 30 Jun 1998 20:16:20 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806300901.KAA02857@nag.co.uk> David Carlisle writes: > I mention this point (again) not to try to stifle discussion but because > I got rather lost at what level you are intending some of your module > proposals to be used. Speaking only for myself . . . Hmm . . . well, _I_ was talking about the names of `internal' macros. I wrote: > So instead of e.g. \chk_var_or_const:N we have \chk/var_or_const:N. Again: / _ : all have catcode 11. At this point I diverged from Hans a little . . . I like the <.../...> idea for the user but agree it is too inefficient (the implementation of LaTeX's environments notwithstanding). Going back to my earlier crazy ideas about short/long names I think that a package will generally use `long' names for its internals, and to refer to the internals of the base and other packages. Subject to my earlier reservations, Hans's `environments' can then be used, but I propose that they work differently. If a package splat wants to `export' a macro it must say e.g. \ProvidesPackage{splat} . . . \ExportCommand{my_macro:N}{mymacro} where \splat/my_macro:N is the internal `long' name and \mymacro is the exported name. \ExportCommand `keeps' a list of the correspondences for each package. If _in your document_ you want to `import' the short names you might say: \UseShortNames{splat} . . . \mymacro . . . Or if you only want the short names for a little while: \begin{shortnames}{splat} . . . \mymacro . . . \end{shortnames}. Both do \let\mymacro=\splat/my_macro:N. (I imagine that a part of \ExportCommand's work is to generate/update a macro \splat/do_import: (say) whose expansion is just that.) The only place you need to use \csname . . . \endcsname in this scheme is in the implementation of \ExportCommand. Comments? Richard. 30-Jun-1998 10:56:48-GMT,3657;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id EAA06869 for ; Tue, 30 Jun 1998 04:56:09 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA21082; Tue, 30 Jun 1998 12:22:17 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 374969 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 12:22:15 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA21068 for ; Tue, 30 Jun 1998 12:22:13 +0200 (MET DST) Received: from [130.237.37.134] (sl108.modempool.kth.se [130.237.37.134]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA29461 for ; Tue, 30 Jun 1998 12:22:06 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se (Unverified) References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Tue, 30 Jun 1998 12:21:32 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Optimizing LaTeX To: Multiple recipients of list LATEX-L In-Reply-To: <199806281358.XAA16592@ricetub.anu.edu.au> If LaTeX now is so slow one could pick up Richard Walker's idea, and develop the docstrip facility into an optimizing compiler: > I'd like to push forward my earlier >idea of docstrip writing out a file containing a list of macros defined, >macro documentation or whatever, in a form that can be easily used by >smart editors. So, for example, if the source file contains a command \newcommand{\foo}[9]{def}, then the docstrip writes out \define#1#2#3#4#5#6#7#8#9{def} in the sty file, plus perhaps a file \newcommand{\foo}[9] with document processors can use. The command \define would check that \foo has not been defined before, but perhaps one can optimize further, so that this check is not done every time the file is executed. (Say perhaps when a building format file: Then the check would be done while building the format, but not when loading the format.) The idea of docstrip as an optimizing compiler would enable to do develop with relatively high level commands. One could also think of a special file with online help: A command named \foo has a command \foo: with information about the command which is put in a special file. Then that command and its file need to be processed in the usual typesetting, only when one needs say the online help, so it does not burden the speed of LaTeX. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 30-Jun-1998 11:14:37-GMT,4277;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA07357 for ; Tue, 30 Jun 1998 05:14:13 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA22723; Tue, 30 Jun 1998 12:45:36 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 374993 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 12:45:33 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA22701 for ; Tue, 30 Jun 1998 12:45:29 +0200 (MET DST) Received: from [130.237.37.134] (sl15.modempool.kth.se [130.237.37.35]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA01131 for ; Tue, 30 Jun 1998 12:45:23 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: (message from Hans Aberg on Sun, 28 Jun 1998 20:25:50 +0200) <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Tue, 30 Jun 1998 12:44:27 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806300901.KAA02857@nag.co.uk> At 10:01 +0100 98/06/30, David Carlisle wrote: >> LaTeX already has several very slow commands with slow parsing, for >> example the variations of "new" with the LaTeX special style of defining >> arguments. > >Having a definition command that is slower than def is acceptable. >Having a mechanism where the _use_ of commands is an order of magnitude >(or more) slower than directly calling a control sequence is not >acceptible, as long as the system is to be programmed in TeX (or a >TeX-like system such as etex or omega). I am aware that optimization is more important the more often the command is used. Pros use a profiler which tells which commands are used the most, and one goes in and optimizes mainly those. >I mention this point (again) not to try to stifle discussion but because >I got rather lost at what level you are intending some of your module >proposals to be used. Since modules are a generalization of the ideas used in L3PL, the idea is that it should be used as an unifying concept on all levels (except in cases where special low level optimization excludes it). So on a low level, you can use modules only as a naming convention, but on the higher level it is possible to do more complicated things. It is also possible to combine: The low level uses high level commands for the first quick and dirty development, and then one goes in and optimizes where needed. It is not necessary to use always the same way to call the module command. In some environments using a slow parsing <...> style might be just fine, but in other cases it might not: Perhaps it is too slow, perhaps the syntax is unworkable. The details of this, what might work in different contexts, one finds out by developing the modules concept in those different contexts. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 30-Jun-1998 13:53:49-GMT,2097;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA11092 for ; Tue, 30 Jun 1998 07:53:42 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA05531; Tue, 30 Jun 1998 15:32:25 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 375249 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 15:32:22 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA05504 for ; Tue, 30 Jun 1998 15:32:18 +0200 (MET DST) Received: from [130.237.37.151] (sl97.modempool.kth.se [130.237.37.123]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id PAA15793 for ; Tue, 30 Jun 1998 15:32:14 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Tue, 30 Jun 1998 15:31:28 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L I do not know if folks are doing profiling on TeX/LaTeX, but an easy way would be to set \tracingcommands = 1, and then count the frequency in the log file of the different commands executed. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 30-Jun-1998 13:54:56-GMT,4191;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA11122 for ; Tue, 30 Jun 1998 07:54:48 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA04520; Tue, 30 Jun 1998 15:18:28 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 375222 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 15:18:26 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA04510 for ; Tue, 30 Jun 1998 15:18:24 +0200 (MET DST) Received: from [130.237.37.151] (sl22.modempool.kth.se [130.237.37.42]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id PAA14740 for ; Tue, 30 Jun 1998 15:18:12 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806301016.UAA18253@ricetub.anu.edu.au> (message from Richard Walker on Tue, 30 Jun 1998 20:16:20 +1000) <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> <199806300901.KAA02857@nag.co.uk> <199806301016.UAA18253@ricetub.anu.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Tue, 30 Jun 1998 15:17:27 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806301131.MAA03021@nag.co.uk> At 12:31 +0100 98/06/30, David Carlisle wrote: >> So instead of e.g. \chk_var_or_const:N we have \chk/var_or_const:N. >> Again: / _ : all have catcode 11. > >Perhaps allowing _ as the separator and for use within the final names >is not ideal, although looking at your example above / looks too `hard' >a break to me, I can read \chk_var_or_const:N as one token but \chk/ >looks too split off. Perhaps another idea would be to use _ as now, but >not use it within the final name, as in \chk_VarOrConst:N. The main thing is of course keeping the module and word separator signs different. But otherwise, I think it is mainly a question of getting used to: The variation \chk/var_or_const:N probably looks difficult to people spending nearly all their time programming in TeX and not other languages, but I think that this use of "_" is difficult to accept for say a mathematician also only using TeX but which never programs in computer languages where underscore is often used as a word separator within a name. There is a programming subtlety though, which is quite convenient, namely the difference between \@nameuse{\foo/bar} % Call the expansion of the name "foo/bar" \@nameuse{\foo /bar} % Call the expansion of the name "foo" appended with "/bar" where \def\@nameuse#1{\csname #1\endcsname} as in LaTeX. So one can make use of this subtlety when programming, and the fact that "/" breaks off then after a while becomes appreciative. But another common module separator would be :, but that is already occupied. One could change the argument spec separator to ., so that names soul look like \foo:bar.n or something. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 30-Jun-1998 16:27:25-GMT,2951;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA14408 for ; Tue, 30 Jun 1998 10:27:23 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id RAA15735; Tue, 30 Jun 1998 17:54:21 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 375443 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 17:54:18 +0200 Received: from math.ams.org (math.ams.org [130.44.210.14]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id RAA15723 for ; Tue, 30 Jun 1998 17:54:13 +0200 (MET DST) Received: from sun06.ams.org by math.ams.org via smtpd (for relay.urz.uni-heidelberg.de [129.206.119.201]) with SMTP; 30 Jun 1998 15:53:57 UT Received: from sun06.ams.org by sun06.ams.org (PMDF V5.1-10 #27147) id <0EVD00G01G5KX2@sun06.ams.org> for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 11:53:44 -0400 (EDT) MIME-version: 1.0 X-Mailer: Gnus v5.5/Emacs 20.2 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Lines: 19 References: Message-ID: <199806301554.RAA15723@relay.urz.uni-heidelberg.de> Date: Tue, 30 Jun 1998 11:53:44 -0400 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project Comments: Resent-From: mjd@ams.org Comments: Originally-From: Michael John Downes From: "Michael J. Downes" Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L In-Reply-To: Hans Aberg's message of Tue, 30 Jun 1998 15:31:28 +0200 Hans Aberg writes: > I do not know if folks are doing profiling on TeX/LaTeX, but an easy way > would be to set \tracingcommands = 1, and then count the frequency in the > log file of the different commands executed. Did you mean \tracingmacros? In a high-level format macro expansions take up more than half of the processing. One would normally want \tracingmacros=2 \tracingcommands=2 It is perhaps of interest to note that unless the tex.pool file is changed, \tex_global:D will be reported in the log file as "{\global}", \scan_stop: will be reported as "{\relax}", and so on. Perhaps e-TeX can provide something useful here for making name changes in some way easier than retangling tex.web. (You can just edit the .pool file, of course---I have done it myself in the past---but then you have to go to some nontrivial extra trouble if you want to synchronize the checksums.) 30-Jun-1998 11:50:39-GMT,3701;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA08282 for ; Tue, 30 Jun 1998 05:50:25 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA25453; Tue, 30 Jun 1998 13:25:35 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 375060 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 30 Jun 1998 13:25:33 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA25429 for ; Tue, 30 Jun 1998 13:25:11 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id MAA03021; Tue, 30 Jun 1998 12:31:41 +0100 References: <199806230127.LAA12452@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> <199806271853.UAA29351@frank.zdv.uni-mainz.de> <199806300901.KAA02857@nag.co.uk> <199806301016.UAA18253@ricetub.anu.edu.au> Message-ID: <199806301131.MAA03021@nag.co.uk> Date: Tue, 30 Jun 1998 12:31:41 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: <199806301016.UAA18253@ricetub.anu.edu.au> (message from Richard Walker on Tue, 30 Jun 1998 20:16:20 +1000) > So instead of e.g. \chk_var_or_const:N we have \chk/var_or_const:N. > Again: / _ : all have catcode 11. Perhaps allowing _ as the separator and for use within the final names is not ideal, although looking at your example above / looks too `hard' a break to me, I can read \chk_var_or_const:N as one token but \chk/ looks too split off. Perhaps another idea would be to use _ as now, but not use it within the final name, as in \chk_VarOrConst:N. Don't know. As Frank commented earlier, it also makes a difference if you are looking at it on screen rather than on paper. > If _in your document_ you want to `import' the short names you might > say: I really don't think it helps to think of document level usage for this kind of module. Although it does make sense to look at ways of using different top level command names, I suspect any such top level interface mechanism will need to be substantially different from the way code at the programming levels is organised into modules. \UseShortNames{splat} . . . \mymacro . . . This most reminds me of context. (Any context users on this list?) I haven't really looked in detail what Context does here but have seen Hans (the other one:-) demo it a few times. The Context kernel does not directly define any top level user commands, instead that top level is defined in a final customisation setup. In the case of context the main aim is to have language specific command names. Such an interface could possibly be extended to cater for more general renaming to avoid interface clashes. Perhaps someone with more experience of context might like to say what that system is doing, for comparison. David 1-Jul-1998 9:50:53-GMT,2262;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA06384 for ; Wed, 1 Jul 1998 03:50:51 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id LAA23179; Wed, 1 Jul 1998 11:27:35 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376041 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 11:27:32 +0200 Received: from perdita.zdv.Uni-Mainz.de (perdita.zdv.Uni-Mainz.DE [134.93.8.147]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id LAA23156; Wed, 1 Jul 1998 11:27:29 +0200 (MET DST) Received: (from schoepf@localhost) by perdita.zdv.Uni-Mainz.de (8.8.8/8.8.8) id LAA22636; Wed, 1 Jul 1998 11:27:29 +0200 (MEST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.51 under Emacs 19.34.1 Message-ID: <13722.255.56514.9853@perdita.zdv.Uni-Mainz.de> Date: Wed, 1 Jul 1998 11:27:27 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Rainer Schoepf Organization: Johannes Gutenberg-Universitaet Mainz Subject: LaTeX Release June 98 To: Multiple recipients of list LATEX-L The LaTeX Programming Team has just released the June 98 release to the general public. As usual, this consists of the following directories on CTAN, the Comprehensive TeX Archive Network: Base LaTeX: macros/latex/base macros/latex/unpacked macros/latex/doc Tools bundle: macros/latex/packages/tools LaTeX Graphics bundle: macros/latex/packages/graphics MFNFSS bundle (for using Old German and Pandora fonts): macros/latex/packages/mfnfss For news see the document ltnews09.tex. Problems should be reported following the instructions in the file bugs.txt. Happy LaTeXing! The LaTeX Programming Team 1-Jul-1998 10:47:28-GMT,2974;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id EAA07353 for ; Wed, 1 Jul 1998 04:47:26 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA27524; Wed, 1 Jul 1998 12:22:37 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376160 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 12:22:33 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA27498 for ; Wed, 1 Jul 1998 12:22:32 +0200 (MET DST) Received: from [130.237.37.138] (sl112.modempool.kth.se [130.237.37.138]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id MAA01726 for ; Wed, 1 Jul 1998 12:22:22 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Wed, 1 Jul 1998 12:21:33 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L I wonder why people are so against building several development levels, because this is the normal way computer programming is structured otherwise: The lowest level is the assembler which expands to simple machine instructions. On top of that, one might build a language like C, which does not impose runtime checks and itself is compiled, not interpreted. Then on top of that, one might build a more advanced language with runtime checks, and often C is a language to use for writing that language. Finally this more advanced language can be used to build user applications. Similarly, in TeX the assembler might correspond to the most lowlevel macros. It would be great if one could add some kind of C compiler on top of that, which does not add much runtime overhead. The more advanced language might correspond to LaTeX itself, which is used by the user and by adding high level structures. I gather L3PL is intended to correspond to this lowest assembler level, but I think it would help if one could add a C-level, that is, if it does not add much overhead. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 1-Jul-1998 11:06:24-GMT,4241;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA07704 for ; Wed, 1 Jul 1998 05:06:09 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA29937; Wed, 1 Jul 1998 12:41:52 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376237 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 12:41:50 +0200 Received: from heaton.cl.cam.ac.uk (exim@heaton.cl.cam.ac.uk [128.232.32.11]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA29927 for ; Wed, 1 Jul 1998 12:41:48 +0200 (MET DST) Received: from dorceus.cl.cam.ac.uk (cl.cam.ac.uk) [128.232.1.34] (rf) by heaton.cl.cam.ac.uk with esmtp (Exim 1.82 #1) id 0yrKKi-0007WS-00; Wed, 1 Jul 1998 11:41:48 +0100 Message-ID: Date: Wed, 1 Jul 1998 11:41:47 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Robin Fairbairns Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L In-Reply-To: Your message of "Wed, 01 Jul 1998 12:21:33 +0200." > I wonder why people are so against building several development levels, > because this is the normal way computer programming is structured otherwise: people aren't (in principle) against the idea. the argument is not _against_ multiple levels, but rather whether they can be made to work acceptably in a tex environment. > The lowest level is the assembler which expands to simple machine > instructions. On top of that, one might build a language like C, which does > not impose runtime checks and itself is compiled, not interpreted. Then on > top of that, one might build a more advanced language with runtime checks, > and often C is a language to use for writing that language. Finally this > more advanced language can be used to build user applications. > > Similarly, in TeX the assembler might correspond to the most lowlevel > macros. It would be great if one could add some kind of C compiler on top > of that, which does not add much runtime overhead. The more advanced > language might correspond to LaTeX itself, which is used by the user and by > adding high level structures. this is all very well: it has a nice feel to it. but tex isn't like that. *all* levels of a tex macro package are processed by the same interpreter. that interpreter has several extraordinary properties which cause `crosstalk' between the levels (for example, expandability does just this). and of course, what's appropriate for an interpreter isn't necessarily equally sensible for a compiled language. we simply cannot hope to compile tex without a major effort *outside* tex: an optimising compiler written in tex is surely a nono -- one couldn't possibly afford a pass of something (presumably) even slower than docstrip on documents, and class and package files aren't really the problematic issue as far as optimisation goes. > I gather L3PL is intended to correspond to this lowest assembler level, > but I think it would help if one could add a C-level, that is, if it does > not add much overhead. since you originally talked (some time before the present thread) about modular naming, i've been thinking about it, on and off. at one stage i was intending to present a paper about the issue at eurotex, but have now timed out on a paper at tug'98, even. i've done a fair bit of research since into naming systems (it's a topic that has direct relevance to my research group), and i think i know how i would structure a naming system within tex. what i _don't_ know (after several months of thinking about it) is how to implement such a system. robin 1-Jul-1998 11:07:20-GMT,3008;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA07723 for ; Wed, 1 Jul 1998 05:07:12 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id MAA29849; Wed, 1 Jul 1998 12:40:55 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376233 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 12:40:53 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id MAA29831 for ; Wed, 1 Jul 1998 12:40:51 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id LAA00595; Wed, 1 Jul 1998 11:47:25 +0100 References: Message-ID: <199807011047.LAA00595@nag.co.uk> Date: Wed, 1 Jul 1998 11:47:25 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L In-Reply-To: (message from Hans Aberg on Wed, 1 Jul 1998 12:21:33 +0200) > I wonder why people are so against building several development levels, I think actually there is no disagreement about the need for separate levels. What I think is important though, is to think of one level at a time. To take your analogy, when designing an asembler language, one probably does not need to consider too much the user interface of a Windowing GUI system. (Although one needs to check that the basic functionality that will be needed in such an application is provided). More specifically, I'd say that the fundamental error in the design of the tex language was to design the primitives with a syntax allegedly suitable for easy use as part of top level document markup. This collapsing of all levels into one is largely responsible for the mess that is contained in the legacy (la)tex documents. So the aim with the l3 code is to get a foundation in which higher levels can be programmed. These higher levels may well have their own concepts of modularity, which need not necessarily be directly related to the modules at this level. This is the reason why I (and probably Frank) appear to be `against' discussion of higher level issues at this time. It is not that they are not needed, it is just that we want to avoid the problems inherent in TeX of having a low level system whose design is distorted by a concern to make it useable at all levels at once. David 1-Jul-1998 12:18:43-GMT,2887;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA08926 for ; Wed, 1 Jul 1998 06:18:28 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA05038; Wed, 1 Jul 1998 13:49:21 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376331 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 13:49:19 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA05027 for ; Wed, 1 Jul 1998 13:49:17 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA261 for ; Wed, 1 Jul 1998 13:49:01 +0200 Received: from [195.122.199.26] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAB65 for ; Wed, 1 Jul 1998 13:52:17 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199807011149.NAA05027@relay.urz.uni-heidelberg.de> Date: Wed, 1 Jul 1998 13:46:32 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L Michael J. Downes, mjd@AMS.ORG, wrote >It is perhaps of interest to note that unless the tex.pool file is >changed, \tex_global:D will be reported in the log file as >"{\global}", \scan_stop: will be reported as "{\relax}", and so >on. Perhaps e-TeX can provide something useful here for making name >changes in some way easier than retangling tex.web. (You can just edit >the .pool file, of course---I have done it myself in the past---but >then you have to go to some nontrivial extra trouble if you want to >synchronize the checksums.) And \meaning and \show, so making debugging a lot harder, except if you know the TeX equivalence. (Again! See one of my previous messages where I said: >...see the unmatched brace. A bit tricky but clear when you are using TeX; >with \let:NN is not so clear what are you doing -- except when you learn >its TeX equivalence!...) IMHO, this makes a very strong case _against_ renaming the TeX primitives. Regards Javier 1-Jul-1998 12:22:57-GMT,3211;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA08969 for ; Wed, 1 Jul 1998 06:21:57 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA04951; Wed, 1 Jul 1998 13:48:12 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376327 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 13:48:09 +0200 Received: from math.ams.org (math.ams.org [130.44.210.14]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA04935 for ; Wed, 1 Jul 1998 13:48:03 +0200 (MET DST) Received: from sun06.ams.org by math.ams.org via smtpd (for relay.urz.uni-heidelberg.de [129.206.119.201]) with SMTP; 1 Jul 1998 11:47:52 UT Received: from sun06.ams.org by sun06.ams.org (PMDF V5.1-10 #27147) id <0EVE00D01ZFRRL@sun06.ams.org> for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 07:47:51 -0400 (EDT) MIME-version: 1.0 X-Mailer: Gnus v5.5/Emacs 20.2 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Lines: 26 Message-ID: <199807011148.NAA04935@relay.urz.uni-heidelberg.de> Date: Wed, 1 Jul 1998 07:47:51 -0400 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project Comments: Resent-From: mjd@ams.org Comments: Originally-From: Michael John Downes From: "Michael J. Downes" Subject: LaTeX3 naming conventions To: Multiple recipients of list LATEX-L In-Reply-To: Hans Aberg's message of Tue, 30 Jun 1998 15:17:27 +0200 Hans Aberg writes: > But another common module separator would be :, but that is already > occupied. One could change the argument spec separator to ., so that names > soul look like \foo:bar.n or something. Then TeX dimens of the form 0.1pt in the source code would not scan correctly (the "." has to have catcode 12). These issues were already hashed out at great length by the LaTeX team a long time ago. Don't forget that TeX is not like other programming languages---for example, TeX has no notion of quoted strings, so the right quote character ' could also be a candidate character for use in control sequence names, unlike C or Pascal identifiers (... the octal number notation is used so seldom in practice that a function \octal{321} would easily serve). In my opinion, there has been so far too much discussion and not enough substantial work with the published expl3 proposal. I do not say it is flawless, but I do say it is a waste of time to rehash it endlessly without any real work being done. When someone can post to CTAN a working package of nontrivial size using the current proposed conventions, then I will be ready to listen to their opinions with respect. Michael Downes 1-Jul-1998 13:30:24-GMT,3729;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA10283 for ; Wed, 1 Jul 1998 07:30:10 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA11055; Wed, 1 Jul 1998 15:03:23 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376392 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 15:03:20 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA11002 for ; Wed, 1 Jul 1998 15:03:10 +0200 (MET DST) Received: from [130.237.37.95] (sl69.modempool.kth.se [130.237.37.95]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id PAA15056 for ; Wed, 1 Jul 1998 15:03:07 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: Hans Aberg's message of Tue, 30 Jun 1998 15:17:27 +0200 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Wed, 1 Jul 1998 15:02:26 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: LaTeX3 naming conventions To: Multiple recipients of list LATEX-L In-Reply-To: <199807011148.NAA04935@relay.urz.uni-heidelberg.de> Michael J. Downes wrote: >> But another common module separator would be :, but that is already >> occupied. One could change the argument spec separator to ., so that names >> soul look like \foo:bar.n or something. > >Then TeX dimens of the form 0.1pt in the source code would not scan >correctly (the "." has to have catcode 12). > >These issues were already hashed out at great length by the LaTeX team >a long time ago. Don't forget that TeX is not like other programming >languages---for example, TeX has no notion of quoted strings, so the >right quote character ' could also be a candidate character for use in >control sequence names, unlike C or Pascal identifiers (... the octal >number notation is used so seldom in practice that a function >\octal{321} would easily serve). > >In my opinion, there has been so far too much discussion and not >enough substantial work with the published expl3 proposal. I do not >say it is flawless, but I do say it is a waste of time to rehash it >endlessly without any real work being done. When someone can post to >CTAN a working package of nontrivial size using the current proposed >conventions, then I will be ready to listen to their opinions with >respect. So, if I was allowed to interfere, I would suggest that the names should be named \tex/foo_bar:, with "_" a word separator and "/" a module separator. This way the L3PL team can forget about higher module abstractions for now, but on the same time ensuring that the L3PL does not block that the modules concept being introduced fully at some later point. If "/" does not prove to be suitable, then it can easily be changed to something else at some later point. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 1-Jul-1998 13:34:19-GMT,4635;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA10432 for ; Wed, 1 Jul 1998 07:34:17 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA11013; Wed, 1 Jul 1998 15:03:11 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376388 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 15:03:08 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA10991 for ; Wed, 1 Jul 1998 15:03:05 +0200 (MET DST) Received: from [130.237.37.95] (sl69.modempool.kth.se [130.237.37.95]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id PAA15045 for ; Wed, 1 Jul 1998 15:03:00 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: (message from Hans Aberg on Wed, 1 Jul 1998 12:21:33 +0200) Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Wed, 1 Jul 1998 14:32:04 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L In-Reply-To: <199807011047.LAA00595@nag.co.uk> At 11:47 +0100 98/07/01, David Carlisle wrote: >I think actually there is no disagreement about the need for separate >levels. What I think is important though, is to think of one level >at a time. To take your analogy, when designing an asembler language, one >probably does not need to consider too much the user interface of a >Windowing GUI system. (Although one needs to check that the basic >functionality that will be needed in such an application is provided). The reason for this is traditional, how those languages evolved relating to the technology. But this is no longer the case; new developments give strong consideration to the interface between the levels. >More specifically, I'd say that the fundamental error in the design of >the tex language was to design the primitives with a syntax allegedly >suitable for easy use as part of top level document markup. This >collapsing of all levels into one is largely responsible for the mess >that is contained in the legacy (la)tex documents. This one I fully agree on: One should clearly focus on the different level and design what is most appropriate for that level. For example, if the concept of modules is introduced as a naming convention in L3PL, then one should not on this level give much consideration what separators /, :, _, etc to use relating to what might be used on another level, except for the problem of ensuring that one does not block any capacities on the levels above. >So the aim with the l3 code is to get a foundation in which higher >levels can be programmed. These higher levels may well have their own >concepts of modularity, which need not necessarily be directly related >to the modules at this level. On this question, the idea with concept of modularity is it should not need to clash on the different levels, at least in the way that I have perceived it: High level modules should expand their names to the same kind of naming convention as in the lower level, except that such high modules may be allowed to do it in another way (via parsing). >This is the reason why I (and probably Frank) appear to be `against' >discussion of higher level issues at this time. It is not that they are >not needed, it is just that we want to avoid the problems inherent in >TeX of having a low level system whose design is distorted by a concern >to make it useable at all levels at once. Actually, I did not have the LaTeX3 team in my mind: Actually, I mostly want to bring out a clear focus on these ideas. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 1-Jul-1998 13:43:26-GMT,4820;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id HAA10597 for ; Wed, 1 Jul 1998 07:43:24 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id PAA11087; Wed, 1 Jul 1998 15:03:32 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376396 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 15:03:29 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id PAA11017 for ; Wed, 1 Jul 1998 15:03:13 +0200 (MET DST) Received: from [130.237.37.95] (sl69.modempool.kth.se [130.237.37.95]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id PAA15051 for ; Wed, 1 Jul 1998 15:03:03 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: Your message of "Wed, 01 Jul 1998 12:21:33 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Wed, 1 Jul 1998 14:52:52 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L In-Reply-To: At 11:41 +0100 98/07/01, Robin Fairbairns wrote: >people aren't (in principle) against the idea. the argument is not >_against_ multiple levels, but rather whether they can be made to work >acceptably in a tex environment. Right. This is always the problem with TeX. I want to bring out these ideas to see where they lead within the TeX capacity. The final result shows when one attempts to program TeX, with its limited capacity. > *all* levels of a tex macro package are processed by the same >interpreter. that interpreter has several extraordinary properties >which cause `crosstalk' between the levels (for example, expandability >does just this). It is clear that one can never get around the way TeX is constructed. However, it is possible to simulate structures in TeX, and that will suffice. >and of course, what's appropriate for an interpreter isn't necessarily >equally sensible for a compiled language. we simply cannot hope to >compile tex without a major effort *outside* tex: an optimising >compiler written in tex is surely a nono -- one couldn't possibly >afford a pass of something (presumably) even slower than docstrip on >documents, and class and package files aren't really the problematic >issue as far as optimisation goes. To give the optimizer another name than docstrip then, so it may be used at will. The thing is that I wonder if it is so difficult to provide a compiler within TeX. Let's focus on \newcommand{\foo}[5]{def}; then LaTeX already expands this to a \define\foo#1#2#3#4#5{def} kind of definition. So one needs a way to write this expansion down in a file as a command. I merely play around with this idea, to see where it leads. >..i've done a fair >bit of research since into naming systems (it's a topic that has >direct relevance to my research group), and i think i know how i would >structure a naming system within tex. what i _don't_ know (after >several months of thinking about it) is how to implement such a >system. With modules, I think if it should ever become more than a naming system, it is rather abstract as concept and hard to focus without a great deal of practical programming experience, and just thinking about it will not resolve that issue. I did some limited programming with the idea of modules, and I merely try to indicate some of the deeper aspects that I found suitable. But for developing the concepts of modules a great deal of more programming experience with the concept is needed, giving it a context. By the way, I put up a doc, "modules/ModuleConventions.txt", on my home page, with contains some of the ideas I had that might be used to define modules. -- L3PL programming will probably need some other conventions, but this might be an input. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 1-Jul-1998 16:41:43-GMT,4867;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id KAA14541 for ; Wed, 1 Jul 1998 10:41:39 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA24054; Wed, 1 Jul 1998 18:00:15 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376587 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 18:00:12 +0200 Received: from heaton.cl.cam.ac.uk (exim@heaton.cl.cam.ac.uk [128.232.32.11]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA24043 for ; Wed, 1 Jul 1998 18:00:10 +0200 (MET DST) Received: from dorceus.cl.cam.ac.uk (cl.cam.ac.uk) [128.232.1.34] (rf) by heaton.cl.cam.ac.uk with esmtp (Exim 1.82 #1) id 0yrPIm-0000XN-00; Wed, 1 Jul 1998 17:00:08 +0100 Message-ID: Date: Wed, 1 Jul 1998 17:00:07 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Robin Fairbairns Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L In-Reply-To: Your message of "Wed, 01 Jul 1998 14:52:52 +0200." i wrote: > >and of course, what's appropriate for an interpreter isn't necessarily > >equally sensible for a compiled language. we simply cannot hope to > >compile tex without a major effort *outside* tex: an optimising > >compiler written in tex is surely a nono -- one couldn't possibly > >afford a pass of something (presumably) even slower than docstrip on > >documents, and class and package files aren't really the problematic > >issue as far as optimisation goes. and hans aberg responded: > To give the optimizer another name than docstrip then, so it may be used > at will. the name of the program doesn't affect its speed at all (though i suppose if you painted go-faster stripes down the side...) the essence of my remark was that any useful optimiser is either ridiculously difficult to write (on a par with tex itself, since it has to parse tex input) or desperately slow. > The thing is that I wonder if it is so difficult to provide a compiler > within TeX. Let's focus on \newcommand{\foo}[5]{def}; then LaTeX already > expands this to a \define\foo#1#2#3#4#5{def} kind of definition. So one > needs a way to write this expansion down in a file as a command. *why* do we need this? executing the \newcommand does indeed ultimately lead to execution of a \def statement, as you suppose. and the \newcommand is slightly slower to execute than is the \def on its own, but so what? that command is only going to be executed once in a tex run, after which the (tokenised) command definition is hashed away somewhere and is executed as fast as one can hope. > I merely play around with this idea, to see where it leads. as you may guess, i don't think it leads anywhere terribly useful. i don't think an optimiser that operates on classes and packages helps much, and i don't believe an optimiser that works on documents is feasible. > >..i've done a fair > >bit of research since into naming systems (it's a topic that has > >direct relevance to my research group), and i think i know how i would > >structure a naming system within tex. what i _don't_ know (after > >several months of thinking about it) is how to implement such a > >system. > > With modules, I think if it should ever become more than a naming system, > it is rather abstract as concept and hard to focus without a great deal of > practical programming experience, and just thinking about it will not > resolve that issue. I did some limited programming with the idea of > modules, and I merely try to indicate some of the deeper aspects that I > found suitable. But for developing the concepts of modules a great deal of > more programming experience with the concept is needed, giving it a context. it seems you're saying "we need to program these things before we've got a coherent idea of how to name them". this way (to my mind) leads to madness, which was why i was re-reading the standard texts on naming. > By the way, I put up a doc, "modules/ModuleConventions.txt", on my home > page, with contains some of the ideas I had that might be used to define > modules. you quote two home pages, but afaict this file isn't in either of them (i tried conventional html suffixes too). robin 1-Jul-1998 17:43:49-GMT,4531;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id LAA15999 for ; Wed, 1 Jul 1998 11:43:48 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA27382; Wed, 1 Jul 1998 18:55:15 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376617 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 18:55:12 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA27368 for ; Wed, 1 Jul 1998 18:55:10 +0200 (MET DST) Received: from [130.237.37.30] (sl10.modempool.kth.se [130.237.37.30]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id SAA06147 for ; Wed, 1 Jul 1998 18:55:07 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: Your message of "Wed, 01 Jul 1998 14:52:52 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Wed, 1 Jul 1998 18:55:11 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Optimizing LaTeX To: Multiple recipients of list LATEX-L In-Reply-To: At 17:00 +0100 98/07/01, Robin Fairbairns wrote: >> To give the optimizer another name than docstrip then, so it may be used >> at will. > >the name of the program doesn't affect its speed at all (though i >suppose if you painted go-faster stripes down the side...) Well, if you give the optimizing facility another name than docstrip, people need not using it when using the docstrip facility, so in that case, the docstrip facility is not going to run slower. :-) >*why* do we need this? executing the \newcommand does indeed >ultimately lead to execution of a \def statement, as you suppose. and >the \newcommand is slightly slower to execute than is the \def on its >own, but so what? that command is only going to be executed once in a >tex run, after which the (tokenised) command definition is hashed away >somewhere and is executed as fast as one can hope. Well, I think I said the best way to find out which commands to optimize is to use a profiler, and in other cases I use examples to illustrate the idea. Otherwise, even though \newcommand is only executed once for every command created, one might guess that \newcommand itself is executed many times. >i don't think an optimiser that operates on classes and packages helps >much, and i don't believe an optimiser that works on documents is >feasible. So what is making LaTeX so slow then? >it seems you're saying "we need to program these things before we've >got a coherent idea of how to name them". this way (to my mind) leads >to madness, which was why i was re-reading the standard texts on naming. I think that the point that has been repeated many times over and over again is that module separators and word separators should be distinct if one would want to prepare for the use of submodules. What I had in my mind though was developing the concept of modules into both an abstraction and a programming technique in TeX with its limited capacity for such things. All I can say that I found it difficult to do that from the limited programming I did, and my conclusion was that this was the way to go. >> By the way, I put up a doc, "modules/ModuleConventions.txt", on my home >> page, with contains some of the ideas I had that might be used to define >> modules. > >you quote two home pages, but afaict this file isn't in either of them >(i tried conventional html suffixes too). http://www.matematik.su.se/~haberg/LaTeX/AbergLaTeX/Module/ModuleConventions.txt Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 1-Jul-1998 22:25:16-GMT,4421;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id QAA22651 for ; Wed, 1 Jul 1998 16:25:15 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA11370; Wed, 1 Jul 1998 23:59:23 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376807 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 23:59:21 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA11331 for ; Wed, 1 Jul 1998 23:58:47 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id XAA11100 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 23:58:48 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id XAA16990; Wed, 1 Jul 1998 23:42:10 +0200 References: <199807011148.NAA04935@relay.urz.uni-heidelberg.de> Message-ID: <199807012142.XAA16990@frank.zdv.uni-mainz.de> Date: Wed, 1 Jul 1998 23:42:10 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: stop please To: Multiple recipients of list LATEX-L In-Reply-To: > Michael J. Downes wrote: > >In my opinion, there has been so far too much discussion and not > >enough substantial work with the published expl3 proposal. I do not > >say it is flawless, but I do say it is a waste of time to rehash it > >endlessly without any real work being done. When someone can post to > >CTAN a working package of nontrivial size using the current proposed > >conventions, then I will be ready to listen to their opinions with > >respect. > Hans Aberg writes: > So, if I was allowed to interfere, I would suggest that the names should > be named \tex/foo_bar:, with "_" a word separator and "/" a module > separator. This way the L3PL team can forget about higher module > abstractions for now, but on the same time ensuring that the L3PL does not > block that the modules concept being introduced fully at some later point. i can only agree with Michael that the discussion on this abstract level on the wonderful world of modules and their usefulness without anything to back them up with gets very inefficient and i like to challenge you once more - to actually produce a working prototype within TeX (and with prototype i don't mean three or four lines of code which show how to parse such syntax but a selfcontained format at least on the level of complexity of plain TeX that actually implements your ideas --- my strong suspicion backed by years of practical experience is that you will find it impossible) - or to actually use the L3PL on a substancial bit of code before making a lot of suggestions how to change it drastically it is not as if this is the result of people working who have never heard of modern computer languages in fact there have been some distinguished computer scientists who had a large influence on what you see right now. > If "/" does not prove to be suitable, then it can easily be changed to > something else at some later point. with absolutely the same argument i vote for keeping it the way as it is. the specification says \_: and it is as trivial as changing / to something else to replace \\[a-zA-Z]+_ by \\[a-zA-Z]+/ and i'm happy to do this if there is a need for this, eg if you prove me wrong and your module/submodule mechanism can be made workable in practise or if after experiencing with the code i got enough people (that used it) saying that they feel \foo/bar:nn is better readable to them than \foo_bar:nn frank 1-Jul-1998 22:32:25-GMT,4564;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id QAA22788 for ; Wed, 1 Jul 1998 16:32:19 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA11346; Wed, 1 Jul 1998 23:58:52 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376803 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 23:58:49 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA11330 for ; Wed, 1 Jul 1998 23:58:47 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id XAA11093 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 1 Jul 1998 23:58:47 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id XAA16984; Wed, 1 Jul 1998 23:41:22 +0200 References: <199806220631.QAA11602@ricetub.anu.edu.au> Message-ID: <199807012141.XAA16984@frank.zdv.uni-mainz.de> Date: Wed, 1 Jul 1998 23:41:22 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Modules and submodules To: Multiple recipients of list LATEX-L In-Reply-To: <199806220631.QAA11602@ricetub.anu.edu.au> beside "my please stop mail" i do want to explain why i think that a module/submodule concept as suggested by Hans is doomed to failure if applied all levels of programming within TeX. essentially i said this already in my mail a few days ago but perhaps it was not clear enough to people not having written large scale low-level TeX. Richard suggested at some point a syntax like \foo/bar_baz:nn and said "with catcode 11 for / _ :" now that is beside syntactic sugar exactly what we have now (where the statement is: the module name is the first word up to an _) it may be that this is better to read (although i doubt)[1] it but it is not functionally offering anything new. and importantly it doesn't offer what Hans has in mind (even though in some side remarks it sounds as if he thinks one can combine the two)[2] one of the main arguments for submodules (or class structures in OO languages) is the ability to overload functions/procedures and here is where it stops being usable. if the concept allows for this than at runtime! the binding has to be changed and that means: any expansion text of any macros can't contain something like \foo/bar_baz:nn as above (ie a token) but it must contain things that live on the module/submodule level ie is looked up by some internally programmed module handling interface. and that will bring you to my exponential growth in slowness. i'm not going to repeat the other arguments about loosing the basic expansion mechanism etc, which are at the heart of the low-level functionality of TeX. so while i think that the ideas itself are relevant to TeX, i'm strongly convinced that they are relevant only to a high-level language for producing the user interface, ie the document level. and that level should not at all deal with expand_after stuff or other low-level TeX rubbish and consequentially there is no reason that these languages should look the same or nearly the same if their concepts are completely different. frank [1] and i don't think people should make too fast statements on this without actually having worked with the language as is [2] as i said several times: *prove* me wrong by giving me something that i can run through initex which works, ie compiles at least simple documents without needing a minute per page --- don't try to prove me wrong by using applying gut-feeling from experiences in languages like C++, Smalltalk, Java, Modula, you name it. We have heard these arguments by now and we agree about their usefulness but we claim (from our experience) that they can't and shouldn't be applied to that level in TeX. 1-Jul-1998 22:51:40-GMT,2979;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id QAA23223 for ; Wed, 1 Jul 1998 16:51:31 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id AAA12443; Thu, 2 Jul 1998 00:31:45 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376824 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 00:31:43 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id AAA12433 for ; Thu, 2 Jul 1998 00:31:41 +0200 (MET DST) Received: from [130.237.37.55] (sl35.modempool.kth.se [130.237.37.55]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id AAA25130 for ; Thu, 2 Jul 1998 00:31:33 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199807011148.NAA04935@relay.urz.uni-heidelberg.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Thu, 2 Jul 1998 00:31:01 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: stop please To: Multiple recipients of list LATEX-L In-Reply-To: <199807012142.XAA16990@frank.zdv.uni-mainz.de> Frank Mittelbach wrote: > > If "/" does not prove to be suitable, then it can easily be changed to > > something else at some later point. > >with absolutely the same argument i vote for keeping it the way as it >is. Why bother about voting if you are the man? :-) >..the specification says \_: and it is as >trivial as changing / to something else to replace \\[a-zA-Z]+_ by >\\[a-zA-Z]+/ and i'm happy to do this if there is a need for this, Clearly not as it excludes those who want to experiment with submodules... > eg >if you prove me wrong and your module/submodule mechanism can be made >workable in practise or if after experiencing with the code i got >enough people (that used it) saying that they feel \foo/bar:nn is >better readable to them than \foo_bar:nn ...and then nobody will bother developing it. :-) Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 2-Jul-1998 5:03:46-GMT,1743;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id XAA00735 for ; Wed, 1 Jul 1998 23:03:44 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id GAA18112; Thu, 2 Jul 1998 06:40:00 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 375798 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 06:39:58 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id GAA18098 for ; Thu, 2 Jul 1998 06:39:53 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id OAA19317; Thu, 2 Jul 1998 14:39:46 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199807020439.OAA19317@ricetub.anu.edu.au> Date: Thu, 2 Jul 1998 14:39:46 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: \ior_close:N not defined To: Multiple recipients of list LATEX-L While playing around I discovered that \ior_close_N is not actually defined. The TeXhackers note tells me what to do :-) 2-Jul-1998 5:06:38-GMT,1686;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id XAA00808 for ; Wed, 1 Jul 1998 23:06:36 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id GAA18210; Thu, 2 Jul 1998 06:46:12 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 375804 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 06:46:10 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id GAA18195 for ; Thu, 2 Jul 1998 06:46:05 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.2) id OAA19321; Thu, 2 Jul 1998 14:46:00 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199807020446.OAA19321@ricetub.anu.edu.au> Date: Thu, 2 Jul 1998 14:46:00 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: \if_eof:w To: Multiple recipients of list LATEX-L For that matter, \if_eof:w isn't defined either. Curiouser and curiouser . . . 2-Jul-1998 8:10:33-GMT,10873;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id CAA04805 for ; Thu, 2 Jul 1998 02:10:32 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id JAA22476; Thu, 2 Jul 1998 09:25:22 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 375884 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 09:25:20 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id JAA22457 for ; Thu, 2 Jul 1998 09:25:14 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.8) id RAA19706; Thu, 2 Jul 1998 17:24:24 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199807020724.RAA19706@ricetub.anu.edu.au> Date: Thu, 2 Jul 1998 17:24:24 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: First experience with xr under L3PL To: Multiple recipients of list LATEX-L Well . . . some people got out of the wrong side of bed yesterday. (Stress from watching the World Cup? :-) While you Europeans were sleeping, I have been doing an experiment with my `minimalist proposal'. I picked a `random' package from tools to see what it looks like under L3PL. I happened to pick xr. I attach the files in full at the end of the message. Here are some notes on xr2.dtx gained from the experience: %\RequirePackage{l3io} This line is effectively `commented out'. I tried \usepackage{xr2} (with the \RequirePackage) first. As a result I had to put \CodeStart...\CodeStop around the `body' of the package. (The altered version of \RequirePackage doesn't take effect quickly enough.) So I changed my test document to say \usepackage{l3io,xr2} instead and commented out the \RequirePackage. Oh, and don't do this (as I did): \usepackage{l3io,graphicx,url,xr2} `Funny things' happen to graphicx and url (i.e. spaces get gobbled up) if you do that . . . you must put l3io and xr2 last. % ^^ACodeStart This is now commented out. \tex_catcode:D `\/=11\tex_relax:D I'm testing out the `/ _ : proposal' . . . internal macros will be prefixed by \tools/xr/. I haven't renamed the Team's L3PL names (e.g. \ior_eof:NTF to \ior/eof:NTF) - that will take a little more time! \let:NwN\ior_close:N\tex_closein:D \let:NwN\if_eof:w\tex_ifeof:D See my previous two messages . . . . \def_new:Npn\externaldocument{\@ifnextchar[\tools/xr/xr_main:w% {\tools/xr/xr_main:w[]}} I haven't tried to implement an import/export mechanism at this stage, so I just use \def_new:Npn here. \def_new:Npn\tools/xr/xr_main:w[#1]#2{{% This was \XR@; for want of a better name I chose xr_main. \def_new:Npn\tools/xr/loop:n#1{\ior_open:Nn\@inputcheck{#1}\scan_stop: A gotcha: you now need the braces around #1. \ior_eof:NTF\@inputcheck{ \PackageWarning{xr2}{^^JNo~file~#1^^JLABELS~NOT~IMPORTED.^^J}% \tools/xr/aux: }{ \PackageInfo{xr2}{IMPORTING~LABELS~FROM~#1}% \tools/xr/read:}} The use of \ior_eof:NTF avoids the need for a couple of \expandafters. \exp_after:NN\tools/xr/test:nnnn\tools/xr/line...\\} \def_long_new:Npn\tools/xr/test:nnnn#1#2#3#4\\{% The \\ in both these lines was \XR@. I wanted to change that to \tools/xr/dummy or something like that, but this doesn't work because \tools/xr/test:nnnn gets invoked when reading the .aux file, and at that stage / has catcode 12 again. (Using a _ wouldn't work either, of course.) \ior_eof:NTF\@inputcheck{\tools/xr/aux:}{\tools/xr/read:}} This is much easier to read! \tex_catcode:D `\/=12\tex_relax:D Undo my testing . . . %^^ACodeStop Also commented out. So . . . what are my impressions? First, highlighting in Emacs/AUC TeX/font-lock looks a bit funny; the highlighting of macros stops at the first /, _, or :. Easily fixed. Second, I think you will get used to / in the macro names. I can `parse' names such as \tools/xr/exp_list: without much trouble. If I have any parsing problems at all it is with lines such as: \if_meaning:NN\tools/xr/list\@empty\else: Somehow the NN stands out too much. Third, this example isn't as interesting as it might be; I have only used `function names' (no `parameter names'). And it's too small: the (only) apparent payoff of L3PL in xr was the two uses of \ior_eof:NTF. Clearly I have to try converting some of tools's larger packages. OK, it's 17.20 AEST which means the Germans, Swedes, and Spaniards are just sitting down at their computers and it's time for me to go home . . . enjoy! Richard. Here's tools2.ins: #### snip ######################################################## \input docstrip \def\SimplePackage#1{% \generate{\file{#1.sty}{\from{#1.dtx}{package}}}} \keepsilent \SimplePackage{xr2} \endbatchfile #### snip ######################################################## And xr2.dtx: #### snip ######################################################## % \iffalse %% File: xr.dtx Copyright (C) 1993-1994 David Carlisle % %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{xr2} % [1998/07/02 v15.02 eXternal References (DPC,RJW)] %\RequirePackage{l3io} % %<*driver> \documentclass{ltxdoc} \usepackage{xr2} \GetFileInfo{xr2.sty} \begin{document} \title{The \textsf{xr2} package\thanks{This file has version number \fileversion, last revised \filedate.}} \author{David Carlisle \\ L3PL experiments by Richard Walker\thanks{% The Author of Versions 1--4 was Jean-Pierre Drucbert}\\ carlisle@cs.man.ac.uk} \date{\filedate} \maketitle \DocInput{xr2.dtx} \end{document} % % \fi % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \CheckSum{87} % % \changes{v5.00}{1993/07/07} % {First DPC version (by agreement with J-PD). New mechanism % (\cmd{\read} instead of \cmd\input).} % % \changes{v5.01}{1993/07/20}{Fix bug added by DPC, v5.00 did not import % aux files of \cmd\include'ed files. (Reported by J-PD)} % % \changes{v5.02}{1994/05/28}{Update for LaTeX2e} % \changes{v15.02}{1998/07/02}{L3PL experiments} % % % This package implements a system for eXternal References. % % If one document needs to refer to sections of another, say |aaa.tex|, % then this package may be loaded in the main file, and the command\\ % |\externaldocument{aaa}|\\ % given in the preamble. % % Then you may use |\ref| and |\pageref| to refer to anything which has % been given a |\label| in either |aaa.tex| or the main document. % You may declare any number of such external documents. % % If any of the external documents, or the main document, use the same % |\label| then an error will occur as the label will be multiply % defined. To overcome this problem |\externaldocument| has an optional % argument. If you declare |\externaldocument[A-]{aaa}| Then all % references from |aaa| are prefixed by |A-|. So for instance, if a % section of |aaa| had |\label{intro}|, then this could be referenced % with |\ref{A-intro}|. The prefix need not be |A-|, it can be any % string chosen to ensure that all the labels imported from external % files are unique. Note however that if your style declares certain % active characters (|:| in French, |"| in German) then these % characters can not usually be used in |\label|, and similarly may not % be used in the optional argument to |\externaldocument|. % % \StopEventually{} % % \section{The macros} % % \begin{macrocode} %<*package> % ^^ACodeStart \tex_catcode:D `\/=11\tex_relax:D \let:NwN\ior_close:N\tex_closein:D \let:NwN\if_eof:w\tex_ifeof:D % \end{macrocode} % % Check for the optional argument. % \begin{macrocode} \def_new:Npn\externaldocument{\@ifnextchar[\tools/xr/xr_main:w% {\tools/xr/xr_main:w[]}} % \end{macrocode} % % Save the optional prefix. Start processing the first |aux| file. % \begin{macrocode} \def_new:Npn\tools/xr/xr_main:w[#1]#2{{% \makeatletter \def:Npn\tools/xr/prefix:{#1}% \tools/xr/next:w#2.aux\scan_stop:\\}} % \end{macrocode} % % Process the next |aux| file in the list and remove it from the head of % the list of files to process. % \begin{macrocode} \def_new:Npn\tools/xr/next:w#1\scan_stop:#2\\{% \def:Npx\tools/xr/list{#2}% \tools/xr/loop:n{#1}} % \end{macrocode} % % Check whether the list of |aux| files is empty. % \begin{macrocode} \def_new:Npn\tools/xr/aux:{% \if_meaning:NN\tools/xr/list\@empty\else: \exp_after:NN\tools/xr/exp_list:\fi:} % \end{macrocode} % % Expand the list of aux files, and call |\tools/xr/next| to process the first % one. % \begin{macrocode} \def_new:Npn\tools/xr/exp_list:{\exp_after:NN\tools/xr/next:w\tools/xr/list\\} % \end{macrocode} % % If the |aux| file exists, loop through line by line, looking for % |\newlabel| and |\@input|. Otherwise process the next file in the % list. % \begin{macrocode} \def_new:Npn\tools/xr/loop:n#1{\ior_open:Nn\@inputcheck{#1}\scan_stop: \ior_eof:NTF\@inputcheck{ \PackageWarning{xr2}{^^JNo~file~#1^^JLABELS~NOT~IMPORTED.^^J}% \tools/xr/aux: }{ \PackageInfo{xr2}{IMPORTING~LABELS~FROM~#1}% \tools/xr/read:}} % \end{macrocode} % % Read the next line of the aux file. % \begin{macrocode} \def_new:Npn\tools/xr/read:{% \ior_to:NN\@inputcheck\tools/xr/line % \end{macrocode} % The |...| make sure that |\tools/xr/test:nnnn| always has sufficient % arguments. % \begin{macrocode} \exp_after:NN\tools/xr/test:nnnn\tools/xr/line...\\} % \end{macrocode} % % Look at the first token of the line. % If it is |\newlabel|, do the |\newlabel|. If it is |\@input|, add the % filename to the list of files to process. Otherwise ignore. % Go around the loop if not at end of file. Finally process the next % file in the list. % \begin{macrocode} \def_long_new:Npn\tools/xr/test:nnnn#1#2#3#4\\{% \if_meaning:NN#1\newlabel \newlabel{\tools/xr/prefix:#2}{#3}% \else:\if_meaning:NN#1\@input \def:Npx\tools/xr/list{\tools/xr/list#2\scan_stop:}% \fi:\fi: \ior_eof:NTF\@inputcheck{\tools/xr/aux:}{\tools/xr/read:}} % \end{macrocode} % % \begin{macrocode} \tex_catcode:D `\/=12\tex_relax:D %^^ACodeStop % % \end{macrocode} % % \Finale % #### snip ######################################################## 2-Jul-1998 12:52:22-GMT,6884;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA09676 for ; Thu, 2 Jul 1998 06:52:16 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA15103; Thu, 2 Jul 1998 14:04:05 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376565 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 14:04:03 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA15091 for ; Thu, 2 Jul 1998 14:03:57 +0200 (MET DST) Received: from [130.237.37.107] (sl111.modempool.kth.se [130.237.37.137]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id OAA09257 for ; Thu, 2 Jul 1998 14:03:42 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199806220631.QAA11602@ricetub.anu.edu.au> <199806220631.QAA11602@ricetub.anu.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Thu, 2 Jul 1998 14:03:12 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: Modules and submodules To: Multiple recipients of list LATEX-L In-Reply-To: <199807012141.XAA16984@frank.zdv.uni-mainz.de> At 23:41 +0200 98/07/01, Frank Mittelbach wrote: >beside "my please stop mail" i do want to explain why i think that a >module/submodule concept as suggested by Hans is doomed to failure if >applied all levels of programming within TeX. > >essentially i said this already in my mail a few days ago but perhaps >it was not clear enough to people not having written large scale >low-level TeX. The reason I continued was that I got the impression that Frank Mittelbach misunderstood the whole idea of modules. :-) >Richard suggested at some point a syntax like \foo/bar_baz:nn and said >"with catcode 11 for / _ :" now that is beside syntactic sugar exactly >what we have now (where the statement is: the module name is the first >word up to an _) > >it may be that this is better to read (although i doubt)[1] it but it is >not functionally offering anything new. and importantly it doesn't >offer what Hans has in mind (even though in some side remarks it >sounds as if he thinks one can combine the two)[2] >one of the main arguments for submodules (or class structures in OO >languages) is the ability to overload functions/procedures Not really. So called name overloading does not have anything to do with avoiding name clashes, or developing in structured units like modules. Name overloading is just another feature that sometimes is convenient. Object orientation (OO) is often tied to the concept of derived classes, which in its turn is often tied to data with the ability to change class derivation dynamically at runtime, and it is not clear to me what that would mean to TeX, even though it is an interesting question. The main idea with modules, the way I see it, apart from avoiding name clashes, is allowing the developer to develop in logical units without having to bother about the internals of other modules, only their interface. (So the question of writing out the names directly or by some parsing mechanism is a question of giving the module a different interface.) The question is how much of this that can be made in TeX, but this is another question. >and here is where it stops being usable. if the concept allows for >this than at runtime! the binding has to be changed and that means: > >any expansion text of any macros can't contain something like >\foo/bar_baz:nn as above (ie a token) but it must contain things that >live on the module/submodule level ie is looked up by some internally >programmed module handling interface. and that will bring you to my >exponential growth in slowness. I think the whole misunderstanding by Frank Mittelbach is that he thinks that just because the modules concept admits a certain feature it also requires it. Name overloading in TeX, which is already present to some extent in LaTeX on the high level by the use of optional commands, would be great, but it is clear that TeX has a very limited capacity of achieving that and that it is slow. But then simply do not use that in situations where unsuitable. Summing it up, the use of names \foo_bar_baz:nn and viewing them as a part of a group named "foo" is already in some sense a module, where the use of "_" confuses the two concept of a module separator and a word separator. >[2] as i said several times: *prove* me wrong by giving me something >that i can run through initex which works, ie compiles at least simple >documents without needing a minute per page --- don't try to prove me >wrong by using applying gut-feeling from experiences in languages like >C++, Smalltalk, Java, Modula, you name it. We have heard these >arguments by now and we agree about their usefulness but we claim >(from our experience) that they can't and shouldn't be applied to that >level in TeX. Some other good languages one easily gets tired of are LISP, Scheme, SML, and Haskell, not to mention Perl, Simula, Pascal and all those database languages. It is clear that anything in the TeX domain must be on the conditions of TeX. But it is possible to state objectives one wants to achieve with those languages, and make them useful within TeX. For example: 1. Avoiding name clashes. 2. Avoiding being burdened with remembering names. 3. Ability to develop in logical units, only having to worry about the interface with other logical units. 4. Producing dynamic, runtime data. 5. Ability to reuse code in another context. 6. For new logical structures, preferably only having to write code for what differs relative already written code. (Roughly a translation of the concepts: 1. name-spaces/classes; 2. name overloading; 3. name-spaces/classes, 4. runtime derived OO classes; 5. code encapsulated in classes; 6. class derivation.) Those objectives make sense, even though it can be hard to figure out how to do it in TeX. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 2-Jul-1998 17:07:17-GMT,2446;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id LAA15309 for ; Thu, 2 Jul 1998 11:02:47 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id SAA06473; Thu, 2 Jul 1998 18:30:44 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 376911 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 18:30:41 +0200 Received: from fantasia.usc.es (root@fantasia.usc.es [193.144.64.79]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id SAA06463 for ; Thu, 2 Jul 1998 18:30:39 +0200 (MET DST) Received: from localhost by fantasia.usc.es with smtp id m0yro2k-000HRVC (Debian Smail-3.2 1996-Jul-4 #2); Thu, 2 Jul 1998 20:25:14 +0200 (CEST) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: Date: Thu, 2 Jul 1998 20:25:14 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Suarez de Lis Subject: LaTeX3 file format To: Multiple recipients of list LATEX-L In-Reply-To: <199807020446.OAA19321@ricetub.anu.edu.au> Greetings, it's been a time since I last subcribed to this list and I have found many changes in the trends of the new LaTeX version... Leaving the L3PL aside, where can I find information about the file format for LaTeX3? We on the LyX dev team are planning to change LyX format to something more powerful and flexible (LyX3 project), probably a subset of LaTeX itself, but one of our problems is if the file format will be changing (import/export from/to LaTeX not the main concern in here...) (For info about LyX, LyX3, &c please go to www.lyx.org) Well, thanks for any info you can give me, David@ -- David Suárez de Lis mailto:phdavidl@usc.es University of Santiago de Compostela SPAIN EU 2-Jul-1998 20:41:29-GMT,2133;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id OAA20874 for ; Thu, 2 Jul 1998 14:41:24 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA15708; Thu, 2 Jul 1998 22:03:36 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 377073 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 22:03:33 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id WAA15670 for ; Thu, 2 Jul 1998 22:03:14 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id WAA25646 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 22:03:14 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id VAA01129; Thu, 2 Jul 1998 21:42:25 +0200 References: <199807020446.OAA19321@ricetub.anu.edu.au> Message-ID: <199807021942.VAA01129@frank.zdv.uni-mainz.de> Date: Thu, 2 Jul 1998 21:42:25 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: \if_eof:w To: Multiple recipients of list LATEX-L In-Reply-To: <199807020446.OAA19321@ricetub.anu.edu.au> Richard Walker writes: > For that matter, \if_eof:w isn't defined either. > > Curiouser and curiouser . . . for this kind of real errors i'd be glad if you open a bug report. there is a category for the experimental packages frank 2-Jul-1998 20:48:43-GMT,7200;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id OAA21042 for ; Thu, 2 Jul 1998 14:48:37 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA15685; Thu, 2 Jul 1998 22:03:18 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 377069 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 22:03:15 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id WAA15667 for ; Thu, 2 Jul 1998 22:03:13 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id WAA25630 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 22:03:13 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id VAA01123; Thu, 2 Jul 1998 21:40:51 +0200 References: <199807020724.RAA19706@ricetub.anu.edu.au> Message-ID: <199807021940.VAA01123@frank.zdv.uni-mainz.de> Date: Thu, 2 Jul 1998 21:40:51 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: First experience with xr under L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199807020724.RAA19706@ricetub.anu.edu.au> Richard writes: > Well . . . some people got out of the wrong side of bed yesterday. > (Stress from watching the World Cup? :-) do you mean me? :-) guess not, neither world cup, nor out of bed this was before going to bed. and even if you feel it was harsh it has at least seemed to serve some purpose > While you Europeans were sleeping, I have been doing an experiment > with my `minimalist proposal'. see? > I picked a `random' package from tools to see what it looks like under > L3PL. I happened to pick xr. fine, however you could take the exercise further and actually apply some of the functionality of L3PL. i've appended my version below > Here are some notes on xr2.dtx gained from the experience: > > %\RequirePackage{l3io} > > This line is effectively `commented out'. > I tried \usepackage{xr2} (with the \RequirePackage) first. As a > result I had to put \CodeStart...\CodeStop around the `body' of the > package. (The altered version of \RequirePackage doesn't take effect > quickly enough.) So I changed my test document to say > \usepackage{l3io,xr2} instead and commented out the \RequirePackage. actually it works if there is a blank line after the \RequirePackage we know that we had a problem with this bit of code but i thought we got that fixed, seems not so needs looking after > Oh, and don't do this (as I did): > \usepackage{l3io,graphicx,url,xr2} > > `Funny things' happen to graphicx and url (i.e. spaces get gobbled up) > if you do that . . . you must put l3io and xr2 last. sorry yes, that a known problem with putting things together on top of each other. > \let:NwN\ior_close:N\tex_closein:D > \let:NwN\if_eof:w\tex_ifeof:D > > See my previous two messages . . . . well yes. my fault really, i imported the io module from some other file structure and only tested it with the l3precomp stuff which doesn't need reads > \def_new:Npn\tools/xr/loop:n#1{\ior_open:Nn\@inputcheck{#1}\scan_stop: > > A gotcha: you now need the braces around #1. and no \scan_stop: :-) > The \\ in both these lines was \XR@. I wanted to change that to > \tools/xr/dummy or something like that, but this doesn't work because > \tools/xr/test:nnnn gets invoked when reading the .aux file, and at > that stage / has catcode 12 again. (Using a _ wouldn't work either, > of course.) ???? works i'd say in my implementation > Second, I think you will get used to / in the macro names. > I can `parse' names such as \tools/xr/exp_list: without much > trouble. If I have any parsing problems at all it is with lines such > as: > \if_meaning:NN\tools/xr/list\@empty\else: > Somehow the NN stands out too much. what helps a lot is to use sufficient white space, see my file > Third, this example isn't as interesting as it might be; I have only > used `function names' (no `parameter names'). And it's too small: the > (only) apparent payoff of L3PL in xr was the two uses of \ior_eof:NTF. actually i don't think it is too short. when i converted it the result was much shorter (and clearer i'd say, but see for yourself) > Clearly I have to try converting some of tools's larger packages. yes please, but try to apply some more of what the fragments of L3PL already offer > . . . enjoy! same to you frank i didn't bother to keep it as .dtx file since that would have meant to rewrite the docu :-) ----------------- test \begin{filecontents}{l3xr} \RequirePackage{l3io} \RequirePackage{l3seq} % that of course should be in l3io \let:NwN\ior_close:N\tex_closein:D \let:NwN\if_eof:w\tex_ifeof:D % well, that has already an interface in 2e \newcommand\externaldocument[2][] { { \makeatletter \def:Npn \l_xr_prefix_tlp {#1} \seq_push:Nn \l_xr_subfiles_seq {#2.aux} \xr_loop: } } \seq_new:N \l_xr_subfiles_seq \def_new:Npn \xr_loop: { \seq_pop:NN \l_xr_subfiles_seq \l_xr_file_tlp \ior_open:Nn \@inputcheck {\l_xr_file_tlp} \ior_eof:NTF \@inputcheck { \PackageWarning{l3xr}{^^JNo~ file~ \l_xr_file_tlp^^JLABELS~ NOT~ IMPORTED.^^J} } { \PackageInfo{l3xr}{IMPORTING~ LABELS~ FROM~ \l_xr_file_tlp} \xr_read_file: } \seq_empty:NF \l_xr_subfiles_seq { \xr_loop: } } \def_new:Npn\xr_read_file: { \ior_to:NN \@inputcheck \l_xr_line_tlp % \end{macrocode} % The |...| make sure that |\xr_test:w| always has sufficient % arguments (three at least). % \begin{macrocode} \exp_after:NN \xr_test:w \l_xr_line_tlp . . . \xr_test:w } \def_long_new:Npn\xr_test:w #1 #2 #3 #4 \xr_test:w { \if_meaning:NN #1 \newlabel \newlabel{ \l_xr_prefix_tlp #2 }{#3} \else: \if_meaning:NN #1 \@input \seq_push:Nn \l_xr_subfiles_seq {#2} \fi: \fi: \ior_eof:NF \@inputcheck { \xr_read_file: } } \end{filecontents} \begin{filecontents}{aaa.aux} \newlabel{foo}{{1foo}{2}} \end{filecontents} \begin{filecontents}{aaa2.aux} \newlabel{foo}{{1foo2}{2}} \@input{aaa3.aux} \end{filecontents} \begin{filecontents}{aaa3.aux} \newlabel{bar}{{3bar}{2}} \end{filecontents} \documentclass{article} \usepackage{l3xr} \externaldocument[A-]{aaa} \externaldocument{aaa2} \begin{document} some label \label{label} and \ref{foo} and \ref{A-foo} and \ref{bar}. \end{document} 2-Jul-1998 21:43:07-GMT,3597;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id PAA22411 for ; Thu, 2 Jul 1998 15:43:01 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA18341; Thu, 2 Jul 1998 23:05:52 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 377119 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 23:05:49 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA18312 for ; Thu, 2 Jul 1998 23:05:36 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id XAA25938 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 23:05:36 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id WAA01209; Thu, 2 Jul 1998 22:51:12 +0200 References: <199807011148.NAA04935@relay.urz.uni-heidelberg.de> <199807012142.XAA16990@frank.zdv.uni-mainz.de> Message-ID: <199807022051.WAA01209@frank.zdv.uni-mainz.de> Date: Thu, 2 Jul 1998 22:51:12 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: stop please To: Multiple recipients of list LATEX-L In-Reply-To: Hans writes: > Why bother about voting if you are the man? :-) you may be right that this is like voting with my kids (they have two each and the parents have one) > >..the specification says \_: and it is as > >trivial as changing / to something else to replace \\[a-zA-Z]+_ by > >\\[a-zA-Z]+/ and i'm happy to do this if there is a need for this, > > Clearly not as it excludes those who want to experiment with submodules... com'on. with a spec as is you can experiment with modules if you really want to as easily as with some other. just introduce / as a sub-module separator in the first word. you may be right that it would look perhaps look ugly but it would work without any problem and would prove either me or you wrong. so \foo_bar:nn would be module foo function bar and \foo/baz_bar:nn would be module foo submodule baz function bar so what? (and it doesn't look so bad actually) just to change all the files to some new convention takes some effort which can be better spend. at the moment at least! > > eg > >if you prove me wrong and your module/submodule mechanism can be made > >workable in practise or if after experiencing with the code i got > >enough people (that used it) saying that they feel \foo/bar:nn is > >better readable to them than \foo_bar:nn > > ...and then nobody will bother developing it. :-) too bad, but i claim it is a red hering. it is simply easier to abstractly talk about such things instead of doing the nitty gritty work. frank 2-Jul-1998 21:46:51-GMT,5544;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id PAA22497 for ; Thu, 2 Jul 1998 15:46:35 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA18325; Thu, 2 Jul 1998 23:05:40 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 377115 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 23:05:38 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA18310 for ; Thu, 2 Jul 1998 23:05:35 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id XAA26798 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 2 Jul 1998 23:05:35 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id WAA01203; Thu, 2 Jul 1998 22:51:05 +0200 References: <199806220631.QAA11602@ricetub.anu.edu.au> <199807012141.XAA16984@frank.zdv.uni-mainz.de> Message-ID: <199807022051.WAA01203@frank.zdv.uni-mainz.de> Date: Thu, 2 Jul 1998 22:51:05 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Modules and submodules To: Multiple recipients of list LATEX-L In-Reply-To: Hans writes: > At 23:41 +0200 98/07/01, Frank Mittelbach wrote: ^^^^^ and up at 6 in the morning which is one reason why i'm not spelling out everything, but it seems i would need to and probably more so. > >essentially i said this already in my mail a few days ago but perhaps > >it was not clear enough to people not having written large scale > >low-level TeX. > > The reason I continued was that I got the impression that Frank > Mittelbach misunderstood the whole idea of modules. :-) but your impression is wrong > >one of the main arguments for submodules (or class structures in OO > >languages) is the ability to overload functions/procedures > > Not really. So called name overloading does not have anything to do with sorry i probably shouldn't have used "main" but don't you see that my arguments apply to your other advantages (to a large extend) as well? > The main idea with modules, the way I see it, apart from avoiding name > clashes, is allowing the developer to develop in logical units without > having to bother about the internals of other modules, only their > interface. (So the question of writing out the names directly or by some > parsing mechanism is a question of giving the module a different interface.) > > The question is how much of this that can be made in TeX, but this is > another question. no that is the question > Summing it up, the use of names \foo_bar_baz:nn and viewing them as a > part of a group named "foo" is already in some sense a module, where the > use of "_" confuses the two concept of a module separator and a word > separator. which is why the first word in the spec is called . whether using a spec like we did is confusing or not is a question of perspective and if all you are interested in is having the module part being separated by /es and not by _ then there is nothing really that you would need to experiment other than looking about what you consider reads better or does not confuses the issues --- and the latter is mainly a question of personal feelings so summing up > (Roughly a translation of the concepts: 1. name-spaces/classes; 2. name > overloading; 3. name-spaces/classes, 4. runtime derived OO classes; 5. code > encapsulated in classes; 6. class derivation.) other than 1 and 3 (which are basically provided already even though you don't like reuse of _) none of the above is doable without runtime lookup strategies not using the token based approach of TeX. which i claim is deadly on the base level we are talking about. again prove me wrong; as i said in my other message it is easy enough to stay within the naming conventions of L3PL as of now and extend them to allow submodules so this is no argument for my challenge to prove me wrong by implementing anything of the above for the low-level. > > Those objectives make sense, even though it can be hard to figure out how > to do it in TeX. i subscribe to the idea that those objectives make sense; it is not that i never heard of them (being married happily to an OO-expert for 14 years) or applied them --- it's the "figure out how to do it in TeX" i claim is the crux in the matter. so please don't just advertise these objectives abstractly, that is done enough and if you still think i misunderstand the whole idea behind what you are saying please also think that i will do this forever unless you show your ideas within a running tex system good night frank 2-Jul-1998 23:18:04-GMT,3632;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id RAA24516 for ; Thu, 2 Jul 1998 17:18:02 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id AAA21599; Fri, 3 Jul 1998 00:42:24 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 377192 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 3 Jul 1998 00:42:21 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id AAA21589 for ; Fri, 3 Jul 1998 00:42:19 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id AAA28695 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 3 Jul 1998 00:42:20 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id XAA01307; Thu, 2 Jul 1998 23:53:18 +0200 References: <199806220631.QAA11602@ricetub.anu.edu.au> Message-ID: <199807022153.XAA01307@frank.zdv.uni-mainz.de> Date: Thu, 2 Jul 1998 23:53:18 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: Modules To: Multiple recipients of list LATEX-L In-Reply-To: Hans Aberg writes: > Javier Bezos wrote: > > Renaming commands > > ~~~~~~~~~~~~~~~~~ > > Suppose someone is determined to study the internal latex code with the > > new naming scheme. He take the TeXbook and... surprise! The latex code is > > absolutely unintelligible. > > Richard Walker wrote: > >This was my reaction too. And the new names are often not transparent > >renamings of the original - as you point out, some are subtly > >different. You need to know not only the new names but you need to > >keep the implementations in mind too. > > I think the contrary: This is a very good, bold move, that is, if it can > be made to work. One then becomes independent of that old PlainTeX once for > all, and is free to build up an entirely new consistent logical structure. don't think i always disagree :-) i also think that neither Javier's nor Richard's fears are warranted. it is true that you would have a hard time to understand the code starting just from the TeX book. but this is true for any format that tries to do a bit more than plain TeX --- try understanding a few lines of lollipop or ConTeXT taken out of the middle (or even LaTeX2e without documentation and context) no i think that this you will have this problem always and the solution is that you provide a replacement book for the TeX book. > This will perhaps prepare for a new version of TeX, which can take care of > the new LaTeX3 structures efficiently. well yes and no. as long as you stay at least essentially with the token based interpreter then some things will not work. but yes this is something that can be hoped for. frank 3-Jul-1998 3:33:38-GMT,2332;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id VAA29222 for ; Thu, 2 Jul 1998 21:33:36 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id FAA26249; Fri, 3 Jul 1998 05:04:20 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 377291 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 3 Jul 1998 05:04:18 +0200 Received: from salmon.maths.tcd.ie (mmdf@salmon.maths.tcd.ie [134.226.81.11]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id FAA26238 for ; Fri, 3 Jul 1998 05:04:16 +0200 (MET DST) Received: from boole.maths.tcd.ie by salmon.maths.tcd.ie with SMTP id ; 3 Jul 98 04:04:16 +0100 (BST) X-Mailer: ELM [version 2.4ME+ PL40 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-ID: <9807030404.aa09947@boole.maths.tcd.ie> Date: Fri, 3 Jul 1998 04:04:15 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Timothy Murphy Subject: Re: First experience with xr under L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199807021940.VAA01123@frank.zdv.uni-mainz.de> from Frank Mittelbach at "Jul 2, 98 09:40:51 pm" > fine, however you could take the exercise further and actually apply > some of the functionality of L3PL. i've appended my version below Thank you for your example. At least I now understand (roughly) what all the philosophical discussion was about. However, I am still puzzled by the purpose of it all. The new xr.sty is manifestly more difficult to follow than its predecessor. So who is meant to benefit ? The user, the package writer, ... ? And what exactly is the benefit ? (I'd be grateful for an explanation not using the word "module", which makes my head dizzy.) 3-Jul-1998 12:33:11-GMT,1777;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA09360 for ; Fri, 3 Jul 1998 06:33:05 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA24253; Fri, 3 Jul 1998 14:06:31 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 377913 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 3 Jul 1998 14:06:29 +0200 Received: from heaton.cl.cam.ac.uk (exim@heaton.cl.cam.ac.uk [128.232.32.11]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA24236 for ; Fri, 3 Jul 1998 14:06:27 +0200 (MET DST) Received: from dorceus.cl.cam.ac.uk (cl.cam.ac.uk) [128.232.1.34] (rf) by heaton.cl.cam.ac.uk with esmtp (Exim 1.82 #1) id 0ys4bj-0006Be-00; Fri, 3 Jul 1998 13:06:27 +0100 Message-ID: Date: Fri, 3 Jul 1998 13:06:26 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Robin Fairbairns Subject: Re: stop please To: Multiple recipients of list LATEX-L In-Reply-To: Your message of "Fri, 03 Jul 1998 14:03:29 +0200." hans aberg writes: > being married to an OO-expert what's she an expert in? does she have any public interfaces? r 3-Jul-1998 12:36:37-GMT,2796;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA09415 for ; Fri, 3 Jul 1998 06:36:22 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA24088; Fri, 3 Jul 1998 14:04:22 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 377906 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 3 Jul 1998 14:04:19 +0200 Received: from mail.nada.kth.se (root@mail.nada.kth.se [130.237.222.92]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA24073 for ; Fri, 3 Jul 1998 14:04:17 +0200 (MET DST) Received: from [130.237.37.71] (sl103.modempool.kth.se [130.237.37.129]) by mail.nada.kth.se (8.8.7/8.8.7) with ESMTP id OAA07524 for ; Fri, 3 Jul 1998 14:04:08 +0200 (MET DST) X-Sender: su95-hab@mail.nada.kth.se References: <199807011148.NAA04935@relay.urz.uni-heidelberg.de> <199807012142.XAA16990@frank.zdv.uni-mainz.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: Date: Fri, 3 Jul 1998 14:03:29 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Hans Aberg Subject: Re: stop please To: Multiple recipients of list LATEX-L In-Reply-To: <199807022051.WAA01209@frank.zdv.uni-mainz.de> I have decided to stop, and I am not going make comments like that being married to an OO-expert for 14 years is not the same thing as acquiring the knowledge by yourself, and that loyalties to the spouse may make you stuck in dogmas which you otherwise would not. Please observe that I did not make that comment, I just indicated that I could have made that comment, but I decided to not do it. :-) Otherwise, I think the prudent thing is to start thinking about modules in LaTeX at the point in time when the module and word separators are not mixed up. Hans Aberg * Email: Hans Aberg * Home Page: * AMS member listing: 3-Jul-1998 21:09:35-GMT,3623;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id PAA19183 for ; Fri, 3 Jul 1998 15:09:29 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id WAA17408; Fri, 3 Jul 1998 22:45:34 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 378307 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 3 Jul 1998 22:45:32 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id WAA17398 for ; Fri, 3 Jul 1998 22:45:30 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id WAA11641 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Fri, 3 Jul 1998 22:45:31 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id UAA00254; Fri, 3 Jul 1998 20:14:36 +0200 References: <199807021940.VAA01123@frank.zdv.uni-mainz.de> <9807030404.aa09947@boole.maths.tcd.ie> Message-ID: <199807031814.UAA00254@frank.zdv.uni-mainz.de> Date: Fri, 3 Jul 1998 20:14:36 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: First experience with xr under L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <9807030404.aa09947@boole.maths.tcd.ie> Tim, > However, I am still puzzled by the purpose of it all. > The new xr.sty is manifestly more difficult to follow > than its predecessor. is it really are are you only slightly taken aback by the many _ which is used to typical latex code with @ signs is something one needs to use two or three times to get used to. if this is a problem for you try looking at it using a global replace with _ to @ the example chosen by Richerd in the first place is perhaps not that good as it is not allowing you to really make use of the features of the language. the only think i used was the \seq module (sorry:-) which actually also implements stacks so i could push and pop aux file names onto the variable \l_xr_subfiles_seq and a few of these test commands like \ior_eof:NTF which made the code a lot more compact. in fact just by concerting it i found that i could do the package with a much simpler algorithm at it is implemented right now. > So who is meant to benefit ? > The user, the package writer, ... ? the package writer in the first place, the user indirectly as it should lead to cleaner internal code which works better together. > And what exactly is the benefit ? as the example chosen does not really contain much code there is not much benefit (other than those i tried to explain), for example all the benefit about argument handling is not used. but who knows, perhaps Richard (when the Europeans are sleeping) is trying it once more on a more complex example (hopefully really trying to use the additional functionality offered as well) maybe there are others who wish to comment on the different versions? frank 6-Jul-1998 8:48:53-GMT,6041;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id CAA18872 for ; Mon, 6 Jul 1998 02:48:51 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id KAA20543; Mon, 6 Jul 1998 10:11:23 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 379613 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 6 Jul 1998 10:11:21 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id KAA20533 for ; Mon, 6 Jul 1998 10:11:16 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.8) id SAA24960; Mon, 6 Jul 1998 18:10:59 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199807020724.RAA19706@ricetub.anu.edu.au> <199807021940.VAA01123@frank.zdv.uni-mainz.de> X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199807060810.SAA24960@ricetub.anu.edu.au> Date: Mon, 6 Jul 1998 18:10:59 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: First experience with xr under L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199807021940.VAA01123@frank.zdv.uni-mainz.de> Frank Mittelbach writes: > fine, however you could take the exercise further and actually apply > some of the functionality of L3PL. i've appended my version below Yes, I could have done that if I knew what I was doing! > > %\RequirePackage{l3io} > actually it works if there is a blank line after the \RequirePackage Indeed (I checked) - very interesting! > > \def_new:Npn\tools/xr/loop:n#1{\ior_open:Nn\@inputcheck{#1}\scan_stop: > > > > A gotcha: you now need the braces around #1. > > and no \scan_stop: :-) Yes, that's the sort of thing that happens when you don't think carefully about what you're doing. I plead that I was (and still am) suffering from a bad cold. > > The \\ in both these lines was \XR@. I wanted to change that to > > \tools/xr/dummy or something like that, but this doesn't work because > > \tools/xr/test:nnnn gets invoked when reading the .aux file, and at > > that stage / has catcode 12 again. (Using a _ wouldn't work either, > > of course.) > > ???? works i'd say in my implementation As usual you are right, and I can't even reproduce this problem. I think it happened when I was using the \RequirePackage, but it's not worth tracking down further at this stage. > ----------------- test > > \begin{filecontents}{l3xr} l3xr.sty, natch . . . > % well, that has already an interface in 2e > > \newcommand\externaldocument[2][] > { > { > \makeatletter > \def:Npn \l_xr_prefix_tlp {#1} > \seq_push:Nn \l_xr_subfiles_seq {#2.aux} > \xr_loop: > } > } > > \seq_new:N \l_xr_subfiles_seq No, if you want to do it `properly' you must say: \newcommand\externaldocument[2][] { { \makeatletter \tlp_set:Nn \l_xr_prefix_tlp {#1} \seq_push:Nn \l_xr_subfiles_seq {#2.aux} \xr_loop: } } \tlp_new:Nn \l_xr_prefix_tlp {} \seq_new:N \l_xr_subfiles_seq > \def_new:Npn \xr_loop: > { > \seq_pop:NN \l_xr_subfiles_seq \l_xr_file_tlp > \ior_open:Nn \@inputcheck {\l_xr_file_tlp} > \ior_eof:NTF \@inputcheck > { > \PackageWarning{l3xr}{^^JNo~ file~ \l_xr_file_tlp^^JLABELS~ NOT~ IMPORTED.^^J} > } > { > \PackageInfo{l3xr}{IMPORTING~ LABELS~ FROM~ \l_xr_file_tlp} > \xr_read_file: > } > \seq_empty:NF \l_xr_subfiles_seq > { \xr_loop: } > } \seq_pop:NN is not listed in the first part of the l3seq documentation. It was not obvious that one is allowed/supposed to use it. And you to `declare' this as well: \tlp_new:N \l_xr_file_tlp {} The rest seems OK . . . . Tim's questions are really quite important for the `average' package writer, because they will be programing `in-the-small', and the xr example is quite a good one for that. Even such a small package has needed a total re-think and re-writing. Clearly I haven't yet got my brain around what one is supposed to do with all of the new data types (prop, seq, tlp) - and I doubt anyone else listening has. Because there are no examples I have to do a lot of mind-reading. So I am going to study your l3xr more carefully and have a go at a larger package. (I've been in Melbourne since February and I'm moving back to Canberra this week, so don't hold your breath - but I'll do my best!) > com'on. with a spec as is you can experiment with modules if you > really want to as easily as with some other. just introduce / as a > sub-module separator in the first word. you may be right that it would > look perhaps look ugly but it would work without any problem and would > prove either me or you wrong. > > so \foo_bar:nn would be module foo function bar > and \foo/baz_bar:nn would be module foo submodule baz function bar > > so what? (and it doesn't look so bad actually) I am going to think about that one for a while. First impressions, using my example: \tools/xr/exp_list: becomes \tools/xr_exp_list: It has a certain `cringe factor' about it, because `xr' has somehow moved from the name of the package to the name of the function. To me, allowing _ within the part and using it as the separator is really ugly. ObPolemic: But maybe the LaTeX world is too small for a hierarchical naming scheme - even though CTAN (not to mention TDS) would suggest otherwise. 6-Jul-1998 12:57:17-GMT,3314;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA22897 for ; Mon, 6 Jul 1998 06:57:15 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA10236; Mon, 6 Jul 1998 14:29:34 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 379910 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 6 Jul 1998 14:29:32 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA10224 for ; Mon, 6 Jul 1998 14:29:30 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA144 for ; Mon, 6 Jul 1998 14:29:29 +0200 Received: from [195.122.197.67] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAA211 for ; Mon, 6 Jul 1998 14:32:57 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Message-ID: <199807061229.OAA10224@relay.urz.uni-heidelberg.de> Date: Mon, 6 Jul 1998 14:26:54 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Miscellany To: Multiple recipients of list LATEX-L 1. The \toks_put_left is defined \def_new:Npn \toks_put_left:Nn #1{\exp_after:NN\toks_put_left_aux:w \toks_use:N #1\q_stop #1} \def_long_new:Npn \toks_put_left_aux:w #1\q_stop #2#3{#2{#3#1}} but if the toks contains a quark stop the command fails. This sort of errors is very disconcerting (I found it very often in 2e) and I think should be avoided as possible. This could be defined \def_new:Npn \toks_put_left:Nn #1{\exp_after:NN\toks_put_left_aux:w \exp_after:NN{\toks_use:N #1}#1} \def_long_new:Npn \toks_put_left_aux:w #1#2#3{#2{#3#1}} which is only a token longer. 2. Every people is a world and it's impossible to devise a syntax which all people will be happy with. But even so, I think I must avoid just "importing" to TeX the syntax from our favourite programming language. TeX has its own internal logic and its own established syntax and this should be our starting point. Am I the only guy in the world whose favourite language is TeX? :-) 3. David said >although looking at your example above / looks too `hard' >a break to me, I can read \chk_var_or_const:N as one token but \chk/ >looks too split off. I think so, but I prefer it (or !) to _ which is too weak. Personally, I've always disliked the underscore because it looks as it was out of the text line, and I've preferred the uppercase convention of Modula2 or AppleTalk. Javier Regards 6-Jul-1998 21:38:34-GMT,6088;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id PAA05930 for ; Mon, 6 Jul 1998 15:38:32 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA10078; Mon, 6 Jul 1998 23:04:05 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 380526 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 6 Jul 1998 23:04:02 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA10064 for ; Mon, 6 Jul 1998 23:04:01 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id XAA12520 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 6 Jul 1998 23:04:00 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id WAA19898; Mon, 6 Jul 1998 22:20:58 +0200 References: <199807020724.RAA19706@ricetub.anu.edu.au> <199807021940.VAA01123@frank.zdv.uni-mainz.de> <199807060810.SAA24960@ricetub.anu.edu.au> Message-ID: <199807062020.WAA19898@frank.zdv.uni-mainz.de> Date: Mon, 6 Jul 1998 22:20:58 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: First experience with xr under L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199807060810.SAA24960@ricetub.anu.edu.au> Richard Walker writes: > Frank Mittelbach writes: > > fine, however you could take the exercise further and actually apply > > some of the functionality of L3PL. i've appended my version below > > Yes, I could have done that if I knew what I was doing! no critique intended. i know that this is not easy if you haven't felt yourself around in those set of functions. > > > %\RequirePackage{l3io} > > actually it works if there is a blank line after the \RequirePackage > > Indeed (I checked) - very interesting! not really, just a bloody pain in the neck which should get fixed at some point even though the current mix of 2e + L3PL is only for experiments anyway > > ----------------- test > > > > \begin{filecontents}{l3xr} > > l3xr.sty, natch . . . guilty. comes from doing manual changes in the code without rechecking it. should know not to do this. > No, if you want to do it `properly' you must say: > > \newcommand\externaldocument[2][] > { > { > \makeatletter > \tlp_set:Nn \l_xr_prefix_tlp {#1} > \seq_push:Nn \l_xr_subfiles_seq {#2.aux} > \xr_loop: > } > } again caught :-( in fact i saw that one the moment the mail went out i can't claim any cold though the whether is good for getting one. my only excuse is that mainly i was doing what you (probably) did, namely search and replace first with some cosmetic fixes. > \seq_pop:NN is not listed in the first part of the l3seq > documentation. It was not obvious that one is allowed/supposed to use > it. is it not? oversight, then probably the whole set of stack type of commands is missing. it is indeed. sorry for that. will see that this gets updated soon. but essentially all the stuff in the implementation section about stacks is intended for general use. > The rest seems OK . . . . what a relieve :-) > Tim's questions are really quite important for the `average' package > writer, because they will be programing `in-the-small', and the xr > example is quite a good one for that. Even such a small package has > needed a total re-think and re-writing. true but is it so much different from having to hunt through the LaTeX source to find you way in providing packages? After all a lot of the documentation therein was provided by us during the last years before that its internal documentation was very much out of date (still is in some parts). what i mean is, you need to have got a feeling for it but that it true right now as well except that right now because of nearly no conventions people are forced to reinvent the wheel over and over just because they don't know that some command or datatype or whatever already exist somewhere. so yes you need a re-think, you probably don't need much of a rewriting for an existing package if you just mainly do a manual translation but you can gain a lot once you start replacing all you low-level private code by already provided solutions for many of the basic functionality which right now is often repeated over and over again in packages. > Clearly I haven't yet got my brain around what one is supposed to do > with all of the new data types (prop, seq, tlp) - and I doubt anyone > else listening has. Because there are no examples I have to do a lot > of mind-reading. So I am going to study your l3xr more carefully and > have a go at a larger package. (I've been in Melbourne since February > and I'm moving back to Canberra this week, so don't hold your breath - > but I'll do my best!) i hope that we can provide more examples and others do so as well. > > so \foo_bar:nn would be module foo function bar > > and \foo/baz_bar:nn would be module foo submodule baz function bar > > > > so what? (and it doesn't look so bad actually) > > I am going to think about that one for a while. it is not perfect. all i was trying to say is that even within the current spec you could implement a module/submodule and thus experiment with it. my whole point is that for this the current spec doesn't need changing right now! frank 6-Jul-1998 22:18:03-GMT,3201;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id QAA06984 for ; Mon, 6 Jul 1998 16:18:02 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA11617; Mon, 6 Jul 1998 23:55:27 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 380553 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 6 Jul 1998 23:55:25 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA11607 for ; Mon, 6 Jul 1998 23:55:24 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id XAA12811 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 6 Jul 1998 23:55:24 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id XAA20404; Mon, 6 Jul 1998 23:46:39 +0200 References: <199807011149.NAA05027@relay.urz.uni-heidelberg.de> Message-ID: <199807062146.XAA20404@frank.zdv.uni-mainz.de> Date: Mon, 6 Jul 1998 23:46:39 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: naming of primitives To: Multiple recipients of list LATEX-L In-Reply-To: <199807011149.NAA05027@relay.urz.uni-heidelberg.de> Javier Bezos writes: > IMHO, this makes a very strong case _against_ renaming the TeX > primitives. refering to the fact that a \tracingall equivalent does show the primitives by their original name (or rather by there pool type name) in the log or the screen. actually we have discussed this for a long time and our conclusion was that it isn't really a problem for two reasons. first of all it would be a onetime effort to actually provide a pool file to go with the the latex distribution that would contain the new names and thus everything would show up as written. of course this would really cutting roots from the TeX book. the alternative is to just keep it as it is. after all if all the internal primitives look like \tex_:D then making the connection to a log file line that says {} isn't that hard. in fact it is perhaps even easier than in formats where some of the primitives have been renamed and others not. of course you would want some user/developer interface to things like \tex_show:D so that you can access them directly also there is the question how good low-level tracing really is in a complex environment or whether you need to rely on tracing facilities provided by the individual modules (normally) good night frank 6-Jul-1998 22:19:59-GMT,3714;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id QAA07052 for ; Mon, 6 Jul 1998 16:19:58 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA11687; Mon, 6 Jul 1998 23:58:08 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 380560 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 6 Jul 1998 23:58:06 +0200 Received: from math.ams.org (math.ams.org [130.44.210.14]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA11676 for ; Mon, 6 Jul 1998 23:57:59 +0200 (MET DST) Received: from sun06.ams.org by math.ams.org via smtpd (for relay.urz.uni-heidelberg.de [129.206.119.201]) with SMTP; 6 Jul 1998 21:57:57 UT Received: from sun06.ams.org by sun06.ams.org (PMDF V5.1-10 #27147) id <0EVP00F0110KNB@sun06.ams.org> for latex-l@urz.uni-heidelberg.de; Mon, 6 Jul 1998 17:57:56 -0400 (EDT) MIME-version: 1.0 X-Mailer: Gnus v5.5/Emacs 20.2 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Lines: 40 Message-ID: <199807062157.XAA11676@relay.urz.uni-heidelberg.de> Date: Mon, 6 Jul 1998 17:57:56 -0400 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project Comments: Resent-From: mjd@ams.org Comments: Originally-From: Michael John Downes From: "Michael J. Downes" Subject: Neglected "primitives" To: Multiple recipients of list LATEX-L l3basics.dtx mentions \c_space_chartok, evidently the equivalent of \@sptoken, but it's not defined anywhere. In fact there is a group of similar "character-token primitives". For experimentation purposes I would suggest giving them new LaTeX3 names in l3basics. Some, if not all of these, as I recall, are dealt with off somewhere in another package, but it did not get included in the expl3 release. (catcode 1) \bgroup -> \group_begin_lbrace: (?) (catcode 2) \egroup -> \group_end_rbrace: (?) (catcode 3) $ -> \math_start: (and also \math_end:) \gdef:Npn \math_start_display: {\math_start:\math_start:} \gdef:Npn \math_end_display: {\math_end:\math_end:} (catcode 4) & -> \align_end_cell: (catcode 6) # -> \param_marker: (catcode 7) ^ -> \math_superscript:w (catcode 8) _ -> \math_subscript:w (catcode 10) space -> \c_space_chartok Some interesting tricks can be done when a control sequence \param_marker: instead of a character # is embedded in macro definitions. The behavior of the macro is affected at run-time by the current local definition of the control sequence. (LaTeX already uses this in constructing preambles for array and tabular, but I played around with the idea a little more, some time ago.) If you wanted to handle the above single-character functions in l3names.dtx in full generality, one could argue that you need 256 names for each catcode. But I guess 1 or 2 will be enough :-) The following which are used by TeX when scanning numbers and dimens probably are also useful to have (must be assigned with def, not let). (catcode 12) ' -> \num_octal (catcode 12) " -> \num_hex (catcode 12) - -> \num_minus (catcode 12) . -> \num_decimal (catcode 12) = -> \num_equal (catcode 12) ` -> \num_alph "alphabetic constant" Michael Downes 7-Jul-1998 8:26:21-GMT,6830;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id CAA18543 for ; Tue, 7 Jul 1998 02:26:06 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id JAA28498; Tue, 7 Jul 1998 09:56:08 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 380974 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 7 Jul 1998 09:56:06 +0200 Received: from ricetub.anu.edu.au (richard@ricetub.anu.edu.au [150.203.166.61]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id JAA28484 for ; Tue, 7 Jul 1998 09:56:01 +0200 (MET DST) Received: (from richard@localhost) by ricetub.anu.edu.au (8.8.2/8.8.8) id RAA26108; Tue, 7 Jul 1998 17:55:46 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit References: <199807020724.RAA19706@ricetub.anu.edu.au> <199807021940.VAA01123@frank.zdv.uni-mainz.de> <199807060810.SAA24960@ricetub.anu.edu.au> <199807062020.WAA19898@frank.zdv.uni-mainz.de> X-Mailer: VM 6.29 under Emacs 19.34.1 Message-ID: <199807070755.RAA26108@ricetub.anu.edu.au> Date: Tue, 7 Jul 1998 17:55:46 +1000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Richard Walker Subject: Re: First experience with xr under L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199807062020.WAA19898@frank.zdv.uni-mainz.de> Frank Mittelbach writes: > > The rest seems OK . . . . > > what a relieve :-) On closer inpsection you also need this somewhere: \tlp_new:Nn \l_xr_line_tlp {} So as we have seen there is a Fortran-style implicit declaration of tlp's in certain circumstances, e.g. when used as the second argument of \ior_to:NN. I'd like to suggest that the `check' option used in the dtx files be changed into a package option, say `checkdef' (you can think of a better name). At the moment the decision of whether or not to check arguments is made once for all time when docstrip is invoked. Clearly we are still used to using \def in the same way as Lisp's setq, i.e. as a general definition mechanism that doesn't care about what you are defining (i.e. whether it has a previous definition). The new version of xr now has three `declarations' that are evaluated when the package is loaded. I can live with that; I (we) just need to remember that a new discipline is required. I expect that a syntax checker for L3PL will find uses of seq's, tlp's, etc. without corresponding declarations. Your algorithm is also subtly different. The original version is careful to process \@input's in the order in which they are encountered, but your version uses a stack. If there are no label conflicts, the net effect is the same. But if there are multiple conflicts, the original version stops at the first conflict, whereas yours might even stop at the last first and the first last! In your favour: since you use push and pop operations it's obvious that your version handles \@input's back-to-front, whereas it wasn't obvious in the original that \@input's are handled front-to-back (both versions using a breadth-first traversal). > > Tim's questions are really quite important for the `average' package > > writer, because they will be programing `in-the-small', and the xr > > example is quite a good one for that. Even such a small package has > > needed a total re-think and re-writing. > > true but is it so much different from having to hunt through the LaTeX > source to find you way in providing packages? Well . . . it's yet another layer of knowledge that has to be mastered before you can start doing non-trivial things. Those of us who have been using TeX for ten years or more will shrug our shoulders and learn it anyway, but it might well serve as a deterrent to those who come to LaTeX3 as beginners. > After all a lot of the documentation therein was provided by us during > the last years before that its internal documentation was very much > out of date (still is in some parts). If you are happy to release out-of-date and inconsistent documentation for incomplete packages then in fairness to us - your guinea pigs - _everything_ must be up for grabs. Frank wrote elsewhere: > just to change all the files to some new convention takes some effort > which can be better spend. at the moment at least! Perhaps (the fewer inconsistencies in the original, the easier it will be), and I am not suggesting doing it on a whim; but if you try to close doors at this stage I - and I suspect others - will stubbornly stick in our arms and legs. Even if you have already written five chapters of your next book :-) > what i mean is, you need to have got a feeling for it but that it true > right now as well except that right now because of nearly no > conventions people are forced to reinvent the wheel over and over just > because they don't know that some command or datatype or whatever > already exist somewhere. Agreed. A good example from the internals of LaTeX is the \@for and \@tfor constructs. Unless you read the old lplain.tex or the new ltcntrl.dtx you would probably have no idea that these constructs existed. The problem here is not one of consistency, but rather (a) these constructs have never really been `official' and advertised, and (b) there is still no proper documentation. \@for, \@tfor, and many other internal macros of LaTeX deserve `promotion' to L3PL. Much of this reinvention will then be avoided. > so yes you need a re-think, you probably don't need much of a > rewriting for an existing package if you just mainly do a manual > translation but you can gain a lot once you start replacing all you > low-level private code by already provided solutions for many of the > basic functionality which right now is often repeated over and over > again in packages. It sounds as though it must be true, but let's see. As I said earlier, we will go anywhere you take us, but let's enjoy the journey and learn from it. Frank also writes: > . . . the > solution is that you provide a replacement book for the TeX book. So this is your next book . . . my hand is creeping up . . . pick me! :-) I would be happy to contribute a chapter or two or proof-read or . . . Eine deutsche Uebersetzung waere auch moeglich . . . :-) 7-Jul-1998 9:12:52-GMT,2973;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA19530 for ; Tue, 7 Jul 1998 03:12:50 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id KAA01829; Tue, 7 Jul 1998 10:48:49 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 381029 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 7 Jul 1998 10:48:43 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id KAA01811 for ; Tue, 7 Jul 1998 10:48:41 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id JAA23201; Tue, 7 Jul 1998 09:55:23 +0100 References: <199807020724.RAA19706@ricetub.anu.edu.au> <199807021940.VAA01123@frank.zdv.uni-mainz.de> Message-ID: <199807070855.JAA23201@nag.co.uk> Date: Tue, 7 Jul 1998 09:55:23 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: L3PL: blank line after \usepackage To: Multiple recipients of list LATEX-L > > \usepackage{l3io,xr2} instead and commented out the \RequirePackage. > actually it works if there is a blank line after the \RequirePackage This is just a problem because of the current mix of l3 and 2e code. The rules are that after l3names.cls is read, there are no special conventions about what comes after \RequirePackage, but before that the first non-space token after the } had better be a token whether read with l3 or 2e conventions. so after \usepackage{l3io,xr2} you need a blank line, or \par or [1998/06/01]. The problem is that \usepackage & \RequirePackage look ahead to see if there is an optional argument coming up. l3names.sty redefines the lookahead to make sure that @_: are all letters at that point but before that redefinition has happened, _ is not a letter so if you go \usepackage{l3io,xr2} % no blank line here \tex_def:D ..... then \usepackage looks ahead and tokenises \tex. The packages run correctly but when they finish, you get an undefined command \tex followed by an attempt to typeset _def:D. Probably the clearest way to avoid this is always to Require l3names first, and on its own \RequirePackage{l3names} \RequirePackage{l3io,xr2} as the second \RequirePackage is safe to be read under any convention. There are alternative ways of handling the switching but all the ones I tried so far have similar bad effects somewhere. Suggestions accepted... David 7-Jul-1998 11:37:37-GMT,3212;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA21943 for ; Tue, 7 Jul 1998 05:37:35 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA14059; Tue, 7 Jul 1998 13:07:22 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 381241 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 7 Jul 1998 13:07:20 +0200 Received: from gate.eds.de (gate.eds.de [205.191.194.5]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA14048 for ; Tue, 7 Jul 1998 13:07:16 +0200 (MET DST) Received: from nsru2.tse.de.eds.com by gate.eds.de with SMTP id AA11840 (InterLock SMTP Gateway 3.0 for ); Tue, 7 Jul 1998 11:07:06 GMT Received: from ew160061.nets.de.eds.com (ew160061.nets.de.eds.com [134.46.6.36]) by nsru2.tse.de.eds.com (8.7.5/8.7.3) with ESMTP id LAA25138 for ; Tue, 7 Jul 1998 11:07:05 GMT Received: from n15ux24.nets.de.eds.com (n15ux24.nets.de.eds.com [206.122.103.15]) by ew160061.nets.de.eds.com (8.7.5/8.7.3) with ESMTP id GAA12947 for ; Tue, 7 Jul 1998 06:41:22 GMT Received: by n15ux24.nets.de.eds.com (1.37.109.16/16.2) id AA053409623; Tue, 7 Jul 1998 13:07:03 +0200 References: <199807020724.RAA19706@ricetub.anu.edu.au> <199807021940.VAA01123@frank.zdv.uni-mainz.de> <199807060810.SAA24960@ricetub.anu.edu.au> <199807062020.WAA19898@frank.zdv.uni-mainz.de> <199807070755.RAA26108@ricetub.anu.edu.au> Message-ID: <199807070641.GAA12947@ew160061.nets.de.eds.com> Date: Tue, 7 Jul 1998 13:07:03 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: correcting a small misunderstanding To: Multiple recipients of list LATEX-L In-Reply-To: <199807070755.RAA26108@ricetub.anu.edu.au> Richard Walker writes: > > After all a lot of the documentation therein was provided by us during > > the last years before that its internal documentation was very much > > out of date (still is in some parts). > > If you are happy to release out-of-date and inconsistent documentation > for incomplete packages then in fairness to us - your guinea pigs - > _everything_ must be up for grabs. i was talking about the LaTeX2e internal documentation which is 600 odd pages all available and all on CTAN. the fact that some of it is still out of date (or undocumented) i'm sorry, but this is a huge job. and i think essentially we did some good job here even though with more resources we could probably do better. frank 7-Jul-1998 12:33:17-GMT,2295;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA22829 for ; Tue, 7 Jul 1998 06:33:10 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id OAA18334; Tue, 7 Jul 1998 14:03:11 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 381317 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 7 Jul 1998 14:03:09 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id OAA18292 for ; Tue, 7 Jul 1998 14:02:50 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id NAA23413; Tue, 7 Jul 1998 13:09:18 +0100 References: <199807020724.RAA19706@ricetub.anu.edu.au> <199807021940.VAA01123@frank.zdv.uni-mainz.de> <199807070855.JAA23201@nag.co.uk> <199807071151.NAA17375@relay.urz.uni-heidelberg.de> Message-ID: <199807071209.NAA23413@nag.co.uk> Date: Tue, 7 Jul 1998 13:09:18 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: L3PL: blank line after \usepackage To: Multiple recipients of list LATEX-L In-Reply-To: <199807071151.NAA17375@relay.urz.uni-heidelberg.de> (mjd@AMS.ORG) > For what it's worth, when writing packages and such I have acquired > the habit of putting a \relax after all the commands that have > trailing option lookahead, In general this is good advice but in this case.... In one of the iterations of these packages after they got announced at TUG97 and before they got released, I did just that. But if some brave soul runs with [removeoldnames] then \relax isn't defined and so the package dies on \relax. That's why the ones currently distributed have \par where something is needed. David 7-Jul-1998 12:38:00-GMT,2769;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA22949 for ; Tue, 7 Jul 1998 06:37:59 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA17391; Tue, 7 Jul 1998 13:51:24 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 381297 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 7 Jul 1998 13:51:22 +0200 Received: from math.ams.org (math.ams.org [130.44.210.14]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA17375 for ; Tue, 7 Jul 1998 13:51:14 +0200 (MET DST) Received: from sun06.ams.org by math.ams.org via smtpd (for relay.urz.uni-heidelberg.de [129.206.119.201]) with SMTP; 7 Jul 1998 11:50:42 UT Received: from sun06.ams.org by sun06.ams.org (PMDF V5.1-10 #27147) id <0EVQ005013KHAL@sun06.ams.org> for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 7 Jul 1998 07:50:41 -0400 (EDT) MIME-version: 1.0 X-Mailer: Gnus v5.5/Emacs 20.2 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Lines: 17 References: <199807020724.RAA19706@ricetub.anu.edu.au> <199807021940.VAA01123@frank.zdv.uni-mainz.de> <199807070855.JAA23201@nag.co.uk> Message-ID: <199807071151.NAA17375@relay.urz.uni-heidelberg.de> Date: Tue, 7 Jul 1998 07:50:41 -0400 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project Comments: Resent-From: mjd@ams.org Comments: Originally-From: Michael John Downes From: "Michael J. Downes" Subject: Re: L3PL: blank line after \usepackage To: Multiple recipients of list LATEX-L In-Reply-To: David Carlisle's message of Tue, 07 Jul 1998 09:55:23 +0100 For what it's worth, when writing packages and such I have acquired the habit of putting a \relax after all the commands that have trailing option lookahead, or the optional date if the command takes a date: \ProcessOptions\relax \RequirePackage{latexsym}[1995/01/01] \LoadClass{foo}[1995/01/01] (also \usepackage and \documentclass). One reason is that if an error happens to occur while processing one of these commands, \relax or [...] ensures that the error context shown by TeX will be the line that triggered the error, not some following line (past any comment lines that happen to follow). 7-Jul-1998 21:45:24-GMT,13236;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id PAA06007 for ; Tue, 7 Jul 1998 15:45:23 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id XAA22213; Tue, 7 Jul 1998 23:22:31 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 381893 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 7 Jul 1998 23:22:28 +0200 Received: from kralle.zdv.Uni-Mainz.DE (kralle.zdv.Uni-Mainz.DE [134.93.8.158]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id XAA22203 for ; Tue, 7 Jul 1998 23:22:26 +0200 (MET DST) Received: (from Ufrank@localhost) by kralle.zdv.Uni-Mainz.DE (8.8.8/8.8.8) id XAA29000 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Tue, 7 Jul 1998 23:22:27 +0200 (MET DST) X-Authentication-Warning: kralle.zdv.Uni-Mainz.DE: Ufrank set sender to latex3 using -f Received: (from latex3@localhost) by frank.zdv.uni-mainz.de (8.6.9/8.6.9) id WAA04726; Tue, 7 Jul 1998 22:51:08 +0200 References: <199807020724.RAA19706@ricetub.anu.edu.au> <199807021940.VAA01123@frank.zdv.uni-mainz.de> <199807060810.SAA24960@ricetub.anu.edu.au> <199807062020.WAA19898@frank.zdv.uni-mainz.de> <199807070755.RAA26108@ricetub.anu.edu.au> Message-ID: <199807072051.WAA04726@frank.zdv.uni-mainz.de> Date: Tue, 7 Jul 1998 22:51:08 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: First experience with xr under L3PL To: Multiple recipients of list LATEX-L In-Reply-To: <199807070755.RAA26108@ricetub.anu.edu.au> sometime ago i think Javier Bezos remarked that typing with a baby on your lap is probably more difficult than with a cat. i'd say there is no comparison: just had one of my sons there (and was only trying to read this message (or rather reread it more carefully) not to type anything) and he managed with ease to put his hand on the keyboard and guess what key he managed to press? d ... an omen? :-) the times when working with them on my lap seem to be over Richard writes: > On closer inpsection you also need this somewhere: > \tlp_new:Nn \l_xr_line_tlp {} true at least it would be consistent > So as we have seen there is a Fortran-style implicit declaration of > tlp's in certain circumstances, e.g. when used as the second argument > of \ior_to:NN. I'd like to suggest that the `check' option used in > the dtx files be changed into a package option, say `checkdef' (you > can think of a better name). At the moment the decision of whether or > not to check arguments is made once for all time when docstrip is > invoked. good idea, anybody willing to do this? > Clearly we are still used to using \def in the same way as Lisp's > setq, i.e. as a general definition mechanism that doesn't care about > what you are defining (i.e. whether it has a previous definition). > The new version of xr now has three `declarations' that are evaluated > when the package is loaded. I can live with that; I (we) just need to > remember that a new discipline is required. I expect that a syntax > checker for L3PL will find uses of seq's, tlp's, etc. without > corresponding declarations. right now it is mainly there as a help against unforseen later errors. having such a checker would certainly be a help. > Your algorithm is also subtly different. The original version is > careful to process \@input's in the order in which they are > encountered, but your version uses a stack. If there are no label > conflicts, the net effect is the same. But if there are multiple > conflicts, the original version stops at the first conflict, whereas > yours might even stop at the last first and the first last! i don't deny that. i simply used this as an example to spawn further discussion especially as you had taken the trouble to go through it i thought i could add my share. actually i could have also produced essentially the same algorithm by not using the stack commands but instead using those other sequence commands. > > > Tim's questions are really quite important for the `average' package > > > writer, because they will be programing `in-the-small', and the xr > > > example is quite a good one for that. Even such a small package has > > > needed a total re-think and re-writing. > > > > true but is it so much different from having to hunt through the LaTeX > > source to find you way in providing packages? > > Well . . . it's yet another layer of knowledge that has to be mastered > before you can start doing non-trivial things. Those of us who have > been using TeX for ten years or more will shrug our shoulders and > learn it anyway, but it might well serve as a deterrent to those who > come to LaTeX3 as beginners. i think i disagree here. what i meant is that you do need to learn some layer whether it'll be current latex internal commands (by looking at the latex source or other packages) or be something like the L3PL language is not much different (except for those who already mastered most of the mess of the current latex) > If you are happy to release out-of-date and inconsistent documentation > for incomplete packages then in fairness to us - your guinea pigs - > _everything_ must be up for grabs. i already said that this was a remark concerning latex2e --- and if people are willing to help updating the documentation of the .dtx files for 2e we are too willing to accept such help!!! just drop us a note and we provide you with the file of your choice (latest version -- sometimes fixes for the next release are already in) lock it in rcs and put the updated documentation with your name on back in. certainly we can make these sources better and it is still worth doing even though we are talking about a sort of paradigm change here. > Frank wrote elsewhere: > > just to change all the files to some new convention takes some effort > > which can be better spend. at the moment at least! > > Perhaps (the fewer inconsistencies in the original, the easier it will > be), and I am not suggesting doing it on a whim; but if you try to > close doors at this stage I - and I suspect others - will stubbornly > stick in our arms and legs. Even if you have already written five > chapters of your next book :-) we don't have the intention of closing doors at this stage. but at the other hand we believe that there is not much gained if X suggests to change the syntax slightly in this direction, then we have a long discussion on whether or not this is how other people see this, then Y suggest some other twist, ... and all of this gets implemented straight away (by us) and changed over and over again instead of providing new functionality within the framework as is and change it completely on the surface later. let's go back to this module stuff once more: i firmly believe that the ideas brought forward would not be reasonably implementable at the level we talked about (most of us do think that some of these ideas are very helpful for a different level) and for that reason i'm not really eager to change the syntax now just because Hans claimed he needs this before he could seriously talk about these ideas again. instead i proposed a way to try his ideas even within the current syntax. *and i'm willing to listen to reason* which means if he or somebody else would come forward with a practical trial implementation that shows that i'm wrong i would be the first one to admit this. in fact if the current syntax would indeed prevent doing this trial i would be prepared to do that change (or any change that would take away such a restriction) but as i explained there is no such restriction technically with the current syntax so, saying that one can only test or try things after one of us has change the surface look of the language to somebody's liking is something that i can only interpret as a refusal to take up my challenge (whatever the real reason) i also have nothing whatsoever against the idea that somebody sits down and takes apart all the packages we have put together and does some global replace and produces a version more to his or her liking. we can certainly put such a version on CTAN as well. but what i'm not going to do (me personally) is to do that type of work just because some people think that _ are bad or the colon should be a . or Modula2 type of syntax is better. that would drag on forever without anything gained because there are probably as many opinions on this subject as we had emails on it. if somebody wants to, please do so, but don't ask us to do it for you now. let me also say that i *DON'T* like the language as it is on many special points (not the last are the many _) but just like here on the list with perhaps 4-6 people commenting on the look of it we had internally also very different opinions what looks best or works best. and at one point we decided to stop and just pick one to actually get functionality provided. what i like about the language and this is what for me counts is its support for the very important things of TeX namely expansion by the general mechanism of the arg spec and that alone already proved to be a big step forward when working in it. it also brought some better orthogonality. and yes i like programming in TeX as weird as it is some times :-) > > what i mean is, you need to have got a feeling for it but that it true > > right now as well except that right now because of nearly no > > conventions people are forced to reinvent the wheel over and over just > > because they don't know that some command or datatype or whatever > > already exist somewhere. > > Agreed. A good example from the internals of LaTeX is the \@for and > \@tfor constructs. Unless you read the old lplain.tex or the new > ltcntrl.dtx you would probably have no idea that these constructs > existed. The problem here is not one of consistency, but rather (a) > these constructs have never really been `official' and advertised, and > (b) there is still no proper documentation. \@for, \@tfor, and many > other internal macros of LaTeX deserve `promotion' to L3PL. Much > of this reinvention will then be avoided. yes things like this should be part of the language and what we have put out is not meant to be L3PL it is meant to be a start for commenting and for those people interested helping us to provide additional basic modules that would finally form a base kernel. btw (a) above: those commands have never been really official because in many cases they where originally only onetime hooks; \@for and friends being an exception here and one of the main reasons for something like L3PL is to provide exactly this: a consistent official low-level interface that is described and advertised. you also need a higher-level interface (or set of interfaces) which are also official to avoid all the situations that people because of nothing being put into such a status hooked into any layer with disastrous effects when something was reprogrammed (or just fixed or optimized :-) > > so yes you need a re-think, you probably don't need much of a > > rewriting for an existing package if you just mainly do a manual > > translation but you can gain a lot once you start replacing all you > > low-level private code by already provided solutions for many of the > > basic functionality which right now is often repeated over and over > > again in packages. > > It sounds as though it must be true, but let's see. As I said > earlier, we will go anywhere you take us, but let's enjoy the journey > and learn from it. i hope so. a good way would be to think about additionally needed functionality and perhaps doing some suggested implementation. loops would be such a slightly higher level thing and that was in fact never properly written so far. we could those then put on ctan > Frank also writes: > > . . . the > > solution is that you provide a replacement book for the TeX book. > > So this is your next book . . . my hand is creeping up . . . pick me! > :-) I would be happy to contribute a chapter or two or proof-read or > . . . Eine deutsche Uebersetzung waere auch moeglich . . . :-) well it will not be the next one i guess :-) in fact i've once have written roughly a 100 page manual on some earlier version of the L3PL language which we then discarded---some of the documentation you now got in an updated form (as far as convention and code is concerned) in the current set of experimental stuff. frank ps don't be too surprised if i drop out of this discussion for a while i might be offline a few days 8-Jul-1998 11:55:58-GMT,16332;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA22628 for ; Wed, 8 Jul 1998 05:55:50 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA21264; Wed, 8 Jul 1998 13:08:45 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 382498 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 8 Jul 1998 13:08:42 +0200 Received: from tinet0.redestb.es (tinet0.redestb.es [194.179.106.117]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA21231 for ; Wed, 8 Jul 1998 13:08:32 +0200 (MET DST) Received: from fclients0.redestb.es ([194.179.106.116]) by tinet0.redestb.es (Post.Office MTA v3.1 release PO203a ID# 0-0U10L2S100) with ESMTP id AAA182 for ; Wed, 8 Jul 1998 13:07:59 +0200 Received: from [195.122.195.245] by fclients0.redestb.es (Post.Office MTA v3.1.2 release (PO205-101c) ID# 0-0U10L2S100) with SMTP id AAC217 for ; Wed, 8 Jul 1998 13:11:28 +0200 x-mailer: Claris Emailer 1.1 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Emailer_-1311496996" Message-ID: <199807081108.NAA21231@relay.urz.uni-heidelberg.de> Date: Wed, 8 Jul 1998 13:05:18 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Javier Bezos Subject: Second experience with l3 To: Multiple recipients of list LATEX-L --Emailer_-1311496996 Content-Type: text/plain; charset="US-ASCII" Hello, After my first trials at a small level, I've decided to adapt a larger package. Attached to this message (Unix eol's) is an adaptation to l3 of my tensind package (for TENSorial INDexes). The original package and its manual are in ...supported/bezos. In this version \whenindex and related commads has been removed. It also has some bugs which are not present in the original, but it took me longer to write this version than the original--I am tired and I've decided to leave it in the current state. In fact that has been one of my most frustratring programming experiences. Debugging is quite difficult, code is full of obtrusive and meaningless stuff making it unreadable, typos are more frequent now (for example a typo in \ifx is very unlikely, but not in \if_meaning:NN)... Well, so frustrating it has been )-; I decided not to continue trying the experimental distribution for a while. IMO, all these great tools are ruined by their syntax and incoherences. I know that I will not make friends in the Latex Team with these comments, but I'm being very honest in my opinions. Sorry. \tensind_process:n reads the tokens one by one inside the tensor environment and acts accordingly: - if _, makes sb the current index "line" - if ^, makes sp the current index "line" - if \end or the shortcut char, ends the tensor and prints it - otherwise, adds the index to the current "line" and a gap to the other "line" Example: \documentclass{book} \usepackage{l3tens} \tensordelimiter{?} \tensorformat{lrb} \begin{document} $?A_ij^kl?$ \end{document} Notes: 1. Some macros work as both functions and parameters; in those cases a conventional parameter name has been used in some cases (because \tlp_put_right is used with them) and a function name in the others. 2. \@tfor requires an "other" colon and hence does not work in l3 contexts. A \newtfor command has been defined. 3. Some primitives have not been renamed. 4. If you want to understand more in depth how the package works, I strongly recommend to make some tests with the *original* package (\tracing... is far more readable.) and then study the l3 equivalent. Regards Javier "Hemos ido de Guatemala a Guatepeor" Spanish saying :-) --Emailer_-1311496996 Content-Type: application/octet-stream; name="l3tens.sty"; x-mac-type="54455854"; x-mac-creator="414C4641" Content-transfer-encoding: base64 XFByb3ZpZGVzUGFja2FnZXtsM3RlbnN9WzE5OTgvMDcvMDggdjEuMCBUZW5zb3JpYWwgSW5kZXhl c10KCiUgSG93IHRvIHdyaXRlIHRoaXMgaW5zaWRlIGwzICppbiBhIHNpbXBsZSB3YXkqPzoKXGV4 cGFuZGFmdGVyXGRlZlxjc25hbWUgbF90ZW5zaW5kX3N1YnNjcmlwdF90bHBcZW5kY3NuYW1le199 CgpcZGVmXG5ld3Rmb3IjMXtcY3NuYW1lIEB0Zm9yXGVuZGNzbmFtZSMxOj19CgpcUmVxdWlyZVBh Y2thZ2V7bDNiYXNpY3MsbDNuYW1lcyxsM3RscCxsM2ludCxsM2V4cGFufQoKXENvZGVTdGFydAoK XG5ld2RpbWVuXGxfdG1wYl9kaW0KClxpbnRfc2V0Ok5uIFxsX3RtcGJfaW50IHtcaW50X3VzZTpO IFx0ZXhfY2F0Y29kZTpEYF59JSBIZXJlIE4gaXMgKm5vdCogYSB0b2tlbgpcdGV4X2NhdGNvZGU6 RGBcXj03CgpcbmV3ZGltZW5cbF90ZW5zaW5kX3RtcF9kaW0KClxuZXdpZlxpZnRlbnNpbmRfc3AK XG5ld2lmXGlmdGVuc2luZF9zYgoKXG5ld2lmXGlmdGVuc2luZF9lClxuZXdpZlxpZnRlbnNpbmRf YgpcbmV3aWZcaWZ0ZW5zaW5kX2wKXG5ld2lmXGlmdGVuc2luZF9yClxuZXdpZlxpZnRlbnNpbmRf bwpcbmV3aWZcaWZ0ZW5zaW5kX2MKXG5ld2lmXGlmdGVuc2luZF9zClxuZXdpZlxpZnRlbnNpbmRf bm9kb3QKClx0bHBfbmV3Ok5uIFxsX3RlbnNpbmRfdGhlZG90c190bHAge30KXHRscF9uZXc6Tm4g XGxfdGVuc2luZF90aGVwcmltZXNfdGxwIHt9Clx0bHBfbmV3Ok5uIFxsX3RlbnNpbmRfdGhlc2Jf dGxwIHt9Clx0bHBfbmV3Ok5uIFxsX3RlbnNpbmRfdGhlc3BfdGxwIHt9Clx0bHBfbmV3Ok5uIFxs X3RlbnNpbmRfbGFzdGxvY190bHAge3h9Clx0bHBfbmV3Ok5uIFxsX3RlbnNpbmRfbGFzdGluZGV4 X3RscCB7fSUKClxkZWY6TnBuIFx0ZW5zaW5kX2FkZGluZGV4OiB7XHRlbnNpbmRfYWRkcHI6fQoK XGxldDpOTiBcdGVuc2luZF9ibDpuIFx0ZXhfcmVsYXg6RApcbGV0Ok5OIFx0ZW5zaW5kX2JyOm4g XHRleF9yZWxheDpEClxsZXQ6Tk4gXHRlbnNpbmRfYm06biBcdGV4X3JlbGF4OkQKXGxldDpOTiBc dGVuc2luZF90bDpuIFx0ZXhfcmVsYXg6RApcbGV0Ok5OIFx0ZW5zaW5kX3RyOm4gXHRleF9yZWxh eDpEClxsZXQ6Tk4gXHRlbnNpbmRfdG06biBcdGV4X3JlbGF4OkQKClxsZXQ6Tk4gXHRlbnNpbmRf Y2hvaWNlOm5ubm4gXHRleF9tYXRoY2hvaWNlOkQKClxuZXdpZlxpZnRlbnNpbmRfdG9wClxuZXdp ZlxpZnRlbnNpbmRfYm90CgpcbGV0Ok5OIFx0ZW5zaW5kX2dhcDpuIFx0ZXhfcmVsYXg6RAoKXG5l d2NvbW1hbmR7XHRlbnNvcmZvcm1hdH1bMV17CiAgXHRlbnNpbmRfbGZhbHNlCiAgXHRlbnNpbmRf cmZhbHNlCiAgXHRlbnNpbmRfZWZhbHNlCiAgXHRlbnNpbmRfYmZhbHNlCiAgXHRlbnNpbmRfb2Zh bHNlCiAgXHRlbnNpbmRfY2ZhbHNlCiAgXHRlbnNpbmRfc2ZhbHNlCiAgXG5ld3Rmb3JcbF90ZW5z aW5kX3RtcF90cGwgIzFcZG8KICAgIHsKICAgICAgXGNzOncgdGVuc2luZF9cbF90ZW5zaW5kX3Rt cF90cGwgdHJ1ZVxjc19lbmQ6CiAgICB9Cn0KClx0ZW5zb3Jmb3JtYXR7fQpcbmV3Y29tbWFuZHtc aW5kZXhkb3R9e1xjZG90fQoKXG5ld2NvbW1hbmR7XHRlbnNvcn17CiAgXGNhdGNvZGVgXz04XGNh dGNvZGVgXj03fgogIFxkZWY6TnBuIFx0ZW5zaW5kX2VuZDoge1xlbmR9CiBcQGlmbmV4dGNoYXJb e1x0ZW5zaW5kX290ZW5zb3I6d317XHRlbnNpbmRfeHRlbnNvcjpufQp9CgpcZ3JvdXBfYmVnaW46 CgpcdGV4X2NhdGNvZGU6RGA/PTEzfgoKXGdkZWZfbmV3Ok5wbiBcdGVuc29yZGVsaW1pdGVyICMx IHsKICBcdGV4X21hdGhjb2RlOkRgIzE9IjgwMDAKICB7CiAgICBcdGV4X2NhdGNvZGU6RGA/PTEz flx0ZXhfbGNjb2RlOkRgPz1gIzF+CiAgICBcdGV4X2xvd2VyY2FzZTpECiAgICB7CiAgICAgXGdk ZWY6TnBuP3sKICAgICAgICBcZ3JvdXBfYmVnaW46CiAgICAgICAgICAgXGNhdGNvZGVgXz04flxj YXRjb2RlYF49N34KICAgICAgICAgICBcZGVmOk5wbiBcdGVuc2luZF9lbmQ6IHsjMX0KICAgICAg ICAgICBcZGVmOk5wbj97XGVuZHRlbnNvclxncm91cF9lbmQ6fQogICAgICAgICAgIFxAaWZuZXh0 Y2hhclt7XHRlbnNpbmRfb3RlbnNvcjp3fXtcdGVuc2luZF94dGVuc29yOm59CiAgICAgICAgfQog ICAgIH0KICB9Cn0KICAgICAgICAKXGdyb3VwX2VuZDoKClxkZWY6TnBuIFx0ZW5zaW5kX290ZW5z b3I6dyBbIzFde1x0ZW5zb3Jmb3JtYXR7IzF9XHRlbnNpbmRfeHRlbnNvcjpufQoKXGRlZl9uZXc6 TnBuXHRlbnNpbmRfeHRlbnNvcjpuICMxewogICBcdGxwX25ldzpObiBcbF90ZW5zaW5kX251Y2xf dGxwIHsjMX0KICAgXHRleF9mdXR1cmVsZXQ6RCBcdGVuc2luZF9uZXh0X2lpOiBcdGVuc2luZF9w cm9jZXNzOm59CgpcZGVmX25ldzpOcG4gXHRlbnNpbmRfcHJvY2VzczpuICMxewogIFxkZWY6TnBu IFx0ZW5zaW5kX25leHRfaToKICAgICB7XHRleF9mdXR1cmVsZXQ6RCBcdGVuc2luZF9uZXh0X2lp OiBcdGVuc2luZF9wcm9jZXNzOm59CiAgXHRscF9zZXQ6Tm4gXGxfdGVuc2luZF90aGVpbmRleF90 bHAgeyMxfQogIFxpZl9tZWFuaW5nOk5OIFxsX3RlbnNpbmRfdGhlaW5kZXhfdGxwIFxsX3RlbnNp bmRfc3Vic2NyaXB0X3RscAogICAgIFxpZjp3IFxsX3RlbnNpbmRfbGFzdGxvY190bHAgeAogICAg ICAgIFx0bHBfc2V0Ok5uIFxsX3RlbnNpbmRfZmlyc3RfdGxwIFxjX2VtcHR5X3RscAogICAgIFxm aToKICAgICBcaWY6dyBcbF90ZW5zaW5kX2xhc3Rsb2NfdGxwIGJcZWxzZToKICAgICAgIFx0ZW5z aW5kX3N3aXRjaHNiOgogICAgIFxmaToKICBcZWxzZToKICAgIFxleHBfYXJnczpObm8gXHRsaXN0 X2VxOm5uVEYge159IFxsX3RlbnNpbmRfdGhlaW5kZXhfdGxwIAogICAgICAge1xpZjp3IFxsX3Rl bnNpbmRfbGFzdGxvY190bHAgcFxlbHNlOgogICAgICAgICAgXHRlbnNpbmRfc3dpdGNoc3A6CiAg ICAgICBcZmk6fQogICAgICB7XGlmX21lYW5pbmc6Tk4gXGxfdGVuc2luZF90aGVpbmRleF90bHAg XHRlbnNpbmRfZW5kOgogICAgICAgICAgXGxldDpOTiBcdGVuc2luZF9uZXh0X2k6IFx0ZW5zaW5k X2VuZDoKICAgICAgIFxlbHNlOgogICAgICAgICBcdGVuc2luZF9ub2RvdGZhbHNlCiAgICAgICAg IFxpZl9tZWFuaW5nOk5OIFx0ZW5zaW5kX25leHRfaWk6IFx0ZXhfYmdyb3VwOkQKICAgICAgICAg ICBcdGxwX2NsZWFyOk4gXGxfdGVuc2luZF9sYXN0aW5kZXhfdGxwCiAgICAgICAgIFxlbHNlOgog ICAgICUgXGNzOncgdGVuc2luZF9jbWRcdGV4X3N0cmluZzpEICMxXGNzX2VuZDogJSBVc2VkIGJ5 IFx3aGVuaW5kZXgKICAgICAgICAgICBcdGxwX3NldDpObiBcbF90ZW5zaW5kX2xhc3RpbmRleF90 bHAgeyMxfQogICAgICAgICBcZmk6CiAgICAgICAgXHRlbnNpbmRfYWRkaW5kZXg6CiAgICAgIFxm aTp9CiAgXGZpOgogIFx0ZW5zaW5kX25leHRfaTp9CgpcZGVmX25ldzpOcG4gXHRlbnNpbmRfc3dp dGNoc3A6ewogIFxsZXQ6Tk4gXHRlbnNpbmRfYWRkaW5kZXg6IFx0ZW5zaW5kX2FkZHNwOgogIFxp ZnRlbnNpbmRfdG9wCiAgICBcZGVmOk5wbiBcdGVuc2luZF9nYXA6biB7XHRlbnNpbmRfdG06bn0K ICBcZWxzZToKICAgIFxkZWY6TnBuIFx0ZW5zaW5kX2dhcDpuIHtcdGVuc2luZF90bDpufQogIFxm aToKICBcdGxwX3B1dF9yaWdodDpOeCBcbF90ZW5zaW5kX3RoZXNwX3RscCBcbF90ZW5zaW5kX3Ro ZWRvdHNfdGxwCiAgXGxldDpOTiBcdGVuc2luZF9nYXA6biBcdGV4X3JlbGF4OkQKICBcdGxwX2Ns ZWFyOk4gXGxfdGVuc2luZF90aGVkb3RzX3RscAp9CiAgClxkZWZfbmV3Ok5wbiBcdGVuc2luZF9z d2l0Y2hzYjp7CiAgXGxldDpOTiBcdGVuc2luZF9hZGRpbmRleDogXHRlbnNpbmRfYWRkc2I6CiAg XGlmdGVuc2luZF9ib3QKICAgIFxkZWY6TnBuIFx0ZW5zaW5kX2dhcDpuIHtcdGVuc2luZF9ibTpu fQogIFxlbHNlOgogICAgXGRlZjpOcG4gXHRlbnNpbmRfZ2FwOm4ge1x0ZW5zaW5kX2JsOm59CiAg XGZpOgogIFx0bHBfcHV0X3JpZ2h0Ok54IFxsX3RlbnNpbmRfdGhlc2JfdGxwIFxsX3RlbnNpbmRf dGhlZG90c190bHAgCiAgXGxldDpOTiBcdGVuc2luZF9nYXA6biBcdGV4X3JlbGF4OkQKICBcdGxw X2NsZWFyOk4gXGxfdGVuc2luZF90aGVkb3RzCn0KClxkZWZfbmV3Ok5wbiBcdGVuc2luZF9hZGRw cjogewogIFx0bHBfcHV0X3JpZ2h0Ok5vIFxsX3RlbnNpbmRfdGhlcHJpbWVzX3RscCBcbF90ZW5z aW5kX3RoZWluZGV4X3RscAp9CgpcZGVmX25ldzpOcG5cdGVuc2luZF9hZGRzcDp7CiAgXHRlbnNp bmRfdG9wdHJ1ZQogIFx0bHBfcHV0X3JpZ2h0Ok5vIFxsX3RlbnNpbmRfdGhlc3BfdGxwIFxsX3Rl bnNpbmRfdGhlaW5kZXhfdGxwIAogIFxpZnRlbnNpbmRfbm9kb3QKICAgIFx0bHBfcHV0X3JpZ2h0 Ok5uIFxsX3RlbnNpbmRfdGhlZG90c190bHAgXHRlbnNpbmRfcGhhbnRvbTpuCiAgICBcdGxwX3B1 dF9yaWdodDpObyBcbF90ZW5zaW5kX3RoZWRvdHNfdGxwCgkgICAgIHtcZXhwX2FmdGVyOk5Oe1xs X3RlbnNpbmRfdGhlaW5kZXhfdGxwfX0KICBcZWxzZToKICAgIFx0bHBfcHV0X3JpZ2h0Ok54IFxs X3RlbnNpbmRfdGhlZG90c190bHAKCSAgICAge1x0ZW5zaW5kX2dhcDpuIHtcbF90ZW5zaW5kX3Ro ZWluZGV4X3RscH19CiAgXGZpOgogIFx0bHBfbmV3Ok5uIFxsX3RlbnNpbmRfbGFzdGxvY190bHAg e3B9Cn0KClxkZWZfbmV3Ok5wbiBcdGVuc2luZF9hZGRzYjp7CiAgXHRlbnNpbmRfYm90dHJ1ZQog IFx0bHBfcHV0X3JpZ2h0Ok5vIFxsX3RlbnNpbmRfdGhlc2JfdGxwIHtcbF90ZW5zaW5kX3RoZWlu ZGV4X3RscH0KICBcaWZ0ZW5zaW5kX25vZG90CiAgICBcdGxwX3B1dF9yaWdodDpObiBcbF90ZW5z aW5kX3RoZWRvdHNfdGxwIFx0ZW5zaW5kX3BoYW50b206bgogICAgXHRscF9wdXRfcmlnaHQ6Tm8g XGxfdGVuc2luZF90aGVkb3RzX3RscAogICAgICAgICB7XGV4cF9hZnRlcjpOTntcbF90ZW5zaW5k X3RoZWluZGV4X3RscH19CiAgXGVsc2U6CiAgICBcdGxwX3B1dF9yaWdodDpOeCBcbF90ZW5zaW5k X3RoZWRvdHNfdGxwCiAgICAgICAgICAgICAgICAgIHtcdGVuc2luZF9nYXA6bntcbF90ZW5zaW5k X3RoZWluZGV4X3RscH19CiAgXGZpOgogIFx0bHBfc2V0Ok5uIFxsX3RlbnNpbmRfbGFzdGxvY190 bHAge2J9Cn0KClxkZWZfbmV3Ok5wbiBcdGVuc2luZF9kb3Q6biAjMSB7CiAgXHNldGJveFx6QCBc aGJveHskXGxfdGVuc2luZF9mYW1fdGxwXG1AdGhcbF90ZW5zaW5kX2luZGV4X3RscCMxJH0lCiAg XGhib3ggdG9cd2RcekAge1xoc3MkXGxfdGVuc2luZF9mYW1fdGxwXG1AdGhcbF90ZW5zaW5kX2lu ZGV4X3RscFxpbmRleGRvdCRcaHNzfQp9CgpcZGVmX25ldzpOcG4gXGVuZHRlbnNvciB7CiAgXGlm OncgXGxfdGVuc2luZF9sYXN0bG9jX3RscCBwCiAgICBcZGVmOk5wbiBcdGVuc2luZF9nYXA6biB7 XHRlbnNpbmRfYnI6bn0KICAgIFx0bHBfcHV0X3JpZ2h0Ok5vIFxsX3RlbnNpbmRfdGhlc2JfdGxw IFxsX3RlbnNpbmRfdGhlZG90c190bHAKICBcZWxzZToKICAgIFxkZWY6TnBuIFx0ZW5zaW5kX2dh cDpuIHtcdGVuc2luZF90cjpufQogICAgXHRscF9wdXRfcmlnaHQ6Tm8gXGxfdGVuc2luZF90aGVz cF90bHAgXGxfdGVuc2luZF90aGVkb3RzX3RscAogIFxmaToKICBcbGV0Ok5OIFx0ZW5zaW5kX2Js Om4gXHRlbnNpbmRfcGhhbnRvbTpuCiAgXGxldDpOTiBcdGVuc2luZF9icjpuIFx0ZW5zaW5kX3Bo YW50b206bgogIFxsZXQ6Tk4gXHRlbnNpbmRfYm06biBcdGVuc2luZF9waGFudG9tOm4KICBcbGV0 Ok5OIFx0ZW5zaW5kX3RtOm4gXHRlbnNpbmRfcGhhbnRvbTpuCiAgXGRlZjpOcG4gXHRlbnNpbmRf dGw6biAjIzEKICAgICAgICB7XHRlbnNpbmRfcGhhbnRvbTpueyMjMX1ccHJlZl9nbG9iYWw6RFx0 ZXhfYWR2YW5jZTpEXGxfdGVuc2luZF90bXBfZGltXHdkXHpAfSUKICBcaWZ0ZW5zaW5kX3RvcAog ICAgXGxldDpOTiBcdGVuc2luZF90cjpuIFx0ZW5zaW5kX3BoYW50b206bgogIFxlbHNlOgogICAg XGxldDpOTiBcdGVuc2luZF90cjpuIFx0ZW5zaW5kX3RsOm4KICBcZmk6CiAgXGlmdGVuc2luZF9i b3QKICAgIFxpZnRlbnNpbmRfbAogICAgIFxsZXQ6Tk4gXHRlbnNpbmRfYmw6biBcdGVuc2luZF9k b3Q6bgogICAgIFxsZXQ6Tk4gXHRlbnNpbmRfYm06biBcdGVuc2luZF9kb3Q6bgogICAgXGZpOgog ICAgXGlmdGVuc2luZF9yCiAgICAgXGxldDpOTiBcdGVuc2luZF9icjpuIFx0ZW5zaW5kX2RvdDpu CiAgICAgXGxldDpOTiBcdGVuc2luZF9ibTpuIFx0ZW5zaW5kX2RvdDpuCiAgICBcZmk6CiAgXGVs c2U6CiAgICBcaWZ0ZW5zaW5kX2UKICAgICAgXGxldDpOTiBcdGVuc2luZF9icjpuIFx0ZW5zaW5k X2RvdDpuCiAgICAgIFx0ZW5zaW5kX2JvdHRydWUKICAgIFxmaToKICBcZmk6CiAgXGlmdGVuc2lu ZF9iXGVsc2U6CiAgICBcaWZ0ZW5zaW5kX3RvcAogICAgICBcaWZ0ZW5zaW5kX2wKICAgICAgICAg IFxsZXQ6Tk4gXHRlbnNpbmRfdGw6biBcdGVuc2luZF9kb3Q6bgogICAgICAgICAgXGxldDpOTiBc dGVuc2luZF90bTpuIFx0ZW5zaW5kX2RvdDpuCiAgICAgIFxmaToKICAgICAgXGlmdGVuc2luZF9y CiAgICAgICAgICBcbGV0Ok5OIFx0ZW5zaW5kX3RyOm4gXHRlbnNpbmRfZG90Om4KICAgICAgICAg IFxsZXQ6Tk4gXHRlbnNpbmRfdG06biBcdGVuc2luZF9kb3Q6bgogICAgIFxmaToKICAgIFxlbHNl OgogICAgICBcaWZ0ZW5zaW5kX2UKICAgICAgICAgIFxsZXQ6Tk4gXHRlbnNpbmRfdHI6biBcdGVu c2luZF9kb3Q6bgogICAgICAgICAgXHRlbnNpbmRfdG9wdHJ1ZQogICAgICAgXGZpOgogICAgXGZp OgogIFxmaToKICBcdGxwX2VtcHR5Ok5GIFxsX3RlbnNpbmRfdGhlcHJpbWVzX3RscCBcdGVuc2lu ZF90b3B0cnVlCiAgXGRlZjpOcHggXGxfdGVuc2luZF9mYW1fdGxwIHtcZmFtXHRoZVxmYW19CiAg XHRlbnNpbmRfY2hvaWNlOm5ubm4KICAgIHtcdGVuc2luZF9lbmR0ZW5zb3I6bm5cZGlzcGxheXN0 eWxlXHNjcmlwdHN0eWxlfQogICAge1x0ZW5zaW5kX2VuZHRlbnNvcjpublx0ZXh0c3R5bGVcc2Ny aXB0c3R5bGV9CiAgICB7XHRlbnNpbmRfZW5kdGVuc29yOm5uXHNjcmlwdHN0eWxlXHNjcmlwdHNj cmlwdHN0eWxlfQogICAge1x0ZW5zaW5kX2VuZHRlbnNvcjpublxzY3JpcHRzY3JpcHRzdHlsZVxz Y3JpcHRzY3JpcHRzdHlsZX0KfQoKICAgIApcZGVmX25ldzpOcG4gXHRlbnNpbmRfZW5kdGVuc29y Om5uICMxIzIgeyUKICBcbGV0Ok5OIFxsX3RlbnNpbmRfdGV4dF90bHAgIzEKICBcbGV0Ok5OIFxs X3RlbnNpbmRfaW5kZXhfdGxwICMyCiAgXHNldGJveFx6QFxoYm94eyRcbF90ZW5zaW5kX2ZhbV90 bHBcbUB0aCMxXGxfdGVuc2luZF9udWNsX3RscFxzYnt4fSR9CiAgXHNldGJveFxjX29uZVxoYm94 eyRcbF90ZW5zaW5kX2ZhbV90bHBcbUB0aCMxXGxfdGVuc2luZF9udWNsX3RscHt9XHNie3h9JH0K ICBcbF90ZW5zaW5kX3RtcF9kaW1cd2RcekAgCiAgXHRleF9hZHZhbmNlOkQgXGxfdGVuc2luZF90 bXBfZGltIC1cd2RcY19vbmUgIAogIFxsX3RtcGJfZGltIC1cbF90ZW5zaW5kX3RtcF9kaW0KICBc c2V0Ym94XHpAXGhib3h7JFxrZXJuXGxfdGVuc2luZF90bXBfZGltIFxsX3RlbnNpbmRfZmFtX3Rs cCBcbUB0aCMyXGxfdGVuc2luZF90aGVzcF90bHAkfQogIFxzZXRib3hcY19vbmUgXGhib3h7JFxs X3RlbnNpbmRfZmFtX3RscCBcbUB0aCMyXGxfdGVuc2luZF90aGVzYl90bHAkfQogIFxzZXRib3hc Y190d29caGJveHskXGxfdGVuc2luZF9mYW1fdGxwIFxtQHRoIzJ7XGxfdGVuc2luZF90aGVwcmlt ZXNfdGxwfSR9CiAgXGRwXHpAXHpACiAgXHRleF9pZmRpbTpEIFxsX3RlbnNpbmRfdG1wX2RpbSA+ IFx3ZFxjX3R3bwogICAgXGxfdGVuc2luZF90bXBfZGltIFx6QCAKICBcZWxzZToKICAgIFx0ZXhf YWR2YW5jZTpEIFxsX3RlbnNpbmRfdG1wX2RpbSAtXHdkXGNfdHdvCiAgXGZpOgogIFx3ZFxjX3R3 b1x6QCAKICBcaWZ0ZW5zaW5kX3MKICAgIFxpZl9tZWFuaW5nOk5OIFxsX3RlbnNpbmRfdGV4dF90 bHAgXGRpc3BsYXlzdHlsZQogICAgICBcdGVuc2luZF9vdHJ1ZVx0ZW5zaW5kX2NmYWxzZQogICAg XGVsc2U6CiAgICAgIFx0ZW5zaW5kX29mYWxzZVx0ZW5zaW5kX2N0cnVlCiAgICBcZmk6CiAgXGZp OgogIFxsZXQ6Tk4gXGxfdGVuc2luZF90bXBfdGxwIFxjX2VtcHR5X3RscAogIFxsX3RlbnNpbmRf bnVjbF90bHAKICBcaWZ0ZW5zaW5kX2JvdFxzYntca2Vybi1cbF90ZW5zaW5kX3RtcF9kaW1cY29w eVxjX29uZSB9CiAgICBcaWZ0ZW5zaW5kX29cdGVuc2luZF90b3B0cnVlXGVsc2U6XGlmdGVuc2lu ZF9jXHRlbnNpbmRfdG9wdHJ1ZQogICAgICAgXGlmX21lYW5pbmc6Tk4gXGxfdGVuc2luZF90ZXh0 X3RscCBcZGlzcGxheXN0eWxlIFxlbHNlOgogICAgICAgICBcdGxwX3NldDpObiBcbF90ZW5zaW5k X3RtcF90bHAge1x0ZXhfcmFpc2U6RC4xZXh9CiAgICAgICBcZmk6CiAgICAgICBca2Vybi1cd2Rc Y19vbmUgXGtlcm5cbF90ZW5zaW5kX3RtcF9kaW0KICAgICAgIFxrZXJuXGxfdG1wYl9kaW0gXGtl cm4tXHRleF9zY3JpcHRzcGFjZTpECiAgICBcZmk6XGZpOgogIFxmaToKICBcaWZ0ZW5zaW5kX3Rv cAogICAgXntcbF90ZW5zaW5kX3RtcF90bHAKICAgICAgXGJveFxjX3R3b1xrZXJuLVxsX3RlbnNp bmRfdG1wX2RpbVxsX3RlbnNpbmRfdG1wX3RscAogICAgICBcYm94XHpAIH0KICBcZmk6fQogIApc ZGVmOk5wbiBcdGVuc2luZF9waGFudG9tOm4gIzEgewogIFxzZXRib3hcY190d29cbnVsbAogIFxz ZXRib3hcekAgXGhib3h7JFxsX3RlbnNpbmRfZmFtX3RscFxtQHRoXGxfdGVuc2luZF9pbmRleF90 bHAjMSR9JQogIFx3ZFxjX3R3b1x3ZFx6QCAKICBcYm94XGNfdHdvfSUKClx0ZXhfY2F0Y29kZTpE YFxePVxsX3RtcGJfaW50ClxDb2RlU3RvcAoK --Emailer_-1311496996-- 8-Jul-1998 11:57:34-GMT,1593;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id FAA22637 for ; Wed, 8 Jul 1998 05:57:33 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA22470; Wed, 8 Jul 1998 13:26:34 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 382531 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 8 Jul 1998 13:26:31 +0200 Received: from vms.rhbnc.ac.uk (alpha1.rhbnc.ac.uk [134.219.201.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA22460 for ; Wed, 8 Jul 1998 13:26:29 +0200 (MET DST) Message-ID: <980708122626.1aae@vms.rhbnc.ac.uk> Date: Wed, 8 Jul 1998 12:26:26 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Philip Taylor (RHBNC)" Subject: Re: First experience with xr under L3PL To: Multiple recipients of list LATEX-L >> [...] anything) and he managed with ease to put his hand on the keyboard and >> guess what key he managed to press? d ... an omen? :-) What a good job he didn't manage to press "e" "l" "e" "t" "e" and "return", as well, then :-) 8-Jul-1998 12:02:22-GMT,3094;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id GAA22738 for ; Wed, 8 Jul 1998 06:02:16 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id NAA22289; Wed, 8 Jul 1998 13:24:00 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 382524 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Wed, 8 Jul 1998 13:23:58 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id NAA22271 for ; Wed, 8 Jul 1998 13:23:56 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id MAA24073; Wed, 8 Jul 1998 12:30:42 +0100 References: <199807081108.NAA21231@relay.urz.uni-heidelberg.de> Message-ID: <199807081130.MAA24073@nag.co.uk> Date: Wed, 8 Jul 1998 12:30:42 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: Re: Second experience with l3 To: Multiple recipients of list LATEX-L In-Reply-To: <199807081108.NAA21231@relay.urz.uni-heidelberg.de> (message from Javier Bezos on Wed, 8 Jul 1998 13:05:18 +0100) > I know that I will not make friends in the Latex Team with these > comments, but I'm being very honest in my opinions. Sorry. You will make friends in the latex team. (Were we ever enemies:-) You have _used_ the code and commented on it. That is all we ask. We can hardly have a requirement that all comments must be favourable. As I'm at work, haven't yet unpacked your attatchment, so no comments yet on that. But a few replies to your opening remarks. > typos are more frequent now (for example > a typo in \ifx is very unlikely, but not in \if_meaning:NN). typos in \ifx itself are unlikely (although I have seen people type \if when they meant \ifx...) however (and this is the point) typos in some strange construction \ifx a b \expandafter \foo \else ... are quite likely. If you don't believe this try using calc package with the 1998/06/01 distribution. (and expect a patch release to remove the typo very shortly) It would probably help to have a modified emacs (or other editor) mode so that syntax highlighting and command completion worked on the proposed syntax. > 2. \@tfor requires an "other" colon and hence does not work in l3 > contexts. As Frank commented earlier there clearly would have to be a L3 loop module in any real system so problems with \@tfor (and its distinctly strange syntax) are just temporary effects due to writing a higher level package when some of the building blocks are not there. David 9-Jul-1998 9:32:16-GMT,2113;000000000001 Received: from relay.urz.uni-heidelberg.de (relay.urz.uni-heidelberg.de [129.206.119.201]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id DAA20557 for ; Thu, 9 Jul 1998 03:32:11 -0600 (MDT) Received: from relay (relay.urz.uni-heidelberg.de [129.206.119.201]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with SMTP id KAA18710; Thu, 9 Jul 1998 10:58:42 +0200 (MET DST) Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 383596 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Thu, 9 Jul 1998 10:58:39 +0200 Received: from nag.co.uk (andover.nag.co.uk [192.156.217.113]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id KAA18681; Thu, 9 Jul 1998 10:58:36 +0200 (MET DST) Received: (from davidc@localhost) by nag.co.uk (8.8.7/8.8.7) id KAA24943; Thu, 9 Jul 1998 10:05:30 +0100 Message-ID: <199807090905.KAA24943@nag.co.uk> Date: Thu, 9 Jul 1998 10:05:30 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: David Carlisle Subject: calc.dtx in 1998/06/01 latex tools release To: Multiple recipients of list LATEX-L Unfortunately a small error crept into this file in the release last week. calc.dtx has been updated on ftp.tex.ac.uk. Other ctan sites and mirrors will update in due course. If you have this version of calc: [1998/06/07 v4.1a Infix arithmetic (KKT,FJ)] Please obtain a new calc.dtx from tex-archive/macros/latex/packages/tools/calc.dtx which should have the following version info: [1998/07/07 v4.1b Infix arithmetic (KKT,FJ)] and then regenerate calc.sty by running tex on tools.ins. Sorry for this inconvenience and special apologies to Kresten Krab Thorup and Frank Jensen who were responsible for this package, but not responsible for introducing this bug. David Carlisle LaTeX3 Project 16-Jul-1998 22:37:46-GMT,2173;000000000001 Received: from plot79.math.utah.edu (beebe@plot79.math.utah.edu [155.101.20.21]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id QAA05262; Thu, 16 Jul 1998 16:37:45 -0600 (MDT) From: "Nelson H. F. Beebe" Received: (from beebe@localhost) by plot79.math.utah.edu (8.8.5/8.8.5) id QAA22404; Thu, 16 Jul 1998 16:37:44 -0600 (MDT) Date: Thu, 16 Jul 1998 16:37:44 -0600 (MDT) To: tex-implementors@math.ams.org, LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE Cc: beebe@math.utah.edu X-US-Mail: "Center for Scientific Computing, Department of Mathematics, 322 INSCC, University of Utah, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA" X-Telephone: +1 801 581 5254 X-FAX: +1 801 585 1640, +1 801 581 4148 X-URL: http://www.math.utah.edu/~beebe Subject: Quotation character conventions, and TeX/LaTeX support thereof Message-ID: I have just read a new document ``Quotation Character Semantics'', available on the Web at http://www.unicode.org/unicode/uni2errata/QuoteErrata.html This document discusses quotation character conventions in several European languages, and a related document ``Apostrophe Semantics'' at http://www.unicode.org/unicode/uni2errata/Apostrophe.htm discusses issues that appear when more than one apostrophe-like character is available for use, as is the case in Unicode. I raise these issues on the tex-implementors and latex-l lists because I believe they are relevant for TeX markup of documents, and for the LaTeX-3 design. ----------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - Center for Scientific Computing FAX: +1 801 585 1640, +1 801 581 4148 - - University of Utah Internet e-mail: beebe@math.utah.edu - - Department of Mathematics, 322 INSCC beebe@acm.org - - 155 S 1400 E RM 233 beebe@ieee.org - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe - ----------------------------------------------------------------------------- 16-Jul-1998 23:01:52-GMT,745;000000000001 Received: from dns1.pd.astro.it (nohost@dns1.pd.astro.it [147.162.26.16]) by csc-sun.math.utah.edu (8.8.5/8.8.5) with ESMTP id RAA05651 for ; Thu, 16 Jul 1998 17:01:50 -0600 (MDT) Received: (from nohost@localhost) by dns1.pd.astro.it (8.8.7/8.8.3) id BAA19734 for beebe@math.utah.edu; Fri, 17 Jul 1998 01:00:47 -0100 Date: Fri, 17 Jul 1998 01:00:47 -0100 From: nohost Message-Id: <199807170200.BAA19734@dns1.pd.astro.it> To: beebe@math.utah.edu Subject: THIS IS AN AUTOMATIC REPLY WE HAVE CHANGED OUR E-MAIL ADRESSES FROM user@ASTRPD.pd.astro.it TO user@pd.astro.it Please resend Your mail concerning "Quotation character conventions, and TeX/LaTeX support thereof" to the new address.