Received: from webgate.proteosys.de (mail.proteosys-ag.com [62.225.9.49]) by lucy.proteosys (8.11.0/8.9.3/SuSE Linux 8.9.3-0.1) with ESMTP id f4LI7Nf27310 for ; Mon, 21 May 2001 20:07:23 +0200 Received: by webgate.proteosys.de (8.11.0/8.11.0) with ESMTP id f4LI7M729084 . for ; Mon, 21 May 2001 20:07:23 +0200 Received: from mail.Uni-Mainz.DE (mailserver1.zdv.Uni-Mainz.DE [134.93.8.30]) by mailgate1.zdv.Uni-Mainz.DE (8.11.0/8.10.2) with ESMTP id f4LI7LU02535 for ; Mon, 21 May 2001 20:07:21 +0200 (MET DST) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C0E220.E24E7F80" Received: from mailgate2.zdv.Uni-Mainz.DE (mailgate2.zdv.Uni-Mainz.DE [134.93.8.57]) by mail.Uni-Mainz.DE (8.9.3/8.9.3) with ESMTP id UAA28191 for ; Mon, 21 May 2001 20:07:21 +0200 (MEST) Received: from mail.listserv.gmd.de (mail.listserv.gmd.de [192.88.97.5]) by mailgate2.zdv.Uni-Mainz.DE (8.11.0/8.10.2) with ESMTP id f4LI7K002409 for ; Mon, 21 May 2001 20:07:20 +0200 (MET DST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Received: from mail.listserv.gmd.de (192.88.97.5) by mail.listserv.gmd.de (LSMTP for OpenVMS v1.1a) with SMTP id <4.D9D4193E@mail.listserv.gmd.de>; Mon, 21 May 2001 20:05:31 +0200 Received: from RELAY.URZ.UNI-HEIDELBERG.DE by RELAY.URZ.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 1.8b) with spool id 496917 for LATEX-L@RELAY.URZ.UNI-HEIDELBERG.DE; Mon, 21 May 2001 20:07:16 +0200 Received: from ix.urz.uni-heidelberg.de (mail.urz.uni-heidelberg.de [129.206.119.234]) by relay.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id UAA13812 for ; Mon, 21 May 2001 20:07:15 +0200 (MET DST) Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by ix.urz.uni-heidelberg.de (8.8.8/8.8.8) with ESMTP id UAA50952 for ; Mon, 21 May 2001 20:07:16 +0200 Received: from musse.tninet.se (musse.tninet.se [195.100.94.12]) by relay.uni-heidelberg.de (8.10.2+Sun/8.10.2) with SMTP id f4LI7Ej07215 for ; Mon, 21 May 2001 20:07:15 +0200 (MET DST) Received: (qmail 10301 invoked from network); 21 May 2001 20:07:14 +0200 Received: from delenn.tninet.se (HELO algonet.se) (195.100.94.104) by musse.tninet.se with SMTP; 21 May 2001 20:07:14 +0200 Received: from [195.100.226.140] (du140-226.ppp.su-anst.tninet.se [195.100.226.140]) by delenn.tninet.se (BLUETAIL Mail Robustifier 2.2.2) with ESMTP id 493228.468432.990delenn-s0 for ; Mon, 21 May 2001 20:07:12 +0200 In-Reply-To: References: <15111.36254.279748.954703@hoelderlin.localdomain> <200105161742.MAA02503@riemann.math.twsu.edu> Return-Path: X-Sender: haberg@pop.matematik.su.se x-mime-autoconverted: from quoted-printable to 8bit by relay.urz.uni-heidelberg.de id UAA13813 Content-class: urn:content-classes:message Subject: Re: Multilingual Encodings Summary 2.2 Date: Mon, 21 May 2001 18:30:40 +0100 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: From: "Hans Aberg" Sender: "Mailing list for the LaTeX3 project" To: "Multiple recipients of list LATEX-L" Reply-To: "Mailing list for the LaTeX3 project" Status: R X-Status: X-Keywords: X-UID: 4098 This is a multi-part message in MIME format. ------_=_NextPart_001_01C0E220.E24E7F80 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable At 12:56 +0200 2001/05/21, Lars Hellstr=F6m wrote: >>So the best one could hope for, I think, is to build a layer above = those >>glyphs, say an empty set command that can expand to \emptyset or >>\varnothing, a set membership command that can expand to either of \in = or >>the two epsilon variations, but there can be no restrictions on the = glyphs >>themselves in the sense that the use of one of them prohibits the = other. > >My suggestion is rather that the current set of math symbol commands = should >be made into this layer (hence some commands which now produce = different >results would then by default produce identical results). This is what I say one should not do, because it will screw up the = manner mathematicians may use those glyphs. However, I suggested an scheme that would put the different names in different namespaces, and here I use "/" as a namespace separator: Thus = a name in PlainTeX might be named \tex/. Then the tex namespace in LaTeX3 would have the names \tex/epsilon, \tex/varepsilon, \tex/emptyset, \ams/varnothing, etc. If one uses a Unicode based TeX, and these characters have Unicode representation, then the could be connected to that. But all Unicode characters should be accessible. Then on top of that you may define your own LaTeX namespace, which could = be a global namespace with \let\in=3D\tex/in, etc, or a local \let\latex/in = =3D \let\tex/in, etc. This way, the LaTeX variations only appear as suggestions, and it is = very easy for someone to make alterations and add new definitions. > Finally, for the more common task of selecting which >glyphic variant of a character to use, there should be a simpler = interface >than giving an explicit code point, perhaps something like > > \chooseglyph{\leq}{slanted} I think one should be able to specify other attributes as well, if it is = a binary relation etc \new{symbol}{in}{binary}{\tex/in} \newsymbol{in}{binary}{\tex/in} or something. A user that would want a different variation could do this easily say by \renew{symbol}{in}{binary}{\tex/varepsilon} \define{symbol}{in}{binary}{\tex/varepsilon} or something. (Depending on how one introduces LaTeX primitives, one may want = definition macros new error if name already defined renew error if name not defined define always overrides old definitions -- These different types may have an importance when joining together manuscripts written by different people.) I recall that the (old) AMS-TeX package had some such commands. One problem with these ideas is that it might be to slow on such = relatively low level commands. But then the TeX successor should have added a good = way to select namespaces and glyphs. Hans Aberg ------_=_NextPart_001_01C0E220.E24E7F80 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Re: Multilingual Encodings Summary 2.2

At 12:56 +0200 2001/05/21, Lars Hellstr=F6m = wrote:
>>So the best one could hope for, I think, is = to build a layer above those
>>glyphs, say an empty set command that can = expand to \emptyset or
>>\varnothing, a set membership command that = can expand to either of \in or
>>the two epsilon variations, but there can be = no restrictions on the glyphs
>>themselves in the sense that the use of one = of them prohibits the other.
>
>My suggestion is rather that the current set of = math symbol commands should
>be made into this layer (hence some commands = which now produce different
>results would then by default produce identical = results).

This is what I say one should not do, because it will = screw up the manner
mathematicians may use those glyphs.

However, I suggested an scheme that would put the = different names in
different namespaces, and here I use "/" as = a namespace separator: Thus a
name in PlainTeX might be named = \tex/<name>.

Then the tex namespace in LaTeX3 would have the names = \tex/epsilon,
\tex/varepsilon, \tex/emptyset, \ams/varnothing, = etc.

If one uses a Unicode based TeX, and these characters = have Unicode
representation, then the could be connected to that. = But all Unicode
characters should be accessible.

Then on top of that you may define your own LaTeX = namespace, which could be
a global namespace with \let\in=3D\tex/in, etc, or a = local \let\latex/in =3D
\let\tex/in, etc.

This way, the LaTeX variations only appear as = suggestions, and it is very
easy for someone to make alterations and add new = definitions.

> Finally, for the more common task of selecting = which
>glyphic variant of a character to use, there = should be a simpler interface
>than giving an explicit code point, perhaps = something like
>
>  \chooseglyph{\leq}{slanted}

I think one should be able to specify other attributes = as well, if it is a
binary relation etc
  \new{symbol}{in}{binary}{\tex/in}
  \newsymbol{in}{binary}{\tex/in}
or something.

A user that would want a different variation could do = this easily say by
  = \renew{symbol}{in}{binary}{\tex/varepsilon}
  = \define{symbol}{in}{binary}{\tex/varepsilon}
or something.

(Depending on how one introduces LaTeX primitives, one = may want definition
macros
  new     error if name = already defined
  renew   error if name not = defined
  define  always overrides old = definitions
-- These different types may have an importance when = joining together
manuscripts written by different people.)

I recall that the (old) AMS-TeX package had some such = commands.

One problem with these ideas is that it might be to = slow on such relatively
low level commands. But then the TeX successor should = have added a good way
to select namespaces and glyphs.

  Hans Aberg

------_=_NextPart_001_01C0E220.E24E7F80--